borgmcp-shared 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,16 +56,23 @@ functions and contracts include API documentation in their TypeScript sources.
56
56
 
57
57
  ## Handshake
58
58
 
59
- The first-slice HTTP contract has three shared paths:
59
+ The first-slice HTTP contract has four shared paths:
60
60
 
61
61
  - `GET /healthz` is the only unauthenticated liveness probe. Success is `204`
62
62
  with no body or identifying metadata.
63
- - `POST /api/enrollment/exchange` accepts a single-use invitation in a bounded
64
- JSON body over verified TLS and returns the client credential once. Secrets
65
- never belong in a URL, query string, command-line argument, diagnostic, or
66
- serializable domain entity.
63
+ - `POST /api/enrollment/exchange` accepts a single-use invitation, canonical
64
+ retry key, and client-generated 256-bit bearer in a bounded JSON body over
65
+ verified TLS. It returns only stable non-secret client identity and server
66
+ capabilities; owner enrollment grants `create_cube` but creates no cube. An exact
67
+ credential-proven retry is non-mutating, and a mismatched replay fails
68
+ uniformly. Secrets never belong in a response, URL, query string, command-line
69
+ argument, diagnostic, or serializable domain entity.
67
70
  - `GET /api/protocol` requires authentication and returns the protocol version,
68
71
  package version, capabilities, and bounded limits in the shared envelope.
72
+ - `POST /api/cubes` requires an active parent client with `create_cube`. Its
73
+ strict, idempotent request selects a server-owned template; one atomic success
74
+ creates a cube, two initial roles, and the creator's cube-scoped `manage`
75
+ grant. Exact retries return the same non-secret identities without mutation.
69
76
 
70
77
  `negotiateProtocol` requires bearer authentication, revocation, cube isolation,
71
78
  verified TLS, and no-cloud-fallback capabilities. Missing security capabilities
@@ -76,6 +83,8 @@ Every JSON coordination request and successful JSON response is carried inside
76
83
  exceptions are the `204` liveness and acknowledgement responses. Payload codecs
77
84
  are exported separately so adapters can validate the envelope first and then
78
85
  validate the operation-specific payload without accepting ambiguous fields.
86
+ See [docs/enrollment.md](docs/enrollment.md) for purpose-bound owner enrollment,
87
+ ordinary ungranted enrollment, cube creation, pending-keychain, and retry contracts.
79
88
 
80
89
  ## Conformance
81
90
 
@@ -84,7 +93,9 @@ Server and client implementations should run the vectors exported from
84
93
  readonly data rather than Vitest-specific helpers, so they work with any test
85
94
  runner and in any JavaScript runtime. Cases cover HTTP and canonical errors,
86
95
  credential misuse, isolation and revocation, SSE framing/replay/cursor ordering,
87
- acks, claims, decisions, and unsupported-capability failures.
96
+ executable enrollment authority/retry/mismatch/redaction and cube-create
97
+ idempotency, acks, claims, decisions, and
98
+ unsupported-capability failures.
88
99
 
89
100
  Implement `AdapterConformanceDriver` with raw responses from the target adapter,
90
101
  then call `runAdapterConformance`. The runner creates and decodes envelopes,
@@ -103,7 +114,7 @@ response shapes.
103
114
  describe the compatibility contract. During the pre-1.0 package series, new
104
115
  contracts may be added, but an existing wire shape will not change without a
105
116
  documented migration path and corresponding conformance coverage. Consumers pin
106
- `^0.2.0` (`>=0.2.0 <0.3.0`): before 1.0, breaking wire changes increment the
117
+ `^0.3.0` (`>=0.3.0 <0.4.0`): before 1.0, breaking wire changes increment the
107
118
  minor version while compatible additions and corrections increment the patch.
108
119
 
109
120
  See [docs/compatibility.md](docs/compatibility.md) for the current matrix and
@@ -111,20 +122,18 @@ the policy for introducing protocol changes.
111
122
 
112
123
  ## Distribution
113
124
 
114
- After the final source, security, conformance, and packed-artifact gates pass,
115
- `borgmcp-shared@0.2.2` is published publicly from the npm account that owns the
116
- existing `borgmcp` client package. Consumers then pin `borgmcp-shared@^0.2.0`
117
- and commit registry lockfiles. No registry token belongs in this repository,
118
- package metadata, lockfiles, or a committed `.npmrc`; publishing uses protected
119
- external credentials and provenance.
120
-
121
- Before that publication, consumers may temporarily pin an audited, immutable
122
- full commit SHA, using
123
- `git+ssh://git@github.com/Byte-Ventures/borg-mcp-shared.git#<40-hex-SHA>`.
124
- Tag, range, and local-path pins are prohibited. This exception is replaced with
125
- the registry dependency `borgmcp-shared@^0.2.0` after publication. Public release
126
- requires the packed-artifact sensitivity audit, name ownership, account recovery
127
- and 2FA, provenance verification, and explicit release approval.
125
+ `borgmcp-shared@0.2.2` is the published legacy baseline. This source prepares
126
+ `0.3.0` for the breaking retry-safe enrollment and multi-cube creation contract;
127
+ the version change does not authorize a tag or publication. After a separately
128
+ authorized registry release, consumers adopting this contract pin
129
+ `borgmcp-shared@^0.3.0` and commit registry lockfiles. No registry token belongs
130
+ in this repository, package metadata, lockfiles, or a committed `.npmrc`;
131
+ publishing uses protected external credentials and provenance.
132
+
133
+ The first client and server releases must consume the reviewed registry release,
134
+ not a Git, tag, or local-path dependency. Public release requires the
135
+ packed-artifact sensitivity audit, ownership and Trusted Publisher checks,
136
+ provenance verification, and explicit release approval.
128
137
 
