@dsh-enhanced/plugin-control-plane 0.1.31 → 0.1.34

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 (199) hide show
  1. package/README.md +352 -4
  2. package/bin/dsh-local-release-adapter.js +80 -16
  3. package/bin/dsh-npm-registry-adapter.js +613 -0
  4. package/bin/dsh-source-adoption-authority.js +12 -0
  5. package/bin/dsh-source-approval-authority.js +16 -0
  6. package/bin/dsh-source-release-authority.js +12 -0
  7. package/bin/dsh-systemd-host-attestor.js +707 -0
  8. package/bin/dsh-task-observation-authority.js +15 -0
  9. package/lib/adapter-process.d.ts +23 -0
  10. package/lib/adapter-process.d.ts.map +1 -0
  11. package/lib/adapter-process.js +305 -0
  12. package/lib/adapter-process.js.map +1 -0
  13. package/lib/adoption-coordinator.d.ts +63 -0
  14. package/lib/adoption-coordinator.d.ts.map +1 -0
  15. package/lib/adoption-coordinator.js +241 -0
  16. package/lib/adoption-coordinator.js.map +1 -0
  17. package/lib/adoption-handoff.d.ts +16 -0
  18. package/lib/adoption-handoff.d.ts.map +1 -0
  19. package/lib/adoption-handoff.js +11 -0
  20. package/lib/adoption-handoff.js.map +1 -0
  21. package/lib/attestation.d.ts.map +1 -1
  22. package/lib/attestation.js +49 -1
  23. package/lib/attestation.js.map +1 -1
  24. package/lib/catalog.d.ts.map +1 -1
  25. package/lib/catalog.js +29 -2
  26. package/lib/catalog.js.map +1 -1
  27. package/lib/cli.d.ts +33 -9
  28. package/lib/cli.d.ts.map +1 -1
  29. package/lib/cli.js +624 -178
  30. package/lib/cli.js.map +1 -1
  31. package/lib/deployment-readiness.d.ts +38 -0
  32. package/lib/deployment-readiness.d.ts.map +1 -0
  33. package/lib/deployment-readiness.js +154 -0
  34. package/lib/deployment-readiness.js.map +1 -0
  35. package/lib/effect-blocked-replay.d.ts +81 -0
  36. package/lib/effect-blocked-replay.d.ts.map +1 -0
  37. package/lib/effect-blocked-replay.js +259 -0
  38. package/lib/effect-blocked-replay.js.map +1 -0
  39. package/lib/errors.d.ts +6 -0
  40. package/lib/errors.d.ts.map +1 -0
  41. package/lib/errors.js +9 -0
  42. package/lib/errors.js.map +1 -0
  43. package/lib/foreground-deployment-runtime.d.ts +20 -0
  44. package/lib/foreground-deployment-runtime.d.ts.map +1 -0
  45. package/lib/foreground-deployment-runtime.js +79 -0
  46. package/lib/foreground-deployment-runtime.js.map +1 -0
  47. package/lib/foreground-deployment.d.ts +17 -0
  48. package/lib/foreground-deployment.d.ts.map +1 -0
  49. package/lib/foreground-deployment.js +43 -0
  50. package/lib/foreground-deployment.js.map +1 -0
  51. package/lib/host-attestor.d.ts +1 -1
  52. package/lib/host-attestor.d.ts.map +1 -1
  53. package/lib/host-attestor.js +51 -57
  54. package/lib/host-attestor.js.map +1 -1
  55. package/lib/index.d.ts +25 -2
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +11 -2
  58. package/lib/index.js.map +1 -1
  59. package/lib/npm-publish.d.ts +25 -0
  60. package/lib/npm-publish.d.ts.map +1 -0
  61. package/lib/npm-publish.js +280 -0
  62. package/lib/npm-publish.js.map +1 -0
  63. package/lib/owner-task-gap-types.d.ts +21 -0
  64. package/lib/owner-task-gap-types.d.ts.map +1 -0
  65. package/lib/owner-task-gap-types.js +2 -0
  66. package/lib/owner-task-gap-types.js.map +1 -0
  67. package/lib/owner-task-gaps.d.ts +24 -0
  68. package/lib/owner-task-gaps.d.ts.map +1 -0
  69. package/lib/owner-task-gaps.js +74 -0
  70. package/lib/owner-task-gaps.js.map +1 -0
  71. package/lib/post-activation.d.ts +33 -0
  72. package/lib/post-activation.d.ts.map +1 -0
  73. package/lib/post-activation.js +219 -0
  74. package/lib/post-activation.js.map +1 -0
  75. package/lib/registry-fetch.d.ts +50 -0
  76. package/lib/registry-fetch.d.ts.map +1 -0
  77. package/lib/registry-fetch.js +267 -0
  78. package/lib/registry-fetch.js.map +1 -0
  79. package/lib/release.d.ts +4 -4
  80. package/lib/release.d.ts.map +1 -1
  81. package/lib/release.js +142 -56
  82. package/lib/release.js.map +1 -1
  83. package/lib/replay-endpoint-protocol.d.ts +65 -0
  84. package/lib/replay-endpoint-protocol.d.ts.map +1 -0
  85. package/lib/replay-endpoint-protocol.js +183 -0
  86. package/lib/replay-endpoint-protocol.js.map +1 -0
  87. package/lib/replay-endpoint.d.ts +7 -0
  88. package/lib/replay-endpoint.d.ts.map +1 -0
  89. package/lib/replay-endpoint.js +193 -0
  90. package/lib/replay-endpoint.js.map +1 -0
  91. package/lib/replay-grant.d.ts +62 -0
  92. package/lib/replay-grant.d.ts.map +1 -0
  93. package/lib/replay-grant.js +208 -0
  94. package/lib/replay-grant.js.map +1 -0
  95. package/lib/replay-journal.d.ts +25 -0
  96. package/lib/replay-journal.d.ts.map +1 -0
  97. package/lib/replay-journal.js +275 -0
  98. package/lib/replay-journal.js.map +1 -0
  99. package/lib/runtime-observer-protocol.d.ts +63 -0
  100. package/lib/runtime-observer-protocol.d.ts.map +1 -0
  101. package/lib/runtime-observer-protocol.js +280 -0
  102. package/lib/runtime-observer-protocol.js.map +1 -0
  103. package/lib/runtime-observer.d.ts +8 -0
  104. package/lib/runtime-observer.d.ts.map +1 -0
  105. package/lib/runtime-observer.js +182 -0
  106. package/lib/runtime-observer.js.map +1 -0
  107. package/lib/service.d.ts +145 -1
  108. package/lib/service.d.ts.map +1 -1
  109. package/lib/service.js +734 -6
  110. package/lib/service.js.map +1 -1
  111. package/lib/source-adoption-authority.d.ts +65 -0
  112. package/lib/source-adoption-authority.d.ts.map +1 -0
  113. package/lib/source-adoption-authority.js +271 -0
  114. package/lib/source-adoption-authority.js.map +1 -0
  115. package/lib/source-adoption-runner.d.ts +28 -0
  116. package/lib/source-adoption-runner.d.ts.map +1 -0
  117. package/lib/source-adoption-runner.js +197 -0
  118. package/lib/source-adoption-runner.js.map +1 -0
  119. package/lib/source-approval-authority.d.ts +50 -0
  120. package/lib/source-approval-authority.d.ts.map +1 -0
  121. package/lib/source-approval-authority.js +412 -0
  122. package/lib/source-approval-authority.js.map +1 -0
  123. package/lib/source-approval-client.d.ts +32 -0
  124. package/lib/source-approval-client.d.ts.map +1 -0
  125. package/lib/source-approval-client.js +175 -0
  126. package/lib/source-approval-client.js.map +1 -0
  127. package/lib/source-build.d.ts +60 -0
  128. package/lib/source-build.d.ts.map +1 -0
  129. package/lib/source-build.js +311 -0
  130. package/lib/source-build.js.map +1 -0
  131. package/lib/source-context.d.ts +24 -0
  132. package/lib/source-context.d.ts.map +1 -0
  133. package/lib/source-context.js +99 -0
  134. package/lib/source-context.js.map +1 -0
  135. package/lib/source-job-types.d.ts +87 -0
  136. package/lib/source-job-types.d.ts.map +1 -0
  137. package/lib/source-job-types.js +2 -0
  138. package/lib/source-job-types.js.map +1 -0
  139. package/lib/source-jobs.d.ts +113 -0
  140. package/lib/source-jobs.d.ts.map +1 -0
  141. package/lib/source-jobs.js +535 -0
  142. package/lib/source-jobs.js.map +1 -0
  143. package/lib/source-release-authority.d.ts +35 -0
  144. package/lib/source-release-authority.d.ts.map +1 -0
  145. package/lib/source-release-authority.js +271 -0
  146. package/lib/source-release-authority.js.map +1 -0
  147. package/lib/source-release-client.d.ts +10 -0
  148. package/lib/source-release-client.d.ts.map +1 -0
  149. package/lib/source-release-client.js +24 -0
  150. package/lib/source-release-client.js.map +1 -0
  151. package/lib/source-release-runner.d.ts +31 -0
  152. package/lib/source-release-runner.d.ts.map +1 -0
  153. package/lib/source-release-runner.js +125 -0
  154. package/lib/source-release-runner.js.map +1 -0
  155. package/lib/source-versioning.d.ts +24 -0
  156. package/lib/source-versioning.d.ts.map +1 -0
  157. package/lib/source-versioning.js +213 -0
  158. package/lib/source-versioning.js.map +1 -0
  159. package/lib/source-workspace.d.ts +117 -0
  160. package/lib/source-workspace.d.ts.map +1 -0
  161. package/lib/source-workspace.js +458 -0
  162. package/lib/source-workspace.js.map +1 -0
  163. package/lib/sqlite.d.ts +1 -1
  164. package/lib/sqlite.d.ts.map +1 -1
  165. package/lib/sqlite.js +509 -7
  166. package/lib/sqlite.js.map +1 -1
  167. package/lib/store.d.ts +229 -6
  168. package/lib/store.d.ts.map +1 -1
  169. package/lib/store.js +2431 -383
  170. package/lib/store.js.map +1 -1
  171. package/lib/task-observation-authority.d.ts +29 -0
  172. package/lib/task-observation-authority.d.ts.map +1 -0
  173. package/lib/task-observation-authority.js +370 -0
  174. package/lib/task-observation-authority.js.map +1 -0
  175. package/lib/task-observation-client.d.ts +4 -0
  176. package/lib/task-observation-client.d.ts.map +1 -0
  177. package/lib/task-observation-client.js +20 -0
  178. package/lib/task-observation-client.js.map +1 -0
  179. package/lib/task-observation-runtime.d.ts +59 -0
  180. package/lib/task-observation-runtime.d.ts.map +1 -0
  181. package/lib/task-observation-runtime.js +331 -0
  182. package/lib/task-observation-runtime.js.map +1 -0
  183. package/lib/task-observation-store.d.ts +17 -0
  184. package/lib/task-observation-store.d.ts.map +1 -0
  185. package/lib/task-observation-store.js +115 -0
  186. package/lib/task-observation-store.js.map +1 -0
  187. package/lib/task-observation-types.d.ts +67 -0
  188. package/lib/task-observation-types.d.ts.map +1 -0
  189. package/lib/task-observation-types.js +2 -0
  190. package/lib/task-observation-types.js.map +1 -0
  191. package/lib/trust.d.ts +3 -0
  192. package/lib/trust.d.ts.map +1 -1
  193. package/lib/trust.js +0 -0
  194. package/lib/trust.js.map +1 -1
  195. package/lib/types.d.ts +275 -8
  196. package/lib/types.d.ts.map +1 -1
  197. package/lib/version.d.ts +1 -1
  198. package/lib/version.js +1 -1
  199. package/package.json +40 -5
