@tearleads/client-sdk 0.1.14 → 0.1.15

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 (200) hide show
  1. package/client/containerContents.js +2 -1
  2. package/client/containerContents.js.map +1 -1
  3. package/data/documents/blob/shared/types.d.ts +4 -0
  4. package/data/documents/blob/shared/types.js.map +1 -1
  5. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js +2 -0
  6. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js.map +1 -1
  7. package/data/keyingProjectionVerification/checkpointContext.d.ts +2 -1
  8. package/data/keyingProjectionVerification/checkpointContext.js +22 -0
  9. package/data/keyingProjectionVerification/checkpointContext.js.map +1 -1
  10. package/data/keyingProjectionVerification/containerDestinationVerification.js +11 -1
  11. package/data/keyingProjectionVerification/containerDestinationVerification.js.map +1 -1
  12. package/data/keyingProjectionVerification/containerManifestVerification.js.map +1 -1
  13. package/data/keyingProjectionVerification/containerPathVerification.js.map +1 -1
  14. package/data/keyingProjectionVerification/containerProjectionVerification.d.ts +3 -2
  15. package/data/keyingProjectionVerification/containerProjectionVerification.js +10 -11
  16. package/data/keyingProjectionVerification/containerProjectionVerification.js.map +1 -1
  17. package/data/keyingProjectionVerification/documentManifestPolicies.js.map +1 -1
  18. package/data/keyingProjectionVerification/documentManifestVerification.js.map +1 -1
  19. package/data/keyingProjectionVerification/documentProjectionVerification.d.ts +2 -3
  20. package/data/keyingProjectionVerification/documentProjectionVerification.js +4 -0
  21. package/data/keyingProjectionVerification/documentProjectionVerification.js.map +1 -1
  22. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js +14 -12
  23. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js.map +1 -1
  24. package/data/keyingProjectionVerification/organizationFounderBinding.js.map +1 -1
  25. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js +33 -6
  26. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js.map +1 -1
  27. package/data/keyingProjectionVerification/projectionLifetimes.js +13 -0
  28. package/data/keyingProjectionVerification/projectionLifetimes.js.map +1 -0
  29. package/data/keyingProjectionVerification/projectionPolicyEvidence.js +19 -66
  30. package/data/keyingProjectionVerification/projectionPolicyEvidence.js.map +1 -1
  31. package/data/keyingProjectionVerification/types.d.ts +13 -2
  32. package/data/keyingProjectionVerification/types.js +15 -0
  33. package/data/keyingProjectionVerification/types.js.map +1 -1
  34. package/data/persistence/keyingCheckpointAdvancePersistence.js +4 -1
  35. package/data/persistence/keyingCheckpointAdvancePersistence.js.map +1 -1
  36. package/data/persistence/organizationFounderPersistence.js +2 -2
  37. package/data/persistence/organizationFounderPersistence.js.map +1 -1
  38. package/data/persistence/principalAuthorizationCheckpoints.js +29 -0
  39. package/data/persistence/principalAuthorizationCheckpoints.js.map +1 -0
  40. package/data/persistence/principalHistoryEvidencePersistence.d.ts +30 -0
  41. package/data/persistence/principalHistoryPrefixPersistence.d.ts +24 -0
  42. package/data/persistence/principalHistoryPrefixPersistence.js +6 -2
  43. package/data/persistence/principalHistoryPrefixPersistence.js.map +1 -1
  44. package/data/persistence/principalHistoryStagePersistence.d.ts +21 -0
  45. package/data/principals/principalHistoryRuntime.js +12 -0
  46. package/data/principals/principalHistoryRuntime.js.map +1 -0
  47. package/data/principals/principalHistoryStageProtection.js +2 -12
  48. package/data/principals/principalHistoryStageProtection.js.map +1 -1
  49. package/data/principals/principalPolicyEvidence.d.ts +2 -2
  50. package/data/principals/principalPolicyEvidence.js.map +1 -1
  51. package/data/sqlite/principalHistoryEvidenceSchema.d.ts +308 -0
  52. package/data/sqlite/principalHistoryStageSchema.d.ts +119 -0
  53. package/index.d.ts +2 -2
  54. package/index.js +1 -1
  55. package/index.js.map +1 -1
  56. package/internal/api-client/ApiCache.d.ts +54 -0
  57. package/internal/api-client/ApiClient.d.ts +255 -309
  58. package/internal/api-client/ApiClient.js +15 -6
  59. package/internal/api-client/ApiClient.js.map +1 -1
  60. package/internal/api-client/index.d.ts +1 -0
  61. package/internal/api-client/index.js.map +1 -1
  62. package/internal/api-client/principalHistoryDeadline.js +20 -0
  63. package/internal/api-client/principalHistoryDeadline.js.map +1 -0
  64. package/internal/api-client/principalHistoryRequest.js +59 -22
  65. package/internal/api-client/principalHistoryRequest.js.map +1 -1
  66. package/internal/api-client/principalHistoryRequestContext.js +18 -5
  67. package/internal/api-client/principalHistoryRequestContext.js.map +1 -1
  68. package/internal/api-client/principalPolicyRequests.d.ts +799 -0
  69. package/internal/api-client/principalPolicyRequests.js +9 -4
  70. package/internal/api-client/principalPolicyRequests.js.map +1 -1
  71. package/internal/api-client/projectionPolicyHistoryPages.d.ts +9 -0
  72. package/internal/api-client/projectionPolicyHistoryPages.js +88 -0
  73. package/internal/api-client/projectionPolicyHistoryPages.js.map +1 -0
  74. package/internal/api-client/writerProjectionRequests.js +26 -0
  75. package/internal/api-client/writerProjectionRequests.js.map +1 -0
  76. package/internal/crypto/keying/principalPolicyHistory.js +4 -0
  77. package/internal/crypto/keying/principalPolicyHistory.js.map +1 -1
  78. package/internal/crypto/keying/principalPolicyHistoryTypes.d.ts +2 -0
  79. package/internal/crypto/keying/principalPolicyHistoryTypes.js.map +1 -1
  80. package/internal/crypto/projectionHistorySlots.js +0 -4
  81. package/internal/crypto/projectionHistorySlots.js.map +1 -1
  82. package/internal/validators/operation/index.d.ts +1 -0
  83. package/internal/validators/operation/index.js +1 -0
  84. package/internal/validators/operation/index.js.map +1 -1
  85. package/internal/validators/operation/principals.d.ts +38 -16
  86. package/internal/validators/operation/principals.js +11 -5
  87. package/internal/validators/operation/principals.js.map +1 -1
  88. package/internal/validators/operation/projectionPolicyHistory.d.ts +512 -0
  89. package/internal/validators/operation/projectionPolicyHistory.js +37 -0
  90. package/internal/validators/operation/projectionPolicyHistory.js.map +1 -0
  91. package/internal/validators/operation/registry.d.ts +2 -0
  92. package/internal/validators/operation/registry.js +2 -0
  93. package/internal/validators/operation/registry.js.map +1 -1
  94. package/internal/validators/operation/writerProjections.d.ts +178 -1224
  95. package/internal/validators/operation/writerProjections.js +9 -2
  96. package/internal/validators/operation/writerProjections.js.map +1 -1
  97. package/internal/validators/response/container.d.ts +84 -612
  98. package/internal/validators/response/documentMutation.d.ts +84 -612
  99. package/internal/validators/response/index.d.ts +1 -0
  100. package/internal/validators/response/index.js +1 -0
  101. package/internal/validators/response/index.js.map +1 -1
  102. package/internal/validators/response/organizationBilling.d.ts +1 -0
  103. package/internal/validators/response/organizationBilling.js +1 -1
  104. package/internal/validators/response/organizationBilling.js.map +1 -1
  105. package/internal/validators/response/principalHistoryPreparation.js +28 -1
  106. package/internal/validators/response/principalHistoryPreparation.js.map +1 -1
  107. package/internal/validators/response/principalPolicySnapshotPage.d.ts +388 -0
  108. package/internal/validators/response/principalPolicySnapshotPage.js +24 -0
  109. package/internal/validators/response/principalPolicySnapshotPage.js.map +1 -0
  110. package/internal/validators/response/projectionPolicyEvidence.d.ts +85 -613
  111. package/internal/validators/response/projectionPolicyEvidence.js +10 -5
  112. package/internal/validators/response/projectionPolicyEvidence.js.map +1 -1
  113. package/package.json +1 -1
  114. package/stores/documents/documentStore/attachmentHydration.js +3 -0
  115. package/stores/documents/documentStore/attachmentHydration.js.map +1 -1
  116. package/stores/documents/documentStore/syncDetachedAttachments.js +3 -0
  117. package/stores/documents/documentStore/syncDetachedAttachments.js.map +1 -1
  118. package/workflows/blobs/decrypt.d.ts +1 -1
  119. package/workflows/blobs/decrypt.js +3 -1
  120. package/workflows/blobs/decrypt.js.map +1 -1
  121. package/workflows/blobs/detach.js +6 -1
  122. package/workflows/blobs/detach.js.map +1 -1
  123. package/workflows/blobs/hydrate.d.ts +3 -1
  124. package/workflows/blobs/hydrate.js +2 -0
  125. package/workflows/blobs/hydrate.js.map +1 -1
  126. package/workflows/blobs/retainedAttachmentVerification.js +2 -0
  127. package/workflows/blobs/retainedAttachmentVerification.js.map +1 -1
  128. package/workflows/container-contents/container-state/createAdoption.js +2 -0
  129. package/workflows/container-contents/container-state/createAdoption.js.map +1 -1
  130. package/workflows/container-contents/container-state/createWithMetadata.js +7 -39
  131. package/workflows/container-contents/container-state/createWithMetadata.js.map +1 -1
  132. package/workflows/container-contents/container-state/createWithMetadataPlan.js +68 -0
  133. package/workflows/container-contents/container-state/createWithMetadataPlan.js.map +1 -0
  134. package/workflows/container-contents/remoteContainerState.js +3 -1
  135. package/workflows/container-contents/remoteContainerState.js.map +1 -1
  136. package/workflows/container-contents/remoteHydration/verifiedDestination.js +3 -0
  137. package/workflows/container-contents/remoteHydration/verifiedDestination.js.map +1 -1
  138. package/workflows/container-contents/runtime.d.ts +3 -0
  139. package/workflows/container-contents/runtime.js +7 -6
  140. package/workflows/container-contents/runtime.js.map +1 -1
  141. package/workflows/documents/create.d.ts +2 -15
  142. package/workflows/documents/create.js +9 -64
  143. package/workflows/documents/create.js.map +1 -1
  144. package/workflows/documents/createProjection.d.ts +14 -0
  145. package/workflows/documents/createProjection.js +26 -0
  146. package/workflows/documents/createProjection.js.map +1 -0
  147. package/workflows/documents/createResponse.js +49 -0
  148. package/workflows/documents/createResponse.js.map +1 -0
  149. package/workflows/documents/linkSetBlobRewraps.js +2 -0
  150. package/workflows/documents/linkSetBlobRewraps.js.map +1 -1
  151. package/workflows/documents/runtime.d.ts +3 -0
  152. package/workflows/documents/runtime.js +3 -2
  153. package/workflows/documents/runtime.js.map +1 -1
  154. package/workflows/documents/syncFailureClassification.js +3 -1
  155. package/workflows/documents/syncFailureClassification.js.map +1 -1
  156. package/workflows/principals/index.d.ts +2 -0
  157. package/workflows/principals/index.js +1 -0
  158. package/workflows/principals/index.js.map +1 -1
  159. package/workflows/principals/policyVerification.js.map +1 -1
  160. package/workflows/principals/principalHistoryRecoveryAuthority.js +20 -0
  161. package/workflows/principals/principalHistoryRecoveryAuthority.js.map +1 -0
  162. package/workflows/principals/principalHistoryRecoveryStage.js +1 -1
  163. package/workflows/principals/principalHistoryRecoveryStage.js.map +1 -1
  164. package/workflows/principals/principalHistoryRecoveryTypes.d.ts +3 -3
  165. package/workflows/principals/principalHistoryRecoveryTypes.js.map +1 -1
  166. package/workflows/principals/principalHistoryRecoveryVerification.js +6 -1
  167. package/workflows/principals/principalHistoryRecoveryVerification.js.map +1 -1
  168. package/workflows/principals/principalRecoveryOutage.js +1 -1
  169. package/workflows/principals/principalRecoveryOutage.js.map +1 -1
  170. package/workflows/principals/publicPrincipalHistoryAuthority.js +60 -0
  171. package/workflows/principals/publicPrincipalHistoryAuthority.js.map +1 -0
  172. package/workflows/principals/publicPrincipalHistoryPage.js +87 -0
  173. package/workflows/principals/publicPrincipalHistoryPage.js.map +1 -0
  174. package/workflows/principals/publicPrincipalHistoryProgress.js +178 -0
  175. package/workflows/principals/publicPrincipalHistoryProgress.js.map +1 -0
  176. package/workflows/principals/publicPrincipalHistoryTypes.d.ts +39 -0
  177. package/workflows/principals/publicPrincipalHistoryTypes.js +2 -0
  178. package/workflows/principals/publicPrincipalHistoryTypes.js.map +1 -0
  179. package/workflows/principals/publicProjectionDirectory.js +40 -0
  180. package/workflows/principals/publicProjectionDirectory.js.map +1 -0
  181. package/workflows/principals/publicProjectionPrincipal.js +53 -0
  182. package/workflows/principals/publicProjectionPrincipal.js.map +1 -0
  183. package/workflows/principals/recoverPrincipalPolicyHistory.js +4 -1
  184. package/workflows/principals/recoverPrincipalPolicyHistory.js.map +1 -1
  185. package/workflows/principals/recoverProjectionPolicyHistory.d.ts +9 -0
  186. package/workflows/principals/recoverProjectionPolicyHistory.js +98 -0
  187. package/workflows/principals/recoverProjectionPolicyHistory.js.map +1 -0
  188. package/workflows/principals/recoverPublicPrincipalHistory.js +176 -0
  189. package/workflows/principals/recoverPublicPrincipalHistory.js.map +1 -0
  190. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js +2 -5
  191. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js.map +1 -1
  192. package/workflows/principals/runtimePolicyRecovery.js +2 -1
  193. package/workflows/principals/runtimePolicyRecovery.js.map +1 -1
  194. package/workflows/principals/runtimePolicyWarmer.js +2 -0
  195. package/workflows/principals/runtimePolicyWarmer.js.map +1 -1
  196. package/workflows/principals/runtimeProjectionPolicyRecovery.js +56 -0
  197. package/workflows/principals/runtimeProjectionPolicyRecovery.js.map +1 -0
  198. package/workflows/principals/selectPublicPrincipalHistory.js +90 -0
  199. package/workflows/principals/selectPublicPrincipalHistory.js.map +1 -0
  200. package/workflows/registration/provisioningBootstrapBuilders.d.ts +21 -153
