UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

251 lines (249 loc) 8.16 kB
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