@@ -0,0 +1,241 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { isAbsolute, resolve } from 'node:path';
3
+ import { activatePluginPlan, probePluginPlan } from './cli.js';
4
+ import { controlPlaneDigest } from './store.js';
5
+ const OWNER = 'plugin-control-plane-adoption-coordinator';
6
+ const EXECUTOR = 'plugin-control-plane-adoption-coordinator-v1';
7
+ const CATALOG = controlPlaneDigest({ executor: EXECUTOR, version: 1, operation: 'advance-adoption-handoff' });
8
+ const AWAITING = new Set([
9
+ 'awaiting-reload', 'awaiting-readiness', 'awaiting-effect-blocked-replay', 'awaiting-shadow',
10
+ 'awaiting-canary', 'awaiting-soak', 'awaiting-health',
11
+ ]);
12
+ export function validateAdoptionCoordinatorConfig(value) {
13
+ if (!value || typeof value !== 'object' || Array.isArray(value))
14
+ throw new Error('plugin-control-plane: invalid adoption coordinator configuration');
15
+ const config = value;
16
+ const scope = config.scope;
17
+ const exact = (record, keys) => typeof record === 'object' && record !== null && !Array.isArray(record)
18
+ && Object.keys(record).sort().join(',') === [...keys].sort().join(',');
19
+ const text = (item) => typeof item === 'string' && item.length > 0 && item.length <= 4096
20
+ && item.normalize('NFC').trim() === item && !/[\p{Cc}]/u.test(item);
21
+ if (!exact(config, ['coordinatorId', 'scope', 'timeoutMs', 'budgetId', 'budgetAmount']) || !exact(scope, ['workspace', 'preset', 'principalId', 'ownerRouteId'])
22
+ || !text(config.coordinatorId) || typeof config.coordinatorId !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$/u.test(config.coordinatorId)
23
+ || !Object.values(scope).every(text) || typeof scope.workspace !== 'string' || !isAbsolute(scope.workspace)
24
+ || resolve(scope.workspace) !== scope.workspace || !Number.isSafeInteger(config.timeoutMs) || typeof config.timeoutMs !== 'number'
25
+ || config.timeoutMs < 1_000 || config.timeoutMs > 300_000 || !text(config.budgetId)
26
+ || typeof config.budgetId !== 'string' || config.budgetId.length > 128
27
+ || !Number.isSafeInteger(config.budgetAmount) || typeof config.budgetAmount !== 'number'
28
+ || config.budgetAmount < 1 || config.budgetAmount > 10_000_000) {
29
+ throw new Error('plugin-control-plane: invalid adoption coordinator configuration');
30
+ }
31
+ }
32
+ function terminal(plan) { return plan.status === 'activated' || plan.status === 'rolled-back'; }
33
+ function exposed(plan) { return plan.status === 'staging' || plan.status === 'commit-pending' || AWAITING.has(plan.status); }
34
+ /**
35
+ * Advance an already signed source handoff only through Host attestation.
36
+ * This Host deliberately leaves `commit-pending` for the target Host.
37
+ */
38
+ export async function coordinateAdoptionHandoff(options) {
39
+ const current = async () => {
40
+ options.signal?.throwIfAborted();
41
+ await options.assertCurrent?.();
42
+ options.signal?.throwIfAborted();
43
+ };
44
+ const finishRollback = async (plan) => {
45
+ if (plan.status !== 'rollback-pending' || plan.activation === undefined)
46
+ return plan;
47
+ const rollback = plan;
48
+ const activation = rollback.activation;
49
+ if (activation === undefined)
50
+ return rollback;
51
+ if (activation.rollbackProfileRestored) {
52
+ await current();
53
+ return probePluginPlan({ store: options.store, trust: options.trust, planId: rollback.id,
54
+ expectedRevision: rollback.revision, expectedFence: activation.fence, deferCommit: true, ...(options.signal === undefined ? {} : { signal: options.signal }) });
55
+ }
56
+ await current();
57
+ let restored = await activatePluginPlan({ store: options.store, trust: options.trust, planId: rollback.id,
58
+ expectedRevision: rollback.revision, ...(options.signal === undefined ? {} : { signal: options.signal }) });
59
+ if (restored.status === 'rollback-pending' && restored.activation?.rollbackProfileRestored) {
60
+ await current();
61
+ restored = await probePluginPlan({ store: options.store, trust: options.trust, planId: restored.id,
62
+ expectedRevision: restored.revision, expectedFence: restored.activation.fence, deferCommit: true, ...(options.signal === undefined ? {} : { signal: options.signal }) });
63
+ }
64
+ return restored;
65
+ };
66
+ const recoverExpired = async (plan) => {
67
+ if (plan.status === 'rollback-pending')
68
+ return finishRollback(plan);
69
+ if (!exposed(plan) || plan.activation === undefined)
70
+ return plan;
71
+ await current();
72
+ const rollback = options.store.requestActivationRollback({ planId: plan.id, expectedRevision: plan.revision,
73
+ fence: plan.activation.fence, failureCode: 'adoption-handoff-expired' });
74
+ return finishRollback(rollback);
75
+ };
76
+ for (let phase = 0; phase < 16; phase++) {
77
+ await current();
78
+ let plan = options.store.getPlan(options.planId);
79
+ if (terminal(plan))
80
+ return plan;
81
+ if (plan.status === 'rollback-pending')
82
+ return finishRollback(plan);
83
+ try {
84
+ options.store.assertAdoptionHandoff(plan.id);
85
+ }
86
+ catch (error) {
87
+ // The Store's rollback admission rejects a claimed unknown Host dispatch.
88
+ // Propagating that conflict preserves the durable no-replay barrier.
89
+ const handoff = options.store.getAdoptionHandoff(plan.id), terms = plan.dossier.handoff;
90
+ if (handoff !== undefined && terms !== undefined && handoff.planDigest === plan.digest && handoff.coordinatorId === terms.coordinatorId
91
+ && (handoff.revokedAt !== undefined || handoff.expiresAt <= Date.now()))
92
+ return recoverExpired(plan);
93
+ throw error;
94
+ }
95
+ await current();
96
+ const before = { status: plan.status, revision: plan.revision, fence: plan.activation?.fence };
97
+ if (plan.status === 'approved' || plan.status === 'staging') {
98
+ options.store.assertAdoptionHandoff(plan.id);
99
+ plan = await activatePluginPlan({ store: options.store, trust: options.trust, planId: plan.id,
100
+ expectedRevision: plan.revision, ...(options.signal === undefined ? {} : { signal: options.signal }) });
101
+ }
102
+ else if (AWAITING.has(plan.status)) {
103
+ if (plan.activation === undefined)
104
+ throw new Error('plugin-control-plane: adoption plan awaiting Host attestation has no fence');
105
+ options.store.assertAdoptionHandoff(plan.id);
106
+ plan = await probePluginPlan({ store: options.store, trust: options.trust, planId: plan.id,
107
+ expectedRevision: plan.revision, expectedFence: plan.activation.fence, deferCommit: true, ...(options.signal === undefined ? {} : { signal: options.signal }) });
108
+ }
109
+ else if (plan.status === 'commit-pending') {
110
+ return plan;
111
+ }
112
+ else
113
+ return plan;
114
+ await current();
115
+ if (plan.status === 'commit-pending' || terminal(plan)
116
+ || (plan.status === before.status && plan.revision === before.revision && plan.activation?.fence === before.fence))
117
+ return plan;
118
+ }
119
+ return options.store.getPlan(options.planId);
120
+ }
121
+ /** Native Automations cron coordinator. It owns no private scheduler or final commit. */
122
+ export class AdoptionCoordinatorRuntime {
123
+ options;
124
+ abort = new AbortController();
125
+ flights = new Set();
126
+ generation = randomUUID();
127
+ activationNonce;
128
+ automationId;
129
+ active = false;
130
+ cursor = 0;
131
+ unregister;
132
+ closing;
133
+ lastError = null;
134
+ constructor(options) {
135
+ this.options = options;
136
+ validateAdoptionCoordinatorConfig(options.config);
137
+ const identity = controlPlaneDigest({ coordinatorId: options.config.coordinatorId, scope: options.config.scope });
138
+ this.automationId = `adoption-coordinator-${identity.slice(0, 40)}`;
139
+ this.activationNonce = controlPlaneDigest({ identity, generation: this.generation });
140
+ }
141
+ start() {
142
+ if (this.active)
143
+ return;
144
+ this.unregister = this.options.automations.registerHostExecutor({
145
+ descriptor: { executorId: EXECUTOR, contractVersion: 1, catalogDigest: CATALOG },
146
+ accepts: spec => spec.executorId === EXECUTOR && spec.executorContractVersion === 1 && spec.catalogDigest === CATALOG
147
+ && spec.runbookId === 'coordinate' && spec.runbookVersion === 1,
148
+ execute: input => this.track(this.execute(input)),
149
+ });
150
+ try {
151
+ this.active = true;
152
+ this.options.automations.reconcileSystem({ owner: OWNER, automationId: this.automationId,
153
+ idempotencyKey: `${this.automationId}:${this.generation}:active`, desiredStatus: 'active', definition: this.definition() });
154
+ }
155
+ catch (error) {
156
+ this.active = false;
157
+ try {
158
+ this.unregister?.();
159
+ }
160
+ catch { /* preserve registration failure */ }
161
+ throw error;
162
+ }
163
+ }
164
+ close() {
165
+ return this.closing ??= (async () => {
166
+ this.active = false;
167
+ try {
168
+ const registration = this.options.automations.inspectSystemOwnedActivation({ owner: OWNER, automationId: this.automationId });
169
+ if (registration?.activationNonce === this.activationNonce)
170
+ this.options.automations.reconcileSystem({ owner: OWNER,
171
+ automationId: this.automationId, idempotencyKey: `${this.automationId}:${this.generation}:pause`, desiredStatus: 'paused', definition: this.definition() });
172
+ }
173
+ finally {
174
+ this.abort.abort();
175
+ try {
176
+ this.unregister?.();
177
+ }
178
+ finally {
179
+ await Promise.allSettled(this.flights);
180
+ this.options.store.close();
181
+ }
182
+ }
183
+ })();
184
+ }
185
+ health = () => ({ connected: this.active, lastError: this.lastError });
186
+ track(flight) {
187
+ this.flights.add(flight);
188
+ void flight.finally(() => this.flights.delete(flight)).catch(() => { });
189
+ return flight;
190
+ }
191
+ current(signal) {
192
+ this.abort.signal.throwIfAborted();
193
+ signal?.throwIfAborted();
194
+ if (!this.active)
195
+ throw new Error('adoption coordinator unavailable');
196
+ this.options.assertCurrent();
197
+ }
198
+ definition() {
199
+ const { scope, timeoutMs, budgetId, budgetAmount } = this.options.config;
200
+ return { name: 'Coordinate plugin adoption handoffs', schedule: { kind: 'cron', expression: '* * * * *', timezone: 'UTC' },
201
+ workspace: scope.workspace, agentPreset: scope.preset, timeoutMs, misfire: { kind: 'latest' }, overlap: 'skip', retrySafety: 'never', maxRetries: 0,
202
+ principal: scope.principalId, budgetId, budgetAmount, execution: { kind: 'host', executorId: EXECUTOR, executorContractVersion: 1, runbookId: 'coordinate', runbookVersion: 1,
203
+ catalogDigest: CATALOG, targetScope: { workspace: scope.workspace, preset: scope.preset }, scopeDigest: controlPlaneDigest([scope.workspace, scope.preset]),
204
+ ownerRouteId: scope.ownerRouteId, activationNonce: this.activationNonce } };
205
+ }
206
+ handoffs() {
207
+ return this.options.store.listAdoptionHandoffs(this.options.config.coordinatorId, 100);
208
+ }
209
+ async execute(input) {
210
+ const failure = (unknown) => ({ outcome: unknown ? 'unknown' : 'failed', failureClass: unknown ? 'unknown' : 'configuration',
211
+ failurePhase: 'host-execution', failureCode: 'adoption-coordinator-rejected', sideEffectState: unknown ? 'unknown' : 'none', retryability: unknown ? 'unsafe' : 'after-intervention' });
212
+ let began = false;
213
+ try {
214
+ this.current(input.signal);
215
+ const { scope } = this.options.config;
216
+ const registration = this.options.automations.inspectSystemOwnedActivation({ owner: OWNER, automationId: this.automationId });
217
+ if (input.executionMode !== 'production' || input.automationId !== this.automationId || input.activationNonce !== this.activationNonce
218
+ || input.catalogDigest !== CATALOG || input.definitionHash !== registration?.definitionHash || registration.activationNonce !== this.activationNonce
219
+ || input.ownerRouteId !== scope.ownerRouteId || input.principal !== scope.principalId || input.targetScope.workspace !== scope.workspace || input.targetScope.preset !== scope.preset) {
220
+ throw new Error('adoption coordinator dispatch changed');
221
+ }
222
+ const signal = AbortSignal.any([this.abort.signal, input.signal, AbortSignal.timeout(this.options.config.timeoutMs)]);
223
+ this.current(signal);
224
+ const handoffs = this.handoffs();
225
+ if (handoffs.length) {
226
+ const handoff = handoffs[this.cursor++ % handoffs.length];
227
+ began = true;
228
+ await coordinateAdoptionHandoff({ store: this.options.store, trust: this.options.trust, planId: handoff.planId, signal,
229
+ assertCurrent: () => this.current(signal) });
230
+ this.current(signal);
231
+ }
232
+ this.lastError = null;
233
+ return { outcome: 'succeeded', failureClass: 'none', failurePhase: 'none', failureCode: 'none', sideEffectState: 'possible', retryability: 'unsafe' };
234
+ }
235
+ catch (error) {
236
+ this.lastError = error instanceof Error ? error.message.slice(0, 200) : 'adoption coordinator failed';
237
+ return failure(began || this.abort.signal.aborted || input.signal.aborted);
238
+ }
239
+ }
240
+ }
241
+ //# sourceMappingURL=adoption-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption-coordinator.js","sourceRoot":"","sources":["../src/adoption-coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface AdoptionHandoffTerms {
2
+ schemaVersion: 1;
3
+ coordinatorId: string;
4
+ maximumWindowMs: number;
5
+ commit: 'target-host';
6
+ }
7
+ export interface AdoptionHandoffRecord {
8
+ planId: string;
9
+ planDigest: string;
10
+ coordinatorId: string;
11
+ createdAt: number;
12
+ expiresAt: number;
13
+ revokedAt?: number;
14
+ }
15
+ export declare function validateAdoptionHandoffTerms(value: unknown): asserts value is AdoptionHandoffTerms;
16
+ //# sourceMappingURL=adoption-handoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption-handoff.d.ts","sourceRoot":"","sources":["../src/adoption-handoff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IAAG,aAAa,EAAE,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE;AACjI,MAAM,WAAW,qBAAqB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AAE9J,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAOlG"}
@@ -0,0 +1,11 @@
1
+ export function validateAdoptionHandoffTerms(value) {
2
+ if (!value || typeof value !== 'object' || Array.isArray(value))
3
+ throw new Error('invalid adoption handoff terms');
4
+ const v = value;
5
+ if (Object.keys(v).sort().join(',') !== 'commit,coordinatorId,maximumWindowMs,schemaVersion'
6
+ || v.schemaVersion !== 1 || v.commit !== 'target-host' || typeof v.coordinatorId !== 'string'
7
+ || !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$/u.test(v.coordinatorId)
8
+ || typeof v.maximumWindowMs !== 'number' || !Number.isSafeInteger(v.maximumWindowMs) || v.maximumWindowMs < 1_000 || v.maximumWindowMs > 86_400_000)
9
+ throw new Error('invalid adoption handoff terms');
10
+ }
11
+ //# sourceMappingURL=adoption-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption-handoff.js","sourceRoot":"","sources":["../src/adoption-handoff.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAClH,MAAM,CAAC,GAAG,KAAgC,CAAA;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,oDAAoD;WACvF,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ;WAC1F,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;WAC7D,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,eAAe,GAAG,KAAK,IAAI,CAAC,CAAC,eAAe,GAAG,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;AAC1M,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAwGnB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAA2B;AAChH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAA4B;AAEpH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAoBlF;AAkCD,qBAAa,+BAAgC,YAAW,wBAAwB;IAE5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM;gBAHjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,MAAiB;IAGjC,MAAM,CAAC,YAAY,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAyBlJ;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,GAAG,MAAM,CAExG"}
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,YAAY,CAAA;AA4InB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAA2B;AAChH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAA4B;AAEpH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAoBlF;AAsCD,qBAAa,+BAAgC,YAAW,wBAAwB;IAE5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM;gBAHjB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,MAAiB;IAGjC,MAAM,CAAC,YAAY,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CA8BlJ;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,GAAG,MAAM,CAExG"}
@@ -3,7 +3,10 @@ import { ControlPlaneStoreError } from './store.js';
3
3
  const ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$/u;
