everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
251 lines (249 loc) • 8.16 kB
JavaScript
import * as z from "zod";
//#region src/types.ts
const ExtendsSchema = z.union([z.string(), z.object({
development: z.string().optional(),
production: z.string().optional(),
staging: z.string().optional()
})]);
const SourceModeSchema = z.enum(["local", "remote"]);
const SharedConfigSchema = z.object({
version: z.string(),
requiredVersion: z.string().optional(),
singleton: z.boolean().optional(),
eager: z.boolean().optional(),
strictVersion: z.boolean().optional(),
shareScope: z.string().optional()
});
const SharedDepConfigSchema = SharedConfigSchema;
const FederationEntrySchema = z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
source: SourceModeSchema,
integrity: z.string().optional()
});
const SidebarRoleSchema = z.enum([
"anon",
"member",
"admin"
]);
const SidebarItemSchema = z.object({
icon: z.string(),
label: z.string(),
to: z.string().optional(),
roleRequired: SidebarRoleSchema.optional()
});
const ComposableAppEntrySchema = z.object({
extends: ExtendsSchema.optional(),
name: z.string().optional(),
development: z.string().optional(),
production: z.string().optional(),
integrity: z.string().optional(),
proxy: z.string().optional(),
variables: z.record(z.string(), z.string()).optional(),
secrets: z.array(z.string()).optional(),
sidebar: z.array(SidebarItemSchema).optional(),
routes: z.array(z.string()).optional()
});
const ApiPluginConfigSchema = ComposableAppEntrySchema;
const PluginUiConfigSchema = z.object({
name: z.string(),
development: z.string().optional(),
production: z.string().optional(),
integrity: z.string().optional()
});
const BosPluginRefSchema = ComposableAppEntrySchema.extend({
version: z.string().optional(),
app: z.record(z.string(), z.unknown()).optional(),
shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),
plugins: z.record(z.string(), z.unknown()).optional()
});
const PluginRuntimeUiSchema = z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
source: SourceModeSchema,
localPath: z.string().optional(),
port: z.number().optional(),
integrity: z.string().optional()
});
const RuntimePluginConfigSchema = z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
source: SourceModeSchema,
localPath: z.string().optional(),
port: z.number().optional(),
proxy: z.string().optional(),
variables: z.record(z.string(), z.string()).optional(),
secrets: z.array(z.string()).optional(),
integrity: z.string().optional(),
ui: PluginRuntimeUiSchema.optional(),
sidebar: z.array(SidebarItemSchema).optional(),
routes: z.array(z.string()).optional()
});
const UiConfigSchema = z.object({
name: z.string(),
development: z.string().optional(),
production: z.string().optional(),
integrity: z.string().optional(),
ssr: z.string().optional(),
ssrIntegrity: z.string().optional()
});
const HostConfigSchema = z.object({
development: z.string(),
production: z.string(),
integrity: z.string().optional(),
secrets: z.array(z.string()).optional()
});
const ClientRuntimeInfoSchema = z.object({
accountId: z.string(),
gatewayId: z.string(),
runtimeBasePath: z.string(),
title: z.string().nullable(),
description: z.string().nullable(),
hostUrl: z.string().nullable()
});
const BosStagingSchema = z.object({ domain: z.string() });
const BosConfigInputAppEntrySchema = z.record(z.string(), z.unknown());
const BosConfigInputSchema = z.lazy(() => z.object({
extends: ExtendsSchema.optional(),
account: z.string().optional(),
domain: z.string().optional(),
testnet: z.string().optional(),
template: z.string().optional(),
gateway: z.object({
development: z.string().optional(),
production: z.string().optional(),
account: z.string().optional()
}).optional(),
development: z.string().optional(),
production: z.string().optional(),
integrity: z.string().optional(),
name: z.string().optional(),
version: z.string().optional(),
proxy: z.string().optional(),
variables: z.record(z.string(), z.string()).optional(),
secrets: z.array(z.string()).optional(),
routes: z.array(z.string()).optional(),
sidebar: z.array(SidebarItemSchema).optional(),
app: z.record(z.string(), BosConfigInputAppEntrySchema).optional(),
shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),
plugins: z.record(z.string(), z.union([z.string(), BosConfigInputSchema])).optional()
}));
const BosConfigSchema = z.object({
account: z.string(),
extends: ExtendsSchema.optional(),
domain: z.string().optional(),
title: z.string().optional(),
description: z.string().optional(),
testnet: z.string().optional(),
staging: BosStagingSchema.optional(),
repository: z.string().optional(),
shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),
plugins: z.record(z.string(), z.union([z.string(), BosPluginRefSchema])).optional(),
app: z.object({
host: HostConfigSchema,
ui: UiConfigSchema,
api: ComposableAppEntrySchema,
auth: ComposableAppEntrySchema.optional()
})
});
const RuntimeConfigSchema = z.object({
env: z.enum([
"development",
"production",
"staging"
]),
account: z.string(),
domain: z.string().optional(),
networkId: z.enum(["mainnet", "testnet"]),
title: z.string().optional(),
description: z.string().optional(),
repository: z.string().optional(),
host: FederationEntrySchema.extend({
localPath: z.string().optional(),
port: z.number().optional(),
secrets: z.array(z.string()).optional(),
remoteUrl: z.string().optional()
}),
shared: z.object({
ui: z.record(z.string(), SharedConfigSchema).optional(),
plugins: z.record(z.string(), SharedConfigSchema).optional()
}).optional(),
ui: FederationEntrySchema.extend({
localPath: z.string().optional(),
port: z.number().optional(),
ssrUrl: z.string().optional(),
ssrIntegrity: z.string().optional()
}),
api: FederationEntrySchema.extend({
localPath: z.string().optional(),
port: z.number().optional(),
proxy: z.string().optional(),
variables: z.record(z.string(), z.string()).optional(),
secrets: z.array(z.string()).optional()
}),
auth: FederationEntrySchema.extend({
localPath: z.string().optional(),
port: z.number().optional(),
proxy: z.string().optional(),
variables: z.record(z.string(), z.string()).optional(),
secrets: z.array(z.string()).optional(),
sidebar: z.array(SidebarItemSchema).optional()
}).optional(),
plugins: z.record(z.string(), RuntimePluginConfigSchema).optional()
});
const ClientRuntimeConfigSchema = z.object({
cspNonce: z.string().optional(),
env: z.enum([
"development",
"production",
"staging"
]),
account: z.string(),
networkId: z.enum(["mainnet", "testnet"]),
hostUrl: z.string().optional(),
assetsUrl: z.string(),
apiBase: z.string(),
rpcBase: z.string(),
repository: z.string().optional(),
authAvailable: z.boolean().optional(),
runtime: ClientRuntimeInfoSchema.optional(),
ui: z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
integrity: z.string().optional()
}).optional(),
api: z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
integrity: z.string().optional()
}).optional(),
auth: z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
integrity: z.string().optional(),
sidebar: z.array(SidebarItemSchema).optional()
}).optional(),
plugins: z.record(z.string(), z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
integrity: z.string().optional(),
ui: z.object({
name: z.string(),
url: z.string(),
entry: z.string(),
source: SourceModeSchema,
integrity: z.string().optional()
}).optional(),
sidebar: z.array(SidebarItemSchema).optional()
})).optional()
});
//#endregion
export { ApiPluginConfigSchema, BosConfigInputSchema, BosConfigSchema, BosPluginRefSchema, BosStagingSchema, ClientRuntimeConfigSchema, ClientRuntimeInfoSchema, ComposableAppEntrySchema, ExtendsSchema, FederationEntrySchema, HostConfigSchema, PluginUiConfigSchema, RuntimeConfigSchema, RuntimePluginConfigSchema, SharedConfigSchema, SharedDepConfigSchema, SidebarItemSchema, SidebarRoleSchema, SourceModeSchema, UiConfigSchema };
//# sourceMappingURL=types.mjs.map