borgmcp 2.10.2 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/cli-help.js +3 -3
  2. package/dist/cli-help.js.map +1 -1
  3. package/dist/config.d.ts +34 -9
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +487 -105
  6. package/dist/config.js.map +1 -1
  7. package/dist/enrollment-lock.d.ts +10 -0
  8. package/dist/enrollment-lock.d.ts.map +1 -0
  9. package/dist/enrollment-lock.js +49 -0
  10. package/dist/enrollment-lock.js.map +1 -0
  11. package/dist/enrollment-types.d.ts +47 -0
  12. package/dist/enrollment-types.d.ts.map +1 -0
  13. package/dist/enrollment-types.js +2 -0
  14. package/dist/enrollment-types.js.map +1 -0
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/invitation-artifact.d.ts +3 -1
  18. package/dist/invitation-artifact.d.ts.map +1 -1
  19. package/dist/invitation-artifact.js +3 -1
  20. package/dist/invitation-artifact.js.map +1 -1
  21. package/dist/recover-enrollment-cmd.d.ts.map +1 -1
  22. package/dist/recover-enrollment-cmd.js +34 -15
  23. package/dist/recover-enrollment-cmd.js.map +1 -1
  24. package/dist/remote-client.d.ts +3 -2
  25. package/dist/remote-client.d.ts.map +1 -1
  26. package/dist/remote-client.js +32 -11
  27. package/dist/remote-client.js.map +1 -1
  28. package/dist/server-errors.d.ts +4 -0
  29. package/dist/server-errors.d.ts.map +1 -1
  30. package/dist/server-errors.js +8 -0
  31. package/dist/server-errors.js.map +1 -1
  32. package/dist/server-handshake.d.ts +11 -3
  33. package/dist/server-handshake.d.ts.map +1 -1
  34. package/dist/server-handshake.js +103 -45
  35. package/dist/server-handshake.js.map +1 -1
  36. package/dist/server-trust.d.ts +14 -1
  37. package/dist/server-trust.d.ts.map +1 -1
  38. package/dist/server-trust.js +363 -66
  39. package/dist/server-trust.js.map +1 -1
  40. package/dist/tool-manifest.d.ts.map +1 -1
  41. package/dist/tool-manifest.js +4 -10
  42. package/dist/tool-manifest.js.map +1 -1
  43. package/docs/EXTRACTION_PROVENANCE.md +3 -3
  44. package/docs/RELEASING.md +7 -2
  45. package/package.json +1 -1
  46. package/src/cli-help.ts +3 -3
  47. package/src/config.ts +544 -101
  48. package/src/enrollment-lock.ts +53 -0
  49. package/src/enrollment-types.ts +51 -0
  50. package/src/index.ts +1 -1
  51. package/src/invitation-artifact.ts +7 -1
  52. package/src/recover-enrollment-cmd.ts +39 -15
  53. package/src/remote-client.ts +36 -10
  54. package/src/server-errors.ts +7 -0
  55. package/src/server-handshake.ts +130 -52
  56. package/src/server-trust.ts +392 -66
  57. package/src/tool-manifest.ts +4 -10