4
4
  const DIGEST = /^[a-f0-9]{64}$/u;
5
5
  const UUID = /^[a-f0-9]{8}-[a-f0-9]{4}-[1-8][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/u;
6
- const phases = new Set(['reload', 'readiness', 'effect-blocked-replay', 'shadow', 'canary', 'soak', 'health']);
6
+ const phases = new Set(['reload', 'readiness', 'effect-blocked-replay', 'shadow', 'canary', 'soak', 'health', 'rollback']);
7
+ const predecessorPhase = Object.freeze({
8
+ readiness: 'reload', 'effect-blocked-replay': 'readiness', shadow: 'effect-blocked-replay', canary: 'shadow', soak: 'canary', health: 'soak',
9
+ });
7
10
  function canonical(value) {
8
11
  if (Array.isArray(value))
9
12
  return `[${value.map(canonical).join(',')}]`;
@@ -102,8 +105,43 @@ function parseEvidence(value) {
102
105
  throw new ControlPlaneStoreError('invalid-input', 'health failures exceed checks');
103
106
  return { kind, checks, failures, probeDigest: text(item.probeDigest, 'probeDigest', DIGEST) };
104
107
  }
108
+ if (kind === 'rollback') {
109
+ exact(item, ['kind', 'action', 'previousHostGeneration', 'currentHostGeneration', 'checks', 'failures', 'profileRestored', 'probeDigest'], 'rollback evidence');
110
+ if ((item.action !== 'restore' && item.action !== 'stop') || typeof item.profileRestored !== 'boolean')
111
+ throw new ControlPlaneStoreError('invalid-input', 'rollback evidence fields are invalid');
112
+ const checks = integer(item.checks, 'checks');
113
+ const failures = integer(item.failures, 'failures');
114
+ if (failures > checks)
115
+ throw new ControlPlaneStoreError('invalid-input', 'rollback failures exceed checks');
116
+ return { kind, action: item.action, previousHostGeneration: integer(item.previousHostGeneration, 'previousHostGeneration'),
117
+ currentHostGeneration: integer(item.currentHostGeneration, 'currentHostGeneration', 1), checks, failures,
118
+ profileRestored: item.profileRestored, probeDigest: text(item.probeDigest, 'probeDigest', DIGEST) };
119
+ }
105
120
  throw new ControlPlaneStoreError('invalid-input', 'host attestation evidence kind is invalid');
106
121
  }
122
+ function assertRequestPredecessor(request) {
123
+ if (request.schemaVersion !== 2 || !phases.has(request.phase)) {
124
+ throw new ControlPlaneStoreError('invalid-input', 'Host attestation request must use schema version 2');
125
+ }
126
+ if (request.predecessor === null) {
127
+ if (request.phase !== 'reload' && request.phase !== 'rollback') {
128
+ throw new ControlPlaneStoreError('conflict', 'normal Host attestation request lacks its predecessor');
129
+ }
130
+ return;
131
+ }
132
+ const predecessor = record(request.predecessor, 'Host attestation predecessor');
133
+ exact(predecessor, ['operationId', 'receiptId', 'phase', 'receiptDigest', 'hostGeneration'], 'Host attestation predecessor');
134
+ const operationId = text(predecessor.operationId, 'predecessor operationId');
135
+ text(predecessor.receiptId, 'predecessor receiptId');
136
+ if (typeof predecessor.phase !== 'string' || !phases.has(predecessor.phase) || predecessor.phase === request.phase || operationId === request.operationId) {
137
+ throw new ControlPlaneStoreError('invalid-input', 'Host attestation predecessor phase or operation is invalid');
138
+ }
139
+ text(predecessor.receiptDigest, 'predecessor receiptDigest', DIGEST);
140
+ integer(predecessor.hostGeneration, 'predecessor hostGeneration', 1);
141
+ if (request.phase !== 'rollback' && predecessor.phase !== predecessorPhase[request.phase]) {
142
+ throw new ControlPlaneStoreError('conflict', 'Host attestation predecessor phase is not the immediately preceding phase');
143
+ }
144
+ }
107
145
  function canonicalReceipt(receipt) {
108
146
  return canonical({
109
147
  schemaVersion: receipt.schemaVersion, receiptId: receipt.receiptId, authority: receipt.authority,
@@ -176,6 +214,11 @@ function assertPassedEvidence(receipt, request) {
176
214
  else if (evidence.kind === 'health' && requirements.kind === 'health') {
177
215
  passed = evidence.checks >= requirements.minimumChecks && evidence.failures <= requirements.maximumFailures;
178
216
  }
217
+ else if (evidence.kind === 'rollback' && requirements.kind === 'rollback') {
218
+ passed = evidence.action === requirements.action && evidence.previousHostGeneration === requirements.previousHostGeneration
219
+ && evidence.currentHostGeneration === receipt.hostGeneration && evidence.currentHostGeneration > requirements.previousHostGeneration
220
+ && evidence.checks >= requirements.minimumChecks && evidence.failures === 0 && evidence.profileRestored;
221
+ }
179
222
  if (!passed)
180
223
  throw new ControlPlaneStoreError('invalid-input', `passed ${request.phase} receipt does not satisfy its signed evidence contract`);
181
224
  }
@@ -191,6 +234,7 @@ export class Ed25519HostAttestationAuthority {
191
234
  this.now = now;
192
235
  }
193
236
  async verify(receiptInput, plan, request) {
237
+ assertRequestPredecessor(request);
194
238
  const receipt = parseHostAttestationReceipt(receiptInput);
195
239
  const configuredIssuerMismatch = request.issuer.mode === 'configured-executable'
196
240
  && (receipt.authority !== request.issuer.authority || receipt.keyId !== request.issuer.keyId);
@@ -211,6 +255,10 @@ export class Ed25519HostAttestationAuthority {
211
255
  if (!verify(null, Buffer.from(canonicalReceipt(receipt)), createPublicKey(this.publicKey), signature)) {
212
256
  throw new ControlPlaneStoreError('invalid-input', 'host attestation signature is invalid');
213
257
  }
258
+ if (request.phase !== 'reload' && request.phase !== 'rollback'
259
+ && receipt.hostGeneration !== request.predecessor.hostGeneration) {
260
+ throw new ControlPlaneStoreError('conflict', 'non-transition Host attestation receipt changed generation from its predecessor');
261
+ }
214
262
  assertPassedEvidence(receipt, request);
215
263
  const { signature: _signature, ...fields } = receipt;
216
264
  return Object.freeze({ ...fields, signatureDigest: createHash('sha256').update(signature).digest('hex') });
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAUnD,MAAM,EAAE,GAAG,sCAAsC,CAAA;AACjD,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAChC,MAAM,IAAI,GAAG,4EAA4E,CAAA;AACzF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE9G,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;aACjG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACxI,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,IAAY,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;AAE9G,SAAS,MAAM,CAAC,KAAc,EAAE,KAAa;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,GAAG,KAAK,oBAAoB,CAAC,CAAA;IACxJ,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,KAAK,CAAC,KAA8B,EAAE,MAAyB,EAAE,KAAa;IACrF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,GAAG,KAAK,gCAAgC,CAAC,CAAA;AACzK,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa,EAAE,OAAO,GAAG,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,GAAG,KAAK,4BAA4B,CAAC,CAAA;IACpJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,KAAa,EAAE,OAAO,GAAG,EAAE;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,GAAG,KAAK,aAAa,CAAC,CAAA;IAC/H,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACtB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,aAAa,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACtH,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,0CAA0C,CAAC,CAAA;QACrI,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;YAC5H,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IACxJ,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAA;QAChF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAClG,IAAI,QAAQ,GAAG,MAAM;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAA;QAC5G,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IAC/F,CAAC;IACD,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,gCAAgC,CAAC,CAAA;QAClL,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QAAC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;QACrJ,MAAM,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;QAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAA;QACnL,IAAI,eAAe,GAAG,gBAAgB,IAAI,oBAAoB,GAAG,qBAAqB;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,0CAA0C,CAAC,CAAA;QACrL,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe;YAC9C,qBAAqB,EAAE,oBAAoB;YAC3C,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,CAAA;IACtI,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACnG,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC3G,IAAI,UAAU,GAAG,OAAO;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAA;QAC/G,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU;YAChC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IACnI,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACzG,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACrG,IAAI,QAAQ,GAAG,OAAO;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAA;QAC3G,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;YAC7G,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IACnF,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAA;QAChH,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAAC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;QAC5I,IAAI,aAAa,GAAG,eAAe;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAA;QAC1H,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACrG,IAAI,QAAQ,GAAG,OAAO;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAA;QACzG,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO;YACpD,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IAC1E,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAClG,IAAI,QAAQ,GAAG,MAAM;YAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAA;QACzG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAA;IAC/F,CAAC;IACD,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,2CAA2C,CAAC,CAAA;AAChG,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA+B;IACvD,OAAO,SAAS,CAAC;QACf,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;QAChG,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM;QACpF,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;QACxF,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;QAC5F,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC5F,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;KACrG,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAA+B,IAAY,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;AAChH,MAAM,UAAU,6BAA6B,CAAC,QAAiC,IAAY,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;AAEpH,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc;QACvH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAC3K,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;WACpF,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;WAC9F,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAA;IAC9I,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;QAC5G,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,CAAC;QACnG,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;QACnJ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC;QAC5J,KAAK,EAAE,IAAI,CAAC,KAAwC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9I,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC;QAC3G,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;KAC/H,CAAA;IACD,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,6BAA6B,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1H,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,kEAAkE,CAAC,CAAA;IACvH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA+B,EAAE,OAA+B;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IAC5E,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK;QAAE,MAAM,IAAI,sBAAsB,CAAC,UAAU,EAAE,8CAA8C,CAAC,CAAA;IACxK,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAM;IACxC,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjE,MAAM,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,KAAK,OAAO,CAAC,cAAc;eAClF,QAAQ,CAAC,sBAAsB,KAAK,YAAY,CAAC,sBAAsB;eACvE,QAAQ,CAAC,qBAAqB,GAAG,YAAY,CAAC,sBAAsB,CAAA;IAC3E,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9E,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAA;IACnF,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,uBAAuB,IAAI,YAAY,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACtG,MAAM,GAAG,QAAQ,CAAC,gBAAgB,IAAI,YAAY,CAAC,uBAAuB,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,gBAAgB;eAC/H,QAAQ,CAAC,qBAAqB,IAAI,YAAY,CAAC,4BAA4B,IAAI,QAAQ,CAAC,oBAAoB,KAAK,QAAQ,CAAC,qBAAqB;eAC/I,QAAQ,CAAC,eAAe,IAAI,YAAY,CAAC,sBAAsB,CAAA;IACtE,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc,IAAI,QAAQ,CAAC,UAAU,IAAI,YAAY,CAAC,iBAAiB;eAC5G,QAAQ,CAAC,eAAe,IAAI,YAAY,CAAC,sBAAsB,CAAA;IACtE,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,GAAG,QAAQ,CAAC,SAAS,KAAK,YAAY,CAAC,gBAAgB,IAAI,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc;eAC3G,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAA;IACxD,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC5G,MAAM,GAAG,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe;eACrF,QAAQ,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc,IAAI,WAAW,IAAI,YAAY,CAAC,kBAAkB;eACjG,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,UAAU,CAAA;IACtG,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxE,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAA;IAC7G,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,UAAU,OAAO,CAAC,KAAK,wDAAwD,CAAC,CAAA;AACjJ,CAAC;AAED,MAAM,OAAO,+BAA+B;IAE/B;IACA;IACA;IACA;IAJX,YACW,SAA0B,EAC1B,iBAAyB,EACzB,aAAqB,EACrB,MAAoB,IAAI,CAAC,GAAG;QAH5B,cAAS,GAAT,SAAS,CAAiB;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,kBAAa,GAAb,aAAa,CAAQ;QACrB,QAAG,GAAH,GAAG,CAAyB;IACpC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,YAAoC,EAAE,IAA0B,EAAE,OAA+B;QAC5G,MAAM,OAAO,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAA;QACzD,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,uBAAuB;eAC3E,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/F,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa;eACnF,wBAAwB;eACxB,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE;eAC5E,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE;eAClF,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;eAC1E,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,KAAK,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;YACpH,MAAM,IAAI,sBAAsB,CAAC,UAAU,EAAE,qGAAqG,CAAC,CAAA;QACrJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS;eACrI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YACnE,MAAM,IAAI,sBAAsB,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAA;QAClG,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YACtG,MAAM,IAAI,sBAAsB,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAA;QAC5F,CAAC;QACD,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC5G,CAAC;CACF;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAkD;IAC9F,OAAO,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/lib/catalog.js CHANGED
@@ -272,6 +272,26 @@ function canonicalFileUrl(value, label) {
272
272
  }
273
273
  return { url: value, path };
274
274
  }
275
+ function canonicalBareHttpsUrl(value, label) {
276
+ if (typeof value !== 'string' || value.length === 0 || value.length > 8_192
277
+ || value !== value.normalize('NFC').trim() || /[\\\\?#]/u.test(value)
278
+ || [...value].some(character => character.charCodeAt(0) <= 0x20 || character.charCodeAt(0) === 0x7f)
279
+ || /%(?:2e|2f|5c|25)|%(?![a-f0-9]{2})/iu.test(value)) {
280
+ throw new Error(`plugin-control-plane: ${label} must be a canonical bare HTTPS URL`);
281
+ }
282
+ let url;
283
+ try {
284
+ url = new URL(value);
285
+ }
286
+ catch {
287
+ throw new Error(`plugin-control-plane: ${label} must be a canonical bare HTTPS URL`);
288
+ }
289
+ if (url.protocol !== 'https:' || url.username !== '' || url.password !== '' || url.search !== '' || url.hash !== ''
290
+ || url.href !== value || url.pathname.includes('//')) {
291
+ throw new Error(`plugin-control-plane: ${label} must be a canonical bare HTTPS URL`);
292
+ }
293
+ return url;
294
+ }
275
295
  function catalogRegistry(value, packageName, version, label) {
276
296
  if (typeof value !== 'object' || value === null || Array.isArray(value)) {
277
297
  throw new Error(`plugin-control-plane: ${label}.registry must be an object`);
@@ -308,10 +328,17 @@ function catalogRegistry(value, packageName, version, label) {
308
328
  throw new Error(`plugin-control-plane: ${label}.registry.locator is invalid`);
309
329
  }
310
330
  if (locator.protocol !== 'https:' || locator.username !== '' || locator.password !== '' || locator.search !== '' || locator.hash !== ''
311
- || (locator.href !== item.locator && locator.href !== `${item.locator}/`) || item.reference !== `${packageName}@${version}`) {
331
+ || (locator.href !== item.locator && locator.href !== `${item.locator}/`)) {
312
332
  throw new Error(`plugin-control-plane: ${label}.registry must use a bounded HTTPS registry package reference`);
313
333
  }
314
- return Object.freeze({ id, locator: item.locator, reference: item.reference });
334
+ if (item.reference === `${packageName}@${version}`)
335
+ return Object.freeze({ id, locator: item.locator, reference: item.reference });
336
+ const reference = canonicalBareHttpsUrl(item.reference, `${label}.registry.reference`);
337
+ const prefix = locator.pathname.endsWith('/') ? locator.pathname : `${locator.pathname}/`;
338
+ if (reference.origin !== locator.origin || !reference.pathname.startsWith(prefix)) {
339
+ throw new Error(`plugin-control-plane: ${label}.registry.reference must be under its HTTPS registry locator`);
340
+ }
341
+ return Object.freeze({ id, locator: item.locator, reference: reference.href });
315
342
  }
316
343
  function catalogPackage(value, label) {
317
344
  if (typeof value !== 'object' || value === null || Array.isArray(value)) {