@xemahq/xema 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/commands/edition.d.ts.map +1 -1
  2. package/dist/commands/edition.js +8 -7
  3. package/dist/commands/edition.js.map +1 -1
  4. package/dist/edition/verify-image-evidence.bundle.mjs +88 -11
  5. package/dist/edition/verify-image-evidence.bundle.provenance.json +48 -42
  6. package/dist/runtime/edition/verb-map.d.ts +2 -1
  7. package/dist/runtime/edition/verb-map.d.ts.map +1 -1
  8. package/dist/runtime/edition/verb-map.js +2 -0
  9. package/dist/runtime/edition/verb-map.js.map +1 -1
  10. package/dist/runtime/runner/chart-set-lock.d.ts +4 -1
  11. package/dist/runtime/runner/chart-set-lock.d.ts.map +1 -1
  12. package/dist/runtime/runner/chart-set-lock.js +39 -4
  13. package/dist/runtime/runner/chart-set-lock.js.map +1 -1
  14. package/edition/README.md +69 -32
  15. package/edition/build-biome-index.mjs +1 -1
  16. package/edition/build-platform-service-index.mjs +1 -1
  17. package/edition/build-runtime-image-source-index.mjs +64 -20
  18. package/edition/catalogue-fetch.mjs +36 -9
  19. package/edition/catalogue-pin.mjs +71 -0
  20. package/edition/catalogue.mjs +11 -0
  21. package/edition/chart-set-source-commit.mjs +17 -7
  22. package/edition/checkout-indexed-source-repositories.mjs +17 -17
  23. package/edition/customer-flags.mjs +0 -1
  24. package/edition/develop-customer-edition.mjs +23 -5
  25. package/edition/develop-edition.mjs +147 -48
  26. package/edition/develop-freeze.mjs +69 -25
  27. package/edition/develop-seal.mjs +39 -25
  28. package/edition/dist-check.mjs +1 -1
  29. package/edition/edition-artifact.mjs +65 -18
  30. package/edition/edition-biome-manifests.mjs +2 -3
  31. package/edition/edition-chart-set.mjs +59 -6
  32. package/edition/edition-config.mjs +28 -2
  33. package/edition/edition-constants.mjs +10 -4
  34. package/edition/edition-contract-parse.mjs +52 -0
  35. package/edition/edition-contract.json +10 -1
  36. package/edition/edition-workspace.mjs +12 -9
  37. package/edition/evidence-trust-policy.mjs +26 -0
  38. package/edition/external-source-walk.mjs +48 -61
  39. package/edition/git-source-auth.mjs +104 -25
  40. package/edition/image-evidence.mjs +20 -10
  41. package/edition/kernel-contract-authority.mjs +23 -1
  42. package/edition/lib.mjs +13 -24
  43. package/edition/pin-source.mjs +6 -1
  44. package/edition/registry-credentials.mjs +11 -1
  45. package/edition/release-edition-artifact.mjs +3 -3
  46. package/edition/resolve-chart-set.mjs +50 -30
  47. package/edition/resolve-customer-edition.mjs +63 -7
  48. package/edition/resolve-distribution.mjs +1 -1
  49. package/edition/resolve-edition.mjs +12 -11
  50. package/edition/resolve-images.mjs +36 -15
  51. package/edition/seal-image-digests.mjs +31 -7
  52. package/edition/source-closure.mjs +1 -2
  53. package/edition/trust-policy-arming-verb.mjs +68 -0
  54. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"edition.d.ts","sourceRoot":"","sources":["../../src/commands/edition.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBtD"}