129
138
  ## Security Posture
130
139
 
@@ -1,4 +1,4 @@
1
- import { type LogCursor } from '../protocol/index.js';
1
+ import { type CreateCubeResponse, type LogCursor } from '../protocol/index.js';
2
2
  export interface ConformanceHttpResponse {
3
3
  status: number;
4
4
  body: unknown;
@@ -9,6 +9,27 @@ export interface ConformancePrincipal {
9
9
  export interface ConformanceCube {
10
10
  readonly id: string;
11
11
  }
12
+ export interface ConformanceAuthorityState {
13
+ enrolled_clients: number;
14
+ enrollment_claims: number;
15
+ cubes: number;
16
+ roles: number;
17
+ grants: number;
18
+ server_capabilities: number;
19
+ cube_create_bindings: number;
20
+ }
21
+ export interface ConformanceCreatedCubeState {
22
+ cube_exists: boolean;
23
+ creator_has_grant: boolean;
24
+ grant_count: number;
25
+ role_count: number;
26
+ human_seat_role_matches: boolean;
27
+ default_worker_role_matches: boolean;
28
+ }
29
+ export interface ConformanceEnrollmentPrincipalState {
30
+ response_client_matches: boolean;
31
+ active_credential_bindings: number;
32
+ }
12
33
  export interface ConformanceReplayBarrier {
13
34
  readonly reached: Promise<void>;
14
35
  release(): void;
@@ -21,7 +42,12 @@ export interface ConformanceAdmin {
21
42
  createPrincipal(name: string): Promise<ConformancePrincipal>;
22
43
  createCube(name: string): Promise<ConformanceCube>;
23
44
  grantCube(principal: ConformancePrincipal, cube: ConformanceCube): Promise<void>;
24
- issueSingleUseInvitation(principal: ConformancePrincipal): Promise<string>;
45
+ grantCreateCubeCapability(principal: ConformancePrincipal): Promise<void>;
46
+ issueDroneSession(principal: ConformancePrincipal): Promise<string>;
47
+ issueSingleUseInvitation(principal: ConformancePrincipal, purpose: 'owner' | 'client'): Promise<string>;
48
+ observeAuthorityState(): Promise<ConformanceAuthorityState>;
49
+ inspectCreatedCube(creator: ConformancePrincipal, response: CreateCubeResponse): Promise<ConformanceCreatedCubeState>;
50
+ inspectEnrollmentPrincipal(principal: ConformancePrincipal, responseClientId: string): Promise<ConformanceEnrollmentPrincipalState>;
25
51
  revokePrincipal(principal: ConformancePrincipal): Promise<void>;
26
52
  expireCursor(cube: ConformanceCube, cursor: LogCursor): Promise<void>;
27
53
  armReplayTransition(): ConformanceReplayBarrier;
@@ -30,6 +56,7 @@ export interface ConformanceOperations {
30
56
  health(): Promise<ConformanceHttpResponse>;
31
57
  protocol(credential: string | null): Promise<ConformanceHttpResponse>;
32
58
  enroll(request: unknown): Promise<ConformanceHttpResponse>;
59
+ createCube(credential: string | null, request: unknown): Promise<ConformanceHttpResponse>;
33
60
  append(credential: string, cube: ConformanceCube, request: unknown): Promise<ConformanceHttpResponse>;
34
61
  appendRaw(credential: string, cube: ConformanceCube, body: string): Promise<ConformanceHttpResponse>;
35
62
  read(credential: string, cube: ConformanceCube, request: unknown): Promise<ConformanceHttpResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { ErrorCode, ProtocolContractError, compareLogCursor, createProtocolEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolInfoEnvelope, decodeReadLogResultEnvelope, decodeSseFrames, negotiateProtocol, utf8ByteLength, } from '../protocol/index.js';
1
+ import { ErrorCode, ProtocolContractError, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolInfoEnvelope, decodeReadLogResultEnvelope, decodeSseFrames, negotiateProtocol, utf8ByteLength, } from '../protocol/index.js';
2
+ import { ENROLLMENT_RETRY_CONFORMANCE } from './index.js';
2
3
  export const ADAPTER_CONFORMANCE_FIXTURES = [
3
4
  { id: 'http.unauthenticated-liveness', area: 'http' },
4
5
  { id: 'protocol.enrollment-auth', area: 'protocol' },
@@ -116,6 +117,29 @@ function logEvent(event, description) {
116
117
  function same(left, right) {
117
118
  return JSON.stringify(left) === JSON.stringify(right);
118
119
  }
120
+ function assertStateDelta(before, after, expected, description) {
121
+ for (const key of Object.keys(before)) {
122
+ invariant(after[key] - before[key] === (expected[key] ?? 0), `${description} changed ${key} by ${after[key] - before[key]}; expected ${expected[key] ?? 0}.`);
123
+ }
124
+ }
125
+ function assertEnrollmentErrorIsSecretFree(response, requests, description) {
126
+ const diagnostic = JSON.stringify(response.body);
127
+ const secrets = new Set(requests.flatMap((request) => [
128
+ request.invitation,
129
+ request.retry_key,
130
+ request.client_credential,
131
+ ]));
132
+ for (const secret of secrets) {
133
+ invariant(!diagnostic.includes(secret), `${description} exposed enrollment retry material.`);
134
+ }
135
+ }
136
+ function expectSecretFreeError(response, status, code, operation, secrets) {
137
+ expectError(response, status, code, operation);
138
+ const diagnostic = JSON.stringify(response.body);
139
+ for (const secret of new Set(secrets)) {
140
+ invariant(!diagnostic.includes(secret), `${operation} exposed retry material.`);
141
+ }
142
+ }
119
143
  export async function runAdapterConformance(environment, options = {}) {
120
144
  const streamDeadlineMs = options.streamDeadlineMs ?? DEFAULT_STREAM_DEADLINE_MS;
121
145
  const pendingProbeMs = options.pendingProbeMs ?? DEFAULT_PENDING_PROBE_MS;
@@ -136,14 +160,10 @@ export async function runAdapterConformance(environment, options = {}) {
136
160
  }
137
161
  };
138
162
  await environment.admin.reset();
139
- const principalA = await environment.admin.createPrincipal('principal-a');
140
- const principalB = await environment.admin.createPrincipal('principal-b');
141
- const cubeA = await environment.admin.createCube('cube-a');
142
- const cubeB = await environment.admin.createCube('cube-b');
143
- await environment.admin.grantCube(principalA, cubeA);
144
- await environment.admin.grantCube(principalB, cubeB);
145
- const invitationA = await environment.admin.issueSingleUseInvitation(principalA);
146
- const invitationB = await environment.admin.issueSingleUseInvitation(principalB);
163
+ let principalA;
164
+ let principalB;
165
+ let cubeA;
166
+ let cubeB;
147
167
  let credentialA = '';
148
168
  let credentialB = '';
149
169
  let protocolBody;
@@ -156,22 +176,188 @@ export async function runAdapterConformance(environment, options = {}) {
156
176
  });
157
177
  await record('protocol.enrollment-auth', async () => {
158
178
  expectError(await environment.operations.protocol(null), 401, ErrorCode.AUTH_MISSING, 'Unauthenticated protocol request');
179
+ const retryVectorErrors = [];
180
+ for (const [index, vector] of ENROLLMENT_RETRY_CONFORMANCE.entries()) {
181
+ for (const purpose of ['client', 'owner']) {
182
+ await environment.admin.reset();
183
+ try {
184
+ const principal = await environment.admin.createPrincipal(`${purpose}-retry-vector-${index}`);
185
+ const invitation = await environment.admin.issueSingleUseInvitation(principal, purpose);
186
+ const initialPayload = { ...vector.initial, invitation };
187
+ const retryPayload = { ...vector.retry, invitation };
188
+ const beforeInitial = await environment.admin.observeAuthorityState();
189
+ const initialResponse = await environment.operations.enroll(createProtocolEnvelope(`retry-${index}-initial`, initialPayload));
190
+ expectStatus(initialResponse, 201, `${vector.name} initial request`);
191
+ const initial = decodeEnrollmentExchangeResponseEnvelope(initialResponse.body).payload;
192
+ invariant(initial.purpose === purpose, `${purpose} ${vector.name} returned the wrong purpose.`);
193
+ invariant(same(initial.server_capabilities, purpose === 'owner' ? ['create_cube'] : []), `${purpose} ${vector.name} returned incorrect server authority.`);
194
+ const afterInitial = await environment.admin.observeAuthorityState();
195
+ assertStateDelta(beforeInitial, afterInitial, {
196
+ enrolled_clients: 1,
197
+ enrollment_claims: 1,
198
+ server_capabilities: purpose === 'owner' ? 1 : 0,
199
+ }, `${purpose} ${vector.name} initial request`);
200
+ const beforeRetry = await environment.admin.observeAuthorityState();
201
+ const retryResponse = await environment.operations.enroll(createProtocolEnvelope(`retry-${index}-retry`, retryPayload));
202
+ if (vector.expected.outcome === 'stable_non_secret_identity') {
203
+ expectStatus(retryResponse, 201, `${purpose} ${vector.name}`);
204
+ const retry = decodeEnrollmentExchangeResponseEnvelope(retryResponse.body).payload;
205
+ invariant(same(initial, retry), `${purpose} ${vector.name} returned different identities.`);
206
+ for (const field of vector.expected.forbidden_response_fields) {
207
+ invariant(!(field in retry), `${purpose} ${vector.name} returned forbidden field ${field}.`);
208
+ }
209
+ }
210
+ else {
211
+ expectError(retryResponse, vector.expected.status, ErrorCode.AUTH_INVALID, `${purpose} ${vector.name}`);
212
+ assertEnrollmentErrorIsSecretFree(retryResponse, [initialPayload, retryPayload], `${purpose} ${vector.name}`);
213
+ }
214
+ assertStateDelta(beforeRetry, await environment.admin.observeAuthorityState(), {}, `${purpose} ${vector.name} retry`);
215
+ expectStatus(await environment.operations.protocol(vector.initial.client_credential), 200, `${purpose} ${vector.name} original credential continuity`);
216
+ if (vector.retry.client_credential !== vector.initial.client_credential) {
217
+ expectError(await environment.operations.protocol(vector.retry.client_credential), 401, ErrorCode.AUTH_INVALID, `${purpose} ${vector.name} mismatched credential rejection`);
218
+ }
219
+ invariant(same(await environment.admin.inspectEnrollmentPrincipal(principal, initial.client_id), {
220
+ response_client_matches: true,
221
+ active_credential_bindings: 1,
222
+ }), `${purpose} ${vector.name} changed enrollment binding ownership.`);
223
+ }
224
+ catch (error) {
225
+ retryVectorErrors.push(`${purpose} ${vector.name}: ${error instanceof Error ? error.message : String(error)}`);
226
+ }
227
+ }
228
+ }
229
+ invariant(retryVectorErrors.length === 0, retryVectorErrors.join(' | '));
230
+ await environment.admin.reset();
231
+ const ownerPrincipal = await environment.admin.createPrincipal('owner');
232
+ const ordinaryPrincipal = await environment.admin.createPrincipal('ordinary');
233
+ const ownerInvitation = await environment.admin.issueSingleUseInvitation(ownerPrincipal, 'owner');
234
+ const ordinaryInvitation = await environment.admin.issueSingleUseInvitation(ordinaryPrincipal, 'client');
235
+ const ownerCredential = `${'Q'.repeat(42)}U`;
236
+ const ordinaryCredential = `${'Y'.repeat(42)}U`;
237
+ const beforeAuthorityEnrollment = await environment.admin.observeAuthorityState();
238
+ const ownerResponse = await environment.operations.enroll(createProtocolEnvelope('owner-enroll', {
239
+ invitation: ownerInvitation,
240
+ retry_key: '00000000-0000-4000-8000-000000000211',
241
+ client_credential: ownerCredential,
242
+ client_name: 'owner-client',
243
+ }));
244
+ const ordinaryResponse = await environment.operations.enroll(createProtocolEnvelope('ordinary-enroll', {
245
+ invitation: ordinaryInvitation,
246
+ retry_key: '00000000-0000-4000-8000-000000000212',
247
+ client_credential: ordinaryCredential,
248
+ client_name: 'ordinary-client',
249
+ }));
250
+ expectStatus(ownerResponse, 201, 'Owner enrollment');
251
+ expectStatus(ordinaryResponse, 201, 'Ordinary enrollment');
252
+ const owner = decodeEnrollmentExchangeResponseEnvelope(ownerResponse.body).payload;
253
+ const ordinary = decodeEnrollmentExchangeResponseEnvelope(ordinaryResponse.body).payload;
254
+ invariant(owner.purpose === 'owner' && same(owner.server_capabilities, ['create_cube']), 'Owner enrollment lacked exact create-cube authority.');
255
+ invariant(ordinary.purpose === 'client' && ordinary.server_capabilities.length === 0, 'Ordinary enrollment gained authority.');
256
+ assertStateDelta(beforeAuthorityEnrollment, await environment.admin.observeAuthorityState(), { enrolled_clients: 2, enrollment_claims: 2, server_capabilities: 1 }, 'Owner and ordinary enrollment');
257
+ const cubeRequest = {
258
+ retry_key: '00000000-0000-4000-8000-000000000213',
259
+ name: 'repository-one',
260
+ template: 'default',
261
+ };
262
+ const droneCredential = await environment.admin.issueDroneSession(ownerPrincipal);
263
+ const beforeDeniedCreate = await environment.admin.observeAuthorityState();
264
+ expectSecretFreeError(await environment.operations.createCube(null, createProtocolEnvelope('cube-missing-auth', cubeRequest)), 401, ErrorCode.AUTH_MISSING, 'Missing-auth cube create', [cubeRequest.retry_key]);
265
+ expectSecretFreeError(await environment.operations.createCube('invalid-credential', createProtocolEnvelope('cube-invalid-auth', cubeRequest)), 401, ErrorCode.AUTH_INVALID, 'Invalid-auth cube create', [cubeRequest.retry_key]);
266
+ expectSecretFreeError(await environment.operations.createCube(ordinaryCredential, createProtocolEnvelope('cube-denied', cubeRequest)), 403, ErrorCode.ACCESS_DENIED, 'Ordinary cube create', [cubeRequest.retry_key]);
267
+ expectSecretFreeError(await environment.operations.createCube(droneCredential, createProtocolEnvelope('cube-drone-denied', cubeRequest)), 403, ErrorCode.ACCESS_DENIED, 'Drone-session cube create', [cubeRequest.retry_key]);
268
+ assertStateDelta(beforeDeniedCreate, await environment.admin.observeAuthorityState(), {}, 'Denied ordinary cube create');
269
+ const beforeCreate = await environment.admin.observeAuthorityState();
270
+ const createdResponse = await environment.operations.createCube(ownerCredential, createProtocolEnvelope('cube-create', cubeRequest));
271
+ expectStatus(createdResponse, 201, 'Owner cube create');
272
+ const created = decodeCreateCubeResponseEnvelope(createdResponse.body).payload;
273
+ assertStateDelta(beforeCreate, await environment.admin.observeAuthorityState(), { cubes: 1, roles: 2, grants: 1, cube_create_bindings: 1 }, 'Owner cube create');
274
+ invariant(same(await environment.admin.inspectCreatedCube(ownerPrincipal, created), {
275
+ cube_exists: true,
276
+ creator_has_grant: true,
277
+ grant_count: 1,
278
+ role_count: 2,
279
+ human_seat_role_matches: true,
280
+ default_worker_role_matches: true,
281
+ }), 'Created cube identities or creator grant did not match persisted authority state.');
282
+ const beforeCreateRetry = await environment.admin.observeAuthorityState();
283
+ const retriedCreateResponse = await environment.operations.createCube(ownerCredential, createProtocolEnvelope('cube-retry', cubeRequest));
284
+ expectStatus(retriedCreateResponse, 201, 'Exact cube-create retry');
285
+ invariant(same(decodeCreateCubeResponseEnvelope(retriedCreateResponse.body).payload, created), 'Exact cube-create retry returned different identities.');
286
+ assertStateDelta(beforeCreateRetry, await environment.admin.observeAuthorityState(), {}, 'Exact cube-create retry');
287
+ const beforeCreateMismatch = await environment.admin.observeAuthorityState();
288
+ expectSecretFreeError(await environment.operations.createCube(ownerCredential, createProtocolEnvelope('cube-mismatch', { ...cubeRequest, name: 'repository-two' })), 409, ErrorCode.INVALID_INPUT, 'Cube-create retry mismatch', [cubeRequest.retry_key]);
289
+ assertStateDelta(beforeCreateMismatch, await environment.admin.observeAuthorityState(), {}, 'Cube-create retry mismatch');
290
+ await environment.admin.grantCreateCubeCapability(ordinaryPrincipal);
291
+ const crossClientRequest = { ...cubeRequest, name: 'ordinary-repository' };
292
+ const beforeCrossClientCreate = await environment.admin.observeAuthorityState();
293
+ const crossClientResponse = await environment.operations.createCube(ordinaryCredential, createProtocolEnvelope('cube-cross-client', crossClientRequest));
294
+ expectStatus(crossClientResponse, 201, 'Cross-client cube create with reused retry key');
295
+ const crossClientCreated = decodeCreateCubeResponseEnvelope(crossClientResponse.body).payload;
296
+ invariant(crossClientCreated.cube_id !== created.cube_id, 'Cross-client retry key reused another client\'s cube.');
297
+ assertStateDelta(beforeCrossClientCreate, await environment.admin.observeAuthorityState(), { cubes: 1, roles: 2, grants: 1, cube_create_bindings: 1 }, 'Cross-client cube create');
298
+ invariant((await environment.admin.inspectCreatedCube(ordinaryPrincipal, crossClientCreated)).creator_has_grant, 'Cross-client cube creation did not grant its authenticated creator.');
299
+ const beforeCrossClientRetry = await environment.admin.observeAuthorityState();
300
+ const crossClientRetry = await environment.operations.createCube(ordinaryCredential, createProtocolEnvelope('cube-cross-client-retry', crossClientRequest));
301
+ expectStatus(crossClientRetry, 201, 'Exact cross-client cube-create retry');
302
+ invariant(same(decodeCreateCubeResponseEnvelope(crossClientRetry.body).payload, crossClientCreated), 'Exact cross-client cube-create retry returned different identities.');
303
+ assertStateDelta(beforeCrossClientRetry, await environment.admin.observeAuthorityState(), {}, 'Exact cross-client cube-create retry');
304
+ const beforeSecondCreate = await environment.admin.observeAuthorityState();
305
+ const secondCreatedResponse = await environment.operations.createCube(ownerCredential, createProtocolEnvelope('cube-create-second', {
306
+ ...cubeRequest,
307
+ retry_key: '00000000-0000-4000-8000-000000000214',
308
+ name: 'repository-two',
309
+ }));
310
+ expectStatus(secondCreatedResponse, 201, 'Second cube create');
311
+ const secondCreated = decodeCreateCubeResponseEnvelope(secondCreatedResponse.body).payload;
312
+ invariant(secondCreated.cube_id !== created.cube_id, 'Fresh cube-create retry key reused an existing cube.');
313
+ assertStateDelta(beforeSecondCreate, await environment.admin.observeAuthorityState(), { cubes: 1, roles: 2, grants: 1, cube_create_bindings: 1 }, 'Second cube create');
314
+ await environment.admin.revokePrincipal(ownerPrincipal);
315
+ const beforeRevokedCreate = await environment.admin.observeAuthorityState();
316
+ expectSecretFreeError(await environment.operations.createCube(ownerCredential, createProtocolEnvelope('cube-revoked', {
317
+ ...cubeRequest,
318
+ retry_key: '00000000-0000-4000-8000-000000000215',
319
+ })), 401, ErrorCode.SESSION_REVOKED, 'Revoked owner cube create', ['00000000-0000-4000-8000-000000000215']);
320
+ assertStateDelta(beforeRevokedCreate, await environment.admin.observeAuthorityState(), {}, 'Revoked owner cube create');
321
+ await environment.admin.reset();
322
+ principalA = await environment.admin.createPrincipal('principal-a');
323
+ principalB = await environment.admin.createPrincipal('principal-b');
324
+ cubeA = await environment.admin.createCube('cube-a');
325
+ cubeB = await environment.admin.createCube('cube-b');
326
+ await environment.admin.grantCube(principalA, cubeA);
327
+ await environment.admin.grantCube(principalB, cubeB);
328
+ const invitationA = await environment.admin.issueSingleUseInvitation(principalA, 'client');
329
+ const invitationB = await environment.admin.issueSingleUseInvitation(principalB, 'client');
330
+ credentialA = 'A'.repeat(43);
331
+ credentialB = 'E'.repeat(43);
159
332
  const enrollmentARequest = createProtocolEnvelope('enroll-a1', {
160
333
  invitation: invitationA,
334
+ retry_key: '00000000-0000-4000-8000-000000000201',
335
+ client_credential: credentialA,
161
336
  client_name: 'conformance-a',
162
337
  });
163
338
  const enrollmentBRequest = createProtocolEnvelope('enroll-b1', {
164
339
  invitation: invitationB,
340
+ retry_key: '00000000-0000-4000-8000-000000000202',
341
+ client_credential: credentialB,
165
342
  client_name: 'conformance-b',
166
343
  });
167
344
  const enrolledAResponse = await environment.operations.enroll(enrollmentARequest);
168
345
  const enrolledBResponse = await environment.operations.enroll(enrollmentBRequest);
169
346
  expectStatus(enrolledAResponse, 201, 'Principal A enrollment');
170
347
  expectStatus(enrolledBResponse, 201, 'Principal B enrollment');
171
- credentialA = decodeEnrollmentExchangeResponseEnvelope(enrolledAResponse.body).payload.credential;
172
- credentialB = decodeEnrollmentExchangeResponseEnvelope(enrolledBResponse.body).payload.credential;
173
- invariant(credentialA !== credentialB, 'Enrollment issued the same credential to two principals.');
174
- expectError(await environment.operations.enroll(enrollmentARequest), 401, ErrorCode.AUTH_INVALID, 'Invitation reuse');
348
+ const enrolledA = decodeEnrollmentExchangeResponseEnvelope(enrolledAResponse.body).payload;
349
+ const enrolledB = decodeEnrollmentExchangeResponseEnvelope(enrolledBResponse.body).payload;
350
+ invariant(enrolledA.purpose === 'client' && enrolledB.purpose === 'client', 'Ordinary enrollment returned owner authority.');
351
+ invariant(enrolledA.server_capabilities.length === 0 && enrolledB.server_capabilities.length === 0, 'Ordinary enrollment returned a server capability.');
352
+ invariant(!('credential' in enrolledA) && !('credential' in enrolledB), 'Enrollment response returned a bearer.');
353
+ const retriedAResponse = await environment.operations.enroll(enrollmentARequest);
354
+ expectStatus(retriedAResponse, 201, 'Exact enrollment retry');
355
+ invariant(JSON.stringify(decodeEnrollmentExchangeResponseEnvelope(retriedAResponse.body).payload) ===
356
+ JSON.stringify(enrolledA), 'Exact enrollment retry returned different identities.');
357
+ expectError(await environment.operations.enroll(createProtocolEnvelope('enroll-a-mismatch', {
358
+ ...enrollmentARequest.payload,
359
+ retry_key: '00000000-0000-4000-8000-000000000203',
360
+ })), 401, ErrorCode.AUTH_INVALID, 'Enrollment retry mismatch');
175
361
  const protocolResponse = await environment.operations.protocol(credentialA);
176
362
  expectStatus(protocolResponse, 200, 'Authenticated protocol request');
177
363
  protocolBody = protocolResponse.body;
@@ -186,7 +372,9 @@ export async function runAdapterConformance(environment, options = {}) {
186
372
  return {
187
373
  unauthenticated: ErrorCode.AUTH_MISSING,
188
374
  enrollment_status: 201,
189
- invitation_reuse: ErrorCode.AUTH_INVALID,
375
+ exact_retry_status: 201,
376
+ mismatched_retry: ErrorCode.AUTH_INVALID,
377
+ response_secret_free: true,
190
378
  protocol_version: protocolInfo.protocol_version,
191
379
  };
192
380
  });
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,wCAAwC,EACxC,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,iBAAiB,EACjB,cAAc,GAKf,MAAM,sBAAsB,CAAC;AAyF9B,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,EAAE,EAAE,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,UAAU,EAAE;IACpD,EAAE,EAAE,EAAE,qCAAqC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/D,EAAE,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,UAAU,EAAE;IACrD,EAAE,EAAE,EAAE,+BAA+B,EAAE,IAAI,EAAE,UAAU,EAAE;IACzD,EAAE,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,KAAK,EAAE;IACjD,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChD,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClD,EAAE,EAAE,EAAE,8BAA8B,EAAE,IAAI,EAAE,WAAW,EAAE;IACzD,EAAE,EAAE,EAAE,uCAAuC,EAAE,IAAI,EAAE,cAAc,EAAE;IACrE,EAAE,EAAE,EAAE,mCAAmC,EAAE,IAAI,EAAE,UAAU,EAAE;CACrD,CAAC;AAoCX,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,SAAS,SAAS,CAAC,SAAkB,EAAE,OAAe;IACpD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,QAAiC;IACtD,IAAI,CAAC;QACH,OAAO,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,MAAM,eAAe,GAAI,UAEvB,CAAC,UAAU,CAAC;IACd,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,OAAmB,EACnB,WAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,UAGd,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAW,CAAC,GAAG,EAAE;YACpC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,WAAW,0BAA0B,UAAU,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,YAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAmB,EACnB,WAAmB,EACnB,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QACjC,OAAO,CAAC,IAAI,CACV,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,IAAI,CACX;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;KACjC,CAAC,CAAC;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,WAAW,+BAA+B,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,cAAc;IACD,QAAQ,CAAwB;IACzC,MAAM,GAAG,EAAE,CAAC;IACZ,KAAK,GAAG,KAAK,CAAC;IAEtB,YAAY,MAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;iBACtB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC1D,SAAS,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5D,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,SAAS;gBAClC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;gBAC/C,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;gBAC5E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC7F,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,SAAS,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,wCAAwC,CAAC,CAAC;YACrF,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzD,CAAC;CACF;AAED,SAAS,YAAY,CAAC,QAAiC,EAAE,MAAc,EAAE,SAAiB;IACxF,SAAS,CACP,QAAQ,CAAC,MAAM,KAAK,MAAM,EAC1B,GAAG,SAAS,kBAAkB,QAAQ,CAAC,MAAM,cAAc,MAAM,GAAG,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,QAAiC,EACjC,MAAc,EACd,IAAe,EACf,SAAiB;IAEjB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,GAAG,SAAS,mBAAmB,IAAI,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkB,EAAE,WAAmB;IACvD,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,WAAW,aAAa,KAAK,CAAC,IAAI,oBAAoB,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,KAAc;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmC,EACnC,UAAqC,EAAE;IAEvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IAChF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC1E,SAAS,CAAC,gBAAgB,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACtE,SAAS,CAAC,cAAc,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAClE,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,EAClB,EAA+B,EAC/B,OAA+C,EAChC,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,EAAE,EAAE,KAAK;gBACT,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAEjF,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,YAAqB,CAAC;IAC1B,IAAI,YAAY,GAAwB,IAAI,CAAC;IAC7C,MAAM,MAAM,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvD,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxD,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,mDAAmD,CAAC,CAAC;QACpH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAClD,WAAW,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;QAC1H,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,EAAE;YAC7D,UAAU,EAAE,WAAW;YACvB,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,EAAE;YAC7D,UAAU,EAAE,WAAW;YACvB,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAClF,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC/D,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC/D,WAAW,GAAG,wCAAwC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAClG,WAAW,GAAG,wCAAwC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAClG,SAAS,CAAC,WAAW,KAAK,WAAW,EAAE,0DAA0D,CAAC,CAAC;QACnG,WAAW,CACT,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,EACvD,GAAG,EACH,SAAS,CAAC,YAAY,EACtB,kBAAkB,CACnB,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5E,YAAY,CAAC,gBAAgB,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;QACtE,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACrC,YAAY,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;YACjF,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,MAAM;YACN,QAAQ;YACR,WAAW;SACZ,CAAC,CAAC;QACH,OAAO;YACL,eAAe,EAAE,SAAS,CAAC,YAAY;YACvC,iBAAiB,EAAE,GAAG;YACtB,gBAAgB,EAAE,SAAS,CAAC,YAAY;YACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;SAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QAC7D,SAAS,CAAC,YAAY,EAAE,kDAAkD,CAAC,CAAC;QAC5E,MAAM,eAAe,GAAG,0DAA0D,CAAC;QACnF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CACjC,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAClE,CAAC;QACF,SAAS,CACP,cAAc,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,iBAAiB;YACnE,cAAc,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,qBAAqB,EAC9E,yDAAyD,CAC1D,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CACrD,WAAW,EACX,KAAK,EACL,YAAY,CACb,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,mCAAmC,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACjF,SAAS,CAAC,aAAa,CAAC,OAAO,KAAK,eAAe,EAAE,2DAA2D,CAAC,CAAC;QAElH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAClD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAC5E,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACnE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtG,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC,EAC5D,+DAA+D,CAChE,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;QACxD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CACpB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EACnE,oBAAoB,CACrB,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,CACrB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,mCAAmC,EAAE,gBAAgB,CAAC,EAClF,mCAAmC,CACpC,CAAC;YACF,SAAS,CACP,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,eAAe,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,yBAAyB,EAC7F,wDAAwD,CACzD,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;YAC1F,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,uDAAuD,CAAC,CAAC;QACnG,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,OAAO;YACL,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACnD,SAAS,CAAC,YAAY,EAAE,kDAAkD,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,sBAAsB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CACvE,CAAC;QACF,MAAM,aAAa,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CACzC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAClF,CAAC;QACF,SAAS,CACP,cAAc,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,EACrE,oDAAoD,CACrD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC3F,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC9C,SAAS,CACP,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EACnE,mDAAmD,CACpD,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACtD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CACvE,CAAC;QACF,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC9C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAClE,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAA+D,EAAE,CAAC;IAC/E,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,MAAM,MAAM,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAClD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAC5D,CAAC;YACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CACjE,CAAC;QACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAChE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC;QAC/H,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAC;QAC3F,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACjE,SAAS,CACP,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EACpF,6DAA6D,CAC9D,CAAC;QACF,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,MAAM,MAAM,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACpD,SAAS,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAC/C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAC1D,CAAC;YACF,YAAY,CAAC,MAAM,WAAW,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;QACjF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,wDAAwD,CAAC,CAAC;YACtG,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,gCAAgC,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACrH,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,sDAAsD,CAAC,CAAC;YACnG,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;YACnG,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;YAC3F,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;YACpH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,YAAY,CAAC,WAAW,EAAE,yBAAyB,EAAE,cAAc,CAAC,CAAC;YAC3E,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CACzD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAC5D,CAAC;YACF,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC;YAC3G,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,+CAA+C,CAAC,CAAC;YAChG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;YACtG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAC1H,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAClG,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QAChD,SAAS,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1E,CAAC;QACF,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvF,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAC5E,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,8CAA8C,CAAC,CAAC;QAClF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACzC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,0CAA0C,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,sBAAsB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7E,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAClD,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACtD,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAC/J,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAClD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,2CAA2C,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CACnF,CAAC;QACF,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAC5C,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACzE,CAAC;QACF,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,yCAAyC,CAAC,CAAC;QAChF,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,gCAAgC,CAAC,CAAC;QACrH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;QACrH,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,CAC/D,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAC7E,CAAC;QACF,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChF,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,CAChE,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CACzG,CAAC;QACF,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,4BAA4B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,aAAa,CAC7D,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CACxC,CAAC;QACF,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,6BAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAClF,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,qEAAqE,CAAC,CAAC;QACzI,SAAS,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,yDAAyD,CAAC,CAAC;QACrG,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QAC/D,SAAS,CAAC,YAAY,EAAE,+CAA+C,CAAC,CAAC;QACzE,IAAI,IAAI,GAAqB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,iBAAiB,CACf,0BAA0B,CAAC,YAAY,CAAC,CAAC,OAAO,EAChD,CAAC,iBAA+B,CAAC,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qBAAqB;gBAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;;gBACzD,MAAM,KAAK,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,sBAAsB,EAAE,yDAAyD,CAAC,CAAC;QAChH,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAC3D,SAAS,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvF,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACpD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,yDAAyD,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,kCAAkC,EAAE,gBAAgB,CAAC,CAAC;YACnG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,eAAe,EAAE,4CAA4C,CAAC,CAAC;YAClH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACpF,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,SAAS,CAAC,UAAU,EAAE,qDAAqD,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAChD,WAAW,EACX,KAAK,EACL,sBAAsB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1E,CAAC;QACF,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACjF,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAA6B,EAC7B,KAA6B,EAC7B,UAAqC,EAAE;IAEvC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;QACrC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC5F,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,UAAU;QAClD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { BroadcastHwm } from '../log-stream-hwm.js';
2
+ import type { EnrollmentExchangeRequest } from '../protocol/contract.js';
2
3
  export * from './adapter.js';
3
4
  export interface ConformanceVector<Input, Output> {
4
5
  name: string;
@@ -12,4 +13,52 @@ export interface BroadcastHwmComparisonInput {
12
13
  export declare const BROADCAST_HWM_CONFORMANCE: readonly ConformanceVector<BroadcastHwmComparisonInput, -1 | 0 | 1>[];
13
14
  export declare const DRONE_ADDRESS_CONFORMANCE: readonly ConformanceVector<string, string>[];
14
15
  export declare const ROLE_SECTION_ROUND_TRIP_CONFORMANCE: readonly string[];
16
+ export interface EnrollmentRetryConformanceVector {
17
+ name: string;
18
+ initial: EnrollmentExchangeRequest;
19
+ retry: EnrollmentExchangeRequest;
20
+ expected: {
21
+ outcome: 'stable_non_secret_identity';
22
+ status: 201;
23
+ forbidden_response_fields: readonly [
24
+ 'credential',
25
+ 'client_credential',
26
+ 'invitation',
27
+ 'retry_key'
28
+ ];
29
+ } | {
30
+ outcome: 'uniform_auth_invalid';
31
+ status: 401;
32
+ error: 'AUTH_INVALID';
33
+ };
34
+ }
35
+ export declare const ENROLLMENT_RETRY_CONFORMANCE: readonly EnrollmentRetryConformanceVector[];
36
+ export declare const ENROLLMENT_AUTHORITY_CONFORMANCE: readonly [{
37
+ readonly name: "ordinary enrollment creates no authority or cube state";
38
+ readonly response: {
39
+ readonly purpose: "client";
40
+ readonly client_id: "00000000-0000-4000-8000-000000000111";
41
+ readonly server_capabilities: readonly [];
42
+ };
43
+ readonly expected_state_delta: {
44
+ readonly cubes: 0;
45
+ readonly roles: 0;
46
+ readonly grants: 0;
47
+ readonly server_capabilities: 0;
48
+ };
49
+ }, {
50
+ readonly name: "owner enrollment grants create-cube authority without cube state";
51
+ readonly response: {
52
+ readonly purpose: "owner";
53
+ readonly client_id: "00000000-0000-4000-8000-000000000111";
54
+ readonly server_capabilities: readonly ["create_cube"];
55
+ };
56
+ readonly expected_state_delta: {
57
+ readonly cubes: 0;
58
+ readonly roles: 0;
59
+ readonly grants: 0;
60
+ readonly server_capabilities: 1;
61
+ };
62
+ }];
63
+ export declare const ENROLLMENT_REDACTION_CONFORMANCE: readonly ConformanceVector<string, string>[];
15
64
  //# sourceMappingURL=index.d.ts.map