everything-dev 1.14.3 → 1.15.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/upgrade.cjs +5 -3
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +5 -3
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/config.cjs +2 -0
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +2 -0
- package/dist/config.mjs.map +1 -1
- package/dist/contract.d.cts +10 -6
- package/dist/contract.d.cts.map +1 -1
- package/dist/contract.d.mts +10 -6
- package/dist/contract.d.mts.map +1 -1
- package/dist/plugin.d.cts +9 -4
- package/dist/plugin.d.mts +9 -4
- package/dist/types.cjs +4 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +9 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +9 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +4 -0
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
- package/src/cli/upgrade.ts +7 -5
- package/src/config.ts +2 -0
- package/src/types.ts +6 -0
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, fetchPluginFromRegistry, parsePluginBosUrl } from \"./fastkv\";\nimport {\n type BosEnv,\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 SharedDepConfig,\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\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;\n\nexport function clearConfigCache(): void {\n cachedConfig = null;\n projectRoot = null;\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}\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 const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n configPath,\n baseDir,\n new Set(),\n extendedChain,\n env,\n );\n const config = BosConfigSchema.parse(parsed);\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\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 };\n } catch (error) {\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 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\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 resolveDevelopmentTarget(\n development: string | undefined,\n production: string | undefined,\n baseDir: string,\n forceSource?: \"local\" | \"remote\",\n): RuntimeTarget {\n if (forceSource === \"remote\") {\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n const devTarget = resolveRuntimeTarget(development, baseDir);\n if (devTarget.source === \"local\" && (!devTarget.localPath || !existsSync(devTarget.localPath))) {\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 )\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 )\n : resolveRuntimeTarget(apiConfig.production, baseDir, \"remote\");\n const authRuntime = authConfig\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n authConfig.development,\n authConfig.production,\n baseDir,\n options?.authSource,\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 )\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\n return {\n env,\n account: config.account,\n domain: config.domain,\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: uiConfig.name,\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: apiConfig.name,\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(undefined, authRuntime.localPath, authConfig.name),\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 nextVisited = new Set(visited);\n nextVisited.add(configPath);\n const parentBaseDir = extendsRef.startsWith(\"bos://\")\n ? baseDir\n : isAbsolute(extendsRef)\n ? dirname(extendsRef)\n : baseDir;\n const parent = await resolveConfigWithExtends(extendsRef, parentBaseDir, nextVisited, chain, env);\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 let resolvedConfig: BosConfigInput = {};\n let pluginBaseDir = baseDir;\n\n if (normalized.extends) {\n try {\n const extendsUrl = resolveExtendsRef(normalized.extends, env);\n if (extendsUrl) {\n const remoteConfig = await fetchBosConfigFromFastKv<BosConfigInput>(extendsUrl);\n resolvedConfig = remoteConfig;\n }\n } catch {\n resolvedConfig = {};\n }\n }\n\n if (normalized.development?.startsWith(LOCAL_PREFIX)) {\n const localPath = resolve(baseDir, normalized.development.slice(LOCAL_PREFIX.length).trim());\n if (existsSync(localPath)) {\n const localConfigPath = join(localPath, \"bos.config.json\");\n if (existsSync(localConfigPath)) {\n try {\n const localRaw = JSON.parse(readFileSync(localConfigPath, \"utf-8\")) as BosConfigInput;\n resolvedConfig = mergeBosConfigWithExtends(resolvedConfig, localRaw);\n pluginBaseDir = localPath;\n } catch {}\n }\n }\n }\n\n if (normalized.app && isPlainObject(normalized.app)) {\n const mergedApp: Record<string, unknown> = {\n ...((resolvedConfig.app as Record<string, unknown>) ?? {}),\n ...(normalized.app as Record<string, unknown>),\n };\n resolvedConfig = { ...resolvedConfig, app: mergedApp as BosConfigInput[\"app\"] };\n }\n if (normalized.shared && isPlainObject(normalized.shared)) {\n const mergedShared: Record<string, Record<string, SharedDepConfig>> = {\n ...(resolvedConfig.shared ?? {}),\n ...(normalized.shared as Record<string, Record<string, SharedDepConfig>>),\n };\n resolvedConfig = { ...resolvedConfig, shared: mergedShared };\n }\n if (normalized.sidebar) {\n resolvedConfig = { ...resolvedConfig, sidebar: normalized.sidebar };\n }\n if (normalized.routes) {\n resolvedConfig = { ...resolvedConfig, routes: normalized.routes };\n }\n\n const pluginRuntime = await buildRuntimePluginConfig(\n pluginId,\n resolvedConfig,\n pluginBaseDir,\n env,\n normalized,\n );\n if (\n normalized.name &&\n typeof normalized.name === \"string\" &&\n !pluginRuntime.name.includes(\"/\")\n ) {\n pluginRuntime.name = normalized.name;\n }\n\n const integrity = normalized.integrity;\n if (env === \"production\" && integrity) {\n pluginRuntime.integrity = integrity;\n }\n\n if (\n pluginRuntime.source === \"remote\" &&\n pluginRuntime.url &&\n !pluginRuntime.localPath &&\n typeof resolvedConfig.app?.api?.name !== \"string\" &&\n !normalized.name\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\ninterface ResolvedBosPlugin {\n url: string;\n integrity?: string;\n}\n\nasync function resolveBosPluginUrl(bosUrl: string): Promise<ResolvedBosPlugin | null> {\n const parsed = parsePluginBosUrl(bosUrl);\n if (!parsed) return null;\n\n try {\n const entry = await fetchPluginFromRegistry(parsed.accountId, parsed.pluginName);\n if (!entry) return null;\n\n const cdnUrl = entry.metadata.cdnUrl;\n if (!cdnUrl) return null;\n\n return {\n url: cdnUrl,\n integrity: entry.metadata.integrity ?? undefined,\n };\n } catch {\n return null;\n }\n}\n\nasync function buildRuntimePluginConfig(\n pluginId: string,\n config: BosConfigInput,\n baseDir: string,\n env: BosEnv,\n source: BosPluginRef,\n): Promise<RuntimePluginConfig> {\n const apiConfig = config.app?.api ?? {};\n const apiDevelopment =\n typeof apiConfig.development === \"string\" ? apiConfig.development : undefined;\n const apiProduction = typeof apiConfig.production === \"string\" ? apiConfig.production : undefined;\n const sourceDevelopment = typeof source.development === \"string\" ? source.development : undefined;\n const sourceProduction = typeof source.production === \"string\" ? source.production : undefined;\n const proxy = typeof apiConfig.proxy === \"string\" ? apiConfig.proxy : undefined;\n const development = apiDevelopment ?? sourceDevelopment;\n let production = apiProduction ?? sourceProduction;\n\n if (production?.startsWith(\"bos://\")) {\n const resolved = await resolveBosPluginUrl(production);\n if (resolved) {\n production = resolved.url;\n if (resolved.integrity && env === \"production\") {\n source.integrity = resolved.integrity;\n }\n }\n }\n\n const runtimeTarget =\n env === \"development\"\n ? resolveDevelopmentTarget(development, production, baseDir)\n : resolveRuntimeTarget(production, baseDir, \"remote\");\n const apiName = resolvePluginRuntimeName(\n typeof apiConfig.name === \"string\" ? apiConfig.name : undefined,\n runtimeTarget.localPath,\n pluginId,\n );\n\n const uiConfig = config.app?.ui;\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(uiDevelopment, uiProduction, baseDir)\n : resolveRuntimeTarget(uiProduction, baseDir, \"remote\")\n : undefined;\n\n const sidebar = (config.sidebar ?? source.sidebar)?.map((item) => ({\n ...item,\n to: item.to ?? `/${pluginId}`,\n roleRequired: item.roleRequired ?? (\"member\" as const),\n }));\n\n const routes = config.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: proxy ?? (typeof source.proxy === \"string\" ? source.proxy : undefined),\n variables: normalizeStringRecord(apiConfig.variables ?? source.variables),\n secrets: normalizeStringArray(apiConfig.secrets ?? source.secrets),\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, fetchPluginFromRegistry, parsePluginBosUrl } from \"./fastkv\";\nimport {\n type BosEnv,\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 SharedDepConfig,\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\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;\n\nexport function clearConfigCache(): void {\n cachedConfig = null;\n projectRoot = null;\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}\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 const extendedChain: string[] = [];\n const parsed = await resolveConfigWithExtends(\n configPath,\n baseDir,\n new Set(),\n extendedChain,\n env,\n );\n const config = BosConfigSchema.parse(parsed);\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\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 };\n } catch (error) {\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 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\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 resolveDevelopmentTarget(\n development: string | undefined,\n production: string | undefined,\n baseDir: string,\n forceSource?: \"local\" | \"remote\",\n): RuntimeTarget {\n if (forceSource === \"remote\") {\n return resolveRuntimeTarget(production, baseDir, \"remote\");\n }\n const devTarget = resolveRuntimeTarget(development, baseDir);\n if (devTarget.source === \"local\" && (!devTarget.localPath || !existsSync(devTarget.localPath))) {\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 )\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 )\n : resolveRuntimeTarget(apiConfig.production, baseDir, \"remote\");\n const authRuntime = authConfig\n ? env === \"development\"\n ? resolveDevelopmentTarget(\n authConfig.development,\n authConfig.production,\n baseDir,\n options?.authSource,\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 )\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\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: uiConfig.name,\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: apiConfig.name,\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(undefined, authRuntime.localPath, authConfig.name),\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 nextVisited = new Set(visited);\n nextVisited.add(configPath);\n const parentBaseDir = extendsRef.startsWith(\"bos://\")\n ? baseDir\n : isAbsolute(extendsRef)\n ? dirname(extendsRef)\n : baseDir;\n const parent = await resolveConfigWithExtends(extendsRef, parentBaseDir, nextVisited, chain, env);\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 let resolvedConfig: BosConfigInput = {};\n let pluginBaseDir = baseDir;\n\n if (normalized.extends) {\n try {\n const extendsUrl = resolveExtendsRef(normalized.extends, env);\n if (extendsUrl) {\n const remoteConfig = await fetchBosConfigFromFastKv<BosConfigInput>(extendsUrl);\n resolvedConfig = remoteConfig;\n }\n } catch {\n resolvedConfig = {};\n }\n }\n\n if (normalized.development?.startsWith(LOCAL_PREFIX)) {\n const localPath = resolve(baseDir, normalized.development.slice(LOCAL_PREFIX.length).trim());\n if (existsSync(localPath)) {\n const localConfigPath = join(localPath, \"bos.config.json\");\n if (existsSync(localConfigPath)) {\n try {\n const localRaw = JSON.parse(readFileSync(localConfigPath, \"utf-8\")) as BosConfigInput;\n resolvedConfig = mergeBosConfigWithExtends(resolvedConfig, localRaw);\n pluginBaseDir = localPath;\n } catch {}\n }\n }\n }\n\n if (normalized.app && isPlainObject(normalized.app)) {\n const mergedApp: Record<string, unknown> = {\n ...((resolvedConfig.app as Record<string, unknown>) ?? {}),\n ...(normalized.app as Record<string, unknown>),\n };\n resolvedConfig = { ...resolvedConfig, app: mergedApp as BosConfigInput[\"app\"] };\n }\n if (normalized.shared && isPlainObject(normalized.shared)) {\n const mergedShared: Record<string, Record<string, SharedDepConfig>> = {\n ...(resolvedConfig.shared ?? {}),\n ...(normalized.shared as Record<string, Record<string, SharedDepConfig>>),\n };\n resolvedConfig = { ...resolvedConfig, shared: mergedShared };\n }\n if (normalized.sidebar) {\n resolvedConfig = { ...resolvedConfig, sidebar: normalized.sidebar };\n }\n if (normalized.routes) {\n resolvedConfig = { ...resolvedConfig, routes: normalized.routes };\n }\n\n const pluginRuntime = await buildRuntimePluginConfig(\n pluginId,\n resolvedConfig,\n pluginBaseDir,\n env,\n normalized,\n );\n if (\n normalized.name &&\n typeof normalized.name === \"string\" &&\n !pluginRuntime.name.includes(\"/\")\n ) {\n pluginRuntime.name = normalized.name;\n }\n\n const integrity = normalized.integrity;\n if (env === \"production\" && integrity) {\n pluginRuntime.integrity = integrity;\n }\n\n if (\n pluginRuntime.source === \"remote\" &&\n pluginRuntime.url &&\n !pluginRuntime.localPath &&\n typeof resolvedConfig.app?.api?.name !== \"string\" &&\n !normalized.name\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\ninterface ResolvedBosPlugin {\n url: string;\n integrity?: string;\n}\n\nasync function resolveBosPluginUrl(bosUrl: string): Promise<ResolvedBosPlugin | null> {\n const parsed = parsePluginBosUrl(bosUrl);\n if (!parsed) return null;\n\n try {\n const entry = await fetchPluginFromRegistry(parsed.accountId, parsed.pluginName);\n if (!entry) return null;\n\n const cdnUrl = entry.metadata.cdnUrl;\n if (!cdnUrl) return null;\n\n return {\n url: cdnUrl,\n integrity: entry.metadata.integrity ?? undefined,\n };\n } catch {\n return null;\n }\n}\n\nasync function buildRuntimePluginConfig(\n pluginId: string,\n config: BosConfigInput,\n baseDir: string,\n env: BosEnv,\n source: BosPluginRef,\n): Promise<RuntimePluginConfig> {\n const apiConfig = config.app?.api ?? {};\n const apiDevelopment =\n typeof apiConfig.development === \"string\" ? apiConfig.development : undefined;\n const apiProduction = typeof apiConfig.production === \"string\" ? apiConfig.production : undefined;\n const sourceDevelopment = typeof source.development === \"string\" ? source.development : undefined;\n const sourceProduction = typeof source.production === \"string\" ? source.production : undefined;\n const proxy = typeof apiConfig.proxy === \"string\" ? apiConfig.proxy : undefined;\n const development = apiDevelopment ?? sourceDevelopment;\n let production = apiProduction ?? sourceProduction;\n\n if (production?.startsWith(\"bos://\")) {\n const resolved = await resolveBosPluginUrl(production);\n if (resolved) {\n production = resolved.url;\n if (resolved.integrity && env === \"production\") {\n source.integrity = resolved.integrity;\n }\n }\n }\n\n const runtimeTarget =\n env === \"development\"\n ? resolveDevelopmentTarget(development, production, baseDir)\n : resolveRuntimeTarget(production, baseDir, \"remote\");\n const apiName = resolvePluginRuntimeName(\n typeof apiConfig.name === \"string\" ? apiConfig.name : undefined,\n runtimeTarget.localPath,\n pluginId,\n );\n\n const uiConfig = config.app?.ui;\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(uiDevelopment, uiProduction, baseDir)\n : resolveRuntimeTarget(uiProduction, baseDir, \"remote\")\n : undefined;\n\n const sidebar = (config.sidebar ?? source.sidebar)?.map((item) => ({\n ...item,\n to: item.to ?? `/${pluginId}`,\n roleRequired: item.roleRequired ?? (\"member\" as const),\n }));\n\n const routes = config.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: proxy ?? (typeof source.proxy === \"string\" ? source.proxy : undefined),\n variables: normalizeStringRecord(apiConfig.variables ?? source.variables),\n secrets: normalizeStringArray(apiConfig.secrets ?? source.secrets),\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":";;;;;;;;AAwBA,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAC1B,MAAM,2BAA2B;AASjC,IAAI,eAAiC;AACrC,IAAI,cAA6B;AAEjC,SAAgB,mBAAyB;AACvC,gBAAe;AACf,eAAc;;AAGhB,SAAgB,eAAe,KAA6B;CAC1D,IAAI,MAAM,OAAO,QAAQ,KAAK;AAC9B,QAAO,QAAQ,KAAK;EAClB,MAAM,aAAa,KAAK,KAAK,kBAAkB;AAC/C,MAAI,WAAW,WAAW,CACxB,QAAO;AAET,QAAM,QAAQ,IAAI;;AAEpB,QAAO;;AAGT,SAAgB,YAA8B;AAC5C,QAAO;;AAGT,SAAgB,iBAAyB;AACvC,KAAI,CAAC,YACH,OAAM,IAAI,MAAM,8CAA8C;AAEhE,QAAO;;AAaT,eAAsB,WAAW,SAIA;CAC/B,MAAM,aAAa,SAAS,QAAQ,eAAe,SAAS,IAAI;AAChE,KAAI,CAAC,YAAY;AACf,gBAAc,SAAS,OAAO,QAAQ,KAAK;AAC3C,SAAO;;CAGT,MAAM,UAAU,QAAQ,WAAW;CACnC,MAAM,MAAM,SAAS,OAAO;CAC5B,MAAM,aAAqB,QAAQ,YAAY,eAAe;AAE9D,KAAI;EACF,MAAM,gBAA0B,EAAE;EAClC,MAAM,SAAS,MAAM,yBACnB,YACA,yBACA,IAAI,KAAK,EACT,eACA,IACD;EACD,MAAM,SAAS,gBAAgB,MAAM,OAAO;AAE5C,iBAAe;AACf,gBAAc;AAOd,SAAO;GACL;GACA,SANc,mBAAmB,QAAQ,SAAS,YAAY,EAC9D,SAFoB,MAAM,sBAAsB,OAAO,WAAW,EAAE,EAAE,SAAS,WAAW,EAG3F,CAAC;GAKA,QAAQ;IACN,MAAM;IACN,UAAU,cAAc,SAAS,IAAI,gBAAgB;IACrD,QAAQ,cAAc,MAAM,UAAU,MAAM,WAAW,SAAS,CAAC;IAClE;GACF;UACM,OAAO;AACd,QAAM,IAAI,MAAM,8BAA8B,WAAW,IAAI,QAAQ;;;AAIzE,eAAsB,cAAc,SAIT;CACzB,MAAM,SAAS,MAAM,WAAW,QAAQ;AACxC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,2BAA2B;AAG7C,QAAO,OAAO;;AAGhB,eAAsB,6BACpB,QACA,SACA,KAC0D;CAC1D,MAAM,UAAU,MAAM,sBAAsB,OAAO,WAAW,EAAE,EAAE,SAAS,IAAI;AAC/E,QAAO,OAAO,KAAK,QAAQ,CAAC,SAAS,IAAI,UAAU;;AAGrD,SAAgB,sBAAsB,WAA2B;AAC/D,QAAO,KAAK,WAAW,QAAQ,yBAAyB;;AAG1D,SAAgB,mBAAmB,WAAqC;CACtE,MAAM,eAAe,sBAAsB,UAAU;AACrD,KAAI,CAAC,WAAW,aAAa,CAAE,QAAO;AACtC,KAAI;EACF,MAAM,MAAM,KAAK,MAAM,aAAa,cAAc,QAAQ,CAAC;AAC3D,MAAI,CAAC,cAAc,IAAI,CAAE,QAAO;EAChC,MAAM,EAAE,WAAW,GAAG,eAAe;AACrC,SAAO,gBAAgB,MAAM,WAAW;SAClC;AACN,SAAO;;;AAIX,SAAgB,oBACd,WACA,QACA,KACA,cACA,QACM;CACN,MAAM,eAAe,sBAAsB,UAAU;CACrD,MAAM,cAAc,QAAQ,aAAa;AACzC,KAAI,CAAC,WAAW,YAAY,CAC1B,WAAU,aAAa,EAAE,WAAW,MAAM,CAAC;CAG7C,MAAM,UAAU,qBAAqB,OAAO;CAO5C,MAAM,SAAS;EACb,WAP+B;GAC/B;GACA,6BAAY,IAAI,MAAM,EAAC,aAAa;GACpC,cAAc,gBAAgB,EAAE;GAChC,GAAI,SAAS,EAAE,QAAQ,GAAG,EAAE;GAC7B;EAGC,GAAG;EACJ;CAED,MAAM,UAAU,GAAG,KAAK,UAAU,QAAQ,MAAM,EAAE,CAAC;AACnD,KAAI;AACF,MAAI,aAAa,cAAc,QAAQ,KAAK,QAAS;SAC/C;AAGR,eAAc,cAAc,QAAQ;;AAGtC,SAAgB,qBAAqB,WAA2B;CAC9D,MAAM,eAAe,sBAAsB,UAAU;AACrD,KAAI,WAAW,aAAa,CAAE,QAAO;AACrC,QAAO,KAAK,WAAW,kBAAkB;;AAG3C,SAAgB,sBAAsB,WAA4C;CAChF,MAAM,eAAe,sBAAsB,UAAU;AACrD,KAAI,WAAW,aAAa,CAC1B,KAAI;EACF,MAAM,MAAM,KAAK,MAAM,aAAa,cAAc,QAAQ,CAAC;AAC3D,MAAI,cAAc,IAAI,EAAE;GACtB,MAAM,EAAE,WAAW,GAAG,eAAe;AACrC,UAAO;;SAEH;CAEV,MAAM,gBAAgB,KAAK,WAAW,kBAAkB;AACxD,QAAO,KAAK,MAAM,aAAa,eAAe,QAAQ,CAAC;;AAGzD,SAAS,yBACP,aACA,YACA,SACA,aACe;AACf,KAAI,gBAAgB,SAClB,QAAO,qBAAqB,YAAY,SAAS,SAAS;CAE5D,MAAM,YAAY,qBAAqB,aAAa,QAAQ;AAC5D,KAAI,UAAU,WAAW,YAAY,CAAC,UAAU,aAAa,CAAC,WAAW,UAAU,UAAU,EAC3F,QAAO,qBAAqB,YAAY,SAAS,SAAS;AAE5D,QAAO;;AAYT,SAAgB,mBACd,QACA,SACA,KACA,SACe;CACf,MAAM,WAAW,OAAO,IAAI;CAC5B,MAAM,YAAY,OAAO,IAAI;CAC7B,MAAM,aAAa,OAAO,IAAI;CAC9B,MAAM,YACJ,QAAQ,gBACJ,yBACE,SAAS,aACT,SAAS,YACT,SACA,SAAS,SACV,GACD,qBAAqB,SAAS,YAAY,SAAS,SAAS;CAClE,MAAM,aACJ,QAAQ,gBACJ,yBACE,UAAU,aACV,UAAU,YACV,SACA,SAAS,UACV,GACD,qBAAqB,UAAU,YAAY,SAAS,SAAS;CACnE,MAAM,cAAc,aAChB,QAAQ,gBACN,yBACE,WAAW,aACX,WAAW,YACX,SACA,SAAS,WACV,GACD,qBAAqB,WAAW,YAAY,SAAS,SAAS,GAChE;CAEJ,MAAM,aAAa,OAAO,IAAI;CAC9B,MAAM,cACJ,QAAQ,gBACJ,yBACE,WAAW,aACX,WAAW,YACX,SACA,SAAS,WACV,GACD,qBAAqB,WAAW,YAAY,SAAS,SAAS;CAEpE,MAAM,mBACJ,QAAQ,gBACJ,0BAA0B,WAAW,YAAY,GACjD,oBAAoB,YAAY,QAAQ;CAE9C,MAAM,eAAe,YAAY,WAAW;CAC5C,MAAM,aAAa,UAAU,WAAW;CACxC,MAAM,cAAc,WAAW,WAAW;AAE1C,QAAO;EACL;EACA,SAAS,OAAO;EAChB,QAAQ,OAAO;EACf,OAAO,OAAO;EACd,aAAa,OAAO;EACpB,WAAW,uBAAuB,OAAO,QAAQ;EACjD,YAAY,OAAO;EACnB,MAAM;GACJ,MAAM;GACN,KAAK;GACL,OAAO,GAAG,iBAAiB;GAC3B,WAAW,YAAY;GACvB,MAAM,YAAY,QAAQ;GAC1B,SAAS,WAAW;GACpB,WAAW,eAAe,WAAW,YAAY;GACjD,QAAQ,YAAY;GACpB,WAAW,eAAe,YAAY,MAAM;GAC7C;EACD,QAAQ,OAAO;EACf,IAAI;GACF,MAAM,SAAS;GACf,KAAK,UAAU;GACf,OAAO,UAAU,MAAM,GAAG,UAAU,IAAI,qBAAqB;GAC7D,WAAW,UAAU;GACrB,MAAM,UAAU;GAChB,QAAQ,aAAa,SAAS,MAAM;GACpC,cAAc,aAAa,SAAS,eAAe;GACnD,WAAW,aAAa,SAAS,YAAY;GAC7C,QAAQ,UAAU;GACnB;EACD,KAAK;GACH,MAAM,UAAU;GAChB,KAAK,WAAW;GAChB,OAAO,WAAW,MAAM,GAAG,WAAW,IAAI,qBAAqB;GAC/D,WAAW,WAAW;GACtB,MAAM,WAAW;GACjB,QAAQ,WAAW;GACnB,OAAO,SAAS,SAAS,UAAU;GACnC,WAAW,UAAU;GACrB,SAAS,UAAU;GACnB,WAAW,cAAc,UAAU,YAAY;GAChD;EACD,aAAa;AACX,OAAI,CAAC,cAAc,CAAC,YAAa,QAAO;AACxC,UAAO;IACL,MAAM,yBAAyB,QAAW,YAAY,WAAW,WAAW,KAAK;IACjF,KAAK,YAAY;IACjB,OAAO,YAAY,MAAM,GAAG,YAAY,IAAI,qBAAqB;IACjE,WAAW,YAAY;IACvB,MAAM,YAAY;IAClB,QAAQ,YAAY;IACpB,OAAO,WAAW;IAClB,WAAW,WAAW;IACtB,SAAS,WAAW;IACpB,WAAW,YAAY,WAAW,WAAW,WAAW,YAAY;IACpE,SAAS,WAAW,SAAS,KAAK,UAAU;KAC1C,GAAG;KACH,IAAI,KAAK,MAAM;KACf,cAAc,KAAK,gBAAiB;KACrC,EAAE;IACJ;MACC;EACJ,SACE,SAAS,WAAW,OAAO,KAAK,QAAQ,QAAQ,CAAC,SAAS,IAAI,QAAQ,UAAU;EACnF;;AAGH,eAAe,eAAe,YAAoB,SAA0C;AAC1F,KAAI,WAAW,WAAW,SAAS,CACjC,QAAO,yBAAyC,WAAW;CAG7D,MAAM,eAAe,WAAW,WAAW,GAAG,aAAa,QAAQ,SAAS,WAAW;AACvF,QAAO,KAAK,MAAM,aAAa,cAAc,QAAQ,CAAC;;AAGxD,eAAe,yBACb,YACA,SACA,SACA,OACA,MAAc,eACW;AACzB,KAAI,QAAQ,IAAI,WAAW,CACzB,OAAM,IAAI,MAAM,8BAA8B,CAAC,GAAG,SAAS,WAAW,CAAC,KAAK,OAAO,GAAG;CAGxF,MAAM,SAAS,MAAM,eAAe,YAAY,QAAQ;AACxD,OAAM,KAAK,WAAW;AAEtB,KAAI,CAAC,OAAO,QACV,QAAO;CAGT,MAAM,aAAa,kBAAkB,OAAO,SAAmC,IAAI;AACnF,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,cAAc,IAAI,IAAI,QAAQ;AACpC,aAAY,IAAI,WAAW;AAQ3B,QAAO,0BAFQ,MAAM,yBAAyB,YALxB,WAAW,WAAW,SAAS,GACjD,UACA,WAAW,WAAW,GACpB,QAAQ,WAAW,GACnB,SACmE,aAAa,OAAO,IAAI,EAExD,OAAO;;AAKlD,SAAS,qBAAqB,KAAuD;AACnF,KAAI,QAAQ,QAAQ,QAAQ,MAAO,QAAO;AAC1C,KAAI,OAAO,QAAQ,SACjB,QAAO,EAAE,SAAS,KAAK;AAEzB,QAAO;;AAGT,eAAe,sBACb,SACA,SACA,KAC8C;CAC9C,MAAM,MAA2C,EAAE;AAEnD,MAAK,MAAM,CAAC,UAAU,aAAa,OAAO,QAAQ,QAAQ,EAAE;EAC1D,MAAM,aAAa,qBAAqB,SAAS;AACjD,MAAI,eAAe,QAAQ,eAAe,MAAO;EAEjD,IAAI,iBAAiC,EAAE;EACvC,IAAI,gBAAgB;AAEpB,MAAI,WAAW,QACb,KAAI;GACF,MAAM,aAAa,kBAAkB,WAAW,SAAS,IAAI;AAC7D,OAAI,WAEF,kBADqB,MAAM,yBAAyC,WAAW;UAG3E;AACN,oBAAiB,EAAE;;AAIvB,MAAI,WAAW,aAAa,WAAW,aAAa,EAAE;GACpD,MAAM,YAAY,QAAQ,SAAS,WAAW,YAAY,MAAM,EAAoB,CAAC,MAAM,CAAC;AAC5F,OAAI,WAAW,UAAU,EAAE;IACzB,MAAM,kBAAkB,KAAK,WAAW,kBAAkB;AAC1D,QAAI,WAAW,gBAAgB,CAC7B,KAAI;KACF,MAAM,WAAW,KAAK,MAAM,aAAa,iBAAiB,QAAQ,CAAC;AACnE,sBAAiB,0BAA0B,gBAAgB,SAAS;AACpE,qBAAgB;YACV;;;AAKd,MAAI,WAAW,OAAO,cAAc,WAAW,IAAI,EAAE;GACnD,MAAM,YAAqC;IACzC,GAAK,eAAe,OAAmC,EAAE;IACzD,GAAI,WAAW;IAChB;AACD,oBAAiB;IAAE,GAAG;IAAgB,KAAK;IAAoC;;AAEjF,MAAI,WAAW,UAAU,cAAc,WAAW,OAAO,EAAE;GACzD,MAAM,eAAgE;IACpE,GAAI,eAAe,UAAU,EAAE;IAC/B,GAAI,WAAW;IAChB;AACD,oBAAiB;IAAE,GAAG;IAAgB,QAAQ;IAAc;;AAE9D,MAAI,WAAW,QACb,kBAAiB;GAAE,GAAG;GAAgB,SAAS,WAAW;GAAS;AAErE,MAAI,WAAW,OACb,kBAAiB;GAAE,GAAG;GAAgB,QAAQ,WAAW;GAAQ;EAGnE,MAAM,gBAAgB,MAAM,yBAC1B,UACA,gBACA,eACA,KACA,WACD;AACD,MACE,WAAW,QACX,OAAO,WAAW,SAAS,YAC3B,CAAC,cAAc,KAAK,SAAS,IAAI,CAEjC,eAAc,OAAO,WAAW;EAGlC,MAAM,YAAY,WAAW;AAC7B,MAAI,QAAQ,gBAAgB,UAC1B,eAAc,YAAY;AAG5B,MACE,cAAc,WAAW,YACzB,cAAc,OACd,CAAC,cAAc,aACf,OAAO,eAAe,KAAK,KAAK,SAAS,YACzC,CAAC,WAAW,KAEZ,eAAc,OAAO,MAAM,+BACzB,cAAc,KACd,cAAc,KACf;AAGH,MAAI,YAAY;;AAGlB,QAAO;;AAGT,eAAe,+BAA+B,SAAiB,UAAmC;AAChG,KAAI;EACF,MAAM,aAAa,IAAI,iBAAiB;EACxC,MAAM,UAAU,iBAAiB,WAAW,OAAO,EAAE,IAAK;EAC1D,MAAM,WAAW,MAAM,MAAM,GAAG,QAAQ,QAAQ,OAAO,GAAG,CAAC,wBAAwB,EACjF,QAAQ,WAAW,QACpB,CAAC;AACF,eAAa,QAAQ;AAErB,MAAI,CAAC,SAAS,GACZ,QAAO;EAGT,MAAM,WAAY,MAAM,SAAS,MAAM;AAIvC,SAAO,OAAO,SAAS,QAAQ,SAAS,YAAY,SAAS,OAAO,KAAK,SAAS,IAC9E,SAAS,OAAO,OAChB;SACE;AACN,SAAO;;;AASX,eAAe,oBAAoB,QAAmD;CACpF,MAAM,SAAS,kBAAkB,OAAO;AACxC,KAAI,CAAC,OAAQ,QAAO;AAEpB,KAAI;EACF,MAAM,QAAQ,MAAM,wBAAwB,OAAO,WAAW,OAAO,WAAW;AAChF,MAAI,CAAC,MAAO,QAAO;EAEnB,MAAM,SAAS,MAAM,SAAS;AAC9B,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO;GACL,KAAK;GACL,WAAW,MAAM,SAAS,aAAa;GACxC;SACK;AACN,SAAO;;;AAIX,eAAe,yBACb,UACA,QACA,SACA,KACA,QAC8B;CAC9B,MAAM,YAAY,OAAO,KAAK,OAAO,EAAE;CACvC,MAAM,iBACJ,OAAO,UAAU,gBAAgB,WAAW,UAAU,cAAc;CACtE,MAAM,gBAAgB,OAAO,UAAU,eAAe,WAAW,UAAU,aAAa;CACxF,MAAM,oBAAoB,OAAO,OAAO,gBAAgB,WAAW,OAAO,cAAc;CACxF,MAAM,mBAAmB,OAAO,OAAO,eAAe,WAAW,OAAO,aAAa;CACrF,MAAM,QAAQ,OAAO,UAAU,UAAU,WAAW,UAAU,QAAQ;CACtE,MAAM,cAAc,kBAAkB;CACtC,IAAI,aAAa,iBAAiB;AAElC,KAAI,YAAY,WAAW,SAAS,EAAE;EACpC,MAAM,WAAW,MAAM,oBAAoB,WAAW;AACtD,MAAI,UAAU;AACZ,gBAAa,SAAS;AACtB,OAAI,SAAS,aAAa,QAAQ,aAChC,QAAO,YAAY,SAAS;;;CAKlC,MAAM,gBACJ,QAAQ,gBACJ,yBAAyB,aAAa,YAAY,QAAQ,GAC1D,qBAAqB,YAAY,SAAS,SAAS;CACzD,MAAM,UAAU,yBACd,OAAO,UAAU,SAAS,WAAW,UAAU,OAAO,QACtD,cAAc,WACd,SACD;CAED,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,gBACJ,OAAO,UAAU,gBAAgB,WAAW,SAAS,cAAc;CACrE,MAAM,eAAe,OAAO,UAAU,eAAe,WAAW,SAAS,aAAa;CACtF,MAAM,YACJ,aAAa,iBAAiB,gBAC1B,QAAQ,gBACN,yBAAyB,eAAe,cAAc,QAAQ,GAC9D,qBAAqB,cAAc,SAAS,SAAS,GACvD;CAEN,MAAM,WAAW,OAAO,WAAW,OAAO,UAAU,KAAK,UAAU;EACjE,GAAG;EACH,IAAI,KAAK,MAAM,IAAI;EACnB,cAAc,KAAK,gBAAiB;EACrC,EAAE;CAEH,MAAM,SAAS,OAAO,UAAU,OAAO;AAEvC,QAAO;EACL,MAAM;EACN,KAAK,cAAc;EACnB,OAAO,cAAc,MACjB,GAAG,cAAc,IAAI,QAAQ,OAAO,GAAG,CAAC,qBACxC;EACJ,QAAQ,cAAc;EACtB,WAAW,cAAc;EACzB,MAAM,cAAc;EACpB,OAAO,UAAU,OAAO,OAAO,UAAU,WAAW,OAAO,QAAQ;EACnE,WAAW,sBAAsB,UAAU,aAAa,OAAO,UAAU;EACzE,SAAS,qBAAqB,UAAU,WAAW,OAAO,QAAQ;EAClE,IAAI,YACA;GACE,MAAM,OAAO,UAAU,SAAS,WAAW,SAAS,OAAO,GAAG,QAAQ;GACtE,KAAK,UAAU;GACf,OAAO,UAAU,MACb,GAAG,UAAU,IAAI,QAAQ,OAAO,GAAG,CAAC,qBACpC;GACJ,QAAQ,UAAU;GAClB,WAAW,UAAU;GACrB,MAAM,UAAU;GAChB,WACE,UAAU,WAAW,YAAY,OAAO,UAAU,cAAc,WAC5D,SAAS,YACT;GACP,GACD;EACJ;EACA;EACD;;AAGH,SAAgB,yBACd,cACA,WACA,UACQ;AACR,KAAI,aACF,QAAO;AAGT,KAAI,CAAC,UACH,QAAO;AAGT,KAAI;EACF,MAAM,kBAAkB,KAAK,WAAW,eAAe;EACvD,MAAM,cAAc,KAAK,MAAM,aAAa,iBAAiB,QAAQ,CAAC;AACtE,MAAI,OAAO,YAAY,SAAS,YAAY,YAAY,KAAK,SAAS,EACpE,QAAO,YAAY;SAEf;AAER,QAAO;;AAGT,SAAS,sBAAsB,OAAoD;AACjF,KAAI,CAAC,cAAc,MAAM,CAAE,QAAO;CAClC,MAAM,MAA8B,EAAE;AACtC,MAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,CAC5C,KAAI,OAAO,QAAQ,SACjB,KAAI,OAAO;AAGf,QAAO,OAAO,KAAK,IAAI,CAAC,SAAS,IAAI,MAAM;;AAG7C,SAAS,qBAAqB,OAAsC;AAClE,KAAI,CAAC,MAAM,QAAQ,MAAM,CAAE,QAAO;CAClC,MAAM,MAAM,MAAM,QAAQ,SAAyB,OAAO,SAAS,YAAY,KAAK,SAAS,EAAE;AAC/F,QAAO,IAAI,SAAS,IAAI,MAAM;;AAGhC,SAAS,qBACP,OACA,SACA,gBAAoC,UACrB;AACf,KAAI,CAAC,MACH,QAAO;EAAE,QAAQ;EAAe,KAAK;EAAI;AAG3C,KAAI,MAAM,WAAW,aAAa,EAAE;EAClC,MAAM,cAAc,OAAO,MAAM,EAAoB,CAAC,MAAM;AAC5D,MAAI,CAAC,YACH,OAAM,IAAI,MAAM,qCAAqC,QAAQ;EAG/D,MAAM,YAAY,QAAQ,SAAS,YAAY;AAC/C,MAAI,CAAC,WAAW,UAAU,CACxB,QAAO;GAAE,QAAQ;GAAS,KAAK;GAAI;AAGrC,SAAO;GACL,QAAQ;GACR,KAAK;GACL;GACD;;AAGH,QAAO;EACL,QAAQ;EACR,KAAK,MAAM,QAAQ,OAAO,GAAG;EAC7B,MAAM,UAAU,MAAM;EACvB;;AAGH,SAAgB,yBACd,OAC4C;AAC5C,QAAO,OAAO,UAAU,YAAY,MAAM,WAAW,aAAa;;AAGpE,SAAgB,4BACd,OACA,SACe;AACf,KAAI,CAAC,yBAAyB,MAAM,CAClC,QAAO;CAGT,MAAM,cAAc,MAAM,MAAM,EAAoB,CAAC,MAAM;AAC3D,QAAO,cAAc,QAAQ,SAAS,YAAY,GAAG;;AAGvD,SAAgB,0BAA0B,OAAmC;AAC3E,KAAI,CAAC,SAAS,yBAAyB,MAAM,CAC3C,QAAO,oBAAoB;AAG7B,QAAO,MAAM,QAAQ,OAAO,GAAG;;AAGjC,SAAgB,uBAAuB,OAAmC;AACxE,QAAO,UAAU,0BAA0B,MAAM,CAAC;;AAGpD,SAAgB,UAAU,KAAqB;AAC7C,KAAI;EACF,MAAM,SAAS,IAAI,IAAI,IAAI;AAC3B,SAAO,OAAO,OAAO,SAAS,OAAO,MAAM,GAAG,GAAG,OAAO,aAAa,WAAW,MAAM;SAChF;AACN,SAAO"}
|
package/dist/contract.d.cts
CHANGED
|
@@ -57,8 +57,8 @@ declare const BuildOptionsSchema: z.ZodObject<{
|
|
|
57
57
|
}, z.core.$strip>;
|
|
58
58
|
declare const BuildResultSchema: z.ZodObject<{
|
|
59
59
|
status: z.ZodEnum<{
|
|
60
|
-
success: "success";
|
|
61
60
|
error: "error";
|
|
61
|
+
success: "success";
|
|
62
62
|
}>;
|
|
63
63
|
built: z.ZodArray<z.ZodString>;
|
|
64
64
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -73,6 +73,8 @@ declare const ConfigResultSchema: z.ZodObject<{
|
|
|
73
73
|
staging: z.ZodOptional<z.ZodString>;
|
|
74
74
|
}, z.core.$strip>]>>;
|
|
75
75
|
domain: z.ZodOptional<z.ZodString>;
|
|
76
|
+
title: z.ZodOptional<z.ZodString>;
|
|
77
|
+
description: z.ZodOptional<z.ZodString>;
|
|
76
78
|
testnet: z.ZodOptional<z.ZodString>;
|
|
77
79
|
staging: z.ZodOptional<z.ZodObject<{
|
|
78
80
|
domain: z.ZodString;
|
|
@@ -386,15 +388,15 @@ declare const StatusResultSchema: z.ZodObject<{
|
|
|
386
388
|
}, z.core.$strip>;
|
|
387
389
|
declare const TypesGenOptionsSchema: z.ZodObject<{
|
|
388
390
|
env: z.ZodOptional<z.ZodEnum<{
|
|
389
|
-
development: "development";
|
|
390
391
|
production: "production";
|
|
392
|
+
development: "development";
|
|
391
393
|
}>>;
|
|
392
394
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
393
395
|
}, z.core.$strip>;
|
|
394
396
|
declare const TypesGenResultSchema: z.ZodObject<{
|
|
395
397
|
status: z.ZodEnum<{
|
|
396
|
-
success: "success";
|
|
397
398
|
error: "error";
|
|
399
|
+
success: "success";
|
|
398
400
|
}>;
|
|
399
401
|
generated: z.ZodArray<z.ZodString>;
|
|
400
402
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -459,8 +461,8 @@ declare const bosContract: {
|
|
|
459
461
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
460
462
|
}, z.core.$strip>, z.ZodObject<{
|
|
461
463
|
status: z.ZodEnum<{
|
|
462
|
-
success: "success";
|
|
463
464
|
error: "error";
|
|
465
|
+
success: "success";
|
|
464
466
|
}>;
|
|
465
467
|
built: z.ZodArray<z.ZodString>;
|
|
466
468
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -475,6 +477,8 @@ declare const bosContract: {
|
|
|
475
477
|
staging: z.ZodOptional<z.ZodString>;
|
|
476
478
|
}, z.core.$strip>]>>;
|
|
477
479
|
domain: z.ZodOptional<z.ZodString>;
|
|
480
|
+
title: z.ZodOptional<z.ZodString>;
|
|
481
|
+
description: z.ZodOptional<z.ZodString>;
|
|
478
482
|
testnet: z.ZodOptional<z.ZodString>;
|
|
479
483
|
staging: z.ZodOptional<z.ZodObject<{
|
|
480
484
|
domain: z.ZodString;
|
|
@@ -780,14 +784,14 @@ declare const bosContract: {
|
|
|
780
784
|
}, z.core.$strip>, MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
781
785
|
typesGen: ContractProcedure<z.ZodObject<{
|
|
782
786
|
env: z.ZodOptional<z.ZodEnum<{
|
|
783
|
-
development: "development";
|
|
784
787
|
production: "production";
|
|
788
|
+
development: "development";
|
|
785
789
|
}>>;
|
|
786
790
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
787
791
|
}, z.core.$strip>, z.ZodObject<{
|
|
788
792
|
status: z.ZodEnum<{
|
|
789
|
-
success: "success";
|
|
790
793
|
error: "error";
|
|
794
|
+
success: "success";
|
|
791
795
|
}>;
|
|
792
796
|
generated: z.ZodArray<z.ZodString>;
|
|
793
797
|
fetched: z.ZodArray<z.ZodString>;
|
package/dist/contract.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.cts","names":[],"sources":["../src/contract.ts"],"mappings":";;;;cAGa,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;cAWhB,eAAA,EAAe,CAAA,CAAA,SAAA;;;;;;;;cAMf,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;cAQlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;cAMjB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;cAMlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;cAOjB,kBAAA,EAAkB,CAAA,CAAA,SAAA
|
|
1
|
+
{"version":3,"file":"contract.d.cts","names":[],"sources":["../src/contract.ts"],"mappings":";;;;cAGa,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;cAWhB,eAAA,EAAe,CAAA,CAAA,SAAA;;;;;;;;cAMf,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;cAQlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;cAMjB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;cAMlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;cAOjB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAMlB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;cAMtB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;;;;;;cAUrB,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;cAIzB,wBAAA,EAAwB,CAAA,CAAA,SAAA;;;;;;;;cAMxB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;cAiBtB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;cAI1B,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;cAWzB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;cAQpB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;cASnB,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;cAIvB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;cAYtB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;;;;;cAcjB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;cAahB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;cAMjB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;cAQhB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;cAOpB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;cAenB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;cAkBlB,qBAAA,EAAqB,CAAA,CAAA,SAAA;;;;;;;cAKrB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;cAUpB,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmDD,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,KAC5B,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAC9B,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAC9B,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KACjC,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAClC,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,mBAAA,GAAsB,CAAA,CAAE,KAAA,QAAa,yBAAA;AAAA,KACrC,kBAAA,GAAqB,CAAA,CAAE,KAAA,QAAa,wBAAA;AAAA,KACpC,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAClC,oBAAA,GAAuB,CAAA,CAAE,KAAA,QAAa,0BAAA;AAAA,KACtC,mBAAA,GAAsB,CAAA,CAAE,KAAA,QAAa,yBAAA;AAAA,KACrC,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,uBAAA;AAAA,KACnC,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAClC,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,KAC7B,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,KAC5B,WAAA,GAAc,CAAA,CAAE,KAAA,QAAa,iBAAA;AAAA,KAC7B,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,KAC5B,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;AAAA,KAChC,aAAA,GAAgB,CAAA,CAAE,KAAA,QAAa,mBAAA;AAAA,KAC/B,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;AAAA,KAC9B,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,KACjC,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA"}
|
package/dist/contract.d.mts
CHANGED
|
@@ -57,8 +57,8 @@ declare const BuildOptionsSchema: z.ZodObject<{
|
|
|
57
57
|
}, z.core.$strip>;
|
|
58
58
|
declare const BuildResultSchema: z.ZodObject<{
|
|
59
59
|
status: z.ZodEnum<{
|
|
60
|
-
success: "success";
|
|
61
60
|
error: "error";
|
|
61
|
+
success: "success";
|
|
62
62
|
}>;
|
|
63
63
|
built: z.ZodArray<z.ZodString>;
|
|
64
64
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -73,6 +73,8 @@ declare const ConfigResultSchema: z.ZodObject<{
|
|
|
73
73
|
staging: z.ZodOptional<z.ZodString>;
|
|
74
74
|
}, z.core.$strip>]>>;
|
|
75
75
|
domain: z.ZodOptional<z.ZodString>;
|
|
76
|
+
title: z.ZodOptional<z.ZodString>;
|
|
77
|
+
description: z.ZodOptional<z.ZodString>;
|
|
76
78
|
testnet: z.ZodOptional<z.ZodString>;
|
|
77
79
|
staging: z.ZodOptional<z.ZodObject<{
|
|
78
80
|
domain: z.ZodString;
|
|
@@ -386,15 +388,15 @@ declare const StatusResultSchema: z.ZodObject<{
|
|
|
386
388
|
}, z.core.$strip>;
|
|
387
389
|
declare const TypesGenOptionsSchema: z.ZodObject<{
|
|
388
390
|
env: z.ZodOptional<z.ZodEnum<{
|
|
389
|
-
development: "development";
|
|
390
391
|
production: "production";
|
|
392
|
+
development: "development";
|
|
391
393
|
}>>;
|
|
392
394
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
393
395
|
}, z.core.$strip>;
|
|
394
396
|
declare const TypesGenResultSchema: z.ZodObject<{
|
|
395
397
|
status: z.ZodEnum<{
|
|
396
|
-
success: "success";
|
|
397
398
|
error: "error";
|
|
399
|
+
success: "success";
|
|
398
400
|
}>;
|
|
399
401
|
generated: z.ZodArray<z.ZodString>;
|
|
400
402
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -459,8 +461,8 @@ declare const bosContract: {
|
|
|
459
461
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
460
462
|
}, z.core.$strip>, z.ZodObject<{
|
|
461
463
|
status: z.ZodEnum<{
|
|
462
|
-
success: "success";
|
|
463
464
|
error: "error";
|
|
465
|
+
success: "success";
|
|
464
466
|
}>;
|
|
465
467
|
built: z.ZodArray<z.ZodString>;
|
|
466
468
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -475,6 +477,8 @@ declare const bosContract: {
|
|
|
475
477
|
staging: z.ZodOptional<z.ZodString>;
|
|
476
478
|
}, z.core.$strip>]>>;
|
|
477
479
|
domain: z.ZodOptional<z.ZodString>;
|
|
480
|
+
title: z.ZodOptional<z.ZodString>;
|
|
481
|
+
description: z.ZodOptional<z.ZodString>;
|
|
478
482
|
testnet: z.ZodOptional<z.ZodString>;
|
|
479
483
|
staging: z.ZodOptional<z.ZodObject<{
|
|
480
484
|
domain: z.ZodString;
|
|
@@ -780,14 +784,14 @@ declare const bosContract: {
|
|
|
780
784
|
}, z.core.$strip>, MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
781
785
|
typesGen: ContractProcedure<z.ZodObject<{
|
|
782
786
|
env: z.ZodOptional<z.ZodEnum<{
|
|
783
|
-
development: "development";
|
|
784
787
|
production: "production";
|
|
788
|
+
development: "development";
|
|
785
789
|
}>>;
|
|
786
790
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
787
791
|
}, z.core.$strip>, z.ZodObject<{
|
|
788
792
|
status: z.ZodEnum<{
|
|
789
|
-
success: "success";
|
|
790
793
|
error: "error";
|
|
794
|
+
success: "success";
|
|
791
795
|
}>;
|
|
792
796
|
generated: z.ZodArray<z.ZodString>;
|
|
793
797
|
fetched: z.ZodArray<z.ZodString>;
|
package/dist/contract.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.mts","names":[],"sources":["../src/contract.ts"],"mappings":";;;;cAGa,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;cAWhB,eAAA,EAAe,CAAA,CAAA,SAAA;;;;;;;;cAMf,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;cAQlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;cAMjB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;cAMlB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;cAOjB,kBAAA,EAAkB,CAAA,CAAA,SAAA
|
|
1
|
+
{"version":3,"file":"contract.d.mts","names":[],"sources":["../src/contract.ts"],"mappings":"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"}
|
package/dist/plugin.d.cts
CHANGED
|
@@ -56,8 +56,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
56
56
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
57
57
|
}, z.core.$strip>, z.ZodObject<{
|
|
58
58
|
status: z.ZodEnum<{
|
|
59
|
-
success: "success";
|
|
60
59
|
error: "error";
|
|
60
|
+
success: "success";
|
|
61
61
|
}>;
|
|
62
62
|
built: z.ZodArray<z.ZodString>;
|
|
63
63
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -72,6 +72,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
72
72
|
staging: z.ZodOptional<z.ZodString>;
|
|
73
73
|
}, z.core.$strip>]>>;
|
|
74
74
|
domain: z.ZodOptional<z.ZodString>;
|
|
75
|
+
title: z.ZodOptional<z.ZodString>;
|
|
76
|
+
description: z.ZodOptional<z.ZodString>;
|
|
75
77
|
testnet: z.ZodOptional<z.ZodString>;
|
|
76
78
|
staging: z.ZodOptional<z.ZodObject<{
|
|
77
79
|
domain: z.ZodString;
|
|
@@ -377,14 +379,14 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
377
379
|
}, z.core.$strip>, MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
378
380
|
typesGen: ContractProcedure<z.ZodObject<{
|
|
379
381
|
env: z.ZodOptional<z.ZodEnum<{
|
|
380
|
-
development: "development";
|
|
381
382
|
production: "production";
|
|
383
|
+
development: "development";
|
|
382
384
|
}>>;
|
|
383
385
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
384
386
|
}, z.core.$strip>, z.ZodObject<{
|
|
385
387
|
status: z.ZodEnum<{
|
|
386
|
-
success: "success";
|
|
387
388
|
error: "error";
|
|
389
|
+
success: "success";
|
|
388
390
|
}>;
|
|
389
391
|
generated: z.ZodArray<z.ZodString>;
|
|
390
392
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -453,6 +455,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
453
455
|
staging?: string | undefined;
|
|
454
456
|
} | undefined;
|
|
455
457
|
domain?: string | undefined;
|
|
458
|
+
title?: string | undefined;
|
|
459
|
+
description?: string | undefined;
|
|
456
460
|
testnet?: string | undefined;
|
|
457
461
|
staging?: {
|
|
458
462
|
domain: string;
|
|
@@ -500,7 +504,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
500
504
|
}> | undefined;
|
|
501
505
|
} | null;
|
|
502
506
|
runtimeConfig: {
|
|
503
|
-
env: "
|
|
507
|
+
env: "production" | "staging" | "development";
|
|
504
508
|
account: string;
|
|
505
509
|
networkId: "testnet" | "mainnet";
|
|
506
510
|
host: {
|
|
@@ -539,6 +543,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
539
543
|
};
|
|
540
544
|
domain?: string | undefined;
|
|
541
545
|
title?: string | undefined;
|
|
546
|
+
description?: string | undefined;
|
|
542
547
|
repository?: string | undefined;
|
|
543
548
|
shared?: {
|
|
544
549
|
ui?: Record<string, {
|
package/dist/plugin.d.mts
CHANGED
|
@@ -56,8 +56,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
56
56
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
57
57
|
}, z.core.$strip>, z.ZodObject<{
|
|
58
58
|
status: z.ZodEnum<{
|
|
59
|
-
success: "success";
|
|
60
59
|
error: "error";
|
|
60
|
+
success: "success";
|
|
61
61
|
}>;
|
|
62
62
|
built: z.ZodArray<z.ZodString>;
|
|
63
63
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -72,6 +72,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
72
72
|
staging: z.ZodOptional<z.ZodString>;
|
|
73
73
|
}, z.core.$strip>]>>;
|
|
74
74
|
domain: z.ZodOptional<z.ZodString>;
|
|
75
|
+
title: z.ZodOptional<z.ZodString>;
|
|
76
|
+
description: z.ZodOptional<z.ZodString>;
|
|
75
77
|
testnet: z.ZodOptional<z.ZodString>;
|
|
76
78
|
staging: z.ZodOptional<z.ZodObject<{
|
|
77
79
|
domain: z.ZodString;
|
|
@@ -377,14 +379,14 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
377
379
|
}, z.core.$strip>, MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
378
380
|
typesGen: ContractProcedure<z.ZodObject<{
|
|
379
381
|
env: z.ZodOptional<z.ZodEnum<{
|
|
380
|
-
development: "development";
|
|
381
382
|
production: "production";
|
|
383
|
+
development: "development";
|
|
382
384
|
}>>;
|
|
383
385
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
384
386
|
}, z.core.$strip>, z.ZodObject<{
|
|
385
387
|
status: z.ZodEnum<{
|
|
386
|
-
success: "success";
|
|
387
388
|
error: "error";
|
|
389
|
+
success: "success";
|
|
388
390
|
}>;
|
|
389
391
|
generated: z.ZodArray<z.ZodString>;
|
|
390
392
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -453,6 +455,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
453
455
|
staging?: string | undefined;
|
|
454
456
|
} | undefined;
|
|
455
457
|
domain?: string | undefined;
|
|
458
|
+
title?: string | undefined;
|
|
459
|
+
description?: string | undefined;
|
|
456
460
|
testnet?: string | undefined;
|
|
457
461
|
staging?: {
|
|
458
462
|
domain: string;
|
|
@@ -500,7 +504,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
500
504
|
}> | undefined;
|
|
501
505
|
} | null;
|
|
502
506
|
runtimeConfig: {
|
|
503
|
-
env: "
|
|
507
|
+
env: "production" | "staging" | "development";
|
|
504
508
|
account: string;
|
|
505
509
|
networkId: "testnet" | "mainnet";
|
|
506
510
|
host: {
|
|
@@ -539,6 +543,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
539
543
|
};
|
|
540
544
|
domain?: string | undefined;
|
|
541
545
|
title?: string | undefined;
|
|
546
|
+
description?: string | undefined;
|
|
542
547
|
repository?: string | undefined;
|
|
543
548
|
shared?: {
|
|
544
549
|
ui?: Record<string, {
|
package/dist/types.cjs
CHANGED
|
@@ -112,6 +112,7 @@ const ClientRuntimeInfoSchema = every_plugin_zod.z.object({
|
|
|
112
112
|
gatewayId: every_plugin_zod.z.string(),
|
|
113
113
|
runtimeBasePath: every_plugin_zod.z.string(),
|
|
114
114
|
title: every_plugin_zod.z.string().nullable(),
|
|
115
|
+
description: every_plugin_zod.z.string().nullable(),
|
|
115
116
|
hostUrl: every_plugin_zod.z.string().nullable()
|
|
116
117
|
});
|
|
117
118
|
const BosStagingSchema = every_plugin_zod.z.object({ domain: every_plugin_zod.z.string() });
|
|
@@ -145,6 +146,8 @@ const BosConfigSchema = every_plugin_zod.z.object({
|
|
|
145
146
|
account: every_plugin_zod.z.string(),
|
|
146
147
|
extends: ExtendsSchema.optional(),
|
|
147
148
|
domain: every_plugin_zod.z.string().optional(),
|
|
149
|
+
title: every_plugin_zod.z.string().optional(),
|
|
150
|
+
description: every_plugin_zod.z.string().optional(),
|
|
148
151
|
testnet: every_plugin_zod.z.string().optional(),
|
|
149
152
|
staging: BosStagingSchema.optional(),
|
|
150
153
|
repository: every_plugin_zod.z.string().optional(),
|
|
@@ -167,6 +170,7 @@ const RuntimeConfigSchema = every_plugin_zod.z.object({
|
|
|
167
170
|
domain: every_plugin_zod.z.string().optional(),
|
|
168
171
|
networkId: every_plugin_zod.z.enum(["mainnet", "testnet"]),
|
|
169
172
|
title: every_plugin_zod.z.string().optional(),
|
|
173
|
+
description: every_plugin_zod.z.string().optional(),
|
|
170
174
|
repository: every_plugin_zod.z.string().optional(),
|
|
171
175
|
host: FederationEntrySchema.extend({
|
|
172
176
|
localPath: every_plugin_zod.z.string().optional(),
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","names":["z"],"sources":["../src/types.ts"],"sourcesContent":["import { z } from \"./sdk\";\n\nexport const ExtendsSchema = z.union([\n z.string(),\n z.object({\n development: z.string().optional(),\n production: z.string().optional(),\n staging: z.string().optional(),\n }),\n]);\nexport type Extends = z.infer<typeof ExtendsSchema>;\nexport type ExtendsConfig = Extract<Extends, Record<string, string | undefined>>;\n\nexport const SourceModeSchema = z.enum([\"local\", \"remote\"]);\nexport type SourceMode = z.infer<typeof SourceModeSchema>;\n\nexport const SharedConfigSchema = z.object({\n version: z.string(),\n requiredVersion: z.string().optional(),\n singleton: z.boolean().optional(),\n eager: z.boolean().optional(),\n strictVersion: z.boolean().optional(),\n shareScope: z.string().optional(),\n});\nexport type SharedConfig = z.infer<typeof SharedConfigSchema>;\nexport type SharedDepConfig = SharedConfig;\nexport const SharedDepConfigSchema = SharedConfigSchema;\n\nexport const FederationEntrySchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n});\nexport type FederationEntry = z.infer<typeof FederationEntrySchema>;\n\nexport const SidebarRoleSchema = z.enum([\"anon\", \"member\", \"admin\"]);\nexport type SidebarRole = z.infer<typeof SidebarRoleSchema>;\n\nexport const SidebarItemSchema = z.object({\n icon: z.string(),\n label: z.string(),\n to: z.string().optional(),\n roleRequired: SidebarRoleSchema.optional(),\n});\nexport type SidebarItem = z.infer<typeof SidebarItemSchema>;\n\nexport const ApiPluginConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n});\nexport type ApiPluginConfig = z.infer<typeof ApiPluginConfigSchema>;\n\nexport const PluginUiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n});\nexport type PluginUiConfig = z.infer<typeof PluginUiConfigSchema>;\n\nexport const BosPluginRefSchema = z.object({\n extends: ExtendsSchema.optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n name: z.string().optional(),\n version: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n app: z.record(z.string(), z.unknown()).optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.unknown()).optional(),\n});\nexport type BosPluginRef = z.infer<typeof BosPluginRefSchema>;\nexport type PluginEntryValue = string | BosPluginRef;\nexport type PluginEntries = Record<string, PluginEntryValue>;\n\nconst PluginRuntimeUiSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n integrity: z.string().optional(),\n});\nexport type PluginRuntimeUi = z.infer<typeof PluginRuntimeUiSchema>;\n\nexport const RuntimePluginConfigSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n integrity: z.string().optional(),\n ui: PluginRuntimeUiSchema.optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n routes: z.array(z.string()).optional(),\n});\nexport type RuntimePluginConfig = z.infer<typeof RuntimePluginConfigSchema>;\n\nexport const UiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n ssr: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n});\nexport type UiConfig = z.infer<typeof UiConfigSchema>;\n\nexport const HostConfigSchema = z.object({\n development: z.string(),\n production: z.string(),\n integrity: z.string().optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type HostConfig = z.infer<typeof HostConfigSchema>;\n\nexport const ClientRuntimeInfoSchema = z.object({\n accountId: z.string(),\n gatewayId: z.string(),\n runtimeBasePath: z.string(),\n title: z.string().nullable(),\n hostUrl: z.string().nullable(),\n});\nexport type ClientRuntimeInfo = z.infer<typeof ClientRuntimeInfoSchema>;\n\nexport const BosStagingSchema = z.object({\n domain: z.string(),\n});\nexport type BosStaging = z.infer<typeof BosStagingSchema>;\n\nconst BosConfigInputAppEntrySchema = z.record(z.string(), z.unknown());\nexport type BosConfigInputAppEntry = z.infer<typeof BosConfigInputAppEntrySchema>;\n\nexport const BosConfigInputSchema: z.ZodType<BosConfigInput> = z.lazy(() =>\n z.object({\n extends: ExtendsSchema.optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n testnet: z.string().optional(),\n template: z.string().optional(),\n gateway: z\n .object({\n development: z.string().optional(),\n production: z.string().optional(),\n account: z.string().optional(),\n })\n .optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n name: z.string().optional(),\n version: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n app: z.record(z.string(), BosConfigInputAppEntrySchema).optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.union([z.string(), BosConfigInputSchema])).optional(),\n }),\n);\n\nexport interface BosConfigInput {\n extends?: string | ExtendsConfig;\n account?: string;\n domain?: string;\n testnet?: string;\n template?: string;\n gateway?: {\n development?: string;\n production?: string;\n account?: string;\n };\n development?: string;\n production?: string;\n integrity?: string;\n name?: string;\n version?: string;\n proxy?: string;\n variables?: Record<string, string>;\n secrets?: string[];\n routes?: string[];\n sidebar?: SidebarItem[];\n app?: Record<string, BosConfigInputAppEntry>;\n shared?: Record<string, Record<string, SharedDepConfig>>;\n plugins?: Record<string, string | BosConfigInput>;\n}\n\nexport const BosConfigSchema = z.object({\n account: z.string(),\n extends: ExtendsSchema.optional(),\n domain: z.string().optional(),\n testnet: z.string().optional(),\n staging: BosStagingSchema.optional(),\n repository: z.string().optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.union([z.string(), BosPluginRefSchema])).optional(),\n app: z.object({\n host: HostConfigSchema,\n ui: UiConfigSchema,\n api: ApiPluginConfigSchema,\n auth: ApiPluginConfigSchema.optional(),\n }),\n});\nexport type BosConfig = z.infer<typeof BosConfigSchema>;\n\nexport const RuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\", \"staging\"]),\n account: z.string(),\n domain: z.string().optional(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n title: z.string().optional(),\n repository: z.string().optional(),\n host: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n secrets: z.array(z.string()).optional(),\n remoteUrl: z.string().optional(),\n }),\n shared: z\n .object({\n ui: z.record(z.string(), SharedConfigSchema).optional(),\n plugins: z.record(z.string(), SharedConfigSchema).optional(),\n })\n .optional(),\n ui: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n ssrUrl: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n }),\n api: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n }),\n auth: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n }).optional(),\n plugins: z.record(z.string(), RuntimePluginConfigSchema).optional(),\n});\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\n\nexport const ClientRuntimeConfigSchema = z.object({\n cspNonce: z.string().optional(),\n env: z.enum([\"development\", \"production\", \"staging\"]),\n account: z.string(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n hostUrl: z.string().optional(),\n assetsUrl: z.string(),\n apiBase: z.string(),\n rpcBase: z.string(),\n repository: z.string().optional(),\n authAvailable: z.boolean().optional(),\n runtime: ClientRuntimeInfoSchema.optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n api: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n auth: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n })\n .optional(),\n plugins: z\n .record(\n z.string(),\n z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n })\n .optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n }),\n )\n .optional(),\n});\nexport type ClientRuntimeConfig = z.infer<typeof ClientRuntimeConfigSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.cjs","names":["z"],"sources":["../src/types.ts"],"sourcesContent":["import { z } from \"./sdk\";\n\nexport const ExtendsSchema = z.union([\n z.string(),\n z.object({\n development: z.string().optional(),\n production: z.string().optional(),\n staging: z.string().optional(),\n }),\n]);\nexport type Extends = z.infer<typeof ExtendsSchema>;\nexport type ExtendsConfig = Extract<Extends, Record<string, string | undefined>>;\n\nexport const SourceModeSchema = z.enum([\"local\", \"remote\"]);\nexport type SourceMode = z.infer<typeof SourceModeSchema>;\n\nexport const SharedConfigSchema = z.object({\n version: z.string(),\n requiredVersion: z.string().optional(),\n singleton: z.boolean().optional(),\n eager: z.boolean().optional(),\n strictVersion: z.boolean().optional(),\n shareScope: z.string().optional(),\n});\nexport type SharedConfig = z.infer<typeof SharedConfigSchema>;\nexport type SharedDepConfig = SharedConfig;\nexport const SharedDepConfigSchema = SharedConfigSchema;\n\nexport const FederationEntrySchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n});\nexport type FederationEntry = z.infer<typeof FederationEntrySchema>;\n\nexport const SidebarRoleSchema = z.enum([\"anon\", \"member\", \"admin\"]);\nexport type SidebarRole = z.infer<typeof SidebarRoleSchema>;\n\nexport const SidebarItemSchema = z.object({\n icon: z.string(),\n label: z.string(),\n to: z.string().optional(),\n roleRequired: SidebarRoleSchema.optional(),\n});\nexport type SidebarItem = z.infer<typeof SidebarItemSchema>;\n\nexport const ApiPluginConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n});\nexport type ApiPluginConfig = z.infer<typeof ApiPluginConfigSchema>;\n\nexport const PluginUiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n});\nexport type PluginUiConfig = z.infer<typeof PluginUiConfigSchema>;\n\nexport const BosPluginRefSchema = z.object({\n extends: ExtendsSchema.optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n name: z.string().optional(),\n version: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n app: z.record(z.string(), z.unknown()).optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.unknown()).optional(),\n});\nexport type BosPluginRef = z.infer<typeof BosPluginRefSchema>;\nexport type PluginEntryValue = string | BosPluginRef;\nexport type PluginEntries = Record<string, PluginEntryValue>;\n\nconst PluginRuntimeUiSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n integrity: z.string().optional(),\n});\nexport type PluginRuntimeUi = z.infer<typeof PluginRuntimeUiSchema>;\n\nexport const RuntimePluginConfigSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n integrity: z.string().optional(),\n ui: PluginRuntimeUiSchema.optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n routes: z.array(z.string()).optional(),\n});\nexport type RuntimePluginConfig = z.infer<typeof RuntimePluginConfigSchema>;\n\nexport const UiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n ssr: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n});\nexport type UiConfig = z.infer<typeof UiConfigSchema>;\n\nexport const HostConfigSchema = z.object({\n development: z.string(),\n production: z.string(),\n integrity: z.string().optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type HostConfig = z.infer<typeof HostConfigSchema>;\n\nexport const ClientRuntimeInfoSchema = z.object({\n accountId: z.string(),\n gatewayId: z.string(),\n runtimeBasePath: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n hostUrl: z.string().nullable(),\n});\nexport type ClientRuntimeInfo = z.infer<typeof ClientRuntimeInfoSchema>;\n\nexport const BosStagingSchema = z.object({\n domain: z.string(),\n});\nexport type BosStaging = z.infer<typeof BosStagingSchema>;\n\nconst BosConfigInputAppEntrySchema = z.record(z.string(), z.unknown());\nexport type BosConfigInputAppEntry = z.infer<typeof BosConfigInputAppEntrySchema>;\n\nexport const BosConfigInputSchema: z.ZodType<BosConfigInput> = z.lazy(() =>\n z.object({\n extends: ExtendsSchema.optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n testnet: z.string().optional(),\n template: z.string().optional(),\n gateway: z\n .object({\n development: z.string().optional(),\n production: z.string().optional(),\n account: z.string().optional(),\n })\n .optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n name: z.string().optional(),\n version: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n routes: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n app: z.record(z.string(), BosConfigInputAppEntrySchema).optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.union([z.string(), BosConfigInputSchema])).optional(),\n }),\n);\n\nexport interface BosConfigInput {\n extends?: string | ExtendsConfig;\n account?: string;\n domain?: string;\n title?: string;\n description?: string;\n testnet?: string;\n template?: string;\n gateway?: {\n development?: string;\n production?: string;\n account?: string;\n };\n development?: string;\n production?: string;\n integrity?: string;\n name?: string;\n version?: string;\n proxy?: string;\n variables?: Record<string, string>;\n secrets?: string[];\n routes?: string[];\n sidebar?: SidebarItem[];\n app?: Record<string, BosConfigInputAppEntry>;\n shared?: Record<string, Record<string, SharedDepConfig>>;\n plugins?: Record<string, string | BosConfigInput>;\n}\n\nexport const BosConfigSchema = z.object({\n account: z.string(),\n extends: ExtendsSchema.optional(),\n domain: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n testnet: z.string().optional(),\n staging: BosStagingSchema.optional(),\n repository: z.string().optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), z.union([z.string(), BosPluginRefSchema])).optional(),\n app: z.object({\n host: HostConfigSchema,\n ui: UiConfigSchema,\n api: ApiPluginConfigSchema,\n auth: ApiPluginConfigSchema.optional(),\n }),\n});\nexport type BosConfig = z.infer<typeof BosConfigSchema>;\n\nexport const RuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\", \"staging\"]),\n account: z.string(),\n domain: z.string().optional(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n title: z.string().optional(),\n description: z.string().optional(),\n repository: z.string().optional(),\n host: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n secrets: z.array(z.string()).optional(),\n remoteUrl: z.string().optional(),\n }),\n shared: z\n .object({\n ui: z.record(z.string(), SharedConfigSchema).optional(),\n plugins: z.record(z.string(), SharedConfigSchema).optional(),\n })\n .optional(),\n ui: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n ssrUrl: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n }),\n api: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n }),\n auth: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n }).optional(),\n plugins: z.record(z.string(), RuntimePluginConfigSchema).optional(),\n});\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\n\nexport const ClientRuntimeConfigSchema = z.object({\n cspNonce: z.string().optional(),\n env: z.enum([\"development\", \"production\", \"staging\"]),\n account: z.string(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n hostUrl: z.string().optional(),\n assetsUrl: z.string(),\n apiBase: z.string(),\n rpcBase: z.string(),\n repository: z.string().optional(),\n authAvailable: z.boolean().optional(),\n runtime: ClientRuntimeInfoSchema.optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n api: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n auth: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n })\n .optional(),\n plugins: z\n .record(\n z.string(),\n z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n })\n .optional(),\n sidebar: z.array(SidebarItemSchema).optional(),\n }),\n )\n .optional(),\n});\nexport type ClientRuntimeConfig = z.infer<typeof ClientRuntimeConfigSchema>;\n"],"mappings":"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"}
|