1
+ {"version":3,"file":"edition.d.ts","sourceRoot":"","sources":["../../src/commands/edition.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBtD"}
@@ -5,12 +5,12 @@ const exit_codes_1 = require("../lib/exit-codes");
5
5
  const run_entry_1 = require("../runtime/edition/run-entry");
6
6
  const verb_map_1 = require("../runtime/edition/verb-map");
7
7
  const VERB_SUMMARY = {
8
- [verb_map_1.EditionVerb.Resolve]: 'Resolve the whole release lock set of an edition: xema edition resolve <id> [--check]; or a customer edition against a catalogue: xema edition resolve --definition <file> --catalogue oci://<repo>@sha256:<digest> --channel <release|develop> --out <dir> [--source-image <source>=<registry>/<prefix>]...',
9
- [verb_map_1.EditionVerb.Seal]: 'Seal the image digests of an edition: xema edition seal <id>',
10
- [verb_map_1.EditionVerb.Develop]: 'Resolve a develop edition snapshot: xema edition develop <resolve|target|freeze-graph|freeze-sources|check-existing|check-overrides> ...; or a customer develop edition: xema edition develop resolve --definition <file> --catalogue oci://<repo>@sha256:<digest> --pins <file> --out <dir> --registry <ns> --engine-image <repo>@sha256:<digest> [--source-image <source>=<registry>/<prefix>]...',
11
- [verb_map_1.EditionVerb.Artifact]: 'Write the OCI artifact files of a release edition from the committed sealed locks: xema edition artifact <id> --channel release --registry <ns> --coordinate <tag> --engine-image <repo>@sha256:<digest> --out <dir>',
8
+ [verb_map_1.EditionVerb.Resolve]: 'Resolve the whole release lock set of an edition: xema edition resolve <id> [--check]; or a customer edition against the catalogue pinned in catalogue.pin.json beside the definition: xema edition resolve --definition <file> --channel <release|develop> --out <dir> [--source-image <source>=<registry>/<prefix>]...',
9
+ [verb_map_1.EditionVerb.Seal]: 'Seal the image digests of an edition: xema edition seal <id> [--definition <file>] (a customer edition seals against the release catalogue pinned in catalogue.pin.json beside the definition)',
10
+ [verb_map_1.EditionVerb.Develop]: 'Resolve a develop edition snapshot: xema edition develop <resolve|target|freeze-graph|freeze-sources|check-existing|check-overrides> ...; or a customer develop edition (catalogue pinned in catalogue.pin.json beside the definition): xema edition develop <resolve|target|check-existing|freeze-sources|kernel-commit> --definition <file> ... (resolve: --pins <file> --out <dir> --registry <root> --engine-image <repo>@sha256:<digest> [--source-image <source>=<registry>/<prefix>]...; kernel-commit prints the contract authority source commit of the catalogue)',
11
+ [verb_map_1.EditionVerb.Artifact]: 'Write the OCI artifact files of a release edition from the committed sealed locks: xema edition artifact <id> --channel release --registry <root> --coordinate <tag> --engine-image <repo>@sha256:<digest> --out <dir>',
12
12
  [verb_map_1.EditionVerb.Catalogue]: 'Write the catalogue.json of a release offering from its committed sealed locks: xema edition catalogue <id> --out <dir>',
13
- [verb_map_1.EditionVerb.Index]: `Rebuild a catalogue index: xema edition index <${Object.values(verb_map_1.EditionIndexKind).join('|')}> [--check]; xema edition index runtime-image-source --repin-contract-authority replaces only the contract authority of the committed index with the kernel checkout's`,
13
+ [verb_map_1.EditionVerb.Index]: `Rebuild a catalogue index: xema edition index <${Object.values(verb_map_1.EditionIndexKind).join('|')}> [--check]; xema edition index runtime-image-source --repin-contract-authority --kernel-commit <40-hex> replaces only the contract authority of the committed index with the kernel checkout's at the stated commit (its HEAD must equal it)`,
14
14
  [verb_map_1.EditionVerb.Check]: 'Check the committed edition locks and catalogue indices',
15
15
  [verb_map_1.EditionVerb.Why]: 'Explain why a biome is in an edition: xema edition why <id> <biome>',
16
16
  [verb_map_1.EditionVerb.VerifyPlatforms]: 'Prove the registry serves every required platform of an edition: xema edition verify-platforms <id>',
@@ -21,8 +21,9 @@ const VERB_SUMMARY = {
21
21
  [verb_map_1.EditionVerb.List]: 'Print the offering ids of an editions root as JSON: xema edition list --editions-root <dir>',
22
22
  [verb_map_1.EditionVerb.Locks]: 'Print the validated locks of an edition as JSON: xema edition locks <id> --data-root <dir> --editions-root <dir> --kernel <dir>',
23
23
  [verb_map_1.EditionVerb.ChartSet]: `Pin the chart set of the editions to the charts the registry serves: xema edition chart-set <${Object.values(verb_map_1.EditionChartSetOperation).join('|')}> [--check] --data-root <dir> --editions-root <dir> --deploy-root <dir> --kernel <dir>; source-commit prints the commit each publisher closed its locked set at (--data-root, --kernel)`,
24
- [verb_map_1.EditionVerb.BiomeManifests]: 'Print the pinned xema-biome.json of every biome of an edition as JSON: xema edition biome-manifests <id> --json --data-root <dir> --editions-root <dir> --sources-root <dir> --source-hash <dir> --kernel <dir>',
25
- [verb_map_1.EditionVerb.SourceClosure]: 'Print the source tree hash and workspace closure of a source directory at a commit as JSON: xema edition source-closure --repo <repo> --path <dir> --commit <sha> --sources-root <dir> --source-hash <dir> --kernel <dir>',
24
+ [verb_map_1.EditionVerb.BiomeManifests]: 'Print the pinned xema-biome.json of every biome of an edition as JSON: xema edition biome-manifests <id> --json --data-root <dir> --editions-root <dir> --sources-root <dir> --kernel <dir>',
25
+ [verb_map_1.EditionVerb.Arming]: 'Print whether the data root evidence trust policy is armed on one channel as one JSON line, exiting 0 only when armed: xema edition arming --channel <release|develop> --data-root <dir> --kernel <dir>',
26
+ [verb_map_1.EditionVerb.SourceClosure]: 'Print the source tree hash and workspace closure of a source directory at a commit as JSON: xema edition source-closure --repo <repo> --path <dir> --commit <sha> --sources-root <dir> --kernel <dir>',
26
27
  };
27
28
  function registerCommand(program) {
28
29
  const edition = program.command('edition').summary('Resolve, seal and check editions');
@@ -1 +1 @@
1
- {"version":3,"file":"edition.js","sourceRoot":"","sources":["../../src/commands/edition.ts"],"names":[],"mappings":";;AAuCA,0CAiBC;AAxDD,kDAA8D;AAC9D,4DAA8D;AAC9D,0DAA2H;AAW3H,MAAM,YAAY,GAA0C;IAC1D,CAAC,sBAAW,CAAC,OAAO,CAAC,EACnB,8SAA8S;IAChT,CAAC,sBAAW,CAAC,IAAI,CAAC,EAAE,8DAA8D;IAClF,CAAC,sBAAW,CAAC,OAAO,CAAC,EAAE,qYAAqY;IAC5Z,CAAC,sBAAW,CAAC,QAAQ,CAAC,EACpB,sNAAsN;IACxN,CAAC,sBAAW,CAAC,SAAS,CAAC,EAAE,yHAAyH;IAClJ,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,kDAAkD,MAAM,CAAC,MAAM,CAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,wKAAwK;IACxR,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,yDAAyD;IAC9E,CAAC,sBAAW,CAAC,GAAG,CAAC,EAAE,qEAAqE;IACxF,CAAC,sBAAW,CAAC,eAAe,CAAC,EAAE,qGAAqG;IACpI,CAAC,sBAAW,CAAC,eAAe,CAAC,EAAE,wEAAwE;IACvG,CAAC,sBAAW,CAAC,kBAAkB,CAAC,EAAE,mIAAmI;IACrK,CAAC,sBAAW,CAAC,cAAc,CAAC,EAC1B,yQAAyQ;IAC3Q,CAAC,sBAAW,CAAC,QAAQ,CAAC,EAAE,+EAA+E,MAAM,CAAC,MAAM,CAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;IACxJ,CAAC,sBAAW,CAAC,IAAI,CAAC,EAAE,6FAA6F;IACjH,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,iIAAiI;IACtJ,CAAC,sBAAW,CAAC,QAAQ,CAAC,EAAE,gGAAgG,MAAM,CAAC,MAAM,CAAC,mCAAwB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yLAAyL;IAClW,CAAC,sBAAW,CAAC,cAAc,CAAC,EAC1B,iNAAiN;IACnN,CAAC,sBAAW,CAAC,aAAa,CAAC,EACzB,2NAA2N;CAC9N,CAAC;AAEF,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAW,CAAC,EAAE,CAAC;QAC9C,OAAO;aACJ,OAAO,CAAC,IAAI,CAAC;aACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CAAC,WAAW,EAAE,0DAA0D,CAAC;aACjF,kBAAkB,EAAE;aACpB,MAAM,CAAC,CAAC,IAAc,EAAE,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,qBAAQ,EAAC,4BAAe,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"edition.js","sourceRoot":"","sources":["../../src/commands/edition.ts"],"names":[],"mappings":";;AAyCA,0CAiBC;AA1DD,kDAA8D;AAC9D,4DAA8D;AAC9D,0DAA2H;AAW3H,MAAM,YAAY,GAA0C;IAC1D,CAAC,sBAAW,CAAC,OAAO,CAAC,EACnB,0TAA0T;IAC5T,CAAC,sBAAW,CAAC,IAAI,CAAC,EAAE,gMAAgM;IACpN,CAAC,sBAAW,CAAC,OAAO,CAAC,EAAE,6iBAA6iB;IACpkB,CAAC,sBAAW,CAAC,QAAQ,CAAC,EACpB,wNAAwN;IAC1N,CAAC,sBAAW,CAAC,SAAS,CAAC,EAAE,yHAAyH;IAClJ,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,kDAAkD,MAAM,CAAC,MAAM,CAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,+OAA+O;IAC/V,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,yDAAyD;IAC9E,CAAC,sBAAW,CAAC,GAAG,CAAC,EAAE,qEAAqE;IACxF,CAAC,sBAAW,CAAC,eAAe,CAAC,EAAE,qGAAqG;IACpI,CAAC,sBAAW,CAAC,eAAe,CAAC,EAAE,wEAAwE;IACvG,CAAC,sBAAW,CAAC,kBAAkB,CAAC,EAAE,mIAAmI;IACrK,CAAC,sBAAW,CAAC,cAAc,CAAC,EAC1B,yQAAyQ;IAC3Q,CAAC,sBAAW,CAAC,QAAQ,CAAC,EAAE,+EAA+E,MAAM,CAAC,MAAM,CAAC,8BAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;IACxJ,CAAC,sBAAW,CAAC,IAAI,CAAC,EAAE,6FAA6F;IACjH,CAAC,sBAAW,CAAC,KAAK,CAAC,EAAE,iIAAiI;IACtJ,CAAC,sBAAW,CAAC,QAAQ,CAAC,EAAE,gGAAgG,MAAM,CAAC,MAAM,CAAC,mCAAwB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yLAAyL;IAClW,CAAC,sBAAW,CAAC,cAAc,CAAC,EAC1B,6LAA6L;IAC/L,CAAC,sBAAW,CAAC,MAAM,CAAC,EAClB,yMAAyM;IAC3M,CAAC,sBAAW,CAAC,aAAa,CAAC,EACzB,uMAAuM;CAC1M,CAAC;AAEF,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAW,CAAC,EAAE,CAAC;QAC9C,OAAO;aACJ,OAAO,CAAC,IAAI,CAAC;aACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CAAC,WAAW,EAAE,0DAA0D,CAAC;aACjF,kBAAkB,EAAE;aACpB,MAAM,CAAC,CAAC,IAAc,EAAE,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,qBAAQ,EAAC,4BAAe,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
@@ -51003,8 +51003,7 @@ var WorkspaceRoot = Object.freeze({
51003
51003
  Sources: "sourcesRoot",
51004
51004
  Kernel: "kernelPackageDir",
51005
51005
  Deploy: "deployRoot",
51006
- Cache: "cacheDir",
51007
- SourceHash: "sourceHashPackageDir"
51006
+ Cache: "cacheDir"
51008
51007
  });
51009
51008
  var WORKSPACE_FLAGS = Object.freeze({
51010
51009
  [WorkspaceRoot.Data]: "--data-root",
@@ -51012,8 +51011,7 @@ var WORKSPACE_FLAGS = Object.freeze({
51012
51011
  [WorkspaceRoot.Sources]: "--sources-root",
51013
51012
  [WorkspaceRoot.Kernel]: "--kernel",
51014
51013
  [WorkspaceRoot.Deploy]: "--deploy-root",
51015
- [WorkspaceRoot.Cache]: "--cache-dir",
51016
- [WorkspaceRoot.SourceHash]: "--source-hash"
51014
+ [WorkspaceRoot.Cache]: "--cache-dir"
51017
51015
  });
51018
51016
  var ROOT_MEANING = Object.freeze({
51019
51017
  [WorkspaceRoot.Data]: "the directory holding the catalogue indices and the trust policy",
@@ -51021,8 +51019,7 @@ var ROOT_MEANING = Object.freeze({
51021
51019
  [WorkspaceRoot.Sources]: "the directory holding source checkouts at repos/<r> and submodules/<r>",
51022
51020
  [WorkspaceRoot.Kernel]: "the BUILT kernel-contracts package directory",
51023
51021
  [WorkspaceRoot.Deploy]: "the deploy (chart tree) checkout",
51024
- [WorkspaceRoot.Cache]: "a writable directory for fetched artifacts",
51025
- [WorkspaceRoot.SourceHash]: "the BUILT distribution-source-hash package directory (the source-tree and image-input hash implementation)"
51022
+ [WorkspaceRoot.Cache]: "a writable directory for fetched artifacts"
51026
51023
  });
51027
51024
  var configured = Object.freeze({});
51028
51025
  function assertDirectory(name, value) {
@@ -51062,7 +51059,7 @@ function root(name) {
51062
51059
  var dataRoot = () => root(WorkspaceRoot.Data);
51063
51060
  var editionsRoot = () => root(WorkspaceRoot.Editions);
51064
51061
  var kernelPackageDir = () => root(WorkspaceRoot.Kernel);
51065
- function configureEditionWorkspaceFromArgv(argv, needs) {
51062
+ function configureEditionWorkspaceFromArgv(argv, needs, { refuseOthers = false } = {}) {
51066
51063
  const byFlag = new Map(
51067
51064
  Object.entries(WORKSPACE_FLAGS).map(([name, flag]) => [flag, name])
51068
51065
  );
@@ -51077,6 +51074,11 @@ function configureEditionWorkspaceFromArgv(argv, needs) {
51077
51074
  rest.push(arg);
51078
51075
  continue;
51079
51076
  }
51077
+ if (refuseOthers && !needs.includes(name)) {
51078
+ throw new Error(
51079
+ `${flag} is not a root this command takes (it takes: ${needs.length === 0 ? "no root" : needs.map((root2) => WORKSPACE_FLAGS[root2]).join(" ")})`
51080
+ );
51081
+ }
51080
51082
  const value = eq > 0 ? arg.slice(eq + 1) : argv[i += 1];
51081
51083
  if (typeof value !== "string" || value.length === 0 || value.startsWith("--")) {
51082
51084
  throw new Error(`${flag} requires a directory path`);
@@ -51108,12 +51110,69 @@ var CHART_VERSION_COORDINATE = Object.freeze({
51108
51110
  [EditionChannel.Release]: /-h[0-9a-f]{16}$/,
51109
51111
  [EditionChannel.Develop]: /-dev\.[0-9a-f]{12}$/
51110
51112
  });
51113
+ var DEVELOP_CHART_VERSION_PREFIX = "0.0.0-dev.";
51114
+ var DEVELOP_CHART_SHA_LENGTH = 12;
51115
+ var DEVELOP_CHART_VERSION_PATTERN = new RegExp(
51116
+ `^${DEVELOP_CHART_VERSION_PREFIX.replaceAll(".", "\\.")}[0-9a-f]{${DEVELOP_CHART_SHA_LENGTH}}$`
51117
+ );
51118
+
51119
+ // edition/edition-contract-parse.mjs
51120
+ var EDITION_CONTRACT_SCHEMA = "xema.edition-contract/v2";
51121
+ var SEGMENT = /^[a-z0-9][a-z0-9.-]*$/;
51122
+ function parseEditionContract(contract) {
51123
+ if (contract === null || typeof contract !== "object" || Array.isArray(contract)) {
51124
+ throw new Error("edition-contract.json must be a JSON object");
51125
+ }
51126
+ if (contract.schema !== EDITION_CONTRACT_SCHEMA) {
51127
+ throw new Error(`edition-contract.json: schema is ${JSON.stringify(contract.schema)}, expected ${JSON.stringify(EDITION_CONTRACT_SCHEMA)}`);
51128
+ }
51129
+ if (typeof contract.vendoring !== "string" || contract.vendoring === "") {
51130
+ throw new Error('edition-contract.json: "vendoring" must be the non-empty statement of how a consumer vendors this file');
51131
+ }
51132
+ if (typeof contract.repositoryPrefix !== "string" || contract.repositoryPrefix === "") {
51133
+ throw new Error('edition-contract.json: "repositoryPrefix" must be a non-empty string');
51134
+ }
51135
+ const repositories = contract.repositories;
51136
+ if (repositories === null || typeof repositories !== "object" || Array.isArray(repositories)) {
51137
+ throw new Error('edition-contract.json has no "repositories": the namespace segment of each channel is read from it and nowhere else');
51138
+ }
51139
+ const channels = Object.values(EditionChannel);
51140
+ const keys = Object.keys(repositories);
51141
+ const unknown = keys.filter((key) => !channels.includes(key));
51142
+ if (unknown.length > 0 || keys.length !== channels.length) {
51143
+ throw new Error(
51144
+ `edition-contract.json: "repositories" is exactly one entry per channel (${channels.join(" | ")}); ` + (unknown.length > 0 ? `unknown channel ${unknown.map((key) => JSON.stringify(key)).join(", ")}` : `got ${keys.join(", ") || "none"}`)
51145
+ );
51146
+ }
51147
+ const segments = /* @__PURE__ */ new Set();
51148
+ for (const channel of channels) {
51149
+ const entry = repositories[channel];
51150
+ const entryKeys = entry !== null && typeof entry === "object" && !Array.isArray(entry) ? Object.keys(entry) : [];
51151
+ if (entryKeys.join() !== "namespaceSegment" || typeof entry.namespaceSegment !== "string" || !SEGMENT.test(entry.namespaceSegment)) {
51152
+ throw new Error(`edition-contract.json: repositories.${channel} is exactly {namespaceSegment}, one lowercase path segment`);
51153
+ }
51154
+ segments.add(entry.namespaceSegment);
51155
+ }
51156
+ if (segments.size !== channels.length) {
51157
+ throw new Error("edition-contract.json: the channels' namespace segments must differ");
51158
+ }
51159
+ return contract;
51160
+ }
51111
51161
 
51112
51162
  // edition/edition-contract.json
51113
51163
  var edition_contract_default = {
51114
- schema: "xema.edition-contract/v1",
51164
+ schema: "xema.edition-contract/v2",
51165
+ vendoring: "This file is the single source of the edition artifact coordinates and names. A consumer vendors it BYTE-IDENTICAL from a stated xema-cli commit and never edits it. It reads both repository namespace segments (repositories.<channel>.namespaceSegment) and the repository prefix (repositoryPrefix) only from this file, and refuses a contract that has no `repositories`.",
51115
51166
  artifactType: "application/vnd.xema.edition.v1+json",
51116
51167
  repositoryPrefix: "xema-edition-",
51168
+ repositories: {
51169
+ release: {
51170
+ namespaceSegment: "editions"
51171
+ },
51172
+ develop: {
51173
+ namespaceSegment: "develop-editions"
51174
+ }
51175
+ },
51117
51176
  descriptorFile: "xema-edition.json",
51118
51177
  descriptorSchema: "xema.edition/v1",
51119
51178
  locks: [
@@ -51142,11 +51201,14 @@ var edition_contract_default = {
51142
51201
  };
51143
51202
 
51144
51203
  // edition/edition-constants.mjs
51145
- var EDITION_CONTRACT = Object.freeze(structuredClone(edition_contract_default));
51204
+ var EDITION_CONTRACT = Object.freeze(structuredClone(parseEditionContract(edition_contract_default)));
51146
51205
  var EDITION_DESCRIPTOR_FILE = EDITION_CONTRACT.descriptorFile;
51147
51206
  var EDITION_DESCRIPTOR_SCHEMA = EDITION_CONTRACT.descriptorSchema;
51148
51207
  var EDITION_ARTIFACT_TYPE = EDITION_CONTRACT.artifactType;
51149
51208
  var EDITION_REPOSITORY_PREFIX = EDITION_CONTRACT.repositoryPrefix;
51209
+ var EDITION_REPOSITORY_SEGMENTS = Object.freeze(
51210
+ Object.fromEntries(Object.values(EditionChannel).map((channel) => [channel, EDITION_CONTRACT.repositories[channel].namespaceSegment]))
51211
+ );
51150
51212
  var EvidenceTrustState = Object.freeze({ Armed: "armed", NotArmed: "not-armed" });
51151
51213
  var DEVELOP_IMAGE_NAMESPACE_SEGMENT = EDITION_CONTRACT.imageNamespaceSegment;
51152
51214
  var EDITION_OFFERING_LAYERS = Object.freeze({ ...EDITION_CONTRACT.offeringLayers });
@@ -51713,6 +51775,22 @@ function requireSourceAuthUsername(config) {
51713
51775
  }
51714
51776
  return value;
51715
51777
  }
51778
+ function optionalChartSet(document) {
51779
+ const registry = document.chartRegistry !== void 0;
51780
+ const publishers = document.chartPublishers !== void 0;
51781
+ if (registry !== publishers) {
51782
+ throw new EditionWorkspaceConfigError(
51783
+ `${EDITION_WORKSPACE_CONFIG_FILE}: "chartRegistry" and "chartPublishers" are a vendor-only pair, both declared or both absent; only "${registry ? "chartRegistry" : "chartPublishers"}" is`
51784
+ );
51785
+ }
51786
+ if (!registry) {
51787
+ return {};
51788
+ }
51789
+ return {
51790
+ chartRegistry: requireString(document, "chartRegistry", CHART_REGISTRY, "oci://<host>/<path>"),
51791
+ chartPublishers: requirePublishers(document)
51792
+ };
51793
+ }
51716
51794
  function requirePublishers(config) {
51717
51795
  const value = config.chartPublishers;
51718
51796
  if (!Array.isArray(value) || value.length === 0) {
@@ -51791,8 +51869,7 @@ function parseEditionWorkspaceConfig(document) {
51791
51869
  return Object.freeze({
51792
51870
  ...sections,
51793
51871
  imageRegistry: requireString(document, "imageRegistry", IMAGE_REGISTRY, "<host>/<namespace> with no scheme or trailing slash"),
51794
- chartRegistry: requireString(document, "chartRegistry", CHART_REGISTRY, "oci://<host>/<path>"),
51795
- chartPublishers: requirePublishers(document),
51872
+ ...optionalChartSet(document),
51796
51873
  sourceRepositoryUrlPrefix: requireString(document, "sourceRepositoryUrlPrefix", SOURCE_URL_PREFIX, "https://<host>/<organisation>/ with a trailing slash"),
51797
51874
  sourceAuthUsername: requireSourceAuthUsername(document),
51798
51875
  evidenceTrustPolicy: requireEvidenceTrustPolicy(document)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "artifactSha256": "sha256:a50fae555a6b55791afbec256bf41745d0dc849eb9d964369a41e8a0d4f58a8b",
3
+ "artifactSha256": "sha256:6fe674cef98e452c0ef19534d3c6c928d09c6b5798a3d83d4068a36960f63ad1",
4
4
  "esbuild": {
5
5
  "version": "0.28.2"
6
6
  },
@@ -2119,187 +2119,193 @@
2119
2119
  },
2120
2120
  {
2121
2121
  "package": "@xemahq/xema",
2122
- "version": "0.28.0",
2122
+ "version": "0.29.0",
2123
2123
  "path": "edition/authorization-base.mjs",
2124
2124
  "sha256": "sha256:7ded47eadc194ebf11583f77c695bf1708e502c654420564d55be3b599ff770f"
2125
2125
  },
2126
2126
  {
2127
2127
  "package": "@xemahq/xema",
2128
- "version": "0.28.0",
2128
+ "version": "0.29.0",
2129
2129
  "path": "edition/connector-source-authority.mjs",
2130
2130
  "sha256": "sha256:ea94475f4324737673accd7de1303c44db1cbc4dac61a865a06cd83abe310164"
2131
2131
  },
2132
2132
  {
2133
2133
  "package": "@xemahq/xema",
2134
- "version": "0.28.0",
2134
+ "version": "0.29.0",
2135
2135
  "path": "edition/distribution-paths.mjs",
2136
2136
  "sha256": "sha256:d78a5c8405bc6c25d36fcec61b0030e1fdacac7d528e698adb96f906f4b70279"
2137
2137
  },
2138
2138
  {
2139
2139
  "package": "@xemahq/xema",
2140
- "version": "0.28.0",
2140
+ "version": "0.29.0",
2141
2141
  "path": "edition/edition-artifact.mjs",
2142
- "sha256": "sha256:b27a039f3e93c0caadc6562d89fd7b1843140da291e183137ec4eb6966cdf468"
2142
+ "sha256": "sha256:161f522eb39e3db705bc709f8512988dd3e6752851d972521354eeccffd8075d"
2143
2143
  },
2144
2144
  {
2145
2145
  "package": "@xemahq/xema",
2146
- "version": "0.28.0",
2146
+ "version": "0.29.0",
2147
2147
  "path": "edition/edition-channel.mjs",
2148
2148
  "sha256": "sha256:9dcd7b09d4fee8c4d43338e4e418619aa3003a612823455310cad6f6c48a19c0"
2149
2149
  },
2150
2150
  {
2151
2151
  "package": "@xemahq/xema",
2152
- "version": "0.28.0",
2152
+ "version": "0.29.0",
2153
2153
  "path": "edition/edition-chart-set.mjs",
2154
- "sha256": "sha256:382e4eb4dbcf9fe88a01a4bf52480ebf6594a35e6abe235db637892c3cba595c"
2154
+ "sha256": "sha256:fbda500315d45e35eb974f4701bbf36729c3b642a5d735bc1b07085c91d25b23"
2155
2155
  },
2156
2156
  {
2157
2157
  "package": "@xemahq/xema",
2158
- "version": "0.28.0",
2158
+ "version": "0.29.0",
2159
2159
  "path": "edition/edition-config.mjs",
2160
- "sha256": "sha256:5a9019079b04ffa4394405e05fc18e870171fa9da7405f37e1e608f1456bd43e"
2160
+ "sha256": "sha256:e3997bd9a0082e02d01760868b2a4f41ed3081e904126b30fdf86e7938dc6137"
2161
2161
  },
2162
2162
  {
2163
2163
  "package": "@xemahq/xema",
2164
- "version": "0.28.0",
2164
+ "version": "0.29.0",
2165
2165
  "path": "edition/edition-constants.mjs",
2166
- "sha256": "sha256:e923fac9753d3203b3e27c708f9a9a4f3b2ce1337b2eda03be415ee27796f479"
2166
+ "sha256": "sha256:71ae51028847ab3430ffec9b229b0516a7705b75a6de1fcfa665f5e1abf8e9bb"
2167
2167
  },
2168
2168
  {
2169
2169
  "package": "@xemahq/xema",
2170
- "version": "0.28.0",
2170
+ "version": "0.29.0",
2171
+ "path": "edition/edition-contract-parse.mjs",
2172
+ "sha256": "sha256:c575e96b70bda82899931eb0b18567988e2e13e664fa498bcbef96b571dcabb4"
2173
+ },
2174
+ {
2175
+ "package": "@xemahq/xema",
2176
+ "version": "0.29.0",
2171
2177
  "path": "edition/edition-contract.json",
2172
- "sha256": "sha256:83e0b986a9a8a2f8d5c1fe06dea852f7893ee1188b51fe75816f2e58cfe8bb15"
2178
+ "sha256": "sha256:aa1a05f1728813a7bdb1e02d9305e9adf641d695e6767305210c67a1d81b38a7"
2173
2179
  },
2174
2180
  {
2175
2181
  "package": "@xemahq/xema",
2176
- "version": "0.28.0",
2182
+ "version": "0.29.0",
2177
2183
  "path": "edition/edition-protocol.mjs",
2178
2184
  "sha256": "sha256:3a0d53d18718790ac32c92164e373f7f038675a3e9410e5ef3c139affcf42892"
2179
2185
  },
2180
2186
  {
2181
2187
  "package": "@xemahq/xema",
2182
- "version": "0.28.0",
2188
+ "version": "0.29.0",
2183
2189
  "path": "edition/edition-workspace.mjs",
2184
- "sha256": "sha256:fdd681e8f7b8da5da53664c45173cd042606d3dfc36567398909fd8d24a10eea"
2190
+ "sha256": "sha256:a56e0441fc71e7cffa0e5990b219fbb03a7061fc3b5738c8b787b168ccb0d7c6"
2185
2191
  },
2186
2192
  {
2187
2193
  "package": "@xemahq/xema",
2188
- "version": "0.28.0",
2194
+ "version": "0.29.0",
2189
2195
  "path": "edition/evidence-checkout.mjs",
2190
2196
  "sha256": "sha256:31fb669769b31de4c6f2b2501bb96959548172ef166e7568edbbfed7f5079a11"
2191
2197
  },
2192
2198
  {
2193
2199
  "package": "@xemahq/xema",
2194
- "version": "0.28.0",
2200
+ "version": "0.29.0",
2195
2201
  "path": "edition/evidence-grammars.mjs",
2196
2202
  "sha256": "sha256:4dae22b61ade99219a482b971c9780d68a3d37d021e39cdfe860b245364b8b9f"
2197
2203
  },
2198
2204
  {
2199
2205
  "package": "@xemahq/xema",
2200
- "version": "0.28.0",
2206
+ "version": "0.29.0",
2201
2207
  "path": "edition/evidence-trust-pin.mjs",
2202
2208
  "sha256": "sha256:b9dd5c01903394436530783614efb0cd357d982ed2befd844a39328479773cbc"
2203
2209
  },
2204
2210
  {
2205
2211
  "package": "@xemahq/xema",
2206
- "version": "0.28.0",
2212
+ "version": "0.29.0",
2207
2213
  "path": "edition/image-delivery-entitlement-descriptor.mjs",
2208
2214
  "sha256": "sha256:4726b66116f01bf2523fafe2b7a356591eca8fb5ca6bd8b154dd4821873e921b"
2209
2215
  },
2210
2216
  {
2211
2217
  "package": "@xemahq/xema",
2212
- "version": "0.28.0",
2218
+ "version": "0.29.0",
2213
2219
  "path": "edition/image-evidence-replay-state.mjs",
2214
2220
  "sha256": "sha256:eba0cf1d38af0ab2f00c5099fa8bc2edc543136ce92f895544d4d284b3d6af0f"
2215
2221
  },
2216
2222
  {
2217
2223
  "package": "@xemahq/xema",
2218
- "version": "0.28.0",
2224
+ "version": "0.29.0",
2219
2225
  "path": "edition/image-evidence.mjs",
2220
- "sha256": "sha256:342e8209c5c0ead5dbfbea573afdfab9e53bbf181eb7918b85d2982fb4942992"
2226
+ "sha256": "sha256:93d91065b045092f2e3462ebe1db8cf041d8ecb66eead8da6c59ca8a377c38ea"
2221
2227
  },
2222
2228
  {
2223
2229
  "package": "@xemahq/xema",
2224
- "version": "0.28.0",
2230
+ "version": "0.29.0",
2225
2231
  "path": "edition/kernel-contract-authority.mjs",
2226
- "sha256": "sha256:d486db676ff029706d5e53d07c76c2e61d1010b8a45a39d75cd10aaa8c429855"
2232
+ "sha256": "sha256:20abdde62a7b037c01ea9bbe1ff1e6094e6b0efd0add2f656f1938a04409bf82"
2227
2233
  },
2228
2234
  {
2229
2235
  "package": "@xemahq/xema",
2230
- "version": "0.28.0",
2236
+ "version": "0.29.0",
2231
2237
  "path": "edition/lib.mjs",
2232
- "sha256": "sha256:5b668b4495f31cb884b25dd5edad6a1205bb7f0ff4155bd4a708815fa60bef97"
2238
+ "sha256": "sha256:4d5066b0b20906d789f8843010a9aa2c914d09f383dd93259270138ea898bef4"
2233
2239
  },
2234
2240
  {
2235
2241
  "package": "@xemahq/xema",
2236
- "version": "0.28.0",
2242
+ "version": "0.29.0",
2237
2243
  "path": "edition/no-follow-file.mjs",
2238
2244
  "sha256": "sha256:c17bdf5e441f3c079aa06d4b48bbed05cad087855b9ad2a5e6dc43d5ee2b17c3"
2239
2245
  },
2240
2246
  {
2241
2247
  "package": "@xemahq/xema",
2242
- "version": "0.28.0",
2248
+ "version": "0.29.0",
2243
2249
  "path": "edition/pin-source.mjs",
2244
- "sha256": "sha256:f55b290fd45a8c2612d9dcbc02244d8db3142af0345459df015de194d45611d8"
2250
+ "sha256": "sha256:4e64d25b7aacec344253d1963f419f946998f36e8c269eea58b8c848e0f35e52"
2245
2251
  },
2246
2252
  {
2247
2253
  "package": "@xemahq/xema",
2248
- "version": "0.28.0",
2254
+ "version": "0.29.0",
2249
2255
  "path": "edition/source-authority.mjs",
2250
2256
  "sha256": "sha256:2351d47a32ee865720a675f1ecd336b00cdce4aa34713219a1aa23920ac7b60f"
2251
2257
  },
2252
2258
  {
2253
2259
  "package": "@xemahq/xema",
2254
- "version": "0.28.0",
2260
+ "version": "0.29.0",
2255
2261
  "path": "edition/strict-json.mjs",
2256
2262
  "sha256": "sha256:f95778396df7f38b086f55d2ec4f3b6644a8aeff2b32282a62829145fb544562"
2257
2263
  },
2258
2264
  {
2259
2265
  "package": "@xemahq/xema",
2260
- "version": "0.28.0",
2266
+ "version": "0.29.0",
2261
2267
  "path": "edition/string-order.mjs",
2262
2268
  "sha256": "sha256:b3210cd273e4b2e01fb8b1a91e28734cd211d4010c080d0ce95f5e5ff631cffb"
2263
2269
  },
2264
2270
  {
2265
2271
  "package": "@xemahq/xema",
2266
- "version": "0.28.0",
2272
+ "version": "0.29.0",
2267
2273
  "path": "edition/trusted-executable.mjs",
2268
2274
  "sha256": "sha256:37d46cdbc999ddd55d4ea8aeed4850ddd1efde89ed7b532f5a2ddec87105d796"
2269
2275
  },
2270
2276
  {
2271
2277
  "package": "@xemahq/xema",
2272
- "version": "0.28.0",
2278
+ "version": "0.29.0",
2273
2279
  "path": "edition/verifier-binding.mjs",
2274
2280
  "sha256": "sha256:80732658617f5255258c538eeb2383331ec8553b44b58d552b567845a7b916aa"
2275
2281
  },
2276
2282
  {
2277
2283
  "package": "@xemahq/xema",
2278
- "version": "0.28.0",
2284
+ "version": "0.29.0",
2279
2285
  "path": "edition/verifier-files.mjs",
2280
2286
  "sha256": "sha256:cdd14a20a63f0f194a8abb55680a5a7e3ced1f09f8b210a90d349e655f6de0c0"
2281
2287
  },
2282
2288
  {
2283
2289
  "package": "@xemahq/xema",
2284
- "version": "0.28.0",
2290
+ "version": "0.29.0",
2285
2291
  "path": "edition/verifier-provenance.mjs",
2286
2292
  "sha256": "sha256:3e2fb8e07cf1f66b8ad6c7ac2555fe3af64ec7abeb07cecbaf1939a18c2b3663"
2287
2293
  },
2288
2294
  {
2289
2295
  "package": "@xemahq/xema",
2290
- "version": "0.28.0",
2296
+ "version": "0.29.0",
2291
2297
  "path": "edition/verify-image-evidence.mjs",
2292
2298
  "sha256": "sha256:b7412ea4609c32cecf8992a4d2db4bf27fbad95b2d26ab1eee10ddbf044d1a0e"
2293
2299
  },
2294
2300
  {
2295
2301
  "package": "@xemahq/xema",
2296
- "version": "0.28.0",
2302
+ "version": "0.29.0",
2297
2303
  "path": "edition/workspace-sections.mjs",
2298
2304
  "sha256": "sha256:058c849767434e9ba911d9310092bede42e3ef959c75bbd35ff8879dc21ce3ff"
2299
2305
  },
2300
2306
  {
2301
2307
  "package": "@xemahq/xema",
2302
- "version": "0.28.0",
2308
+ "version": "0.29.0",
2303
2309
  "path": "scripts/build-evidence-verifier.mjs",
2304
2310
  "sha256": "sha256:decfa7ca6c340e51ddc06f4d30caac8e8e3c060c843c211586efc313dd9ace8e"
2305
2311
  },
@@ -16,7 +16,8 @@ export declare enum EditionVerb {
16
16
  Locks = "locks",
17
17
  SourceClosure = "source-closure",
18
18
  ChartSet = "chart-set",
19
- BiomeManifests = "biome-manifests"
19
+ BiomeManifests = "biome-manifests",
20
+ Arming = "arming"
20
21
  }
21
22
  export declare enum EditionChartSetOperation {
22
23
  Resolve = "resolve",
@@ -1 +1 @@
1
- {"version":3,"file":"verb-map.d.ts","sourceRoot":"","sources":["../../../src/runtime/edition/verb-map.ts"],"names":[],"mappings":"AAKA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,eAAe,qBAAqB;IACpC,eAAe,qBAAqB;IACpC,kBAAkB,yBAAyB;IAC3C,cAAc,oBAAoB;IAClC,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,aAAa,mBAAmB;IAChC,QAAQ,cAAc;IACtB,cAAc,oBAAoB;CACnC;AAGD,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,YAAY,kBAAkB;CAC/B;AAGD,oBAAY,mBAAmB;IAC7B,aAAa,mBAAmB;IAChC,SAAS,cAAc;IACvB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,GAAG,QAAQ;CACZ;AAGD,oBAAY,wBAAwB;IAClC,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC5B;AAGD,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,eAAe,qBAAqB;IACpC,kBAAkB,yBAAyB;CAC5C;AAGD,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAGD,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAE1F,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACvC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAgBnI,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAGtF,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAI/F,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAQxH,CAAC;AAGF,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAI1E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAExC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAiDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CAoBtG"}
1
+ {"version":3,"file":"verb-map.d.ts","sourceRoot":"","sources":["../../../src/runtime/edition/verb-map.ts"],"names":[],"mappings":"AAKA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,eAAe,qBAAqB;IACpC,eAAe,qBAAqB;IACpC,kBAAkB,yBAAyB;IAC3C,cAAc,oBAAoB;IAClC,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,aAAa,mBAAmB;IAChC,QAAQ,cAAc;IACtB,cAAc,oBAAoB;IAClC,MAAM,WAAW;CAClB;AAGD,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,YAAY,kBAAkB;CAC/B;AAGD,oBAAY,mBAAmB;IAC7B,aAAa,mBAAmB;IAChC,SAAS,cAAc;IACvB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,GAAG,QAAQ;CACZ;AAGD,oBAAY,wBAAwB;IAClC,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC5B;AAGD,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,eAAe,qBAAqB;IACpC,kBAAkB,yBAAyB;CAC5C;AAGD,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAGD,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAE1F,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACvC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAiBnI,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAGtF,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAI/F,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAQxH,CAAC;AAGF,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAI1E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAExC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAiDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CAoBtG"}
@@ -22,6 +22,7 @@ var EditionVerb;
22
22
  EditionVerb["SourceClosure"] = "source-closure";
23
23
  EditionVerb["ChartSet"] = "chart-set";
24
24
  EditionVerb["BiomeManifests"] = "biome-manifests";
25
+ EditionVerb["Arming"] = "arming";
25
26
  })(EditionVerb || (exports.EditionVerb = EditionVerb = {}));
26
27
  var EditionChartSetOperation;
27
28
  (function (EditionChartSetOperation) {
@@ -72,6 +73,7 @@ exports.EDITION_VERB_ENTRY = {
72
73
  [EditionVerb.Locks]: 'edition-locks.mjs',
73
74
  [EditionVerb.SourceClosure]: 'source-closure.mjs',
74
75
  [EditionVerb.BiomeManifests]: 'edition-biome-manifests.mjs',
76
+ [EditionVerb.Arming]: 'trust-policy-arming-verb.mjs',
75
77
  };
76
78
  exports.EDITION_CHART_SET_ENTRY = {
77
79
  [EditionChartSetOperation.Resolve]: 'resolve-chart-set.mjs',
@@ -1 +1 @@
1
- {"version":3,"file":"verb-map.js","sourceRoot":"","sources":["../../../src/runtime/edition/verb-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verb-map.js","sourceRoot":"","sources":["../../../src/runtime/edition/verb-map.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  export declare const CHART_SET_LOCK_ENV = "XEMA_CHART_SET_LOCK";
2
2
  export declare const CHART_SET_LOCK_FILENAME = "chart-set.lock.json";
3
- export declare const CHART_SET_LOCK_SCHEMA_VERSION = 3;
3
+ export declare const CHART_SET_LOCK_SCHEMA_VERSION = 4;
4
+ export declare const DEVELOP_CHART_VERSION_PREFIX = "0.0.0-dev.";
5
+ export declare const DEVELOP_CHART_SHA_LENGTH = 12;
6
+ export declare const DEVELOP_CHART_VERSION_PATTERN: RegExp;
4
7
  export declare const CHART_DIGEST_PATTERN: RegExp;
5
8
  export interface ChartSetMember {
6
9
  readonly version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chart-set-lock.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAG7D,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAG5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvD;AAGD,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAQR;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAuBlE;AAkFD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMrD"}
1
+ {"version":3,"file":"chart-set-lock.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAG7D,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,4BAA4B,eAAe,CAAC;AAGzD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAG3C,eAAO,MAAM,6BAA6B,QAEzC,CAAC;AAGF,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAG5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvD;AAGD,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAQR;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAuBlE;AAwID,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMrD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHART_DIGEST_PATTERN = exports.CHART_SET_LOCK_SCHEMA_VERSION = exports.CHART_SET_LOCK_FILENAME = exports.CHART_SET_LOCK_ENV = void 0;
3
+ exports.CHART_DIGEST_PATTERN = exports.DEVELOP_CHART_VERSION_PATTERN = exports.DEVELOP_CHART_SHA_LENGTH = exports.DEVELOP_CHART_VERSION_PREFIX = exports.CHART_SET_LOCK_SCHEMA_VERSION = exports.CHART_SET_LOCK_FILENAME = exports.CHART_SET_LOCK_ENV = void 0;
4
4
  exports.defaultChartSetLockPath = defaultChartSetLockPath;
5
5
  exports.loadChartSetLock = loadChartSetLock;
6
6
  exports.isMissingPath = isMissingPath;
@@ -8,7 +8,10 @@ const node_fs_1 = require("node:fs");
8
8
  const appliance_context_1 = require("./appliance-context");
9
9
  exports.CHART_SET_LOCK_ENV = 'XEMA_CHART_SET_LOCK';
10
10
  exports.CHART_SET_LOCK_FILENAME = 'chart-set.lock.json';
11
- exports.CHART_SET_LOCK_SCHEMA_VERSION = 3;
11
+ exports.CHART_SET_LOCK_SCHEMA_VERSION = 4;
12
+ exports.DEVELOP_CHART_VERSION_PREFIX = '0.0.0-dev.';
13
+ exports.DEVELOP_CHART_SHA_LENGTH = 12;
14
+ exports.DEVELOP_CHART_VERSION_PATTERN = new RegExp(`^${exports.DEVELOP_CHART_VERSION_PREFIX.replaceAll('.', '\\.')}[0-9a-f]{${exports.DEVELOP_CHART_SHA_LENGTH}}$`);
12
15
  exports.CHART_DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/;
13
16
  function defaultChartSetLockPath(env = process.env) {
14
17
  const declared = env[exports.CHART_SET_LOCK_ENV];
@@ -45,8 +48,9 @@ function parseChartSetLock(parsed, path) {
45
48
  }
46
49
  if (root.schemaVersion !== exports.CHART_SET_LOCK_SCHEMA_VERSION) {
47
50
  throw new Error(`${path} has schemaVersion ${JSON.stringify(root.schemaVersion)}; only ` +
48
- `schemaVersion ${String(exports.CHART_SET_LOCK_SCHEMA_VERSION)} (a digest per ` +
49
- 'chart) is read. Re-seal the lock; older locks are refused, not migrated.');
51
+ `schemaVersion ${String(exports.CHART_SET_LOCK_SCHEMA_VERSION)} (an index digest ` +
52
+ 'per publisher, a digest per chart) is read. Re-resolve the chart set with ' +
53
+ '`xema edition chart-set resolve`; older locks are refused, not migrated.');
50
54
  }
51
55
  if (typeof root.registry !== 'string' || root.registry.length === 0) {
52
56
  throw new Error(`${path} carries no 'registry'; refusing the chart-set lock.`);
@@ -61,6 +65,7 @@ function parseChartSetLock(parsed, path) {
61
65
  if (publisher === null || typeof index !== 'string' || index.length === 0) {
62
66
  throw new Error(`${path} has a publisher entry without an 'index'.`);
63
67
  }
68
+ assertIndexDigest(publisher, index, path);
64
69
  const charts = asRecord(publisher.charts);
65
70
  if (charts === null || Object.keys(charts).length === 0) {
66
71
  throw new Error(`${path}: publisher '${index}' carries no 'charts' map.`);
@@ -75,6 +80,36 @@ function parseChartSetLock(parsed, path) {
75
80
  }
76
81
  return { path, registry: root.registry, members };
77
82
  }
83
+ function assertIndexDigest(publisher, index, path) {
84
+ const where = `${path}: publisher '${index}'`;
85
+ if (!Object.hasOwn(publisher, 'indexDigest')) {
86
+ throw new Error(`${where} carries no 'indexDigest' key (required: sha256:<64 hex> for a ` +
87
+ 'release index, null for a develop snapshot version).');
88
+ }
89
+ const { version, indexDigest } = publisher;
90
+ if (typeof version === 'string' &&
91
+ version.startsWith(exports.DEVELOP_CHART_VERSION_PREFIX) &&
92
+ !exports.DEVELOP_CHART_VERSION_PATTERN.test(version)) {
93
+ throw new Error(`${where} has malformed develop chart version ${JSON.stringify(version)}; ` +
94
+ `a develop version is exactly ${exports.DEVELOP_CHART_VERSION_PREFIX}<${exports.DEVELOP_CHART_SHA_LENGTH} lowercase hex>.`);
95
+ }
96
+ const develop = typeof version === 'string' && exports.DEVELOP_CHART_VERSION_PATTERN.test(version);
97
+ if (indexDigest === null) {
98
+ if (!develop) {
99
+ throw new Error(`${where} has indexDigest null with version ${JSON.stringify(version)}; ` +
100
+ `null is only for a develop snapshot version (${exports.DEVELOP_CHART_VERSION_PREFIX}<sha12>).`);
101
+ }
102
+ return;
103
+ }
104
+ if (develop) {
105
+ throw new Error(`${where} has an indexDigest with develop snapshot version ${String(version)}; ` +
106
+ 'a develop snapshot has no index chart, so indexDigest must be null.');
107
+ }
108
+ if (typeof indexDigest !== 'string' || !exports.CHART_DIGEST_PATTERN.test(indexDigest)) {
109
+ throw new Error(`${where} has a malformed indexDigest (${JSON.stringify(indexDigest)}); ` +
110
+ 'expected sha256:<64 hex>.');
111
+ }
112
+ }
78
113
  function parseMember(name, value, path) {
79
114
  const record = asRecord(value);
80
115
  if (record === null) {