@@ -1 +1 @@
1
- {"version":3,"file":"server-handshake.d.ts","sourceRoot":"","sources":["../src/server-handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-handshake.d.ts","sourceRoot":"","sources":["../src/server-handshake.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ATTACH_PATH, CUBES_PATH, ENROLLMENT_EXCHANGE_PATH, HEALTH_PATH, PROTOCOL_INFO_PATH, REPOSITORY_CUBE_ASSOCIATION_PATH, REPOSITORY_CUBE_RESOLVE_PATH, createAttachRequestEnvelope, createProtocolEnvelope, encodeInvitationArtifact, decodeAssociateRepositoryCubeRequest, decodeAssociateRepositoryCubeResponseEnvelope, decodeAttachResponseEnvelope, decodeCreateCubeRequest, decodeCreateCubeResponseEnvelope, decodeEnrollmentExchangeRequest, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolTagPreflight, decodeResolveRepositoryCubeRequest, decodeResolveRepositoryCubeResponseEnvelope, ErrorCode, } from 'borgmcp-shared/protocol';
2
2
  import { createHash, randomUUID } from 'node:crypto';
3
- import { activatePendingServerEnrollment, clearPendingServerCubeCreation, clearPendingServerEnrollment, getServerCredential, getServerCredentialRecord, hasServerCredentialForOrigin, getPendingServerEnrollment, getOrCreatePendingServerCubeCreation, getOrCreatePendingServerEnrollment, } from './config.js';
3
+ import { withEnrollmentOriginLock } from './enrollment-lock.js';
4
+ import { activatePendingServerEnrollment, clearPendingServerCubeCreation, clearPendingServerEnrollment, getServerCredential, getServerCredentialRecord, hasServerCredentialForOrigin, getPendingServerEnrollment, findPendingServerEnrollment, getOrCreatePendingServerCubeCreation, getOrCreatePendingServerEnrollment, createPendingServerEnrollmentWithReplacementConsent, } from './config.js';
4
5
  import { activateAndBindSeat, bindPendingSeatToWorktree, scrubPendingSeat, seatRef, } from './seats.js';
5
6
  import { BorgServerError, BorgServerTrustError, BorgServerUnreachableError, CubeCreationConfirmationError, CubeCreationOutcomeUnknownError, RepositoryAssociationOperationError, RepositoryAssociationOutcomeUnknownError, RepositoryAssociationResolutionError, } from './server-errors.js';
6
7
  import { DroneEvictedError, DRONE_EVICTED_CODE } from './drone-lifecycle.js';
7
8
  import { readBoundedResponseBody } from './server-response.js';
8
- import { loadBorgServerTrust, loadBorgServerTrustFromPresentedChain, } from './server-trust.js';
9
+ import { loadBorgServerTrust, loadBorgServerTrustFromPresentedChain, loadStagedBorgServerTrust, } from './server-trust.js';
9
10
  import { InvitationArtifactCompatibilityError, InvitationArtifactStorageError, InvitationArtifactTransportError, InvitationArtifactTrustError, decodeAndVerifyInvitationArtifact, } from './invitation-artifact.js';
10
11
  const HANDSHAKE_BODY_LIMIT = 64 * 1024;
11
12
  const HANDSHAKE_TIMEOUT_MS = 5_000;
@@ -275,10 +276,9 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
275
276
  await deps.discardTrust?.();
276
277
  throw error;
277
278
  }
278
- const existingCredential = await (deps.loadCredentialRecord ?? getServerCredentialRecord)(origin, trustIdentity);
279
- const existingOriginCredential = existingCredential !== null || await (deps.hasCredentialForOrigin ?? hasServerCredentialForOrigin)(origin);
279
+ const existingCredential = deps.resumePending ? null : await (deps.loadCredentialRecord ?? getServerCredentialRecord)(origin, trustIdentity);
280
+ const existingOriginCredential = deps.resumePending ? false : existingCredential !== null || await (deps.hasCredentialForOrigin ?? hasServerCredentialForOrigin)(origin);
280
281
  let replacementConfirmed = false;
281
- let replacementCapability;
282
282
  if (existingOriginCredential) {
283
283
  const confirmed = deps.confirmReplacement !== undefined
284
284
  ? await deps.confirmReplacement()
@@ -288,15 +288,29 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
288
288
  throw new BorgServerError('LOCAL_CREDENTIAL_EXISTS', 'a local enrollment already exists for this server and was not replaced');
289
289
  }
290
290
  replacementConfirmed = true;
291
- replacementCapability = randomUUID();
292
291
  }
293
- const pending = await (deps.prepareEnrollment ?? getOrCreatePendingServerEnrollment)({
294
- origin,
295
- trustIdentity,
296
- invitation,
297
- ...(deps.clientName ? { clientName: deps.clientName } : {}),
298
- ...(replacementCapability === undefined ? {} : { replacementCapability }),
299
- });
292
+ if (replacementConfirmed && deps.artifactBinding === undefined) {
293
+ await deps.discardTrust?.();
294
+ throw new BorgServerError('LOCAL_CREDENTIAL_EXISTS', 'replacement requires a current verified enrollment invitation');
295
+ }
296
+ let pending = deps.resumePending;
297
+ if (!pending) {
298
+ const common = {
299
+ origin,
300
+ trustIdentity,
301
+ invitation,
302
+ ...(deps.clientName ? { clientName: deps.clientName } : {}),
303
+ };
304
+ pending = replacementConfirmed
305
+ ? await (deps.prepareReplacementEnrollment ?? createPendingServerEnrollmentWithReplacementConsent)({
306
+ ...common,
307
+ artifactBinding: deps.artifactBinding,
308
+ })
309
+ : await (deps.prepareEnrollment ?? getOrCreatePendingServerEnrollment)({
310
+ ...common,
311
+ ...(deps.artifactBinding === undefined ? {} : { artifactBinding: deps.artifactBinding }),
312
+ });
313
+ }
300
314
  const request = decodeEnrollmentExchangeRequest({
301
315
  invitation: pending.invitation,
302
316
  retry_key: pending.retryKey,
@@ -328,7 +342,6 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
328
342
  }
329
343
  }
330
344
  if (!response) {
331
- await deps.discardTrust?.();
332
345
  throw lastTransportError;
333
346
  }
334
347
  if (response.status === 401 || response.status === 403) {
@@ -337,7 +350,6 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
337
350
  throw new BorgServerError('INVITATION_REJECTED', 'the invitation was rejected or expired');
338
351
  }
339
352
  if (response.status !== 201) {
340
- await deps.discardTrust?.();
341
353
  throw new Error(`Borg server enrollment failed (HTTP ${response.status})`);
342
354
  }
343
355
  let decoded;
@@ -345,7 +357,6 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
345
357
  decoded = decodeEnrollmentExchangeResponseEnvelope(JSON.parse(await readHandshakeBodyWithTimeout(response)));
346
358
  }
