@intentius/chant 0.124.36 → 0.124.38
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/handlers/components.d.ts.map +1 -1
- package/dist/cli/handlers/components.js +1 -0
- package/dist/cli/handlers/graph.js +5 -1
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
- package/dist/cli/handlers/lifecycle.js +2 -1
- package/dist/cli/handlers/scenario.d.ts.map +1 -1
- package/dist/cli/handlers/scenario.js +1 -0
- package/dist/cli/handlers/search.d.ts.map +1 -1
- package/dist/cli/handlers/search.js +3 -1
- package/dist/lifecycle/observe.d.ts +3 -0
- package/dist/lifecycle/observe.d.ts.map +1 -1
- package/dist/lifecycle/observe.js +1 -1
- package/dist/wave-runtime.mjs +3 -3
- package/package.json +1 -1
- package/src/cli/handlers/components.ts +1 -0
- package/src/cli/handlers/graph.test.ts +17 -0
- package/src/cli/handlers/graph.ts +4 -1
- package/src/cli/handlers/lifecycle.ts +2 -1
- package/src/cli/handlers/scenario.ts +1 -0
- package/src/cli/handlers/search.ts +3 -1
- package/src/lifecycle/observe.test.ts +14 -1
- package/src/lifecycle/observe.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/components.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,4BAA4B,CAAC;AAKnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+GrF;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH9E;AA6DD;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;6EAQ6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAMzD;AAuGD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/components.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,4BAA4B,CAAC;AAKnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+GrF;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH9E;AA6DD;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;6EAQ6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAMzD;AAuGD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAoT9E;AAED,kEAAkE;AAClE,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/E"}
|
|
@@ -499,6 +499,7 @@ export async function runComponentsStatus(ctx) {
|
|
|
499
499
|
return 1;
|
|
500
500
|
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), targetSerializers, undefined, {
|
|
501
501
|
buildParams: statusParams,
|
|
502
|
+
config: config,
|
|
502
503
|
});
|
|
503
504
|
// Which deployed stack(s) to read the change set from (behold#100).
|
|
504
505
|
//
|
|
@@ -241,7 +241,10 @@ async function runGraphLive(ctx, format) {
|
|
|
241
241
|
// declared entity. Without this the built estate carried them but the graph
|
|
242
242
|
// build here didn't, and the overlay called every one of them foreign.
|
|
243
243
|
const buildRoots = collectBuildRootContributors(plugins, config, projectPath);
|
|
244
|
-
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer), undefined,
|
|
244
|
+
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer), undefined,
|
|
245
|
+
// #4252: the serializers read lexicon settings from config (gcp.project
|
|
246
|
+
// becomes each resource's project annotation, which the live read takes).
|
|
247
|
+
{ buildParams: liveBuildParams, buildRoots, config: config });
|
|
245
248
|
if (buildResult.errors.length > 0) {
|
|
246
249
|
console.error(formatError({ message: "Build failed — fix errors before graphing live state" }));
|
|
247
250
|
return 1;
|
|
@@ -317,6 +320,7 @@ async function runGraphLive(ctx, format) {
|
|
|
317
320
|
else {
|
|
318
321
|
const observeResult = await observeResources(environment, observing, buildResult, {
|
|
319
322
|
owned: true,
|
|
323
|
+
config: config,
|
|
320
324
|
stacks: [...stacks],
|
|
321
325
|
// `--namespace <ns>` (#1629): where to read entities that declare no
|
|
322
326
|
// namespace. One project declaring the GitOps binding and another
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/lifecycle.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAE9E;AAED;;cAEc;AACd,UAAU,WAAW;IACnB;iDAC6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;0CACsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;6DAGyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAMxF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyH/E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C3E;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B/E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+L3E;AA+sBD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/lifecycle.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAE9E;AAED;;cAEc;AACd,UAAU,WAAW;IACnB;iDAC6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;0CACsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;6DAGyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAMxF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyH/E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C3E;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B/E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+L3E;AA+sBD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyR3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA2L/E;AAsBD;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB1E;AAgBD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmE7E;AAiCD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAM9E;AAkBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA8D/E"}
|
|
@@ -117,7 +117,7 @@ export async function runLifecycleSnapshot(ctx) {
|
|
|
117
117
|
const buildRoots = collectBuildRootContributors(targetPlugins, config, projectPath);
|
|
118
118
|
for (const target of targets) {
|
|
119
119
|
const label = target.stack ? `stack "${target.stack}"` : "project";
|
|
120
|
-
const buildResult = await build(target.root, targetSerializers, undefined, { buildParams: declaredParams, buildRoots });
|
|
120
|
+
const buildResult = await build(target.root, targetSerializers, undefined, { buildParams: declaredParams, buildRoots, config: config });
|
|
121
121
|
if (buildResult.errors.length > 0) {
|
|
122
122
|
console.error(formatError({ message: `Build failed for ${label} — fix errors before taking a snapshot` }));
|
|
123
123
|
anyHardError = true;
|
|
@@ -1062,6 +1062,7 @@ export async function runLifecyclePlan(ctx) {
|
|
|
1062
1062
|
const buildResult = await build(resolveBuildRoot(args, config), targetSerializers, undefined, {
|
|
1063
1063
|
buildParams: declaredParams,
|
|
1064
1064
|
buildRoots: collectBuildRootContributors(plugins, config, resolve(".")),
|
|
1065
|
+
config: config,
|
|
1065
1066
|
});
|
|
1066
1067
|
if (buildResult.errors.length > 0) {
|
|
1067
1068
|
console.error(formatError({ message: "Build failed — fix errors before planning" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/scenario.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/scenario.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyE3E;AA2OD,0FAA0F;AAC1F,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7E"}
|
|
@@ -58,6 +58,7 @@ export async function runScenarioCheck(ctx) {
|
|
|
58
58
|
const buildResult = await build(resolveBuildRoot(args, config), serializers, undefined, {
|
|
59
59
|
buildParams: declaredParams,
|
|
60
60
|
buildRoots: collectBuildRootContributors(plugins, config, resolve(".")),
|
|
61
|
+
config: config,
|
|
61
62
|
});
|
|
62
63
|
if (buildResult.errors.length > 0) {
|
|
63
64
|
console.error(formatError({ message: "Build failed — fix errors before checking scenarios" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0E,KAAK,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,gBAAgB,CAAC;AAQhJ,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0E,KAAK,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,gBAAgB,CAAC;AAQhJ,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+VpE;AAGD,0EAA0E;AAC1E,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAK5D;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAQzD;AAED;;;;;;;;;;;;;GAaG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAW5E;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,WAAW,CAClB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,GACpC,IAAI,CAuBN;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,IAAI,CA6CjH;AAED,iFAAiF;AACjF,iBAAS,cAAc,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIzF;AAED,kFAAkF;AAClF,iBAAS,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAIrF;AAED;;;;;;;;;GASG;AACH,iBAAS,WAAW,CAClB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,KAAK,CAAC,EAAE,gBAAgB,GACvB,MAAM,CAmBR;AASD;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,IAAI,CAgB1F;AAED;;;;;;;;GAQG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAyB9G;AAED;;;;;;;GAOG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAiCxD;AAED,iBAAS,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CASrC;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAChD,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAiBrE;AA2CD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CA+CzC;AAeD,iBAAS,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAmCxF;AAED,iBAAS,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CA+BpD;AAED,wCAAwC;AACxC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAA2L,CAAC"}
|
|
@@ -126,7 +126,9 @@ export async function runSearch(ctx) {
|
|
|
126
126
|
return 1;
|
|
127
127
|
}
|
|
128
128
|
const plugins = ctx.plugins.length > 0 ? ctx.plugins : await loadPlugins(await resolveProjectLexicons(projectPath));
|
|
129
|
-
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer)
|
|
129
|
+
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer), undefined, {
|
|
130
|
+
config: config,
|
|
131
|
+
});
|
|
130
132
|
if (buildResult.errors.length > 0) {
|
|
131
133
|
console.error(formatError({ message: "Build failed — fix errors before searching live state" }));
|
|
132
134
|
return 1;
|
|
@@ -67,6 +67,9 @@ export declare function observeResources(environment: string, plugins: Observati
|
|
|
67
67
|
* Passed through to every lexicon's `describeResources`; one that has no
|
|
68
68
|
* namespace-like scope ignores it. */
|
|
69
69
|
namespace?: string;
|
|
70
|
+
/** The project configuration, handed to a stack's scoped build so its
|
|
71
|
+
* serializers see lexicon settings such as gcp's `gcp.project` (#4252). */
|
|
72
|
+
config?: Record<string, unknown>;
|
|
70
73
|
}): Promise<ObserveResult>;
|
|
71
74
|
/**
|
|
72
75
|
* Ask a lexicon what exists of the kinds it manages, beyond what is declared
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/lifecycle/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYnD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,CAAC,EAAE;IACL,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE;;8CAE0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;0CAEsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/lifecycle/observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYnD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,CAAC,EAAE;IACL,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE;;8CAE0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;0CAEsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;+EAC2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GACA,OAAO,CAAC,aAAa,CAAC,CAgMxB;AAyBD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CA2B3C;AAED,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,GACA,OAAO,CAAC,qBAAqB,CAAC,CA0ChC"}
|
|
@@ -65,7 +65,7 @@ export async function observeResources(environment, plugins, buildResult, opts)
|
|
|
65
65
|
const key = resolvePath(src);
|
|
66
66
|
let r = scopedBuildCache.get(key);
|
|
67
67
|
if (!r) {
|
|
68
|
-
r = await buildProject(key, serializers);
|
|
68
|
+
r = await buildProject(key, serializers, undefined, opts?.config ? { config: opts.config } : undefined);
|
|
69
69
|
scopedBuildCache.set(key, r);
|
|
70
70
|
}
|
|
71
71
|
return r;
|
package/dist/wave-runtime.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @intentius/chant 0.124.
|
|
2
|
+
// @intentius/chant 0.124.38 wave-job runtime (#3896): run wave, run resume, approve, workspace points.
|
|
3
3
|
import { createRequire as __chantCreateRequire } from "node:module";
|
|
4
4
|
const require = __chantCreateRequire(import.meta.url);
|
|
5
5
|
var Uie=Object.create;var BS=Object.defineProperty;var Vie=Object.getOwnPropertyDescriptor;var Hie=Object.getOwnPropertyNames;var qie=Object.getPrototypeOf,Kie=Object.prototype.hasOwnProperty;var v=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var ae=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},_e=(e,t)=>{for(var n in t)BS(e,n,{get:t[n],enumerable:!0})},Jie=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Hie(t))!Kie.call(e,r)&&r!==n&&BS(e,r,{get:()=>t[r],enumerable:!(i=Vie(t,r))||i.enumerable});return e};var Ye=(e,t,n)=>(n=e!=null?Uie(qie(e)):{},Jie(t||!e||!e.__esModule?BS(n,"default",{value:e,enumerable:!0}):n,e));function lW(e,t=new Set){let n=[];for(let i of e)if(i.startsWith("--")&&i.includes("=")){let r=i.indexOf("="),o=i.slice(0,r),s=i.slice(r+1);if(t.has(o))throw new Error(`${i} \u2014 ${o} is a boolean flag and does not take a value. Pass ${o} on its own.`);n.push(o,s)}else n.push(i);return n}var zS,US=v(()=>{"use strict";zS=new Set(["build","lint","list","describe","import","audit","migrate","carve","init","update","doctor","dev","run","graph","vendor","lifecycle","lc","components","emulator","serve","operator","approve","workspace"])});function Xie(){return!process.env.NO_COLOR&&process.stdout.isTTY!==!1}function Qs(e,t){return Xie()?`${t}${e}${ps.reset}`:e}function we(e){let t=[];if(e.file){let n=e.file;e.line!==void 0&&(n+=`:${e.line}`,e.column!==void 0&&(n+=`:${e.column}`)),t.push(Qs(n,ps.cyan)),t.push(" - ")}return t.push(Qs("error",ps.red)),t.push(": "),t.push(e.message),e.hint&&(t.push(`
|
|
6
6
|
`),t.push(Qs(e.hint,ps.gray))),t.join("")}function si(e){let t=[];if(e.file){let n=e.file;e.line!==void 0&&(n+=`:${e.line}`,e.column!==void 0&&(n+=`:${e.column}`)),t.push(Qs(n,ps.cyan)),t.push(" - ")}return t.push(Qs("warning",ps.yellow)),t.push(": "),t.push(e.message),e.hint&&(t.push(`
|
|
7
|
-
`),t.push(Qs(e.hint,ps.gray))),t.join("")}function Sf(e){return Qs(e,ps.green)}function Qn(e){return Qs(e,ps.gray)}var ps,ur=v(()=>{"use strict";ps={red:"\x1B[31m",yellow:"\x1B[33m",green:"\x1B[32m",cyan:"\x1B[36m",gray:"\x1B[90m",reset:"\x1B[0m",bold:"\x1B[1m"}});var yw,HS=v(()=>{"use strict";yw="0.124.36"});function F(e,t,n){function i(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let p=u[d];p in a||(a[p]=l[p].bind(a))}}let r=n?.Parent??Object;class o extends r{}Object.defineProperty(o,"name",{value:e});function s(a){var c;let l=n?.Parent?new o:this;i(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:i}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}function sn(e){return e&&Object.assign(Ef,e),Ef}var qS,ww,Ni,ea,Ef,vu=v(()=>{qS=Object.freeze({status:"aborted"});ww=Symbol("zod_brand"),Ni=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ea=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Ef={}});var fe={};_e(fe,{BIGINT_FORMAT_RANGES:()=>rE,Class:()=>JS,NUMBER_FORMAT_RANGES:()=>nE,aborted:()=>ia,allowsEval:()=>XS,assert:()=>ioe,assertEqual:()=>eoe,assertIs:()=>noe,assertNever:()=>roe,assertNotEqual:()=>toe,assignProp:()=>na,base64ToUint8Array:()=>hW,base64urlToUint8Array:()=>koe,cached:()=>xu,captureStackTrace:()=>vw,cleanEnum:()=>voe,cleanRegex:()=>Pf,clone:()=>dr,cloneDef:()=>soe,createTransparentProxy:()=>poe,defineLazy:()=>st,esc:()=>bw,escapeRegex:()=>ai,extend:()=>goe,finalizeIssue:()=>Or,floatSafeRemainder:()=>ZS,getElementAtPath:()=>aoe,getEnumValues:()=>Af,getLengthableOrigin:()=>Tf,getParsedType:()=>doe,getSizableOrigin:()=>_f,hexToUint8Array:()=>$oe,isObject:()=>Gc,isPlainObject:()=>ra,issue:()=>$u,joinValues:()=>J,jsonStringifyReplacer:()=>ku,merge:()=>yoe,mergeDefs:()=>fs,normalizeParams:()=>me,nullish:()=>ta,numKeys:()=>uoe,objectClone:()=>ooe,omit:()=>moe,optionalKeys:()=>tE,parsedType:()=>pe,partial:()=>woe,pick:()=>foe,prefixIssues:()=>qr,primitiveTypes:()=>eE,promiseAllObject:()=>coe,propertyKeyTypes:()=>Cf,randomString:()=>loe,required:()=>boe,safeExtend:()=>hoe,shallowClone:()=>QS,slugify:()=>YS,stringifyPrimitive:()=>le,uint8ArrayToBase64:()=>yW,uint8ArrayToBase64url:()=>xoe,uint8ArrayToHex:()=>Roe,unwrapMessage:()=>Of});function eoe(e){return e}function toe(e){return e}function noe(e){}function roe(e){throw new Error("Unexpected value in exhaustive check")}function ioe(e){}function Af(e){let t=Object.values(e).filter(i=>typeof i=="number");return Object.entries(e).filter(([i,r])=>t.indexOf(+i)===-1).map(([i,r])=>r)}function J(e,t="|"){return e.map(n=>le(n)).join(t)}function ku(e,t){return typeof t=="bigint"?t.toString():t}function xu(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function ta(e){return e==null}function Pf(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ZS(e,t){let n=(e.toString().split(".")[1]||"").length,i=t.toString(),r=(i.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(i)){let c=i.match(/\d?e-(\d?)/);c?.[1]&&(r=Number.parseInt(c[1]))}let o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),a=Number.parseInt(t.toFixed(o).replace(".",""));return s%a/10**o}function st(e,t,n){let i;Object.defineProperty(e,t,{get(){if(i!==gW)return i===void 0&&(i=gW,i=n()),i},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function ooe(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function na(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function fs(...e){let t={};for(let n of e){let i=Object.getOwnPropertyDescriptors(n);Object.assign(t,i)}return Object.defineProperties({},t)}function soe(e){return fs(e._zod.def)}function aoe(e,t){return t?t.reduce((n,i)=>n?.[i],e):e}function coe(e){let t=Object.keys(e),n=t.map(i=>e[i]);return Promise.all(n).then(i=>{let r={};for(let o=0;o<t.length;o++)r[t[o]]=i[o];return r})}function loe(e=10){let t="abcdefghijklmnopqrstuvwxyz",n="";for(let i=0;i<e;i++)n+=t[Math.floor(Math.random()*t.length)];return n}function bw(e){return JSON.stringify(e)}function YS(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Gc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ra(e){if(Gc(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let n=t.prototype;return!(Gc(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function QS(e){return ra(e)?{...e}:Array.isArray(e)?[...e]:e}function uoe(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function ai(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function dr(e,t,n){let i=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(i._zod.parent=e),i}function me(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function poe(e){let t;return new Proxy({},{get(n,i,r){return t??(t=e()),Reflect.get(t,i,r)},set(n,i,r,o){return t??(t=e()),Reflect.set(t,i,r,o)},has(n,i){return t??(t=e()),Reflect.has(t,i)},deleteProperty(n,i){return t??(t=e()),Reflect.deleteProperty(t,i)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,i){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,i)},defineProperty(n,i,r){return t??(t=e()),Reflect.defineProperty(t,i,r)}})}function le(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function tE(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function foe(e,t){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let o=fs(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(s[a]=n.shape[a])}return na(this,"shape",s),s},checks:[]});return dr(e,o)}function moe(e,t){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let o=fs(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete s[a]}return na(this,"shape",s),s},checks:[]});return dr(e,o)}function goe(e,t){if(!ra(t))throw new Error("Invalid input to extend: expected a plain object");let n=e._zod.def.checks;if(n&&n.length>0){let o=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let r=fs(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return na(this,"shape",o),o}});return dr(e,r)}function hoe(e,t){if(!ra(t))throw new Error("Invalid input to safeExtend: expected a plain object");let n=fs(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return na(this,"shape",i),i}});return dr(e,n)}function yoe(e,t){let n=fs(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t._zod.def.shape};return na(this,"shape",i),i},get catchall(){return t._zod.def.catchall},checks:[]});return dr(e,n)}function woe(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=fs(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(n)for(let l in n){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);n[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return na(this,"shape",c),c},checks:[]});return dr(t,s)}function boe(e,t,n){let i=fs(t._zod.def,{get shape(){let r=t._zod.def.shape,o={...r};if(n)for(let s in n){if(!(s in o))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(o[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)o[s]=new e({type:"nonoptional",innerType:r[s]});return na(this,"shape",o),o}});return dr(t,i)}function ia(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function qr(e,t){return t.map(n=>{var i;return(i=n).path??(i.path=[]),n.path.unshift(e),n})}function Of(e){return typeof e=="string"?e:e?.message}function Or(e,t,n){let i={...e,path:e.path??[]};if(!e.message){let r=Of(e.inst?._zod.def?.error?.(e))??Of(t?.error?.(e))??Of(n.customError?.(e))??Of(n.localeError?.(e))??"Invalid input";i.message=r}return delete i.inst,delete i.continue,t?.reportInput||delete i.input,i}function _f(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Tf(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function pe(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function $u(...e){let[t,n,i]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:i}:{...t}}function voe(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function hW(e){let t=atob(e),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return n}function yW(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function koe(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n="=".repeat((4-t.length%4)%4);return hW(t+n)}function xoe(e){return yW(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function $oe(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let n=new Uint8Array(t.length/2);for(let i=0;i<t.length;i+=2)n[i/2]=Number.parseInt(t.slice(i,i+2),16);return n}function Roe(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var gW,vw,XS,doe,Cf,eE,nE,rE,JS,Me=v(()=>{gW=Symbol("evaluating");vw="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};XS=xu(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});doe=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Cf=new Set(["string","number","symbol"]),eE=new Set(["string","number","bigint","boolean","symbol","undefined"]);nE={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},rE={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};JS=class{constructor(...t){}}});function Df(e,t=n=>n.message){let n={},i=[];for(let r of e.issues)r.path.length>0?(n[r.path[0]]=n[r.path[0]]||[],n[r.path[0]].push(t(r))):i.push(t(r));return{formErrors:i,fieldErrors:n}}function jf(e,t=n=>n.message){let n={_errors:[]},i=r=>{for(let o of r.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let s=n,a=0;for(;a<o.path.length;){let c=o.path[a];a===o.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(t(o))):s[c]=s[c]||{_errors:[]},s=s[c],a++}}};return i(e),n}function iE(e,t=n=>n.message){let n={errors:[]},i=(r,o=[])=>{var s,a;for(let c of r.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(l=>i({issues:l},c.path));else if(c.code==="invalid_key")i({issues:c.issues},c.path);else if(c.code==="invalid_element")i({issues:c.issues},c.path);else{let l=[...o,...c.path];if(l.length===0){n.errors.push(t(c));continue}let u=n,d=0;for(;d<l.length;){let p=l[d],f=d===l.length-1;typeof p=="string"?(u.properties??(u.properties={}),(s=u.properties)[p]??(s[p]={errors:[]}),u=u.properties[p]):(u.items??(u.items=[]),(a=u.items)[p]??(a[p]={errors:[]}),u=u.items[p]),f&&u.errors.push(t(c)),d++}}};return i(e),n}function bW(e){let t=[],n=e.map(i=>typeof i=="object"?i.key:i);for(let i of n)typeof i=="number"?t.push(`[${i}]`):typeof i=="symbol"?t.push(`[${JSON.stringify(String(i))}]`):/[^\w$]/.test(i)?t.push(`[${JSON.stringify(i)}]`):(t.length&&t.push("."),t.push(i));return t.join("")}function oE(e){let t=[],n=[...e.issues].sort((i,r)=>(i.path??[]).length-(r.path??[]).length);for(let i of n)t.push(`\u2716 ${i.message}`),i.path?.length&&t.push(` \u2192 at ${bW(i.path)}`);return t.join(`
|
|
7
|
+
`),t.push(Qs(e.hint,ps.gray))),t.join("")}function Sf(e){return Qs(e,ps.green)}function Qn(e){return Qs(e,ps.gray)}var ps,ur=v(()=>{"use strict";ps={red:"\x1B[31m",yellow:"\x1B[33m",green:"\x1B[32m",cyan:"\x1B[36m",gray:"\x1B[90m",reset:"\x1B[0m",bold:"\x1B[1m"}});var yw,HS=v(()=>{"use strict";yw="0.124.38"});function F(e,t,n){function i(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let p=u[d];p in a||(a[p]=l[p].bind(a))}}let r=n?.Parent??Object;class o extends r{}Object.defineProperty(o,"name",{value:e});function s(a){var c;let l=n?.Parent?new o:this;i(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:i}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}function sn(e){return e&&Object.assign(Ef,e),Ef}var qS,ww,Ni,ea,Ef,vu=v(()=>{qS=Object.freeze({status:"aborted"});ww=Symbol("zod_brand"),Ni=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ea=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Ef={}});var fe={};_e(fe,{BIGINT_FORMAT_RANGES:()=>rE,Class:()=>JS,NUMBER_FORMAT_RANGES:()=>nE,aborted:()=>ia,allowsEval:()=>XS,assert:()=>ioe,assertEqual:()=>eoe,assertIs:()=>noe,assertNever:()=>roe,assertNotEqual:()=>toe,assignProp:()=>na,base64ToUint8Array:()=>hW,base64urlToUint8Array:()=>koe,cached:()=>xu,captureStackTrace:()=>vw,cleanEnum:()=>voe,cleanRegex:()=>Pf,clone:()=>dr,cloneDef:()=>soe,createTransparentProxy:()=>poe,defineLazy:()=>st,esc:()=>bw,escapeRegex:()=>ai,extend:()=>goe,finalizeIssue:()=>Or,floatSafeRemainder:()=>ZS,getElementAtPath:()=>aoe,getEnumValues:()=>Af,getLengthableOrigin:()=>Tf,getParsedType:()=>doe,getSizableOrigin:()=>_f,hexToUint8Array:()=>$oe,isObject:()=>Gc,isPlainObject:()=>ra,issue:()=>$u,joinValues:()=>J,jsonStringifyReplacer:()=>ku,merge:()=>yoe,mergeDefs:()=>fs,normalizeParams:()=>me,nullish:()=>ta,numKeys:()=>uoe,objectClone:()=>ooe,omit:()=>moe,optionalKeys:()=>tE,parsedType:()=>pe,partial:()=>woe,pick:()=>foe,prefixIssues:()=>qr,primitiveTypes:()=>eE,promiseAllObject:()=>coe,propertyKeyTypes:()=>Cf,randomString:()=>loe,required:()=>boe,safeExtend:()=>hoe,shallowClone:()=>QS,slugify:()=>YS,stringifyPrimitive:()=>le,uint8ArrayToBase64:()=>yW,uint8ArrayToBase64url:()=>xoe,uint8ArrayToHex:()=>Roe,unwrapMessage:()=>Of});function eoe(e){return e}function toe(e){return e}function noe(e){}function roe(e){throw new Error("Unexpected value in exhaustive check")}function ioe(e){}function Af(e){let t=Object.values(e).filter(i=>typeof i=="number");return Object.entries(e).filter(([i,r])=>t.indexOf(+i)===-1).map(([i,r])=>r)}function J(e,t="|"){return e.map(n=>le(n)).join(t)}function ku(e,t){return typeof t=="bigint"?t.toString():t}function xu(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function ta(e){return e==null}function Pf(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ZS(e,t){let n=(e.toString().split(".")[1]||"").length,i=t.toString(),r=(i.split(".")[1]||"").length;if(r===0&&/\d?e-\d?/.test(i)){let c=i.match(/\d?e-(\d?)/);c?.[1]&&(r=Number.parseInt(c[1]))}let o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),a=Number.parseInt(t.toFixed(o).replace(".",""));return s%a/10**o}function st(e,t,n){let i;Object.defineProperty(e,t,{get(){if(i!==gW)return i===void 0&&(i=gW,i=n()),i},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function ooe(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function na(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function fs(...e){let t={};for(let n of e){let i=Object.getOwnPropertyDescriptors(n);Object.assign(t,i)}return Object.defineProperties({},t)}function soe(e){return fs(e._zod.def)}function aoe(e,t){return t?t.reduce((n,i)=>n?.[i],e):e}function coe(e){let t=Object.keys(e),n=t.map(i=>e[i]);return Promise.all(n).then(i=>{let r={};for(let o=0;o<t.length;o++)r[t[o]]=i[o];return r})}function loe(e=10){let t="abcdefghijklmnopqrstuvwxyz",n="";for(let i=0;i<e;i++)n+=t[Math.floor(Math.random()*t.length)];return n}function bw(e){return JSON.stringify(e)}function YS(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Gc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ra(e){if(Gc(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let n=t.prototype;return!(Gc(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function QS(e){return ra(e)?{...e}:Array.isArray(e)?[...e]:e}function uoe(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function ai(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function dr(e,t,n){let i=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(i._zod.parent=e),i}function me(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function poe(e){let t;return new Proxy({},{get(n,i,r){return t??(t=e()),Reflect.get(t,i,r)},set(n,i,r,o){return t??(t=e()),Reflect.set(t,i,r,o)},has(n,i){return t??(t=e()),Reflect.has(t,i)},deleteProperty(n,i){return t??(t=e()),Reflect.deleteProperty(t,i)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,i){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,i)},defineProperty(n,i,r){return t??(t=e()),Reflect.defineProperty(t,i,r)}})}function le(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function tE(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function foe(e,t){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let o=fs(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(s[a]=n.shape[a])}return na(this,"shape",s),s},checks:[]});return dr(e,o)}function moe(e,t){let n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let o=fs(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete s[a]}return na(this,"shape",s),s},checks:[]});return dr(e,o)}function goe(e,t){if(!ra(t))throw new Error("Invalid input to extend: expected a plain object");let n=e._zod.def.checks;if(n&&n.length>0){let o=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let r=fs(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return na(this,"shape",o),o}});return dr(e,r)}function hoe(e,t){if(!ra(t))throw new Error("Invalid input to safeExtend: expected a plain object");let n=fs(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return na(this,"shape",i),i}});return dr(e,n)}function yoe(e,t){let n=fs(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t._zod.def.shape};return na(this,"shape",i),i},get catchall(){return t._zod.def.catchall},checks:[]});return dr(e,n)}function woe(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=fs(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(n)for(let l in n){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);n[l]&&(c[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return na(this,"shape",c),c},checks:[]});return dr(t,s)}function boe(e,t,n){let i=fs(t._zod.def,{get shape(){let r=t._zod.def.shape,o={...r};if(n)for(let s in n){if(!(s in o))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(o[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)o[s]=new e({type:"nonoptional",innerType:r[s]});return na(this,"shape",o),o}});return dr(t,i)}function ia(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function qr(e,t){return t.map(n=>{var i;return(i=n).path??(i.path=[]),n.path.unshift(e),n})}function Of(e){return typeof e=="string"?e:e?.message}function Or(e,t,n){let i={...e,path:e.path??[]};if(!e.message){let r=Of(e.inst?._zod.def?.error?.(e))??Of(t?.error?.(e))??Of(n.customError?.(e))??Of(n.localeError?.(e))??"Invalid input";i.message=r}return delete i.inst,delete i.continue,t?.reportInput||delete i.input,i}function _f(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Tf(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function pe(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function $u(...e){let[t,n,i]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:i}:{...t}}function voe(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function hW(e){let t=atob(e),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return n}function yW(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function koe(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n="=".repeat((4-t.length%4)%4);return hW(t+n)}function xoe(e){return yW(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function $oe(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let n=new Uint8Array(t.length/2);for(let i=0;i<t.length;i+=2)n[i/2]=Number.parseInt(t.slice(i,i+2),16);return n}function Roe(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var gW,vw,XS,doe,Cf,eE,nE,rE,JS,Me=v(()=>{gW=Symbol("evaluating");vw="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};XS=xu(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});doe=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Cf=new Set(["string","number","symbol"]),eE=new Set(["string","number","bigint","boolean","symbol","undefined"]);nE={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},rE={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};JS=class{constructor(...t){}}});function Df(e,t=n=>n.message){let n={},i=[];for(let r of e.issues)r.path.length>0?(n[r.path[0]]=n[r.path[0]]||[],n[r.path[0]].push(t(r))):i.push(t(r));return{formErrors:i,fieldErrors:n}}function jf(e,t=n=>n.message){let n={_errors:[]},i=r=>{for(let o of r.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>i({issues:s}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let s=n,a=0;for(;a<o.path.length;){let c=o.path[a];a===o.path.length-1?(s[c]=s[c]||{_errors:[]},s[c]._errors.push(t(o))):s[c]=s[c]||{_errors:[]},s=s[c],a++}}};return i(e),n}function iE(e,t=n=>n.message){let n={errors:[]},i=(r,o=[])=>{var s,a;for(let c of r.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(l=>i({issues:l},c.path));else if(c.code==="invalid_key")i({issues:c.issues},c.path);else if(c.code==="invalid_element")i({issues:c.issues},c.path);else{let l=[...o,...c.path];if(l.length===0){n.errors.push(t(c));continue}let u=n,d=0;for(;d<l.length;){let p=l[d],f=d===l.length-1;typeof p=="string"?(u.properties??(u.properties={}),(s=u.properties)[p]??(s[p]={errors:[]}),u=u.properties[p]):(u.items??(u.items=[]),(a=u.items)[p]??(a[p]={errors:[]}),u=u.items[p]),f&&u.errors.push(t(c)),d++}}};return i(e),n}function bW(e){let t=[],n=e.map(i=>typeof i=="object"?i.key:i);for(let i of n)typeof i=="number"?t.push(`[${i}]`):typeof i=="symbol"?t.push(`[${JSON.stringify(String(i))}]`):/[^\w$]/.test(i)?t.push(`[${JSON.stringify(i)}]`):(t.length&&t.push("."),t.push(i));return t.join("")}function oE(e){let t=[],n=[...e.issues].sort((i,r)=>(i.path??[]).length-(r.path??[]).length);for(let i of n)t.push(`\u2716 ${i.message}`),i.path?.length&&t.push(` \u2192 at ${bW(i.path)}`);return t.join(`
|
|
8
8
|
`)}var wW,If,Ar,sE=v(()=>{vu();Me();wW=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,ku,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},If=F("$ZodError",wW),Ar=F("$ZodError",wW,{Parent:Error})});var Ru,kw,Su,xw,Eu,aE,Ou,cE,$w,Eoe,Rw,Ooe,Sw,Aoe,Ew,Poe,Ow,Coe,Aw,_oe,Pw,Toe,Cw,Ioe,lE=v(()=>{vu();sE();Me();Ru=e=>(t,n,i,r)=>{let o=i?Object.assign(i,{async:!1}):{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new Ni;if(s.issues.length){let a=new(r?.Err??e)(s.issues.map(c=>Or(c,o,sn())));throw vw(a,r?.callee),a}return s.value},kw=Ru(Ar),Su=e=>async(t,n,i,r)=>{let o=i?Object.assign(i,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let a=new(r?.Err??e)(s.issues.map(c=>Or(c,o,sn())));throw vw(a,r?.callee),a}return s.value},xw=Su(Ar),Eu=e=>(t,n,i)=>{let r=i?{...i,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},r);if(o instanceof Promise)throw new Ni;return o.issues.length?{success:!1,error:new(e??If)(o.issues.map(s=>Or(s,r,sn())))}:{success:!0,data:o.value}},aE=Eu(Ar),Ou=e=>async(t,n,i)=>{let r=i?Object.assign(i,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},r);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(s=>Or(s,r,sn())))}:{success:!0,data:o.value}},cE=Ou(Ar),$w=e=>(t,n,i)=>{let r=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return Ru(e)(t,n,r)},Eoe=$w(Ar),Rw=e=>(t,n,i)=>Ru(e)(t,n,i),Ooe=Rw(Ar),Sw=e=>async(t,n,i)=>{let r=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return Su(e)(t,n,r)},Aoe=Sw(Ar),Ew=e=>async(t,n,i)=>Su(e)(t,n,i),Poe=Ew(Ar),Ow=e=>(t,n,i)=>{let r=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return Eu(e)(t,n,r)},Coe=Ow(Ar),Aw=e=>(t,n,i)=>Eu(e)(t,n,i),_oe=Aw(Ar),Pw=e=>async(t,n,i)=>{let r=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return Ou(e)(t,n,r)},Toe=Pw(Ar),Cw=e=>async(t,n,i)=>Ou(e)(t,n,i),Ioe=Cw(Ar)});var ci={};_e(ci,{base64:()=>SE,base64url:()=>_w,bigint:()=>_E,boolean:()=>IE,browserEmail:()=>Woe,cidrv4:()=>$E,cidrv6:()=>RE,cuid:()=>uE,cuid2:()=>dE,date:()=>OE,datetime:()=>PE,domain:()=>Uoe,duration:()=>hE,e164:()=>EE,email:()=>wE,emoji:()=>bE,extendedDuration:()=>Doe,guid:()=>yE,hex:()=>Voe,hostname:()=>zoe,html5Email:()=>Moe,idnEmail:()=>Goe,integer:()=>TE,ipv4:()=>vE,ipv6:()=>kE,ksuid:()=>mE,lowercase:()=>NE,mac:()=>xE,md5_base64:()=>qoe,md5_base64url:()=>Koe,md5_hex:()=>Hoe,nanoid:()=>gE,null:()=>DE,number:()=>Tw,rfc5322Email:()=>Foe,sha1_base64:()=>Zoe,sha1_base64url:()=>Yoe,sha1_hex:()=>Joe,sha256_base64:()=>Qoe,sha256_base64url:()=>ese,sha256_hex:()=>Xoe,sha384_base64:()=>nse,sha384_base64url:()=>rse,sha384_hex:()=>tse,sha512_base64:()=>ose,sha512_base64url:()=>sse,sha512_hex:()=>ise,string:()=>CE,time:()=>AE,ulid:()=>pE,undefined:()=>jE,unicodeEmail:()=>vW,uppercase:()=>LE,uuid:()=>Wc,uuid4:()=>joe,uuid6:()=>Noe,uuid7:()=>Loe,xid:()=>fE});function bE(){return new RegExp(Boe,"u")}function xW(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function AE(e){return new RegExp(`^${xW(e)}$`)}function PE(e){let t=xW({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let i=`${t}(?:${n.join("|")})`;return new RegExp(`^${kW}T(?:${i})$`)}function Nf(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function Lf(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var uE,dE,pE,fE,mE,gE,hE,Doe,yE,Wc,joe,Noe,Loe,wE,Moe,Foe,vW,Goe,Woe,Boe,vE,kE,xE,$E,RE,SE,_w,zoe,Uoe,EE,kW,OE,CE,_E,TE,Tw,IE,DE,jE,NE,LE,Voe,Hoe,qoe,Koe,Joe,Zoe,Yoe,Xoe,Qoe,ese,tse,nse,rse,ise,ose,sse,Iw=v(()=>{Me();uE=/^[cC][^\s-]{8,}$/,dE=/^[0-9a-z]+$/,pE=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fE=/^[0-9a-vA-V]{20}$/,mE=/^[A-Za-z0-9]{27}$/,gE=/^[a-zA-Z0-9_-]{21}$/,hE=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Doe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,yE=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Wc=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,joe=Wc(4),Noe=Wc(6),Loe=Wc(7),wE=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Moe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Foe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,vW=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Goe=vW,Woe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Boe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";vE=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,kE=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,xE=e=>{let t=ai(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},$E=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,RE=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,SE=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_w=/^[A-Za-z0-9_-]*$/,zoe=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Uoe=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,EE=/^\+[1-9]\d{6,14}$/,kW="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",OE=new RegExp(`^${kW}$`);CE=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},_E=/^-?\d+n?$/,TE=/^-?\d+$/,Tw=/^-?\d+(?:\.\d+)?$/,IE=/^(?:true|false)$/i,DE=/^null$/i,jE=/^undefined$/i,NE=/^[^A-Z]*$/,LE=/^[^a-z]*$/,Voe=/^[0-9a-fA-F]*$/;Hoe=/^[0-9a-fA-F]{32}$/,qoe=Nf(22,"=="),Koe=Lf(22),Joe=/^[0-9a-fA-F]{40}$/,Zoe=Nf(27,"="),Yoe=Lf(27),Xoe=/^[0-9a-fA-F]{64}$/,Qoe=Nf(43,"="),ese=Lf(43),tse=/^[0-9a-fA-F]{96}$/,nse=Nf(64,""),rse=Lf(64),ise=/^[0-9a-fA-F]{128}$/,ose=Nf(86,"=="),sse=Lf(86)});function $W(e,t,n){e.issues.length&&t.issues.push(...qr(n,e.issues))}var Ft,RW,Dw,jw,ME,FE,GE,WE,BE,zE,UE,VE,HE,Au,qE,KE,JE,ZE,YE,XE,QE,eO,tO,Nw=v(()=>{vu();Iw();Me();Ft=F("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),RW={number:"number",bigint:"bigint",object:"date"},Dw=F("$ZodCheckLessThan",(e,t)=>{Ft.init(e,t);let n=RW[typeof t.value];e._zod.onattach.push(i=>{let r=i._zod.bag,o=(t.inclusive?r.maximum:r.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?r.maximum=t.value:r.exclusiveMaximum=t.value)}),e._zod.check=i=>{(t.inclusive?i.value<=t.value:i.value<t.value)||i.issues.push({origin:n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:i.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),jw=F("$ZodCheckGreaterThan",(e,t)=>{Ft.init(e,t);let n=RW[typeof t.value];e._zod.onattach.push(i=>{let r=i._zod.bag,o=(t.inclusive?r.minimum:r.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?r.minimum=t.value:r.exclusiveMinimum=t.value)}),e._zod.check=i=>{(t.inclusive?i.value>=t.value:i.value>t.value)||i.issues.push({origin:n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:i.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ME=F("$ZodCheckMultipleOf",(e,t)=>{Ft.init(e,t),e._zod.onattach.push(n=>{var i;(i=n._zod.bag).multipleOf??(i.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):ZS(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),FE=F("$ZodCheckNumberFormat",(e,t)=>{Ft.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),i=n?"int":"number",[r,o]=nE[t.format];e._zod.onattach.push(s=>{let a=s._zod.bag;a.format=t.format,a.minimum=r,a.maximum=o,n&&(a.pattern=TE)}),e._zod.check=s=>{let a=s.value;if(n){if(!Number.isInteger(a)){s.issues.push({expected:i,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort});return}}a<r&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),a>o&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),GE=F("$ZodCheckBigIntFormat",(e,t)=>{Ft.init(e,t);let[n,i]=rE[t.format];e._zod.onattach.push(r=>{let o=r._zod.bag;o.format=t.format,o.minimum=n,o.maximum=i}),e._zod.check=r=>{let o=r.value;o<n&&r.issues.push({origin:"bigint",input:o,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort}),o>i&&r.issues.push({origin:"bigint",input:o,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),WE=F("$ZodCheckMaxSize",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.size!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(i._zod.bag.maximum=t.maximum)}),e._zod.check=i=>{let r=i.value;r.size<=t.maximum||i.issues.push({origin:_f(r),code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),BE=F("$ZodCheckMinSize",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.size!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(i._zod.bag.minimum=t.minimum)}),e._zod.check=i=>{let r=i.value;r.size>=t.minimum||i.issues.push({origin:_f(r),code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),zE=F("$ZodCheckSizeEquals",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.size!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag;r.minimum=t.size,r.maximum=t.size,r.size=t.size}),e._zod.check=i=>{let r=i.value,o=r.size;if(o===t.size)return;let s=o>t.size;i.issues.push({origin:_f(r),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!t.abort})}}),UE=F("$ZodCheckMaxLength",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.length!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<r&&(i._zod.bag.maximum=t.maximum)}),e._zod.check=i=>{let r=i.value;if(r.length<=t.maximum)return;let s=Tf(r);i.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),VE=F("$ZodCheckMinLength",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.length!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(i._zod.bag.minimum=t.minimum)}),e._zod.check=i=>{let r=i.value;if(r.length>=t.minimum)return;let s=Tf(r);i.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),HE=F("$ZodCheckLengthEquals",(e,t)=>{var n;Ft.init(e,t),(n=e._zod.def).when??(n.when=i=>{let r=i.value;return!ta(r)&&r.length!==void 0}),e._zod.onattach.push(i=>{let r=i._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=i=>{let r=i.value,o=r.length;if(o===t.length)return;let s=Tf(r),a=o>t.length;i.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!t.abort})}}),Au=F("$ZodCheckStringFormat",(e,t)=>{var n,i;Ft.init(e,t),e._zod.onattach.push(r=>{let o=r._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:t.format,input:r.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(i=e._zod).check??(i.check=()=>{})}),qE=F("$ZodCheckRegex",(e,t)=>{Au.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),KE=F("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=NE),Au.init(e,t)}),JE=F("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=LE),Au.init(e,t)}),ZE=F("$ZodCheckIncludes",(e,t)=>{Ft.init(e,t);let n=ai(t.includes),i=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=i,e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(i)}),e._zod.check=r=>{r.value.includes(t.includes,t.position)||r.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:r.value,inst:e,continue:!t.abort})}}),YE=F("$ZodCheckStartsWith",(e,t)=>{Ft.init(e,t);let n=new RegExp(`^${ai(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(i=>{let r=i._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(n)}),e._zod.check=i=>{i.value.startsWith(t.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:i.value,inst:e,continue:!t.abort})}}),XE=F("$ZodCheckEndsWith",(e,t)=>{Ft.init(e,t);let n=new RegExp(`.*${ai(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(i=>{let r=i._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(n)}),e._zod.check=i=>{i.value.endsWith(t.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:i.value,inst:e,continue:!t.abort})}});QE=F("$ZodCheckProperty",(e,t)=>{Ft.init(e,t),e._zod.check=n=>{let i=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(i instanceof Promise)return i.then(r=>$W(r,n,t.property));$W(i,n,t.property)}}),eO=F("$ZodCheckMimeType",(e,t)=>{Ft.init(e,t);let n=new Set(t.mime);e._zod.onattach.push(i=>{i._zod.bag.mime=t.mime}),e._zod.check=i=>{n.has(i.value.type)||i.issues.push({code:"invalid_value",values:t.mime,input:i.value.type,inst:e,continue:!t.abort})}}),tO=F("$ZodCheckOverwrite",(e,t)=>{Ft.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var Mf,nO=v(()=>{Mf=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let i=t.split(`
|
|
9
9
|
`).filter(s=>s),r=Math.min(...i.map(s=>s.length-s.trimStart().length)),o=i.map(s=>s.slice(r)).map(s=>" ".repeat(this.indent*2)+s);for(let s of o)this.content.push(s)}compile(){let t=Function,n=this?.args,r=[...(this?.content??[""]).map(o=>` ${o}`)];return new t(...n,r.join(`
|
|
10
10
|
`))}}});var rO,iO=v(()=>{rO={major:4,minor:3,patch:6}});function EO(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function LW(e){if(!_w.test(e))return!1;let t=e.replace(/[-_]/g,i=>i==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return EO(n)}function MW(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[i]=n;if(!i)return!1;let r=JSON.parse(atob(i));return!("typ"in r&&r?.typ!=="JWT"||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}}function EW(e,t,n){e.issues.length&&t.issues.push(...qr(n,e.issues)),t.value[n]=e.value}function Ww(e,t,n,i,r){if(e.issues.length){if(r&&!(n in i))return;t.issues.push(...qr(n,e.issues))}e.value===void 0?n in i&&(t.value[n]=void 0):t.value[n]=e.value}function FW(e){let t=Object.keys(e.shape);for(let i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);let n=tE(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function GW(e,t,n,i,r,o){let s=[],a=r.keySet,c=r.catchall._zod,l=c.def.type,u=c.optout==="optional";for(let d in t){if(a.has(d))continue;if(l==="never"){s.push(d);continue}let p=c.run({value:t[d],issues:[]},i);p instanceof Promise?e.push(p.then(f=>Ww(f,n,d,t,u))):Ww(p,n,d,t,u)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}function OW(e,t,n,i){for(let o of e)if(o.issues.length===0)return t.value=o.value,t;let r=e.filter(o=>!ia(o));return r.length===1?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(s=>Or(s,i,sn())))}),t)}function AW(e,t,n,i){let r=e.filter(o=>o.issues.length===0);return r.length===1?(t.value=r[0].value,t):(r.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(s=>Or(s,i,sn())))}):t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:[],inclusive:!1}),t)}function oO(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ra(e)&&ra(t)){let n=Object.keys(t),i=Object.keys(e).filter(o=>n.indexOf(o)!==-1),r={...e,...t};for(let o of i){let s=oO(e[o],t[o]);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};r[o]=s.data}return{valid:!0,data:r}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let i=0;i<e.length;i++){let r=e[i],o=t[i],s=oO(r,o);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function PW(e,t,n){let i=new Map,r;for(let a of t.issues)if(a.code==="unrecognized_keys"){r??(r=a);for(let c of a.keys)i.has(c)||i.set(c,{}),i.get(c).l=!0}else e.issues.push(a);for(let a of n.issues)if(a.code==="unrecognized_keys")for(let c of a.keys)i.has(c)||i.set(c,{}),i.get(c).r=!0;else e.issues.push(a);let o=[...i].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(o.length&&r&&e.issues.push({...r,keys:o}),ia(e))return e;let s=oO(t.value,n.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}function Lw(e,t,n){e.issues.length&&t.issues.push(...qr(n,e.issues)),t.value[n]=e.value}function CW(e,t,n,i,r,o,s){e.issues.length&&(Cf.has(typeof i)?n.issues.push(...qr(i,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:r,inst:o,issues:e.issues.map(a=>Or(a,s,sn()))})),t.issues.length&&(Cf.has(typeof i)?n.issues.push(...qr(i,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:r,inst:o,key:i,issues:t.issues.map(a=>Or(a,s,sn()))})),n.value.set(e.value,t.value)}function _W(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}function TW(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}function IW(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function DW(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}function Mw(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}function Fw(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){let r=t.transform(e.value,e);return r instanceof Promise?r.then(o=>Gw(e,o,t.out,n)):Gw(e,r,t.out,n)}else{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(o=>Gw(e,o,t.in,n)):Gw(e,r,t.in,n)}}function Gw(e,t,n,i){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},i)}function jW(e){return e.value=Object.freeze(e.value),e}function NW(e,t,n,i){if(!e){let r={code:"custom",input:n,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};i._zod.def.params&&(r.params=i._zod.def.params),t.issues.push($u(r))}}var Je,Bc,It,sO,aO,cO,lO,uO,dO,pO,fO,mO,gO,hO,yO,wO,bO,vO,kO,xO,$O,RO,SO,OO,AO,PO,CO,_O,Bw,TO,Ff,zw,IO,DO,jO,NO,LO,MO,FO,GO,WO,BO,WW,zO,Gf,UO,VO,HO,Uw,qO,KO,JO,ZO,YO,XO,QO,Vw,eA,tA,nA,rA,iA,oA,sA,aA,cA,Wf,lA,uA,dA,pA,fA,mA,gA=v(()=>{Nw();vu();nO();lE();Iw();Me();iO();Me();Je=F("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=rO;let i=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&i.unshift(e);for(let r of i)for(let o of r._zod.onattach)o(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let r=(s,a,c)=>{let l=ia(s),u;for(let d of a){if(d._zod.def.when){if(!d._zod.def.when(s))continue}else if(l)continue;let p=s.issues.length,f=d._zod.check(s);if(f instanceof Promise&&c?.async===!1)throw new Ni;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==p&&(l||(l=ia(s,p)))});else{if(s.issues.length===p)continue;l||(l=ia(s,p))}}return u?u.then(()=>s):s},o=(s,a,c)=>{if(ia(s))return s.aborted=!0,s;let l=r(a,i,c);if(l instanceof Promise){if(c.async===!1)throw new Ni;return l.then(u=>e._zod.parse(u,c))}return e._zod.parse(l,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){let l=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(u=>o(u,s,a)):o(l,s,a)}let c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new Ni;return c.then(l=>r(l,i,a))}return r(c,i,a)}}st(e,"~standard",()=>({validate:r=>{try{let o=aE(e,r);return o.success?{value:o.data}:{issues:o.error?.issues}}catch{return cE(e,r).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Bc=F("$ZodString",(e,t)=>{Je.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??CE(e._zod.bag),e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),It=F("$ZodStringFormat",(e,t)=>{Au.init(e,t),Bc.init(e,t)}),sO=F("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=yE),It.init(e,t)}),aO=F("$ZodUUID",(e,t)=>{if(t.version){let i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(i===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Wc(i))}else t.pattern??(t.pattern=Wc());It.init(e,t)}),cO=F("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=wE),It.init(e,t)}),lO=F("$ZodURL",(e,t)=>{It.init(e,t),e._zod.check=n=>{try{let i=n.value.trim(),r=new URL(i);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=r.href:n.value=i;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),uO=F("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bE()),It.init(e,t)}),dO=F("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=gE),It.init(e,t)}),pO=F("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uE),It.init(e,t)}),fO=F("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=dE),It.init(e,t)}),mO=F("$ZodULID",(e,t)=>{t.pattern??(t.pattern=pE),It.init(e,t)}),gO=F("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fE),It.init(e,t)}),hO=F("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=mE),It.init(e,t)}),yO=F("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=PE(t)),It.init(e,t)}),wO=F("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=OE),It.init(e,t)}),bO=F("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=AE(t)),It.init(e,t)}),vO=F("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=hE),It.init(e,t)}),kO=F("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=vE),It.init(e,t),e._zod.bag.format="ipv4"}),xO=F("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=kE),It.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),$O=F("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=xE(t.delimiter)),It.init(e,t),e._zod.bag.format="mac"}),RO=F("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$E),It.init(e,t)}),SO=F("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=RE),It.init(e,t),e._zod.check=n=>{let i=n.value.split("/");try{if(i.length!==2)throw new Error;let[r,o]=i;if(!o)throw new Error;let s=Number(o);if(`${s}`!==o)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});OO=F("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=SE),It.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{EO(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});AO=F("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=_w),It.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{LW(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),PO=F("$ZodE164",(e,t)=>{t.pattern??(t.pattern=EE),It.init(e,t)});CO=F("$ZodJWT",(e,t)=>{It.init(e,t),e._zod.check=n=>{MW(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),_O=F("$ZodCustomStringFormat",(e,t)=>{It.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Bw=F("$ZodNumber",(e,t)=>{Je.init(e,t),e._zod.pattern=e._zod.bag.pattern??Tw,e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let r=n.value;if(typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r))return n;let o=typeof r=="number"?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...o?{received:o}:{}}),n}}),TO=F("$ZodNumberFormat",(e,t)=>{FE.init(e,t),Bw.init(e,t)}),Ff=F("$ZodBoolean",(e,t)=>{Je.init(e,t),e._zod.pattern=IE,e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=!!n.value}catch{}let r=n.value;return typeof r=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),n}}),zw=F("$ZodBigInt",(e,t)=>{Je.init(e,t),e._zod.pattern=_E,e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),IO=F("$ZodBigIntFormat",(e,t)=>{GE.init(e,t),zw.init(e,t)}),DO=F("$ZodSymbol",(e,t)=>{Je.init(e,t),e._zod.parse=(n,i)=>{let r=n.value;return typeof r=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:r,inst:e}),n}}),jO=F("$ZodUndefined",(e,t)=>{Je.init(e,t),e._zod.pattern=jE,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,i)=>{let r=n.value;return typeof r>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:r,inst:e}),n}}),NO=F("$ZodNull",(e,t)=>{Je.init(e,t),e._zod.pattern=DE,e._zod.values=new Set([null]),e._zod.parse=(n,i)=>{let r=n.value;return r===null||n.issues.push({expected:"null",code:"invalid_type",input:r,inst:e}),n}}),LO=F("$ZodAny",(e,t)=>{Je.init(e,t),e._zod.parse=n=>n}),MO=F("$ZodUnknown",(e,t)=>{Je.init(e,t),e._zod.parse=n=>n}),FO=F("$ZodNever",(e,t)=>{Je.init(e,t),e._zod.parse=(n,i)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),GO=F("$ZodVoid",(e,t)=>{Je.init(e,t),e._zod.parse=(n,i)=>{let r=n.value;return typeof r>"u"||n.issues.push({expected:"void",code:"invalid_type",input:r,inst:e}),n}}),WO=F("$ZodDate",(e,t)=>{Je.init(e,t),e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let r=n.value,o=r instanceof Date;return o&&!Number.isNaN(r.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:r,...o?{received:"Invalid Date"}:{},inst:e}),n}});BO=F("$ZodArray",(e,t)=>{Je.init(e,t),e._zod.parse=(n,i)=>{let r=n.value;if(!Array.isArray(r))return n.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),n;n.value=Array(r.length);let o=[];for(let s=0;s<r.length;s++){let a=r[s],c=t.element._zod.run({value:a,issues:[]},i);c instanceof Promise?o.push(c.then(l=>EW(l,n,s))):EW(c,n,s)}return o.length?Promise.all(o).then(()=>n):n}});WW=F("$ZodObject",(e,t)=>{if(Je.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}let i=xu(()=>FW(t));st(e._zod,"propValues",()=>{let a=t.shape,c={};for(let l in a){let u=a[l]._zod;if(u.values){c[l]??(c[l]=new Set);for(let d of u.values)c[l].add(d)}}return c});let r=Gc,o=t.catchall,s;e._zod.parse=(a,c)=>{s??(s=i.value);let l=a.value;if(!r(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let u=[],d=s.shape;for(let p of s.keys){let f=d[p],g=f._zod.optout==="optional",h=f._zod.run({value:l[p],issues:[]},c);h instanceof Promise?u.push(h.then(w=>Ww(w,a,p,l,g))):Ww(h,a,p,l,g)}return o?GW(u,l,a,c,i.value,e):u.length?Promise.all(u).then(()=>a):a}}),zO=F("$ZodObjectJIT",(e,t)=>{WW.init(e,t);let n=e._zod.parse,i=xu(()=>FW(t)),r=p=>{let f=new Mf(["shape","payload","ctx"]),g=i.value,h=$=>{let x=bw($);return`shape[${x}]._zod.run({ value: input[${x}], issues: [] }, ctx)`};f.write("const input = payload.value;");let w=Object.create(null),b=0;for(let $ of g.keys)w[$]=`key_${b++}`;f.write("const newResult = {};");for(let $ of g.keys){let x=w[$],R=bw($),I=p[$]?._zod?.optout==="optional";f.write(`const ${x} = ${h($)};`),I?f.write(`
|
|
@@ -71,7 +71,7 @@ ${e.timestamp}`,"utf-8")}function Rue(e,t,n){let i=`the approval of gate ${n.gat
|
|
|
71
71
|
depsCount: ${t},
|
|
72
72
|
deps: ${n}}`};var uge={keyword:"dependencies",type:"object",schemaType:"object",error:To.error,code(e){let[t,n]=dge(e);oK(e,t),sK(e,n)}};function dge({schema:e}){let t={},n={};for(let i in e){if(i==="__proto__")continue;let r=Array.isArray(e[i])?t:n;r[i]=e[i]}return[t,n]}function oK(e,t=e.schema){let{gen:n,data:i,it:r}=e;if(Object.keys(t).length===0)return;let o=n.let("missing");for(let s in t){let a=t[s];if(a.length===0)continue;let c=(0,sg.propertyInData)(n,i,s,r.opts.ownProperties);e.setParams({property:s,depsCount:a.length,deps:a.join(", ")}),r.allErrors?n.if(c,()=>{for(let l of a)(0,sg.checkReportMissingProp)(e,l)}):(n.if((0,_T._)`${c} && (${(0,sg.checkMissingProp)(e,a,o)})`),(0,sg.reportMissingProp)(e,o),n.else())}}To.validatePropertyDeps=oK;function sK(e,t=e.schema){let{gen:n,data:i,keyword:r,it:o}=e,s=n.name("valid");for(let a in t)(0,lge.alwaysValidSchema)(o,t[a])||(n.if((0,sg.propertyInData)(n,i,a,o.opts.ownProperties),()=>{let c=e.subschema({keyword:r,schemaProp:a},s);e.mergeValidEvaluated(c,s)},()=>n.var(s,!0)),e.ok(s))}To.validateSchemaDeps=sK;To.default=uge});var cK=ae(TT=>{"use strict";Object.defineProperty(TT,"__esModule",{value:!0});var aK=tt(),pge=ft(),fge={message:"property name must be valid",params:({params:e})=>(0,aK._)`{propertyName: ${e.propertyName}}`},mge={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:fge,code(e){let{gen:t,schema:n,data:i,it:r}=e;if((0,pge.alwaysValidSchema)(r,n))return;let o=t.name("valid");t.forIn("key",i,s=>{e.setParams({propertyName:s}),e.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:!0},o),t.if((0,aK.not)(o),()=>{e.error(!0),r.allErrors||t.break()})}),e.ok(o)}};TT.default=mge});var DT=ae(IT=>{"use strict";Object.defineProperty(IT,"__esModule",{value:!0});var lk=mi(),Hi=tt(),gge=fi(),uk=ft(),hge={message:"must NOT have additional properties",params:({params:e})=>(0,Hi._)`{additionalProperty: ${e.additionalProperty}}`},yge={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:hge,code(e){let{gen:t,schema:n,parentSchema:i,data:r,errsCount:o,it:s}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=s;if(s.props=!0,c.removeAdditional!=="all"&&(0,uk.alwaysValidSchema)(s,n))return;let l=(0,lk.allSchemaProperties)(i.properties),u=(0,lk.allSchemaProperties)(i.patternProperties);d(),e.ok((0,Hi._)`${o} === ${gge.default.errors}`);function d(){t.forIn("key",r,w=>{!l.length&&!u.length?g(w):t.if(p(w),()=>g(w))})}function p(w){let b;if(l.length>8){let k=(0,uk.schemaRefOrVal)(s,i.properties,"properties");b=(0,lk.isOwnProperty)(t,k,w)}else l.length?b=(0,Hi.or)(...l.map(k=>(0,Hi._)`${w} === ${k}`)):b=Hi.nil;return u.length&&(b=(0,Hi.or)(b,...u.map(k=>(0,Hi._)`${(0,lk.usePattern)(e,k)}.test(${w})`))),(0,Hi.not)(b)}function f(w){t.code((0,Hi._)`delete ${r}[${w}]`)}function g(w){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){f(w);return}if(n===!1){e.setParams({additionalProperty:w}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,uk.alwaysValidSchema)(s,n)){let b=t.name("valid");c.removeAdditional==="failing"?(h(w,b,!1),t.if((0,Hi.not)(b),()=>{e.reset(),f(w)})):(h(w,b),a||t.if((0,Hi.not)(b),()=>t.break()))}}function h(w,b,k){let $={keyword:"additionalProperties",dataProp:w,dataPropType:uk.Type.Str};k===!1&&Object.assign($,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema($,b)}}};IT.default=yge});var dK=ae(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});var wge=kd(),lK=mi(),jT=ft(),uK=DT(),bge={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:i,data:r,it:o}=e;o.opts.removeAdditional==="all"&&i.additionalProperties===void 0&&uK.default.code(new wge.KeywordCxt(o,uK.default,"additionalProperties"));let s=(0,lK.allSchemaProperties)(n);for(let d of s)o.definedProperties.add(d);o.opts.unevaluated&&s.length&&o.props!==!0&&(o.props=jT.mergeEvaluated.props(t,(0,jT.toHash)(s),o.props));let a=s.filter(d=>!(0,jT.alwaysValidSchema)(o,n[d]));if(a.length===0)return;let c=t.name("valid");for(let d of a)l(d)?u(d):(t.if((0,lK.propertyInData)(t,r,d,o.opts.ownProperties)),u(d),o.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function l(d){return o.opts.useDefaults&&!o.compositeRule&&n[d].default!==void 0}function u(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};NT.default=bge});var gK=ae(LT=>{"use strict";Object.defineProperty(LT,"__esModule",{value:!0});var pK=mi(),dk=tt(),fK=ft(),mK=ft(),vge={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:i,parentSchema:r,it:o}=e,{opts:s}=o,a=(0,pK.allSchemaProperties)(n),c=a.filter(h=>(0,fK.alwaysValidSchema)(o,n[h]));if(a.length===0||c.length===a.length&&(!o.opts.unevaluated||o.props===!0))return;let l=s.strictSchema&&!s.allowMatchingProperties&&r.properties,u=t.name("valid");o.props!==!0&&!(o.props instanceof dk.Name)&&(o.props=(0,mK.evaluatedPropsToName)(t,o.props));let{props:d}=o;p();function p(){for(let h of a)l&&f(h),o.allErrors?g(h):(t.var(u,!0),g(h),t.if(u))}function f(h){for(let w in l)new RegExp(h).test(w)&&(0,fK.checkStrictMode)(o,`property ${w} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){t.forIn("key",i,w=>{t.if((0,dk._)`${(0,pK.usePattern)(e,h)}.test(${w})`,()=>{let b=c.includes(h);b||e.subschema({keyword:"patternProperties",schemaProp:h,dataProp:w,dataPropType:mK.Type.Str},u),o.opts.unevaluated&&d!==!0?t.assign((0,dk._)`${d}[${w}]`,!0):!b&&!o.allErrors&&t.if((0,dk.not)(u),()=>t.break())})})}}};LT.default=vge});var hK=ae(MT=>{"use strict";Object.defineProperty(MT,"__esModule",{value:!0});var kge=ft(),xge={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:i}=e;if((0,kge.alwaysValidSchema)(i,n)){e.fail();return}let r=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},r),e.failResult(r,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};MT.default=xge});var yK=ae(FT=>{"use strict";Object.defineProperty(FT,"__esModule",{value:!0});var $ge=mi(),Rge={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:$ge.validateUnion,error:{message:"must match a schema in anyOf"}};FT.default=Rge});var wK=ae(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});var pk=tt(),Sge=ft(),Ege={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,pk._)`{passingSchemas: ${e.passing}}`},Oge={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Ege,code(e){let{gen:t,schema:n,parentSchema:i,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(r.opts.discriminator&&i.discriminator)return;let o=n,s=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(l),e.result(s,()=>e.reset(),()=>e.error(!0));function l(){o.forEach((u,d)=>{let p;(0,Sge.alwaysValidSchema)(r,u)?t.var(c,!0):p=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,pk._)`${c} && ${s}`).assign(s,!1).assign(a,(0,pk._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(s,!0),t.assign(a,d),p&&e.mergeEvaluated(p,pk.Name)})})}}};GT.default=Oge});var bK=ae(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});var Age=ft(),Pge={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let r=t.name("valid");n.forEach((o,s)=>{if((0,Age.alwaysValidSchema)(i,o))return;let a=e.subschema({keyword:"allOf",schemaProp:s},r);e.ok(r),e.mergeEvaluated(a)})}};WT.default=Pge});var xK=ae(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});var fk=tt(),kK=ft(),Cge={message:({params:e})=>(0,fk.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,fk._)`{failingKeyword: ${e.ifClause}}`},_ge={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:Cge,code(e){let{gen:t,parentSchema:n,it:i}=e;n.then===void 0&&n.else===void 0&&(0,kK.checkStrictMode)(i,'"if" without "then" and "else" is ignored');let r=vK(i,"then"),o=vK(i,"else");if(!r&&!o)return;let s=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),r&&o){let u=t.let("ifClause");e.setParams({ifClause:u}),t.if(a,l("then",u),l("else",u))}else r?t.if(a,l("then")):t.if((0,fk.not)(a),l("else"));e.pass(s,()=>e.error(!0));function c(){let u=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(u)}function l(u,d){return()=>{let p=e.subschema({keyword:u},a);t.assign(s,a),e.mergeValidEvaluated(p,s),d?t.assign(d,(0,fk._)`${u}`):e.setParams({ifClause:u})}}}};function vK(e,t){let n=e.schema[t];return n!==void 0&&!(0,kK.alwaysValidSchema)(e,n)}BT.default=_ge});var $K=ae(zT=>{"use strict";Object.defineProperty(zT,"__esModule",{value:!0});var Tge=ft(),Ige={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,Tge.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};zT.default=Ige});var VT=ae(UT=>{"use strict";Object.defineProperty(UT,"__esModule",{value:!0});var Dge=ET(),jge=tK(),Nge=OT(),Lge=rK(),Mge=iK(),Fge=ck(),Gge=cK(),Wge=DT(),Bge=dK(),zge=gK(),Uge=hK(),Vge=yK(),Hge=wK(),qge=bK(),Kge=xK(),Jge=$K();function Zge(e=!1){let t=[Uge.default,Vge.default,Hge.default,qge.default,Kge.default,Jge.default,Gge.default,Wge.default,Fge.default,Bge.default,zge.default];return e?t.push(jge.default,Lge.default):t.push(Dge.default,Nge.default),t.push(Mge.default),t}UT.default=Zge});var qT=ae(ag=>{"use strict";Object.defineProperty(ag,"__esModule",{value:!0});ag.dynamicAnchor=void 0;var HT=tt(),Yge=fi(),RK=qm(),Xge=nk(),Qge={keyword:"$dynamicAnchor",schemaType:"string",code:e=>SK(e,e.schema)};function SK(e,t){let{gen:n,it:i}=e;i.schemaEnv.root.dynamicAnchors[t]=!0;let r=(0,HT._)`${Yge.default.dynamicAnchors}${(0,HT.getProperty)(t)}`,o=i.errSchemaPath==="#"?i.validateName:ehe(e);n.if((0,HT._)`!${r}`,()=>n.assign(r,o))}ag.dynamicAnchor=SK;function ehe(e){let{schemaEnv:t,schema:n,self:i}=e.it,{root:r,baseId:o,localRefs:s,meta:a}=t.root,{schemaId:c}=i.opts,l=new RK.SchemaEnv({schema:n,schemaId:c,root:r,baseId:o,localRefs:s,meta:a});return RK.compileSchema.call(i,l),(0,Xge.getValidate)(e,l)}ag.default=Qge});var KT=ae(cg=>{"use strict";Object.defineProperty(cg,"__esModule",{value:!0});cg.dynamicRef=void 0;var EK=tt(),the=fi(),OK=nk(),nhe={keyword:"$dynamicRef",schemaType:"string",code:e=>AK(e,e.schema)};function AK(e,t){let{gen:n,keyword:i,it:r}=e;if(t[0]!=="#")throw new Error(`"${i}" only supports hash fragment reference`);let o=t.slice(1);if(r.allErrors)s();else{let c=n.let("valid",!1);s(c),e.ok(c)}function s(c){if(r.schemaEnv.root.dynamicAnchors[o]){let l=n.let("_v",(0,EK._)`${the.default.dynamicAnchors}${(0,EK.getProperty)(o)}`);n.if(l,a(l,c),a(r.validateName,c))}else a(r.validateName,c)()}function a(c,l){return l?()=>n.block(()=>{(0,OK.callRef)(e,c),n.let(l,!0)}):()=>(0,OK.callRef)(e,c)}}cg.dynamicRef=AK;cg.default=nhe});var PK=ae(JT=>{"use strict";Object.defineProperty(JT,"__esModule",{value:!0});var rhe=qT(),ihe=ft(),ohe={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){e.schema?(0,rhe.dynamicAnchor)(e,""):(0,ihe.checkStrictMode)(e.it,"$recursiveAnchor: false is ignored")}};JT.default=ohe});var CK=ae(ZT=>{"use strict";Object.defineProperty(ZT,"__esModule",{value:!0});var she=KT(),ahe={keyword:"$recursiveRef",schemaType:"string",code:e=>(0,she.dynamicRef)(e,e.schema)};ZT.default=ahe});var _K=ae(YT=>{"use strict";Object.defineProperty(YT,"__esModule",{value:!0});var che=qT(),lhe=KT(),uhe=PK(),dhe=CK(),phe=[che.default,lhe.default,uhe.default,dhe.default];YT.default=phe});var IK=ae(XT=>{"use strict";Object.defineProperty(XT,"__esModule",{value:!0});var TK=ck(),fhe={keyword:"dependentRequired",type:"object",schemaType:"object",error:TK.error,code:e=>(0,TK.validatePropertyDeps)(e)};XT.default=fhe});var DK=ae(QT=>{"use strict";Object.defineProperty(QT,"__esModule",{value:!0});var mhe=ck(),ghe={keyword:"dependentSchemas",type:"object",schemaType:"object",code:e=>(0,mhe.validateSchemaDeps)(e)};QT.default=ghe});var jK=ae(eI=>{"use strict";Object.defineProperty(eI,"__esModule",{value:!0});var hhe=ft(),yhe={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:n}){t.contains===void 0&&(0,hhe.checkStrictMode)(n,`"${e}" without "contains" is ignored`)}};eI.default=yhe});var NK=ae(tI=>{"use strict";Object.defineProperty(tI,"__esModule",{value:!0});var whe=IK(),bhe=DK(),vhe=jK(),khe=[whe.default,bhe.default,vhe.default];tI.default=khe});var MK=ae(nI=>{"use strict";Object.defineProperty(nI,"__esModule",{value:!0});var Aa=tt(),LK=ft(),xhe=fi(),$he={message:"must NOT have unevaluated properties",params:({params:e})=>(0,Aa._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},Rhe={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:$he,code(e){let{gen:t,schema:n,data:i,errsCount:r,it:o}=e;if(!r)throw new Error("ajv implementation error");let{allErrors:s,props:a}=o;a instanceof Aa.Name?t.if((0,Aa._)`${a} !== true`,()=>t.forIn("key",i,d=>t.if(l(a,d),()=>c(d)))):a!==!0&&t.forIn("key",i,d=>a===void 0?c(d):t.if(u(a,d),()=>c(d))),o.props=!0,e.ok((0,Aa._)`${r} === ${xhe.default.errors}`);function c(d){if(n===!1){e.setParams({unevaluatedProperty:d}),e.error(),s||t.break();return}if(!(0,LK.alwaysValidSchema)(o,n)){let p=t.name("valid");e.subschema({keyword:"unevaluatedProperties",dataProp:d,dataPropType:LK.Type.Str},p),s||t.if((0,Aa.not)(p),()=>t.break())}}function l(d,p){return(0,Aa._)`!${d} || !${d}[${p}]`}function u(d,p){let f=[];for(let g in d)d[g]===!0&&f.push((0,Aa._)`${p} !== ${g}`);return(0,Aa.and)(...f)}}};nI.default=Rhe});var GK=ae(rI=>{"use strict";Object.defineProperty(rI,"__esModule",{value:!0});var fl=tt(),FK=ft(),She={message:({params:{len:e}})=>(0,fl.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,fl._)`{limit: ${e}}`},Ehe={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:She,code(e){let{gen:t,schema:n,data:i,it:r}=e,o=r.items||0;if(o===!0)return;let s=t.const("len",(0,fl._)`${i}.length`);if(n===!1)e.setParams({len:o}),e.fail((0,fl._)`${s} > ${o}`);else if(typeof n=="object"&&!(0,FK.alwaysValidSchema)(r,n)){let c=t.var("valid",(0,fl._)`${s} <= ${o}`);t.if((0,fl.not)(c),()=>a(c,o)),e.ok(c)}r.items=!0;function a(c,l){t.forRange("i",l,s,u=>{e.subschema({keyword:"unevaluatedItems",dataProp:u,dataPropType:FK.Type.Num},c),r.allErrors||t.if((0,fl.not)(c),()=>t.break())})}}};rI.default=Ehe});var WK=ae(iI=>{"use strict";Object.defineProperty(iI,"__esModule",{value:!0});var Ohe=MK(),Ahe=GK(),Phe=[Ohe.default,Ahe.default];iI.default=Phe});var BK=ae(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});var ln=tt(),Che={message:({schemaCode:e})=>(0,ln.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ln._)`{format: ${e}}`},_he={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Che,code(e,t){let{gen:n,data:i,$data:r,schema:o,schemaCode:s,it:a}=e,{opts:c,errSchemaPath:l,schemaEnv:u,self:d}=a;if(!c.validateFormats)return;r?p():f();function p(){let g=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),h=n.const("fDef",(0,ln._)`${g}[${s}]`),w=n.let("fType"),b=n.let("format");n.if((0,ln._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>n.assign(w,(0,ln._)`${h}.type || "string"`).assign(b,(0,ln._)`${h}.validate`),()=>n.assign(w,(0,ln._)`"string"`).assign(b,h)),e.fail$data((0,ln.or)(k(),$()));function k(){return c.strictSchema===!1?ln.nil:(0,ln._)`${s} && !${b}`}function $(){let x=u.$async?(0,ln._)`(${h}.async ? await ${b}(${i}) : ${b}(${i}))`:(0,ln._)`${b}(${i})`,R=(0,ln._)`(typeof ${b} == "function" ? ${x} : ${b}.test(${i}))`;return(0,ln._)`${b} && ${b} !== true && ${w} === ${t} && !${R}`}}function f(){let g=d.formats[o];if(!g){k();return}if(g===!0)return;let[h,w,b]=$(g);h===t&&e.pass(x());function k(){if(c.strictSchema===!1){d.logger.warn(R());return}throw new Error(R());function R(){return`unknown format "${o}" ignored in schema at path "${l}"`}}function $(R){let P=R instanceof RegExp?(0,ln.regexpCode)(R):c.code.formats?(0,ln._)`${c.code.formats}${(0,ln.getProperty)(o)}`:void 0,I=n.scopeValue("formats",{key:o,ref:R,code:P});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,(0,ln._)`${I}.validate`]:["string",R,I]}function x(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!u.$async)throw new Error("async format in sync schema");return(0,ln._)`await ${b}(${i})`}return typeof w=="function"?(0,ln._)`${b}(${i})`:(0,ln._)`${b}.test(${i})`}}}};oI.default=_he});var aI=ae(sI=>{"use strict";Object.defineProperty(sI,"__esModule",{value:!0});var The=BK(),Ihe=[The.default];sI.default=Ihe});var cI=ae(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.contentVocabulary=Ad.metadataVocabulary=void 0;Ad.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Ad.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var UK=ae(lI=>{"use strict";Object.defineProperty(lI,"__esModule",{value:!0});var Dhe=cT(),jhe=RT(),Nhe=VT(),Lhe=_K(),Mhe=NK(),Fhe=WK(),Ghe=aI(),zK=cI(),Whe=[Lhe.default,Dhe.default,jhe.default,(0,Nhe.default)(!0),Ghe.default,zK.metadataVocabulary,zK.contentVocabulary,Mhe.default,Fhe.default];lI.default=Whe});var HK=ae(mk=>{"use strict";Object.defineProperty(mk,"__esModule",{value:!0});mk.DiscrError=void 0;var VK;(function(e){e.Tag="tag",e.Mapping="mapping"})(VK||(mk.DiscrError=VK={}))});var pI=ae(dI=>{"use strict";Object.defineProperty(dI,"__esModule",{value:!0});var Pd=tt(),uI=HK(),qK=qm(),Bhe=xd(),zhe=ft(),Uhe={message:({params:{discrError:e,tagName:t}})=>e===uI.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,Pd._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Vhe={keyword:"discriminator",type:"object",schemaType:"object",error:Uhe,code(e){let{gen:t,data:n,schema:i,parentSchema:r,it:o}=e,{oneOf:s}=r;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=i.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(i.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),l=t.const("tag",(0,Pd._)`${n}${(0,Pd.getProperty)(a)}`);t.if((0,Pd._)`typeof ${l} == "string"`,()=>u(),()=>e.error(!1,{discrError:uI.DiscrError.Tag,tag:l,tagName:a})),e.ok(c);function u(){let f=p();t.if(!1);for(let g in f)t.elseIf((0,Pd._)`${l} === ${g}`),t.assign(c,d(f[g]));t.else(),e.error(!1,{discrError:uI.DiscrError.Mapping,tag:l,tagName:a}),t.endIf()}function d(f){let g=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:f},g);return e.mergeEvaluated(h,Pd.Name),g}function p(){var f;let g={},h=b(r),w=!0;for(let x=0;x<s.length;x++){let R=s[x];if(R?.$ref&&!(0,zhe.schemaHasRulesButRef)(R,o.self.RULES)){let I=R.$ref;if(R=qK.resolveRef.call(o.self,o.schemaEnv.root,o.baseId,I),R instanceof qK.SchemaEnv&&(R=R.schema),R===void 0)throw new Bhe.default(o.opts.uriResolver,o.baseId,I)}let P=(f=R?.properties)===null||f===void 0?void 0:f[a];if(typeof P!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`);w=w&&(h||b(R)),k(P,x)}if(!w)throw new Error(`discriminator: "${a}" must be required`);return g;function b({required:x}){return Array.isArray(x)&&x.includes(a)}function k(x,R){if(x.const)$(x.const,R);else if(x.enum)for(let P of x.enum)$(P,R);else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`)}function $(x,R){if(typeof x!="string"||x in g)throw new Error(`discriminator: "${a}" values must be unique strings`);g[x]=R}}}};dI.default=Vhe});var KK=ae((tUe,Hhe)=>{Hhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var JK=ae((nUe,qhe)=>{qhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var ZK=ae((rUe,Khe)=>{Khe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var YK=ae((iUe,Jhe)=>{Jhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var XK=ae((oUe,Zhe)=>{Zhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var QK=ae((sUe,Yhe)=>{Yhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var e4=ae((aUe,Xhe)=>{Xhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var t4=ae((cUe,Qhe)=>{Qhe.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var n4=ae(fI=>{"use strict";Object.defineProperty(fI,"__esModule",{value:!0});var eye=KK(),tye=JK(),nye=ZK(),rye=YK(),iye=XK(),oye=QK(),sye=e4(),aye=t4(),cye=["/properties"];function lye(e){return[eye,tye,nye,rye,iye,t(this,oye),sye,t(this,aye)].forEach(n=>this.addMetaSchema(n,void 0,!1)),this;function t(n,i){return e?n.$dataMetaSchema(i,cye):i}}fI.default=lye});var r4=ae((Yt,gI)=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.MissingRefError=Yt.ValidationError=Yt.CodeGen=Yt.Name=Yt.nil=Yt.stringify=Yt.str=Yt._=Yt.KeywordCxt=Yt.Ajv2020=void 0;var uye=oT(),dye=UK(),pye=pI(),fye=n4(),mI="https://json-schema.org/draft/2020-12/schema",Cd=class extends uye.default{constructor(t={}){super({...t,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),dye.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(pye.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:t,meta:n}=this.opts;n&&(fye.default.call(this,t),this.refs["http://json-schema.org/schema"]=mI)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mI)?mI:void 0)}};Yt.Ajv2020=Cd;gI.exports=Yt=Cd;gI.exports.Ajv2020=Cd;Object.defineProperty(Yt,"__esModule",{value:!0});Yt.default=Cd;var mye=kd();Object.defineProperty(Yt,"KeywordCxt",{enumerable:!0,get:function(){return mye.KeywordCxt}});var _d=tt();Object.defineProperty(Yt,"_",{enumerable:!0,get:function(){return _d._}});Object.defineProperty(Yt,"str",{enumerable:!0,get:function(){return _d.str}});Object.defineProperty(Yt,"stringify",{enumerable:!0,get:function(){return _d.stringify}});Object.defineProperty(Yt,"nil",{enumerable:!0,get:function(){return _d.nil}});Object.defineProperty(Yt,"Name",{enumerable:!0,get:function(){return _d.Name}});Object.defineProperty(Yt,"CodeGen",{enumerable:!0,get:function(){return _d.CodeGen}});var gye=Hm();Object.defineProperty(Yt,"ValidationError",{enumerable:!0,get:function(){return gye.default}});var hye=xd();Object.defineProperty(Yt,"MissingRefError",{enumerable:!0,get:function(){return hye.default}})});function Pa(){let e=r4();return e.default??e}var lg=v(()=>{"use strict"});import{readFileSync as wI}from"node:fs";import{isAbsolute as yye,join as bI,relative as wye,resolve as bye}from"node:path";function o4(e=[]){let t=new Map;for(let n of[...i4,...e]){if(t.has(n.name))throw new Error(`kind ${n.name} is registered twice`);t.set(n.name,n)}return{get:n=>t.get(n),names:()=>[...t.values()].filter(n=>n.shape==="member").map(n=>n.name).sort(),all:()=>[...t.values()]}}function s4(){return o4()}function a4(e,t,n){if("directory"in e.probe)return!0;if("chantProject"in e.probe)return kI(t,n);let{anyFile:i,anyBlock:r,anyJsonKey:o}=e.probe;if(i&&yI(t,n,i).length>0)return!0;if(o)for(let s of yI(t,n,o.in))try{let a=JSON.parse(t.read(s));if(o.pointers.some(c=>xye(a,c)!==void 0))return!0}catch{}if(r){let s=new RegExp(`^\\s*(?:${r.blocks.map(c4).join("|")})\\s*\\{`,"m");for(let a of yI(t,n,r.in))try{if(s.test(t.read(a)))return!0}catch{}}return!1}function yI(e,t,n){let i=[],r=n.filter(o=>o.includes("*"));for(let o of n)!o.includes("*")&&e.stat(qe(t,o))==="file"&&i.push(qe(t,o));if(r.length>0){let o=r.map(s=>new RegExp(`^${s.split("*").map(c4).join("[^/]*")}$`));for(let s of e.list(t)??[])s.type==="file"&&o.some(a=>a.test(s.name))&&i.push(qe(t,s.name))}return i.sort()}function xye(e,t){let n=e;for(let i of t.split("/").slice(1)){let r=i.replace(/~1/g,"/").replace(/~0/g,"~");if(n===null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function c4(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kI(e,t){let n=qe(t,"package.json");if(e.stat(n)==="file")try{let r=JSON.parse(e.read(n));for(let o of["dependencies","devDependencies","peerDependencies"]){let s=r[o];if(s&&typeof s=="object"&&Object.keys(s).some(Sye))return!0}}catch{}let i=(r,o)=>{let s=e.list(r)??[];return s.some(a=>a.type==="file"&&$ye.includes(a.name))?!0:o===Rye?!1:s.some(a=>a.type==="dir"&&!Bi(a.name)&&i(qe(r,a.name),o+1))};return i(t,0)}function Sye(e){return e==="@intentius/chant"||e.startsWith("@intentius/chant-lexicon-")}function Eye(){if(gk)return gk;let e=Pa();return gk=new e({allErrors:!0,strict:!0}).compile(Y_),gk}function Oye(e,t){let n;try{n=JSON.parse(e)}catch(a){return{kinds:[],problems:[`${t}: the kinds file is not JSON (${a.message})`]}}let i=Eye();if(!i(n)){let a=(i.errors??[]).map(c=>`${t}: ${c.instancePath||"the kinds file"} ${c.message??"is invalid"}`);return{kinds:[],problems:[...new Set(a)]}}let r=[],o=[],s=new Set;for(let a of n.kinds){if(kye.includes(a.name)){r.push(`${t}: kind ${a.name} is built in and can't be supplied by a package`);continue}if(s.has(a.name)){r.push(`${t}: kind ${a.name} is listed twice`);continue}s.add(a.name),o.push({name:a.name,description:a.description,probe:{...a.probe.anyFile?{anyFile:[...a.probe.anyFile]}:{},...a.probe.anyBlock?{anyBlock:{in:[...a.probe.anyBlock.in],blocks:[...a.probe.anyBlock.blocks]}}:{},...a.probe.anyJsonKey?{anyJsonKey:{in:[...a.probe.anyJsonKey.in],pointers:[...a.probe.anyJsonKey.pointers]}}:{}},precedence:a.precedence,shape:"member",outputs:{from:"declared",names:[...a.outputs??[]]},source:t,...a.graph?{graph:{lexicon:a.graph.lexicon,config:structuredClone(a.graph.config)}}:{},...a.fields?{fields:structuredClone(a.fields)}:{},...a.reader&&hI.includes(a.reader)?{reader:a.reader}:{}}),a.reader&&!hI.includes(a.reader)&&r.push(`${t}: kind ${a.name} names link reader ${a.reader}, which this chant does not have (it has ${hI.join(", ")}); the kind is kept, and its members' links are only those their entries state`);for(let c of Cye(a.fields??{}))r.push(`${t}: kind ${a.name} ${c}`)}return{kinds:o,problems:r}}function Aye(e,t=vI){return s0(e,t)}function Pye(e,t){let n=bI(e,"package.json"),i;try{i=JSON.parse(wI(n,"utf-8"))}catch{return{kinds:[],problems:[`${t??e}: no readable package.json in ${e}`],file:void 0}}let r=t??(typeof i.name=="string"?i.name:e),o=Aye(i);if(o===void 0)return{kinds:[],problems:[],file:void 0};if(typeof o!="string")return{kinds:[],problems:[`${r}: ${o.problem}`],file:void 0};let s=bye(e,o),a=wye(e,s);if(a.startsWith("..")||yye(a))return{kinds:[],problems:[`${r}: exports["${vI}"] points outside the package`],file:void 0};let c;try{c=wI(s,"utf-8")}catch{return{kinds:[],problems:[`${r}: exports["${vI}"] names ${o}, which does not exist`],file:s}}let l=Oye(c,r),u=typeof i.name=="string"?i.name:void 0;for(let d of l.kinds)d.packageDir=e,d.graph&&u!==hk(d.graph.lexicon)&&(l.problems.push(`${r}: kind ${d.name} reads its members with lexicon ${d.graph.lexicon}, which is ${hk(d.graph.lexicon)}, and this package is ${u??"unnamed"}; the kind is kept, and workspace graph lists its members with kind-not-run`),delete d.graph);return{...l,file:s}}function hk(e){return`@intentius/chant-lexicon-${e}`}function l4(e,t){let n=r=>r.replace(/\{(member|dir|workspace)\}/g,(o,s)=>t[s]),i=r=>typeof r=="string"?n(r):Array.isArray(r)?r.map(i):r!==null&&typeof r=="object"?Object.fromEntries(Object.entries(r).map(([o,s])=>[n(o),i(s)])):r;return i(e)}function xI(e,t){if(e.package){let n=va(e.package,t);if(!n)return{problem:`pinned package ${e.package} is not installed; install it to read the kinds it supplies`};let i;try{i=JSON.parse(wI(bI(n,"package.json"),"utf-8")).version}catch{i=void 0}return e.version&&i!==e.version?{problem:`${e.package} is pinned at ${e.version}, and ${String(i??"an unknown version")} is installed`}:{dir:n,source:e.package}}if(e.path){let n=bI(t,...e.path.split("/"));if(e.integrity){let i=rH(n,e.integrity,e.path);if(!i.ok)return{problem:i.message}}return{dir:n,source:e.path}}return null}function Ca(e,t){let n=[],i=[],r=new Map,o=new Set;return e.forEach((s,a)=>{let c=xI(s,t);if(c===null)return;if("problem"in c){n.push({pin:a,message:c.problem});return}let{dir:l,source:u}=c,d=Pye(l,u);for(let p of d.problems)n.push({pin:a,message:p});for(let p of d.kinds){let f=r.get(p.name);if(f){o.add(p.name),n.push({pin:a,message:`kind ${p.name} is supplied by both ${f} and ${u}; a kind name has one source`});continue}r.set(p.name,u),i.push(p)}}),{registry:o4(i.filter(s=>!o.has(s.name))),problems:n}}function u4(e,t){if(!(e.type==="integer"?typeof t=="number"&&Number.isInteger(t):typeof t===e.type))return`is ${JSON.stringify(t)}, and the field is ${e.type==="integer"?"an integer":`a ${e.type}`}`;if(e.pattern!==void 0&&typeof t=="string"){let i;try{i=new RegExp(e.pattern,"u")}catch{return}if(!i.test(t))return`is ${JSON.stringify(t)}, which does not match ${e.pattern}`}}function Cye(e){let t=[],n=(i,r)=>{if(r.pattern!==void 0)try{new RegExp(r.pattern,"u")}catch{t.push(`declares field ${i} with pattern ${r.pattern}, which is not a regular expression`);return}if(r.default===void 0)return;let o=u4(r,r.default);o&&t.push(`declares field ${i} whose default ${o}`)};for(let[i,r]of Object.entries(e))if(r.type==="object")for(let[o,s]of Object.entries(r.properties))n(`${i}.${o}`,s);else n(i,r);return t}function $I(e,t){if(e===void 0)return{fields:null,problems:[]};let n=e.fields,i=[];if(n===void 0)return t!==null&&i.push({path:"",message:`kind ${e.name} declares no fields, and the entry sets ${Object.keys(t).join(", ")||"an empty fields block"}`}),{fields:null,problems:i};let r=t??{};for(let a of Object.keys(r))a in n||i.push({path:a,message:`kind ${e.name} declares no field ${a}; its fields are ${Object.keys(n).join(", ")}`});let o=(a,c,l)=>{if(l!==void 0){let u=u4(c,l);if(!u)return l;i.push({path:a,message:`field ${a.replace("/",".")} ${u}`})}return c.default??null},s={};for(let[a,c]of Object.entries(n)){if(c.type!=="object"){s[a]=o(a,c,r[a]);continue}let l=r[a],u={};l!==void 0&&(l!==null&&typeof l=="object"&&!Array.isArray(l)?u=l:i.push({path:a,message:`field ${a} is ${JSON.stringify(l)}, and the field is an object`}));for(let d of Object.keys(u))d in c.properties||i.push({path:`${a}/${d}`,message:`kind ${e.name} declares no field ${a}.${d}; ${a} has ${Object.keys(c.properties).join(", ")}`});s[a]=Object.fromEntries(Object.entries(c.properties).map(([d,p])=>[d,o(`${a}/${d}`,p,u[d])]))}return{fields:s,problems:i}}var wUe,vI,hI,yk,vye,i4,kye,$ye,Rye,gk,qi=v(()=>{"use strict";XV();on();iH();fd();lg();wUe=Y_.$id,vI="./workspace-kinds",hI=["dbt-project"],yk="examples",vye="design",i4=[{name:"chant",description:"a chant project, with a chant.config.ts or chant.config.json in its directory",probe:{anyFile:["chant.config.ts","chant.config.json"]},precedence:500,shape:"member",outputs:{from:"chant-source"},source:"builtin"},{name:"workspace",description:"a nested workspace, with its own chant.workspace.json; the outer one reads it through its own chant workspace graph and never writes inside it",probe:{anyFile:["chant.workspace.json","chant.workspace.jsonc"]},precedence:1e3,shape:"member",outputs:{from:"none"},source:"builtin"},{name:"other",description:"a directory chant does not read; the entry says why in `because`",probe:{directory:!0},precedence:0,shape:"member",outputs:{from:"declared",names:[]},source:"builtin"},{name:vye,description:"a data member holding the design artifacts the workspace owns; chant reads its files for record pins and builds nothing",probe:{directory:!0},precedence:0,shape:"member",outputs:{from:"declared",names:[]},source:"builtin"},{name:yk,description:"an example group: every directory its glob matches that holds a chant project is built and linted",probe:{chantProject:!0},precedence:0,shape:"group",outputs:{from:"none"},source:"builtin"}],kye=i4.map(e=>e.name);$ye=["chant.config.ts","chant.config.json"],Rye=4});function Td(e){return String(e).replace(/~/g,"~0").replace(/\//g,"~1")}function _a(e,t){let n=[0];for(let w=0;w<e.length;w++)e.charCodeAt(w)===10&&n.push(w+1);let i=w=>{let b=0,k=n.length-1;for(;b<k;){let $=b+k+1>>1;n[$]<=w?b=$:k=$-1}return{line:b+1,column:w-n[b]+1}},r=new Map,o=new Map,s=new Map,a=e.charCodeAt(0)===65279?1:0,c=(w,b=a)=>{throw new wk(w,b)},l=w=>w>=e.length?"the end of the file":`${JSON.stringify(e[w])}`;function u(){for(;;){let w=e[a];if(w===" "||w===" "||w===`
|
|
73
73
|
`||w==="\r")a++;else if(w==="/"&&(e[a+1]==="/"||e[a+1]==="*"))if(t.jsonc||c("comments are only allowed in chant.workspace.jsonc"),e[a+1]==="/")for(;a<e.length&&e[a]!==`
|
|
74
|
-
`;)a++;else{let b=e.indexOf("*/",a+2);b<0&&c("unterminated /* comment"),a=b+2}else return}}function d(){let w=a;for(a++;;){a>=e.length&&c("unterminated string",w);let b=e.charCodeAt(a);if(b===34)break;b<32&&c("control character in a string; escape it",a),a+=b===92?2:1}a++;try{return JSON.parse(e.slice(w,a))}catch{return c("invalid escape in a string",w)}}function p(w){u(),r.set(w,a);let b=f(w);return o.set(w,a),b}function f(w){let b=e[a];if(b==="{")return g(w);if(b==="[")return h(w);if(b==='"')return d();for(let[$,x]of[["true",!0],["false",!1],["null",null]])if(e.startsWith($,a))return a+=$.length,x;let k=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(e.slice(a,a+64));return k?(a+=k[0].length,Number(k[0])):c(`expected a value, found ${l(a)}`)}function g(w){let b={},k=new Set;if(a++,u(),e[a]==="}")return a++,b;for(;;){u(),e[a]!=='"'&&c(`expected a quoted key, found ${l(a)}`);let $=a,x=d();k.has(x)&&c(`duplicate key ${JSON.stringify(x)}`,$),k.add(x);let R=`${w}/${Td(x)}`;if(s.set(R,$),u(),e[a]!==":"&&c(`expected ":" after key ${JSON.stringify(x)}, found ${l(a)}`),a++,Object.defineProperty(b,x,{value:p(R),enumerable:!0,writable:!0,configurable:!0}),u(),e[a]===","){if(a++,u(),e[a]==="}")return t.jsonc||c("trailing comma; only chant.workspace.jsonc allows one"),a++,b;continue}if(e[a]==="}")return a++,b;c(`expected "," or "}", found ${l(a)}`)}}function h(w){let b=[];if(a++,u(),e[a]==="]")return a++,b;for(;;){if(b.push(p(`${w}/${b.length}`)),u(),e[a]===","){if(a++,u(),e[a]==="]")return t.jsonc||c("trailing comma; only chant.workspace.jsonc allows one"),a++,b;continue}if(e[a]==="]")return a++,b;c(`expected "," or "]", found ${l(a)}`)}}try{u(),a>=e.length&&c("the file is empty");let w=p("");return u(),a<e.length&&c(`unexpected ${l(a)} after the value`),{ok:!0,value:w,locate(b,k){if(k&&s.has(b))return i(s.get(b));for(let $=b;;$=$.slice(0,$.lastIndexOf("/"))){let x=r.get($);if(x!==void 0)return i(x);if($==="")return i(0)}},span(b){let k=r.get(b),$=o.get(b);if(!(k===void 0||$===void 0))return{key:s.get(b)??null,start:k,end:$}}}}catch(w){if(!(w instanceof wk))throw w;return{ok:!1,message:w.message,location:i(w.offset)}}}var wk,Id=v(()=>{"use strict";wk=class extends Error{constructor(n,i){super(n);this.offset=i}}});function d4(){return"0.124.36"}var p4=v(()=>{"use strict"});var PI={};_e(PI,{CHANT_PACKAGE:()=>jd,DECLARATION_FILES:()=>Dd,DECLARATION_SCHEMA_ID:()=>_ye,DECLARATION_SCHEMA_VERSION:()=>Tye,DEFAULT_CI_WINDOW:()=>y4,DEFAULT_PUBLISH_BRANCH_PREFIX:()=>k4,DEFAULT_REPLICATE_REMOTE:()=>v4,DEFAULT_SHIP_ENV:()=>b4,DEFAULT_SHIP_GATE:()=>w4,DEFAULT_STATE_ROOT:()=>x4,DIAGRAM_TOOLS:()=>Nye,FACTORY_CHECK_KINDS:()=>Lye,NAME_PATTERN:()=>Iye,PRINCIPAL_CLASSES:()=>Dye,REPLICATE_REF_CLASSES:()=>RI,REPLICATE_TRIGGERS:()=>SI,RESERVED_NAMES:()=>h4,WORKSPACE_ERROR_CODES:()=>yi,WRITE_VERBS:()=>jye,WorkspaceReadError:()=>ve,boxServicesProblem:()=>O4,compareVersions:()=>$4,declaredDiagrams:()=>OI,declaredRecordKinds:()=>yr,extensionsAt:()=>ug,findDeclarationDir:()=>AI,isInside:()=>Nr,ownerOf:()=>A4,parseDeclaration:()=>S4,pinnedChant:()=>vk,readDeclaration:()=>_t,readerVersion:()=>en,resolveGroups:()=>Ta,rootExclusions:()=>kk});function en(){return f4??=d4(),f4}function $4(e,t){let n=EI.exec(e),i=EI.exec(t);if(!n||!i)throw new Error(`not a version: ${n?t:e}`);for(let r=1;r<=3;r++){let o=Number(n[r])-Number(i[r]);if(o!==0)return o}return n[4]===i[4]?0:n[4]===void 0?1:i[4]===void 0||n[4]<i[4]?-1:1}function Mye(){if(bk)return bk;let e=Pa();return bk=new e({allErrors:!0,strict:!0}).compile(K_),bk}function Fye(e,t){let n=/#\/\$defs\/([A-Za-z]+)\//.exec(e.schemaPath)?.[1];if(e.keyword==="pattern"){let i=JSON.stringify(t);return n==="name"&&typeof t=="string"&&h4.includes(t)?`${i} is reserved; pick another name`:n==="name"?`${i} is not a valid name: use lowercase letters, digits and hyphens, starting with a letter or digit, at most 40 characters`:n==="kindName"?`${i} is not a valid kind or role name`:n==="dir"?`${i} is not a directory inside the workspace: use a relative path with / separators, and no . or .. segments`:n==="path"?`${i} is not a path inside the member or workspace: use a relative path with / separators, and no . or .. segments`:n==="glob"?`${i} is not a glob inside the workspace: use a relative pattern with / separators, and no . or .. segments`:n==="version"?`${i} is not a version such as 1.2.3`:`${i} is not allowed here`}if(e.keyword==="additionalProperties")return`unknown field ${JSON.stringify(e.params.additionalProperty)}; only fields named x-... may be added`;if(e.keyword==="required"){let i=String(e.params.missingProperty);return i==="because"&&e.instancePath.endsWith("/handWritten")?'a hand-written generated file needs "because", saying why it is kept by hand':i==="because"?'a member of kind other needs "because", saying why it is there':`missing required field ${JSON.stringify(i)}`}return e.keyword==="const"&&e.instancePath==="/schema"?"schema must be 1, the only declaration format this chant reads":e.message??"is invalid"}function R4(e,t){let n=e;for(let i of t.split("/").slice(1)){let r=i.replace(/~1/g,"/").replace(/~0/g,"~");if(n===null||typeof n!="object")return;n=n[r]}return n}function vk(e){if(!Array.isArray(e.pins))return;let t=e.pins.findIndex(n=>n!==null&&typeof n=="object"&&n.package===jd&&typeof n.version=="string");return t<0?void 0:{version:e.pins[t].version,index:t}}function S4(e,t,n=en(),i={}){let r=_a(e,{jsonc:t.endsWith(".jsonc")});if(!r.ok)throw new ve("declaration-unparseable",r.message,{file:t,...r.location});let o=(j,N=!1)=>({file:t,...r.locate(j,N)}),s=r.value;if(s===null||typeof s!="object"||Array.isArray(s))throw new ve("declaration-invalid","the declaration must be a JSON object",o(""));let a=s,c=i.rootChant?vk(a):void 0;if(c&&c.version!==n)throw new ve("root-chant-required",`this declaration pins ${jd} ${c.version}, and this is chant ${n}; the root's chant reads it, so install ${jd}@${c.version} at the workspace root`,o(`/pins/${c.index}/version`));if(typeof a.minReader=="string"&&EI.test(a.minReader)&&$4(n,a.minReader)<0)throw new ve("reader-too-old",`this declaration needs chant ${a.minReader} or newer to read it, and this is chant ${n}`,o("/minReader"));let l=Mye();if(!l(s)){let j=(l.errors??[]).filter(ne=>!Gye.has(ne.keyword));j.sort((ne,be)=>be.instancePath.split("/").length-ne.instancePath.split("/").length);let N=j[0]??l.errors[0],C=N.keyword==="additionalProperties",T=C?`${N.instancePath}/${Td(String(N.params.additionalProperty))}`:N.instancePath,G=N.instancePath===""?"":` (at ${N.instancePath})`,ke=j.length>1?`; ${j.length-1} more problem${j.length>2?"s":""} after this one`:"";throw new ve("declaration-invalid",`${Fye(N,R4(s,N.instancePath))}${G}${ke}`,o(T,C))}let u=a.members.map((j,N)=>{let C=`/members/${N}`,T=(j.suppress??[]).map(te=>({check:te.check,because:te.because}));if(j.kind===yk){let te=j.glob;return{type:"group",name:j.name,kind:yk,globs:typeof te=="string"?[te]:[...te],suppress:T,pointer:C,globLocation:r.locate(`${C}/glob`)}}let G=(j.roles??[]).map(te=>typeof te=="string"?{name:te,path:null}:{name:te.name,path:te.path??null}),ke=(j.generated??[]).map((te,ye)=>({path:te.path,generator:te.generator,sources:[...te.sources??[]],handWritten:te.handWritten?{because:te.handWritten.because}:null,pointer:`${C}/generated/${ye}`})),ne=(j.links??[]).map((te,ye)=>({member:te.member,output:te.output,kind:te.kind??null,protocol:te.protocol??null,pointer:`${C}/links/${ye}`})),be=m4(j.records,j.dir,j.name,`${C}/records`),Be=g4(j.diagrams,j.name,`${C}/diagrams`),dt=Kye(j.box,`${C}/box`);return{type:"member",name:j.name,dir:j.dir,kind:j.kind,roles:G,generated:ke,outputs:j.outputs===void 0?null:[...j.outputs],fields:j.fields===void 0?null:structuredClone(j.fields),links:ne,records:be,diagrams:Be,box:dt,upstream:j.upstream??null,because:j.because??null,travel:j.travel===!0,security:[...j.security??[]],ciWorkflow:j.ci?.workflow??null,suppress:T,pointer:C}}),d=new Map;for(let j of u){let N=d.get(j.name);if(N)throw new ve("declaration-invalid",`the name ${JSON.stringify(j.name)} is already used by the entry at ${N.pointer}`,o(`${j.pointer}/name`));d.set(j.name,j)}let p=u.filter(j=>j.type==="member"),f=new Map;for(let j of p){let N=f.get(j.dir);if(N)throw new ve("placement-invalid",`member ${j.name} has the same directory as member ${N.name} (${j.dir})`,o(`${j.pointer}/dir`));f.set(j.dir,j)}for(let j of p){let N=p.find(C=>C!==j&&C.dir!=="."&&Nr(j.dir,C.dir));if(N)throw new ve("placement-invalid",`member ${j.name} (${j.dir}) sits inside member ${N.name} (${N.dir}); only the root member "." may contain other members`,o(`${j.pointer}/dir`))}for(let j of p){let N=new Map;for(let C of j.generated){let T=N.get(C.path);if(T)throw new ve("declaration-invalid",`member ${j.name} lists the generated file ${C.path} twice; the first is at ${T.pointer}`,o(`${C.pointer}/path`));N.set(C.path,C);let G=j.dir==="."?C.path:`${j.dir}/${C.path}`,ke=p.find(ne=>ne!==j&&ne.dir!=="."&&Nr(ne.dir,j.dir)&&Nr(G,ne.dir));if(ke)throw new ve("placement-invalid",`member ${j.name} lists the generated file ${C.path}, which sits inside member ${ke.name} (${ke.dir}); list it there`,o(`${C.pointer}/path`))}}let g=m4(a.records,".",null,"/records"),h=new Map,w=new Map;for(let j of[...g,...p.flatMap(N=>N.records)]){let N=h.get(j.path);if(N)throw new ve("declaration-invalid",`the record kind ${j.path} is already declared at ${N.pointer}`,o(`${j.pointer}/kind`));if(h.set(j.path,j),j.name===null)continue;let C=w.get(j.name);if(C)throw new ve("declaration-invalid",`the record kind name ${JSON.stringify(j.name)} is already given at ${C.pointer}`,o(`${j.pointer}/name`));w.set(j.name,j)}for(let j of p){let N=new Map;for(let T of j.box?.capabilities??[]){let G=N.get(T.name);if(G)throw new ve("declaration-invalid",`member ${j.name}'s box lists the capability ${T.name} twice; the first is at ${G.pointer}`,o(`${T.pointer}/name`));N.set(T.name,T)}let C=j.box?O4(j.name,j.box.services):null;if(C)throw new ve("declaration-invalid",C.message,o(C.pointer))}let b=Jye(p);if(b)throw new ve("declaration-invalid",b.message,o(b.pointer));let k=p.filter(j=>j.box?.replicate);if(k.length>1)throw new ve("declaration-invalid",`members ${k[0].name} and ${k[1].name} both declare replicate in their box block; a checkout's work in progress goes to one remote, so a workspace has one replicate policy`,o(k[1].box.replicate.pointer));let $=g4(a.diagrams,null,"/diagrams"),x=new Map;for(let j of[...$,...p.flatMap(N=>N.diagrams)]){let N=x.get(j.name);if(N)throw new ve("declaration-invalid",`the diagram name ${JSON.stringify(j.name)} is already used by the diagram at ${N.pointer}`,o(`${j.pointer}/name`));x.set(j.name,j)}let R=Xye(a,p,o),P=Wye(a.writeScope,p,o),I=Hye(a.agents,p,o),A=Zye(p,I);if(A)throw new ve("declaration-invalid",A.message,o(A.pointer));let W=Vye(a.ci,o),_=(a.pins??[]).map(j=>({package:j.package??null,version:j.version??null,path:j.path??null,integrity:j.integrity??null})),re={name:a.name,schema:a.schema,minReader:a.minReader??null,entries:u,members:p,groups:u.filter(j=>j.type==="group"),pins:_,checks:{...a.checks??{}},quorum:typeof a.quorum=="number"?a.quorum:null,records:g,diagrams:$,hosts:R,changes:qye(a.changes),writeScope:P,agents:I,identity:Bye(a.identity),ci:W,retention:Uye(a.retention),metrics:zye(a.metrics),security:[...a.security??[]],file:t};return E4.set(re,s),re}function ug(e,t){let n=R4(E4.get(e),t);return n===null||typeof n!="object"||Array.isArray(n)?{}:Object.fromEntries(Object.entries(n).filter(([i])=>i.startsWith("x-")))}function Wye(e,t,n){if(e===void 0)return null;let i=e,r={};for(let[o,s]of Object.entries(i)){let a=`/writeScope/${o}`,c=s.members===void 0||s.members==="*"?null:[...s.members];for(let[d,p]of(c??[]).entries())if(!t.some(f=>f.name===p))throw new ve("declaration-invalid",`writeScope.${o} names the member ${JSON.stringify(p)}, which the declaration does not declare; declared members: ${t.map(f=>f.name).join(", ")||"none"}`,n(`${a}/members/${d}`));let l=s.records===void 0?null:Object.fromEntries(Object.entries(s.records).map(([d,p])=>[d,[...p]])),u=(s.protected??[]).map(d=>typeof d=="string"?{path:d,except:[]}:{path:d.path,except:[...d.except??[]]});r[o]={members:c,records:l,protected:u,pointer:a}}return r}function Bye(e){if(e===void 0)return null;let t=e,n={};for(let[i,r]of Object.entries(t.gates??{}))n[i]={gate:i,class:r.class??null,pointer:`/identity/gates/${i.replace(/~/g,"~0").replace(/\//g,"~1")}`};return{attribution:t.attribution??"any",gates:n}}function zye(e){if(!e||typeof e!="object")return null;let t=e.failureWindowDays;return typeof t=="number"?{failureWindowDays:t}:{}}function Uye(e){if(!e||typeof e!="object")return null;let t={};for(let n of BV){let i=e[n];i&&(t[n]={...typeof i.days=="number"?{days:i.days}:{},...typeof i.keep=="number"?{keep:i.keep}:{}})}return t}function Vye(e,t){if(e===void 0)return null;let n=e,i=n.workflow!==void 0?{workflow:n.workflow}:{},r=null;if(n.reportUrl!==void 0){let a=zV(n.reportUrl,"ci.reportUrl");if("error"in a)throw new ve("declaration-invalid",a.error,t("/ci/reportUrl"));r=a.url}if(n.green===void 0)return{green:null,...i,reportUrl:r};let o=n.green,s=Object.entries(o.phases).map(([a,c])=>({name:a,runs:[...Array.isArray(c)?c:c.runs],skipped:Array.isArray(c)?"fail":c.skipped??"fail",...!Array.isArray(c)&&c.build!==void 0?{build:c.build}:{},pointer:`/ci/green/phases/${Td(a)}`}));for(let[a,c]of o.require.entries())if(!s.some(l=>l.name===c))throw new ve("declaration-invalid",`ci.green.require names the phase ${JSON.stringify(c)}, which ci.green.phases does not declare; declared phases: ${s.map(l=>l.name).join(", ")}`,t(`/ci/green/require/${a}`));for(let[a,c]of(o.preMerge??[]).entries())if(!s.some(l=>l.name===c))throw new ve("declaration-invalid",`ci.green.preMerge names the phase ${JSON.stringify(c)}, which ci.green.phases does not declare; declared phases: ${s.map(l=>l.name).join(", ")}`,t(`/ci/green/preMerge/${a}`));return{green:{branch:o.branch,window:o.window??y4,phases:s,require:[...o.require],...o.preMerge!==void 0?{preMerge:[...o.preMerge]}:{},signedSince:o.signedSince??null,source:o.source??"checks",pointer:"/ci/green"},...i,reportUrl:r}}function Hye(e,t,n){let i=(e??[]).map((s,a)=>{let c=s.members!==void 0?[...s.members]:[s.member];return{name:s.name,members:c,member:c[0],principals:[...s.principals??[]],pointer:`/agents/${a}`,listed:s.members!==void 0}}),r=new Map,o=new Map;for(let{listed:s,...a}of i){let c=r.get(a.name);if(c)throw new ve("declaration-invalid",`the agent name ${JSON.stringify(a.name)} is already used by the agent at ${c.pointer}`,n(`${a.pointer}/name`));r.set(a.name,a);for(let[l,u]of a.members.entries())if(!t.some(d=>d.name===u))throw new ve("declaration-invalid",`agent ${a.name} is bound to ${JSON.stringify(u)}, which is not a declared member; an agent session is bound to members, not an example group`,n(s?`${a.pointer}/members/${l}`:`${a.pointer}/member`));for(let[l,u]of a.principals.entries()){let d=o.get(u);if(d)throw new ve("declaration-invalid",`the principal ${JSON.stringify(u)} is already listed by agent ${d.name}`,n(`${a.pointer}/principals/${l}`));o.set(u,a)}}return[...r.values()]}function qye(e){return e===void 0?null:{severity:e.severity??"warn",ignore:[...e.ignore??[]]}}function m4(e,t,n,i){return(e??[]).map((r,o)=>({kind:r.kind,path:t==="."?r.kind:`${t}/${r.kind}`,name:r.name??null,member:n,pointer:`${i}/${o}`}))}function g4(e,t,n){return(e??[]).map((i,r)=>({name:i.name,title:i.title,source:i.source??null,render:i.render??null,renderer:{tool:i.renderer.tool,version:i.renderer.version,args:[...i.renderer.args??[]]},sourceHash:i.sourceHash??null,member:t,pointer:`${n}/${r}`}))}function Kye(e,t){if(e===void 0)return null;let n=e,i=n.factory,r=n.listing,o=n.replicate;return{capabilities:(n.capabilities??[]).map((s,a)=>({name:s.name,broker:s.broker??null,scope:[...s.scope??[]],pointer:`${t}/capabilities/${a}`})),isolation:n.host===void 0?null:{host:n.host,slot:n.slot,ports:{...n.ports??{}},state:{...n.state??{}},cookies:[...n.cookies??[]]},intent:n.intent??null,services:(n.services??[]).map((s,a)=>({name:s.name,cmd:s.cmd,needs:[...s.needs??[]],httpPort:s.httpPort??null,duration:s.duration??null,health:s.health??null,optional:s.optional??!1,pointer:`${t}/services/${a}`})),factory:i===void 0?null:{builds:[...i.builds],check:i.check===void 0?null:typeof i.check=="string"?{run:i.check,kind:"test"}:{run:i.check.run,kind:i.check.kind??"test"},checks:i.checks??null,builders:i.builders??null,tiers:(i.tiers??[]).map(s=>({tier:s.tier,agent:s.agent,kinds:s.kinds===void 0?null:[...s.kinds],session:s.session??null})),publish:i.publish===void 0?null:{forge:i.publish.forge??"github",repo:i.publish.repo,base:i.publish.base??null,branchPrefix:i.publish.branchPrefix??k4,head:i.publish.head??null},pointer:`${t}/factory`},listing:r===void 0?null:{published:r.published??!0,title:r.title??"",line:r.line??"",cover:r.cover??null},publisher:n.publisher??null,ship:n.ship===void 0?null:{op:n.ship.op,gate:n.ship.gate??w4,env:n.ship.env??b4,bookkeeping:(n.ship.bookkeeping??[]).map(s=>s.replace(/^\.\//,"").replace(/\/+$/,"")),pointer:`${t}/ship`},replicate:o===void 0?null:{remote:o.remote??v4,refs:RI.filter(s=>(o.refs??RI).includes(s)),on:SI.filter(s=>(o.on??SI).includes(s)),every:o.every??null,pointer:`${t}/replicate`},pointer:t}}function Jye(e){let t=e.filter(s=>s.box?.factory);if(t.length>1)return{message:`members ${t[0].name} and ${t[1].name} both declare a factory in their box block; a workspace has one factory, so an orchestrator reads one`,pointer:t[1].box.factory.pointer};let n=t[0]?.box?.factory;if(!n)return null;let i=()=>e.map(s=>s.name).join(", "),r=n.builds.findIndex(s=>!e.some(a=>a.name===s));if(r>=0)return{message:`the factory builds ${JSON.stringify(n.builds[r])}, which is not a declared member; declared members: ${i()}`,pointer:`${n.pointer}/builds/${r}`};if(n.builders!==null&&!e.some(s=>s.name===n.builders))return{message:`the factory's builders names ${JSON.stringify(n.builders)}, which is not a declared member; declared members: ${i()}`,pointer:`${n.pointer}/builders`};if(n.tiers.length>0&&n.builders===null)return{message:"the factory declares tiers and no builders; tiers name agents the builders member declares, so name it",pointer:`${n.pointer}/tiers`};let o=new Map;for(let[s,a]of n.tiers.entries())for(let c of a.kinds??[null]){let l=`${a.tier}\0${c??""}`,u=o.get(l);if(u!==void 0){let d=c===null?"with no kinds":`for kind ${c}`;return{message:`tiers/${u} and tiers/${s} both name a builder at tier ${a.tier} ${d}; a tier has one builder per kind, so one entry answers it`,pointer:`${n.pointer}/tiers/${s}`}}o.set(l,s)}return null}function Zye(e,t){let n=e.find(i=>i.box?.factory)?.box?.factory;if(!n)return null;for(let[i,r]of n.tiers.entries())if(r.session!==null&&!t.some(o=>o.name===r.session)){let o=t.map(s=>s.name).join(", ")||"none";return{message:`tiers/${i} names the session ${JSON.stringify(r.session)}, which is not a declared agent session; declared sessions: ${o}`,pointer:`${n.pointer}/tiers/${i}/session`}}return null}function O4(e,t){let n=new Map;for(let o of t){let s=n.get(o.name);if(s)return{message:`member ${e}'s box declares the service ${o.name} twice; the first is at ${s.pointer}`,pointer:`${o.pointer}/name`};n.set(o.name,o)}let i;for(let o of t)if(o.httpPort!==null){if(i)return{message:`member ${e}'s box gives both ${i.name} (port ${i.httpPort}) and ${o.name} (port ${o.httpPort}) an httpPort, and the supervisor routes the sprite's URL to one service`,pointer:`${o.pointer}/httpPort`};i=o}for(let o of t){let s=o.needs.findIndex(a=>!n.has(a));if(s>=0){let a=t.map(c=>c.name).join(", ");return{message:`member ${e}'s box service ${o.name} needs ${JSON.stringify(o.needs[s])}, which the block does not declare; declared services: ${a}`,pointer:`${o.pointer}/needs/${s}`}}}let r=Yye(t);if(r){let o=n.get(r[0]);return{message:`member ${e}'s box services need each other in a cycle: ${r.join(" -> ")}`,pointer:`${o.pointer}/needs`}}return null}function Yye(e){let t=new Map(e.map(r=>[r.name,r])),n=new Map,i=(r,o)=>{let s=n.get(r);if(s==="done")return null;if(s==="visiting")return[...o.slice(o.indexOf(r)),r];n.set(r,"visiting");for(let a of t.get(r)?.needs??[]){let c=i(a,[...o,r]);if(c)return c}return n.set(r,"done"),null};for(let r of e){let o=i(r.name,[]);if(o)return o}return null}function Xye(e,t,n){let i=(e.hosts??[]).map((s,a)=>({name:s.name,ports:{...s.ports},stateRoot:s.stateRoot??null,pointer:`/hosts/${a}`})),r=(s,a)=>new ve("declaration-invalid",s,n(a)),o=new Map;for(let s of i){let a=o.get(s.name);if(a)throw r(`the host name ${JSON.stringify(s.name)} is already used by the host at ${a.pointer}`,`${s.pointer}/name`);if(o.set(s.name,s),s.ports.from>s.ports.to)throw r(`host ${s.name}'s port range starts at ${s.ports.from}, after its end ${s.ports.to}`,`${s.pointer}/ports`)}for(let s of t){let a=s.box?.isolation;if(!a)continue;let c=s.box.pointer,l=o.get(a.host);if(!l){let g=i.map(h=>h.name).join(", ")||"none are declared";throw r(`member ${s.name}'s box names the host ${JSON.stringify(a.host)}, which hosts does not declare; declared hosts: ${g}`,`${c}/host`)}let{from:u,to:d,perBox:p}=l.ports,f=u+(a.slot+1)*p-1;if(f>d){let g=Math.floor((d-u+1)/p);throw r(`member ${s.name}'s box has slot ${a.slot} on host ${l.name}, which needs ports ${u+a.slot*p} to ${f}, past the end of the host's range (${d}); the range holds ${g} slot${g===1?"":"s"}`,`${c}/slot`)}for(let[g,h]of Object.entries(a.ports))if(h>=p)throw r(`member ${s.name}'s box gives port ${g} offset ${h}, and host ${l.name} gives each box ${p} port${p===1?"":"s"} (offsets 0 to ${p-1})`,`${c}/ports/${Td(g)}`)}return i}function yr(e){return[...e.records,...e.members.flatMap(t=>t.records)]}function OI(e){return[...e.diagrams,...e.members.flatMap(t=>t.diagrams)]}function Nr(e,t){return t==="."?!0:e===t||e.startsWith(`${t}/`)}function _t(e,t="",n={}){let i=Dd.map(r=>qe(t,r)).filter(r=>e.stat(r)==="file");if(i.length===0)throw new ve("declaration-missing",`no ${Dd.join(" or ")} in ${t||"the workspace root"}${e.label}`);if(i.length>1)throw new ve("declaration-ambiguous",`both ${i.join(" and ")} exist${e.label}; keep one of them`,{file:i[1],line:1,column:1});return S4(e.read(i[0]),i[0],en(),n)}function AI(e,t){for(let n=t;;n=n.includes("/")?n.slice(0,n.lastIndexOf("/")):""){if(Dd.some(i=>e.stat(qe(n,i))==="file"))return n;if(n==="")return}}function Ta(e,t){let n=o=>({file:e.file,...o.globLocation}),i=new Map,r=[];for(let o of e.groups){let s=[...new Set(o.globs.flatMap(l=>ZV(t,l)))].sort(),a=[],c=[];for(let l of s){if(!kI(t,l)){c.push(l);continue}let u=p=>new ve("placement-invalid",`group ${o.name} matches ${l}, ${p}`,n(o));for(let p of e.members)if(p.dir!=="."){if(p.dir===l)throw u(`which is member ${p.name}'s directory; a match is never a member`);if(Nr(p.dir,l))throw u(`which contains member ${p.name} (${p.dir})`);if(p.kind==="workspace"&&Nr(l,p.dir))throw u(`which sits inside the nested workspace ${p.name}; that workspace declares its own examples`)}let d=i.get(l);if(d)throw u(`which group ${d.name} also matches`);i.set(l,o),a.push(l)}r.push({group:o,matches:a,skipped:c})}return r}function A4(e,t,n){for(let r of t){let o=r.matches.find(s=>Nr(n,s));if(o)return{group:r.group,match:o}}let i;for(let r of e.members)Nr(n,r.dir)&&(!i||i.dir==="."||r.dir!=="."&&r.dir.length>i.dir.length)&&(i=r);return i?{member:i}:void 0}function kk(e,t){let n=[];for(let i of e.members)i.dir!=="."&&n.push({dir:i.dir,owner:i.name});for(let i of t)for(let r of i.matches)e.members.some(o=>o.dir!=="."&&Nr(r,o.dir))||n.push({dir:r,owner:i.group.name});return n.sort((i,r)=>i.dir<r.dir?-1:i.dir>r.dir?1:0)}var _ye,Dd,Tye,h4,Iye,yi,ve,Dye,jye,y4,Nye,w4,b4,RI,SI,v4,Lye,k4,x4,jd,f4,EI,bk,Gye,E4,Tt=v(()=>{"use strict";q_();UV();VV();YV();qi();Id();on();lg();p4();_ye=K_.$id,Dd=["chant.workspace.json","chant.workspace.jsonc"],Tye=1,h4=["_workspace","_members"],Iye=/^[a-z0-9][a-z0-9-]{0,39}$/,yi=["declaration-missing","declaration-ambiguous","declaration-unparseable","declaration-invalid","placement-invalid","reader-too-old","root-chant-required","not-a-git-repository","revision-unknown"],ve=class extends Error{constructor(n,i,r){super(i);this.code=n;this.location=r;this.name="WorkspaceReadError"}describe(){let n=this.location;return n?`${n.file}:${n.line}:${n.column}: ${this.message}`:this.message}},Dye=["human","agent","runner","service"],jye=["new","amend","review","close"],y4="24h",Nye=["d2","mermaid","graphviz","excalidraw"],w4="ship",b4="box",RI=["work","kept","wip","ledger"],SI=["save","release"],v4="origin",Lye=["test","build","lint","plan","conformance"],k4="chant/work/",x4="${XDG_STATE_HOME}/chant/boxes",jd="@intentius/chant";EI=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?$/;Gye=new Set(["if","then","else","oneOf","anyOf"]);E4=new WeakMap});var _4={};_e(_4,{MEMBERS_DIR:()=>Rk,MEMBER_LEDGER_FLOOR:()=>owe,MemberLedgerError:()=>$k,clearMemberLedgerCache:()=>swe,memberLedgerPrefix:()=>Sk,resolveMemberLedger:()=>Xr});import{existsSync as Qye}from"node:fs";import{dirname as ewe,join as twe,relative as nwe,resolve as rwe,sep as iwe}from"node:path";function Sk(e){return e.map(t=>`${Rk}/${t}/`).join("")}function Xr(e){let t=rwe(e),n=xk.get(t);return n||(n=cwe(t),xk.set(t,n),n.catch(()=>xk.delete(t))),n}function swe(){xk.clear()}function awe(e,t){let n=nwe(e,t);return n===""?"":n.split(iwe).join("/")}async function cwe(e){let t=tr(e);return t?C4(t.dir,e):P4}async function C4(e,t){let{readDeclaration:n,resolveGroups:i,ownerOf:r,WorkspaceReadError:o}=await Promise.resolve().then(()=>(Tt(),PI)),{workingTree:s}=await Promise.resolve().then(()=>(on(),Z_)),a;try{let d=s(e),p=n(d),f=r(p,i(p,d),awe(e,t));a=f&&"member"in f&&f.member.dir!=="."?[f.member.name]:[]}catch(d){throw d instanceof o?new $k(`cannot place this project's lifecycle ledger: ${d.describe()}. A project inside a workspace writes under ${Rk}/<member>/ on chant/lifecycle, and chant does not guess the member. Fix the declaration and retry.`):d}let c=P4,l=ewe(e);if(l!==e&&!Qye(twe(e,".git"))){let d=tr(l);d&&(c=await C4(d.dir,e))}let u=[...c.members,...a];return{members:u,prefix:Sk(u)}}var Rk,owe,P4,$k,xk,Io=v(()=>{"use strict";Mi();Rk="_members",owe="0.81.0",P4={members:[],prefix:""};$k=class extends Error{constructor(t){super(t),this.name="MemberLedgerError"}},xk=new Map});function dg(e){return e===Nd}var Nd,pg=v(()=>{"use strict";Nd="recorded locally (no remote for chant/lifecycle)"});function Ki(e=process.env){let t=e[Ek]?.trim().toLowerCase();return t!==void 0&&t!==""&&t!=="0"&&t!=="false"}function fg(e){return CI.get(e)?.tip}function T4(e,t,n,i){let r=CI.get(e)??{tip:null,writes:[]};r.tip=t;for(let o of n)r.writes.push({path:o,message:i});CI.set(e,r)}function Ok(e,t){if(Ki())throw new _I(e,t)}var Ek,TI,CI,_I,Ld=v(()=>{"use strict";Ek="CHANT_NO_RECORD";TI="not recorded (--no-record): chant/lifecycle was not written or pushed",CI=new Map;_I=class extends Error{constructor(n,i){super(`gate "${i}" of "${n}" cannot be passed under --no-record: a gate is decided and approved on chant/lifecycle, which this run does not write. Run without --no-record (and without CHANT_NO_RECORD) to stop at the gate for approval.`);this.op=n;this.gate=i;this.name="GateNotRecordableError"}}});var WI={};_e(WI,{LifecycleLedgerUnreadableError:()=>gg,RefCASConflictError:()=>Ot,StaleLifecycleBranchError:()=>mg,StaleLockError:()=>ml,appendLedgerLine:()=>W4,appendReleaseRecordLine:()=>jI,deleteRefCAS:()=>Gd,describeLifecyclePush:()=>MI,fetchLifecycle:()=>ywe,fetchLifecycleStatus:()=>Yi,fetchRef:()=>kwe,fetchRefInto:()=>H4,fetchRefIntoStatus:()=>Ck,getHeadCommit:()=>_k,getRemoteLifecycleBranchSha:()=>B4,gitLedgerReadPort:()=>$we,ledgerDir:()=>qn,ledgerRevision:()=>Wd,listFilesInDir:()=>Zi,listLedgerEnvironments:()=>LI,listLedgerTrees:()=>hg,listSnapshots:()=>hwe,pushLifecycle:()=>Md,pushLifecycleReport:()=>Da,pushLifecycleStatus:()=>Ia,pushRef:()=>vwe,pushRefStatus:()=>yg,readBlobBySha:()=>hn,readBlobFromPath:()=>At,readEnvironmentSnapshots:()=>gwe,readPathSha:()=>gn,readRefSha:()=>ja,readReleaseLedgerLines:()=>NI,readSnapshot:()=>G4,readSnapshotAt:()=>mwe,requireLifecycleLedger:()=>Lr,snapshotStorageKey:()=>M4,updateRefCAS:()=>Fd,writeBlob:()=>FI,writeBlobToPath:()=>mn,writeLedgerFiles:()=>Ji,writeSnapshot:()=>F4});async function qn(e,t){return`${await lwe(t)}${e}`}async function lwe(e){return e?.ledgerPrefix!==void 0?e.ledgerPrefix:e?.member!==void 0?Sk((typeof e.member=="string"?[e.member]:[...e.member]).filter(t=>t!==".")):(await Xr(e?.cwd??process.cwd())).prefix}async function pwe(e){let t=bt();if((await t.spawn(["git","var","GIT_COMMITTER_IDENT"],{cwd:e,env:wi})).exitCode===0)return[];let i=[];for(let[r,o,s]of[["user.name","CHANT_LIFECYCLE_COMMITTER_NAME",uwe],["user.email","CHANT_LIFECYCLE_COMMITTER_EMAIL",dwe]]){let a=await t.spawn(["git","config","--get",r],{cwd:e,env:wi});a.exitCode===0&&a.stdout.trim()!==""||i.push("-c",`${r}=${process.env[o]?.trim()||s}`)}return i}function II(e,t,n){return new Error(`cannot write ${t} on the ${Nt} branch: ${e} failed: ${(n??"").trim()}`)}async function mn(e,t,n,i,r){let o=await qn(e,r);return Ji([{path:`${o}/${t}`,content:n,...r?.expectPriorPathSha!==void 0?{expectPriorSha:r.expectPriorPathSha}:{}}],i,r)}async function Ji(e,t,n){let i=bt(),r=n?.cwd;if(e.length===0)throw new Error("writeLedgerFiles needs at least one file");let o=e[0].path;for(let u of e){let d=u.path.split("/");if(d.length<2||d.some(p=>p===""))throw new Error(`cannot write ${u.path} on the ${Nt} branch: a ledger path is <dir>/<file>`)}let s=[];for(let u of e){if(fwe(u)){s.push({path:u.path,sha:null});continue}let d=await i.spawn(["git","hash-object","-w","--stdin"],{cwd:r,stdin:u.content});if(d.exitCode!==0)throw II("git hash-object",u.path,d.stderr);s.push({path:u.path,sha:d.stdout.trim()})}let a=await pwe(r);await gl(r)===null&&await Lr({...r?{cwd:r}:{}});let c=new Map(e.map(u=>[u.path,u.expectPriorSha])),l;for(let u=1;u<=L4;u++){let d=await gl(r);if(n?.expectTip!==void 0&&d!==n.expectTip)throw new Ot(`refs/heads/${Nt}`,n.expectTip,`the branch moved to ${d??"(none)"} since it was read`);let p=new Map,f=async x=>{let R=p.get(x);return R||(R=d?await xwe(d,x,r):new Map,p.set(x,R)),R};for(let x of s){let{dir:R,name:P}=D4(x.path),I=(await f(R)).get(P),A=I?.type==="blob"?I.sha:null,W=c.get(x.path);if(W!==void 0&&A!==W)throw l??new Ot(`refs/heads/${Nt}`,W,"target path changed concurrently");c.set(x.path,A)}for(let x of s){let{dir:R,name:P}=D4(x.path);x.sha===null?(await f(R)).delete(P):(await f(R)).set(P,{mode:"100644",type:"blob",sha:x.sha});for(let I=R;I!=="";I=Pk(I))await f(Pk(I))}let g=[...p.keys()].sort((x,R)=>N4(R)-N4(x)||(x<R?-1:1)),h="";for(let x of g){if(x!==""&&p.get(x).size===0){p.get(Pk(x)).delete(j4(x));continue}let R=[...p.get(x)].map(([A,W])=>`${W.mode} ${W.type} ${W.sha} ${A}`).join(`
|
|
74
|
+
`;)a++;else{let b=e.indexOf("*/",a+2);b<0&&c("unterminated /* comment"),a=b+2}else return}}function d(){let w=a;for(a++;;){a>=e.length&&c("unterminated string",w);let b=e.charCodeAt(a);if(b===34)break;b<32&&c("control character in a string; escape it",a),a+=b===92?2:1}a++;try{return JSON.parse(e.slice(w,a))}catch{return c("invalid escape in a string",w)}}function p(w){u(),r.set(w,a);let b=f(w);return o.set(w,a),b}function f(w){let b=e[a];if(b==="{")return g(w);if(b==="[")return h(w);if(b==='"')return d();for(let[$,x]of[["true",!0],["false",!1],["null",null]])if(e.startsWith($,a))return a+=$.length,x;let k=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(e.slice(a,a+64));return k?(a+=k[0].length,Number(k[0])):c(`expected a value, found ${l(a)}`)}function g(w){let b={},k=new Set;if(a++,u(),e[a]==="}")return a++,b;for(;;){u(),e[a]!=='"'&&c(`expected a quoted key, found ${l(a)}`);let $=a,x=d();k.has(x)&&c(`duplicate key ${JSON.stringify(x)}`,$),k.add(x);let R=`${w}/${Td(x)}`;if(s.set(R,$),u(),e[a]!==":"&&c(`expected ":" after key ${JSON.stringify(x)}, found ${l(a)}`),a++,Object.defineProperty(b,x,{value:p(R),enumerable:!0,writable:!0,configurable:!0}),u(),e[a]===","){if(a++,u(),e[a]==="}")return t.jsonc||c("trailing comma; only chant.workspace.jsonc allows one"),a++,b;continue}if(e[a]==="}")return a++,b;c(`expected "," or "}", found ${l(a)}`)}}function h(w){let b=[];if(a++,u(),e[a]==="]")return a++,b;for(;;){if(b.push(p(`${w}/${b.length}`)),u(),e[a]===","){if(a++,u(),e[a]==="]")return t.jsonc||c("trailing comma; only chant.workspace.jsonc allows one"),a++,b;continue}if(e[a]==="]")return a++,b;c(`expected "," or "]", found ${l(a)}`)}}try{u(),a>=e.length&&c("the file is empty");let w=p("");return u(),a<e.length&&c(`unexpected ${l(a)} after the value`),{ok:!0,value:w,locate(b,k){if(k&&s.has(b))return i(s.get(b));for(let $=b;;$=$.slice(0,$.lastIndexOf("/"))){let x=r.get($);if(x!==void 0)return i(x);if($==="")return i(0)}},span(b){let k=r.get(b),$=o.get(b);if(!(k===void 0||$===void 0))return{key:s.get(b)??null,start:k,end:$}}}}catch(w){if(!(w instanceof wk))throw w;return{ok:!1,message:w.message,location:i(w.offset)}}}var wk,Id=v(()=>{"use strict";wk=class extends Error{constructor(n,i){super(n);this.offset=i}}});function d4(){return"0.124.38"}var p4=v(()=>{"use strict"});var PI={};_e(PI,{CHANT_PACKAGE:()=>jd,DECLARATION_FILES:()=>Dd,DECLARATION_SCHEMA_ID:()=>_ye,DECLARATION_SCHEMA_VERSION:()=>Tye,DEFAULT_CI_WINDOW:()=>y4,DEFAULT_PUBLISH_BRANCH_PREFIX:()=>k4,DEFAULT_REPLICATE_REMOTE:()=>v4,DEFAULT_SHIP_ENV:()=>b4,DEFAULT_SHIP_GATE:()=>w4,DEFAULT_STATE_ROOT:()=>x4,DIAGRAM_TOOLS:()=>Nye,FACTORY_CHECK_KINDS:()=>Lye,NAME_PATTERN:()=>Iye,PRINCIPAL_CLASSES:()=>Dye,REPLICATE_REF_CLASSES:()=>RI,REPLICATE_TRIGGERS:()=>SI,RESERVED_NAMES:()=>h4,WORKSPACE_ERROR_CODES:()=>yi,WRITE_VERBS:()=>jye,WorkspaceReadError:()=>ve,boxServicesProblem:()=>O4,compareVersions:()=>$4,declaredDiagrams:()=>OI,declaredRecordKinds:()=>yr,extensionsAt:()=>ug,findDeclarationDir:()=>AI,isInside:()=>Nr,ownerOf:()=>A4,parseDeclaration:()=>S4,pinnedChant:()=>vk,readDeclaration:()=>_t,readerVersion:()=>en,resolveGroups:()=>Ta,rootExclusions:()=>kk});function en(){return f4??=d4(),f4}function $4(e,t){let n=EI.exec(e),i=EI.exec(t);if(!n||!i)throw new Error(`not a version: ${n?t:e}`);for(let r=1;r<=3;r++){let o=Number(n[r])-Number(i[r]);if(o!==0)return o}return n[4]===i[4]?0:n[4]===void 0?1:i[4]===void 0||n[4]<i[4]?-1:1}function Mye(){if(bk)return bk;let e=Pa();return bk=new e({allErrors:!0,strict:!0}).compile(K_),bk}function Fye(e,t){let n=/#\/\$defs\/([A-Za-z]+)\//.exec(e.schemaPath)?.[1];if(e.keyword==="pattern"){let i=JSON.stringify(t);return n==="name"&&typeof t=="string"&&h4.includes(t)?`${i} is reserved; pick another name`:n==="name"?`${i} is not a valid name: use lowercase letters, digits and hyphens, starting with a letter or digit, at most 40 characters`:n==="kindName"?`${i} is not a valid kind or role name`:n==="dir"?`${i} is not a directory inside the workspace: use a relative path with / separators, and no . or .. segments`:n==="path"?`${i} is not a path inside the member or workspace: use a relative path with / separators, and no . or .. segments`:n==="glob"?`${i} is not a glob inside the workspace: use a relative pattern with / separators, and no . or .. segments`:n==="version"?`${i} is not a version such as 1.2.3`:`${i} is not allowed here`}if(e.keyword==="additionalProperties")return`unknown field ${JSON.stringify(e.params.additionalProperty)}; only fields named x-... may be added`;if(e.keyword==="required"){let i=String(e.params.missingProperty);return i==="because"&&e.instancePath.endsWith("/handWritten")?'a hand-written generated file needs "because", saying why it is kept by hand':i==="because"?'a member of kind other needs "because", saying why it is there':`missing required field ${JSON.stringify(i)}`}return e.keyword==="const"&&e.instancePath==="/schema"?"schema must be 1, the only declaration format this chant reads":e.message??"is invalid"}function R4(e,t){let n=e;for(let i of t.split("/").slice(1)){let r=i.replace(/~1/g,"/").replace(/~0/g,"~");if(n===null||typeof n!="object")return;n=n[r]}return n}function vk(e){if(!Array.isArray(e.pins))return;let t=e.pins.findIndex(n=>n!==null&&typeof n=="object"&&n.package===jd&&typeof n.version=="string");return t<0?void 0:{version:e.pins[t].version,index:t}}function S4(e,t,n=en(),i={}){let r=_a(e,{jsonc:t.endsWith(".jsonc")});if(!r.ok)throw new ve("declaration-unparseable",r.message,{file:t,...r.location});let o=(j,N=!1)=>({file:t,...r.locate(j,N)}),s=r.value;if(s===null||typeof s!="object"||Array.isArray(s))throw new ve("declaration-invalid","the declaration must be a JSON object",o(""));let a=s,c=i.rootChant?vk(a):void 0;if(c&&c.version!==n)throw new ve("root-chant-required",`this declaration pins ${jd} ${c.version}, and this is chant ${n}; the root's chant reads it, so install ${jd}@${c.version} at the workspace root`,o(`/pins/${c.index}/version`));if(typeof a.minReader=="string"&&EI.test(a.minReader)&&$4(n,a.minReader)<0)throw new ve("reader-too-old",`this declaration needs chant ${a.minReader} or newer to read it, and this is chant ${n}`,o("/minReader"));let l=Mye();if(!l(s)){let j=(l.errors??[]).filter(ne=>!Gye.has(ne.keyword));j.sort((ne,be)=>be.instancePath.split("/").length-ne.instancePath.split("/").length);let N=j[0]??l.errors[0],C=N.keyword==="additionalProperties",T=C?`${N.instancePath}/${Td(String(N.params.additionalProperty))}`:N.instancePath,G=N.instancePath===""?"":` (at ${N.instancePath})`,ke=j.length>1?`; ${j.length-1} more problem${j.length>2?"s":""} after this one`:"";throw new ve("declaration-invalid",`${Fye(N,R4(s,N.instancePath))}${G}${ke}`,o(T,C))}let u=a.members.map((j,N)=>{let C=`/members/${N}`,T=(j.suppress??[]).map(te=>({check:te.check,because:te.because}));if(j.kind===yk){let te=j.glob;return{type:"group",name:j.name,kind:yk,globs:typeof te=="string"?[te]:[...te],suppress:T,pointer:C,globLocation:r.locate(`${C}/glob`)}}let G=(j.roles??[]).map(te=>typeof te=="string"?{name:te,path:null}:{name:te.name,path:te.path??null}),ke=(j.generated??[]).map((te,ye)=>({path:te.path,generator:te.generator,sources:[...te.sources??[]],handWritten:te.handWritten?{because:te.handWritten.because}:null,pointer:`${C}/generated/${ye}`})),ne=(j.links??[]).map((te,ye)=>({member:te.member,output:te.output,kind:te.kind??null,protocol:te.protocol??null,pointer:`${C}/links/${ye}`})),be=m4(j.records,j.dir,j.name,`${C}/records`),Be=g4(j.diagrams,j.name,`${C}/diagrams`),dt=Kye(j.box,`${C}/box`);return{type:"member",name:j.name,dir:j.dir,kind:j.kind,roles:G,generated:ke,outputs:j.outputs===void 0?null:[...j.outputs],fields:j.fields===void 0?null:structuredClone(j.fields),links:ne,records:be,diagrams:Be,box:dt,upstream:j.upstream??null,because:j.because??null,travel:j.travel===!0,security:[...j.security??[]],ciWorkflow:j.ci?.workflow??null,suppress:T,pointer:C}}),d=new Map;for(let j of u){let N=d.get(j.name);if(N)throw new ve("declaration-invalid",`the name ${JSON.stringify(j.name)} is already used by the entry at ${N.pointer}`,o(`${j.pointer}/name`));d.set(j.name,j)}let p=u.filter(j=>j.type==="member"),f=new Map;for(let j of p){let N=f.get(j.dir);if(N)throw new ve("placement-invalid",`member ${j.name} has the same directory as member ${N.name} (${j.dir})`,o(`${j.pointer}/dir`));f.set(j.dir,j)}for(let j of p){let N=p.find(C=>C!==j&&C.dir!=="."&&Nr(j.dir,C.dir));if(N)throw new ve("placement-invalid",`member ${j.name} (${j.dir}) sits inside member ${N.name} (${N.dir}); only the root member "." may contain other members`,o(`${j.pointer}/dir`))}for(let j of p){let N=new Map;for(let C of j.generated){let T=N.get(C.path);if(T)throw new ve("declaration-invalid",`member ${j.name} lists the generated file ${C.path} twice; the first is at ${T.pointer}`,o(`${C.pointer}/path`));N.set(C.path,C);let G=j.dir==="."?C.path:`${j.dir}/${C.path}`,ke=p.find(ne=>ne!==j&&ne.dir!=="."&&Nr(ne.dir,j.dir)&&Nr(G,ne.dir));if(ke)throw new ve("placement-invalid",`member ${j.name} lists the generated file ${C.path}, which sits inside member ${ke.name} (${ke.dir}); list it there`,o(`${C.pointer}/path`))}}let g=m4(a.records,".",null,"/records"),h=new Map,w=new Map;for(let j of[...g,...p.flatMap(N=>N.records)]){let N=h.get(j.path);if(N)throw new ve("declaration-invalid",`the record kind ${j.path} is already declared at ${N.pointer}`,o(`${j.pointer}/kind`));if(h.set(j.path,j),j.name===null)continue;let C=w.get(j.name);if(C)throw new ve("declaration-invalid",`the record kind name ${JSON.stringify(j.name)} is already given at ${C.pointer}`,o(`${j.pointer}/name`));w.set(j.name,j)}for(let j of p){let N=new Map;for(let T of j.box?.capabilities??[]){let G=N.get(T.name);if(G)throw new ve("declaration-invalid",`member ${j.name}'s box lists the capability ${T.name} twice; the first is at ${G.pointer}`,o(`${T.pointer}/name`));N.set(T.name,T)}let C=j.box?O4(j.name,j.box.services):null;if(C)throw new ve("declaration-invalid",C.message,o(C.pointer))}let b=Jye(p);if(b)throw new ve("declaration-invalid",b.message,o(b.pointer));let k=p.filter(j=>j.box?.replicate);if(k.length>1)throw new ve("declaration-invalid",`members ${k[0].name} and ${k[1].name} both declare replicate in their box block; a checkout's work in progress goes to one remote, so a workspace has one replicate policy`,o(k[1].box.replicate.pointer));let $=g4(a.diagrams,null,"/diagrams"),x=new Map;for(let j of[...$,...p.flatMap(N=>N.diagrams)]){let N=x.get(j.name);if(N)throw new ve("declaration-invalid",`the diagram name ${JSON.stringify(j.name)} is already used by the diagram at ${N.pointer}`,o(`${j.pointer}/name`));x.set(j.name,j)}let R=Xye(a,p,o),P=Wye(a.writeScope,p,o),I=Hye(a.agents,p,o),A=Zye(p,I);if(A)throw new ve("declaration-invalid",A.message,o(A.pointer));let W=Vye(a.ci,o),_=(a.pins??[]).map(j=>({package:j.package??null,version:j.version??null,path:j.path??null,integrity:j.integrity??null})),re={name:a.name,schema:a.schema,minReader:a.minReader??null,entries:u,members:p,groups:u.filter(j=>j.type==="group"),pins:_,checks:{...a.checks??{}},quorum:typeof a.quorum=="number"?a.quorum:null,records:g,diagrams:$,hosts:R,changes:qye(a.changes),writeScope:P,agents:I,identity:Bye(a.identity),ci:W,retention:Uye(a.retention),metrics:zye(a.metrics),security:[...a.security??[]],file:t};return E4.set(re,s),re}function ug(e,t){let n=R4(E4.get(e),t);return n===null||typeof n!="object"||Array.isArray(n)?{}:Object.fromEntries(Object.entries(n).filter(([i])=>i.startsWith("x-")))}function Wye(e,t,n){if(e===void 0)return null;let i=e,r={};for(let[o,s]of Object.entries(i)){let a=`/writeScope/${o}`,c=s.members===void 0||s.members==="*"?null:[...s.members];for(let[d,p]of(c??[]).entries())if(!t.some(f=>f.name===p))throw new ve("declaration-invalid",`writeScope.${o} names the member ${JSON.stringify(p)}, which the declaration does not declare; declared members: ${t.map(f=>f.name).join(", ")||"none"}`,n(`${a}/members/${d}`));let l=s.records===void 0?null:Object.fromEntries(Object.entries(s.records).map(([d,p])=>[d,[...p]])),u=(s.protected??[]).map(d=>typeof d=="string"?{path:d,except:[]}:{path:d.path,except:[...d.except??[]]});r[o]={members:c,records:l,protected:u,pointer:a}}return r}function Bye(e){if(e===void 0)return null;let t=e,n={};for(let[i,r]of Object.entries(t.gates??{}))n[i]={gate:i,class:r.class??null,pointer:`/identity/gates/${i.replace(/~/g,"~0").replace(/\//g,"~1")}`};return{attribution:t.attribution??"any",gates:n}}function zye(e){if(!e||typeof e!="object")return null;let t=e.failureWindowDays;return typeof t=="number"?{failureWindowDays:t}:{}}function Uye(e){if(!e||typeof e!="object")return null;let t={};for(let n of BV){let i=e[n];i&&(t[n]={...typeof i.days=="number"?{days:i.days}:{},...typeof i.keep=="number"?{keep:i.keep}:{}})}return t}function Vye(e,t){if(e===void 0)return null;let n=e,i=n.workflow!==void 0?{workflow:n.workflow}:{},r=null;if(n.reportUrl!==void 0){let a=zV(n.reportUrl,"ci.reportUrl");if("error"in a)throw new ve("declaration-invalid",a.error,t("/ci/reportUrl"));r=a.url}if(n.green===void 0)return{green:null,...i,reportUrl:r};let o=n.green,s=Object.entries(o.phases).map(([a,c])=>({name:a,runs:[...Array.isArray(c)?c:c.runs],skipped:Array.isArray(c)?"fail":c.skipped??"fail",...!Array.isArray(c)&&c.build!==void 0?{build:c.build}:{},pointer:`/ci/green/phases/${Td(a)}`}));for(let[a,c]of o.require.entries())if(!s.some(l=>l.name===c))throw new ve("declaration-invalid",`ci.green.require names the phase ${JSON.stringify(c)}, which ci.green.phases does not declare; declared phases: ${s.map(l=>l.name).join(", ")}`,t(`/ci/green/require/${a}`));for(let[a,c]of(o.preMerge??[]).entries())if(!s.some(l=>l.name===c))throw new ve("declaration-invalid",`ci.green.preMerge names the phase ${JSON.stringify(c)}, which ci.green.phases does not declare; declared phases: ${s.map(l=>l.name).join(", ")}`,t(`/ci/green/preMerge/${a}`));return{green:{branch:o.branch,window:o.window??y4,phases:s,require:[...o.require],...o.preMerge!==void 0?{preMerge:[...o.preMerge]}:{},signedSince:o.signedSince??null,source:o.source??"checks",pointer:"/ci/green"},...i,reportUrl:r}}function Hye(e,t,n){let i=(e??[]).map((s,a)=>{let c=s.members!==void 0?[...s.members]:[s.member];return{name:s.name,members:c,member:c[0],principals:[...s.principals??[]],pointer:`/agents/${a}`,listed:s.members!==void 0}}),r=new Map,o=new Map;for(let{listed:s,...a}of i){let c=r.get(a.name);if(c)throw new ve("declaration-invalid",`the agent name ${JSON.stringify(a.name)} is already used by the agent at ${c.pointer}`,n(`${a.pointer}/name`));r.set(a.name,a);for(let[l,u]of a.members.entries())if(!t.some(d=>d.name===u))throw new ve("declaration-invalid",`agent ${a.name} is bound to ${JSON.stringify(u)}, which is not a declared member; an agent session is bound to members, not an example group`,n(s?`${a.pointer}/members/${l}`:`${a.pointer}/member`));for(let[l,u]of a.principals.entries()){let d=o.get(u);if(d)throw new ve("declaration-invalid",`the principal ${JSON.stringify(u)} is already listed by agent ${d.name}`,n(`${a.pointer}/principals/${l}`));o.set(u,a)}}return[...r.values()]}function qye(e){return e===void 0?null:{severity:e.severity??"warn",ignore:[...e.ignore??[]]}}function m4(e,t,n,i){return(e??[]).map((r,o)=>({kind:r.kind,path:t==="."?r.kind:`${t}/${r.kind}`,name:r.name??null,member:n,pointer:`${i}/${o}`}))}function g4(e,t,n){return(e??[]).map((i,r)=>({name:i.name,title:i.title,source:i.source??null,render:i.render??null,renderer:{tool:i.renderer.tool,version:i.renderer.version,args:[...i.renderer.args??[]]},sourceHash:i.sourceHash??null,member:t,pointer:`${n}/${r}`}))}function Kye(e,t){if(e===void 0)return null;let n=e,i=n.factory,r=n.listing,o=n.replicate;return{capabilities:(n.capabilities??[]).map((s,a)=>({name:s.name,broker:s.broker??null,scope:[...s.scope??[]],pointer:`${t}/capabilities/${a}`})),isolation:n.host===void 0?null:{host:n.host,slot:n.slot,ports:{...n.ports??{}},state:{...n.state??{}},cookies:[...n.cookies??[]]},intent:n.intent??null,services:(n.services??[]).map((s,a)=>({name:s.name,cmd:s.cmd,needs:[...s.needs??[]],httpPort:s.httpPort??null,duration:s.duration??null,health:s.health??null,optional:s.optional??!1,pointer:`${t}/services/${a}`})),factory:i===void 0?null:{builds:[...i.builds],check:i.check===void 0?null:typeof i.check=="string"?{run:i.check,kind:"test"}:{run:i.check.run,kind:i.check.kind??"test"},checks:i.checks??null,builders:i.builders??null,tiers:(i.tiers??[]).map(s=>({tier:s.tier,agent:s.agent,kinds:s.kinds===void 0?null:[...s.kinds],session:s.session??null})),publish:i.publish===void 0?null:{forge:i.publish.forge??"github",repo:i.publish.repo,base:i.publish.base??null,branchPrefix:i.publish.branchPrefix??k4,head:i.publish.head??null},pointer:`${t}/factory`},listing:r===void 0?null:{published:r.published??!0,title:r.title??"",line:r.line??"",cover:r.cover??null},publisher:n.publisher??null,ship:n.ship===void 0?null:{op:n.ship.op,gate:n.ship.gate??w4,env:n.ship.env??b4,bookkeeping:(n.ship.bookkeeping??[]).map(s=>s.replace(/^\.\//,"").replace(/\/+$/,"")),pointer:`${t}/ship`},replicate:o===void 0?null:{remote:o.remote??v4,refs:RI.filter(s=>(o.refs??RI).includes(s)),on:SI.filter(s=>(o.on??SI).includes(s)),every:o.every??null,pointer:`${t}/replicate`},pointer:t}}function Jye(e){let t=e.filter(s=>s.box?.factory);if(t.length>1)return{message:`members ${t[0].name} and ${t[1].name} both declare a factory in their box block; a workspace has one factory, so an orchestrator reads one`,pointer:t[1].box.factory.pointer};let n=t[0]?.box?.factory;if(!n)return null;let i=()=>e.map(s=>s.name).join(", "),r=n.builds.findIndex(s=>!e.some(a=>a.name===s));if(r>=0)return{message:`the factory builds ${JSON.stringify(n.builds[r])}, which is not a declared member; declared members: ${i()}`,pointer:`${n.pointer}/builds/${r}`};if(n.builders!==null&&!e.some(s=>s.name===n.builders))return{message:`the factory's builders names ${JSON.stringify(n.builders)}, which is not a declared member; declared members: ${i()}`,pointer:`${n.pointer}/builders`};if(n.tiers.length>0&&n.builders===null)return{message:"the factory declares tiers and no builders; tiers name agents the builders member declares, so name it",pointer:`${n.pointer}/tiers`};let o=new Map;for(let[s,a]of n.tiers.entries())for(let c of a.kinds??[null]){let l=`${a.tier}\0${c??""}`,u=o.get(l);if(u!==void 0){let d=c===null?"with no kinds":`for kind ${c}`;return{message:`tiers/${u} and tiers/${s} both name a builder at tier ${a.tier} ${d}; a tier has one builder per kind, so one entry answers it`,pointer:`${n.pointer}/tiers/${s}`}}o.set(l,s)}return null}function Zye(e,t){let n=e.find(i=>i.box?.factory)?.box?.factory;if(!n)return null;for(let[i,r]of n.tiers.entries())if(r.session!==null&&!t.some(o=>o.name===r.session)){let o=t.map(s=>s.name).join(", ")||"none";return{message:`tiers/${i} names the session ${JSON.stringify(r.session)}, which is not a declared agent session; declared sessions: ${o}`,pointer:`${n.pointer}/tiers/${i}/session`}}return null}function O4(e,t){let n=new Map;for(let o of t){let s=n.get(o.name);if(s)return{message:`member ${e}'s box declares the service ${o.name} twice; the first is at ${s.pointer}`,pointer:`${o.pointer}/name`};n.set(o.name,o)}let i;for(let o of t)if(o.httpPort!==null){if(i)return{message:`member ${e}'s box gives both ${i.name} (port ${i.httpPort}) and ${o.name} (port ${o.httpPort}) an httpPort, and the supervisor routes the sprite's URL to one service`,pointer:`${o.pointer}/httpPort`};i=o}for(let o of t){let s=o.needs.findIndex(a=>!n.has(a));if(s>=0){let a=t.map(c=>c.name).join(", ");return{message:`member ${e}'s box service ${o.name} needs ${JSON.stringify(o.needs[s])}, which the block does not declare; declared services: ${a}`,pointer:`${o.pointer}/needs/${s}`}}}let r=Yye(t);if(r){let o=n.get(r[0]);return{message:`member ${e}'s box services need each other in a cycle: ${r.join(" -> ")}`,pointer:`${o.pointer}/needs`}}return null}function Yye(e){let t=new Map(e.map(r=>[r.name,r])),n=new Map,i=(r,o)=>{let s=n.get(r);if(s==="done")return null;if(s==="visiting")return[...o.slice(o.indexOf(r)),r];n.set(r,"visiting");for(let a of t.get(r)?.needs??[]){let c=i(a,[...o,r]);if(c)return c}return n.set(r,"done"),null};for(let r of e){let o=i(r.name,[]);if(o)return o}return null}function Xye(e,t,n){let i=(e.hosts??[]).map((s,a)=>({name:s.name,ports:{...s.ports},stateRoot:s.stateRoot??null,pointer:`/hosts/${a}`})),r=(s,a)=>new ve("declaration-invalid",s,n(a)),o=new Map;for(let s of i){let a=o.get(s.name);if(a)throw r(`the host name ${JSON.stringify(s.name)} is already used by the host at ${a.pointer}`,`${s.pointer}/name`);if(o.set(s.name,s),s.ports.from>s.ports.to)throw r(`host ${s.name}'s port range starts at ${s.ports.from}, after its end ${s.ports.to}`,`${s.pointer}/ports`)}for(let s of t){let a=s.box?.isolation;if(!a)continue;let c=s.box.pointer,l=o.get(a.host);if(!l){let g=i.map(h=>h.name).join(", ")||"none are declared";throw r(`member ${s.name}'s box names the host ${JSON.stringify(a.host)}, which hosts does not declare; declared hosts: ${g}`,`${c}/host`)}let{from:u,to:d,perBox:p}=l.ports,f=u+(a.slot+1)*p-1;if(f>d){let g=Math.floor((d-u+1)/p);throw r(`member ${s.name}'s box has slot ${a.slot} on host ${l.name}, which needs ports ${u+a.slot*p} to ${f}, past the end of the host's range (${d}); the range holds ${g} slot${g===1?"":"s"}`,`${c}/slot`)}for(let[g,h]of Object.entries(a.ports))if(h>=p)throw r(`member ${s.name}'s box gives port ${g} offset ${h}, and host ${l.name} gives each box ${p} port${p===1?"":"s"} (offsets 0 to ${p-1})`,`${c}/ports/${Td(g)}`)}return i}function yr(e){return[...e.records,...e.members.flatMap(t=>t.records)]}function OI(e){return[...e.diagrams,...e.members.flatMap(t=>t.diagrams)]}function Nr(e,t){return t==="."?!0:e===t||e.startsWith(`${t}/`)}function _t(e,t="",n={}){let i=Dd.map(r=>qe(t,r)).filter(r=>e.stat(r)==="file");if(i.length===0)throw new ve("declaration-missing",`no ${Dd.join(" or ")} in ${t||"the workspace root"}${e.label}`);if(i.length>1)throw new ve("declaration-ambiguous",`both ${i.join(" and ")} exist${e.label}; keep one of them`,{file:i[1],line:1,column:1});return S4(e.read(i[0]),i[0],en(),n)}function AI(e,t){for(let n=t;;n=n.includes("/")?n.slice(0,n.lastIndexOf("/")):""){if(Dd.some(i=>e.stat(qe(n,i))==="file"))return n;if(n==="")return}}function Ta(e,t){let n=o=>({file:e.file,...o.globLocation}),i=new Map,r=[];for(let o of e.groups){let s=[...new Set(o.globs.flatMap(l=>ZV(t,l)))].sort(),a=[],c=[];for(let l of s){if(!kI(t,l)){c.push(l);continue}let u=p=>new ve("placement-invalid",`group ${o.name} matches ${l}, ${p}`,n(o));for(let p of e.members)if(p.dir!=="."){if(p.dir===l)throw u(`which is member ${p.name}'s directory; a match is never a member`);if(Nr(p.dir,l))throw u(`which contains member ${p.name} (${p.dir})`);if(p.kind==="workspace"&&Nr(l,p.dir))throw u(`which sits inside the nested workspace ${p.name}; that workspace declares its own examples`)}let d=i.get(l);if(d)throw u(`which group ${d.name} also matches`);i.set(l,o),a.push(l)}r.push({group:o,matches:a,skipped:c})}return r}function A4(e,t,n){for(let r of t){let o=r.matches.find(s=>Nr(n,s));if(o)return{group:r.group,match:o}}let i;for(let r of e.members)Nr(n,r.dir)&&(!i||i.dir==="."||r.dir!=="."&&r.dir.length>i.dir.length)&&(i=r);return i?{member:i}:void 0}function kk(e,t){let n=[];for(let i of e.members)i.dir!=="."&&n.push({dir:i.dir,owner:i.name});for(let i of t)for(let r of i.matches)e.members.some(o=>o.dir!=="."&&Nr(r,o.dir))||n.push({dir:r,owner:i.group.name});return n.sort((i,r)=>i.dir<r.dir?-1:i.dir>r.dir?1:0)}var _ye,Dd,Tye,h4,Iye,yi,ve,Dye,jye,y4,Nye,w4,b4,RI,SI,v4,Lye,k4,x4,jd,f4,EI,bk,Gye,E4,Tt=v(()=>{"use strict";q_();UV();VV();YV();qi();Id();on();lg();p4();_ye=K_.$id,Dd=["chant.workspace.json","chant.workspace.jsonc"],Tye=1,h4=["_workspace","_members"],Iye=/^[a-z0-9][a-z0-9-]{0,39}$/,yi=["declaration-missing","declaration-ambiguous","declaration-unparseable","declaration-invalid","placement-invalid","reader-too-old","root-chant-required","not-a-git-repository","revision-unknown"],ve=class extends Error{constructor(n,i,r){super(i);this.code=n;this.location=r;this.name="WorkspaceReadError"}describe(){let n=this.location;return n?`${n.file}:${n.line}:${n.column}: ${this.message}`:this.message}},Dye=["human","agent","runner","service"],jye=["new","amend","review","close"],y4="24h",Nye=["d2","mermaid","graphviz","excalidraw"],w4="ship",b4="box",RI=["work","kept","wip","ledger"],SI=["save","release"],v4="origin",Lye=["test","build","lint","plan","conformance"],k4="chant/work/",x4="${XDG_STATE_HOME}/chant/boxes",jd="@intentius/chant";EI=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?$/;Gye=new Set(["if","then","else","oneOf","anyOf"]);E4=new WeakMap});var _4={};_e(_4,{MEMBERS_DIR:()=>Rk,MEMBER_LEDGER_FLOOR:()=>owe,MemberLedgerError:()=>$k,clearMemberLedgerCache:()=>swe,memberLedgerPrefix:()=>Sk,resolveMemberLedger:()=>Xr});import{existsSync as Qye}from"node:fs";import{dirname as ewe,join as twe,relative as nwe,resolve as rwe,sep as iwe}from"node:path";function Sk(e){return e.map(t=>`${Rk}/${t}/`).join("")}function Xr(e){let t=rwe(e),n=xk.get(t);return n||(n=cwe(t),xk.set(t,n),n.catch(()=>xk.delete(t))),n}function swe(){xk.clear()}function awe(e,t){let n=nwe(e,t);return n===""?"":n.split(iwe).join("/")}async function cwe(e){let t=tr(e);return t?C4(t.dir,e):P4}async function C4(e,t){let{readDeclaration:n,resolveGroups:i,ownerOf:r,WorkspaceReadError:o}=await Promise.resolve().then(()=>(Tt(),PI)),{workingTree:s}=await Promise.resolve().then(()=>(on(),Z_)),a;try{let d=s(e),p=n(d),f=r(p,i(p,d),awe(e,t));a=f&&"member"in f&&f.member.dir!=="."?[f.member.name]:[]}catch(d){throw d instanceof o?new $k(`cannot place this project's lifecycle ledger: ${d.describe()}. A project inside a workspace writes under ${Rk}/<member>/ on chant/lifecycle, and chant does not guess the member. Fix the declaration and retry.`):d}let c=P4,l=ewe(e);if(l!==e&&!Qye(twe(e,".git"))){let d=tr(l);d&&(c=await C4(d.dir,e))}let u=[...c.members,...a];return{members:u,prefix:Sk(u)}}var Rk,owe,P4,$k,xk,Io=v(()=>{"use strict";Mi();Rk="_members",owe="0.81.0",P4={members:[],prefix:""};$k=class extends Error{constructor(t){super(t),this.name="MemberLedgerError"}},xk=new Map});function dg(e){return e===Nd}var Nd,pg=v(()=>{"use strict";Nd="recorded locally (no remote for chant/lifecycle)"});function Ki(e=process.env){let t=e[Ek]?.trim().toLowerCase();return t!==void 0&&t!==""&&t!=="0"&&t!=="false"}function fg(e){return CI.get(e)?.tip}function T4(e,t,n,i){let r=CI.get(e)??{tip:null,writes:[]};r.tip=t;for(let o of n)r.writes.push({path:o,message:i});CI.set(e,r)}function Ok(e,t){if(Ki())throw new _I(e,t)}var Ek,TI,CI,_I,Ld=v(()=>{"use strict";Ek="CHANT_NO_RECORD";TI="not recorded (--no-record): chant/lifecycle was not written or pushed",CI=new Map;_I=class extends Error{constructor(n,i){super(`gate "${i}" of "${n}" cannot be passed under --no-record: a gate is decided and approved on chant/lifecycle, which this run does not write. Run without --no-record (and without CHANT_NO_RECORD) to stop at the gate for approval.`);this.op=n;this.gate=i;this.name="GateNotRecordableError"}}});var WI={};_e(WI,{LifecycleLedgerUnreadableError:()=>gg,RefCASConflictError:()=>Ot,StaleLifecycleBranchError:()=>mg,StaleLockError:()=>ml,appendLedgerLine:()=>W4,appendReleaseRecordLine:()=>jI,deleteRefCAS:()=>Gd,describeLifecyclePush:()=>MI,fetchLifecycle:()=>ywe,fetchLifecycleStatus:()=>Yi,fetchRef:()=>kwe,fetchRefInto:()=>H4,fetchRefIntoStatus:()=>Ck,getHeadCommit:()=>_k,getRemoteLifecycleBranchSha:()=>B4,gitLedgerReadPort:()=>$we,ledgerDir:()=>qn,ledgerRevision:()=>Wd,listFilesInDir:()=>Zi,listLedgerEnvironments:()=>LI,listLedgerTrees:()=>hg,listSnapshots:()=>hwe,pushLifecycle:()=>Md,pushLifecycleReport:()=>Da,pushLifecycleStatus:()=>Ia,pushRef:()=>vwe,pushRefStatus:()=>yg,readBlobBySha:()=>hn,readBlobFromPath:()=>At,readEnvironmentSnapshots:()=>gwe,readPathSha:()=>gn,readRefSha:()=>ja,readReleaseLedgerLines:()=>NI,readSnapshot:()=>G4,readSnapshotAt:()=>mwe,requireLifecycleLedger:()=>Lr,snapshotStorageKey:()=>M4,updateRefCAS:()=>Fd,writeBlob:()=>FI,writeBlobToPath:()=>mn,writeLedgerFiles:()=>Ji,writeSnapshot:()=>F4});async function qn(e,t){return`${await lwe(t)}${e}`}async function lwe(e){return e?.ledgerPrefix!==void 0?e.ledgerPrefix:e?.member!==void 0?Sk((typeof e.member=="string"?[e.member]:[...e.member]).filter(t=>t!==".")):(await Xr(e?.cwd??process.cwd())).prefix}async function pwe(e){let t=bt();if((await t.spawn(["git","var","GIT_COMMITTER_IDENT"],{cwd:e,env:wi})).exitCode===0)return[];let i=[];for(let[r,o,s]of[["user.name","CHANT_LIFECYCLE_COMMITTER_NAME",uwe],["user.email","CHANT_LIFECYCLE_COMMITTER_EMAIL",dwe]]){let a=await t.spawn(["git","config","--get",r],{cwd:e,env:wi});a.exitCode===0&&a.stdout.trim()!==""||i.push("-c",`${r}=${process.env[o]?.trim()||s}`)}return i}function II(e,t,n){return new Error(`cannot write ${t} on the ${Nt} branch: ${e} failed: ${(n??"").trim()}`)}async function mn(e,t,n,i,r){let o=await qn(e,r);return Ji([{path:`${o}/${t}`,content:n,...r?.expectPriorPathSha!==void 0?{expectPriorSha:r.expectPriorPathSha}:{}}],i,r)}async function Ji(e,t,n){let i=bt(),r=n?.cwd;if(e.length===0)throw new Error("writeLedgerFiles needs at least one file");let o=e[0].path;for(let u of e){let d=u.path.split("/");if(d.length<2||d.some(p=>p===""))throw new Error(`cannot write ${u.path} on the ${Nt} branch: a ledger path is <dir>/<file>`)}let s=[];for(let u of e){if(fwe(u)){s.push({path:u.path,sha:null});continue}let d=await i.spawn(["git","hash-object","-w","--stdin"],{cwd:r,stdin:u.content});if(d.exitCode!==0)throw II("git hash-object",u.path,d.stderr);s.push({path:u.path,sha:d.stdout.trim()})}let a=await pwe(r);await gl(r)===null&&await Lr({...r?{cwd:r}:{}});let c=new Map(e.map(u=>[u.path,u.expectPriorSha])),l;for(let u=1;u<=L4;u++){let d=await gl(r);if(n?.expectTip!==void 0&&d!==n.expectTip)throw new Ot(`refs/heads/${Nt}`,n.expectTip,`the branch moved to ${d??"(none)"} since it was read`);let p=new Map,f=async x=>{let R=p.get(x);return R||(R=d?await xwe(d,x,r):new Map,p.set(x,R)),R};for(let x of s){let{dir:R,name:P}=D4(x.path),I=(await f(R)).get(P),A=I?.type==="blob"?I.sha:null,W=c.get(x.path);if(W!==void 0&&A!==W)throw l??new Ot(`refs/heads/${Nt}`,W,"target path changed concurrently");c.set(x.path,A)}for(let x of s){let{dir:R,name:P}=D4(x.path);x.sha===null?(await f(R)).delete(P):(await f(R)).set(P,{mode:"100644",type:"blob",sha:x.sha});for(let I=R;I!=="";I=Pk(I))await f(Pk(I))}let g=[...p.keys()].sort((x,R)=>N4(R)-N4(x)||(x<R?-1:1)),h="";for(let x of g){if(x!==""&&p.get(x).size===0){p.get(Pk(x)).delete(j4(x));continue}let R=[...p.get(x)].map(([A,W])=>`${W.mode} ${W.type} ${W.sha} ${A}`).join(`
|
|
75
75
|
`),P=await i.spawn(["git","mktree"],{cwd:r,stdin:R===""?"":`${R}
|
|
76
76
|
`});if(P.exitCode!==0)throw II(`git mktree (${x===""?"root":x})`,o,P.stderr);let I=P.stdout.trim();x===""?h=I:p.get(Pk(x)).set(j4(x),{mode:"040000",type:"tree",sha:I})}let w=d,b=w?["-p",w]:[],k=await i.spawn(["git",...a,"commit-tree",...b,"-m",t,h],{cwd:r});if(k.exitCode!==0)throw II("git commit-tree",o,k.stderr);let $=k.stdout.trim();if(Ki()){let x=await GI(r),R=fg(x)===void 0?await ja(`refs/heads/${Nt}`,{cwd:r}):null,P=fg(x),I=P!==void 0?P:R;if(I===w)return T4(x,$,e.map(A=>A.path),t),$;l=new Ot(`refs/heads/${Nt}`,w,`the run's unrecorded tip is ${I??"(none)"}`);continue}try{return await Fd(`refs/heads/${Nt}`,$,w,{cwd:r}),$}catch(x){if(!(x instanceof Ot))throw x;l=x}}throw l}async function At(e,t,n){let i=bt(),r=await qn(e,n),o=await i.spawn(["git","show",`${await Wd(n?.cwd)}:${r}/${t}`],{cwd:n?.cwd});return o.exitCode!==0?null:o.stdout}async function gn(e,t,n){let i=bt(),r=await qn(e,n),o=await i.spawn(["git","rev-parse","--verify",`${await Wd(n?.cwd)}:${r}/${t}`],{cwd:n?.cwd});return o.exitCode!==0?null:o.stdout.trim()||null}function M4(e,t){return t?`${t}__${e}`:e}async function F4(e,t,n,i){return mn(e,`${t}.json`,n,"State snapshot",i)}async function G4(e,t,n){return At(e,`${t}.json`,n)}async function mwe(e,t,n,i){let r=bt(),o=await qn(e,i),s=await r.spawn(["git","show",`${n}:${o}/${t}.json`],{cwd:i?.cwd});return s.exitCode!==0?null:s.stdout}async function jI(e,t,n){return W4(e,"releases.jsonl",t,"Release record",n)}async function W4(e,t,n,i,r){let o;for(let s=1;s<=L4;s++)try{let a=await gn(e,t,r),c=a?await hn(a,r):null,l=`${c?`${c.replace(/\n$/,"")}
|
|
77
77
|
`:""}${n}
|
package/package.json
CHANGED
|
@@ -612,6 +612,7 @@ export async function runComponentsStatus(ctx: CommandContext): Promise<number>
|
|
|
612
612
|
if (!statusParams) return 1;
|
|
613
613
|
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), targetSerializers, undefined, {
|
|
614
614
|
buildParams: statusParams,
|
|
615
|
+
config: config as unknown as Record<string, unknown>,
|
|
615
616
|
});
|
|
616
617
|
// Which deployed stack(s) to read the change set from (behold#100).
|
|
617
618
|
//
|
|
@@ -1138,6 +1138,7 @@ describe("runGraph", () => {
|
|
|
1138
1138
|
expect(exit).toBe(0);
|
|
1139
1139
|
expect(observeMock).toHaveBeenCalledWith("prod", expect.anything(), expect.anything(), {
|
|
1140
1140
|
owned: true,
|
|
1141
|
+
config: {},
|
|
1141
1142
|
stacks: [],
|
|
1142
1143
|
});
|
|
1143
1144
|
});
|
|
@@ -1260,6 +1261,7 @@ describe("runGraph", () => {
|
|
|
1260
1261
|
expect(exit).toBe(0);
|
|
1261
1262
|
expect(observeMock).toHaveBeenCalledWith("prod", expect.anything(), expect.anything(), {
|
|
1262
1263
|
owned: true,
|
|
1264
|
+
config: {},
|
|
1263
1265
|
stacks: [],
|
|
1264
1266
|
});
|
|
1265
1267
|
expect(stderrBuf.join("\n")).toMatch(/component discovery failed/i);
|
|
@@ -1449,6 +1451,21 @@ describe("runGraph", () => {
|
|
|
1449
1451
|
expect(options.buildRoots).toHaveLength(1);
|
|
1450
1452
|
});
|
|
1451
1453
|
|
|
1454
|
+
test("--live hands the project config to build() and observeResources() (#4252)", async () => {
|
|
1455
|
+
// gcp.project reaches the live read only as the annotation the serializer
|
|
1456
|
+
// writes from config, so a build without config left every read with no project.
|
|
1457
|
+
resolveLexMock.mockResolvedValue(["k8s"]);
|
|
1458
|
+
loadPluginsMock.mockResolvedValue([k8sPluginStub()]);
|
|
1459
|
+
loadChantConfigMock.mockResolvedValue({ config: { lexicons: ["gcp"], gcp: { project: "three-cloud" } } });
|
|
1460
|
+
observeMock.mockResolvedValue({ observations: [], errors: [], warnings: [] });
|
|
1461
|
+
const exit = await runGraph({ args: makeArgs({ format: "ir", live: true, env: "kcheck" }), plugins: [], serializers: [] });
|
|
1462
|
+
expect(exit).toBe(0);
|
|
1463
|
+
const [, , , options] = buildMock.mock.calls[0] as [string, unknown, unknown, { config?: { gcp?: { project?: string } } }];
|
|
1464
|
+
expect(options.config?.gcp?.project).toBe("three-cloud");
|
|
1465
|
+
const [, , , observeOpts] = observeMock.mock.calls[0] as [string, unknown, unknown, { config?: { gcp?: { project?: string } } }];
|
|
1466
|
+
expect(observeOpts.config?.gcp?.project).toBe("three-cloud");
|
|
1467
|
+
});
|
|
1468
|
+
|
|
1452
1469
|
test("--live --overlay classifies an observed rendered node as managed, not foreign", async () => {
|
|
1453
1470
|
resolveLexMock.mockResolvedValue(["k8s"]);
|
|
1454
1471
|
loadPluginsMock.mockResolvedValue([k8sPluginStub()]);
|
|
@@ -270,7 +270,9 @@ async function runGraphLive(
|
|
|
270
270
|
resolve(args.src ?? config.sourceDir ?? "."),
|
|
271
271
|
plugins.map((p) => p.serializer),
|
|
272
272
|
undefined,
|
|
273
|
-
|
|
273
|
+
// #4252: the serializers read lexicon settings from config (gcp.project
|
|
274
|
+
// becomes each resource's project annotation, which the live read takes).
|
|
275
|
+
{ buildParams: liveBuildParams, buildRoots, config: config as unknown as Record<string, unknown> },
|
|
274
276
|
);
|
|
275
277
|
if (buildResult.errors.length > 0) {
|
|
276
278
|
console.error(formatError({ message: "Build failed — fix errors before graphing live state" }));
|
|
@@ -342,6 +344,7 @@ async function runGraphLive(
|
|
|
342
344
|
} else {
|
|
343
345
|
const observeResult = await observeResources(environment, observing, buildResult, {
|
|
344
346
|
owned: true,
|
|
347
|
+
config: config as unknown as Record<string, unknown>,
|
|
345
348
|
stacks: [...stacks],
|
|
346
349
|
// `--namespace <ns>` (#1629): where to read entities that declare no
|
|
347
350
|
// namespace. One project declaring the GitOps binding and another
|
|
@@ -164,7 +164,7 @@ export async function runLifecycleSnapshot(ctx: CommandContext): Promise<number>
|
|
|
164
164
|
const buildRoots = collectBuildRootContributors(targetPlugins, config as unknown as Record<string, unknown>, projectPath);
|
|
165
165
|
for (const target of targets) {
|
|
166
166
|
const label = target.stack ? `stack "${target.stack}"` : "project";
|
|
167
|
-
const buildResult = await build(target.root, targetSerializers, undefined, { buildParams: declaredParams, buildRoots });
|
|
167
|
+
const buildResult = await build(target.root, targetSerializers, undefined, { buildParams: declaredParams, buildRoots, config: config as unknown as Record<string, unknown> });
|
|
168
168
|
if (buildResult.errors.length > 0) {
|
|
169
169
|
console.error(formatError({ message: `Build failed for ${label} — fix errors before taking a snapshot` }));
|
|
170
170
|
anyHardError = true;
|
|
@@ -1257,6 +1257,7 @@ export async function runLifecyclePlan(ctx: CommandContext): Promise<number> {
|
|
|
1257
1257
|
const buildResult = await build(resolveBuildRoot(args, config), targetSerializers, undefined, {
|
|
1258
1258
|
buildParams: declaredParams,
|
|
1259
1259
|
buildRoots: collectBuildRootContributors(plugins, config as unknown as Record<string, unknown>, resolve(".")),
|
|
1260
|
+
config: config as unknown as Record<string, unknown>,
|
|
1260
1261
|
});
|
|
1261
1262
|
if (buildResult.errors.length > 0) {
|
|
1262
1263
|
console.error(formatError({ message: "Build failed — fix errors before planning" }));
|
|
@@ -70,6 +70,7 @@ export async function runScenarioCheck(ctx: CommandContext): Promise<number> {
|
|
|
70
70
|
const buildResult = await build(resolveBuildRoot(args, config), serializers, undefined, {
|
|
71
71
|
buildParams: declaredParams,
|
|
72
72
|
buildRoots: collectBuildRootContributors(plugins, config as unknown as Record<string, unknown>, resolve(".")),
|
|
73
|
+
config: config as unknown as Record<string, unknown>,
|
|
73
74
|
});
|
|
74
75
|
if (buildResult.errors.length > 0) {
|
|
75
76
|
console.error(formatError({ message: "Build failed — fix errors before checking scenarios" }));
|
|
@@ -134,7 +134,9 @@ export async function runSearch(ctx: CommandContext): Promise<number> {
|
|
|
134
134
|
return 1;
|
|
135
135
|
}
|
|
136
136
|
const plugins = ctx.plugins.length > 0 ? ctx.plugins : await loadPlugins(await resolveProjectLexicons(projectPath));
|
|
137
|
-
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer)
|
|
137
|
+
const buildResult = await build(resolve(args.src ?? config.sourceDir ?? "."), plugins.map((p) => p.serializer), undefined, {
|
|
138
|
+
config: config as unknown as Record<string, unknown>,
|
|
139
|
+
});
|
|
138
140
|
if (buildResult.errors.length > 0) {
|
|
139
141
|
console.error(formatError({ message: "Build failed — fix errors before searching live state" }));
|
|
140
142
|
return 1;
|
|
@@ -9,8 +9,10 @@ import type { BuildResult } from "../build";
|
|
|
9
9
|
// whose src is scoped reports BARE entity names, matching the deployed
|
|
10
10
|
// LogicalResourceIds, not the whole-project build's disambiguated names.
|
|
11
11
|
const scopedBuilds: Record<string, string[]> = {};
|
|
12
|
+
const scopedBuildOptions: Array<{ src: string; options: unknown }> = [];
|
|
12
13
|
vi.mock("../build", () => ({
|
|
13
|
-
build: async (src: string): Promise<BuildResult> => {
|
|
14
|
+
build: async (src: string, _serializers?: unknown, _x?: unknown, options?: unknown): Promise<BuildResult> => {
|
|
15
|
+
scopedBuildOptions.push({ src, options });
|
|
14
16
|
const names = scopedBuilds[src] ?? [];
|
|
15
17
|
return {
|
|
16
18
|
outputs: new Map<string, string>([["aws", "{}"]]),
|
|
@@ -284,6 +286,17 @@ describe("observeResources", () => {
|
|
|
284
286
|
expect(observations[0].resources["west::server"].physicalId).toBe("i-west");
|
|
285
287
|
});
|
|
286
288
|
|
|
289
|
+
it("hands the project config to each stack's scoped build (#4252)", async () => {
|
|
290
|
+
scopedBuildOptions.length = 0;
|
|
291
|
+
const plugins = [awsPlugin(() => ({}))];
|
|
292
|
+
await observeResources("floci", plugins, mockBuild(), {
|
|
293
|
+
stacks: [{ name: "gcp-net", src: "gcp-net/src" }],
|
|
294
|
+
config: { gcp: { project: "three-cloud" } },
|
|
295
|
+
});
|
|
296
|
+
const call = scopedBuildOptions.find((c) => c.src.endsWith("gcp-net/src"));
|
|
297
|
+
expect(call?.options).toEqual({ config: { gcp: { project: "three-cloud" } } });
|
|
298
|
+
});
|
|
299
|
+
|
|
287
300
|
it("with an empty stacks array — falls back to the single unstacked call", async () => {
|
|
288
301
|
const calls: Array<{ stack?: string }> = [];
|
|
289
302
|
const plugins = [
|
package/src/lifecycle/observe.ts
CHANGED
|
@@ -104,6 +104,9 @@ export async function observeResources(
|
|
|
104
104
|
* Passed through to every lexicon's `describeResources`; one that has no
|
|
105
105
|
* namespace-like scope ignores it. */
|
|
106
106
|
namespace?: string;
|
|
107
|
+
/** The project configuration, handed to a stack's scoped build so its
|
|
108
|
+
* serializers see lexicon settings such as gcp's `gcp.project` (#4252). */
|
|
109
|
+
config?: Record<string, unknown>;
|
|
107
110
|
},
|
|
108
111
|
): Promise<ObserveResult> {
|
|
109
112
|
const owned = opts?.owned ?? true;
|
|
@@ -119,7 +122,7 @@ export async function observeResources(
|
|
|
119
122
|
const key = resolvePath(src);
|
|
120
123
|
let r = scopedBuildCache.get(key);
|
|
121
124
|
if (!r) {
|
|
122
|
-
r = await buildProject(key, serializers);
|
|
125
|
+
r = await buildProject(key, serializers, undefined, opts?.config ? { config: opts.config } : undefined);
|
|
123
126
|
scopedBuildCache.set(key, r);
|
|
124
127
|
}
|
|
125
128
|
return r;
|