UNPKG

everything-dev

Version:

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

395 lines (393 loc) • 14.9 kB
import * as z$1 from "zod"; import { ComposePayloadSchema } from "every-plugin/ui/manifest"; //#region src/types.ts const JsonValueSchema = z$1.lazy(() => z$1.union([ z$1.string(), z$1.number(), z$1.boolean(), z$1.null(), z$1.array(JsonValueSchema), z$1.record(z$1.string(), JsonValueSchema) ])); const JsonObjectSchema = z$1.record(z$1.string(), JsonValueSchema); const ExtendsSchema = z$1.union([z$1.string(), z$1.object({ development: z$1.string().optional(), production: z$1.string().optional(), staging: z$1.string().optional() })]); const SourceModeSchema = z$1.enum(["local", "remote"]); const SharedConfigSchema = z$1.object({ version: z$1.string(), requiredVersion: z$1.string().optional(), singleton: z$1.boolean().optional(), eager: z$1.boolean().optional(), strictVersion: z$1.boolean().optional(), shareScope: z$1.string().optional() }); const SharedDepConfigSchema = SharedConfigSchema; const SharedDepMapSchema = z$1.record(z$1.string(), SharedConfigSchema); const FederationEntrySchema = z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), /** the content-hashed container entry URL (derived from the version * manifest when the slot pins one) — consumers load this instead of * appending the legacy fixed name */ entryUrl: z$1.string().optional(), source: SourceModeSchema, integrity: z$1.string().optional() }); /** * Slot pin (atomic-deploys): an explicit pointer to the slot's immutable * per-deploy WorkspaceVersionManifest — `manifest` is the versioned manifest * filename relative to the slot's production base, `integrity` is that * document's SRI. Resolving the pin derives the slot's entry-level fields * (`entryUrl`, entry integrity, ssr entry). A slot without a `pin` uses its * top-level `integrity` as a direct entry SRI (fixed-name slots only). */ const SlotPinSchema = z$1.object({ manifest: z$1.string().min(1), integrity: z$1.string().min(1) }); const PluginUiConfigSchema = z$1.object({ name: z$1.string(), development: z$1.string().optional(), production: z$1.string().optional(), /** browser-facing base overriding `production` when server-side loading * must stay container-local (image-native runtimes, ADR 0011) — may be * same-origin relative (/bundles/<account>/<gateway>/<slot>) */ publicUrl: z$1.string().optional(), integrity: z$1.string().optional(), ssr: z$1.string().optional(), ssrIntegrity: z$1.string().optional(), pin: SlotPinSchema.optional() }); const ComposableAppEntrySchema = z$1.object({ extends: ExtendsSchema.optional(), name: z$1.string().optional(), development: z$1.string().optional(), production: z$1.string().optional(), integrity: z$1.string().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), routes: z$1.array(z$1.string()).optional(), shared: SharedDepMapSchema.optional(), connectSrc: z$1.array(z$1.string()).optional(), ui: PluginUiConfigSchema.optional(), pin: SlotPinSchema.optional() }); const ApiPluginConfigSchema = ComposableAppEntrySchema.extend({ dependsOn: z$1.array(z$1.string()).optional() }); const BosPluginRefSchema = ComposableAppEntrySchema.extend({ version: z$1.string().optional(), app: z$1.record(z$1.string(), z$1.unknown()).optional(), plugins: z$1.record(z$1.string(), z$1.unknown()).optional(), dependsOn: z$1.array(z$1.string()).optional() }); const PluginRuntimeUiSchema = z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), source: SourceModeSchema, /** browser-facing base; when set the client config serves this instead of * `url` (server-side loading keeps `url`) */ publicUrl: z$1.string().optional(), localPath: z$1.string().optional(), port: z$1.number().optional(), integrity: z$1.string().optional(), ssrUrl: z$1.string().optional(), ssrIntegrity: z$1.string().optional(), entryUrl: z$1.string().optional(), ssrEntryUrl: z$1.string().optional(), /** pin-derived hashed browser manifest (mf-manifest) — absent for local * slots; registration reads this instead of the overloaded `entry` */ browserManifestUrl: z$1.string().optional(), dependsOn: z$1.array(z$1.string()).optional() }); const RuntimePluginConfigSchema = z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), source: SourceModeSchema, extendsRef: z$1.string().optional(), localPath: z$1.string().optional(), port: z$1.number().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), integrity: z$1.string().optional(), entryUrl: z$1.string().optional(), shared: SharedDepMapSchema.optional(), connectSrc: z$1.array(z$1.string()).optional(), ui: PluginRuntimeUiSchema.optional(), routes: z$1.array(z$1.string()).optional(), dependsOn: z$1.array(z$1.string()).optional() }); const DependencyNodeKindSchema = z$1.enum([ "api", "auth", "ui", "plugin" ]); const RuntimeDependencyNodeSchema = z$1.object({ key: z$1.string(), kind: DependencyNodeKindSchema, name: z$1.string(), url: z$1.string(), entry: z$1.string(), source: SourceModeSchema, dependsOn: z$1.array(z$1.string()).optional(), extendsRef: z$1.string().optional(), localPath: z$1.string().optional(), port: z$1.number().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), integrity: z$1.string().optional(), shared: SharedDepMapSchema.optional(), connectSrc: z$1.array(z$1.string()).optional(), ui: PluginRuntimeUiSchema.optional(), routes: z$1.array(z$1.string()).optional(), sourceOrigin: z$1.enum(["config", "manifest"]).optional(), singletonKey: z$1.string().optional() }); const UiConfigSchema = z$1.object({ name: z$1.string().optional(), development: z$1.string().optional(), production: z$1.string().optional(), /** browser-facing base overriding `production` (see PluginUiConfigSchema) */ publicUrl: z$1.string().optional(), /** direct entry SRI — only for slots without a `pin` */ integrity: z$1.string().optional(), ssr: z$1.string().optional(), ssrIntegrity: z$1.string().optional(), pin: SlotPinSchema.optional() }).strict(); const HostConfigSchema = z$1.object({ development: z$1.string(), /** Deploy state (ADR 0005) — absent until the first publish writes it. */ production: z$1.string().optional(), /** direct entry SRI — only for slots without a `pin` */ integrity: z$1.string().optional(), secrets: z$1.array(z$1.string()).optional(), pin: SlotPinSchema.optional() }); const ClientRuntimeInfoSchema = z$1.object({ accountId: z$1.string(), gatewayId: z$1.string(), runtimeBasePath: z$1.string(), title: z$1.string().nullable(), description: z$1.string().nullable(), hostUrl: z$1.string().nullable() }); const RuntimeLineageSchema = z$1.object({ parent: z$1.string().nullable(), root: z$1.string().nullable(), depth: z$1.number().int().nonnegative(), extendsChain: z$1.array(z$1.string()) }); const BosStagingSchema = z$1.object({ domain: z$1.string(), account: z$1.string().optional() }); const BosConfigInputAppEntrySchema = z$1.record(z$1.string(), z$1.unknown()); const BosConfigInputSchema = z$1.lazy(() => z$1.object({ extends: ExtendsSchema.optional(), account: z$1.string().optional(), domain: z$1.string().optional(), status: z$1.enum([ "active", "suspended", "pending_deletion" ]).optional(), testnet: z$1.string().optional(), staging: BosStagingSchema.optional(), template: z$1.string().optional(), gateway: z$1.object({ development: z$1.string().optional(), production: z$1.string().optional(), account: z$1.string().optional() }).optional(), development: z$1.string().optional(), production: z$1.string().optional(), integrity: z$1.string().optional(), name: z$1.string().optional(), version: z$1.string().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), routes: z$1.array(z$1.string()).optional(), app: z$1.record(z$1.string(), BosConfigInputAppEntrySchema).optional(), plugins: z$1.record(z$1.string(), z$1.union([z$1.string(), BosConfigInputSchema])).optional(), publish: z$1.object({ auth: z$1.enum([ "session", "key", "custody" ]).optional() }).optional(), ci: CiConfigSchema.optional(), cdn: CdnConfigSchema.optional() })); const StarterLevelSchema = z$1.enum(["simple", "advanced"]); const StarterLevelConfigSchema = z$1.object({ include: z$1.array(z$1.string()).optional(), exclude: z$1.array(z$1.string()).optional() }); const ParentStarterConfigSchema = z$1.object({ levels: z$1.record(z$1.string(), StarterLevelConfigSchema).optional(), exclude: z$1.array(z$1.string()).optional() }); const RailwayCiSchema = z$1.object({ service: z$1.string() }); const CiConfigSchema = z$1.object({ image: z$1.string().optional(), railway: RailwayCiSchema.optional() }); /** Where this runtime's built bundles are served from. Inherited via extends. */ const CdnConfigSchema = z$1.object({ origin: z$1.string().optional() }); const PublishAuthSchema = z$1.enum([ "session", "key", "custody" ]); const PublishConfigSchema = z$1.object({ auth: PublishAuthSchema.optional() }); const PluginKeySchema = z$1.string().regex(/^[a-zA-Z0-9._-]+$/, "plugin key must match [a-zA-Z0-9._-] — keys from remote/extended configs are interpolated into shells and generated code"); const BosConfigSchema = z$1.object({ account: z$1.string(), extends: ExtendsSchema.optional(), domain: z$1.string().optional(), title: z$1.string().optional(), description: z$1.string().optional(), testnet: z$1.string().optional(), staging: BosStagingSchema.optional(), repository: z$1.string().optional(), publish: PublishConfigSchema.optional(), ci: CiConfigSchema.optional(), cdn: CdnConfigSchema.optional(), rolledBackFrom: z$1.string().optional(), starter: ParentStarterConfigSchema.optional(), plugins: z$1.record(PluginKeySchema, z$1.union([z$1.string(), BosPluginRefSchema])).optional(), app: z$1.object({ host: HostConfigSchema, ui: UiConfigSchema, api: ApiPluginConfigSchema, auth: ComposableAppEntrySchema.optional() }) }); const RuntimeConfigSchema = z$1.object({ env: z$1.enum([ "development", "production", "staging" ]), account: z$1.string(), domain: z$1.string().optional(), networkId: z$1.enum(["mainnet", "testnet"]), /** the deploy fingerprint of the snapshot this config came from * (atomic-deploys 10) — rides the client config for the soft-refresh signal */ deploymentFingerprint: z$1.string().optional(), title: z$1.string().optional(), description: z$1.string().optional(), repository: z$1.string().optional(), host: FederationEntrySchema.extend({ localPath: z$1.string().optional(), port: z$1.number().optional(), secrets: z$1.array(z$1.string()).optional(), remoteUrl: z$1.string().optional() }), ui: FederationEntrySchema.extend({ localPath: z$1.string().optional(), port: z$1.number().optional(), /** browser-facing base; when set the client config serves this instead * of `url` (server-side loading keeps `url`) */ publicUrl: z$1.string().optional(), ssrUrl: z$1.string().optional(), ssrIntegrity: z$1.string().optional(), ssrEntryUrl: z$1.string().optional(), /** pin-derived hashed browser manifest (mf-manifest) */ browserManifestUrl: z$1.string().optional(), dependsOn: z$1.array(z$1.string()).optional() }), api: FederationEntrySchema.extend({ localPath: z$1.string().optional(), port: z$1.number().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), shared: SharedDepMapSchema.optional(), dependsOn: z$1.array(z$1.string()).optional() }), auth: FederationEntrySchema.extend({ extendsRef: z$1.string().optional(), localPath: z$1.string().optional(), port: z$1.number().optional(), proxy: z$1.string().optional(), variables: JsonObjectSchema.optional(), secrets: z$1.array(z$1.string()).optional(), shared: SharedDepMapSchema.optional(), dependsOn: z$1.array(z$1.string()).optional(), ui: PluginRuntimeUiSchema.optional() }).optional(), plugins: z$1.record(PluginKeySchema, RuntimePluginConfigSchema).optional(), nodes: z$1.record(z$1.string(), RuntimeDependencyNodeSchema).optional() }); const ClientRuntimeConfigSchema = z$1.object({ env: z$1.enum([ "development", "production", "staging" ]), account: z$1.string(), networkId: z$1.enum(["mainnet", "testnet"]), /** the deploy fingerprint this document was rendered from (soft refresh) */ deploymentFingerprint: z$1.string().optional(), hostUrl: z$1.string().optional(), assetsUrl: z$1.string(), apiBase: z$1.string(), rpcBase: z$1.templateLiteral([z$1.literal("/"), z$1.string()]), repository: z$1.string().optional(), authAvailable: z$1.boolean().optional(), runtime: ClientRuntimeInfoSchema.optional(), ui: z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), integrity: z$1.string().optional(), /** the content-hashed container entry URL when the slot pins a version manifest */ entryUrl: z$1.string().optional(), /** composition payload — the server sets it; the client reconstructs the same tree from it before hydrate */ compose: ComposePayloadSchema.optional() }).optional(), api: z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), integrity: z$1.string().optional(), variables: JsonObjectSchema.optional() }).optional(), auth: z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), integrity: z$1.string().optional(), variables: JsonObjectSchema.optional() }).optional(), plugins: z$1.record(z$1.string(), z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), integrity: z$1.string().optional(), variables: JsonObjectSchema.optional(), ui: z$1.object({ name: z$1.string(), url: z$1.string(), entry: z$1.string(), source: SourceModeSchema, integrity: z$1.string().optional(), ssrUrl: z$1.string().optional(), ssrIntegrity: z$1.string().optional(), entryUrl: z$1.string().optional() }).optional() })).optional() }); //#endregion export { ApiPluginConfigSchema, BosConfigInputSchema, BosConfigSchema, BosPluginRefSchema, BosStagingSchema, CdnConfigSchema, CiConfigSchema, ClientRuntimeConfigSchema, ClientRuntimeInfoSchema, ComposableAppEntrySchema, DependencyNodeKindSchema, ExtendsSchema, FederationEntrySchema, HostConfigSchema, JsonObjectSchema, JsonValueSchema, ParentStarterConfigSchema, PluginUiConfigSchema, PublishAuthSchema, PublishConfigSchema, RailwayCiSchema, RuntimeConfigSchema, RuntimeDependencyNodeSchema, RuntimeLineageSchema, RuntimePluginConfigSchema, SharedConfigSchema, SharedDepConfigSchema, SharedDepMapSchema, SlotPinSchema, SourceModeSchema, StarterLevelConfigSchema, StarterLevelSchema, UiConfigSchema }; //# sourceMappingURL=types.mjs.map