@@ -1,6 +1,7 @@
1
1
  import { commitOrganizationGroupPolicyOperation, putPrincipalPolicyOperation, } from "../validators/operation/index.js";
2
2
  import { principalHistoryRequest } from "./principalHistoryRequest.js";
3
3
  import { collectPrincipalPolicyPages, readPrincipalPolicyPages, } from "./principalPolicyPages.js";
4
+ import { readProjectionPolicyHistoryPages } from "./projectionPolicyHistoryPages.js";
4
5
  import { dedupedRequest } from "./requestInternals.js";
5
6
  import { commitOrganizationGroupPolicy, putPrincipalPolicy, } from "./routes/principals/policy.js";
6
7
  export class PrincipalPolicyRequests {
@@ -12,6 +13,9 @@ export class PrincipalPolicyRequests {
12
13
  this.cache = cache;
13
14
  this.clearWriterProjectionCaches = clearWriterProjectionCaches;
14
15
  }
16
+ publicPages(source, options = {}) {
17
+ return readProjectionPolicyHistoryPages(this.runtime, source, options);
18
+ }
15
19
  pages(principalType, principalId, options = {}) {
16
20
  return readPrincipalPolicyPages(this.runtime, principalType, principalId, options);
17
21
  }
@@ -23,7 +27,10 @@ export class PrincipalPolicyRequests {
23
27
  ? request()
24
28
  : dedupedRequest(this.cache, key, request);
25
29
  }
26
- put(principalType, principalId, input, options = {}) {
30
+ put(...args) {
31
+ return this.putResult(...args).then((result) => result.ok ? result.data : null);
32
+ }
33
+ putResult(principalType, principalId, input, options = {}) {
27
34
  const key = JSON.stringify([principalType, principalId]);
28
35
  this.cache.delete(key);
29
36
  return principalHistoryRequest(this.runtime, {
@@ -36,9 +43,7 @@ export class PrincipalPolicyRequests {
36
43
  ...options,
37
44
  },
38
45
  operation: putPrincipalPolicyOperation,
39
- })
40
- .then((result) => (result.ok ? result.data : null))
41
- .finally(() => this.cache.delete(key));
46
+ }).finally(() => this.cache.delete(key));
42
47
  }