347
359
  catch (error) {
348
- await deps.discardTrust?.();
349
360
  if (error instanceof Error && error.message.includes('response limit'))
350
361
  throw error;
351
362
  throw new Error('Borg server returned an invalid enrollment envelope');
@@ -358,16 +369,17 @@ export async function enrollBorgServer(origin, trustIdentity, invitation, deps =
358
369
  throw new InvitationArtifactTrustError();
359
370
  }
360
371
  }
361
- const activate = () => (deps.activateEnrollment ?? activatePendingServerEnrollment)({
372
+ const activate = (context) => (deps.activateEnrollment ?? activatePendingServerEnrollment)({
362
373
  origin,
363
374
  trustIdentity,
364
375
  retryKey: pending.retryKey,
365
376
  credential: pending.credential,
366
377
  clientId: decoded.payload.client_id,
367
378
  serverCapabilities: decoded.payload.server_capabilities,
368
- ...(replacementConfirmed || pending.replacementCapability !== undefined
369
- ? { allowReplacement: true, ...(pending.replacementCapability === undefined ? {} : { replacementCapability: pending.replacementCapability }) }
370
- : {}),
379
+ ...(context === undefined ? {} : context),
380
+ ...(pending.replacementCapability === undefined
381
+ ? {}
382
+ : { replacementCapabilityToken: pending.replacementCapability.token }),
371
383
  });
372
384
  if (deps.commitTrust)
373
385
  await deps.commitTrust(activate);
@@ -386,10 +398,20 @@ export async function resumeBorgServerEnrollment(origin, trustIdentity, deps = {
386
398
  const pending = await (deps.loadPendingEnrollment ?? getPendingServerEnrollment)(origin, trustIdentity);
387
399
  if (!pending)
388
400
  return null;
401
+ if (pending.artifactBinding) {
402
+ const verified = decodeAndVerifyInvitationArtifact(pending.invitation);
403
+ const digest = createHash('sha256').update(pending.invitation).digest('hex');
404
+ if (digest !== pending.artifactBinding.artifactDigest ||
405
+ verified.version !== pending.artifactBinding.artifactFormatVersion ||
406
+ verified.endpoint !== pending.artifactBinding.endpoint ||
407
+ verified.ca_spki_sha256 !== pending.artifactBinding.caSpkiSha256 ||
408
+ verified.authority !== pending.artifactBinding.expectedAuthority)
409
+ throw new InvitationArtifactTrustError();
410
+ }
389
411
  deps.onPending?.();
390
412
  return enrollBorgServer(origin, trustIdentity, pending.invitation, {
391
413
  ...(deps.fetchImpl === undefined ? {} : { fetchImpl: deps.fetchImpl }),
392
- prepareEnrollment: async () => pending,
414
+ resumePending: pending,
393
415
  ...(deps.activateEnrollment === undefined
394
416
  ? {}
395
417
  : { activateEnrollment: deps.activateEnrollment }),
@@ -397,6 +419,14 @@ export async function resumeBorgServerEnrollment(origin, trustIdentity, deps = {
397
419
  ? {}
398
420
  : { clearPendingEnrollment: deps.clearPendingEnrollment }),
399
421
  ...(pending.clientName === undefined ? {} : { clientName: pending.clientName }),
422
+ ...(pending.artifactBinding === undefined
423
+ ? {}
424
+ : {
425
+ artifactBinding: pending.artifactBinding,
426
+ expectedAuthority: pending.artifactBinding.expectedAuthority,
427
+ }),
428
+ ...(deps.commitTrust === undefined ? {} : { commitTrust: deps.commitTrust }),
429
+ ...(deps.discardTrust === undefined ? {} : { discardTrust: deps.discardTrust }),
400
430
  });
401
431
  }
402
432
  async function requireMatchingServerCredential(origin, trustIdentity, parentCredential, loadCredentialRecord) {
@@ -677,27 +707,31 @@ export async function connectEnrolledBorgServer(origin, trustIdentity, deps = {}
677
707
  }
678
708
  /** Resolve the same-user server CA and its authority-bound keychain credential. */
679
709
  export async function resolveBorgServerAuthority(origin, deps = {}) {
680
- const trust = await (deps.loadTrust ?? loadBorgServerTrust)(origin);
681
- const active = deps.loadCredentialRecord
682
- ? await deps.loadCredentialRecord(origin, trust.identity)
683
- : deps.loadCredential
684
- ? null
685
- : await getServerCredentialRecord(origin, trust.identity);
686
- const token = active?.credential ?? await (deps.loadCredential ?? getServerCredential)(origin, trust.identity);
687
- if (!token) {
688
- throw new BorgServerError('NOT_ENROLLED', 'no enrolled credential is stored for this Borg server identity');
689
- }
690
- return { ...trust, token };
710
+ return withEnrollmentOriginLock(origin, async () => {
711
+ const trust = await (deps.loadTrust ?? loadBorgServerTrust)(origin);
712
+ const active = deps.loadCredentialRecord
713
+ ? await deps.loadCredentialRecord(origin, trust.identity)
714
+ : deps.loadCredential
715
+ ? null
716
+ : await getServerCredentialRecord(origin, trust.identity);
717
+ const token = active?.credential ?? await (deps.loadCredential ?? getServerCredential)(origin, trust.identity);
718
+ if (!token) {
719
+ throw new BorgServerError('NOT_ENROLLED', 'no enrolled credential is stored for this Borg server identity');
720
+ }
721
+ return { ...trust, token };
722
+ });
691
723
  }
692
724
  /** Load pinned trust, then prove the stored credential against /api/protocol. */
693
725
  export async function connectLocalBorgServer(origin, deps = {}) {
694
- const trust = await (deps.loadTrust ?? loadBorgServerTrust)(origin);
695
- return connectEnrolledBorgServer(origin, trust.identity, {
696
- fetchImpl: trust.fetchImpl,
697
- ...(deps.loadCredential === undefined ? {} : { loadCredential: deps.loadCredential }),
698
- ...(deps.loadCredentialRecord === undefined
699
- ? {}
700
- : { loadCredentialRecord: deps.loadCredentialRecord }),
726
+ return withEnrollmentOriginLock(origin, async () => {
727
+ const trust = await (deps.loadTrust ?? loadBorgServerTrust)(origin);
728
+ return connectEnrolledBorgServer(origin, trust.identity, {
729
+ fetchImpl: trust.fetchImpl,
730
+ ...(deps.loadCredential === undefined ? {} : { loadCredential: deps.loadCredential }),
731
+ ...(deps.loadCredentialRecord === undefined
732
+ ? {}
733
+ : { loadCredentialRecord: deps.loadCredentialRecord }),
734
+ });
701
735
  });
702
736
  }
703
737
  /** Load and verify the local CA before sending an enrollment invitation. */
@@ -742,39 +776,63 @@ export async function enrollLocalBorgServerArtifact(artifact, deps = {}) {
742
776
  throw error;
743
777
  throw new InvitationArtifactTransportError();
744
778
  }
779
+ const artifactBinding = {
780
+ artifactFormatVersion: verifiedArtifact.version,
781
+ artifactDigest: createHash('sha256').update(opaqueArtifact).digest('hex'),
782
+ endpoint: verifiedArtifact.endpoint,
783
+ caSpkiSha256: verifiedArtifact.ca_spki_sha256,
784
+ trustIdentity: trust.identity,
785
+ expectedAuthority: verifiedArtifact.authority,
786
+ stagedGenerationId: trust.generationId,
787
+ };
745
788
  return enrollBorgServer(verifiedArtifact.endpoint, trust.identity, opaqueArtifact, {
746
789
  fetchImpl: trust.fetchImpl,
747
790
  ...(deps.confirmReplacement === undefined ? {} : { confirmReplacement: deps.confirmReplacement }),
748
791
  ...(deps.clientName === undefined ? {} : { clientName: deps.clientName }),
749
792
  ...(deps.prepareEnrollment === undefined ? {} : { prepareEnrollment: deps.prepareEnrollment }),
793
+ ...(deps.prepareReplacementEnrollment === undefined
794
+ ? {}
795
+ : { prepareReplacementEnrollment: deps.prepareReplacementEnrollment }),
750
796
  ...(deps.activateEnrollment === undefined ? {} : { activateEnrollment: deps.activateEnrollment }),
751
797
  ...(deps.clearPendingEnrollment === undefined ? {} : { clearPendingEnrollment: deps.clearPendingEnrollment }),
752
798
  ...(deps.loadCredentialRecord === undefined ? {} : { loadCredentialRecord: deps.loadCredentialRecord }),
753
799
  ...(deps.hasCredentialForOrigin === undefined ? {} : { hasCredentialForOrigin: deps.hasCredentialForOrigin }),
754
800
  expectedAuthority: verifiedArtifact.authority,
801
+ artifactBinding,
755
802
  commitTrust: trust.commitTrust,
756
803
  discardTrust: trust.discardTrust,
757
804
  });
758
805
  }
759
806
  /** Load verified trust and resume a prior ambiguous enrollment before prompting. */
760
807
  export async function resumeLocalBorgServerEnrollment(origin, deps = {}) {
808
+ const discovered = await findPendingServerEnrollment();
809
+ const pending = discovered?.origin === origin
810
+ ? await (deps.loadPendingEnrollment ?? getPendingServerEnrollment)(origin, discovered.trustIdentity)
811
+ : null;
812
+ if (!pending)
813
+ return null;
761
814
  let trust;
762
815
  try {
763
- trust = await (deps.loadTrust ?? loadBorgServerTrust)(origin);
816
+ trust = pending.artifactBinding
817
+ ? await (deps.loadStagedTrust ?? loadStagedBorgServerTrust)(origin, pending.artifactBinding)
818
+ : await (deps.loadTrust ?? loadBorgServerTrust)(origin);
764
819
  }
765
820
  catch (error) {
766
- if (error instanceof Error && /trust files were not found|trust metadata/i.test(error.message))
767
- return null;
768
821
  throw error;
769
822
  }
770
823
  return resumeBorgServerEnrollment(origin, trust.identity, {
771
824
  fetchImpl: trust.fetchImpl,
772
- ...(deps.loadPendingEnrollment === undefined
773
- ? {}
774
- : { loadPendingEnrollment: deps.loadPendingEnrollment }),
825
+ loadPendingEnrollment: async () => pending,
775
826
  ...(deps.onPending === undefined ? {} : { onPending: deps.onPending }),
827
+ ...(isStagedTrust(trust) ? {
828
+ commitTrust: trust.commitTrust,
829
+ discardTrust: trust.discardTrust,
830
+ } : {}),
776
831
  });
777
832
  }
833
+ function isStagedTrust(trust) {
834
+ return 'generationId' in trust && 'commitTrust' in trust && 'discardTrust' in trust;
835
+ }
778
836
  /** Advisory discovery that still verifies the server-owned CA. */
779
837
  export async function probeLocalBorgServer(origin) {
780
838
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"server-handshake.js","sourceRoot":"","sources":["../src/server-handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-handshake.js","sourceRoot":"","sources":["../src/server-handshake.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
+ import type { AcceptedEnrollmentMarker, EnrollmentArtifactBinding, EnrollmentTrustPointer } from './enrollment-types.js';
1
2
  export type ServerFetch = typeof fetch;
2
3
  export interface BorgServerTrust {
3
4
  identity: string;
4
5
  fetchImpl: ServerFetch;
5
6
  }
6
7
  export interface StagedBorgServerTrust extends BorgServerTrust {
7
- commitTrust: (activate: () => Promise<void>) => Promise<void>;
8
+ generationId: string;
9
+ commitTrust: (activate: (context: {
10
+ generationId: string;
11
+ previousPointer: EnrollmentTrustPointer | null;
12
+ }) => Promise<void>) => Promise<void>;
8
13
  discardTrust: () => Promise<void>;
9
14
  }
15
+ type EnrollmentTrustFaultPoint = 'after-account-activation' | 'after-pointer-publish' | 'before-marker-finalize' | 'during-pointer-rollback';
10
16
  /**
11
17
  * Minimal fetch-compatible HTTPS transport bound to one origin and one
12
18
  * explicit local CA. Node's global fetch cannot consume the server-owned CA,
@@ -17,6 +23,13 @@ export declare function loadBorgServerTrust(origin: string, dataDirectory?: stri
17
23
  /** Bootstrap a remote pinned transport from the CA chain presented by the server. */
18
24
  export declare function loadBorgServerTrustFromPresentedChain(origin: string, caSpkiSha256: string): Promise<StagedBorgServerTrust>;
19
25
  export declare function stageBorgServerTrust(origin: string, certificate: string, identity: string): Promise<StagedBorgServerTrust>;
26
+ /** Verify the exact persisted artifact binding before any resumed network I/O. */
27
+ export declare function loadStagedBorgServerTrust(origin: string, binding: EnrollmentArtifactBinding): Promise<StagedBorgServerTrust>;
28
+ /** Explicit operator recovery restores the exact accepted journal that was reviewed. */
29
+ export declare function restoreBorgServerEnrollment(expected: AcceptedEnrollmentMarker): Promise<boolean>;
30
+ export declare function clearStagedBorgServerTrust(origin: string, generationId: string | undefined): Promise<void>;
20
31
  export declare function __clearServerTrustCacheForTest(): void;
32
+ export declare function __setEnrollmentTrustFaultForTest(points: EnrollmentTrustFaultPoint | EnrollmentTrustFaultPoint[] | null): void;
21
33
  export declare function clearBorgServerTrust(origin: string): Promise<void>;
34
+ export {};
22
35
  //# sourceMappingURL=server-trust.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-trust.d.ts","sourceRoot":"","sources":["../src/server-trust.ts"],"names":[],"mappings":"AAmDA,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAgHD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAoF1F;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CA2B1B;AA+CD,qFAAqF;AACrF,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAmBhC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CAmDhC;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE"}
1
+ {"version":3,"file":"server-trust.d.ts","sourceRoot":"","sources":["../src/server-trust.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAmC/B,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;KAChD,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAOD,KAAK,yBAAyB,GAC1B,0BAA0B,GAC1B,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,CAAC;AAyQ9B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAwF1F;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CA2C1B;AA+CD,qFAAqF;AACrF,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAmBhC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CAShC;AAiHD,kFAAkF;AAClF,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAiBhC;AAED,wFAAwF;AACxF,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQtG;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,IAAI,GACrE,IAAI,CAEN;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE"}