everything-dev 1.35.1 → 1.35.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/init.cjs +3 -3
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts.map +1 -1
- package/dist/cli/init.d.mts.map +1 -1
- package/dist/cli/init.mjs +3 -3
- package/dist/cli/init.mjs.map +1 -1
- package/dist/contract.d.cts +20 -20
- package/dist/contract.d.mts +20 -20
- package/dist/merge.cjs +1 -3
- package/dist/merge.cjs.map +1 -1
- package/dist/merge.d.cts.map +1 -1
- package/dist/merge.d.mts.map +1 -1
- package/dist/merge.mjs +1 -3
- package/dist/merge.mjs.map +1 -1
- package/dist/plugin.d.cts +9 -9
- package/dist/plugin.d.mts +9 -9
- package/dist/types.d.cts +2 -2
- package/dist/types.d.mts +2 -2
- package/package.json +1 -1
package/dist/merge.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.cjs","names":[],"sources":["../src/merge.ts"],"sourcesContent":["import { createDefu } from \"defu\";\nimport type { BosConfigInput, ExtendsConfig } from \"./types\";\n\nexport const BOS_CONFIG_ORDER = [\n \"extends\",\n \"account\",\n \"domain\",\n \"title\",\n \"description\",\n \"testnet\",\n \"staging\",\n \"repository\",\n \"ci\",\n \"app\",\n \"plugins\",\n] as const;\n\nexport type BosConfigFieldName = (typeof BOS_CONFIG_ORDER)[number];\n\nexport type BosEnv = \"development\" | \"production\" | \"staging\";\n\nexport interface ResolvedConfigMeta {\n env: BosEnv;\n resolvedAt: string;\n extendsChain: string[];\n source?: string;\n}\n\nconst ARRAY_UNION_KEYS = new Set([\"secrets\"]);\n\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction unionArrays(a: unknown, b: unknown): unknown[] | undefined {\n const aArr = Array.isArray(a) ? a : [];\n const bArr = Array.isArray(b) ? b : [];\n if (aArr.length === 0 && bArr.length === 0) return undefined;\n const seen = new Set<string>();\n const result: unknown[] = [];\n for (const item of [...aArr, ...bArr]) {\n if (typeof item === \"string\") {\n if (seen.has(item)) continue;\n seen.add(item);\n }\n result.push(item);\n }\n return result;\n}\n\nfunction cleanNullSentinels(obj: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === null || value === undefined) continue;\n if (isPlainObject(value)) {\n const cleaned = cleanNullSentinels(value);\n if (Object.keys(cleaned).length > 0) {\n out[key] = cleaned;\n }\n } else {\n out[key] = value;\n }\n }\n return out;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bosConfigMerger = createDefu((obj: any, key: any, value: any): boolean | undefined => {\n if (obj[key] === null) return true;\n if (value === null) {\n obj[key] = null;\n return true;\n }\n if (Array.isArray(obj[key]) && Array.isArray(value)) {\n if (ARRAY_UNION_KEYS.has(key)) {\n obj[key] = unionArrays(obj[key], value);\n } else {\n obj[key] = value;\n }\n return true;\n }\n return false;\n});\n\nexport function resolveExtendsRef(\n extendsField: string | ExtendsConfig | undefined,\n env: BosEnv,\n): string | undefined {\n if (!extendsField) return undefined;\n if (typeof extendsField === \"string\") return extendsField;\n return extendsField[env] ?? extendsField.production ?? Object.values(extendsField).find(Boolean);\n}\n\nexport function mergeBosConfigWithExtends(\n parent: BosConfigInput,\n child: BosConfigInput,\n): BosConfigInput {\n const
|
|
1
|
+
{"version":3,"file":"merge.cjs","names":[],"sources":["../src/merge.ts"],"sourcesContent":["import { createDefu } from \"defu\";\nimport type { BosConfigInput, ExtendsConfig } from \"./types\";\n\nexport const BOS_CONFIG_ORDER = [\n \"extends\",\n \"account\",\n \"domain\",\n \"title\",\n \"description\",\n \"testnet\",\n \"staging\",\n \"repository\",\n \"ci\",\n \"app\",\n \"plugins\",\n] as const;\n\nexport type BosConfigFieldName = (typeof BOS_CONFIG_ORDER)[number];\n\nexport type BosEnv = \"development\" | \"production\" | \"staging\";\n\nexport interface ResolvedConfigMeta {\n env: BosEnv;\n resolvedAt: string;\n extendsChain: string[];\n source?: string;\n}\n\nconst ARRAY_UNION_KEYS = new Set([\"secrets\"]);\n\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction unionArrays(a: unknown, b: unknown): unknown[] | undefined {\n const aArr = Array.isArray(a) ? a : [];\n const bArr = Array.isArray(b) ? b : [];\n if (aArr.length === 0 && bArr.length === 0) return undefined;\n const seen = new Set<string>();\n const result: unknown[] = [];\n for (const item of [...aArr, ...bArr]) {\n if (typeof item === \"string\") {\n if (seen.has(item)) continue;\n seen.add(item);\n }\n result.push(item);\n }\n return result;\n}\n\nfunction cleanNullSentinels(obj: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === null || value === undefined) continue;\n if (isPlainObject(value)) {\n const cleaned = cleanNullSentinels(value);\n if (Object.keys(cleaned).length > 0) {\n out[key] = cleaned;\n }\n } else {\n out[key] = value;\n }\n }\n return out;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bosConfigMerger = createDefu((obj: any, key: any, value: any): boolean | undefined => {\n if (obj[key] === null) return true;\n if (value === null) {\n obj[key] = null;\n return true;\n }\n if (Array.isArray(obj[key]) && Array.isArray(value)) {\n if (ARRAY_UNION_KEYS.has(key)) {\n obj[key] = unionArrays(obj[key], value);\n } else {\n obj[key] = value;\n }\n return true;\n }\n return false;\n});\n\nexport function resolveExtendsRef(\n extendsField: string | ExtendsConfig | undefined,\n env: BosEnv,\n): string | undefined {\n if (!extendsField) return undefined;\n if (typeof extendsField === \"string\") return extendsField;\n return extendsField[env] ?? extendsField.production ?? Object.values(extendsField).find(Boolean);\n}\n\nexport function mergeBosConfigWithExtends(\n parent: BosConfigInput,\n child: BosConfigInput,\n): BosConfigInput {\n const merged = bosConfigMerger(child, parent) as BosConfigInput;\n\n if (child.plugins !== undefined && isPlainObject(child.plugins)) {\n (merged as Record<string, unknown>).plugins = cleanNullSentinels(\n child.plugins as Record<string, unknown>,\n );\n }\n\n const mergedRecord = merged as Record<string, unknown>;\n\n if (isPlainObject(mergedRecord.app)) {\n for (const entryVal of Object.values(mergedRecord.app as Record<string, unknown>)) {\n if (!isPlainObject(entryVal)) continue;\n for (const secretKey of ARRAY_UNION_KEYS) {\n if (Array.isArray(entryVal[secretKey])) {\n entryVal[secretKey] =\n (unionArrays(entryVal[secretKey] as unknown[], []) as string[] | undefined)?.filter(\n Boolean,\n ) ?? entryVal[secretKey];\n }\n }\n }\n }\n\n if (isPlainObject(mergedRecord.plugins)) {\n for (const pluginVal of Object.values(mergedRecord.plugins as Record<string, unknown>)) {\n if (!isPlainObject(pluginVal)) continue;\n for (const secretKey of ARRAY_UNION_KEYS) {\n if (Array.isArray(pluginVal[secretKey])) {\n pluginVal[secretKey] =\n (unionArrays(pluginVal[secretKey] as unknown[], []) as string[] | undefined)?.filter(\n Boolean,\n ) ?? pluginVal[secretKey];\n }\n }\n }\n }\n\n return rebuildOrderedConfig(mergedRecord) as BosConfigInput;\n}\n\nexport function mergeBosConfigWithTemplate(\n local: BosConfigInput,\n template: BosConfigInput,\n): BosConfigInput {\n const merged = mergeJsonValuesPreservingLocalOrder(local, template) as BosConfigInput;\n return rebuildOrderedConfig(merged as Record<string, unknown>) as BosConfigInput;\n}\n\nfunction mergeJsonValuesPreservingLocalOrder(local: unknown, template: unknown): unknown {\n if (isPlainObject(local) && isPlainObject(template)) {\n const merged: Record<string, unknown> = {};\n for (const key of Object.keys(local)) {\n merged[key] = mergeJsonValuesPreservingLocalOrder(\n local[key],\n (template as Record<string, unknown>)[key],\n );\n }\n for (const key of Object.keys(template as Record<string, unknown>)) {\n if (!(key in merged)) {\n merged[key] = (template as Record<string, unknown>)[key];\n }\n }\n return merged;\n }\n return local ?? template;\n}\n\nexport function rebuildOrderedConfig<T extends Record<string, unknown>>(config: T): T {\n const ordered: Record<string, unknown> = {};\n\n for (const key of BOS_CONFIG_ORDER) {\n if (key in config) {\n ordered[key] = config[key];\n }\n }\n\n for (const key of Object.keys(config)) {\n if (!BOS_CONFIG_ORDER.includes(key as BosConfigFieldName)) {\n ordered[key] = config[key];\n }\n }\n\n return ordered as T;\n}\n\nexport { bosConfigMerger };\n"],"mappings":"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"}
|
package/dist/merge.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.cts","names":[],"sources":["../src/merge.ts"],"mappings":";;cAGa,gBAAA;AAAA,KAgBD,MAAA;AAAA,iBAiEI,iBAAA,CACd,YAAA,WAAuB,aAAA,cACvB,GAAA,EAAK,MAAA;AAAA,iBAOS,yBAAA,CACd,MAAA,EAAQ,cAAA,EACR,KAAA,EAAO,cAAA,GACN,cAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"merge.d.cts","names":[],"sources":["../src/merge.ts"],"mappings":";;cAGa,gBAAA;AAAA,KAgBD,MAAA;AAAA,iBAiEI,iBAAA,CACd,YAAA,WAAuB,aAAA,cACvB,GAAA,EAAK,MAAA;AAAA,iBAOS,yBAAA,CACd,MAAA,EAAQ,cAAA,EACR,KAAA,EAAO,cAAA,GACN,cAAA;AAAA,iBAqEa,oBAAA,WAA+B,MAAA,kBAAA,CAAyB,MAAA,EAAQ,CAAA,GAAI,CAAA"}
|
package/dist/merge.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.mts","names":[],"sources":["../src/merge.ts"],"mappings":";;cAGa,gBAAA;AAAA,KAgBD,MAAA;AAAA,iBAiEI,iBAAA,CACd,YAAA,WAAuB,aAAA,cACvB,GAAA,EAAK,MAAA;AAAA,iBAOS,yBAAA,CACd,MAAA,EAAQ,cAAA,EACR,KAAA,EAAO,cAAA,GACN,cAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"merge.d.mts","names":[],"sources":["../src/merge.ts"],"mappings":";;cAGa,gBAAA;AAAA,KAgBD,MAAA;AAAA,iBAiEI,iBAAA,CACd,YAAA,WAAuB,aAAA,cACvB,GAAA,EAAK,MAAA;AAAA,iBAOS,yBAAA,CACd,MAAA,EAAQ,cAAA,EACR,KAAA,EAAO,cAAA,GACN,cAAA;AAAA,iBAqEa,oBAAA,WAA+B,MAAA,kBAAA,CAAyB,MAAA,EAAQ,CAAA,GAAI,CAAA"}
|
package/dist/merge.mjs
CHANGED
|
@@ -63,10 +63,8 @@ function resolveExtendsRef(extendsField, env) {
|
|
|
63
63
|
return extendsField[env] ?? extendsField.production ?? Object.values(extendsField).find(Boolean);
|
|
64
64
|
}
|
|
65
65
|
function mergeBosConfigWithExtends(parent, child) {
|
|
66
|
-
const
|
|
67
|
-
const merged = bosConfigMerger(child, parentWithoutPlugins);
|
|
66
|
+
const merged = bosConfigMerger(child, parent);
|
|
68
67
|
if (child.plugins !== void 0 && isPlainObject(child.plugins)) merged.plugins = cleanNullSentinels(child.plugins);
|
|
69
|
-
else delete merged.plugins;
|
|
70
68
|
const mergedRecord = merged;
|
|
71
69
|
if (isPlainObject(mergedRecord.app)) for (const entryVal of Object.values(mergedRecord.app)) {
|
|
72
70
|
if (!isPlainObject(entryVal)) continue;
|
package/dist/merge.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.mjs","names":[],"sources":["../src/merge.ts"],"sourcesContent":["import { createDefu } from \"defu\";\nimport type { BosConfigInput, ExtendsConfig } from \"./types\";\n\nexport const BOS_CONFIG_ORDER = [\n \"extends\",\n \"account\",\n \"domain\",\n \"title\",\n \"description\",\n \"testnet\",\n \"staging\",\n \"repository\",\n \"ci\",\n \"app\",\n \"plugins\",\n] as const;\n\nexport type BosConfigFieldName = (typeof BOS_CONFIG_ORDER)[number];\n\nexport type BosEnv = \"development\" | \"production\" | \"staging\";\n\nexport interface ResolvedConfigMeta {\n env: BosEnv;\n resolvedAt: string;\n extendsChain: string[];\n source?: string;\n}\n\nconst ARRAY_UNION_KEYS = new Set([\"secrets\"]);\n\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction unionArrays(a: unknown, b: unknown): unknown[] | undefined {\n const aArr = Array.isArray(a) ? a : [];\n const bArr = Array.isArray(b) ? b : [];\n if (aArr.length === 0 && bArr.length === 0) return undefined;\n const seen = new Set<string>();\n const result: unknown[] = [];\n for (const item of [...aArr, ...bArr]) {\n if (typeof item === \"string\") {\n if (seen.has(item)) continue;\n seen.add(item);\n }\n result.push(item);\n }\n return result;\n}\n\nfunction cleanNullSentinels(obj: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === null || value === undefined) continue;\n if (isPlainObject(value)) {\n const cleaned = cleanNullSentinels(value);\n if (Object.keys(cleaned).length > 0) {\n out[key] = cleaned;\n }\n } else {\n out[key] = value;\n }\n }\n return out;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bosConfigMerger = createDefu((obj: any, key: any, value: any): boolean | undefined => {\n if (obj[key] === null) return true;\n if (value === null) {\n obj[key] = null;\n return true;\n }\n if (Array.isArray(obj[key]) && Array.isArray(value)) {\n if (ARRAY_UNION_KEYS.has(key)) {\n obj[key] = unionArrays(obj[key], value);\n } else {\n obj[key] = value;\n }\n return true;\n }\n return false;\n});\n\nexport function resolveExtendsRef(\n extendsField: string | ExtendsConfig | undefined,\n env: BosEnv,\n): string | undefined {\n if (!extendsField) return undefined;\n if (typeof extendsField === \"string\") return extendsField;\n return extendsField[env] ?? extendsField.production ?? Object.values(extendsField).find(Boolean);\n}\n\nexport function mergeBosConfigWithExtends(\n parent: BosConfigInput,\n child: BosConfigInput,\n): BosConfigInput {\n const
|
|
1
|
+
{"version":3,"file":"merge.mjs","names":[],"sources":["../src/merge.ts"],"sourcesContent":["import { createDefu } from \"defu\";\nimport type { BosConfigInput, ExtendsConfig } from \"./types\";\n\nexport const BOS_CONFIG_ORDER = [\n \"extends\",\n \"account\",\n \"domain\",\n \"title\",\n \"description\",\n \"testnet\",\n \"staging\",\n \"repository\",\n \"ci\",\n \"app\",\n \"plugins\",\n] as const;\n\nexport type BosConfigFieldName = (typeof BOS_CONFIG_ORDER)[number];\n\nexport type BosEnv = \"development\" | \"production\" | \"staging\";\n\nexport interface ResolvedConfigMeta {\n env: BosEnv;\n resolvedAt: string;\n extendsChain: string[];\n source?: string;\n}\n\nconst ARRAY_UNION_KEYS = new Set([\"secrets\"]);\n\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction unionArrays(a: unknown, b: unknown): unknown[] | undefined {\n const aArr = Array.isArray(a) ? a : [];\n const bArr = Array.isArray(b) ? b : [];\n if (aArr.length === 0 && bArr.length === 0) return undefined;\n const seen = new Set<string>();\n const result: unknown[] = [];\n for (const item of [...aArr, ...bArr]) {\n if (typeof item === \"string\") {\n if (seen.has(item)) continue;\n seen.add(item);\n }\n result.push(item);\n }\n return result;\n}\n\nfunction cleanNullSentinels(obj: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === null || value === undefined) continue;\n if (isPlainObject(value)) {\n const cleaned = cleanNullSentinels(value);\n if (Object.keys(cleaned).length > 0) {\n out[key] = cleaned;\n }\n } else {\n out[key] = value;\n }\n }\n return out;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bosConfigMerger = createDefu((obj: any, key: any, value: any): boolean | undefined => {\n if (obj[key] === null) return true;\n if (value === null) {\n obj[key] = null;\n return true;\n }\n if (Array.isArray(obj[key]) && Array.isArray(value)) {\n if (ARRAY_UNION_KEYS.has(key)) {\n obj[key] = unionArrays(obj[key], value);\n } else {\n obj[key] = value;\n }\n return true;\n }\n return false;\n});\n\nexport function resolveExtendsRef(\n extendsField: string | ExtendsConfig | undefined,\n env: BosEnv,\n): string | undefined {\n if (!extendsField) return undefined;\n if (typeof extendsField === \"string\") return extendsField;\n return extendsField[env] ?? extendsField.production ?? Object.values(extendsField).find(Boolean);\n}\n\nexport function mergeBosConfigWithExtends(\n parent: BosConfigInput,\n child: BosConfigInput,\n): BosConfigInput {\n const merged = bosConfigMerger(child, parent) as BosConfigInput;\n\n if (child.plugins !== undefined && isPlainObject(child.plugins)) {\n (merged as Record<string, unknown>).plugins = cleanNullSentinels(\n child.plugins as Record<string, unknown>,\n );\n }\n\n const mergedRecord = merged as Record<string, unknown>;\n\n if (isPlainObject(mergedRecord.app)) {\n for (const entryVal of Object.values(mergedRecord.app as Record<string, unknown>)) {\n if (!isPlainObject(entryVal)) continue;\n for (const secretKey of ARRAY_UNION_KEYS) {\n if (Array.isArray(entryVal[secretKey])) {\n entryVal[secretKey] =\n (unionArrays(entryVal[secretKey] as unknown[], []) as string[] | undefined)?.filter(\n Boolean,\n ) ?? entryVal[secretKey];\n }\n }\n }\n }\n\n if (isPlainObject(mergedRecord.plugins)) {\n for (const pluginVal of Object.values(mergedRecord.plugins as Record<string, unknown>)) {\n if (!isPlainObject(pluginVal)) continue;\n for (const secretKey of ARRAY_UNION_KEYS) {\n if (Array.isArray(pluginVal[secretKey])) {\n pluginVal[secretKey] =\n (unionArrays(pluginVal[secretKey] as unknown[], []) as string[] | undefined)?.filter(\n Boolean,\n ) ?? pluginVal[secretKey];\n }\n }\n }\n }\n\n return rebuildOrderedConfig(mergedRecord) as BosConfigInput;\n}\n\nexport function mergeBosConfigWithTemplate(\n local: BosConfigInput,\n template: BosConfigInput,\n): BosConfigInput {\n const merged = mergeJsonValuesPreservingLocalOrder(local, template) as BosConfigInput;\n return rebuildOrderedConfig(merged as Record<string, unknown>) as BosConfigInput;\n}\n\nfunction mergeJsonValuesPreservingLocalOrder(local: unknown, template: unknown): unknown {\n if (isPlainObject(local) && isPlainObject(template)) {\n const merged: Record<string, unknown> = {};\n for (const key of Object.keys(local)) {\n merged[key] = mergeJsonValuesPreservingLocalOrder(\n local[key],\n (template as Record<string, unknown>)[key],\n );\n }\n for (const key of Object.keys(template as Record<string, unknown>)) {\n if (!(key in merged)) {\n merged[key] = (template as Record<string, unknown>)[key];\n }\n }\n return merged;\n }\n return local ?? template;\n}\n\nexport function rebuildOrderedConfig<T extends Record<string, unknown>>(config: T): T {\n const ordered: Record<string, unknown> = {};\n\n for (const key of BOS_CONFIG_ORDER) {\n if (key in config) {\n ordered[key] = config[key];\n }\n }\n\n for (const key of Object.keys(config)) {\n if (!BOS_CONFIG_ORDER.includes(key as BosConfigFieldName)) {\n ordered[key] = config[key];\n }\n }\n\n return ordered as T;\n}\n\nexport { bosConfigMerger };\n"],"mappings":"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"}
|
package/dist/plugin.d.cts
CHANGED
|
@@ -65,8 +65,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
65
65
|
interactive: z.ZodOptional<z.ZodBoolean>;
|
|
66
66
|
}, z.core.$strip>, z.ZodObject<{
|
|
67
67
|
status: z.ZodEnum<{
|
|
68
|
-
started: "started";
|
|
69
68
|
error: "error";
|
|
69
|
+
started: "started";
|
|
70
70
|
}>;
|
|
71
71
|
description: z.ZodString;
|
|
72
72
|
processes: z.ZodArray<z.ZodString>;
|
|
@@ -94,8 +94,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
94
94
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
95
95
|
}, z.core.$strip>, z.ZodObject<{
|
|
96
96
|
status: z.ZodEnum<{
|
|
97
|
-
error: "error";
|
|
98
97
|
success: "success";
|
|
98
|
+
error: "error";
|
|
99
99
|
}>;
|
|
100
100
|
built: z.ZodArray<z.ZodString>;
|
|
101
101
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -389,10 +389,10 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
389
389
|
source: z.ZodOptional<z.ZodString>;
|
|
390
390
|
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
391
391
|
overrides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
392
|
-
|
|
392
|
+
plugins: "plugins";
|
|
393
393
|
ui: "ui";
|
|
394
|
+
host: "host";
|
|
394
395
|
api: "api";
|
|
395
|
-
plugins: "plugins";
|
|
396
396
|
}>>>;
|
|
397
397
|
noInteractive: z.ZodDefault<z.ZodBoolean>;
|
|
398
398
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -408,10 +408,10 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
408
408
|
extends: z.ZodString;
|
|
409
409
|
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
410
410
|
overrides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
411
|
-
|
|
411
|
+
plugins: "plugins";
|
|
412
412
|
ui: "ui";
|
|
413
|
+
host: "host";
|
|
413
414
|
api: "api";
|
|
414
|
-
plugins: "plugins";
|
|
415
415
|
}>>>;
|
|
416
416
|
filesCopied: z.ZodNumber;
|
|
417
417
|
timings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -495,14 +495,14 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
495
495
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
496
496
|
typesGen: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
497
497
|
env: z.ZodOptional<z.ZodEnum<{
|
|
498
|
-
production: "production";
|
|
499
498
|
development: "development";
|
|
499
|
+
production: "production";
|
|
500
500
|
}>>;
|
|
501
501
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
502
502
|
}, z.core.$strip>, z.ZodObject<{
|
|
503
503
|
status: z.ZodEnum<{
|
|
504
|
-
error: "error";
|
|
505
504
|
success: "success";
|
|
505
|
+
error: "error";
|
|
506
506
|
}>;
|
|
507
507
|
generated: z.ZodArray<z.ZodString>;
|
|
508
508
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -645,7 +645,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
645
645
|
}> | undefined;
|
|
646
646
|
} | null;
|
|
647
647
|
runtimeConfig: {
|
|
648
|
-
env: "
|
|
648
|
+
env: "development" | "production" | "staging";
|
|
649
649
|
account: string;
|
|
650
650
|
networkId: "testnet" | "mainnet";
|
|
651
651
|
host: {
|
package/dist/plugin.d.mts
CHANGED
|
@@ -65,8 +65,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
65
65
|
interactive: z.ZodOptional<z.ZodBoolean>;
|
|
66
66
|
}, z.core.$strip>, z.ZodObject<{
|
|
67
67
|
status: z.ZodEnum<{
|
|
68
|
-
started: "started";
|
|
69
68
|
error: "error";
|
|
69
|
+
started: "started";
|
|
70
70
|
}>;
|
|
71
71
|
description: z.ZodString;
|
|
72
72
|
processes: z.ZodArray<z.ZodString>;
|
|
@@ -94,8 +94,8 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
94
94
|
deploy: z.ZodDefault<z.ZodBoolean>;
|
|
95
95
|
}, z.core.$strip>, z.ZodObject<{
|
|
96
96
|
status: z.ZodEnum<{
|
|
97
|
-
error: "error";
|
|
98
97
|
success: "success";
|
|
98
|
+
error: "error";
|
|
99
99
|
}>;
|
|
100
100
|
built: z.ZodArray<z.ZodString>;
|
|
101
101
|
skipped: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -389,10 +389,10 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
389
389
|
source: z.ZodOptional<z.ZodString>;
|
|
390
390
|
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
391
391
|
overrides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
392
|
-
|
|
392
|
+
plugins: "plugins";
|
|
393
393
|
ui: "ui";
|
|
394
|
+
host: "host";
|
|
394
395
|
api: "api";
|
|
395
|
-
plugins: "plugins";
|
|
396
396
|
}>>>;
|
|
397
397
|
noInteractive: z.ZodDefault<z.ZodBoolean>;
|
|
398
398
|
noInstall: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -408,10 +408,10 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
408
408
|
extends: z.ZodString;
|
|
409
409
|
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
410
410
|
overrides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
411
|
-
|
|
411
|
+
plugins: "plugins";
|
|
412
412
|
ui: "ui";
|
|
413
|
+
host: "host";
|
|
413
414
|
api: "api";
|
|
414
|
-
plugins: "plugins";
|
|
415
415
|
}>>>;
|
|
416
416
|
filesCopied: z.ZodNumber;
|
|
417
417
|
timings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -495,14 +495,14 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
495
495
|
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
496
496
|
typesGen: _$_orpc_contract0.ContractProcedure<z.ZodObject<{
|
|
497
497
|
env: z.ZodOptional<z.ZodEnum<{
|
|
498
|
-
production: "production";
|
|
499
498
|
development: "development";
|
|
499
|
+
production: "production";
|
|
500
500
|
}>>;
|
|
501
501
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
502
502
|
}, z.core.$strip>, z.ZodObject<{
|
|
503
503
|
status: z.ZodEnum<{
|
|
504
|
-
error: "error";
|
|
505
504
|
success: "success";
|
|
505
|
+
error: "error";
|
|
506
506
|
}>;
|
|
507
507
|
generated: z.ZodArray<z.ZodString>;
|
|
508
508
|
fetched: z.ZodArray<z.ZodString>;
|
|
@@ -645,7 +645,7 @@ declare const _default: _$every_plugin0.LoadedPluginWithBinding<{
|
|
|
645
645
|
}> | undefined;
|
|
646
646
|
} | null;
|
|
647
647
|
runtimeConfig: {
|
|
648
|
-
env: "
|
|
648
|
+
env: "development" | "production" | "staging";
|
|
649
649
|
account: string;
|
|
650
650
|
networkId: "testnet" | "mainnet";
|
|
651
651
|
host: {
|
package/dist/types.d.cts
CHANGED
|
@@ -466,9 +466,9 @@ declare const BosConfigSchema: z.ZodObject<{
|
|
|
466
466
|
type BosConfig = z.infer<typeof BosConfigSchema>;
|
|
467
467
|
declare const RuntimeConfigSchema: z.ZodObject<{
|
|
468
468
|
env: z.ZodEnum<{
|
|
469
|
+
development: "development";
|
|
469
470
|
production: "production";
|
|
470
471
|
staging: "staging";
|
|
471
|
-
development: "development";
|
|
472
472
|
}>;
|
|
473
473
|
account: z.ZodString;
|
|
474
474
|
domain: z.ZodOptional<z.ZodString>;
|
|
@@ -613,9 +613,9 @@ declare const RuntimeConfigSchema: z.ZodObject<{
|
|
|
613
613
|
type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
|
|
614
614
|
declare const ClientRuntimeConfigSchema: z.ZodObject<{
|
|
615
615
|
env: z.ZodEnum<{
|
|
616
|
+
development: "development";
|
|
616
617
|
production: "production";
|
|
617
618
|
staging: "staging";
|
|
618
|
-
development: "development";
|
|
619
619
|
}>;
|
|
620
620
|
account: z.ZodString;
|
|
621
621
|
networkId: z.ZodEnum<{
|
package/dist/types.d.mts
CHANGED
|
@@ -466,9 +466,9 @@ declare const BosConfigSchema: z.ZodObject<{
|
|
|
466
466
|
type BosConfig = z.infer<typeof BosConfigSchema>;
|
|
467
467
|
declare const RuntimeConfigSchema: z.ZodObject<{
|
|
468
468
|
env: z.ZodEnum<{
|
|
469
|
+
development: "development";
|
|
469
470
|
production: "production";
|
|
470
471
|
staging: "staging";
|
|
471
|
-
development: "development";
|
|
472
472
|
}>;
|
|
473
473
|
account: z.ZodString;
|
|
474
474
|
domain: z.ZodOptional<z.ZodString>;
|
|
@@ -613,9 +613,9 @@ declare const RuntimeConfigSchema: z.ZodObject<{
|
|
|
613
613
|
type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
|
|
614
614
|
declare const ClientRuntimeConfigSchema: z.ZodObject<{
|
|
615
615
|
env: z.ZodEnum<{
|
|
616
|
+
development: "development";
|
|
616
617
|
production: "production";
|
|
617
618
|
staging: "staging";
|
|
618
|
-
development: "development";
|
|
619
619
|
}>;
|
|
620
620
|
account: z.ZodString;
|
|
621
621
|
networkId: z.ZodEnum<{
|