43
48
  async commitResult(organizationId, groupId, input, options = {}) {
44
49
  const groupKey = JSON.stringify(["group", groupId]);
@@ -1 +1 @@
1
- {"version":3,"file":"principalPolicyRequests.js","sourceRoot":"","sources":["principalPolicyRequests.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n commitOrganizationGroupPolicyOperation,\n putPrincipalPolicyOperation,\n} from \"@tearleads/validators/operation\";\nimport type {\n CommitOrganizationGroupPolicyRequest,\n OrganizationPrincipalPolicyRequest,\n} from \"@tearleads/validators/request\";\nimport type { PrincipalPolicyBundleResponse } from \"@tearleads/validators/response\";\nimport type { BoundedCache } from \"./ApiCache\";\nimport type { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport { principalHistoryRequest } from \"./principalHistoryRequest\";\nimport {\n collectPrincipalPolicyPages,\n type PrincipalPolicyPageReadOptions,\n readPrincipalPolicyPages,\n} from \"./principalPolicyPages\";\nimport { dedupedRequest } from \"./requestInternals\";\nimport {\n commitOrganizationGroupPolicy,\n putPrincipalPolicy,\n} from \"./routes/principals/policy\";\nimport type { RequestResultOptions } from \"./types\";\n\nexport class PrincipalPolicyRequests {\n constructor(\n private readonly runtime: ApiRequestRuntime,\n private readonly cache: BoundedCache<\n Promise<PrincipalPolicyBundleResponse | null>\n >,\n private readonly clearWriterProjectionCaches: () => void,\n ) {}\n\n pages(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: PrincipalPolicyPageReadOptions = {},\n ) {\n return readPrincipalPolicyPages(\n this.runtime,\n principalType,\n principalId,\n options,\n );\n }\n\n get(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: RequestResultOptions = {},\n ) {\n const request = () =>\n collectPrincipalPolicyPages(\n this.runtime,\n principalType,\n principalId,\n options,\n );\n const key = JSON.stringify([principalType, principalId]);\n // Cancellation, reporting and renewal preferences belong to their caller.\n return Object.keys(options).length > 0\n ? request()\n : dedupedRequest(this.cache, key, request);\n }\n\n put(\n principalType: \"organization\",\n principalId: string,\n input: OrganizationPrincipalPolicyRequest,\n options: RequestResultOptions = {},\n ) {\n const key = JSON.stringify([principalType, principalId]);\n this.cache.delete(key);\n return principalHistoryRequest(this.runtime, {\n path: putPrincipalPolicy.path(principalType, principalId),\n validator: putPrincipalPolicy.isResponse,\n method: putPrincipalPolicy.method,\n body: JSON.stringify(input),\n options: {\n expectedPaymentRequiredOrganizationId: principalId,\n ...options,\n },\n operation: putPrincipalPolicyOperation,\n })\n .then((result) => (result.ok ? result.data : null))\n .finally(() => this.cache.delete(key));\n }\n\n async commitResult(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n options: RequestResultOptions = {},\n ) {\n const groupKey = JSON.stringify([\"group\", groupId]);\n const organizationKey = JSON.stringify([\"organization\", organizationId]);\n this.cache.delete(groupKey);\n this.cache.delete(organizationKey);\n try {\n return await principalHistoryRequest(this.runtime, {\n path: commitOrganizationGroupPolicy.path(organizationId, groupId),\n validator: commitOrganizationGroupPolicy.isResponse,\n method: commitOrganizationGroupPolicy.method,\n body: JSON.stringify(input),\n options: {\n expectedPaymentRequiredOrganizationId: organizationId,\n ...options,\n },\n operation: commitOrganizationGroupPolicyOperation,\n });\n } finally {\n this.cache.delete(groupKey);\n this.cache.delete(organizationKey);\n this.clearWriterProjectionCaches();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"principalPolicyRequests.js","sourceRoot":"","sources":["principalPolicyRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sCAAsC,EACtC,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,2BAA2B,EAE3B,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,OAAO,uBAAuB;IAEf;IACA;IAGA;IALnB,YACmB,OAA0B,EAC1B,KAEhB,EACgB,2BAAuC;QAJvC,YAAO,GAAP,OAAO,CAAmB;QAC1B,UAAK,GAAL,KAAK,CAErB;QACgB,gCAA2B,GAA3B,2BAA2B,CAAY;IACvD,CAAC;IAEJ,WAAW,CACT,MAA8D,EAC9D,UAAkE,EAAE;QAEpE,OAAO,gCAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CACH,aAAuC,EACvC,WAAmB,EACnB,UAA0C,EAAE;QAE5C,OAAO,wBAAwB,CAC7B,IAAI,CAAC,OAAO,EACZ,aAAa,EACb,WAAW,EACX,OAAO,CACR,CAAC;IACJ,CAAC;IAED,GAAG,CACD,aAAuC,EACvC,WAAmB,EACnB,UAAgC,EAAE;QAElC,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,2BAA2B,CACzB,IAAI,CAAC,OAAO,EACZ,aAAa,EACb,WAAW,EACX,OAAO,CACR,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACzD,0EAA0E;QAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,OAAO,EAAE;YACX,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,GAAG,IAAsD;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/B,CAAC;IACJ,CAAC;IAED,SAAS,CACP,aAA6B,EAC7B,WAAmB,EACnB,KAAyC,EACzC,UAAgC,EAAE;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;YACzD,SAAS,EAAE,kBAAkB,CAAC,UAAU;YACxC,MAAM,EAAE,kBAAkB,CAAC,MAAM;YACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,OAAO,EAAE;gBACP,qCAAqC,EAAE,WAAW;gBAClD,GAAG,OAAO;aACX;YACD,SAAS,EAAE,2BAA2B;SACvC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,cAAsB,EACtB,OAAe,EACf,KAA2C,EAC3C,UAAgC,EAAE;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjD,IAAI,EAAE,6BAA6B,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;gBACjE,SAAS,EAAE,6BAA6B,CAAC,UAAU;gBACnD,MAAM,EAAE,6BAA6B,CAAC,MAAM;gBAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC3B,OAAO,EAAE;oBACP,qCAAqC,EAAE,cAAc;oBACrD,GAAG,OAAO;iBACX;gBACD,SAAS,EAAE,sCAAsC;aAClD,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n commitOrganizationGroupPolicyOperation,\n putPrincipalPolicyOperation,\n} from \"@tearleads/validators/operation\";\nimport type {\n CommitOrganizationGroupPolicyRequest,\n OrganizationPrincipalPolicyRequest,\n} from \"@tearleads/validators/request\";\nimport type { PrincipalPolicyBundleResponse } from \"@tearleads/validators/response\";\nimport type { BoundedCache } from \"./ApiCache\";\nimport type { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport { principalHistoryRequest } from \"./principalHistoryRequest\";\nimport {\n collectPrincipalPolicyPages,\n type PrincipalPolicyPageReadOptions,\n readPrincipalPolicyPages,\n} from \"./principalPolicyPages\";\nimport { readProjectionPolicyHistoryPages } from \"./projectionPolicyHistoryPages\";\nimport { dedupedRequest } from \"./requestInternals\";\nimport {\n commitOrganizationGroupPolicy,\n putPrincipalPolicy,\n} from \"./routes/principals/policy\";\nimport type { RequestResultOptions } from \"./types\";\n\nexport class PrincipalPolicyRequests {\n constructor(\n private readonly runtime: ApiRequestRuntime,\n private readonly cache: BoundedCache<\n Promise<PrincipalPolicyBundleResponse | null>\n >,\n private readonly clearWriterProjectionCaches: () => void,\n ) {}\n\n publicPages(\n source: Parameters<typeof readProjectionPolicyHistoryPages>[1],\n options: Parameters<typeof readProjectionPolicyHistoryPages>[2] = {},\n ) {\n return readProjectionPolicyHistoryPages(this.runtime, source, options);\n }\n\n pages(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: PrincipalPolicyPageReadOptions = {},\n ) {\n return readPrincipalPolicyPages(\n this.runtime,\n principalType,\n principalId,\n options,\n );\n }\n\n get(\n principalType: \"group\" | \"organization\",\n principalId: string,\n options: RequestResultOptions = {},\n ) {\n const request = () =>\n collectPrincipalPolicyPages(\n this.runtime,\n principalType,\n principalId,\n options,\n );\n const key = JSON.stringify([principalType, principalId]);\n // Cancellation, reporting and renewal preferences belong to their caller.\n return Object.keys(options).length > 0\n ? request()\n : dedupedRequest(this.cache, key, request);\n }\n\n put(...args: Parameters<PrincipalPolicyRequests[\"putResult\"]>) {\n return this.putResult(...args).then((result) =>\n result.ok ? result.data : null,\n );\n }\n\n putResult(\n principalType: \"organization\",\n principalId: string,\n input: OrganizationPrincipalPolicyRequest,\n options: RequestResultOptions = {},\n ) {\n const key = JSON.stringify([principalType, principalId]);\n this.cache.delete(key);\n return principalHistoryRequest(this.runtime, {\n path: putPrincipalPolicy.path(principalType, principalId),\n validator: putPrincipalPolicy.isResponse,\n method: putPrincipalPolicy.method,\n body: JSON.stringify(input),\n options: {\n expectedPaymentRequiredOrganizationId: principalId,\n ...options,\n },\n operation: putPrincipalPolicyOperation,\n }).finally(() => this.cache.delete(key));\n }\n\n async commitResult(\n organizationId: string,\n groupId: string,\n input: CommitOrganizationGroupPolicyRequest,\n options: RequestResultOptions = {},\n ) {\n const groupKey = JSON.stringify([\"group\", groupId]);\n const organizationKey = JSON.stringify([\"organization\", organizationId]);\n this.cache.delete(groupKey);\n this.cache.delete(organizationKey);\n try {\n return await principalHistoryRequest(this.runtime, {\n path: commitOrganizationGroupPolicy.path(organizationId, groupId),\n validator: commitOrganizationGroupPolicy.isResponse,\n method: commitOrganizationGroupPolicy.method,\n body: JSON.stringify(input),\n options: {\n expectedPaymentRequiredOrganizationId: organizationId,\n ...options,\n },\n operation: commitOrganizationGroupPolicyOperation,\n });\n } finally {\n this.cache.delete(groupKey);\n this.cache.delete(organizationKey);\n this.clearWriterProjectionCaches();\n }\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { type PrincipalPolicyHistorySourceResponse, type PrincipalPolicySnapshotPageResponse } from "../validators/response/index.js";
2
+ import type { ApiRequestRuntime } from "./apiRequestRuntime.js";
3
+ import type { RequestResult, RequestResultOptions } from "./types.js";
4
+ export interface ProjectionPolicyHistoryReadOptions extends RequestResultOptions {
5
+ /** Only skip a prefix already authenticated by the caller. */
6
+ readonly afterVersion?: number | undefined;
7
+ }
8
+ /** One bounded public page at a time. Only the caller authenticates its contents. */
9
+ export declare function readProjectionPolicyHistoryPages(runtime: ApiRequestRuntime, input: PrincipalPolicyHistorySourceResponse, options?: ProjectionPolicyHistoryReadOptions): AsyncGenerator<RequestResult<PrincipalPolicySnapshotPageResponse>, void>;
@@ -0,0 +1,88 @@
1
+ import { serializeKeyingCanonicalJson } from "../crypto/index.js";
2
+ import { getProjectionPolicyHistoryOperation, operationRequestPathWithQuery, } from "../validators/operation/index.js";
3
+ import { isPrincipalPolicySnapshotPageResponse, PrincipalPolicyHistorySourceResponseSchema, } from "../validators/response/index.js";
4
+ import { principalHistoryRequest } from "./principalHistoryRequest.js";
5
+ import { PrincipalHistoryRequestContext } from "./principalHistoryRequestContext.js";
6
+ function validPage(page, source, after) {
7
+ const head = source.head;
8
+ const state = page.currentState;
9
+ const through = after + page.previousStates.length;
10
+ return (state.principalType === head.principalType &&
11
+ state.principalId === head.principalId &&
12
+ state.version === head.version &&
13
+ state.stateHash === head.stateHash &&
14
+ state.keyEpoch === head.keyEpoch &&
15
+ state.keyFingerprint === head.keyFingerprint &&
16
+ page.historyPage.afterVersion === after &&
17
+ through < head.version &&
18
+ page.previousStates.every(({ state: entry }, index) => entry.version === after + index + 1 &&
19
+ entry.principalType === head.principalType &&
20
+ entry.principalId === head.principalId) &&
21
+ (page.historyPage.nextAfterVersion === null
22
+ ? through === head.version - 1
23
+ : through > after &&
24
+ through < head.version - 1 &&
25
+ page.historyPage.nextAfterVersion === through));
26
+ }
27
+ /** One bounded public page at a time. Only the caller authenticates its contents. */
28
+ export async function* readProjectionPolicyHistoryPages(runtime, input, options = {}) {
29
+ const parsed = PrincipalPolicyHistorySourceResponseSchema.safeParse(input);
30
+ let afterVersion = options.afterVersion ?? 0;
31
+ const invalid = (message, status = null) => runtime.responseRequest.reportFailure({
32
+ kind: "shape",
33
+ message,
34
+ method: "GET",
35
+ options,
36
+ path: "/principals/history",
37
+ status,
38
+ statusText: "",
39
+ });
40
+ if (!parsed.success ||
41
+ !Number.isSafeInteger(afterVersion) ||
42
+ afterVersion < 0 ||
43
+ afterVersion >= parsed.data.head.version) {
44
+ yield invalid("Invalid projection history source or cursor");
45
+ return;
46
+ }
47
+ const source = structuredClone(parsed.data);
48
+ const context = new PrincipalHistoryRequestContext(runtime, "GET", "/principals/history", options);
49
+ let pinnedBytes;
50
+ while (true) {
51
+ const path = operationRequestPathWithQuery(getProjectionPolicyHistoryOperation, {}, { grant: source.grant, afterVersion });
52
+ const result = await principalHistoryRequest(runtime, {
53
+ path,
54
+ validator: isPrincipalPolicySnapshotPageResponse,
55
+ method: "GET",
56
+ operation: getProjectionPolicyHistoryOperation,
57
+ options,
58
+ context,
59
+ });
60
+ if (!result.ok) {
61
+ yield result;
62
+ return;
63
+ }
64
+ const page = result.data;
65
+ const bytes = serializeKeyingCanonicalJson({
66
+ currentState: page.currentState,
67
+ currentProjection: page.currentProjection,
68
+ currentGrants: page.currentGrants,
69
+ });
70
+ if (!validPage(page, source, afterVersion) ||
71
+ (pinnedBytes !== undefined && bytes !== pinnedBytes)) {
72
+ yield invalid("Projection history page changed its head, order, or cursor", 200);
73
+ return;
74
+ }
75
+ pinnedBytes ??= bytes;
76
+ context.afterReadPage();
77
+ const next = page.historyPage.nextAfterVersion;
78
+ yield result;
79
+ if (context.cancelled()) {
80
+ yield context.failure();
81
+ return;
82
+ }
83
+ if (next === null)
84
+ return;
85
+ afterVersion = next;
86
+ }
87
+ }
88
+ //# sourceMappingURL=projectionPolicyHistoryPages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionPolicyHistoryPages.js","sourceRoot":"","sources":["projectionPolicyHistoryPages.ts"],"names":[],"mappings":"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","sourcesContent":["import { serializeKeyingCanonicalJson } from \"@tearleads/crypto\";\nimport {\n getProjectionPolicyHistoryOperation,\n operationRequestPathWithQuery,\n} from \"@tearleads/validators/operation\";\nimport {\n isPrincipalPolicySnapshotPageResponse,\n type PrincipalPolicyHistorySourceResponse,\n PrincipalPolicyHistorySourceResponseSchema,\n type PrincipalPolicySnapshotPageResponse,\n} from \"@tearleads/validators/response\";\nimport type { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport { principalHistoryRequest } from \"./principalHistoryRequest\";\nimport { PrincipalHistoryRequestContext } from \"./principalHistoryRequestContext\";\nimport type { RequestResult, RequestResultOptions } from \"./types\";\n\nexport interface ProjectionPolicyHistoryReadOptions\n extends RequestResultOptions {\n /** Only skip a prefix already authenticated by the caller. */\n readonly afterVersion?: number | undefined;\n}\n\nfunction validPage(\n page: PrincipalPolicySnapshotPageResponse,\n source: PrincipalPolicyHistorySourceResponse,\n after: number,\n): boolean {\n const head = source.head;\n const state = page.currentState;\n const through = after + page.previousStates.length;\n return (\n state.principalType === head.principalType &&\n state.principalId === head.principalId &&\n state.version === head.version &&\n state.stateHash === head.stateHash &&\n state.keyEpoch === head.keyEpoch &&\n state.keyFingerprint === head.keyFingerprint &&\n page.historyPage.afterVersion === after &&\n through < head.version &&\n page.previousStates.every(\n ({ state: entry }, index) =>\n entry.version === after + index + 1 &&\n entry.principalType === head.principalType &&\n entry.principalId === head.principalId,\n ) &&\n (page.historyPage.nextAfterVersion === null\n ? through === head.version - 1\n : through > after &&\n through < head.version - 1 &&\n page.historyPage.nextAfterVersion === through)\n );\n}\n\n/** One bounded public page at a time. Only the caller authenticates its contents. */\nexport async function* readProjectionPolicyHistoryPages(\n runtime: ApiRequestRuntime,\n input: PrincipalPolicyHistorySourceResponse,\n options: ProjectionPolicyHistoryReadOptions = {},\n): AsyncGenerator<RequestResult<PrincipalPolicySnapshotPageResponse>, void> {\n const parsed = PrincipalPolicyHistorySourceResponseSchema.safeParse(input);\n let afterVersion = options.afterVersion ?? 0;\n const invalid = (message: string, status: number | null = null) =>\n runtime.responseRequest.reportFailure({\n kind: \"shape\",\n message,\n method: \"GET\",\n options,\n path: \"/principals/history\",\n status,\n statusText: \"\",\n });\n if (\n !parsed.success ||\n !Number.isSafeInteger(afterVersion) ||\n afterVersion < 0 ||\n afterVersion >= parsed.data.head.version\n ) {\n yield invalid(\"Invalid projection history source or cursor\");\n return;\n }\n const source = structuredClone(parsed.data);\n const context = new PrincipalHistoryRequestContext(\n runtime,\n \"GET\",\n \"/principals/history\",\n options,\n );\n let pinnedBytes: string | undefined;\n while (true) {\n const path = operationRequestPathWithQuery(\n getProjectionPolicyHistoryOperation,\n {},\n { grant: source.grant, afterVersion },\n );\n const result = await principalHistoryRequest(runtime, {\n path,\n validator: isPrincipalPolicySnapshotPageResponse,\n method: \"GET\",\n operation: getProjectionPolicyHistoryOperation,\n options,\n context,\n });\n if (!result.ok) {\n yield result;\n return;\n }\n const page = result.data;\n const bytes = serializeKeyingCanonicalJson({\n currentState: page.currentState,\n currentProjection: page.currentProjection,\n currentGrants: page.currentGrants,\n });\n if (\n !validPage(page, source, afterVersion) ||\n (pinnedBytes !== undefined && bytes !== pinnedBytes)\n ) {\n yield invalid(\n \"Projection history page changed its head, order, or cursor\",\n 200,\n );\n return;\n }\n pinnedBytes ??= bytes;\n context.afterReadPage();\n const next = page.historyPage.nextAfterVersion;\n yield result;\n if (context.cancelled()) {\n yield context.failure();\n return;\n }\n if (next === null) return;\n afterVersion = next;\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { getContainerWriterProjectionOperation, getDocumentWriterProjectionOperation, } from "../validators/operation/index.js";
2
+ import { principalHistoryRequest } from "./principalHistoryRequest.js";
3
+ /** Preparation and body deadlines sit inside projection-history negotiation. */
4
+ export function writerProjectionRequests(runtime) {
5
+ const requestResult = (path, validator, method, body, options, operation) => {
6
+ if (method === "GET" &&
7
+ (operation.id === "containers.writerProjection.get" ||
8
+ operation.id === "documents.writerProjection.get"))
9
+ return principalHistoryRequest(runtime, {
10
+ path,
11
+ validator,
12
+ method,
13
+ options: options ?? {},
14
+ operation: operation.id === "containers.writerProjection.get"
15
+ ? getContainerWriterProjectionOperation
16
+ : getDocumentWriterProjectionOperation,
17
+ });
18
+ return runtime.requestResult(path, validator, method, body, options, operation);
19
+ };
20
+ const request = async (...args) => {
21
+ const result = await requestResult(...args);
22
+ return result.ok ? result.data : null;
23
+ };
24
+ return { request, requestResult };
25
+ }
26
+ //# sourceMappingURL=writerProjectionRequests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writerProjectionRequests.js","sourceRoot":"","sources":["writerProjectionRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,OAA0B;IAIjE,MAAM,aAAa,GAA6B,CAC9C,IAAI,EACJ,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,EACT,EAAE;QACF,IACE,MAAM,KAAK,KAAK;YAChB,CAAC,SAAS,CAAC,EAAE,KAAK,iCAAiC;gBACjD,SAAS,CAAC,EAAE,KAAK,gCAAgC,CAAC;YAEpD,OAAO,uBAAuB,CAAC,OAAO,EAAE;gBACtC,IAAI;gBACJ,SAAS;gBACT,MAAM;gBACN,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,SAAS,EACP,SAAS,CAAC,EAAE,KAAK,iCAAiC;oBAChD,CAAC,CAAC,qCAAqC;oBACvC,CAAC,CAAC,oCAAoC;aAC3C,CAAC,CAAC;QACL,OAAO,OAAO,CAAC,aAAa,CAC1B,IAAI,EACJ,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,CACV,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,OAAO,GAAuB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACpC,CAAC","sourcesContent":["import {\n getContainerWriterProjectionOperation,\n getDocumentWriterProjectionOperation,\n} from \"@tearleads/validators/operation\";\nimport type { ApiRequestRuntime } from \"./apiRequestRuntime\";\nimport { principalHistoryRequest } from \"./principalHistoryRequest\";\nimport type { OperationRequestFn, OperationRequestResultFn } from \"./types\";\n\n/** Preparation and body deadlines sit inside projection-history negotiation. */\nexport function writerProjectionRequests(runtime: ApiRequestRuntime): {\n request: OperationRequestFn;\n requestResult: OperationRequestResultFn;\n} {\n const requestResult: OperationRequestResultFn = (\n path,\n validator,\n method,\n body,\n options,\n operation,\n ) => {\n if (\n method === \"GET\" &&\n (operation.id === \"containers.writerProjection.get\" ||\n operation.id === \"documents.writerProjection.get\")\n )\n return principalHistoryRequest(runtime, {\n path,\n validator,\n method,\n options: options ?? {},\n operation:\n operation.id === \"containers.writerProjection.get\"\n ? getContainerWriterProjectionOperation\n : getDocumentWriterProjectionOperation,\n });\n return runtime.requestResult(\n path,\n validator,\n method,\n body,\n options,\n operation,\n );\n };\n const request: OperationRequestFn = async (...args) => {\n const result = await requestResult(...args);\n return result.ok ? result.data : null;\n };\n return { request, requestResult };\n}\n"]}
@@ -30,6 +30,9 @@ class PrincipalPolicyHistoryVerifierImpl {
30
30
  this.#retained.set(entry.state.version, entry);
31
31
  }
32
32
  }
33
+ getExternalAuthorityReference() {
34
+ return this.#latestAuthority ? { ...this.#latestAuthority } : null;
35
+ }
33
36
  append(page) {
34
37
  return runVerifier(async () => {
35
38
  this.#assertIdle();
@@ -135,6 +138,7 @@ export function createPrincipalPolicyHistoryVerifier(input) {
135
138
  }
136
139
  function publicVerifier(verifier) {
137
140
  return {
141
+ getExternalAuthorityReference: () => verifier.getExternalAuthorityReference(),
138
142
  append: (page) => verifier.append(page),
139
143
  finish: (expectedHead) => verifier.finish(expectedHead),
140
144
  exportProgress: (options) => verifier.exportProgress(options),
@@ -1 +1 @@
1
- {"version":3,"file":"principalPolicyHistory.js","sourceRoot":"","sources":["principalPolicyHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PrincipalStateExternalAuthority } from \"../principalState\";\nimport { normalizeReferencedPrincipalHead } from \"./accessEvent\";\nimport {\n normalizeCanonicalJsonValue,\n serializeKeyingCanonicalJson,\n} from \"./canonical\";\nimport {\n normalizePrincipalHistoryInput,\n verifyPrincipalHistoryCheckpoint,\n} from \"./principalPolicyHistoryChecks\";\nimport { appendPrincipalHistoryIndex } from \"./principalPolicyHistoryIndex\";\nimport { verifyPrincipalHistoryPage } from \"./principalPolicyHistoryPage\";\nimport {\n normalizeAuthenticatedPrincipalHistoryProgress,\n type PrincipalHistoryProgress,\n} from \"./principalPolicyHistoryProgress\";\nimport {\n capturePrincipalHistoryAuthority,\n capturePrincipalHistoryProgressEntry,\n} from \"./principalPolicyHistoryProgressEntry\";\nimport {\n openPrincipalHistoryProgress,\n ownPrincipalHistoryProgressProtection,\n sealPrincipalHistoryProgress,\n} from \"./principalPolicyHistoryProgressProtection\";\nimport {\n makeVerifiedPrincipalPolicyHistory,\n type PrincipalPolicyHistoryInput,\n type PrincipalPolicyHistoryPage,\n type PrincipalPolicyHistoryProgressOptions,\n type PrincipalPolicyHistoryVerifier,\n type VerifiedPrincipalPolicyHistory,\n} from \"./principalPolicyHistoryTypes\";\nimport { principalPolicyStateMatchesReference } from \"./principalPolicyReference\";\nimport { runVerifier, throwVerification, toVerificationResult } from \"./shared\";\nimport type {\n KeyingVerificationResult,\n NormalizedPrincipalPolicyStateChainEntry,\n ReferencedPrincipalHead,\n} from \"./types\";\n\nclass PrincipalPolicyHistoryVerifierImpl\n implements PrincipalPolicyHistoryVerifier\n{\n readonly #input: ReturnType<typeof normalizePrincipalHistoryInput>;\n #previous: NormalizedPrincipalPolicyStateChainEntry | undefined;\n #latestAuthority: PrincipalStateExternalAuthority | null = null;\n #checkpointHash: string | undefined;\n #indexFrontier: readonly (string | null)[] = [];\n #indexRootHash: string | null = null;\n readonly #retained = new Map<\n number,\n NormalizedPrincipalPolicyStateChainEntry\n >();\n #appending = false;\n\n constructor(\n input: PrincipalPolicyHistoryInput,\n progress?: PrincipalHistoryProgress,\n ) {\n this.#input = normalizePrincipalHistoryInput(input);\n if (progress) {\n this.#previous = progress.previous ?? undefined;\n this.#latestAuthority = progress.latestAuthority;\n this.#checkpointHash = progress.checkpointHash ?? undefined;\n this.#indexFrontier = progress.indexFrontier;\n this.#indexRootHash = progress.indexRootHash;\n for (const entry of progress.retained)\n this.#retained.set(entry.state.version, entry);\n }\n }\n\n append(page: PrincipalPolicyHistoryPage) {\n return runVerifier(async () => {\n this.#assertIdle();\n this.#appending = true;\n try {\n const verified = await verifyPrincipalHistoryPage({\n page,\n principalId: this.#input.principalId,\n principalType: this.#input.principalType,\n previous: this.#previous,\n latestAuthority: this.#latestAuthority,\n references: this.#input.references,\n checkpoint: this.#input.checkpoint,\n });\n const index = await appendPrincipalHistoryIndex(\n this.#indexFrontier,\n verified.entries.map((entry) => entry.state),\n );\n // Publish only after every check, including the final signature, passes.\n for (const entry of verified.entries) {\n if (entry.state.version === this.#input.checkpoint?.version)\n this.#checkpointHash = entry.state.stateHash;\n if (\n entry.state.version === this.#input.checkpoint?.version ||\n this.#input.references.some(\n (reference) => reference.version === entry.state.version,\n )\n )\n this.#retained.set(entry.state.version, entry);\n }\n this.#previous = verified.last;\n this.#latestAuthority = verified.latestAuthority;\n this.#indexFrontier = index.frontier;\n this.#indexRootHash = index.rootHash;\n return {\n throughVersion: verified.last.state.version,\n indexNodes: index.nodes,\n };\n } finally {\n this.#appending = false;\n }\n });\n }\n\n #assertIdle(): void {\n if (this.#appending)\n throwVerification(\n \"invalid_shape\",\n \"principal history append in progress\",\n );\n }\n\n exportProgress(options: PrincipalPolicyHistoryProgressOptions) {\n return runVerifier(async () => {\n this.#assertIdle();\n // Capture a complete accepted prefix before the first yield. A later\n // append cannot change this snapshot or publish a partial page into it.\n const plaintext = serializeKeyingCanonicalJson(\n normalizeCanonicalJsonValue(\n {\n previous: this.#previous\n ? capturePrincipalHistoryProgressEntry(this.#previous)\n : null,\n latestAuthority: this.#latestAuthority\n ? capturePrincipalHistoryAuthority(this.#latestAuthority)\n : null,\n checkpointHash: this.#checkpointHash ?? null,\n indexFrontier: this.#indexFrontier,\n retained: [...this.#retained.values()].map(\n capturePrincipalHistoryProgressEntry,\n ),\n },\n \"principal history progress\",\n ),\n );\n return sealPrincipalHistoryProgress(\n plaintext,\n ownPrincipalHistoryProgressProtection(this.#input, options),\n );\n });\n }\n\n finish(\n expectedHead: ReferencedPrincipalHead,\n ): KeyingVerificationResult<VerifiedPrincipalPolicyHistory> {\n try {\n this.#assertIdle();\n const reference = normalizeReferencedPrincipalHead(expectedHead);\n const previous = this.#previous;\n if (\n !previous ||\n !this.#indexRootHash ||\n !principalPolicyStateMatchesReference(previous.state, reference)\n )\n throwVerification(\n \"missing_dependency\",\n \"principal history has not reached the requested head\",\n );\n verifyPrincipalHistoryCheckpoint(\n previous.state,\n this.#input.checkpoint,\n this.#checkpointHash,\n );\n const history = new Map(this.#retained);\n history.set(previous.state.version, previous);\n const { state, projection, grants } = previous;\n const { principalId, principalType } = this.#input;\n const owned = structuredClone({\n indexRootHash: this.#indexRootHash,\n currentEntry: { state, projection, grants },\n retainedEntries: [...history.values()].sort(\n (left, right) => left.state.version - right.state.version,\n ),\n checkpoint: {\n principalId,\n principalType,\n version: state.version,\n stateHash: state.stateHash,\n },\n });\n return { ok: true, value: makeVerifiedPrincipalPolicyHistory(owned) };\n } catch (error) {\n return toVerificationResult(error);\n }\n }\n}\n\n/**\n * Verify from genesis with bounded retained state. A rejected page cannot\n * advance authorization or continuity. Progress is local to this verifier;\n * a remote cursor/checkpoint is never accepted as verified history.\n * Callers bound serialized page bytes and authenticate external authority.\n * Throws KeyingVerificationError for invalid local scope, checkpoint or references.\n */\nexport function createPrincipalPolicyHistoryVerifier(\n input: PrincipalPolicyHistoryInput,\n): PrincipalPolicyHistoryVerifier {\n const verifier = new PrincipalPolicyHistoryVerifierImpl(input);\n return publicVerifier(verifier);\n}\n\nfunction publicVerifier(\n verifier: PrincipalPolicyHistoryVerifierImpl,\n): PrincipalPolicyHistoryVerifier {\n return {\n append: (page: PrincipalPolicyHistoryPage) => verifier.append(page),\n finish: (expectedHead: ReferencedPrincipalHead) =>\n verifier.finish(expectedHead),\n exportProgress: (options: PrincipalPolicyHistoryProgressOptions) =>\n verifier.exportProgress(options),\n };\n}\n\n/** Restore only progress authenticated by this verifier's own local key. */\nexport function restorePrincipalPolicyHistoryVerifier(\n input: PrincipalPolicyHistoryInput,\n progress: string,\n protection: PrincipalPolicyHistoryProgressOptions,\n): Promise<KeyingVerificationResult<PrincipalPolicyHistoryVerifier>> {\n return runVerifier(async () => {\n const normalized = normalizePrincipalHistoryInput(input);\n const ownedInput: PrincipalPolicyHistoryInput = {\n principalId: normalized.principalId,\n principalType: normalized.principalType,\n localCheckpoint: normalized.checkpoint,\n retainedReferences: normalized.references,\n };\n const decoded = await openPrincipalHistoryProgress(\n progress,\n ownPrincipalHistoryProgressProtection(normalized, protection),\n );\n const authenticated = await normalizeAuthenticatedPrincipalHistoryProgress(\n decoded,\n normalized,\n );\n return publicVerifier(\n new PrincipalPolicyHistoryVerifierImpl(ownedInput, authenticated),\n );\n });\n}\n"]}
1
+ {"version":3,"file":"principalPolicyHistory.js","sourceRoot":"","sources":["principalPolicyHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PrincipalStateExternalAuthority } from \"../principalState\";\nimport { normalizeReferencedPrincipalHead } from \"./accessEvent\";\nimport {\n normalizeCanonicalJsonValue,\n serializeKeyingCanonicalJson,\n} from \"./canonical\";\nimport {\n normalizePrincipalHistoryInput,\n verifyPrincipalHistoryCheckpoint,\n} from \"./principalPolicyHistoryChecks\";\nimport { appendPrincipalHistoryIndex } from \"./principalPolicyHistoryIndex\";\nimport { verifyPrincipalHistoryPage } from \"./principalPolicyHistoryPage\";\nimport {\n normalizeAuthenticatedPrincipalHistoryProgress,\n type PrincipalHistoryProgress,\n} from \"./principalPolicyHistoryProgress\";\nimport {\n capturePrincipalHistoryAuthority,\n capturePrincipalHistoryProgressEntry,\n} from \"./principalPolicyHistoryProgressEntry\";\nimport {\n openPrincipalHistoryProgress,\n ownPrincipalHistoryProgressProtection,\n sealPrincipalHistoryProgress,\n} from \"./principalPolicyHistoryProgressProtection\";\nimport {\n makeVerifiedPrincipalPolicyHistory,\n type PrincipalPolicyHistoryInput,\n type PrincipalPolicyHistoryPage,\n type PrincipalPolicyHistoryProgressOptions,\n type PrincipalPolicyHistoryVerifier,\n type VerifiedPrincipalPolicyHistory,\n} from \"./principalPolicyHistoryTypes\";\nimport { principalPolicyStateMatchesReference } from \"./principalPolicyReference\";\nimport { runVerifier, throwVerification, toVerificationResult } from \"./shared\";\nimport type {\n KeyingVerificationResult,\n NormalizedPrincipalPolicyStateChainEntry,\n ReferencedPrincipalHead,\n} from \"./types\";\n\nclass PrincipalPolicyHistoryVerifierImpl\n implements PrincipalPolicyHistoryVerifier\n{\n readonly #input: ReturnType<typeof normalizePrincipalHistoryInput>;\n #previous: NormalizedPrincipalPolicyStateChainEntry | undefined;\n #latestAuthority: PrincipalStateExternalAuthority | null = null;\n #checkpointHash: string | undefined;\n #indexFrontier: readonly (string | null)[] = [];\n #indexRootHash: string | null = null;\n readonly #retained = new Map<\n number,\n NormalizedPrincipalPolicyStateChainEntry\n >();\n #appending = false;\n\n constructor(\n input: PrincipalPolicyHistoryInput,\n progress?: PrincipalHistoryProgress,\n ) {\n this.#input = normalizePrincipalHistoryInput(input);\n if (progress) {\n this.#previous = progress.previous ?? undefined;\n this.#latestAuthority = progress.latestAuthority;\n this.#checkpointHash = progress.checkpointHash ?? undefined;\n this.#indexFrontier = progress.indexFrontier;\n this.#indexRootHash = progress.indexRootHash;\n for (const entry of progress.retained)\n this.#retained.set(entry.state.version, entry);\n }\n }\n\n getExternalAuthorityReference(): ReferencedPrincipalHead | null {\n return this.#latestAuthority ? { ...this.#latestAuthority } : null;\n }\n\n append(page: PrincipalPolicyHistoryPage) {\n return runVerifier(async () => {\n this.#assertIdle();\n this.#appending = true;\n try {\n const verified = await verifyPrincipalHistoryPage({\n page,\n principalId: this.#input.principalId,\n principalType: this.#input.principalType,\n previous: this.#previous,\n latestAuthority: this.#latestAuthority,\n references: this.#input.references,\n checkpoint: this.#input.checkpoint,\n });\n const index = await appendPrincipalHistoryIndex(\n this.#indexFrontier,\n verified.entries.map((entry) => entry.state),\n );\n // Publish only after every check, including the final signature, passes.\n for (const entry of verified.entries) {\n if (entry.state.version === this.#input.checkpoint?.version)\n this.#checkpointHash = entry.state.stateHash;\n if (\n entry.state.version === this.#input.checkpoint?.version ||\n this.#input.references.some(\n (reference) => reference.version === entry.state.version,\n )\n )\n this.#retained.set(entry.state.version, entry);\n }\n this.#previous = verified.last;\n this.#latestAuthority = verified.latestAuthority;\n this.#indexFrontier = index.frontier;\n this.#indexRootHash = index.rootHash;\n return {\n throughVersion: verified.last.state.version,\n indexNodes: index.nodes,\n };\n } finally {\n this.#appending = false;\n }\n });\n }\n\n #assertIdle(): void {\n if (this.#appending)\n throwVerification(\n \"invalid_shape\",\n \"principal history append in progress\",\n );\n }\n\n exportProgress(options: PrincipalPolicyHistoryProgressOptions) {\n return runVerifier(async () => {\n this.#assertIdle();\n // Capture a complete accepted prefix before the first yield. A later\n // append cannot change this snapshot or publish a partial page into it.\n const plaintext = serializeKeyingCanonicalJson(\n normalizeCanonicalJsonValue(\n {\n previous: this.#previous\n ? capturePrincipalHistoryProgressEntry(this.#previous)\n : null,\n latestAuthority: this.#latestAuthority\n ? capturePrincipalHistoryAuthority(this.#latestAuthority)\n : null,\n checkpointHash: this.#checkpointHash ?? null,\n indexFrontier: this.#indexFrontier,\n retained: [...this.#retained.values()].map(\n capturePrincipalHistoryProgressEntry,\n ),\n },\n \"principal history progress\",\n ),\n );\n return sealPrincipalHistoryProgress(\n plaintext,\n ownPrincipalHistoryProgressProtection(this.#input, options),\n );\n });\n }\n\n finish(\n expectedHead: ReferencedPrincipalHead,\n ): KeyingVerificationResult<VerifiedPrincipalPolicyHistory> {\n try {\n this.#assertIdle();\n const reference = normalizeReferencedPrincipalHead(expectedHead);\n const previous = this.#previous;\n if (\n !previous ||\n !this.#indexRootHash ||\n !principalPolicyStateMatchesReference(previous.state, reference)\n )\n throwVerification(\n \"missing_dependency\",\n \"principal history has not reached the requested head\",\n );\n verifyPrincipalHistoryCheckpoint(\n previous.state,\n this.#input.checkpoint,\n this.#checkpointHash,\n );\n const history = new Map(this.#retained);\n history.set(previous.state.version, previous);\n const { state, projection, grants } = previous;\n const { principalId, principalType } = this.#input;\n const owned = structuredClone({\n indexRootHash: this.#indexRootHash,\n currentEntry: { state, projection, grants },\n retainedEntries: [...history.values()].sort(\n (left, right) => left.state.version - right.state.version,\n ),\n checkpoint: {\n principalId,\n principalType,\n version: state.version,\n stateHash: state.stateHash,\n },\n });\n return { ok: true, value: makeVerifiedPrincipalPolicyHistory(owned) };\n } catch (error) {\n return toVerificationResult(error);\n }\n }\n}\n\n/**\n * Verify from genesis with bounded retained state. A rejected page cannot\n * advance authorization or continuity. Progress is local to this verifier;\n * a remote cursor/checkpoint is never accepted as verified history.\n * Callers bound serialized page bytes and authenticate external authority.\n * Throws KeyingVerificationError for invalid local scope, checkpoint or references.\n */\nexport function createPrincipalPolicyHistoryVerifier(\n input: PrincipalPolicyHistoryInput,\n): PrincipalPolicyHistoryVerifier {\n const verifier = new PrincipalPolicyHistoryVerifierImpl(input);\n return publicVerifier(verifier);\n}\n\nfunction publicVerifier(\n verifier: PrincipalPolicyHistoryVerifierImpl,\n): PrincipalPolicyHistoryVerifier {\n return {\n getExternalAuthorityReference: () =>\n verifier.getExternalAuthorityReference(),\n append: (page: PrincipalPolicyHistoryPage) => verifier.append(page),\n finish: (expectedHead: ReferencedPrincipalHead) =>\n verifier.finish(expectedHead),\n exportProgress: (options: PrincipalPolicyHistoryProgressOptions) =>\n verifier.exportProgress(options),\n };\n}\n\n/** Restore only progress authenticated by this verifier's own local key. */\nexport function restorePrincipalPolicyHistoryVerifier(\n input: PrincipalPolicyHistoryInput,\n progress: string,\n protection: PrincipalPolicyHistoryProgressOptions,\n): Promise<KeyingVerificationResult<PrincipalPolicyHistoryVerifier>> {\n return runVerifier(async () => {\n const normalized = normalizePrincipalHistoryInput(input);\n const ownedInput: PrincipalPolicyHistoryInput = {\n principalId: normalized.principalId,\n principalType: normalized.principalType,\n localCheckpoint: normalized.checkpoint,\n retainedReferences: normalized.references,\n };\n const decoded = await openPrincipalHistoryProgress(\n progress,\n ownPrincipalHistoryProgressProtection(normalized, protection),\n );\n const authenticated = await normalizeAuthenticatedPrincipalHistoryProgress(\n decoded,\n normalized,\n );\n return publicVerifier(\n new PrincipalPolicyHistoryVerifierImpl(ownedInput, authenticated),\n );\n });\n}\n"]}
@@ -36,6 +36,8 @@ type HistorySnapshot = Omit<VerifiedPrincipalPolicyHistory, typeof verifiedHisto
36
36
  export declare function makeVerifiedPrincipalPolicyHistory(value: Omit<VerifiedPrincipalPolicyHistory, typeof verifiedHistoryBrand>): VerifiedPrincipalPolicyHistory;
37
37
  export declare function ownVerifiedPrincipalPolicyHistory(history: VerifiedPrincipalPolicyHistory): HistorySnapshot;
38
38
  export interface PrincipalPolicyHistoryVerifier {
39
+ /** Owned copy of the latest accepted citation, including across uncited pages. */
40
+ getExternalAuthorityReference(): ReferencedPrincipalHead | null;
39
41
  append(page: PrincipalPolicyHistoryPage): Promise<KeyingVerificationResult<{
40
42
  readonly throughVersion: number;
41
43
  readonly indexNodes: readonly PrincipalHistoryIndexNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"principalPolicyHistoryTypes.js","sourceRoot":"","sources":["principalPolicyHistoryTypes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAS7C,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAyBtD,MAAM,oBAAoB,GAAkB,MAAM,CAChD,gCAAgC,CACjC,CAAC;AAiBF,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,OAAO,EAGhC,CAAC;AAEJ,MAAM,UAAU,kCAAkC,CAChD,KAAwE;IAExE,MAAM,MAAM,GAAmC;QAC7C,GAAG,KAAK;QACR,CAAC,oBAAoB,CAAC,EAAE,IAAI;KAC7B,CAAC;IACF,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAAuC;IAEvC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ;QACX,iBAAiB,CACf,eAAe,EACf,mDAAmD,CACpD,CAAC;IACJ,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import type { PrincipalPolicyExternalAuthority } from \"./principalPolicyExternalAuthorityTypes\";\nimport type { PrincipalHistoryIndexNode } from \"./principalPolicyHistoryIndex\";\nimport { throwVerification } from \"./shared\";\nimport type {\n KeyingVerificationResult,\n PrincipalPolicyCheckpoint,\n PrincipalPolicySignerPublicKey,\n PrincipalPolicyStateChainEntry,\n ReferencedPrincipalHead,\n} from \"./types\";\n\nexport const PRINCIPAL_HISTORY_PAGE_ENTRY_LIMIT = 128;\n\n/** A crypto verification batch, not a wire-response DTO. */\nexport interface PrincipalPolicyHistoryPage {\n readonly entries: readonly PrincipalPolicyStateChainEntry[];\n /** Keys resolved through the caller's trusted user-identity mechanism. */\n readonly signerPublicKeys: readonly PrincipalPolicySignerPublicKey[];\n /** Already authenticated authority; never trust a server page directly. */\n readonly externalAuthority?: PrincipalPolicyExternalAuthority;\n}\n\nexport interface PrincipalPolicyHistoryInput {\n readonly principalId: string;\n readonly principalType: ReferencedPrincipalHead[\"principalType\"];\n readonly localCheckpoint?: PrincipalPolicyCheckpoint | null;\n readonly retainedReferences?: readonly ReferencedPrincipalHead[];\n}\n\n/** Local verifier protection; never obtain this key from a remote API. */\nexport interface PrincipalPolicyHistoryProgressOptions {\n readonly localKey: Uint8Array;\n /** Stable local operation identity, bound into authenticated progress. */\n readonly context: string;\n}\n\nconst verifiedHistoryBrand: unique symbol = Symbol(\n \"verifiedPrincipalPolicyHistory\",\n);\n\n/** A verified prefix with explicitly retained references, not a full snapshot. */\nexport interface VerifiedPrincipalPolicyHistory {\n readonly [verifiedHistoryBrand]: true;\n readonly currentEntry: PrincipalPolicyStateChainEntry;\n readonly retainedEntries: readonly PrincipalPolicyStateChainEntry[];\n readonly checkpoint: PrincipalPolicyCheckpoint;\n /** Computed only from locally accepted entries; never supplied by a peer. */\n readonly indexRootHash: string;\n}\n\ntype HistorySnapshot = Omit<\n VerifiedPrincipalPolicyHistory,\n typeof verifiedHistoryBrand\n>;\n\n// Public copies are useful for inspection, but their fields are not authority.\n// A later verifier consumes the privately held snapshot issued by finish().\nconst issuedHistories = new WeakMap<\n VerifiedPrincipalPolicyHistory,\n HistorySnapshot\n>();\n\nexport function makeVerifiedPrincipalPolicyHistory(\n value: Omit<VerifiedPrincipalPolicyHistory, typeof verifiedHistoryBrand>,\n): VerifiedPrincipalPolicyHistory {\n const result: VerifiedPrincipalPolicyHistory = {\n ...value,\n [verifiedHistoryBrand]: true,\n };\n issuedHistories.set(result, structuredClone(value));\n return result;\n}\n\nexport function ownVerifiedPrincipalPolicyHistory(\n history: VerifiedPrincipalPolicyHistory,\n): HistorySnapshot {\n const snapshot = issuedHistories.get(history);\n if (!snapshot)\n throwVerification(\n \"invalid_shape\",\n \"principal history must come from a local verifier\",\n );\n return structuredClone(snapshot);\n}\n\nexport interface PrincipalPolicyHistoryVerifier {\n append(page: PrincipalPolicyHistoryPage): Promise<\n KeyingVerificationResult<{\n readonly throughVersion: number;\n readonly indexNodes: readonly PrincipalHistoryIndexNode[];\n }>\n >;\n finish(\n expectedHead: ReferencedPrincipalHead,\n ): KeyingVerificationResult<VerifiedPrincipalPolicyHistory>;\n exportProgress(\n options: PrincipalPolicyHistoryProgressOptions,\n ): Promise<KeyingVerificationResult<string>>;\n}\n"]}
1
+ {"version":3,"file":"principalPolicyHistoryTypes.js","sourceRoot":"","sources":["principalPolicyHistoryTypes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAS7C,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAyBtD,MAAM,oBAAoB,GAAkB,MAAM,CAChD,gCAAgC,CACjC,CAAC;AAiBF,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,OAAO,EAGhC,CAAC;AAEJ,MAAM,UAAU,kCAAkC,CAChD,KAAwE;IAExE,MAAM,MAAM,GAAmC;QAC7C,GAAG,KAAK;QACR,CAAC,oBAAoB,CAAC,EAAE,IAAI;KAC7B,CAAC;IACF,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAAuC;IAEvC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ;QACX,iBAAiB,CACf,eAAe,EACf,mDAAmD,CACpD,CAAC;IACJ,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import type { PrincipalPolicyExternalAuthority } from \"./principalPolicyExternalAuthorityTypes\";\nimport type { PrincipalHistoryIndexNode } from \"./principalPolicyHistoryIndex\";\nimport { throwVerification } from \"./shared\";\nimport type {\n KeyingVerificationResult,\n PrincipalPolicyCheckpoint,\n PrincipalPolicySignerPublicKey,\n PrincipalPolicyStateChainEntry,\n ReferencedPrincipalHead,\n} from \"./types\";\n\nexport const PRINCIPAL_HISTORY_PAGE_ENTRY_LIMIT = 128;\n\n/** A crypto verification batch, not a wire-response DTO. */\nexport interface PrincipalPolicyHistoryPage {\n readonly entries: readonly PrincipalPolicyStateChainEntry[];\n /** Keys resolved through the caller's trusted user-identity mechanism. */\n readonly signerPublicKeys: readonly PrincipalPolicySignerPublicKey[];\n /** Already authenticated authority; never trust a server page directly. */\n readonly externalAuthority?: PrincipalPolicyExternalAuthority;\n}\n\nexport interface PrincipalPolicyHistoryInput {\n readonly principalId: string;\n readonly principalType: ReferencedPrincipalHead[\"principalType\"];\n readonly localCheckpoint?: PrincipalPolicyCheckpoint | null;\n readonly retainedReferences?: readonly ReferencedPrincipalHead[];\n}\n\n/** Local verifier protection; never obtain this key from a remote API. */\nexport interface PrincipalPolicyHistoryProgressOptions {\n readonly localKey: Uint8Array;\n /** Stable local operation identity, bound into authenticated progress. */\n readonly context: string;\n}\n\nconst verifiedHistoryBrand: unique symbol = Symbol(\n \"verifiedPrincipalPolicyHistory\",\n);\n\n/** A verified prefix with explicitly retained references, not a full snapshot. */\nexport interface VerifiedPrincipalPolicyHistory {\n readonly [verifiedHistoryBrand]: true;\n readonly currentEntry: PrincipalPolicyStateChainEntry;\n readonly retainedEntries: readonly PrincipalPolicyStateChainEntry[];\n readonly checkpoint: PrincipalPolicyCheckpoint;\n /** Computed only from locally accepted entries; never supplied by a peer. */\n readonly indexRootHash: string;\n}\n\ntype HistorySnapshot = Omit<\n VerifiedPrincipalPolicyHistory,\n typeof verifiedHistoryBrand\n>;\n\n// Public copies are useful for inspection, but their fields are not authority.\n// A later verifier consumes the privately held snapshot issued by finish().\nconst issuedHistories = new WeakMap<\n VerifiedPrincipalPolicyHistory,\n HistorySnapshot\n>();\n\nexport function makeVerifiedPrincipalPolicyHistory(\n value: Omit<VerifiedPrincipalPolicyHistory, typeof verifiedHistoryBrand>,\n): VerifiedPrincipalPolicyHistory {\n const result: VerifiedPrincipalPolicyHistory = {\n ...value,\n [verifiedHistoryBrand]: true,\n };\n issuedHistories.set(result, structuredClone(value));\n return result;\n}\n\nexport function ownVerifiedPrincipalPolicyHistory(\n history: VerifiedPrincipalPolicyHistory,\n): HistorySnapshot {\n const snapshot = issuedHistories.get(history);\n if (!snapshot)\n throwVerification(\n \"invalid_shape\",\n \"principal history must come from a local verifier\",\n );\n return structuredClone(snapshot);\n}\n\nexport interface PrincipalPolicyHistoryVerifier {\n /** Owned copy of the latest accepted citation, including across uncited pages. */\n getExternalAuthorityReference(): ReferencedPrincipalHead | null;\n append(page: PrincipalPolicyHistoryPage): Promise<\n KeyingVerificationResult<{\n readonly throughVersion: number;\n readonly indexNodes: readonly PrincipalHistoryIndexNode[];\n }>\n >;\n finish(\n expectedHead: ReferencedPrincipalHead,\n ): KeyingVerificationResult<VerifiedPrincipalPolicyHistory>;\n exportProgress(\n options: PrincipalPolicyHistoryProgressOptions,\n ): Promise<KeyingVerificationResult<string>>;\n}\n"]}
@@ -64,10 +64,6 @@ export function projectionHistoryArrays(projection) {
64
64
  manifests(`${name}:kek:${index}:${kek.containerId}`, kek.containerManifestHistory);
65
65
  };
66
66
  const evidence = projection.policyEvidence;
67
- if (evidence.organization)
68
- add(`organization:${evidence.organization.currentState.principalId}`, evidence.organization.previousStates);
69
- for (const group of evidence.groups)
70
- add(`group:${group.currentState.principalId}`, group.previousStates);
71
67
  add("organizationPayloads", evidence.organizationPayloads);
72
68
  if (!isDocumentProjection(projection))
73
69
  path("container", projection);
@@ -1 +1 @@
1
- {"version":3,"file":"projectionHistorySlots.js","sourceRoot":"","sources":["projectionHistorySlots.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AccessManifestBundleWireResponse,\n ContainerKeyingPathResponse,\n ContainerWriterProjectionResponse,\n DocumentWriterProjectionResponse,\n} from \"@tearleads/validators/response\";\nimport { compareCanonicalStrings } from \"./canonicalOrdering\";\n\nexport type HistoryProjection =\n | ContainerWriterProjectionResponse\n | DocumentWriterProjectionResponse;\nexport interface ProjectionHistoryArray {\n readonly key: string;\n readonly values: unknown[];\n readonly restoreOrder?: (() => void) | undefined;\n readonly chains: readonly {\n readonly key: string;\n readonly values: unknown[];\n }[];\n}\n\nfunction manifestEpoch(bundle: AccessManifestBundleWireResponse): number {\n const epoch: unknown = Reflect.get(bundle.manifest, \"epoch\");\n return typeof epoch === \"number\" && Number.isFinite(epoch) ? epoch : 0;\n}\n\nfunction isDocumentProjection(\n projection: HistoryProjection,\n): projection is DocumentWriterProjectionResponse {\n return \"documentId\" in projection && \"documentManifest\" in projection;\n}\n\nfunction unambiguousArrays(\n arrays: ProjectionHistoryArray[],\n): ProjectionHistoryArray[] {\n const occurrences = new Map<string, number>();\n for (const array of arrays)\n occurrences.set(array.key, (occurrences.get(array.key) ?? 0) + 1);\n // Ambiguous locations cannot safely negotiate an omission. Deliver them full.\n return arrays.filter((array) => occurrences.get(array.key) === 1);\n}\n\nfunction manifestHistoryArray(\n key: string,\n values: AccessManifestBundleWireResponse[],\n newestFirst: boolean,\n): ProjectionHistoryArray {\n const groups = new Map<string, AccessManifestBundleWireResponse[]>();\n for (const value of values) {\n const chain = JSON.stringify([\n key,\n Reflect.get(value.manifest, \"organizationId\"),\n Reflect.get(value.manifest, \"objectKind\"),\n Reflect.get(value.manifest, \"objectId\"),\n ]);\n const entries = groups.get(chain) ?? [];\n entries.push(value);\n groups.set(chain, entries);\n }\n return {\n key,\n values,\n restoreOrder: newestFirst\n ? () => {\n values.sort((a, b) => manifestEpoch(b) - manifestEpoch(a));\n }\n : undefined,\n chains: [...groups].map(([chain, entries]) => ({\n key: chain,\n values: entries.sort(\n (a, b) =>\n manifestEpoch(a) - manifestEpoch(b) ||\n compareCanonicalStrings(a.manifestHash, b.manifestHash),\n ),\n })),\n };\n}\n\n/** Only these evidence arrays can be omitted. Current heads and keys always travel. */\nexport function projectionHistoryArrays(\n projection: HistoryProjection,\n): ProjectionHistoryArray[] {\n const arrays: ProjectionHistoryArray[] = [];\n const identity = isDocumentProjection(projection)\n ? [\n \"document\",\n Reflect.get(projection.documentManifest.manifest, \"organizationId\"),\n projection.documentId,\n ]\n : [\"container\", projection.organizationId, projection.containerId];\n const add = (name: string, values: unknown[]) => {\n const key = JSON.stringify([...identity, name]);\n arrays.push({ key, values, chains: [{ key, values }] });\n };\n const manifests = (\n name: string,\n values: AccessManifestBundleWireResponse[],\n newestFirst = false,\n ) => {\n const key = JSON.stringify([...identity, name]);\n arrays.push(manifestHistoryArray(key, values, newestFirst));\n };\n const path = (name: string, value: ContainerKeyingPathResponse) => {\n for (const [index, kek] of value.containerKeks.entries())\n manifests(\n `${name}:kek:${index}:${kek.containerId}`,\n kek.containerManifestHistory,\n );\n };\n const evidence = projection.policyEvidence;\n if (evidence.organization)\n add(\n `organization:${evidence.organization.currentState.principalId}`,\n evidence.organization.previousStates,\n );\n for (const group of evidence.groups)\n add(`group:${group.currentState.principalId}`, group.previousStates);\n add(\"organizationPayloads\", evidence.organizationPayloads);\n if (!isDocumentProjection(projection)) path(\"container\", projection);\n else {\n for (const [index, value] of projection.authorizingContainerPaths.entries())\n path(`path:${index}:${value.containerId}`, value);\n // A dependency path is ordered root-to-leaf, not an unordered history.\n for (const [\n index,\n values,\n ] of projection.documentManifestContainerPaths.entries())\n add(`documentManifestContainerPaths:${index}`, values);\n manifests(\n \"documentContainerManifestHistory\",\n projection.documentContainerManifestHistory,\n );\n manifests(\n \"documentManifestHistory\",\n projection.documentManifestHistory,\n true,\n );\n }\n return unambiguousArrays(arrays);\n}\n"]}
1
+ {"version":3,"file":"projectionHistorySlots.js","sourceRoot":"","sources":["projectionHistorySlots.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AccessManifestBundleWireResponse,\n ContainerKeyingPathResponse,\n ContainerWriterProjectionResponse,\n DocumentWriterProjectionResponse,\n} from \"@tearleads/validators/response\";\nimport { compareCanonicalStrings } from \"./canonicalOrdering\";\n\nexport type HistoryProjection =\n | ContainerWriterProjectionResponse\n | DocumentWriterProjectionResponse;\nexport interface ProjectionHistoryArray {\n readonly key: string;\n readonly values: unknown[];\n readonly restoreOrder?: (() => void) | undefined;\n readonly chains: readonly {\n readonly key: string;\n readonly values: unknown[];\n }[];\n}\n\nfunction manifestEpoch(bundle: AccessManifestBundleWireResponse): number {\n const epoch: unknown = Reflect.get(bundle.manifest, \"epoch\");\n return typeof epoch === \"number\" && Number.isFinite(epoch) ? epoch : 0;\n}\n\nfunction isDocumentProjection(\n projection: HistoryProjection,\n): projection is DocumentWriterProjectionResponse {\n return \"documentId\" in projection && \"documentManifest\" in projection;\n}\n\nfunction unambiguousArrays(\n arrays: ProjectionHistoryArray[],\n): ProjectionHistoryArray[] {\n const occurrences = new Map<string, number>();\n for (const array of arrays)\n occurrences.set(array.key, (occurrences.get(array.key) ?? 0) + 1);\n // Ambiguous locations cannot safely negotiate an omission. Deliver them full.\n return arrays.filter((array) => occurrences.get(array.key) === 1);\n}\n\nfunction manifestHistoryArray(\n key: string,\n values: AccessManifestBundleWireResponse[],\n newestFirst: boolean,\n): ProjectionHistoryArray {\n const groups = new Map<string, AccessManifestBundleWireResponse[]>();\n for (const value of values) {\n const chain = JSON.stringify([\n key,\n Reflect.get(value.manifest, \"organizationId\"),\n Reflect.get(value.manifest, \"objectKind\"),\n Reflect.get(value.manifest, \"objectId\"),\n ]);\n const entries = groups.get(chain) ?? [];\n entries.push(value);\n groups.set(chain, entries);\n }\n return {\n key,\n values,\n restoreOrder: newestFirst\n ? () => {\n values.sort((a, b) => manifestEpoch(b) - manifestEpoch(a));\n }\n : undefined,\n chains: [...groups].map(([chain, entries]) => ({\n key: chain,\n values: entries.sort(\n (a, b) =>\n manifestEpoch(a) - manifestEpoch(b) ||\n compareCanonicalStrings(a.manifestHash, b.manifestHash),\n ),\n })),\n };\n}\n\n/** Only these evidence arrays can be omitted. Current heads and keys always travel. */\nexport function projectionHistoryArrays(\n projection: HistoryProjection,\n): ProjectionHistoryArray[] {\n const arrays: ProjectionHistoryArray[] = [];\n const identity = isDocumentProjection(projection)\n ? [\n \"document\",\n Reflect.get(projection.documentManifest.manifest, \"organizationId\"),\n projection.documentId,\n ]\n : [\"container\", projection.organizationId, projection.containerId];\n const add = (name: string, values: unknown[]) => {\n const key = JSON.stringify([...identity, name]);\n arrays.push({ key, values, chains: [{ key, values }] });\n };\n const manifests = (\n name: string,\n values: AccessManifestBundleWireResponse[],\n newestFirst = false,\n ) => {\n const key = JSON.stringify([...identity, name]);\n arrays.push(manifestHistoryArray(key, values, newestFirst));\n };\n const path = (name: string, value: ContainerKeyingPathResponse) => {\n for (const [index, kek] of value.containerKeks.entries())\n manifests(\n `${name}:kek:${index}:${kek.containerId}`,\n kek.containerManifestHistory,\n );\n };\n const evidence = projection.policyEvidence;\n add(\"organizationPayloads\", evidence.organizationPayloads);\n if (!isDocumentProjection(projection)) path(\"container\", projection);\n else {\n for (const [index, value] of projection.authorizingContainerPaths.entries())\n path(`path:${index}:${value.containerId}`, value);\n // A dependency path is ordered root-to-leaf, not an unordered history.\n for (const [\n index,\n values,\n ] of projection.documentManifestContainerPaths.entries())\n add(`documentManifestContainerPaths:${index}`, values);\n manifests(\n \"documentContainerManifestHistory\",\n projection.documentContainerManifestHistory,\n );\n manifests(\n \"documentManifestHistory\",\n projection.documentManifestHistory,\n true,\n );\n }\n return unambiguousArrays(arrays);\n}\n"]}
@@ -18,6 +18,7 @@ export { getOrganizationPolicyHistoryOperation } from "./organizationPolicyHisto
18
18
  export { createOrganizationGroupOperation, createOrganizationOperation, deleteOrganizationGroupOperation, getOrganizationDataUsageOperation, getOrganizationReadModelOperation, isCreateOrganizationGroupOperationRequest, isCreateOrganizationGroupOperationResponse, isCreateOrganizationOperationRequest, isCreateOrganizationOperationResponse, isDeleteOrganizationGroupOperationResponse, isGetOrganizationDataUsageOperationResponse, isGetOrganizationReadModelOperationResponse, isListOrganizationGroupMembersOperationResponse, isUpdateOrganizationProfileOperationRequest, isUpdateOrganizationProfileOperationResponse, isUpdateOrganizationRosterEntryOperationRequest, isUpdateOrganizationRosterEntryOperationResponse, listOrganizationGroupMembersOperation, type OrganizationGroupPathParams, OrganizationGroupPathParamsSchema, type OrganizationPathParams, OrganizationPathParamsSchema, type OrganizationRosterPathParams, OrganizationRosterPathParamsSchema, updateOrganizationProfileOperation, updateOrganizationRosterEntryOperation, } from "./organizations.js";
19
19
  export { type PrincipalPolicyPageQuery, PrincipalPolicyPageQuerySchema, } from "./principalPolicyPageQuery.js";
20
20
  export { commitOrganizationGroupPolicyOperation, getPrincipalPolicyOperation, isCommitOrganizationGroupPolicyOperationRequest, isCommitOrganizationGroupPolicyOperationResponse, isGetPrincipalPolicyOperationResponse, isPutPrincipalPolicyOperationRequest, isPutPrincipalPolicyOperationResponse, type OrganizationGroupPolicyPathParams, OrganizationGroupPolicyPathParamsSchema, type PrincipalPolicyPathParams, PrincipalPolicyPathParamsSchema, putPrincipalPolicyOperation, } from "./principals.js";
21
+ export { getProjectionPolicyHistoryOperation, type ProjectionPolicyHistoryQuery, ProjectionPolicyHistoryQuerySchema, } from "./projectionPolicyHistory.js";
21
22
  export { protocolOperations } from "./registry.js";
22
23
  export { getRootIdentityOperation, isGetRootIdentityOperationResponse, isListRootIdentitiesOperationResponse, isListRootIdentityOrganizationsOperationResponse, listRootIdentitiesOperation, listRootIdentityOrganizationsOperation, MAX_ROOT_IDENTITY_PAGE_SIZE, type RootIdentitiesQuery, RootIdentitiesQuerySchema, type RootIdentityPathParams, RootIdentityPathParamsSchema, } from "./root.js";
23
24
  export { getRootOrganizationDataUsageOperation, getRootOrganizationOperation, listRootDataUsageReportOperation, listRootOrganizationIdentitiesOperation, listRootOrganizationsOperation, type RootOrganizationPageQuery, type RootOrganizationsQuery, } from "./rootOrganizations.js";
@@ -18,6 +18,7 @@ export { getOrganizationPolicyHistoryOperation } from "./organizationPolicyHisto
18
18
  export { createOrganizationGroupOperation, createOrganizationOperation, deleteOrganizationGroupOperation, getOrganizationDataUsageOperation, getOrganizationReadModelOperation, isCreateOrganizationGroupOperationRequest, isCreateOrganizationGroupOperationResponse, isCreateOrganizationOperationRequest, isCreateOrganizationOperationResponse, isDeleteOrganizationGroupOperationResponse, isGetOrganizationDataUsageOperationResponse, isGetOrganizationReadModelOperationResponse, isListOrganizationGroupMembersOperationResponse, isUpdateOrganizationProfileOperationRequest, isUpdateOrganizationProfileOperationResponse, isUpdateOrganizationRosterEntryOperationRequest, isUpdateOrganizationRosterEntryOperationResponse, listOrganizationGroupMembersOperation, OrganizationGroupPathParamsSchema, OrganizationPathParamsSchema, OrganizationRosterPathParamsSchema, updateOrganizationProfileOperation, updateOrganizationRosterEntryOperation, } from "./organizations.js";
19
19
  export { PrincipalPolicyPageQuerySchema, } from "./principalPolicyPageQuery.js";
20
20
  export { commitOrganizationGroupPolicyOperation, getPrincipalPolicyOperation, isCommitOrganizationGroupPolicyOperationRequest, isCommitOrganizationGroupPolicyOperationResponse, isGetPrincipalPolicyOperationResponse, isPutPrincipalPolicyOperationRequest, isPutPrincipalPolicyOperationResponse, OrganizationGroupPolicyPathParamsSchema, PrincipalPolicyPathParamsSchema, putPrincipalPolicyOperation, } from "./principals.js";
21
+ export { getProjectionPolicyHistoryOperation, ProjectionPolicyHistoryQuerySchema, } from "./projectionPolicyHistory.js";
21
22
  export { protocolOperations } from "./registry.js";
22
23
  export { getRootIdentityOperation, isGetRootIdentityOperationResponse, isListRootIdentitiesOperationResponse, isListRootIdentityOrganizationsOperationResponse, listRootIdentitiesOperation, listRootIdentityOrganizationsOperation, MAX_ROOT_IDENTITY_PAGE_SIZE, RootIdentitiesQuerySchema, RootIdentityPathParamsSchema, } from "./root.js";
23
24
  export { getRootOrganizationDataUsageOperation, getRootOrganizationOperation, listRootDataUsageReportOperation, listRootOrganizationIdentitiesOperation, listRootOrganizationsOperation, } from "./rootOrganizations.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["export { apiVersionHeaderName, parseApiVersion } from \"./apiVersion\";\nexport {\n type BlobAttachmentBindingPathParams,\n BlobAttachmentBindingPathParamsSchema,\n type BlobAttachmentPathParams,\n BlobAttachmentPathParamsSchema,\n bindBlobAttachmentOperation,\n type DocumentAttachmentsPathParams,\n DocumentAttachmentsPathParamsSchema,\n detachBlobAttachmentOperation,\n isBindBlobAttachmentOperationRequest,\n isBindBlobAttachmentOperationResponse,\n isDetachBlobAttachmentOperationRequest,\n isDetachBlobAttachmentOperationResponse,\n isListDocumentAttachmentsOperationResponse,\n listDocumentAttachmentsOperation,\n} from \"./attachments\";\nexport {\n challengeOperation,\n destroySessionOperation,\n isChallengeOperationRequest,\n isChallengeOperationResponse,\n isDestroySessionOperationResponse,\n isListSessionsOperationResponse,\n isLogoutOperationResponse,\n isRegistrationOperationRequest,\n isRegistrationOperationResponse,\n isUserIdentityOperationResponse,\n isVerifyOperationRequest,\n isVerifyOperationResponse,\n isWebSocketTicketOperationResponse,\n listSessionsOperation,\n logoutOperation,\n registerOperation,\n userIdentityOperation,\n verifyOperation,\n webSocketTicketOperation,\n} from \"./auth\";\nexport {\n billingWebhookWireHeaderKeys,\n billingWebhookWireHeaderNames,\n isReceiveRevenueCatWebhookOperationRequest,\n isReceiveRevenueCatWebhookOperationResponse,\n isReceiveStripeWebhookOperationRequest,\n isReceiveStripeWebhookOperationResponse,\n type RevenueCatWebhookHeaders,\n RevenueCatWebhookHeadersSchema,\n receiveRevenueCatWebhookOperation,\n receiveStripeWebhookOperation,\n type StripeWebhookHeaders,\n StripeWebhookHeadersSchema,\n} from \"./billingWebhooks\";\nexport {\n BinaryBodySchema,\n type BlobBytesPathParams,\n BlobBytesPathParamsSchema,\n type BlobBytesResponseHeaders,\n BlobBytesResponseHeadersSchema,\n blobWireHeaderKeys,\n blobWireHeaderNames,\n getBlobBytesOperation,\n isUploadMultipartBlobPartBytesOperationResponse,\n type MultipartBlobPartHeaders,\n MultipartBlobPartHeadersSchema,\n type MultipartBlobPartPathParams,\n MultipartBlobPartPathParamsSchema,\n uploadMultipartBlobPartBytesOperation,\n} from \"./blobBytes\";\nexport {\n type ContainerMutationPathParams,\n ContainerMutationPathParamsSchema,\n createContainerOperation,\n createContainerWithMetadataDocumentOperation,\n deleteContainerOperation,\n isContainerMutationOperationRequest,\n isContainerMutationOperationResponse,\n isContainerRotationOperationRequest,\n isContainerRotationOperationResponse,\n isCreateContainerWithMetadataDocumentOperationRequest,\n isCreateContainerWithMetadataDocumentOperationResponse,\n isDeleteContainerOperationResponse,\n moveContainerOperation,\n reciteContainerOperation,\n rekeyContainerOperation,\n revokeContainerOperation,\n shareContainerOperation,\n} from \"./containerMutations\";\nexport {\n type ContainerKekLogQuery,\n ContainerKekLogQuerySchema,\n type ContainerReadPathParams,\n ContainerReadPathParamsSchema,\n getContainerKekLogOperation,\n isGetContainerKekLogOperationResponse,\n isListContainerDocumentsOperationResponse,\n isListContainerParentLanesOperationRequest,\n isListContainerParentLanesOperationResponse,\n type ListContainerDocumentsQuery,\n ListContainerDocumentsQuerySchema,\n listContainerDocumentsOperation,\n listContainerParentLanesOperation,\n} from \"./containerReads\";\nexport {\n type ContainerReplacementAuthorizationsResponse,\n ContainerReplacementAuthorizationsResponseSchema,\n getContainerReplacementAuthorizationsOperation,\n} from \"./containerReplacement\";\nexport {\n defineHttpOperation,\n defineJsonOperation,\n type HttpOperation,\n type HttpOperationMediaType,\n type HttpOperationMethod,\n type JsonOperation,\n type JsonOperationMethod,\n type OperationSchemaInput,\n type OperationSchemaOutput,\n operationRequestPath,\n operationRequestPathForInput,\n operationRequestPathWithQuery,\n operationRoutePath,\n type RuntimeRefinement,\n} from \"./definition\";\nexport {\n type DocumentAttributionPathParams,\n DocumentAttributionPathParamsSchema,\n type DocumentAttributionRangesQuery,\n DocumentAttributionRangesQuerySchema,\n type DocumentAttributionRequestHeaders,\n DocumentAttributionRequestHeadersSchema,\n documentAttributionWireHeaderKeys,\n documentAttributionWireHeaderNames,\n getDocumentAttributionOperation,\n isGetDocumentAttributionOperationResponse,\n isListDocumentAttributionRangesOperationResponse,\n listDocumentAttributionRangesOperation,\n} from \"./documentAttribution\";\nexport {\n createDocumentOperation,\n type DocumentMutationPathParams,\n DocumentMutationPathParamsSchema,\n type DocumentPurgeProofQuery,\n DocumentPurgeProofQuerySchema,\n getDocumentPurgeProofOperation,\n isCreateDocumentOperationRequest,\n isCreateDocumentOperationResponse,\n isDocumentLinkSetMutationOperationRequest,\n isDocumentLinkSetMutationOperationResponse,\n isGetDocumentPurgeProofOperationResponse,\n isPurgeDocumentOperationRequest,\n isPurgeDocumentOperationResponse,\n linkDocumentOperation,\n purgeDocumentOperation,\n unlinkDocumentOperation,\n} from \"./documentMutations\";\nexport {\n type DocumentSyncPathParams,\n DocumentSyncPathParamsSchema,\n documentSyncOperation,\n isDocumentSyncOperationRequest,\n isDocumentSyncOperationResponse,\n} from \"./documentSync\";\nexport {\n operationRequestHeaderNames,\n operationResponseHeaderNames,\n} from \"./headerNames\";\nexport {\n getHealthOperation,\n isGetHealthOperationResponse,\n} from \"./health\";\nexport {\n completeMultipartBlobStageOperation,\n getMultipartBlobStageOperation,\n initiateMultipartBlobStageOperation,\n isCompleteMultipartBlobStageOperationRequest,\n isCompleteMultipartBlobStageOperationResponse,\n isGetMultipartBlobStageOperationResponse,\n isInitiateMultipartBlobStageOperationRequest,\n isInitiateMultipartBlobStageOperationResponse,\n type MultipartBlobStagePathParams,\n MultipartBlobStagePathParamsSchema,\n} from \"./multipartBlobs\";\nexport {\n claimNativeOrganizationSubscriptionOperation,\n getOrganizationBillingHistoryOperation,\n getOrganizationBillingManagementUrlOperation,\n getOrganizationBillingOperation,\n getOrganizationNativePurchaseEligibilityOperation,\n isClaimNativeOrganizationSubscriptionOperationResponse,\n isGetOrganizationBillingHistoryOperationResponse,\n isGetOrganizationBillingManagementUrlOperationResponse,\n isGetOrganizationBillingOperationResponse,\n isGetOrganizationNativePurchaseEligibilityOperationResponse,\n isStartOrganizationTrialOperationResponse,\n type OrganizationBillingNativeClaimPathParams,\n OrganizationBillingNativeClaimPathParamsSchema,\n type OrganizationBillingNativeEligibilityQuery,\n OrganizationBillingNativeEligibilityQuerySchema,\n type OrganizationBillingPathParams,\n OrganizationBillingPathParamsSchema,\n startOrganizationTrialOperation,\n} from \"./organizationBilling\";\nexport { getOrganizationPolicyHistoryOperation } from \"./organizationPolicyHistory\";\nexport {\n createOrganizationGroupOperation,\n createOrganizationOperation,\n deleteOrganizationGroupOperation,\n getOrganizationDataUsageOperation,\n getOrganizationReadModelOperation,\n isCreateOrganizationGroupOperationRequest,\n isCreateOrganizationGroupOperationResponse,\n isCreateOrganizationOperationRequest,\n isCreateOrganizationOperationResponse,\n isDeleteOrganizationGroupOperationResponse,\n isGetOrganizationDataUsageOperationResponse,\n isGetOrganizationReadModelOperationResponse,\n isListOrganizationGroupMembersOperationResponse,\n isUpdateOrganizationProfileOperationRequest,\n isUpdateOrganizationProfileOperationResponse,\n isUpdateOrganizationRosterEntryOperationRequest,\n isUpdateOrganizationRosterEntryOperationResponse,\n listOrganizationGroupMembersOperation,\n type OrganizationGroupPathParams,\n OrganizationGroupPathParamsSchema,\n type OrganizationPathParams,\n OrganizationPathParamsSchema,\n type OrganizationRosterPathParams,\n OrganizationRosterPathParamsSchema,\n updateOrganizationProfileOperation,\n updateOrganizationRosterEntryOperation,\n} from \"./organizations\";\nexport {\n type PrincipalPolicyPageQuery,\n PrincipalPolicyPageQuerySchema,\n} from \"./principalPolicyPageQuery\";\nexport {\n commitOrganizationGroupPolicyOperation,\n getPrincipalPolicyOperation,\n isCommitOrganizationGroupPolicyOperationRequest,\n isCommitOrganizationGroupPolicyOperationResponse,\n isGetPrincipalPolicyOperationResponse,\n isPutPrincipalPolicyOperationRequest,\n isPutPrincipalPolicyOperationResponse,\n type OrganizationGroupPolicyPathParams,\n OrganizationGroupPolicyPathParamsSchema,\n type PrincipalPolicyPathParams,\n PrincipalPolicyPathParamsSchema,\n putPrincipalPolicyOperation,\n} from \"./principals\";\nexport { protocolOperations } from \"./registry\";\nexport {\n getRootIdentityOperation,\n isGetRootIdentityOperationResponse,\n isListRootIdentitiesOperationResponse,\n isListRootIdentityOrganizationsOperationResponse,\n listRootIdentitiesOperation,\n listRootIdentityOrganizationsOperation,\n MAX_ROOT_IDENTITY_PAGE_SIZE,\n type RootIdentitiesQuery,\n RootIdentitiesQuerySchema,\n type RootIdentityPathParams,\n RootIdentityPathParamsSchema,\n} from \"./root\";\nexport {\n getRootOrganizationDataUsageOperation,\n getRootOrganizationOperation,\n listRootDataUsageReportOperation,\n listRootOrganizationIdentitiesOperation,\n listRootOrganizationsOperation,\n type RootOrganizationPageQuery,\n type RootOrganizationsQuery,\n} from \"./rootOrganizations\";\nexport {\n cancelStripeSubscriptionOperation,\n createStripeCheckoutOperation,\n createStripeCheckoutSessionOperation,\n createStripePortalOperation,\n getStripeCheckoutOptionsOperation,\n isCancelStripeSubscriptionOperationResponse,\n isCreateStripeCheckoutOperationResponse,\n isCreateStripeCheckoutSessionOperationRequest,\n isCreateStripeCheckoutSessionOperationResponse,\n isCreateStripePortalOperationRequest,\n isCreateStripePortalOperationResponse,\n isGetStripeCheckoutOptionsOperationResponse,\n type StripeCheckoutPathParams,\n StripeCheckoutPathParamsSchema,\n} from \"./stripeCheckout\";\nexport {\n type ContainerWriterProjectionPathParams,\n ContainerWriterProjectionPathParamsSchema,\n type DocumentWriterProjectionPathParams,\n DocumentWriterProjectionPathParamsSchema,\n getContainerWriterProjectionOperation,\n getDocumentWriterProjectionOperation,\n isGetContainerWriterProjectionOperationResponse,\n isGetDocumentWriterProjectionOperationResponse,\n} from \"./writerProjections\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["export { apiVersionHeaderName, parseApiVersion } from \"./apiVersion\";\nexport {\n type BlobAttachmentBindingPathParams,\n BlobAttachmentBindingPathParamsSchema,\n type BlobAttachmentPathParams,\n BlobAttachmentPathParamsSchema,\n bindBlobAttachmentOperation,\n type DocumentAttachmentsPathParams,\n DocumentAttachmentsPathParamsSchema,\n detachBlobAttachmentOperation,\n isBindBlobAttachmentOperationRequest,\n isBindBlobAttachmentOperationResponse,\n isDetachBlobAttachmentOperationRequest,\n isDetachBlobAttachmentOperationResponse,\n isListDocumentAttachmentsOperationResponse,\n listDocumentAttachmentsOperation,\n} from \"./attachments\";\nexport {\n challengeOperation,\n destroySessionOperation,\n isChallengeOperationRequest,\n isChallengeOperationResponse,\n isDestroySessionOperationResponse,\n isListSessionsOperationResponse,\n isLogoutOperationResponse,\n isRegistrationOperationRequest,\n isRegistrationOperationResponse,\n isUserIdentityOperationResponse,\n isVerifyOperationRequest,\n isVerifyOperationResponse,\n isWebSocketTicketOperationResponse,\n listSessionsOperation,\n logoutOperation,\n registerOperation,\n userIdentityOperation,\n verifyOperation,\n webSocketTicketOperation,\n} from \"./auth\";\nexport {\n billingWebhookWireHeaderKeys,\n billingWebhookWireHeaderNames,\n isReceiveRevenueCatWebhookOperationRequest,\n isReceiveRevenueCatWebhookOperationResponse,\n isReceiveStripeWebhookOperationRequest,\n isReceiveStripeWebhookOperationResponse,\n type RevenueCatWebhookHeaders,\n RevenueCatWebhookHeadersSchema,\n receiveRevenueCatWebhookOperation,\n receiveStripeWebhookOperation,\n type StripeWebhookHeaders,\n StripeWebhookHeadersSchema,\n} from \"./billingWebhooks\";\nexport {\n BinaryBodySchema,\n type BlobBytesPathParams,\n BlobBytesPathParamsSchema,\n type BlobBytesResponseHeaders,\n BlobBytesResponseHeadersSchema,\n blobWireHeaderKeys,\n blobWireHeaderNames,\n getBlobBytesOperation,\n isUploadMultipartBlobPartBytesOperationResponse,\n type MultipartBlobPartHeaders,\n MultipartBlobPartHeadersSchema,\n type MultipartBlobPartPathParams,\n MultipartBlobPartPathParamsSchema,\n uploadMultipartBlobPartBytesOperation,\n} from \"./blobBytes\";\nexport {\n type ContainerMutationPathParams,\n ContainerMutationPathParamsSchema,\n createContainerOperation,\n createContainerWithMetadataDocumentOperation,\n deleteContainerOperation,\n isContainerMutationOperationRequest,\n isContainerMutationOperationResponse,\n isContainerRotationOperationRequest,\n isContainerRotationOperationResponse,\n isCreateContainerWithMetadataDocumentOperationRequest,\n isCreateContainerWithMetadataDocumentOperationResponse,\n isDeleteContainerOperationResponse,\n moveContainerOperation,\n reciteContainerOperation,\n rekeyContainerOperation,\n revokeContainerOperation,\n shareContainerOperation,\n} from \"./containerMutations\";\nexport {\n type ContainerKekLogQuery,\n ContainerKekLogQuerySchema,\n type ContainerReadPathParams,\n ContainerReadPathParamsSchema,\n getContainerKekLogOperation,\n isGetContainerKekLogOperationResponse,\n isListContainerDocumentsOperationResponse,\n isListContainerParentLanesOperationRequest,\n isListContainerParentLanesOperationResponse,\n type ListContainerDocumentsQuery,\n ListContainerDocumentsQuerySchema,\n listContainerDocumentsOperation,\n listContainerParentLanesOperation,\n} from \"./containerReads\";\nexport {\n type ContainerReplacementAuthorizationsResponse,\n ContainerReplacementAuthorizationsResponseSchema,\n getContainerReplacementAuthorizationsOperation,\n} from \"./containerReplacement\";\nexport {\n defineHttpOperation,\n defineJsonOperation,\n type HttpOperation,\n type HttpOperationMediaType,\n type HttpOperationMethod,\n type JsonOperation,\n type JsonOperationMethod,\n type OperationSchemaInput,\n type OperationSchemaOutput,\n operationRequestPath,\n operationRequestPathForInput,\n operationRequestPathWithQuery,\n operationRoutePath,\n type RuntimeRefinement,\n} from \"./definition\";\nexport {\n type DocumentAttributionPathParams,\n DocumentAttributionPathParamsSchema,\n type DocumentAttributionRangesQuery,\n DocumentAttributionRangesQuerySchema,\n type DocumentAttributionRequestHeaders,\n DocumentAttributionRequestHeadersSchema,\n documentAttributionWireHeaderKeys,\n documentAttributionWireHeaderNames,\n getDocumentAttributionOperation,\n isGetDocumentAttributionOperationResponse,\n isListDocumentAttributionRangesOperationResponse,\n listDocumentAttributionRangesOperation,\n} from \"./documentAttribution\";\nexport {\n createDocumentOperation,\n type DocumentMutationPathParams,\n DocumentMutationPathParamsSchema,\n type DocumentPurgeProofQuery,\n DocumentPurgeProofQuerySchema,\n getDocumentPurgeProofOperation,\n isCreateDocumentOperationRequest,\n isCreateDocumentOperationResponse,\n isDocumentLinkSetMutationOperationRequest,\n isDocumentLinkSetMutationOperationResponse,\n isGetDocumentPurgeProofOperationResponse,\n isPurgeDocumentOperationRequest,\n isPurgeDocumentOperationResponse,\n linkDocumentOperation,\n purgeDocumentOperation,\n unlinkDocumentOperation,\n} from \"./documentMutations\";\nexport {\n type DocumentSyncPathParams,\n DocumentSyncPathParamsSchema,\n documentSyncOperation,\n isDocumentSyncOperationRequest,\n isDocumentSyncOperationResponse,\n} from \"./documentSync\";\nexport {\n operationRequestHeaderNames,\n operationResponseHeaderNames,\n} from \"./headerNames\";\nexport {\n getHealthOperation,\n isGetHealthOperationResponse,\n} from \"./health\";\nexport {\n completeMultipartBlobStageOperation,\n getMultipartBlobStageOperation,\n initiateMultipartBlobStageOperation,\n isCompleteMultipartBlobStageOperationRequest,\n isCompleteMultipartBlobStageOperationResponse,\n isGetMultipartBlobStageOperationResponse,\n isInitiateMultipartBlobStageOperationRequest,\n isInitiateMultipartBlobStageOperationResponse,\n type MultipartBlobStagePathParams,\n MultipartBlobStagePathParamsSchema,\n} from \"./multipartBlobs\";\nexport {\n claimNativeOrganizationSubscriptionOperation,\n getOrganizationBillingHistoryOperation,\n getOrganizationBillingManagementUrlOperation,\n getOrganizationBillingOperation,\n getOrganizationNativePurchaseEligibilityOperation,\n isClaimNativeOrganizationSubscriptionOperationResponse,\n isGetOrganizationBillingHistoryOperationResponse,\n isGetOrganizationBillingManagementUrlOperationResponse,\n isGetOrganizationBillingOperationResponse,\n isGetOrganizationNativePurchaseEligibilityOperationResponse,\n isStartOrganizationTrialOperationResponse,\n type OrganizationBillingNativeClaimPathParams,\n OrganizationBillingNativeClaimPathParamsSchema,\n type OrganizationBillingNativeEligibilityQuery,\n OrganizationBillingNativeEligibilityQuerySchema,\n type OrganizationBillingPathParams,\n OrganizationBillingPathParamsSchema,\n startOrganizationTrialOperation,\n} from \"./organizationBilling\";\nexport { getOrganizationPolicyHistoryOperation } from \"./organizationPolicyHistory\";\nexport {\n createOrganizationGroupOperation,\n createOrganizationOperation,\n deleteOrganizationGroupOperation,\n getOrganizationDataUsageOperation,\n getOrganizationReadModelOperation,\n isCreateOrganizationGroupOperationRequest,\n isCreateOrganizationGroupOperationResponse,\n isCreateOrganizationOperationRequest,\n isCreateOrganizationOperationResponse,\n isDeleteOrganizationGroupOperationResponse,\n isGetOrganizationDataUsageOperationResponse,\n isGetOrganizationReadModelOperationResponse,\n isListOrganizationGroupMembersOperationResponse,\n isUpdateOrganizationProfileOperationRequest,\n isUpdateOrganizationProfileOperationResponse,\n isUpdateOrganizationRosterEntryOperationRequest,\n isUpdateOrganizationRosterEntryOperationResponse,\n listOrganizationGroupMembersOperation,\n type OrganizationGroupPathParams,\n OrganizationGroupPathParamsSchema,\n type OrganizationPathParams,\n OrganizationPathParamsSchema,\n type OrganizationRosterPathParams,\n OrganizationRosterPathParamsSchema,\n updateOrganizationProfileOperation,\n updateOrganizationRosterEntryOperation,\n} from \"./organizations\";\nexport {\n type PrincipalPolicyPageQuery,\n PrincipalPolicyPageQuerySchema,\n} from \"./principalPolicyPageQuery\";\nexport {\n commitOrganizationGroupPolicyOperation,\n getPrincipalPolicyOperation,\n isCommitOrganizationGroupPolicyOperationRequest,\n isCommitOrganizationGroupPolicyOperationResponse,\n isGetPrincipalPolicyOperationResponse,\n isPutPrincipalPolicyOperationRequest,\n isPutPrincipalPolicyOperationResponse,\n type OrganizationGroupPolicyPathParams,\n OrganizationGroupPolicyPathParamsSchema,\n type PrincipalPolicyPathParams,\n PrincipalPolicyPathParamsSchema,\n putPrincipalPolicyOperation,\n} from \"./principals\";\nexport {\n getProjectionPolicyHistoryOperation,\n type ProjectionPolicyHistoryQuery,\n ProjectionPolicyHistoryQuerySchema,\n} from \"./projectionPolicyHistory\";\nexport { protocolOperations } from \"./registry\";\nexport {\n getRootIdentityOperation,\n isGetRootIdentityOperationResponse,\n isListRootIdentitiesOperationResponse,\n isListRootIdentityOrganizationsOperationResponse,\n listRootIdentitiesOperation,\n listRootIdentityOrganizationsOperation,\n MAX_ROOT_IDENTITY_PAGE_SIZE,\n type RootIdentitiesQuery,\n RootIdentitiesQuerySchema,\n type RootIdentityPathParams,\n RootIdentityPathParamsSchema,\n} from \"./root\";\nexport {\n getRootOrganizationDataUsageOperation,\n getRootOrganizationOperation,\n listRootDataUsageReportOperation,\n listRootOrganizationIdentitiesOperation,\n listRootOrganizationsOperation,\n type RootOrganizationPageQuery,\n type RootOrganizationsQuery,\n} from \"./rootOrganizations\";\nexport {\n cancelStripeSubscriptionOperation,\n createStripeCheckoutOperation,\n createStripeCheckoutSessionOperation,\n createStripePortalOperation,\n getStripeCheckoutOptionsOperation,\n isCancelStripeSubscriptionOperationResponse,\n isCreateStripeCheckoutOperationResponse,\n isCreateStripeCheckoutSessionOperationRequest,\n isCreateStripeCheckoutSessionOperationResponse,\n isCreateStripePortalOperationRequest,\n isCreateStripePortalOperationResponse,\n isGetStripeCheckoutOptionsOperationResponse,\n type StripeCheckoutPathParams,\n StripeCheckoutPathParamsSchema,\n} from \"./stripeCheckout\";\nexport {\n type ContainerWriterProjectionPathParams,\n ContainerWriterProjectionPathParamsSchema,\n type DocumentWriterProjectionPathParams,\n DocumentWriterProjectionPathParamsSchema,\n getContainerWriterProjectionOperation,\n getDocumentWriterProjectionOperation,\n isGetContainerWriterProjectionOperationResponse,\n isGetDocumentWriterProjectionOperationResponse,\n} from \"./writerProjections\";\n"]}