everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
430 lines (428 loc) • 16.1 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
let zod = require("zod");
zod = require_runtime.__toESM(zod, 1);
let every_plugin_ui_manifest = require("every-plugin/ui/manifest");
//#region src/types.ts
const JsonValueSchema = zod.lazy(() => zod.union([
zod.string(),
zod.number(),
zod.boolean(),
zod.null(),
zod.array(JsonValueSchema),
zod.record(zod.string(), JsonValueSchema)
]));
const JsonObjectSchema = zod.record(zod.string(), JsonValueSchema);
const ExtendsSchema = zod.union([zod.string(), zod.object({
development: zod.string().optional(),
production: zod.string().optional(),
staging: zod.string().optional()
})]);
const SourceModeSchema = zod.enum(["local", "remote"]);
const SharedConfigSchema = zod.object({
version: zod.string(),
requiredVersion: zod.string().optional(),
singleton: zod.boolean().optional(),
eager: zod.boolean().optional(),
strictVersion: zod.boolean().optional(),
shareScope: zod.string().optional()
});
const SharedDepConfigSchema = SharedConfigSchema;
const SharedDepMapSchema = zod.record(zod.string(), SharedConfigSchema);
const FederationEntrySchema = zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.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: zod.string().optional(),
source: SourceModeSchema,
integrity: zod.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 = zod.object({
manifest: zod.string().min(1),
integrity: zod.string().min(1)
});
const PluginUiConfigSchema = zod.object({
name: zod.string(),
development: zod.string().optional(),
production: zod.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: zod.string().optional(),
integrity: zod.string().optional(),
ssr: zod.string().optional(),
ssrIntegrity: zod.string().optional(),
pin: SlotPinSchema.optional()
});
const ComposableAppEntrySchema = zod.object({
extends: ExtendsSchema.optional(),
name: zod.string().optional(),
development: zod.string().optional(),
production: zod.string().optional(),
integrity: zod.string().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
routes: zod.array(zod.string()).optional(),
shared: SharedDepMapSchema.optional(),
connectSrc: zod.array(zod.string()).optional(),
ui: PluginUiConfigSchema.optional(),
pin: SlotPinSchema.optional()
});
const ApiPluginConfigSchema = ComposableAppEntrySchema.extend({ dependsOn: zod.array(zod.string()).optional() });
const BosPluginRefSchema = ComposableAppEntrySchema.extend({
version: zod.string().optional(),
app: zod.record(zod.string(), zod.unknown()).optional(),
plugins: zod.record(zod.string(), zod.unknown()).optional(),
dependsOn: zod.array(zod.string()).optional()
});
const PluginRuntimeUiSchema = zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
source: SourceModeSchema,
/** browser-facing base; when set the client config serves this instead of
* `url` (server-side loading keeps `url`) */
publicUrl: zod.string().optional(),
localPath: zod.string().optional(),
port: zod.number().optional(),
integrity: zod.string().optional(),
ssrUrl: zod.string().optional(),
ssrIntegrity: zod.string().optional(),
entryUrl: zod.string().optional(),
ssrEntryUrl: zod.string().optional(),
/** pin-derived hashed browser manifest (mf-manifest) — absent for local
* slots; registration reads this instead of the overloaded `entry` */
browserManifestUrl: zod.string().optional(),
dependsOn: zod.array(zod.string()).optional()
});
const RuntimePluginConfigSchema = zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
source: SourceModeSchema,
extendsRef: zod.string().optional(),
localPath: zod.string().optional(),
port: zod.number().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
integrity: zod.string().optional(),
entryUrl: zod.string().optional(),
shared: SharedDepMapSchema.optional(),
connectSrc: zod.array(zod.string()).optional(),
ui: PluginRuntimeUiSchema.optional(),
routes: zod.array(zod.string()).optional(),
dependsOn: zod.array(zod.string()).optional()
});
const DependencyNodeKindSchema = zod.enum([
"api",
"auth",
"ui",
"plugin"
]);
const RuntimeDependencyNodeSchema = zod.object({
key: zod.string(),
kind: DependencyNodeKindSchema,
name: zod.string(),
url: zod.string(),
entry: zod.string(),
source: SourceModeSchema,
dependsOn: zod.array(zod.string()).optional(),
extendsRef: zod.string().optional(),
localPath: zod.string().optional(),
port: zod.number().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
integrity: zod.string().optional(),
shared: SharedDepMapSchema.optional(),
connectSrc: zod.array(zod.string()).optional(),
ui: PluginRuntimeUiSchema.optional(),
routes: zod.array(zod.string()).optional(),
sourceOrigin: zod.enum(["config", "manifest"]).optional(),
singletonKey: zod.string().optional()
});
const UiConfigSchema = zod.object({
name: zod.string().optional(),
development: zod.string().optional(),
production: zod.string().optional(),
/** browser-facing base overriding `production` (see PluginUiConfigSchema) */
publicUrl: zod.string().optional(),
/** direct entry SRI — only for slots without a `pin` */
integrity: zod.string().optional(),
ssr: zod.string().optional(),
ssrIntegrity: zod.string().optional(),
pin: SlotPinSchema.optional()
}).strict();
const HostConfigSchema = zod.object({
development: zod.string(),
/** Deploy state (ADR 0005) — absent until the first publish writes it. */
production: zod.string().optional(),
/** direct entry SRI — only for slots without a `pin` */
integrity: zod.string().optional(),
secrets: zod.array(zod.string()).optional(),
pin: SlotPinSchema.optional()
});
const ClientRuntimeInfoSchema = zod.object({
accountId: zod.string(),
gatewayId: zod.string(),
runtimeBasePath: zod.string(),
title: zod.string().nullable(),
description: zod.string().nullable(),
hostUrl: zod.string().nullable()
});
const RuntimeLineageSchema = zod.object({
parent: zod.string().nullable(),
root: zod.string().nullable(),
depth: zod.number().int().nonnegative(),
extendsChain: zod.array(zod.string())
});
const BosStagingSchema = zod.object({
domain: zod.string(),
account: zod.string().optional()
});
const BosConfigInputAppEntrySchema = zod.record(zod.string(), zod.unknown());
const BosConfigInputSchema = zod.lazy(() => zod.object({
extends: ExtendsSchema.optional(),
account: zod.string().optional(),
domain: zod.string().optional(),
status: zod.enum([
"active",
"suspended",
"pending_deletion"
]).optional(),
testnet: zod.string().optional(),
staging: BosStagingSchema.optional(),
template: zod.string().optional(),
gateway: zod.object({
development: zod.string().optional(),
production: zod.string().optional(),
account: zod.string().optional()
}).optional(),
development: zod.string().optional(),
production: zod.string().optional(),
integrity: zod.string().optional(),
name: zod.string().optional(),
version: zod.string().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
routes: zod.array(zod.string()).optional(),
app: zod.record(zod.string(), BosConfigInputAppEntrySchema).optional(),
plugins: zod.record(zod.string(), zod.union([zod.string(), BosConfigInputSchema])).optional(),
publish: zod.object({ auth: zod.enum([
"session",
"key",
"custody"
]).optional() }).optional(),
ci: CiConfigSchema.optional(),
cdn: CdnConfigSchema.optional()
}));
const StarterLevelSchema = zod.enum(["simple", "advanced"]);
const StarterLevelConfigSchema = zod.object({
include: zod.array(zod.string()).optional(),
exclude: zod.array(zod.string()).optional()
});
const ParentStarterConfigSchema = zod.object({
levels: zod.record(zod.string(), StarterLevelConfigSchema).optional(),
exclude: zod.array(zod.string()).optional()
});
const RailwayCiSchema = zod.object({ service: zod.string() });
const CiConfigSchema = zod.object({
image: zod.string().optional(),
railway: RailwayCiSchema.optional()
});
/** Where this runtime's built bundles are served from. Inherited via extends. */
const CdnConfigSchema = zod.object({ origin: zod.string().optional() });
const PublishAuthSchema = zod.enum([
"session",
"key",
"custody"
]);
const PublishConfigSchema = zod.object({ auth: PublishAuthSchema.optional() });
const PluginKeySchema = zod.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 = zod.object({
account: zod.string(),
extends: ExtendsSchema.optional(),
domain: zod.string().optional(),
title: zod.string().optional(),
description: zod.string().optional(),
testnet: zod.string().optional(),
staging: BosStagingSchema.optional(),
repository: zod.string().optional(),
publish: PublishConfigSchema.optional(),
ci: CiConfigSchema.optional(),
cdn: CdnConfigSchema.optional(),
rolledBackFrom: zod.string().optional(),
starter: ParentStarterConfigSchema.optional(),
plugins: zod.record(PluginKeySchema, zod.union([zod.string(), BosPluginRefSchema])).optional(),
app: zod.object({
host: HostConfigSchema,
ui: UiConfigSchema,
api: ApiPluginConfigSchema,
auth: ComposableAppEntrySchema.optional()
})
});
const RuntimeConfigSchema = zod.object({
env: zod.enum([
"development",
"production",
"staging"
]),
account: zod.string(),
domain: zod.string().optional(),
networkId: zod.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: zod.string().optional(),
title: zod.string().optional(),
description: zod.string().optional(),
repository: zod.string().optional(),
host: FederationEntrySchema.extend({
localPath: zod.string().optional(),
port: zod.number().optional(),
secrets: zod.array(zod.string()).optional(),
remoteUrl: zod.string().optional()
}),
ui: FederationEntrySchema.extend({
localPath: zod.string().optional(),
port: zod.number().optional(),
/** browser-facing base; when set the client config serves this instead
* of `url` (server-side loading keeps `url`) */
publicUrl: zod.string().optional(),
ssrUrl: zod.string().optional(),
ssrIntegrity: zod.string().optional(),
ssrEntryUrl: zod.string().optional(),
/** pin-derived hashed browser manifest (mf-manifest) */
browserManifestUrl: zod.string().optional(),
dependsOn: zod.array(zod.string()).optional()
}),
api: FederationEntrySchema.extend({
localPath: zod.string().optional(),
port: zod.number().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
shared: SharedDepMapSchema.optional(),
dependsOn: zod.array(zod.string()).optional()
}),
auth: FederationEntrySchema.extend({
extendsRef: zod.string().optional(),
localPath: zod.string().optional(),
port: zod.number().optional(),
proxy: zod.string().optional(),
variables: JsonObjectSchema.optional(),
secrets: zod.array(zod.string()).optional(),
shared: SharedDepMapSchema.optional(),
dependsOn: zod.array(zod.string()).optional(),
ui: PluginRuntimeUiSchema.optional()
}).optional(),
plugins: zod.record(PluginKeySchema, RuntimePluginConfigSchema).optional(),
nodes: zod.record(zod.string(), RuntimeDependencyNodeSchema).optional()
});
const ClientRuntimeConfigSchema = zod.object({
env: zod.enum([
"development",
"production",
"staging"
]),
account: zod.string(),
networkId: zod.enum(["mainnet", "testnet"]),
/** the deploy fingerprint this document was rendered from (soft refresh) */
deploymentFingerprint: zod.string().optional(),
hostUrl: zod.string().optional(),
assetsUrl: zod.string(),
apiBase: zod.string(),
rpcBase: zod.templateLiteral([zod.literal("/"), zod.string()]),
repository: zod.string().optional(),
authAvailable: zod.boolean().optional(),
runtime: ClientRuntimeInfoSchema.optional(),
ui: zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
integrity: zod.string().optional(),
/** the content-hashed container entry URL when the slot pins a version manifest */
entryUrl: zod.string().optional(),
/** composition payload — the server sets it; the client reconstructs the same tree from it before hydrate */
compose: every_plugin_ui_manifest.ComposePayloadSchema.optional()
}).optional(),
api: zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
integrity: zod.string().optional(),
variables: JsonObjectSchema.optional()
}).optional(),
auth: zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
integrity: zod.string().optional(),
variables: JsonObjectSchema.optional()
}).optional(),
plugins: zod.record(zod.string(), zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
integrity: zod.string().optional(),
variables: JsonObjectSchema.optional(),
ui: zod.object({
name: zod.string(),
url: zod.string(),
entry: zod.string(),
source: SourceModeSchema,
integrity: zod.string().optional(),
ssrUrl: zod.string().optional(),
ssrIntegrity: zod.string().optional(),
entryUrl: zod.string().optional()
}).optional()
})).optional()
});
//#endregion
exports.ApiPluginConfigSchema = ApiPluginConfigSchema;
exports.BosConfigInputSchema = BosConfigInputSchema;
exports.BosConfigSchema = BosConfigSchema;
exports.BosPluginRefSchema = BosPluginRefSchema;
exports.BosStagingSchema = BosStagingSchema;
exports.CdnConfigSchema = CdnConfigSchema;
exports.CiConfigSchema = CiConfigSchema;
exports.ClientRuntimeConfigSchema = ClientRuntimeConfigSchema;
exports.ClientRuntimeInfoSchema = ClientRuntimeInfoSchema;
exports.ComposableAppEntrySchema = ComposableAppEntrySchema;
exports.DependencyNodeKindSchema = DependencyNodeKindSchema;
exports.ExtendsSchema = ExtendsSchema;
exports.FederationEntrySchema = FederationEntrySchema;
exports.HostConfigSchema = HostConfigSchema;
exports.JsonObjectSchema = JsonObjectSchema;
exports.JsonValueSchema = JsonValueSchema;
exports.ParentStarterConfigSchema = ParentStarterConfigSchema;
exports.PluginUiConfigSchema = PluginUiConfigSchema;
exports.PublishAuthSchema = PublishAuthSchema;
exports.PublishConfigSchema = PublishConfigSchema;
exports.RailwayCiSchema = RailwayCiSchema;
exports.RuntimeConfigSchema = RuntimeConfigSchema;
exports.RuntimeDependencyNodeSchema = RuntimeDependencyNodeSchema;
exports.RuntimeLineageSchema = RuntimeLineageSchema;
exports.RuntimePluginConfigSchema = RuntimePluginConfigSchema;
exports.SharedConfigSchema = SharedConfigSchema;
exports.SharedDepConfigSchema = SharedDepConfigSchema;
exports.SharedDepMapSchema = SharedDepMapSchema;
exports.SlotPinSchema = SlotPinSchema;
exports.SourceModeSchema = SourceModeSchema;
exports.StarterLevelConfigSchema = StarterLevelConfigSchema;
exports.StarterLevelSchema = StarterLevelSchema;
exports.UiConfigSchema = UiConfigSchema;
//# sourceMappingURL=types.cjs.map