everything-dev 1.28.11 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/init.cjs +134 -88
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +12 -2
- package/dist/cli/init.d.cts.map +1 -1
- package/dist/cli/init.d.mts +12 -2
- package/dist/cli/init.d.mts.map +1 -1
- package/dist/cli/init.mjs +134 -89
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/sync.cjs +24 -26
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +26 -28
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli/upgrade.cjs +16 -21
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +17 -22
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs.map +1 -1
- package/dist/config.cjs +20 -5
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +13 -3
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts +13 -3
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +19 -5
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +6 -5
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +17 -13
- package/dist/contract.d.cts.map +1 -1
- package/dist/contract.d.mts +16 -12
- package/dist/contract.d.mts.map +1 -1
- package/dist/contract.meta.cjs +2 -3
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +5 -6
- package/dist/contract.meta.d.mts +5 -6
- package/dist/contract.meta.mjs +2 -3
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +7 -7
- package/dist/contract.mjs.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/plugin.cjs +17 -12
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +9 -8
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts +9 -8
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +18 -13
- package/dist/plugin.mjs.map +1 -1
- package/dist/sidebar.cjs +1 -1
- package/dist/sidebar.cjs.map +1 -1
- package/dist/sidebar.d.cts.map +1 -1
- package/dist/sidebar.d.mts.map +1 -1
- package/dist/sidebar.mjs +1 -1
- package/dist/sidebar.mjs.map +1 -1
- package/dist/types.d.cts +2 -2
- package/dist/types.d.mts +2 -2
- package/package.json +1 -1
package/dist/config.d.mts
CHANGED
|
@@ -21,6 +21,12 @@ interface ConfigResult {
|
|
|
21
21
|
};
|
|
22
22
|
warnings?: string[];
|
|
23
23
|
}
|
|
24
|
+
interface LocalConfigResult {
|
|
25
|
+
config: BosConfigInput;
|
|
26
|
+
source: {
|
|
27
|
+
path: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
24
30
|
interface RemoteConfigResult {
|
|
25
31
|
rawConfig: BosConfigInput;
|
|
26
32
|
config: BosConfig;
|
|
@@ -33,7 +39,11 @@ interface ResolvedComposableReference {
|
|
|
33
39
|
targetPath: string;
|
|
34
40
|
associatedUi?: Record<string, unknown>;
|
|
35
41
|
}
|
|
36
|
-
declare function
|
|
42
|
+
declare function loadLocalConfig(options?: {
|
|
43
|
+
cwd?: string;
|
|
44
|
+
path?: string;
|
|
45
|
+
}): Promise<LocalConfigResult | null>;
|
|
46
|
+
declare function loadResolvedConfig(options?: {
|
|
37
47
|
cwd?: string;
|
|
38
48
|
path?: string;
|
|
39
49
|
env?: BosEnv;
|
|
@@ -48,7 +58,7 @@ declare function parseRuntimeOverrideTargets(value?: string | null): RuntimeOver
|
|
|
48
58
|
declare function isRuntimeOverrideAllowed(allowedTargets: ReadonlyArray<RuntimeOverrideTarget>, target: "ui" | "api" | "plugins" | `plugins.${string}`): boolean;
|
|
49
59
|
declare function buildRuntimePluginsForConfig(config: BosConfig, baseDir: string, env: BosEnv): Promise<Record<string, RuntimePluginConfig> | undefined>;
|
|
50
60
|
declare function getResolvedConfigPath(configDir: string): string;
|
|
51
|
-
declare function
|
|
61
|
+
declare function loadGeneratedResolvedConfig(configDir: string): BosConfig | null;
|
|
52
62
|
declare function writeResolvedConfig(configDir: string, config: BosConfig, env: BosEnv, extendsChain?: string[], source?: string): void;
|
|
53
63
|
declare function resolveBosConfigPath(configDir: string): string;
|
|
54
64
|
declare function readBosConfigForBuild(configDir: string): Record<string, unknown>;
|
|
@@ -69,5 +79,5 @@ declare function resolveDevelopmentHostUrl(value: string | undefined): string;
|
|
|
69
79
|
declare function getHostDevelopmentPort(value: string | undefined): number;
|
|
70
80
|
declare function parsePort(url: string): number;
|
|
71
81
|
//#endregion
|
|
72
|
-
export { BOS_CONFIG_ORDER, type BosConfig, BosConfigSchema, BuildRuntimeConfigOptions, ConfigResult, RemoteConfigResult, ResolvedComposableReference, type RuntimeConfig, buildRuntimeConfig, buildRuntimePluginsForConfig, clearConfigCache, drainConfigWarnings, findConfigPath, getConfig, getHostDevelopmentPort, getProjectRoot, getResolvedConfigPath, isLocalDevelopmentTarget, isRuntimeOverrideAllowed, loadBosConfig,
|
|
82
|
+
export { BOS_CONFIG_ORDER, type BosConfig, BosConfigSchema, BuildRuntimeConfigOptions, ConfigResult, LocalConfigResult, RemoteConfigResult, ResolvedComposableReference, type RuntimeConfig, buildRuntimeConfig, buildRuntimePluginsForConfig, clearConfigCache, drainConfigWarnings, findConfigPath, getConfig, getHostDevelopmentPort, getProjectRoot, getResolvedConfigPath, isLocalDevelopmentTarget, isRuntimeOverrideAllowed, loadBosConfig, loadGeneratedResolvedConfig, loadLocalConfig, loadRemoteConfig, loadResolvedConfig, parsePort, parseRuntimeOverrideTargets, readBosConfigForBuild, rebuildOrderedConfig, resolveBosConfigPath, resolveComposableReference, resolveDevelopmentHostUrl, resolveLocalDevelopmentPath, resolvePluginRuntimeName, resumeWarnings, suppressWarnings, writeResolvedConfig };
|
|
73
83
|
//# sourceMappingURL=config.d.mts.map
|
package/dist/config.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":";;;;cAwBM,YAAA;AAAA,KAID,qBAAA;AAAA,iBAcW,gBAAA,CAAA;AAAA,iBAMA,gBAAA,CAAA;AAAA,iBAIA,cAAA,CAAA;AAAA,iBAIA,mBAAA,CAAA;AAAA,iBAcA,cAAA,CAAe,GAAA;AAAA,iBAYf,SAAA,CAAA,GAAa,SAAA;AAAA,iBAIb,cAAA,CAAA;AAAA,UAOC,YAAA;EACf,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,MAAA;IACE,IAAA;IACA,QAAA;IACA,MAAA;EAAA;EAEF,QAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA,EAAW,cAAA;EACX,MAAA,EAAQ,SAAA;EACR,MAAA;EACA,YAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA,EAAO,YAAA;EACP,eAAA;EACA,UAAA;EACA,YAAA,GAAe,MAAA;AAAA;AAAA,iBAQK,
|
|
1
|
+
{"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":";;;;cAwBM,YAAA;AAAA,KAID,qBAAA;AAAA,iBAcW,gBAAA,CAAA;AAAA,iBAMA,gBAAA,CAAA;AAAA,iBAIA,cAAA,CAAA;AAAA,iBAIA,mBAAA,CAAA;AAAA,iBAcA,cAAA,CAAe,GAAA;AAAA,iBAYf,SAAA,CAAA,GAAa,SAAA;AAAA,iBAIb,cAAA,CAAA;AAAA,UAOC,YAAA;EACf,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,MAAA;IACE,IAAA;IACA,QAAA;IACA,MAAA;EAAA;EAEF,QAAA;AAAA;AAAA,UAGe,iBAAA;EACf,MAAA,EAAQ,cAAA;EACR,MAAA;IACE,IAAA;EAAA;AAAA;AAAA,UAIa,kBAAA;EACf,SAAA,EAAW,cAAA;EACX,MAAA,EAAQ,SAAA;EACR,MAAA;EACA,YAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA,EAAO,YAAA;EACP,eAAA;EACA,UAAA;EACA,YAAA,GAAe,MAAA;AAAA;AAAA,iBAQK,eAAA,CAAgB,OAAA;EACpC,GAAA;EACA,IAAA;AAAA,IACE,OAAA,CAAQ,iBAAA;AAAA,iBAoBU,kBAAA,CAAmB,OAAA;EACvC,GAAA;EACA,IAAA;EACA,GAAA,GAAM,MAAA;AAAA,IACJ,OAAA,CAAQ,YAAA;AAAA,iBAqDU,aAAA,CAAc,OAAA;EAClC,GAAA;EACA,IAAA;EACA,GAAA,GAAM,MAAA;AAAA,IACJ,OAAA,CAAQ,aAAA;AAAA,iBASU,gBAAA,CACpB,MAAA,UACA,GAAA,GAAK,MAAA,GACJ,OAAA,CAAQ,kBAAA;AAAA,iBAwBK,2BAAA,CAA4B,KAAA,mBAAwB,qBAAA;AAAA,iBAyBpD,wBAAA,CACd,cAAA,EAAgB,aAAA,CAAc,qBAAA,GAC9B,MAAA;AAAA,iBAaoB,4BAAA,CACpB,MAAA,EAAQ,SAAA,EACR,OAAA,UACA,GAAA,EAAK,MAAA,GACJ,OAAA,CAAQ,MAAA,SAAe,mBAAA;AAAA,iBA8FV,qBAAA,CAAsB,SAAA;AAAA,iBAItB,2BAAA,CAA4B,SAAA,WAAoB,SAAA;AAAA,iBAahD,mBAAA,CACd,SAAA,UACA,MAAA,EAAQ,SAAA,EACR,GAAA,EAAK,MAAA,EACL,YAAA,aACA,MAAA;AAAA,iBA6Bc,oBAAA,CAAqB,SAAA;AAAA,iBAMrB,qBAAA,CAAsB,SAAA,WAAoB,MAAA;AAAA,iBAiGpC,0BAAA,CACpB,MAAA,EAAQ,YAAA,EACR,OAAA,UACA,GAAA,EAAK,MAAA,EACL,iBAAA,WACC,OAAA,CAAQ,2BAAA;AAAA,UAmHM,yBAAA;EACf,OAAA,GAAU,MAAA,SAAe,mBAAA;EACzB,UAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,KAAA;AAAA;AAAA,iBAGc,kBAAA,CACd,MAAA,EAAQ,SAAA,EACR,OAAA,UACA,GAAA,EAAK,MAAA,EACL,OAAA,GAAU,yBAAA,GACT,aAAA;AAAA,iBAwVa,wBAAA,CACd,YAAA,sBACA,SAAA,sBACA,QAAA;AAAA,iBAwEc,wBAAA,CACd,KAAA,uBACC,KAAA,cAAmB,YAAA;AAAA,iBAIN,2BAAA,CACd,KAAA,sBACA,OAAA;AAAA,iBAUc,yBAAA,CAA0B,KAAA;AAAA,iBAQ1B,sBAAA,CAAuB,KAAA;AAAA,iBAIvB,SAAA,CAAU,GAAA"}
|
package/dist/config.mjs
CHANGED
|
@@ -46,10 +46,24 @@ function getConfig() {
|
|
|
46
46
|
return cachedConfig;
|
|
47
47
|
}
|
|
48
48
|
function getProjectRoot() {
|
|
49
|
-
if (!projectRoot) throw new Error("Config not loaded. Call
|
|
49
|
+
if (!projectRoot) throw new Error("Config not loaded. Call loadResolvedConfig() first.");
|
|
50
50
|
return projectRoot;
|
|
51
51
|
}
|
|
52
|
-
async function
|
|
52
|
+
async function loadLocalConfig(options) {
|
|
53
|
+
const configPath = options?.path ?? findConfigPath(options?.cwd);
|
|
54
|
+
if (!configPath) {
|
|
55
|
+
projectRoot = options?.cwd ?? process.cwd();
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const baseDir = dirname(configPath);
|
|
59
|
+
const config = await loadConfigFile(configPath, baseDir);
|
|
60
|
+
projectRoot = baseDir;
|
|
61
|
+
return {
|
|
62
|
+
config,
|
|
63
|
+
source: { path: configPath }
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function loadResolvedConfig(options) {
|
|
53
67
|
const configPath = options?.path ?? findConfigPath(options?.cwd);
|
|
54
68
|
if (!configPath) {
|
|
55
69
|
projectRoot = options?.cwd ?? process.cwd();
|
|
@@ -84,7 +98,7 @@ async function loadConfig(options) {
|
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
100
|
async function loadBosConfig(options) {
|
|
87
|
-
const result = await
|
|
101
|
+
const result = await loadResolvedConfig(options);
|
|
88
102
|
if (!result) throw new Error("No bos.config.json found");
|
|
89
103
|
return result.runtime;
|
|
90
104
|
}
|
|
@@ -156,7 +170,7 @@ async function resolveConfigComposableEntries(config, baseDir, env) {
|
|
|
156
170
|
function getResolvedConfigPath(configDir) {
|
|
157
171
|
return join(configDir, ".bos", RESOLVED_CONFIG_FILENAME);
|
|
158
172
|
}
|
|
159
|
-
function
|
|
173
|
+
function loadGeneratedResolvedConfig(configDir) {
|
|
160
174
|
const resolvedPath = getResolvedConfigPath(configDir);
|
|
161
175
|
if (!existsSync(resolvedPath)) return null;
|
|
162
176
|
try {
|
|
@@ -553,5 +567,5 @@ function parsePort(url) {
|
|
|
553
567
|
}
|
|
554
568
|
|
|
555
569
|
//#endregion
|
|
556
|
-
export { BOS_CONFIG_ORDER, BosConfigSchema, buildRuntimeConfig, buildRuntimePluginsForConfig, clearConfigCache, drainConfigWarnings, findConfigPath, getConfig, getHostDevelopmentPort, getProjectRoot, getResolvedConfigPath, isLocalDevelopmentTarget, isRuntimeOverrideAllowed, loadBosConfig,
|
|
570
|
+
export { BOS_CONFIG_ORDER, BosConfigSchema, buildRuntimeConfig, buildRuntimePluginsForConfig, clearConfigCache, drainConfigWarnings, findConfigPath, getConfig, getHostDevelopmentPort, getProjectRoot, getResolvedConfigPath, isLocalDevelopmentTarget, isRuntimeOverrideAllowed, loadBosConfig, loadGeneratedResolvedConfig, loadLocalConfig, loadRemoteConfig, loadResolvedConfig, parsePort, parseRuntimeOverrideTargets, readBosConfigForBuild, rebuildOrderedConfig, resolveBosConfigPath, resolveComposableReference, resolveDevelopmentHostUrl, resolveLocalDevelopmentPath, resolvePluginRuntimeName, resumeWarnings, suppressWarnings, writeResolvedConfig };
|
|
557
571
|
//# sourceMappingURL=config.mjs.map
|
package/dist/config.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","names":[],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, join, resolve } from \"node:path\";\nimport { fetchBosConfigFromFastKv } from \"./fastkv\";\nimport {\n type BosEnv,\n bosConfigMerger,\n isPlainObject,\n mergeBosConfigWithExtends,\n type ResolvedConfigMeta,\n rebuildOrderedConfig,\n resolveExtendsRef,\n} from \"./merge\";\nimport { getNetworkIdForAccount } from \"./network\";\nimport type {\n BosConfig,\n BosConfigInput,\n BosPluginRef,\n ExtendsConfig,\n PluginEntryValue,\n RuntimeConfig,\n RuntimePluginConfig,\n} from \"./types\";\nimport { BosConfigSchema } from \"./types\";\n\nconst LOCAL_PREFIX = \"local:\";\nconst DEFAULT_HOST_PORT = 3000;\nconst RESOLVED_CONFIG_FILENAME = \"bos.resolved-config.json\";\n\ntype RuntimeOverrideTarget = \"ui\" | \"api\" | \"plugins\" | `plugins.${string}`;\n\ninterface RuntimeTarget {\n source: \"local\" | \"remote\";\n url: string;\n localPath?: string;\n port?: number;\n}\n\nlet cachedConfig: BosConfig | null = null;\nlet projectRoot: string | null = null;\nlet configWarnings: string[] = [];\nlet suppressConfigWarnings = false;\n\nexport function clearConfigCache(): void {\n cachedConfig = null;\n projectRoot = null;\n configWarnings = [];\n}\n\nexport function suppressWarnings(): void {\n suppressConfigWarnings = true;\n}\n\nexport function resumeWarnings(): void {\n suppressConfigWarnings = false;\n}\n\nexport function drainConfigWarnings(): string[] {\n const warnings = [...configWarnings];\n configWarnings = [];\n return warnings;\n}\n\nfunction emitConfigWarning(message: string): void {\n if (suppressConfigWarnings) {\n configWarnings.push(message);\n } else {\n console.warn(message);\n }\n}\n\nexport function findConfigPath(cwd?: string): string | null {\n let dir = cwd ?? process.cwd();\n while (dir !== \"/\") {\n const configPath = join(dir, \"bos.config.json\");\n if (existsSync(configPath)) {\n return configPath;\n }\n dir = dirname(dir);\n }\n return null;\n}\n\nexport function getConfig(): BosConfig | null {\n return cachedConfig;\n}\n\nexport function getProjectRoot(): string {\n if (!projectRoot) {\n throw new Error(\"Config not loaded. Call loadConfig() first.\");\n }\n return projectRoot;\n}\n\nexport interface ConfigResult {\n config: BosConfig;\n runtime: RuntimeConfig;\n source: {\n path: string;\n extended?: string[];\n remote?: boolean;\n };\n warnings?: string[];\n}\n\nexport interface RemoteConfigResult {\n rawConfig: BosConfigInput;\n config: BosConfig;\n source: string;\n extendsChain: string[];\n}\n\nexport interface ResolvedComposableReference {\n entry: BosPluginRef;\n providerBaseDir: string;\n targetPath: string;\n associatedUi?: Record<string, unknown>;\n}\n\ninterface ParsedExtendsTarget {\n configPath: string;\n targetPath?: string;\n}\n\nexport async function loadConfig(options?: {\n cwd?: string;\n path?: string;\n env?: BosEnv;\n}): Promise<ConfigResult | null> {\n const configPath = options?.path ?? findConfigPath(options?.cwd);\n if (!configPath) {\n projectRoot = options?.cwd ?? process.cwd();\n return null;\n }\n\n const baseDir = dirname(configPath);\n const env = options?.env ?? \"development\";\n const runtimeEnv: BosEnv = env === \"staging\" ? \"production\" : env;\n\n try {\n suppressWarnings();\n const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n configPath,\n baseDir,\n new Set(),\n extendedChain,\n env,\n );\n const config = await resolveConfigComposableEntries(\n BosConfigSchema.parse(parsed),\n baseDir,\n runtimeEnv,\n );\n\n cachedConfig = config;\n projectRoot = baseDir;\n\n const pluginRuntime = await resolveRuntimePlugins(config.plugins ?? {}, baseDir, runtimeEnv);\n const runtime = buildRuntimeConfig(config, baseDir, runtimeEnv, {\n plugins: pluginRuntime,\n });\n const warnings = drainConfigWarnings();\n resumeWarnings();\n\n return {\n config,\n runtime,\n source: {\n path: configPath,\n extended: extendedChain.length > 0 ? extendedChain : undefined,\n remote: extendedChain.some((entry) => entry.startsWith(\"bos://\")),\n },\n warnings: warnings.length > 0 ? warnings : undefined,\n };\n } catch (error) {\n resumeWarnings();\n throw new Error(`Failed to load config from ${configPath}: ${error}`);\n }\n}\n\nexport async function loadBosConfig(options?: {\n cwd?: string;\n path?: string;\n env?: BosEnv;\n}): Promise<RuntimeConfig> {\n const result = await loadConfig(options);\n if (!result) {\n throw new Error(\"No bos.config.json found\");\n }\n\n return result.runtime;\n}\n\nexport async function loadRemoteConfig(\n bosUrl: string,\n env: BosEnv = \"production\",\n): Promise<RemoteConfigResult> {\n const runtimeEnv: BosEnv = env === \"staging\" ? \"production\" : env;\n const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n bosUrl,\n process.cwd(),\n new Set(),\n extendedChain,\n env,\n );\n const config = await resolveConfigComposableEntries(\n BosConfigSchema.parse(parsed),\n process.cwd(),\n runtimeEnv,\n );\n\n return {\n rawConfig: await loadConfigFile(bosUrl, process.cwd()),\n config,\n source: bosUrl,\n extendsChain: extendedChain,\n };\n}\n\nexport function parseRuntimeOverrideTargets(value?: string | null): RuntimeOverrideTarget[] {\n if (!value) {\n return [];\n }\n\n return [\n ...new Set(\n value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean),\n ),\n ].map((entry) => {\n if (entry === \"ui\" || entry === \"api\" || entry === \"plugins\") {\n return entry;\n }\n\n if (entry.startsWith(\"plugins.\") && entry.length > \"plugins.\".length) {\n return entry as RuntimeOverrideTarget;\n }\n\n throw new Error(`Invalid runtime override target: ${entry}`);\n });\n}\n\nexport function isRuntimeOverrideAllowed(\n allowedTargets: ReadonlyArray<RuntimeOverrideTarget>,\n target: \"ui\" | \"api\" | \"plugins\" | `plugins.${string}`,\n): boolean {\n if (allowedTargets.includes(target as RuntimeOverrideTarget)) {\n return true;\n }\n\n if (target.startsWith(\"plugins.\")) {\n return allowedTargets.includes(\"plugins.*\");\n }\n\n return false;\n}\n\nexport async function buildRuntimePluginsForConfig(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n): Promise<Record<string, RuntimePluginConfig> | undefined> {\n const plugins = await resolveRuntimePlugins(config.plugins ?? {}, baseDir, env);\n return Object.keys(plugins).length > 0 ? plugins : undefined;\n}\n\nfunction getEntryAssociatedUi(entry: Partial<BosPluginRef>): Record<string, unknown> | undefined {\n if (!isPlainObject(entry.app)) {\n return undefined;\n }\n\n const app = entry.app as Record<string, unknown>;\n return isPlainObject(app.ui) ? (app.ui as Record<string, unknown>) : undefined;\n}\n\nfunction mergeAssociatedUi(\n parentUi: Record<string, unknown> | undefined,\n childUi: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n if (!parentUi) {\n return childUi ? { ...childUi } : undefined;\n }\n\n if (!childUi) {\n return { ...parentUi };\n }\n\n return bosConfigMerger({ ...childUi }, parentUi) as Record<string, unknown>;\n}\n\nfunction withAssociatedUi(\n entry: BosPluginRef,\n associatedUi?: Record<string, unknown>,\n): BosPluginRef {\n if (!associatedUi) {\n return entry;\n }\n\n const app = isPlainObject(entry.app)\n ? ({ ...(entry.app as Record<string, unknown>) } as Record<string, unknown>)\n : {};\n app.ui = mergeAssociatedUi(getEntryAssociatedUi(entry), associatedUi);\n\n return {\n ...entry,\n app,\n };\n}\n\nasync function resolveConfigComposableEntries(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n): Promise<BosConfig> {\n const resolvedApi = await resolveComposableReference(\n config.app.api as BosPluginRef,\n baseDir,\n env,\n \"app.api\",\n );\n const resolvedAuth = config.app.auth\n ? await resolveComposableReference(config.app.auth as BosPluginRef, baseDir, env, \"app.auth\")\n : undefined;\n\n const resolvedPlugins = config.plugins\n ? Object.fromEntries(\n await Promise.all(\n Object.entries(config.plugins).map(async ([pluginId, pluginValue]) => {\n const resolvedPlugin = await resolveComposableReference(\n asComposableEntry(pluginValue),\n baseDir,\n env,\n `plugins.${pluginId}`,\n );\n\n return [\n pluginId,\n withAssociatedUi(resolvedPlugin.entry, resolvedPlugin.associatedUi),\n ] as const;\n }),\n ),\n )\n : undefined;\n\n return {\n ...config,\n app: {\n ...config.app,\n api: resolvedApi.entry,\n auth: resolvedAuth?.entry,\n },\n plugins: resolvedPlugins,\n };\n}\n\nexport function getResolvedConfigPath(configDir: string): string {\n return join(configDir, \".bos\", RESOLVED_CONFIG_FILENAME);\n}\n\nexport function loadResolvedConfig(configDir: string): BosConfig | null {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (!existsSync(resolvedPath)) return null;\n try {\n const raw = JSON.parse(readFileSync(resolvedPath, \"utf-8\"));\n if (!isPlainObject(raw)) return null;\n const { _resolved, ...configData } = raw;\n return BosConfigSchema.parse(configData);\n } catch {\n return null;\n }\n}\n\nexport function writeResolvedConfig(\n configDir: string,\n config: BosConfig,\n env: BosEnv,\n extendsChain?: string[],\n source?: string,\n): void {\n const resolvedPath = getResolvedConfigPath(configDir);\n const resolvedDir = dirname(resolvedPath);\n if (!existsSync(resolvedDir)) {\n mkdirSync(resolvedDir, { recursive: true });\n }\n\n const ordered = rebuildOrderedConfig(config);\n const meta: ResolvedConfigMeta = {\n env,\n resolvedAt: new Date().toISOString(),\n extendsChain: extendsChain ?? [],\n ...(source ? { source } : {}),\n };\n const output = {\n _resolved: meta,\n ...ordered,\n };\n\n const content = `${JSON.stringify(output, null, 2)}\\n`;\n try {\n if (readFileSync(resolvedPath, \"utf-8\") === content) return;\n } catch {\n // file doesn't exist yet\n }\n writeFileSync(resolvedPath, content);\n}\n\nexport function resolveBosConfigPath(configDir: string): string {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (existsSync(resolvedPath)) return resolvedPath;\n return join(configDir, \"bos.config.json\");\n}\n\nexport function readBosConfigForBuild(configDir: string): Record<string, unknown> {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (existsSync(resolvedPath)) {\n try {\n const raw = JSON.parse(readFileSync(resolvedPath, \"utf-8\"));\n if (isPlainObject(raw)) {\n const { _resolved, ...configData } = raw;\n return configData as Record<string, unknown>;\n }\n } catch {}\n }\n const bosConfigPath = join(configDir, \"bos.config.json\");\n return JSON.parse(readFileSync(bosConfigPath, \"utf-8\")) as Record<string, unknown>;\n}\n\nfunction parseExtendsTarget(ref: string): ParsedExtendsTarget {\n const hashIndex = ref.indexOf(\"#\");\n if (hashIndex === -1) {\n return { configPath: ref };\n }\n\n const configPath = ref.slice(0, hashIndex);\n const targetPath = ref.slice(hashIndex + 1);\n return {\n configPath,\n targetPath: targetPath.length > 0 ? targetPath : undefined,\n };\n}\n\nfunction getConfigBaseDir(configPath: string, baseDir: string): string {\n if (configPath.startsWith(\"bos://\")) return baseDir;\n return dirname(isAbsolute(configPath) ? configPath : resolve(baseDir, configPath));\n}\n\nfunction asComposableEntry(value: unknown): BosPluginRef {\n if (value === undefined) {\n return {};\n }\n if (typeof value === \"string\") {\n return { extends: value };\n }\n if (!isPlainObject(value)) {\n throw new Error(`Expected config entry object, received ${typeof value}`);\n }\n return value as BosPluginRef;\n}\n\nfunction getTargetedEntry(config: BosConfigInput, targetPath: string): BosPluginRef {\n if (targetPath === \"app.api\") {\n return asComposableEntry(config.app?.api);\n }\n\n if (targetPath === \"app.auth\") {\n return asComposableEntry(config.app?.auth);\n }\n\n if (targetPath.startsWith(\"plugins.\")) {\n const pluginId = targetPath.slice(\"plugins.\".length);\n if (pluginId.length === 0) {\n throw new Error(`Invalid plugin target path: ${targetPath}`);\n }\n return asComposableEntry(config.plugins?.[pluginId]);\n }\n\n throw new Error(`Unsupported extends target path: ${targetPath}`);\n}\n\nfunction getAssociatedUi(\n config: BosConfigInput,\n _targetPath: string,\n): Record<string, unknown> | undefined {\n return isPlainObject(config.app?.ui) ? (config.app.ui as Record<string, unknown>) : undefined;\n}\n\nfunction mergeComposableEntries(\n parent: Partial<BosPluginRef>,\n child: Partial<BosPluginRef>,\n): BosPluginRef {\n return bosConfigMerger({ ...child }, parent) as BosPluginRef;\n}\n\nfunction stripUnsafeLocalDevelopment<T extends Record<string, unknown> | undefined>(\n entry: T,\n allowLocalPaths: boolean,\n): T {\n if (!entry || allowLocalPaths) {\n return entry;\n }\n\n if (typeof entry.development === \"string\" && entry.development.startsWith(LOCAL_PREFIX)) {\n const { development: _ignored, ...rest } = entry;\n return rest as T;\n }\n\n return entry;\n}\n\nexport async function resolveComposableReference(\n source: BosPluginRef,\n baseDir: string,\n env: BosEnv,\n defaultTargetPath: string,\n): Promise<ResolvedComposableReference> {\n let resolvedEntry: BosPluginRef = {};\n let providerBaseDir = baseDir;\n let targetPath = defaultTargetPath;\n let associatedUi = getEntryAssociatedUi(source);\n let allowLocalPaths = false;\n let extendsError: unknown;\n\n const extendsRef = source.extends ? resolveExtendsRef(source.extends, env) : undefined;\n if (extendsRef) {\n const parsed = parseExtendsTarget(extendsRef);\n targetPath = parsed.targetPath ?? defaultTargetPath;\n const extendsBaseDir = getConfigBaseDir(parsed.configPath, baseDir);\n try {\n const extendedConfig = await resolveConfigWithExtends(\n parsed.configPath,\n extendsBaseDir,\n new Set(),\n [],\n env,\n );\n resolvedEntry = mergeComposableEntries(\n resolvedEntry,\n getTargetedEntry(extendedConfig, targetPath),\n );\n providerBaseDir = extendsBaseDir;\n associatedUi = mergeAssociatedUi(associatedUi, getAssociatedUi(extendedConfig, targetPath));\n } catch (error) {\n extendsError = error;\n }\n }\n\n const localDevelopment =\n typeof source.development === \"string\" && source.development.startsWith(LOCAL_PREFIX)\n ? source.development\n : undefined;\n const localDevelopmentPath = localDevelopment\n ? resolve(baseDir, localDevelopment.slice(LOCAL_PREFIX.length).trim())\n : undefined;\n const hasUsableLocalDevelopment = Boolean(\n localDevelopmentPath && existsSync(localDevelopmentPath),\n );\n\n if (localDevelopmentPath) {\n const localPath = localDevelopmentPath;\n const localConfigPath = join(localPath, \"bos.config.json\");\n if (existsSync(localConfigPath)) {\n const localConfig = await resolveConfigWithExtends(\n localConfigPath,\n localPath,\n new Set(),\n [],\n env,\n );\n resolvedEntry = mergeComposableEntries(\n resolvedEntry,\n getTargetedEntry(localConfig, targetPath),\n );\n providerBaseDir = localPath;\n associatedUi = mergeAssociatedUi(associatedUi, getAssociatedUi(localConfig, targetPath));\n allowLocalPaths = true;\n }\n }\n\n const sourceOverrides = { ...source };\n if (allowLocalPaths && localDevelopment) {\n delete sourceOverrides.development;\n }\n\n resolvedEntry = mergeComposableEntries(resolvedEntry, sourceOverrides);\n associatedUi = mergeAssociatedUi(associatedUi, getEntryAssociatedUi(sourceOverrides));\n\n if (extendsError && !allowLocalPaths && !hasUsableLocalDevelopment) {\n throw extendsError;\n }\n\n return {\n entry: stripUnsafeLocalDevelopment(resolvedEntry, allowLocalPaths || Boolean(localDevelopment)),\n providerBaseDir,\n targetPath,\n associatedUi: stripUnsafeLocalDevelopment(associatedUi, allowLocalPaths),\n };\n}\n\nfunction resolveDevelopmentTarget(\n development: string | undefined,\n production: string | undefined,\n baseDir: string,\n forceSource?: \"local\" | \"remote\",\n target?: string,\n extendsRef?: string,\n): RuntimeTarget {\n if (forceSource === \"remote\") {\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n if (!development) {\n if (production && target) {\n if (extendsRef) {\n emitConfigWarning(`[Config] Resolving \"${target}\" from ${extendsRef}`);\n } else {\n emitConfigWarning(`[Config] No development target for \"${target}\", using production`);\n }\n }\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n const devTarget = resolveRuntimeTarget(development, baseDir);\n if (devTarget.source === \"local\" && (!devTarget.localPath || !existsSync(devTarget.localPath))) {\n if (production && target) {\n emitConfigWarning(`[Config] Could not load local target for \"${target}\", using production`);\n }\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n return devTarget;\n}\n\nexport interface BuildRuntimeConfigOptions {\n plugins?: Record<string, RuntimePluginConfig>;\n hostSource?: \"local\" | \"remote\";\n uiSource?: \"local\" | \"remote\";\n apiSource?: \"local\" | \"remote\";\n authSource?: \"local\" | \"remote\";\n proxy?: string;\n}\n\nexport function buildRuntimeConfig(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n options?: BuildRuntimeConfigOptions,\n): RuntimeConfig {\n const uiConfig = config.app.ui;\n const apiConfig = config.app.api;\n const authConfig = config.app.auth;\n const uiRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n uiConfig.development,\n uiConfig.production,\n baseDir,\n options?.uiSource,\n \"app.ui\",\n )\n : resolveRuntimeTarget(uiConfig.production, baseDir, \"remote\");\n const apiRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n apiConfig.development,\n apiConfig.production,\n baseDir,\n options?.apiSource,\n \"app.api\",\n )\n : resolveRuntimeTarget(apiConfig.production, baseDir, \"remote\");\n const authExtendsRef = authConfig?.extends\n ? resolveExtendsRef(authConfig.extends, env)\n : undefined;\n const authRuntime = authConfig\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n authConfig.development,\n authConfig.production,\n baseDir,\n options?.authSource,\n \"app.auth\",\n authExtendsRef,\n )\n : resolveRuntimeTarget(authConfig.production, baseDir, \"remote\")\n : undefined;\n\n const hostConfig = config.app.host;\n const hostRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n hostConfig.development,\n hostConfig.production,\n baseDir,\n options?.hostSource,\n \"app.host\",\n )\n : resolveRuntimeTarget(hostConfig.production, baseDir, \"remote\");\n\n const hostListeningUrl =\n env === \"development\"\n ? resolveDevelopmentHostUrl(hostConfig.development)\n : `http://localhost:${hostRuntime.port ?? DEFAULT_HOST_PORT}`;\n\n const hostIsRemote = hostRuntime.source === \"remote\";\n const uiIsRemote = uiRuntime.source === \"remote\";\n const apiIsRemote = apiRuntime.source === \"remote\";\n const resolvedApiName = resolvePluginRuntimeName(apiConfig.name, apiRuntime.localPath, \"api\");\n\n return {\n env,\n account: config.account,\n domain: config.domain,\n title: config.title,\n description: config.description,\n networkId: getNetworkIdForAccount(config.account),\n repository: config.repository,\n host: {\n name: \"host\",\n url: hostListeningUrl,\n entry: `${hostListeningUrl}/mf-manifest.json`,\n localPath: hostRuntime.localPath,\n port: hostRuntime.port ?? DEFAULT_HOST_PORT,\n secrets: hostConfig.secrets,\n integrity: hostIsRemote ? hostConfig.integrity : undefined,\n source: hostRuntime.source,\n remoteUrl: hostIsRemote ? hostRuntime.url : undefined,\n },\n shared: config.shared,\n ui: {\n name: resolvePluginRuntimeName(uiConfig.name, uiRuntime.localPath, \"ui\"),\n url: uiRuntime.url,\n entry: uiRuntime.url ? `${uiRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: uiRuntime.localPath,\n port: uiRuntime.port,\n ssrUrl: uiIsRemote ? uiConfig.ssr : undefined,\n ssrIntegrity: uiIsRemote ? uiConfig.ssrIntegrity : undefined,\n integrity: uiIsRemote ? uiConfig.integrity : undefined,\n source: uiRuntime.source,\n },\n api: {\n name: resolvedApiName,\n url: apiRuntime.url,\n entry: apiRuntime.url ? `${apiRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: apiRuntime.localPath,\n port: apiRuntime.port,\n source: apiRuntime.source,\n proxy: options?.proxy ?? apiConfig.proxy,\n variables: apiConfig.variables,\n secrets: apiConfig.secrets,\n integrity: apiIsRemote ? apiConfig.integrity : undefined,\n },\n auth: (() => {\n if (!authConfig || !authRuntime) return undefined;\n return {\n name: resolvePluginRuntimeName(authConfig.name, authRuntime.localPath, \"auth\"),\n url: authRuntime.url,\n entry: authRuntime.url ? `${authRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: authRuntime.localPath,\n port: authRuntime.port,\n source: authRuntime.source,\n proxy: authConfig.proxy,\n variables: authConfig.variables,\n secrets: authConfig.secrets,\n integrity: authRuntime.source === \"remote\" ? authConfig.integrity : undefined,\n sidebar: authConfig.sidebar?.map((item) => ({\n ...item,\n to: item.to ?? \"/auth\",\n roleRequired: item.roleRequired ?? (\"member\" as const),\n })),\n };\n })(),\n plugins:\n options?.plugins && Object.keys(options.plugins).length > 0 ? options.plugins : undefined,\n };\n}\n\nasync function loadConfigFile(configPath: string, baseDir: string): Promise<BosConfigInput> {\n if (configPath.startsWith(\"bos://\")) {\n return fetchBosConfigFromFastKv<BosConfigInput>(configPath);\n }\n\n const resolvedPath = isAbsolute(configPath) ? configPath : resolve(baseDir, configPath);\n return JSON.parse(readFileSync(resolvedPath, \"utf-8\")) as BosConfigInput;\n}\n\nasync function resolveConfigWithExtends(\n configPath: string,\n baseDir: string,\n visited: Set<string>,\n chain: string[],\n env: BosEnv = \"development\",\n): Promise<BosConfigInput> {\n if (visited.has(configPath)) {\n throw new Error(`Circular extends detected: ${[...visited, configPath].join(\" -> \")}`);\n }\n\n const config = await loadConfigFile(configPath, baseDir);\n chain.push(configPath);\n\n if (!config.extends) {\n return config;\n }\n\n const extendsRef = resolveExtendsRef(config.extends as string | ExtendsConfig, env);\n if (!extendsRef) {\n return config;\n }\n\n const parsedParentRef = parseExtendsTarget(extendsRef);\n\n const nextVisited = new Set(visited);\n nextVisited.add(configPath);\n const parentBaseDir = getConfigBaseDir(parsedParentRef.configPath, baseDir);\n const parent = await resolveConfigWithExtends(\n parsedParentRef.configPath,\n parentBaseDir,\n nextVisited,\n chain,\n env,\n );\n\n return mergeBosConfigWithExtends(parent, config);\n}\n\ntype PluginOverrideValue = PluginEntryValue | null | false;\n\nfunction normalizePluginEntry(raw: PluginOverrideValue): BosPluginRef | null | false {\n if (raw === null || raw === false) return raw;\n if (typeof raw === \"string\") {\n return { extends: raw };\n }\n return raw;\n}\n\nasync function resolveRuntimePlugins(\n plugins: Record<string, PluginOverrideValue>,\n baseDir: string,\n env: BosEnv,\n): Promise<Record<string, RuntimePluginConfig>> {\n const out: Record<string, RuntimePluginConfig> = {};\n\n for (const [pluginId, rawInput] of Object.entries(plugins)) {\n const normalized = normalizePluginEntry(rawInput);\n if (normalized === null || normalized === false) continue;\n\n const resolvedReference = await resolveComposableReference(\n normalized,\n baseDir,\n env,\n `plugins.${pluginId}`,\n );\n\n const pluginRuntime = buildRuntimePluginConfig(pluginId, env, resolvedReference);\n\n if (!pluginRuntime.localPath && !pluginRuntime.url) {\n continue;\n }\n\n if (\n pluginRuntime.source === \"remote\" &&\n pluginRuntime.url &&\n !pluginRuntime.localPath &&\n typeof resolvedReference.entry.name !== \"string\"\n ) {\n pluginRuntime.name = await resolveRemotePluginRuntimeName(\n pluginRuntime.url,\n pluginRuntime.name,\n );\n }\n\n out[pluginId] = pluginRuntime;\n }\n\n return out;\n}\n\nasync function resolveRemotePluginRuntimeName(baseUrl: string, fallback: string): Promise<string> {\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 5000);\n const response = await fetch(`${baseUrl.replace(/\\/$/, \"\")}/plugin.manifest.json`, {\n signal: controller.signal,\n });\n clearTimeout(timeout);\n\n if (!response.ok) {\n return fallback;\n }\n\n const manifest = (await response.json()) as {\n plugin?: { name?: unknown };\n };\n\n return typeof manifest.plugin?.name === \"string\" && manifest.plugin.name.length > 0\n ? manifest.plugin.name\n : fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction buildRuntimePluginConfig(\n pluginId: string,\n env: BosEnv,\n resolved: ResolvedComposableReference,\n): RuntimePluginConfig {\n const source = resolved.entry;\n const development = typeof source.development === \"string\" ? source.development : undefined;\n const production = typeof source.production === \"string\" ? source.production : undefined;\n\n if (production?.startsWith(\"bos://\")) {\n throw new Error(\n `Plugin \"${pluginId}\" has unsupported production target \"${production}\". Use extends: \"bos://account/domain\" for plugin configs or a CDN URL for production.`,\n );\n }\n\n const pluginExtendsRef = source.extends ? resolveExtendsRef(source.extends, env) : undefined;\n\n const runtimeTarget =\n env === \"development\"\n ? resolveDevelopmentTarget(\n development,\n production,\n resolved.providerBaseDir,\n undefined,\n `plugins.${pluginId}`,\n pluginExtendsRef,\n )\n : resolveRuntimeTarget(production, resolved.providerBaseDir, \"remote\");\n const apiName = resolvePluginRuntimeName(source.name, runtimeTarget.localPath, pluginId);\n\n const uiConfig = resolved.associatedUi;\n const uiDevelopment =\n typeof uiConfig?.development === \"string\" ? uiConfig.development : undefined;\n const uiProduction = typeof uiConfig?.production === \"string\" ? uiConfig.production : undefined;\n const uiRuntime =\n uiConfig && (uiDevelopment || uiProduction)\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n uiDevelopment,\n uiProduction,\n resolved.providerBaseDir,\n undefined,\n `plugins.${pluginId}.ui`,\n )\n : resolveRuntimeTarget(uiProduction, resolved.providerBaseDir, \"remote\")\n : undefined;\n\n const sidebar = source.sidebar?.map((item) => ({\n ...item,\n to: item.to ?? `/${pluginId}`,\n roleRequired: item.roleRequired ?? (\"member\" as const),\n }));\n\n const routes = source.routes;\n\n return {\n name: apiName,\n url: runtimeTarget.url,\n entry: runtimeTarget.url\n ? `${runtimeTarget.url.replace(/\\/$/, \"\")}/mf-manifest.json`\n : \"/mf-manifest.json\",\n source: runtimeTarget.source,\n localPath: runtimeTarget.localPath,\n port: runtimeTarget.port,\n proxy: typeof source.proxy === \"string\" ? source.proxy : undefined,\n variables: normalizeStringRecord(source.variables),\n secrets: normalizeStringArray(source.secrets),\n integrity: runtimeTarget.source === \"remote\" ? source.integrity : undefined,\n ui: uiRuntime\n ? {\n name: typeof uiConfig?.name === \"string\" ? uiConfig.name : `${apiName}-ui`,\n url: uiRuntime.url,\n entry: uiRuntime.url\n ? `${uiRuntime.url.replace(/\\/$/, \"\")}/mf-manifest.json`\n : \"/mf-manifest.json\",\n source: uiRuntime.source,\n localPath: uiRuntime.localPath,\n port: uiRuntime.port,\n integrity:\n uiRuntime.source === \"remote\" && typeof uiConfig?.integrity === \"string\"\n ? uiConfig.integrity\n : undefined,\n }\n : undefined,\n sidebar,\n routes,\n };\n}\n\nexport function resolvePluginRuntimeName(\n explicitName: string | undefined,\n localPath: string | undefined,\n fallback: string,\n): string {\n if (explicitName) {\n return explicitName;\n }\n\n if (!localPath) {\n return fallback;\n }\n\n try {\n const packageJsonPath = join(localPath, \"package.json\");\n const packageJson = JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { name?: unknown };\n if (typeof packageJson.name === \"string\" && packageJson.name.length > 0) {\n return packageJson.name;\n }\n } catch {}\n\n return fallback;\n}\n\nfunction normalizeStringRecord(value: unknown): Record<string, string> | undefined {\n if (!isPlainObject(value)) return undefined;\n const out: Record<string, string> = {};\n for (const [key, raw] of Object.entries(value)) {\n if (typeof raw === \"string\") {\n out[key] = raw;\n }\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction normalizeStringArray(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const out = value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n return out.length > 0 ? out : undefined;\n}\n\nfunction resolveRuntimeTarget(\n value: string | undefined,\n baseDir: string,\n defaultSource: \"local\" | \"remote\" = \"remote\",\n): RuntimeTarget {\n if (!value) {\n return { source: defaultSource, url: \"\" };\n }\n\n if (value.startsWith(LOCAL_PREFIX)) {\n const localTarget = value?.slice(LOCAL_PREFIX.length).trim();\n if (!localTarget) {\n throw new Error(`Invalid local development target: ${value}`);\n }\n\n const localPath = resolve(baseDir, localTarget);\n if (!existsSync(localPath)) {\n return { source: \"local\", url: \"\" };\n }\n\n return {\n source: \"local\",\n url: \"\",\n localPath,\n };\n }\n\n return {\n source: defaultSource,\n url: value.replace(/\\/$/, \"\"),\n port: parsePort(value),\n };\n}\n\nexport function isLocalDevelopmentTarget(\n value: string | undefined,\n): value is `${typeof LOCAL_PREFIX}${string}` {\n return typeof value === \"string\" && value.startsWith(LOCAL_PREFIX);\n}\n\nexport function resolveLocalDevelopmentPath(\n value: string | undefined,\n baseDir: string,\n): string | null {\n if (!isLocalDevelopmentTarget(value)) {\n return null;\n }\n\n const localTarget = value.slice(LOCAL_PREFIX.length).trim();\n return localTarget ? resolve(baseDir, localTarget) : null;\n}\n\nexport function resolveDevelopmentHostUrl(value: string | undefined): string {\n if (!value || isLocalDevelopmentTarget(value)) {\n return `http://localhost:${DEFAULT_HOST_PORT}`;\n }\n\n return value.replace(/\\/$/, \"\");\n}\n\nexport function getHostDevelopmentPort(value: string | undefined): number {\n return parsePort(resolveDevelopmentHostUrl(value));\n}\n\nexport function parsePort(url: string): number {\n try {\n const parsed = new URL(url);\n return parsed.port ? parseInt(parsed.port, 10) : parsed.protocol === \"https:\" ? 443 : 80;\n } catch {\n return 3000;\n }\n}\n\nexport { BOS_CONFIG_ORDER, rebuildOrderedConfig } from \"./merge\";\nexport type { BosConfig, RuntimeConfig } from \"./types\";\nexport { BosConfigSchema } from \"./types\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.mjs","names":[],"sources":["../src/config.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, isAbsolute, join, resolve } from \"node:path\";\nimport { fetchBosConfigFromFastKv } from \"./fastkv\";\nimport {\n type BosEnv,\n bosConfigMerger,\n isPlainObject,\n mergeBosConfigWithExtends,\n type ResolvedConfigMeta,\n rebuildOrderedConfig,\n resolveExtendsRef,\n} from \"./merge\";\nimport { getNetworkIdForAccount } from \"./network\";\nimport type {\n BosConfig,\n BosConfigInput,\n BosPluginRef,\n ExtendsConfig,\n PluginEntryValue,\n RuntimeConfig,\n RuntimePluginConfig,\n} from \"./types\";\nimport { BosConfigSchema } from \"./types\";\n\nconst LOCAL_PREFIX = \"local:\";\nconst DEFAULT_HOST_PORT = 3000;\nconst RESOLVED_CONFIG_FILENAME = \"bos.resolved-config.json\";\n\ntype RuntimeOverrideTarget = \"ui\" | \"api\" | \"plugins\" | `plugins.${string}`;\n\ninterface RuntimeTarget {\n source: \"local\" | \"remote\";\n url: string;\n localPath?: string;\n port?: number;\n}\n\nlet cachedConfig: BosConfig | null = null;\nlet projectRoot: string | null = null;\nlet configWarnings: string[] = [];\nlet suppressConfigWarnings = false;\n\nexport function clearConfigCache(): void {\n cachedConfig = null;\n projectRoot = null;\n configWarnings = [];\n}\n\nexport function suppressWarnings(): void {\n suppressConfigWarnings = true;\n}\n\nexport function resumeWarnings(): void {\n suppressConfigWarnings = false;\n}\n\nexport function drainConfigWarnings(): string[] {\n const warnings = [...configWarnings];\n configWarnings = [];\n return warnings;\n}\n\nfunction emitConfigWarning(message: string): void {\n if (suppressConfigWarnings) {\n configWarnings.push(message);\n } else {\n console.warn(message);\n }\n}\n\nexport function findConfigPath(cwd?: string): string | null {\n let dir = cwd ?? process.cwd();\n while (dir !== \"/\") {\n const configPath = join(dir, \"bos.config.json\");\n if (existsSync(configPath)) {\n return configPath;\n }\n dir = dirname(dir);\n }\n return null;\n}\n\nexport function getConfig(): BosConfig | null {\n return cachedConfig;\n}\n\nexport function getProjectRoot(): string {\n if (!projectRoot) {\n throw new Error(\"Config not loaded. Call loadResolvedConfig() first.\");\n }\n return projectRoot;\n}\n\nexport interface ConfigResult {\n config: BosConfig;\n runtime: RuntimeConfig;\n source: {\n path: string;\n extended?: string[];\n remote?: boolean;\n };\n warnings?: string[];\n}\n\nexport interface LocalConfigResult {\n config: BosConfigInput;\n source: {\n path: string;\n };\n}\n\nexport interface RemoteConfigResult {\n rawConfig: BosConfigInput;\n config: BosConfig;\n source: string;\n extendsChain: string[];\n}\n\nexport interface ResolvedComposableReference {\n entry: BosPluginRef;\n providerBaseDir: string;\n targetPath: string;\n associatedUi?: Record<string, unknown>;\n}\n\ninterface ParsedExtendsTarget {\n configPath: string;\n targetPath?: string;\n}\n\nexport async function loadLocalConfig(options?: {\n cwd?: string;\n path?: string;\n}): Promise<LocalConfigResult | null> {\n const configPath = options?.path ?? findConfigPath(options?.cwd);\n if (!configPath) {\n projectRoot = options?.cwd ?? process.cwd();\n return null;\n }\n\n const baseDir = dirname(configPath);\n const config = await loadConfigFile(configPath, baseDir);\n\n projectRoot = baseDir;\n\n return {\n config,\n source: {\n path: configPath,\n },\n };\n}\n\nexport async function loadResolvedConfig(options?: {\n cwd?: string;\n path?: string;\n env?: BosEnv;\n}): Promise<ConfigResult | null> {\n const configPath = options?.path ?? findConfigPath(options?.cwd);\n if (!configPath) {\n projectRoot = options?.cwd ?? process.cwd();\n return null;\n }\n\n const baseDir = dirname(configPath);\n const env = options?.env ?? \"development\";\n const runtimeEnv: BosEnv = env === \"staging\" ? \"production\" : env;\n\n try {\n suppressWarnings();\n const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n configPath,\n baseDir,\n new Set(),\n extendedChain,\n env,\n );\n const config = await resolveConfigComposableEntries(\n BosConfigSchema.parse(parsed),\n baseDir,\n runtimeEnv,\n );\n\n cachedConfig = config;\n projectRoot = baseDir;\n\n const pluginRuntime = await resolveRuntimePlugins(config.plugins ?? {}, baseDir, runtimeEnv);\n const runtime = buildRuntimeConfig(config, baseDir, runtimeEnv, {\n plugins: pluginRuntime,\n });\n const warnings = drainConfigWarnings();\n resumeWarnings();\n\n return {\n config,\n runtime,\n source: {\n path: configPath,\n extended: extendedChain.length > 0 ? extendedChain : undefined,\n remote: extendedChain.some((entry) => entry.startsWith(\"bos://\")),\n },\n warnings: warnings.length > 0 ? warnings : undefined,\n };\n } catch (error) {\n resumeWarnings();\n throw new Error(`Failed to load config from ${configPath}: ${error}`);\n }\n}\n\nexport async function loadBosConfig(options?: {\n cwd?: string;\n path?: string;\n env?: BosEnv;\n}): Promise<RuntimeConfig> {\n const result = await loadResolvedConfig(options);\n if (!result) {\n throw new Error(\"No bos.config.json found\");\n }\n\n return result.runtime;\n}\n\nexport async function loadRemoteConfig(\n bosUrl: string,\n env: BosEnv = \"production\",\n): Promise<RemoteConfigResult> {\n const runtimeEnv: BosEnv = env === \"staging\" ? \"production\" : env;\n const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n bosUrl,\n process.cwd(),\n new Set(),\n extendedChain,\n env,\n );\n const config = await resolveConfigComposableEntries(\n BosConfigSchema.parse(parsed),\n process.cwd(),\n runtimeEnv,\n );\n\n return {\n rawConfig: await loadConfigFile(bosUrl, process.cwd()),\n config,\n source: bosUrl,\n extendsChain: extendedChain,\n };\n}\n\nexport function parseRuntimeOverrideTargets(value?: string | null): RuntimeOverrideTarget[] {\n if (!value) {\n return [];\n }\n\n return [\n ...new Set(\n value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean),\n ),\n ].map((entry) => {\n if (entry === \"ui\" || entry === \"api\" || entry === \"plugins\") {\n return entry;\n }\n\n if (entry.startsWith(\"plugins.\") && entry.length > \"plugins.\".length) {\n return entry as RuntimeOverrideTarget;\n }\n\n throw new Error(`Invalid runtime override target: ${entry}`);\n });\n}\n\nexport function isRuntimeOverrideAllowed(\n allowedTargets: ReadonlyArray<RuntimeOverrideTarget>,\n target: \"ui\" | \"api\" | \"plugins\" | `plugins.${string}`,\n): boolean {\n if (allowedTargets.includes(target as RuntimeOverrideTarget)) {\n return true;\n }\n\n if (target.startsWith(\"plugins.\")) {\n return allowedTargets.includes(\"plugins.*\");\n }\n\n return false;\n}\n\nexport async function buildRuntimePluginsForConfig(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n): Promise<Record<string, RuntimePluginConfig> | undefined> {\n const plugins = await resolveRuntimePlugins(config.plugins ?? {}, baseDir, env);\n return Object.keys(plugins).length > 0 ? plugins : undefined;\n}\n\nfunction getEntryAssociatedUi(entry: Partial<BosPluginRef>): Record<string, unknown> | undefined {\n if (!isPlainObject(entry.app)) {\n return undefined;\n }\n\n const app = entry.app as Record<string, unknown>;\n return isPlainObject(app.ui) ? (app.ui as Record<string, unknown>) : undefined;\n}\n\nfunction mergeAssociatedUi(\n parentUi: Record<string, unknown> | undefined,\n childUi: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n if (!parentUi) {\n return childUi ? { ...childUi } : undefined;\n }\n\n if (!childUi) {\n return { ...parentUi };\n }\n\n return bosConfigMerger({ ...childUi }, parentUi) as Record<string, unknown>;\n}\n\nfunction withAssociatedUi(\n entry: BosPluginRef,\n associatedUi?: Record<string, unknown>,\n): BosPluginRef {\n if (!associatedUi) {\n return entry;\n }\n\n const app = isPlainObject(entry.app)\n ? ({ ...(entry.app as Record<string, unknown>) } as Record<string, unknown>)\n : {};\n app.ui = mergeAssociatedUi(getEntryAssociatedUi(entry), associatedUi);\n\n return {\n ...entry,\n app,\n };\n}\n\nasync function resolveConfigComposableEntries(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n): Promise<BosConfig> {\n const resolvedApi = await resolveComposableReference(\n config.app.api as BosPluginRef,\n baseDir,\n env,\n \"app.api\",\n );\n const resolvedAuth = config.app.auth\n ? await resolveComposableReference(config.app.auth as BosPluginRef, baseDir, env, \"app.auth\")\n : undefined;\n\n const resolvedPlugins = config.plugins\n ? Object.fromEntries(\n await Promise.all(\n Object.entries(config.plugins).map(async ([pluginId, pluginValue]) => {\n const resolvedPlugin = await resolveComposableReference(\n asComposableEntry(pluginValue),\n baseDir,\n env,\n `plugins.${pluginId}`,\n );\n\n return [\n pluginId,\n withAssociatedUi(resolvedPlugin.entry, resolvedPlugin.associatedUi),\n ] as const;\n }),\n ),\n )\n : undefined;\n\n return {\n ...config,\n app: {\n ...config.app,\n api: resolvedApi.entry,\n auth: resolvedAuth?.entry,\n },\n plugins: resolvedPlugins,\n };\n}\n\nexport function getResolvedConfigPath(configDir: string): string {\n return join(configDir, \".bos\", RESOLVED_CONFIG_FILENAME);\n}\n\nexport function loadGeneratedResolvedConfig(configDir: string): BosConfig | null {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (!existsSync(resolvedPath)) return null;\n try {\n const raw = JSON.parse(readFileSync(resolvedPath, \"utf-8\"));\n if (!isPlainObject(raw)) return null;\n const { _resolved, ...configData } = raw;\n return BosConfigSchema.parse(configData);\n } catch {\n return null;\n }\n}\n\nexport function writeResolvedConfig(\n configDir: string,\n config: BosConfig,\n env: BosEnv,\n extendsChain?: string[],\n source?: string,\n): void {\n const resolvedPath = getResolvedConfigPath(configDir);\n const resolvedDir = dirname(resolvedPath);\n if (!existsSync(resolvedDir)) {\n mkdirSync(resolvedDir, { recursive: true });\n }\n\n const ordered = rebuildOrderedConfig(config);\n const meta: ResolvedConfigMeta = {\n env,\n resolvedAt: new Date().toISOString(),\n extendsChain: extendsChain ?? [],\n ...(source ? { source } : {}),\n };\n const output = {\n _resolved: meta,\n ...ordered,\n };\n\n const content = `${JSON.stringify(output, null, 2)}\\n`;\n try {\n if (readFileSync(resolvedPath, \"utf-8\") === content) return;\n } catch {\n // file doesn't exist yet\n }\n writeFileSync(resolvedPath, content);\n}\n\nexport function resolveBosConfigPath(configDir: string): string {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (existsSync(resolvedPath)) return resolvedPath;\n return join(configDir, \"bos.config.json\");\n}\n\nexport function readBosConfigForBuild(configDir: string): Record<string, unknown> {\n const resolvedPath = getResolvedConfigPath(configDir);\n if (existsSync(resolvedPath)) {\n try {\n const raw = JSON.parse(readFileSync(resolvedPath, \"utf-8\"));\n if (isPlainObject(raw)) {\n const { _resolved, ...configData } = raw;\n return configData as Record<string, unknown>;\n }\n } catch {}\n }\n const bosConfigPath = join(configDir, \"bos.config.json\");\n return JSON.parse(readFileSync(bosConfigPath, \"utf-8\")) as Record<string, unknown>;\n}\n\nfunction parseExtendsTarget(ref: string): ParsedExtendsTarget {\n const hashIndex = ref.indexOf(\"#\");\n if (hashIndex === -1) {\n return { configPath: ref };\n }\n\n const configPath = ref.slice(0, hashIndex);\n const targetPath = ref.slice(hashIndex + 1);\n return {\n configPath,\n targetPath: targetPath.length > 0 ? targetPath : undefined,\n };\n}\n\nfunction getConfigBaseDir(configPath: string, baseDir: string): string {\n if (configPath.startsWith(\"bos://\")) return baseDir;\n return dirname(isAbsolute(configPath) ? configPath : resolve(baseDir, configPath));\n}\n\nfunction asComposableEntry(value: unknown): BosPluginRef {\n if (value === undefined) {\n return {};\n }\n if (typeof value === \"string\") {\n return { extends: value };\n }\n if (!isPlainObject(value)) {\n throw new Error(`Expected config entry object, received ${typeof value}`);\n }\n return value as BosPluginRef;\n}\n\nfunction getTargetedEntry(config: BosConfigInput, targetPath: string): BosPluginRef {\n if (targetPath === \"app.api\") {\n return asComposableEntry(config.app?.api);\n }\n\n if (targetPath === \"app.auth\") {\n return asComposableEntry(config.app?.auth);\n }\n\n if (targetPath.startsWith(\"plugins.\")) {\n const pluginId = targetPath.slice(\"plugins.\".length);\n if (pluginId.length === 0) {\n throw new Error(`Invalid plugin target path: ${targetPath}`);\n }\n return asComposableEntry(config.plugins?.[pluginId]);\n }\n\n throw new Error(`Unsupported extends target path: ${targetPath}`);\n}\n\nfunction getAssociatedUi(\n config: BosConfigInput,\n _targetPath: string,\n): Record<string, unknown> | undefined {\n return isPlainObject(config.app?.ui) ? (config.app.ui as Record<string, unknown>) : undefined;\n}\n\nfunction mergeComposableEntries(\n parent: Partial<BosPluginRef>,\n child: Partial<BosPluginRef>,\n): BosPluginRef {\n return bosConfigMerger({ ...child }, parent) as BosPluginRef;\n}\n\nfunction stripUnsafeLocalDevelopment<T extends Record<string, unknown> | undefined>(\n entry: T,\n allowLocalPaths: boolean,\n): T {\n if (!entry || allowLocalPaths) {\n return entry;\n }\n\n if (typeof entry.development === \"string\" && entry.development.startsWith(LOCAL_PREFIX)) {\n const { development: _ignored, ...rest } = entry;\n return rest as T;\n }\n\n return entry;\n}\n\nexport async function resolveComposableReference(\n source: BosPluginRef,\n baseDir: string,\n env: BosEnv,\n defaultTargetPath: string,\n): Promise<ResolvedComposableReference> {\n let resolvedEntry: BosPluginRef = {};\n let providerBaseDir = baseDir;\n let targetPath = defaultTargetPath;\n let associatedUi = getEntryAssociatedUi(source);\n let allowLocalPaths = false;\n let extendsError: unknown;\n\n const extendsRef = source.extends ? resolveExtendsRef(source.extends, env) : undefined;\n if (extendsRef) {\n const parsed = parseExtendsTarget(extendsRef);\n targetPath = parsed.targetPath ?? defaultTargetPath;\n const extendsBaseDir = getConfigBaseDir(parsed.configPath, baseDir);\n try {\n const extendedConfig = await resolveConfigWithExtends(\n parsed.configPath,\n extendsBaseDir,\n new Set(),\n [],\n env,\n );\n resolvedEntry = mergeComposableEntries(\n resolvedEntry,\n getTargetedEntry(extendedConfig, targetPath),\n );\n providerBaseDir = extendsBaseDir;\n associatedUi = mergeAssociatedUi(associatedUi, getAssociatedUi(extendedConfig, targetPath));\n } catch (error) {\n extendsError = error;\n }\n }\n\n const localDevelopment =\n typeof source.development === \"string\" && source.development.startsWith(LOCAL_PREFIX)\n ? source.development\n : undefined;\n const localDevelopmentPath = localDevelopment\n ? resolve(baseDir, localDevelopment.slice(LOCAL_PREFIX.length).trim())\n : undefined;\n const hasUsableLocalDevelopment = Boolean(\n localDevelopmentPath && existsSync(localDevelopmentPath),\n );\n\n if (localDevelopmentPath) {\n const localPath = localDevelopmentPath;\n const localConfigPath = join(localPath, \"bos.config.json\");\n if (existsSync(localConfigPath)) {\n const localConfig = await resolveConfigWithExtends(\n localConfigPath,\n localPath,\n new Set(),\n [],\n env,\n );\n resolvedEntry = mergeComposableEntries(\n resolvedEntry,\n getTargetedEntry(localConfig, targetPath),\n );\n providerBaseDir = localPath;\n associatedUi = mergeAssociatedUi(associatedUi, getAssociatedUi(localConfig, targetPath));\n allowLocalPaths = true;\n }\n }\n\n const sourceOverrides = { ...source };\n if (allowLocalPaths && localDevelopment) {\n delete sourceOverrides.development;\n }\n\n resolvedEntry = mergeComposableEntries(resolvedEntry, sourceOverrides);\n associatedUi = mergeAssociatedUi(associatedUi, getEntryAssociatedUi(sourceOverrides));\n\n if (extendsError && !allowLocalPaths && !hasUsableLocalDevelopment) {\n throw extendsError;\n }\n\n return {\n entry: stripUnsafeLocalDevelopment(resolvedEntry, allowLocalPaths || Boolean(localDevelopment)),\n providerBaseDir,\n targetPath,\n associatedUi: stripUnsafeLocalDevelopment(associatedUi, allowLocalPaths),\n };\n}\n\nfunction resolveDevelopmentTarget(\n development: string | undefined,\n production: string | undefined,\n baseDir: string,\n forceSource?: \"local\" | \"remote\",\n target?: string,\n extendsRef?: string,\n): RuntimeTarget {\n if (forceSource === \"remote\") {\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n if (!development) {\n if (production && target) {\n if (extendsRef) {\n emitConfigWarning(`[Config] Resolving \"${target}\" from ${extendsRef}`);\n } else {\n emitConfigWarning(`[Config] No development target for \"${target}\", using production`);\n }\n }\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n const devTarget = resolveRuntimeTarget(development, baseDir);\n if (devTarget.source === \"local\" && (!devTarget.localPath || !existsSync(devTarget.localPath))) {\n if (production && target) {\n emitConfigWarning(`[Config] Could not load local target for \"${target}\", using production`);\n }\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n return devTarget;\n}\n\nexport interface BuildRuntimeConfigOptions {\n plugins?: Record<string, RuntimePluginConfig>;\n hostSource?: \"local\" | \"remote\";\n uiSource?: \"local\" | \"remote\";\n apiSource?: \"local\" | \"remote\";\n authSource?: \"local\" | \"remote\";\n proxy?: string;\n}\n\nexport function buildRuntimeConfig(\n config: BosConfig,\n baseDir: string,\n env: BosEnv,\n options?: BuildRuntimeConfigOptions,\n): RuntimeConfig {\n const uiConfig = config.app.ui;\n const apiConfig = config.app.api;\n const authConfig = config.app.auth;\n const uiRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n uiConfig.development,\n uiConfig.production,\n baseDir,\n options?.uiSource,\n \"app.ui\",\n )\n : resolveRuntimeTarget(uiConfig.production, baseDir, \"remote\");\n const apiRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n apiConfig.development,\n apiConfig.production,\n baseDir,\n options?.apiSource,\n \"app.api\",\n )\n : resolveRuntimeTarget(apiConfig.production, baseDir, \"remote\");\n const authExtendsRef = authConfig?.extends\n ? resolveExtendsRef(authConfig.extends, env)\n : undefined;\n const authRuntime = authConfig\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n authConfig.development,\n authConfig.production,\n baseDir,\n options?.authSource,\n \"app.auth\",\n authExtendsRef,\n )\n : resolveRuntimeTarget(authConfig.production, baseDir, \"remote\")\n : undefined;\n\n const hostConfig = config.app.host;\n const hostRuntime =\n env === \"development\"\n ? resolveDevelopmentTarget(\n hostConfig.development,\n hostConfig.production,\n baseDir,\n options?.hostSource,\n \"app.host\",\n )\n : resolveRuntimeTarget(hostConfig.production, baseDir, \"remote\");\n\n const hostListeningUrl =\n env === \"development\"\n ? resolveDevelopmentHostUrl(hostConfig.development)\n : `http://localhost:${hostRuntime.port ?? DEFAULT_HOST_PORT}`;\n\n const hostIsRemote = hostRuntime.source === \"remote\";\n const uiIsRemote = uiRuntime.source === \"remote\";\n const apiIsRemote = apiRuntime.source === \"remote\";\n const resolvedApiName = resolvePluginRuntimeName(apiConfig.name, apiRuntime.localPath, \"api\");\n\n return {\n env,\n account: config.account,\n domain: config.domain,\n title: config.title,\n description: config.description,\n networkId: getNetworkIdForAccount(config.account),\n repository: config.repository,\n host: {\n name: \"host\",\n url: hostListeningUrl,\n entry: `${hostListeningUrl}/mf-manifest.json`,\n localPath: hostRuntime.localPath,\n port: hostRuntime.port ?? DEFAULT_HOST_PORT,\n secrets: hostConfig.secrets,\n integrity: hostIsRemote ? hostConfig.integrity : undefined,\n source: hostRuntime.source,\n remoteUrl: hostIsRemote ? hostRuntime.url : undefined,\n },\n shared: config.shared,\n ui: {\n name: resolvePluginRuntimeName(uiConfig.name, uiRuntime.localPath, \"ui\"),\n url: uiRuntime.url,\n entry: uiRuntime.url ? `${uiRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: uiRuntime.localPath,\n port: uiRuntime.port,\n ssrUrl: uiIsRemote ? uiConfig.ssr : undefined,\n ssrIntegrity: uiIsRemote ? uiConfig.ssrIntegrity : undefined,\n integrity: uiIsRemote ? uiConfig.integrity : undefined,\n source: uiRuntime.source,\n },\n api: {\n name: resolvedApiName,\n url: apiRuntime.url,\n entry: apiRuntime.url ? `${apiRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: apiRuntime.localPath,\n port: apiRuntime.port,\n source: apiRuntime.source,\n proxy: options?.proxy ?? apiConfig.proxy,\n variables: apiConfig.variables,\n secrets: apiConfig.secrets,\n integrity: apiIsRemote ? apiConfig.integrity : undefined,\n },\n auth: (() => {\n if (!authConfig || !authRuntime) return undefined;\n return {\n name: resolvePluginRuntimeName(authConfig.name, authRuntime.localPath, \"auth\"),\n url: authRuntime.url,\n entry: authRuntime.url ? `${authRuntime.url}/mf-manifest.json` : \"/mf-manifest.json\",\n localPath: authRuntime.localPath,\n port: authRuntime.port,\n source: authRuntime.source,\n proxy: authConfig.proxy,\n variables: authConfig.variables,\n secrets: authConfig.secrets,\n integrity: authRuntime.source === \"remote\" ? authConfig.integrity : undefined,\n sidebar: authConfig.sidebar?.map((item) => ({\n ...item,\n to: item.to ?? \"/auth\",\n roleRequired: item.roleRequired ?? (\"member\" as const),\n })),\n };\n })(),\n plugins:\n options?.plugins && Object.keys(options.plugins).length > 0 ? options.plugins : undefined,\n };\n}\n\nasync function loadConfigFile(configPath: string, baseDir: string): Promise<BosConfigInput> {\n if (configPath.startsWith(\"bos://\")) {\n return fetchBosConfigFromFastKv<BosConfigInput>(configPath);\n }\n\n const resolvedPath = isAbsolute(configPath) ? configPath : resolve(baseDir, configPath);\n return JSON.parse(readFileSync(resolvedPath, \"utf-8\")) as BosConfigInput;\n}\n\nasync function resolveConfigWithExtends(\n configPath: string,\n baseDir: string,\n visited: Set<string>,\n chain: string[],\n env: BosEnv = \"development\",\n): Promise<BosConfigInput> {\n if (visited.has(configPath)) {\n throw new Error(`Circular extends detected: ${[...visited, configPath].join(\" -> \")}`);\n }\n\n const config = await loadConfigFile(configPath, baseDir);\n chain.push(configPath);\n\n if (!config.extends) {\n return config;\n }\n\n const extendsRef = resolveExtendsRef(config.extends as string | ExtendsConfig, env);\n if (!extendsRef) {\n return config;\n }\n\n const parsedParentRef = parseExtendsTarget(extendsRef);\n\n const nextVisited = new Set(visited);\n nextVisited.add(configPath);\n const parentBaseDir = getConfigBaseDir(parsedParentRef.configPath, baseDir);\n const parent = await resolveConfigWithExtends(\n parsedParentRef.configPath,\n parentBaseDir,\n nextVisited,\n chain,\n env,\n );\n\n return mergeBosConfigWithExtends(parent, config);\n}\n\ntype PluginOverrideValue = PluginEntryValue | null | false;\n\nfunction normalizePluginEntry(raw: PluginOverrideValue): BosPluginRef | null | false {\n if (raw === null || raw === false) return raw;\n if (typeof raw === \"string\") {\n return { extends: raw };\n }\n return raw;\n}\n\nasync function resolveRuntimePlugins(\n plugins: Record<string, PluginOverrideValue>,\n baseDir: string,\n env: BosEnv,\n): Promise<Record<string, RuntimePluginConfig>> {\n const out: Record<string, RuntimePluginConfig> = {};\n\n for (const [pluginId, rawInput] of Object.entries(plugins)) {\n const normalized = normalizePluginEntry(rawInput);\n if (normalized === null || normalized === false) continue;\n\n const resolvedReference = await resolveComposableReference(\n normalized,\n baseDir,\n env,\n `plugins.${pluginId}`,\n );\n\n const pluginRuntime = buildRuntimePluginConfig(pluginId, env, resolvedReference);\n\n if (!pluginRuntime.localPath && !pluginRuntime.url) {\n continue;\n }\n\n if (\n pluginRuntime.source === \"remote\" &&\n pluginRuntime.url &&\n !pluginRuntime.localPath &&\n typeof resolvedReference.entry.name !== \"string\"\n ) {\n pluginRuntime.name = await resolveRemotePluginRuntimeName(\n pluginRuntime.url,\n pluginRuntime.name,\n );\n }\n\n out[pluginId] = pluginRuntime;\n }\n\n return out;\n}\n\nasync function resolveRemotePluginRuntimeName(baseUrl: string, fallback: string): Promise<string> {\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 5000);\n const response = await fetch(`${baseUrl.replace(/\\/$/, \"\")}/plugin.manifest.json`, {\n signal: controller.signal,\n });\n clearTimeout(timeout);\n\n if (!response.ok) {\n return fallback;\n }\n\n const manifest = (await response.json()) as {\n plugin?: { name?: unknown };\n };\n\n return typeof manifest.plugin?.name === \"string\" && manifest.plugin.name.length > 0\n ? manifest.plugin.name\n : fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction buildRuntimePluginConfig(\n pluginId: string,\n env: BosEnv,\n resolved: ResolvedComposableReference,\n): RuntimePluginConfig {\n const source = resolved.entry;\n const development = typeof source.development === \"string\" ? source.development : undefined;\n const production = typeof source.production === \"string\" ? source.production : undefined;\n\n if (production?.startsWith(\"bos://\")) {\n throw new Error(\n `Plugin \"${pluginId}\" has unsupported production target \"${production}\". Use extends: \"bos://account/domain\" for plugin configs or a CDN URL for production.`,\n );\n }\n\n const pluginExtendsRef = source.extends ? resolveExtendsRef(source.extends, env) : undefined;\n\n const runtimeTarget =\n env === \"development\"\n ? resolveDevelopmentTarget(\n development,\n production,\n resolved.providerBaseDir,\n undefined,\n `plugins.${pluginId}`,\n pluginExtendsRef,\n )\n : resolveRuntimeTarget(production, resolved.providerBaseDir, \"remote\");\n const apiName = resolvePluginRuntimeName(source.name, runtimeTarget.localPath, pluginId);\n\n const uiConfig = resolved.associatedUi;\n const uiDevelopment =\n typeof uiConfig?.development === \"string\" ? uiConfig.development : undefined;\n const uiProduction = typeof uiConfig?.production === \"string\" ? uiConfig.production : undefined;\n const uiRuntime =\n uiConfig && (uiDevelopment || uiProduction)\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n uiDevelopment,\n uiProduction,\n resolved.providerBaseDir,\n undefined,\n `plugins.${pluginId}.ui`,\n )\n : resolveRuntimeTarget(uiProduction, resolved.providerBaseDir, \"remote\")\n : undefined;\n\n const sidebar = source.sidebar?.map((item) => ({\n ...item,\n to: item.to ?? `/${pluginId}`,\n roleRequired: item.roleRequired ?? (\"member\" as const),\n }));\n\n const routes = source.routes;\n\n return {\n name: apiName,\n url: runtimeTarget.url,\n entry: runtimeTarget.url\n ? `${runtimeTarget.url.replace(/\\/$/, \"\")}/mf-manifest.json`\n : \"/mf-manifest.json\",\n source: runtimeTarget.source,\n localPath: runtimeTarget.localPath,\n port: runtimeTarget.port,\n proxy: typeof source.proxy === \"string\" ? source.proxy : undefined,\n variables: normalizeStringRecord(source.variables),\n secrets: normalizeStringArray(source.secrets),\n integrity: runtimeTarget.source === \"remote\" ? source.integrity : undefined,\n ui: uiRuntime\n ? {\n name: typeof uiConfig?.name === \"string\" ? uiConfig.name : `${apiName}-ui`,\n url: uiRuntime.url,\n entry: uiRuntime.url\n ? `${uiRuntime.url.replace(/\\/$/, \"\")}/mf-manifest.json`\n : \"/mf-manifest.json\",\n source: uiRuntime.source,\n localPath: uiRuntime.localPath,\n port: uiRuntime.port,\n integrity:\n uiRuntime.source === \"remote\" && typeof uiConfig?.integrity === \"string\"\n ? uiConfig.integrity\n : undefined,\n }\n : undefined,\n sidebar,\n routes,\n };\n}\n\nexport function resolvePluginRuntimeName(\n explicitName: string | undefined,\n localPath: string | undefined,\n fallback: string,\n): string {\n if (explicitName) {\n return explicitName;\n }\n\n if (!localPath) {\n return fallback;\n }\n\n try {\n const packageJsonPath = join(localPath, \"package.json\");\n const packageJson = JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { name?: unknown };\n if (typeof packageJson.name === \"string\" && packageJson.name.length > 0) {\n return packageJson.name;\n }\n } catch {}\n\n return fallback;\n}\n\nfunction normalizeStringRecord(value: unknown): Record<string, string> | undefined {\n if (!isPlainObject(value)) return undefined;\n const out: Record<string, string> = {};\n for (const [key, raw] of Object.entries(value)) {\n if (typeof raw === \"string\") {\n out[key] = raw;\n }\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction normalizeStringArray(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const out = value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n return out.length > 0 ? out : undefined;\n}\n\nfunction resolveRuntimeTarget(\n value: string | undefined,\n baseDir: string,\n defaultSource: \"local\" | \"remote\" = \"remote\",\n): RuntimeTarget {\n if (!value) {\n return { source: defaultSource, url: \"\" };\n }\n\n if (value.startsWith(LOCAL_PREFIX)) {\n const localTarget = value?.slice(LOCAL_PREFIX.length).trim();\n if (!localTarget) {\n throw new Error(`Invalid local development target: ${value}`);\n }\n\n const localPath = resolve(baseDir, localTarget);\n if (!existsSync(localPath)) {\n return { source: \"local\", url: \"\" };\n }\n\n return {\n source: \"local\",\n url: \"\",\n localPath,\n };\n }\n\n return {\n source: defaultSource,\n url: value.replace(/\\/$/, \"\"),\n port: parsePort(value),\n };\n}\n\nexport function isLocalDevelopmentTarget(\n value: string | undefined,\n): value is `${typeof LOCAL_PREFIX}${string}` {\n return typeof value === \"string\" && value.startsWith(LOCAL_PREFIX);\n}\n\nexport function resolveLocalDevelopmentPath(\n value: string | undefined,\n baseDir: string,\n): string | null {\n if (!isLocalDevelopmentTarget(value)) {\n return null;\n }\n\n const localTarget = value.slice(LOCAL_PREFIX.length).trim();\n return localTarget ? resolve(baseDir, localTarget) : null;\n}\n\nexport function resolveDevelopmentHostUrl(value: string | undefined): string {\n if (!value || isLocalDevelopmentTarget(value)) {\n return `http://localhost:${DEFAULT_HOST_PORT}`;\n }\n\n return value.replace(/\\/$/, \"\");\n}\n\nexport function getHostDevelopmentPort(value: string | undefined): number {\n return parsePort(resolveDevelopmentHostUrl(value));\n}\n\nexport function parsePort(url: string): number {\n try {\n const parsed = new URL(url);\n return parsed.port ? parseInt(parsed.port, 10) : parsed.protocol === \"https:\" ? 443 : 80;\n } catch {\n return 3000;\n }\n}\n\nexport { BOS_CONFIG_ORDER, rebuildOrderedConfig } from \"./merge\";\nexport type { BosConfig, RuntimeConfig } from \"./types\";\nexport { BosConfigSchema } from \"./types\";\n"],"mappings":"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"}
|
package/dist/contract.cjs
CHANGED
|
@@ -43,10 +43,12 @@ const BuildResultSchema = zod.object({
|
|
|
43
43
|
skipped: zod.array(zod.string()).optional(),
|
|
44
44
|
deployed: zod.boolean().optional()
|
|
45
45
|
});
|
|
46
|
+
const ConfigOptionsSchema = zod.object({ full: zod.boolean().default(false) });
|
|
46
47
|
const ConfigResultSchema = zod.object({
|
|
47
|
-
config: require_types.BosConfigSchema.nullable(),
|
|
48
|
+
config: zod.union([require_types.BosConfigInputSchema, require_types.BosConfigSchema]).nullable(),
|
|
48
49
|
packages: zod.array(zod.string()),
|
|
49
|
-
remotes: zod.array(zod.string())
|
|
50
|
+
remotes: zod.array(zod.string()),
|
|
51
|
+
full: zod.boolean().default(false)
|
|
50
52
|
});
|
|
51
53
|
const PluginAddOptionsSchema = zod.object({
|
|
52
54
|
source: zod.string(),
|
|
@@ -167,7 +169,6 @@ const InitResultSchema = zod.object({
|
|
|
167
169
|
});
|
|
168
170
|
const SyncOptionsSchema = zod.object({
|
|
169
171
|
dryRun: zod.boolean().default(false),
|
|
170
|
-
force: zod.boolean().default(false),
|
|
171
172
|
noInstall: zod.boolean().default(false)
|
|
172
173
|
});
|
|
173
174
|
const SyncResultSchema = zod.object({
|
|
@@ -183,7 +184,6 @@ const SyncResultSchema = zod.object({
|
|
|
183
184
|
});
|
|
184
185
|
const UpgradeOptionsSchema = zod.object({
|
|
185
186
|
dryRun: zod.boolean().default(false),
|
|
186
|
-
force: zod.boolean().default(false),
|
|
187
187
|
noInstall: zod.boolean().default(false),
|
|
188
188
|
noSync: zod.boolean().default(false)
|
|
189
189
|
});
|
|
@@ -254,7 +254,7 @@ const bosContract = every_plugin_orpc.oc.router({
|
|
|
254
254
|
config: every_plugin_orpc.oc.route({
|
|
255
255
|
method: "GET",
|
|
256
256
|
path: "/config"
|
|
257
|
-
}).output(ConfigResultSchema),
|
|
257
|
+
}).input(ConfigOptionsSchema).output(ConfigResultSchema),
|
|
258
258
|
pluginAdd: every_plugin_orpc.oc.route({
|
|
259
259
|
method: "POST",
|
|
260
260
|
path: "/plugin/add"
|
|
@@ -304,6 +304,7 @@ const bosContract = every_plugin_orpc.oc.router({
|
|
|
304
304
|
//#endregion
|
|
305
305
|
exports.BuildOptionsSchema = BuildOptionsSchema;
|
|
306
306
|
exports.BuildResultSchema = BuildResultSchema;
|
|
307
|
+
exports.ConfigOptionsSchema = ConfigOptionsSchema;
|
|
307
308
|
exports.ConfigResultSchema = ConfigResultSchema;
|
|
308
309
|
exports.DevOptionsSchema = DevOptionsSchema;
|
|
309
310
|
exports.DevResultSchema = DevResultSchema;
|
package/dist/contract.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.cjs","names":["z","SourceModeSchema","BosConfigSchema","oc"],"sources":["../src/contract.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { oc } from \"./sdk\";\nimport { BosConfigSchema, SourceModeSchema } from \"./types\";\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n force: z.boolean().default(false),\n deploy: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n deployed: z.boolean().optional(),\n});\n\nexport const ConfigResultSchema = z.object({\n config: BosConfigSchema.nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n script: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n deploy: z.boolean().default(false),\n dryRun: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z.string().default(\"0.25NEAR\"),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n force: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n force: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n source: z.enum([\"local\", \"remote\"]).optional(),\n error: z.string().optional(),\n});\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc.route({ method: \"GET\", path: \"/config\" }).output(ConfigResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.cjs","names":["z","SourceModeSchema","BosConfigInputSchema","BosConfigSchema","oc"],"sources":["../src/contract.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { oc } from \"./sdk\";\nimport { BosConfigInputSchema, BosConfigSchema, SourceModeSchema } from \"./types\";\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n force: z.boolean().default(false),\n deploy: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n deployed: z.boolean().optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n script: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n deploy: z.boolean().default(false),\n dryRun: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z.string().default(\"0.25NEAR\"),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n source: z.enum([\"local\", \"remote\"]).optional(),\n error: z.string().optional(),\n});\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\n"],"mappings":"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"}
|
package/dist/contract.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BosConfigInput } from "./types.cjs";
|
|
2
2
|
import * as z from "zod";
|
|
3
|
+
import * as _$_orpc_contract0 from "@orpc/contract";
|
|
3
4
|
|
|
4
5
|
//#region src/contract.d.ts
|
|
5
6
|
declare const DevOptionsSchema: z.ZodObject<{
|
|
@@ -64,8 +65,11 @@ declare const BuildResultSchema: z.ZodObject<{
|
|
|
64
65
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
65
66
|
deployed: z.ZodOptional<z.ZodBoolean>;
|
|
66
67
|
}, z.core.$strip>;
|
|
68
|
+
declare const ConfigOptionsSchema: z.ZodObject<{
|
|
69
|
+
full: z.ZodDefault<z.ZodBoolean>;
|
|
70
|
+
}, z.core.$strip>;
|
|
67
71
|
declare const ConfigResultSchema: z.ZodObject<{
|
|
68
|
-
config: z.ZodNullable<z.ZodObject<{
|
|
72
|
+
config: z.ZodNullable<z.ZodUnion<readonly [z.ZodType<BosConfigInput, unknown, z.core.$ZodTypeInternals<BosConfigInput, unknown>>, z.ZodObject<{
|
|
69
73
|
account: z.ZodString;
|
|
70
74
|
extends: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
71
75
|
development: z.ZodOptional<z.ZodString>;
|
|
@@ -190,9 +194,10 @@ declare const ConfigResultSchema: z.ZodObject<{
|
|
|
190
194
|
routes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
191
195
|
}, z.core.$strip>>;
|
|
192
196
|
}, z.core.$strip>;
|
|
193
|
-
}, z.core.$strip>>;
|
|
197
|
+
}, z.core.$strip>]>>;
|
|
194
198
|
packages: z.ZodArray<z.ZodString>;
|
|
195
199
|
remotes: z.ZodArray<z.ZodString>;
|
|
200
|
+
full: z.ZodDefault<z.ZodBoolean>;
|
|
196
201
|
}, z.core.$strip>;
|
|
197
202
|
declare const PluginAddOptionsSchema: z.ZodObject<{
|
|
198
203
|
source: z.ZodString;
|
|
@@ -363,7 +368,6 @@ declare const InitResultSchema: z.ZodObject<{
|
|
|
363
368
|
}, z.core.$strip>;
|
|
364
369
|
declare const SyncOptionsSchema: z.ZodObject<{
|
|
365
370
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
366
|
-
force: z.ZodDefault<z.ZodBoolean>;
|
|
367
371
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
368
372
|
}, z.core.$strip>;
|
|
369
373
|
declare const SyncResultSchema: z.ZodObject<{
|
|
@@ -379,7 +383,6 @@ declare const SyncResultSchema: z.ZodObject<{
|
|
|
379
383
|
}, z.core.$strip>;
|
|
380
384
|
declare const UpgradeOptionsSchema: z.ZodObject<{
|
|
381
385
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
382
|
-
force: z.ZodDefault<z.ZodBoolean>;
|
|
383
386
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
384
387
|
noSync: z.ZodDefault<z.ZodBoolean>;
|
|
385
388
|
}, z.core.$strip>;
|
|
@@ -439,8 +442,8 @@ declare const StatusResultSchema: z.ZodObject<{
|
|
|
439
442
|
}, z.core.$strip>;
|
|
440
443
|
declare const TypesGenOptionsSchema: z.ZodObject<{
|
|
441
444
|
env: z.ZodOptional<z.ZodEnum<{
|
|
442
|
-
production: "production";
|
|
443
445
|
development: "development";
|
|
446
|
+
production: "production";
|
|
444
447
|
}>>;
|
|
445
448
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
446
449
|
}, z.core.$strip>;
|
|
@@ -519,8 +522,10 @@ declare const bosContract: {
|
|
|
519
522
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
520
523
|
deployed: z.ZodOptional<z.ZodBoolean>;
|
|
521
524
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
522
|
-
config: _$_orpc_contract0.ContractProcedure<
|
|
523
|
-
|
|
525
|
+
config: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
526
|
+
full: z.ZodDefault<z.ZodBoolean>;
|
|
527
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
528
|
+
config: z.ZodNullable<z.ZodUnion<readonly [z.ZodType<BosConfigInput, unknown, z.core.$ZodTypeInternals<BosConfigInput, unknown>>, z.ZodObject<{
|
|
524
529
|
account: z.ZodString;
|
|
525
530
|
extends: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
526
531
|
development: z.ZodOptional<z.ZodString>;
|
|
@@ -645,9 +650,10 @@ declare const bosContract: {
|
|
|
645
650
|
routes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
646
651
|
}, z.core.$strip>>;
|
|
647
652
|
}, z.core.$strip>;
|
|
648
|
-
}, z.core.$strip>>;
|
|
653
|
+
}, z.core.$strip>]>>;
|
|
649
654
|
packages: z.ZodArray<z.ZodString>;
|
|
650
655
|
remotes: z.ZodArray<z.ZodString>;
|
|
656
|
+
full: z.ZodDefault<z.ZodBoolean>;
|
|
651
657
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
652
658
|
pluginAdd: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
653
659
|
source: z.ZodString;
|
|
@@ -792,7 +798,6 @@ declare const bosContract: {
|
|
|
792
798
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
793
799
|
sync: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
794
800
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
795
|
-
force: z.ZodDefault<z.ZodBoolean>;
|
|
796
801
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
797
802
|
}, z.core.$strip>, z.ZodObject<{
|
|
798
803
|
status: z.ZodEnum<{
|
|
@@ -807,7 +812,6 @@ declare const bosContract: {
|
|
|
807
812
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
808
813
|
upgrade: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
809
814
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
810
|
-
force: z.ZodDefault<z.ZodBoolean>;
|
|
811
815
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
812
816
|
noSync: z.ZodDefault<z.ZodBoolean>;
|
|
813
817
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -866,8 +870,8 @@ declare const bosContract: {
|
|
|
866
870
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
867
871
|
typesGen: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
868
872
|
env: z.ZodOptional<z.ZodEnum<{
|
|
869
|
-
production: "production";
|
|
870
873
|
development: "development";
|
|
874
|
+
production: "production";
|
|
871
875
|
}>>;
|
|
872
876
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
873
877
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -915,5 +919,5 @@ type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;
|
|
|
915
919
|
type TypesGenResult = z.infer<typeof TypesGenResultSchema>;
|
|
916
920
|
type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;
|
|
917
921
|
//#endregion
|
|
918
|
-
export { BosConfigResult, BuildOptions, BuildOptionsSchema, BuildResultSchema, ConfigResultSchema, DevOptions, DevOptionsSchema, DevResult, DevResultSchema, InitOptions, InitOptionsSchema, InitResult, InitResultSchema, KeyPublishOptions, KeyPublishOptionsSchema, KeyPublishResult, KeyPublishResultSchema, OverrideSection, OverrideSectionSchema, PhaseTiming, PhaseTimingSchema, PluginAddOptions, PluginAddOptionsSchema, PluginAddResult, PluginAddResultSchema, PluginListResult, PluginListResultSchema, PluginPublishOptions, PluginPublishOptionsSchema, PluginPublishResult, PluginPublishResultSchema, PluginRemoveOptions, PluginRemoveOptionsSchema, PluginRemoveResult, PluginRemoveResultSchema, PublishOptions, PublishOptionsSchema, PublishResultSchema, RuntimeOverrideTarget, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, StartOptions, StartOptionsSchema, StartResult, StartResultSchema, StatusResult, StatusResultSchema, SyncOptions, SyncOptionsSchema, SyncResult, SyncResultSchema, TypesGenOptions, TypesGenOptionsSchema, TypesGenResult, TypesGenResultSchema, UpgradeOptions, UpgradeOptionsSchema, UpgradeResult, UpgradeResultSchema, bosContract };
|
|
922
|
+
export { BosConfigResult, BuildOptions, BuildOptionsSchema, BuildResultSchema, ConfigOptionsSchema, ConfigResultSchema, DevOptions, DevOptionsSchema, DevResult, DevResultSchema, InitOptions, InitOptionsSchema, InitResult, InitResultSchema, KeyPublishOptions, KeyPublishOptionsSchema, KeyPublishResult, KeyPublishResultSchema, OverrideSection, OverrideSectionSchema, PhaseTiming, PhaseTimingSchema, PluginAddOptions, PluginAddOptionsSchema, PluginAddResult, PluginAddResultSchema, PluginListResult, PluginListResultSchema, PluginPublishOptions, PluginPublishOptionsSchema, PluginPublishResult, PluginPublishResultSchema, PluginRemoveOptions, PluginRemoveOptionsSchema, PluginRemoveResult, PluginRemoveResultSchema, PublishOptions, PublishOptionsSchema, PublishResultSchema, RuntimeOverrideTarget, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, StartOptions, StartOptionsSchema, StartResult, StartResultSchema, StatusResult, StatusResultSchema, SyncOptions, SyncOptionsSchema, SyncResult, SyncResultSchema, TypesGenOptions, TypesGenOptionsSchema, TypesGenResult, TypesGenResultSchema, UpgradeOptions, UpgradeOptionsSchema, UpgradeResult, UpgradeResultSchema, bosContract };
|
|
919
923
|
//# sourceMappingURL=contract.d.cts.map
|