@tearleads/client-sdk 0.1.62 → 0.1.64

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 (1588) hide show
  1. package/client/organizations/currentPrincipalMutations.js +5 -5
  2. package/client/organizations/currentPrincipalMutations.js.map +1 -1
  3. package/client/organizations/organizationDataUsage.js +1 -1
  4. package/client/organizations/organizationDataUsage.js.map +1 -1
  5. package/client/organizations/organizationGroupHistory.js +1 -1
  6. package/client/organizations/organizationGroupHistory.js.map +1 -1
  7. package/client/organizations/organizationGroupNameHydration.js +3 -3
  8. package/client/organizations/organizationGroupNameHydration.js.map +1 -1
  9. package/client/organizations/organizationHistory.js +2 -2
  10. package/client/organizations/organizationHistory.js.map +1 -1
  11. package/client/organizations/organizationReadModels.js +1 -1
  12. package/client/organizations/organizationReadModels.js.map +1 -1
  13. package/client/organizations/principalContainerMutations.js +1 -1
  14. package/client/organizations/principalContainerMutations.js.map +1 -1
  15. package/client/organizations/principalMutationRecovery.js.map +1 -1
  16. package/client/organizations/principalMutations.js +5 -5
  17. package/client/organizations/principalMutations.js.map +1 -1
  18. package/client/runtime/principalMutationApi.d.ts +1 -1
  19. package/client/runtime/principalMutationApi.js +2 -2
  20. package/client/runtime/principalMutationApi.js.map +1 -1
  21. package/client/runtime/principalMutationDispatch.js +1 -1
  22. package/client/runtime/principalMutationDispatch.js.map +1 -1
  23. package/client/session/index.js +1 -1
  24. package/client/session/index.js.map +1 -1
  25. package/client/session/sessionOrganizationCreation.js +1 -1
  26. package/client/session/sessionOrganizationCreation.js.map +1 -1
  27. package/client/session/sessionPurgeRecovery.js +2 -2
  28. package/client/session/sessionPurgeRecovery.js.map +1 -1
  29. package/data/documents/blob/shared/projection.js +1 -1
  30. package/data/documents/blob/shared/projection.js.map +1 -1
  31. package/data/documents/shared/projectionContentKeys.js +1 -1
  32. package/data/documents/shared/projectionContentKeys.js.map +1 -1
  33. package/data/documents/shared/syncResponseAuthorization.js +1 -1
  34. package/data/documents/shared/syncResponseAuthorization.js.map +1 -1
  35. package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js +61 -0
  36. package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js.map +1 -0
  37. package/data/keyingProjectionVerification/checkpoints/bundleVerification.js +61 -0
  38. package/data/keyingProjectionVerification/checkpoints/bundleVerification.js.map +1 -0
  39. package/data/keyingProjectionVerification/checkpoints/checkpointContext.d.ts +45 -0
  40. package/data/keyingProjectionVerification/checkpoints/checkpointContext.js +120 -0
  41. package/data/keyingProjectionVerification/checkpoints/checkpointContext.js.map +1 -0
  42. package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js +64 -0
  43. package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js.map +1 -0
  44. package/data/keyingProjectionVerification/container/containerAncestorCitations.js +164 -0
  45. package/data/keyingProjectionVerification/container/containerAncestorCitations.js.map +1 -0
  46. package/data/keyingProjectionVerification/container/containerCreateManifest.js +28 -0
  47. package/data/keyingProjectionVerification/container/containerDestinationVerification.js +51 -0
  48. package/data/keyingProjectionVerification/container/containerDestinationVerification.js.map +1 -0
  49. package/data/keyingProjectionVerification/container/containerManifestVerification.js +285 -0
  50. package/data/keyingProjectionVerification/container/containerManifestVerification.js.map +1 -0
  51. package/data/keyingProjectionVerification/container/containerPathVerification.js +51 -0
  52. package/data/keyingProjectionVerification/container/containerPathVerification.js.map +1 -0
  53. package/data/keyingProjectionVerification/container/containerProjectionVerification.d.ts +25 -0
  54. package/data/keyingProjectionVerification/container/containerProjectionVerification.js +254 -0
  55. package/data/keyingProjectionVerification/container/containerProjectionVerification.js.map +1 -0
  56. package/data/keyingProjectionVerification/document/documentDependencyPaths.d.ts +17 -0
  57. package/data/keyingProjectionVerification/document/documentDependencyPaths.js +70 -0
  58. package/data/keyingProjectionVerification/document/documentDependencyPaths.js.map +1 -0
  59. package/data/keyingProjectionVerification/document/documentManifestPolicies.js +32 -0
  60. package/data/keyingProjectionVerification/document/documentManifestPolicies.js.map +1 -0
  61. package/data/keyingProjectionVerification/document/documentManifestPredecessor.js +12 -0
  62. package/data/keyingProjectionVerification/document/documentManifestVerification.js +135 -0
  63. package/data/keyingProjectionVerification/document/documentManifestVerification.js.map +1 -0
  64. package/data/keyingProjectionVerification/document/documentProjectionVerification.d.ts +24 -0
  65. package/data/keyingProjectionVerification/document/documentProjectionVerification.js +172 -0
  66. package/data/keyingProjectionVerification/document/documentProjectionVerification.js.map +1 -0
  67. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js +100 -0
  68. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js.map +1 -0
  69. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js +8 -0
  70. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js.map +1 -0
  71. package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js +177 -0
  72. package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js.map +1 -0
  73. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js +17 -0
  74. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js.map +1 -0
  75. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js +55 -0
  76. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js.map +1 -0
  77. package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js +116 -0
  78. package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js.map +1 -0
  79. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.d.ts +34 -0
  80. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js +208 -0
  81. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js.map +1 -0
  82. package/data/keyingProjectionVerification/index.d.ts +4 -4
  83. package/data/keyingProjectionVerification/index.js +4 -4
  84. package/data/keyingProjectionVerification/index.js.map +1 -1
  85. package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js +45 -0
  86. package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js.map +1 -0
  87. package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js +41 -0
  88. package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js.map +1 -0
  89. package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js +76 -0
  90. package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js.map +1 -0
  91. package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js +252 -0
  92. package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js.map +1 -0
  93. package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js +63 -0
  94. package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js.map +1 -0
  95. package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js +23 -0
  96. package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js.map +1 -0
  97. package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js +72 -0
  98. package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js.map +1 -0
  99. package/package.json +1 -1
  100. package/stores/container-contents/accessRestorationSweep.js +1 -1
  101. package/stores/container-contents/accessRestorationSweep.js.map +1 -1
  102. package/stores/container-contents/containerContentsStore.d.ts +1 -1
  103. package/stores/container-contents/containerContentsStore.js +12 -12
  104. package/stores/container-contents/containerContentsStore.js.map +1 -1
  105. package/stores/container-contents/containerState/containerStateMap.js.map +1 -0
  106. package/stores/container-contents/containerState/containerStatePersistence.js +57 -0
  107. package/stores/container-contents/containerState/containerStatePersistence.js.map +1 -0
  108. package/stores/container-contents/containerState/missingContainerState.js +10 -0
  109. package/stores/container-contents/containerState/missingContainerState.js.map +1 -0
  110. package/stores/container-contents/containerState/missingSyncedContainerState.js.map +1 -0
  111. package/stores/container-contents/containerState/reconcilableContainer.d.ts +48 -0
  112. package/stores/container-contents/containerState/reconcilableContainer.js.map +1 -0
  113. package/stores/container-contents/documentWork/documentRecovery.js +114 -0
  114. package/stores/container-contents/documentWork/documentRecovery.js.map +1 -0
  115. package/stores/container-contents/documentWork/documentRotation.js +13 -0
  116. package/stores/container-contents/documentWork/documentRotation.js.map +1 -0
  117. package/stores/container-contents/documentWork/index.js +29 -0
  118. package/stores/container-contents/documentWork/index.js.map +1 -0
  119. package/stores/container-contents/hydration/backgroundHydration.js +32 -0
  120. package/stores/container-contents/hydration/backgroundHydration.js.map +1 -0
  121. package/stores/container-contents/hydration/remoteHydrationRequest.js +245 -0
  122. package/stores/container-contents/hydration/remoteHydrationRequest.js.map +1 -0
  123. package/stores/container-contents/hydration/startupHydration.js +110 -0
  124. package/stores/container-contents/hydration/startupHydration.js.map +1 -0
  125. package/stores/container-contents/index.d.ts +3 -3
  126. package/stores/container-contents/index.js +2 -2
  127. package/stores/container-contents/index.js.map +1 -1
  128. package/stores/container-contents/localRefresh.js +2 -2
  129. package/stores/container-contents/localRefresh.js.map +1 -1
  130. package/stores/container-contents/operations/containerPurgeCore.js +98 -0
  131. package/stores/container-contents/operations/containerPurgeCore.js.map +1 -0
  132. package/stores/container-contents/operations/emptyTrashOperation.js.map +1 -0
  133. package/stores/container-contents/operations/groupRewrapOperation.js +52 -0
  134. package/stores/container-contents/operations/groupRewrapOperation.js.map +1 -0
  135. package/stores/container-contents/operations/index.js +301 -0
  136. package/stores/container-contents/operations/index.js.map +1 -0
  137. package/stores/container-contents/operations/purgeContainerOperation.js.map +1 -0
  138. package/stores/container-contents/operations/reportShareFailure.js +44 -0
  139. package/stores/container-contents/operations/reportShareFailure.js.map +1 -0
  140. package/stores/container-contents/operations/setContainerIconOperation.js +47 -0
  141. package/stores/container-contents/operations/setContainerIconOperation.js.map +1 -0
  142. package/stores/container-contents/operations/shareOperations.js +90 -0
  143. package/stores/container-contents/operations/shareOperations.js.map +1 -0
  144. package/stores/container-contents/remoteEvents/remoteBackedContainerState.js.map +1 -0
  145. package/stores/container-contents/remoteEvents/remoteContainerIngestion.js +59 -0
  146. package/stores/container-contents/remoteEvents/remoteContainerIngestion.js.map +1 -0
  147. package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js +36 -0
  148. package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js.map +1 -0
  149. package/stores/container-contents/remoteEvents/remoteEventSync.js +38 -0
  150. package/stores/container-contents/remoteEvents/remoteEventSync.js.map +1 -0
  151. package/stores/container-contents/remoteWrites/remoteWriteGuards.js +54 -0
  152. package/stores/container-contents/remoteWrites/remoteWriteGuards.js.map +1 -0
  153. package/stores/container-contents/remoteWrites/remoteWriteQueue.js +51 -0
  154. package/stores/container-contents/remoteWrites/remoteWriteQueue.js.map +1 -0
  155. package/stores/container-contents/remoteWrites/writeGeneration.js.map +1 -0
  156. package/stores/container-contents/state.d.ts +1 -1
  157. package/stores/container-contents/state.js +2 -2
  158. package/stores/container-contents/state.js.map +1 -1
  159. package/stores/container-contents/syncAgent/index.d.ts +8 -0
  160. package/stores/container-contents/syncAgent/index.js +241 -0
  161. package/stores/container-contents/syncAgent/index.js.map +1 -0
  162. package/stores/container-contents/syncAgent/metadataSyncSignal.js +37 -0
  163. package/stores/container-contents/syncAgent/metadataSyncSignal.js.map +1 -0
  164. package/stores/container-contents/syncAgent/syncAgentTypes.d.ts +81 -0
  165. package/stores/container-contents/syncAgent/syncAgentTypes.js.map +1 -0
  166. package/stores/container-contents/syncAgent/syncLaneIteration.js +237 -0
  167. package/stores/container-contents/syncAgent/syncLaneIteration.js.map +1 -0
  168. package/stores/container-contents/systemContainers/existingSystemContainer.js +58 -0
  169. package/stores/container-contents/systemContainers/existingSystemContainer.js.map +1 -0
  170. package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js +44 -0
  171. package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js.map +1 -0
  172. package/stores/container-contents/systemContainers/systemContainerHydration.js +30 -0
  173. package/stores/container-contents/systemContainers/systemContainerHydration.js.map +1 -0
  174. package/stores/container-contents/systemContainers/systemContainerIcon.js +42 -0
  175. package/stores/container-contents/systemContainers/systemContainerIcon.js.map +1 -0
  176. package/stores/container-contents/systemContainers/systemContainerLookup.js.map +1 -0
  177. package/stores/container-contents/systemContainers/systemContainerPostCreate.js +109 -0
  178. package/stores/container-contents/systemContainers/systemContainerPostCreate.js.map +1 -0
  179. package/stores/container-contents/systemContainers/systemContainerPromotion.js +49 -0
  180. package/stores/container-contents/systemContainers/systemContainerPromotion.js.map +1 -0
  181. package/stores/container-contents/types.d.ts +2 -2
  182. package/stores/container-contents/types.js.map +1 -1
  183. package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js +39 -0
  184. package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js.map +1 -0
  185. package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js +84 -0
  186. package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js.map +1 -0
  187. package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js +97 -0
  188. package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js.map +1 -0
  189. package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js +49 -0
  190. package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js.map +1 -0
  191. package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js +95 -0
  192. package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js.map +1 -0
  193. package/stores/documents/documentStore/attachments/attachmentDetachState.js +54 -0
  194. package/stores/documents/documentStore/attachments/attachmentDetachState.js.map +1 -0
  195. package/stores/documents/documentStore/attachments/attachmentHydration.js +90 -0
  196. package/stores/documents/documentStore/attachments/attachmentHydration.js.map +1 -0
  197. package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js +53 -0
  198. package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js.map +1 -0
  199. package/stores/documents/documentStore/attachments/attachmentIntents.js +39 -0
  200. package/stores/documents/documentStore/attachments/attachmentIntents.js.map +1 -0
  201. package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js +37 -0
  202. package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js.map +1 -0
  203. package/stores/documents/documentStore/attachments/attachmentPersistFollowup.js.map +1 -0
  204. package/stores/documents/documentStore/attachments/attachmentPersistence.js +106 -0
  205. package/stores/documents/documentStore/attachments/attachmentPersistence.js.map +1 -0
  206. package/stores/documents/documentStore/attachments/attachmentRemoval.js +136 -0
  207. package/stores/documents/documentStore/attachments/attachmentRemoval.js.map +1 -0
  208. package/stores/documents/documentStore/attachments/attachmentSnapshot.js.map +1 -0
  209. package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js +32 -0
  210. package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js.map +1 -0
  211. package/stores/documents/documentStore/attachments/index.js +241 -0
  212. package/stores/documents/documentStore/attachments/index.js.map +1 -0
  213. package/stores/documents/documentStore/history/documentHistoryCompaction.js +67 -0
  214. package/stores/documents/documentStore/history/documentHistoryCompaction.js.map +1 -0
  215. package/stores/documents/documentStore/history/durableDocumentReload.js +79 -0
  216. package/stores/documents/documentStore/history/durableDocumentReload.js.map +1 -0
  217. package/stores/documents/documentStore/history/historyRebuild.js +75 -0
  218. package/stores/documents/documentStore/history/historyRebuild.js.map +1 -0
  219. package/stores/documents/documentStore/index.d.ts +8 -0
  220. package/stores/documents/documentStore/index.js +215 -0
  221. package/stores/documents/documentStore/index.js.map +1 -0
  222. package/stores/documents/documentStore/initialization/deferredInitialUpdate.js +116 -0
  223. package/stores/documents/documentStore/initialization/deferredInitialUpdate.js.map +1 -0
  224. package/stores/documents/documentStore/initialization/index.js +330 -0
  225. package/stores/documents/documentStore/initialization/index.js.map +1 -0
  226. package/stores/documents/documentStore/initialization/initializationAttachments.js +9 -0
  227. package/stores/documents/documentStore/initialization/initializationAttachments.js.map +1 -0
  228. package/stores/documents/documentStore/initialization/initializationHistory.js +33 -0
  229. package/stores/documents/documentStore/initialization/initializationHistory.js.map +1 -0
  230. package/stores/documents/documentStore/initialization/initializationRecovery.js +107 -0
  231. package/stores/documents/documentStore/initialization/initializationRecovery.js.map +1 -0
  232. package/stores/documents/documentStore/mutationIdentityRevalidation.js.map +1 -1
  233. package/stores/documents/documentStore/mutations.js +2 -2
  234. package/stores/documents/documentStore/mutations.js.map +1 -1
  235. package/stores/documents/documentStore/pendingUpdateRefusal.js +1 -1
  236. package/stores/documents/documentStore/pendingUpdateRefusal.js.map +1 -1
  237. package/stores/documents/documentStore/persistence.js +3 -3
  238. package/stores/documents/documentStore/persistence.js.map +1 -1
  239. package/stores/documents/documentStore/rotation/index.js +307 -0
  240. package/stores/documents/documentStore/rotation/index.js.map +1 -0
  241. package/stores/documents/documentStore/rotation/rotationProvenance.js +52 -0
  242. package/stores/documents/documentStore/rotation/rotationProvenance.js.map +1 -0
  243. package/stores/documents/documentStore/rotation/rotationSettlement.js +222 -0
  244. package/stores/documents/documentStore/rotation/rotationSettlement.js.map +1 -0
  245. package/stores/documents/documentStore/rows.js +2 -2
  246. package/stores/documents/documentStore/rows.js.map +1 -1
  247. package/stores/documents/documentStore/state.js +1 -1
  248. package/stores/documents/documentStore/state.js.map +1 -1
  249. package/stores/documents/documentStore/sync/index.js +299 -0
  250. package/stores/documents/documentStore/sync/index.js.map +1 -0
  251. package/stores/documents/documentStore/sync/pullContinuationInvalidation.js +61 -0
  252. package/stores/documents/documentStore/sync/pullContinuationInvalidation.js.map +1 -0
  253. package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js +15 -0
  254. package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js.map +1 -0
  255. package/stores/documents/documentStore/sync/remoteWork.js.map +1 -0
  256. package/stores/documents/documentStore/sync/syncAcceptedUpdateIds.js.map +1 -0
  257. package/stores/documents/documentStore/sync/syncAttachmentSettlement.js +72 -0
  258. package/stores/documents/documentStore/sync/syncAttachmentSettlement.js.map +1 -0
  259. package/stores/documents/documentStore/sync/syncAttachments.js +323 -0
  260. package/stores/documents/documentStore/sync/syncAttachments.js.map +1 -0
  261. package/stores/documents/documentStore/sync/syncDetachedAttachments.js +129 -0
  262. package/stores/documents/documentStore/sync/syncDetachedAttachments.js.map +1 -0
  263. package/stores/documents/documentStore/sync/syncFinalize.js +204 -0
  264. package/stores/documents/documentStore/sync/syncFinalize.js.map +1 -0
  265. package/stores/documents/documentStore/sync/syncGeneration.js.map +1 -0
  266. package/stores/documents/documentStore/sync/syncOutgoingCoverage.js +96 -0
  267. package/stores/documents/documentStore/sync/syncOutgoingCoverage.js.map +1 -0
  268. package/stores/documents/documentStore/sync/syncRemoteSignals.js +67 -0
  269. package/stores/documents/documentStore/sync/syncRemoteSignals.js.map +1 -0
  270. package/stores/documents/documentStore/sync/syncRequest.js +157 -0
  271. package/stores/documents/documentStore/sync/syncRequest.js.map +1 -0
  272. package/stores/documents/documentStore/sync/syncShared.js +211 -0
  273. package/stores/documents/documentStore/sync/syncShared.js.map +1 -0
  274. package/stores/documents/documentStore/sync/syncUpdateImport.js +62 -0
  275. package/stores/documents/documentStore/sync/syncUpdateImport.js.map +1 -0
  276. package/stores/documents/documentStore/sync/versionCoverage.js +45 -0
  277. package/stores/documents/index.d.ts +1 -1
  278. package/stores/documents/index.js +1 -1
  279. package/stores/local-projection/localProjectionStore.d.ts +1 -1
  280. package/stores/local-projection/localProjectionStore.js +1 -1
  281. package/stores/local-projection/localProjectionStore.js.map +1 -1
  282. package/stores/local-projection/registry.d.ts +1 -1
  283. package/stores/local-projection/types.d.ts +1 -1
  284. package/workflows/blobs/detach.js +1 -1
  285. package/workflows/blobs/detach.js.map +1 -1
  286. package/workflows/blobs/hydration/blobChunkDecryption.js +34 -0
  287. package/workflows/blobs/hydration/blobChunkDecryption.js.map +1 -0
  288. package/workflows/blobs/hydration/decrypt.d.ts +12 -0
  289. package/workflows/blobs/hydration/decrypt.js +246 -0
  290. package/workflows/blobs/hydration/decrypt.js.map +1 -0
  291. package/workflows/blobs/hydration/hydrate.d.ts +56 -0
  292. package/workflows/blobs/hydration/hydrate.js +190 -0
  293. package/workflows/blobs/hydration/hydrate.js.map +1 -0
  294. package/workflows/blobs/hydration/hydrationResults.js +23 -0
  295. package/workflows/blobs/hydration/hydrationResults.js.map +1 -0
  296. package/workflows/blobs/index.d.ts +3 -3
  297. package/workflows/blobs/index.js +3 -3
  298. package/workflows/blobs/index.js.map +1 -1
  299. package/workflows/blobs/upload/automaticMultipartUpload.js +9 -0
  300. package/workflows/blobs/upload/automaticMultipartUpload.js.map +1 -0
  301. package/workflows/blobs/upload/index.d.ts +10 -0
  302. package/workflows/blobs/upload/index.js +243 -0
  303. package/workflows/blobs/upload/index.js.map +1 -0
  304. package/workflows/blobs/upload/multipartFirstParts.js +82 -0
  305. package/workflows/blobs/upload/multipartFirstParts.js.map +1 -0
  306. package/workflows/blobs/upload/multipartStageFailures.js +36 -0
  307. package/workflows/blobs/upload/multipartStageFailures.js.map +1 -0
  308. package/workflows/blobs/upload/multipartStageResolution.js.map +1 -0
  309. package/workflows/blobs/upload/multipartUpload.js +274 -0
  310. package/workflows/blobs/upload/multipartUpload.js.map +1 -0
  311. package/workflows/blobs/verification/attachmentBindingVerification.js +49 -0
  312. package/workflows/blobs/verification/attachmentBindingVerification.js.map +1 -0
  313. package/workflows/blobs/verification/attachmentDecryptor.js +41 -0
  314. package/workflows/blobs/verification/attachmentDecryptor.js.map +1 -0
  315. package/workflows/blobs/verification/attachmentKeyAuthenticator.js +68 -0
  316. package/workflows/blobs/verification/attachmentKeyAuthenticator.js.map +1 -0
  317. package/workflows/blobs/verification/retainedAttachmentVerification.js +40 -0
  318. package/workflows/blobs/verification/retainedAttachmentVerification.js.map +1 -0
  319. package/workflows/blobs/verification/verifiedWrapScope.js +20 -0
  320. package/workflows/blobs/verification/verifiedWrapScope.js.map +1 -0
  321. package/workflows/blobs/verification/writerProjection.js +29 -0
  322. package/workflows/blobs/verification/writerProjection.js.map +1 -0
  323. package/workflows/container-contents/container-state/create/createAdoption.js +193 -0
  324. package/workflows/container-contents/container-state/create/createAdoption.js.map +1 -0
  325. package/workflows/container-contents/container-state/create/createChild.js +217 -0
  326. package/workflows/container-contents/container-state/create/createChild.js.map +1 -0
  327. package/workflows/container-contents/container-state/create/createIntentDepth.js +36 -0
  328. package/workflows/container-contents/container-state/create/createIntentDepth.js.map +1 -0
  329. package/workflows/container-contents/container-state/create/createIntentSettlement.js.map +1 -0
  330. package/workflows/container-contents/container-state/create/createIntentSync.js +354 -0
  331. package/workflows/container-contents/container-state/create/createIntentSync.js.map +1 -0
  332. package/workflows/container-contents/container-state/create/createTerminalFailure.js +19 -0
  333. package/workflows/container-contents/container-state/create/createTerminalFailure.js.map +1 -0
  334. package/workflows/container-contents/container-state/create/createWithMetadata.js +270 -0
  335. package/workflows/container-contents/container-state/create/createWithMetadata.js.map +1 -0
  336. package/workflows/container-contents/container-state/create/createWithMetadataPlan.js +68 -0
  337. package/workflows/container-contents/container-state/create/createWithMetadataPlan.js.map +1 -0
  338. package/workflows/container-contents/container-state/purge/localPurgeScope.js +49 -0
  339. package/workflows/container-contents/container-state/purge/localPurgeScope.js.map +1 -0
  340. package/workflows/container-contents/container-state/purge/purgeTree.js +298 -0
  341. package/workflows/container-contents/container-state/purge/purgeTree.js.map +1 -0
  342. package/workflows/container-contents/container-state/purge/purgeTreeCollection.js.map +1 -0
  343. package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js +75 -0
  344. package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js.map +1 -0
  345. package/workflows/container-contents/container-state/purge/purgeTreeScope.js +175 -0
  346. package/workflows/container-contents/container-state/purge/purgeTreeScope.js.map +1 -0
  347. package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js +18 -0
  348. package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js.map +1 -0
  349. package/workflows/container-contents/container-state/remote.js +3 -3
  350. package/workflows/container-contents/container-state/remote.js.map +1 -1
  351. package/workflows/container-contents/container-state/share/groupGrantVerification.js +71 -0
  352. package/workflows/container-contents/container-state/share/groupGrantVerification.js.map +1 -0
  353. package/workflows/container-contents/container-state/share/groupShareEpoch.js +16 -0
  354. package/workflows/container-contents/container-state/share/groupShareEpoch.js.map +1 -0
  355. package/workflows/container-contents/container-state/share/index.js +283 -0
  356. package/workflows/container-contents/container-state/share/index.js.map +1 -0
  357. package/workflows/container-contents/container-state/share/sharePersistence.js +136 -0
  358. package/workflows/container-contents/container-state/share/sharePersistence.js.map +1 -0
  359. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js +1 -1
  360. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js.map +1 -1
  361. package/workflows/container-contents/documentDiscovery/index.js +1 -1
  362. package/workflows/container-contents/documentDiscovery/index.js.map +1 -1
  363. package/workflows/container-contents/documentLinks/index.d.ts +1 -1
  364. package/workflows/container-contents/documentLinks/index.js.map +1 -1
  365. package/workflows/container-contents/info/containerInfo.d.ts +1 -1
  366. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js +1 -1
  367. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js.map +1 -1
  368. package/workflows/container-contents/metadata/metadataSyncErrors.js +1 -1
  369. package/workflows/container-contents/metadata/metadataSyncErrors.js.map +1 -1
  370. package/workflows/container-contents/remoteHydration/destination/destinationPrefetch.js.map +1 -0
  371. package/workflows/container-contents/remoteHydration/destination/destinationRoleCache.js.map +1 -0
  372. package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js +10 -0
  373. package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js.map +1 -0
  374. package/workflows/container-contents/remoteHydration/destination/replacementBinding.js +75 -0
  375. package/workflows/container-contents/remoteHydration/destination/replacementBinding.js.map +1 -0
  376. package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js +296 -0
  377. package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js.map +1 -0
  378. package/workflows/container-contents/remoteHydration/index.js +4 -4
  379. package/workflows/container-contents/remoteHydration/index.js.map +1 -1
  380. package/workflows/container-contents/remoteHydration/lanes/childIndex.js.map +1 -0
  381. package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js +21 -0
  382. package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js.map +1 -0
  383. package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js +61 -0
  384. package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js.map +1 -0
  385. package/workflows/container-contents/remoteHydration/lanes/parentLaneQueue.js.map +1 -0
  386. package/workflows/container-contents/remoteHydration/principalPolicyCache.js +1 -1
  387. package/workflows/container-contents/remoteHydration/principalPolicyCache.js.map +1 -1
  388. package/workflows/container-contents/remoteHydration/reconciliation.js +2 -2
  389. package/workflows/container-contents/remoteHydration/reconciliation.js.map +1 -1
  390. package/workflows/container-contents/remoteHydration/remoteContainers/containerStateFingerprint.js.map +1 -0
  391. package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js +135 -0
  392. package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js.map +1 -0
  393. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js +244 -0
  394. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js.map +1 -0
  395. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js +263 -0
  396. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js.map +1 -0
  397. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerTimestamps.js.map +1 -0
  398. package/workflows/container-contents/remoteHydration/tombstoneApplication.js +2 -2
  399. package/workflows/container-contents/remoteHydration/tombstoneApplication.js.map +1 -1
  400. package/workflows/container-contents/tombstones/documentPurge.d.ts +1 -1
  401. package/workflows/container-contents/tombstones/documentPurge.js.map +1 -1
  402. package/workflows/containers/child/create/createProjection.d.ts +6 -0
  403. package/workflows/containers/child/create/createProjection.js +43 -0
  404. package/workflows/containers/child/create/createProjection.js.map +1 -0
  405. package/workflows/containers/child/create/createSubmission.d.ts +56 -0
  406. package/workflows/containers/child/create/createSubmission.js +43 -0
  407. package/workflows/containers/child/create/createSubmission.js.map +1 -0
  408. package/workflows/containers/child/create/index.d.ts +24 -0
  409. package/workflows/containers/child/create/index.js +335 -0
  410. package/workflows/containers/child/create/index.js.map +1 -0
  411. package/workflows/containers/child/move/index.d.ts +23 -0
  412. package/workflows/containers/child/move/index.js +268 -0
  413. package/workflows/containers/child/move/index.js.map +1 -0
  414. package/workflows/containers/child/move/moveArtifacts.js +102 -0
  415. package/workflows/containers/child/move/moveArtifacts.js.map +1 -0
  416. package/workflows/containers/child/move/moveRotation.js +88 -0
  417. package/workflows/containers/child/move/moveRotation.js.map +1 -0
  418. package/workflows/containers/child/move/moveWraps.js +49 -0
  419. package/workflows/containers/child/move/moveWraps.js.map +1 -0
  420. package/workflows/containers/child/mutationSubmit.js +1 -1
  421. package/workflows/containers/child/mutationSubmit.js.map +1 -1
  422. package/workflows/containers/child/rekey/carriedDescendantRekeys.js +126 -0
  423. package/workflows/containers/child/rekey/carriedDescendantRekeys.js.map +1 -0
  424. package/workflows/containers/child/rekey/index.d.ts +32 -0
  425. package/workflows/containers/child/rekey/index.js +227 -0
  426. package/workflows/containers/child/rekey/index.js.map +1 -0
  427. package/workflows/containers/child/rekey/keyringOverrideLineage.d.ts +22 -0
  428. package/workflows/containers/child/rekey/keyringOverrideLineage.js +39 -0
  429. package/workflows/containers/child/rekey/rekeyProjection.d.ts +46 -0
  430. package/workflows/containers/child/rekey/rekeyProjection.js +151 -0
  431. package/workflows/containers/child/rekey/rekeyProjection.js.map +1 -0
  432. package/workflows/containers/child/rekey/rekeyRemote.d.ts +24 -0
  433. package/workflows/containers/child/rekey/rekeyRemote.js +64 -0
  434. package/workflows/containers/child/rekey/rekeyRemote.js.map +1 -0
  435. package/workflows/containers/child/revoke.js +5 -5
  436. package/workflows/containers/child/revoke.js.map +1 -1
  437. package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js +19 -0
  438. package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js.map +1 -0
  439. package/workflows/containers/child/rotation/rotationContext.js +64 -0
  440. package/workflows/containers/child/rotation/rotationContext.js.map +1 -0
  441. package/workflows/containers/child/rotation/rotationPrincipalPolicies.js +19 -0
  442. package/workflows/containers/child/rotation/rotationPrincipalPolicies.js.map +1 -0
  443. package/workflows/containers/child/rotation/rotationWraps.js +85 -0
  444. package/workflows/containers/child/rotation/rotationWraps.js.map +1 -0
  445. package/workflows/containers/child/share/currentShareGrantMutation.js +82 -0
  446. package/workflows/containers/child/share/currentShareGrantMutation.js.map +1 -0
  447. package/workflows/containers/child/share/currentSharePrincipalPolicy.js +83 -0
  448. package/workflows/containers/child/share/currentSharePrincipalPolicy.js.map +1 -0
  449. package/workflows/containers/child/share/index.d.ts +65 -0
  450. package/workflows/containers/child/share/index.js +256 -0
  451. package/workflows/containers/child/share/index.js.map +1 -0
  452. package/workflows/containers/child/share/runtimeCurrentGroupShare.js +79 -0
  453. package/workflows/containers/child/share/runtimeCurrentGroupShare.js.map +1 -0
  454. package/workflows/containers/child/share/shareAncestorRepair.js +95 -0
  455. package/workflows/containers/child/share/shareAncestorRepair.js.map +1 -0
  456. package/workflows/containers/child/share/shareMaterialization.d.ts +25 -0
  457. package/workflows/containers/child/share/shareMaterialization.js +164 -0
  458. package/workflows/containers/child/share/shareMaterialization.js.map +1 -0
  459. package/workflows/containers/child/share/sharePlanCore.d.ts +82 -0
  460. package/workflows/containers/child/share/sharePlanCore.js +191 -0
  461. package/workflows/containers/child/share/sharePlanCore.js.map +1 -0
  462. package/workflows/containers/child/share/sharePrincipalPolicy.d.ts +51 -0
  463. package/workflows/containers/child/share/sharePrincipalPolicy.js +194 -0
  464. package/workflows/containers/child/share/sharePrincipalPolicy.js.map +1 -0
  465. package/workflows/containers/child/share/shareProjection.js.map +1 -0
  466. package/workflows/containers/index.d.ts +10 -10
  467. package/workflows/containers/index.js +10 -10
  468. package/workflows/containers/index.js.map +1 -1
  469. package/workflows/documents/attachments/attachmentPersistence.d.ts +58 -0
  470. package/workflows/documents/attachments/attachmentPersistence.js.map +1 -0
  471. package/workflows/documents/attachments/blobMutationLock.d.ts +8 -0
  472. package/workflows/documents/attachments/blobMutationLock.js +35 -0
  473. package/workflows/documents/attachments/blobMutationLock.js.map +1 -0
  474. package/workflows/documents/attachments/orphanBlobReclaimState.js.map +1 -0
  475. package/workflows/documents/attachments/orphanBlobReclaims.d.ts +6 -0
  476. package/workflows/documents/attachments/orphanBlobReclaims.js +143 -0
  477. package/workflows/documents/attachments/orphanBlobReclaims.js.map +1 -0
  478. package/workflows/documents/authorAccessFailure.js.map +1 -1
  479. package/workflows/documents/create/createAdoption.js +100 -0
  480. package/workflows/documents/create/createAdoption.js.map +1 -0
  481. package/workflows/documents/create/createProjection.d.ts +14 -0
  482. package/workflows/documents/create/createProjectionFetch.d.ts +27 -0
  483. package/workflows/documents/create/createProjectionFetch.js.map +1 -0
  484. package/workflows/documents/create/createResponse.js +49 -0
  485. package/workflows/documents/create/createResponse.js.map +1 -0
  486. package/workflows/documents/create/documentCreationPersistence.js +16 -0
  487. package/workflows/documents/create/documentCreationPersistence.js.map +1 -0
  488. package/workflows/documents/create/index.d.ts +56 -0
  489. package/workflows/documents/create/index.js +258 -0
  490. package/workflows/documents/create/index.js.map +1 -0
  491. package/workflows/documents/documentMutationCommit.js +1 -1
  492. package/workflows/documents/documentMutationCommit.js.map +1 -1
  493. package/workflows/documents/index.d.ts +17 -17
  494. package/workflows/documents/index.js +14 -14
  495. package/workflows/documents/index.js.map +1 -1
  496. package/workflows/documents/linkSet/index.d.ts +20 -0
  497. package/workflows/documents/linkSet/index.js +290 -0
  498. package/workflows/documents/linkSet/index.js.map +1 -0
  499. package/workflows/documents/linkSet/linkSetAuthority.js +61 -0
  500. package/workflows/documents/linkSet/linkSetAuthority.js.map +1 -0
  501. package/workflows/documents/linkSet/linkSetBlobRewraps.js +143 -0
  502. package/workflows/documents/linkSet/linkSetBlobRewraps.js.map +1 -0
  503. package/workflows/documents/linkSet/linkSetProjectionSeed.js +119 -0
  504. package/workflows/documents/linkSet/linkSetProjectionSeed.js.map +1 -0
  505. package/workflows/documents/linkSet/linkSetRemote.d.ts +23 -0
  506. package/workflows/documents/linkSet/linkSetRemote.js +187 -0
  507. package/workflows/documents/linkSet/linkSetRemote.js.map +1 -0
  508. package/workflows/documents/purge/index.d.ts +53 -0
  509. package/workflows/documents/purge/index.js +204 -0
  510. package/workflows/documents/purge/index.js.map +1 -0
  511. package/workflows/documents/purge/persistedDocumentRemoval.d.ts +44 -0
  512. package/workflows/documents/purge/persistedDocumentRemoval.js +70 -0
  513. package/workflows/documents/purge/persistedDocumentRemoval.js.map +1 -0
  514. package/workflows/documents/purge/subtreePurgeScope.d.ts +8 -0
  515. package/workflows/documents/purge/subtreePurgeScope.js +18 -0
  516. package/workflows/documents/purge/subtreePurgeScope.js.map +1 -0
  517. package/workflows/documents/rotationBaseline.js +1 -1
  518. package/workflows/documents/rotationBaseline.js.map +1 -1
  519. package/workflows/documents/sync/index.d.ts +4 -0
  520. package/workflows/documents/sync/index.js +287 -0
  521. package/workflows/documents/sync/index.js.map +1 -0
  522. package/workflows/documents/sync/initialSync.js +65 -0
  523. package/workflows/documents/sync/initialSync.js.map +1 -0
  524. package/workflows/documents/sync/readOnlyProjectionFailure.js +30 -0
  525. package/workflows/documents/sync/readOnlyProjectionFailure.js.map +1 -0
  526. package/workflows/documents/sync/readOnlySync.d.ts +71 -0
  527. package/workflows/documents/sync/readOnlySync.js +269 -0
  528. package/workflows/documents/sync/readOnlySync.js.map +1 -0
  529. package/workflows/documents/sync/reportDocumentSyncQuarantine.js.map +1 -0
  530. package/workflows/documents/sync/syncAttemptPlanning.js +79 -0
  531. package/workflows/documents/sync/syncAttemptPlanning.js.map +1 -0
  532. package/workflows/documents/sync/syncAttemptState.d.ts +27 -0
  533. package/workflows/documents/sync/syncAttemptState.js.map +1 -0
  534. package/workflows/documents/sync/syncLane.d.ts +20 -0
  535. package/workflows/documents/sync/syncLane.js +94 -0
  536. package/workflows/documents/sync/syncLane.js.map +1 -0
  537. package/workflows/documents/sync/syncResponseResult.js +134 -0
  538. package/workflows/documents/sync/syncResponseResult.js.map +1 -0
  539. package/workflows/documents/sync/syncSubmittedResult.js +119 -0
  540. package/workflows/documents/sync/syncSubmittedResult.js.map +1 -0
  541. package/workflows/documents/sync/syncTrace.js +148 -0
  542. package/workflows/documents/syncFailures/index.js +252 -0
  543. package/workflows/documents/syncFailures/index.js.map +1 -0
  544. package/workflows/documents/syncFailures/syncAbandon.js +51 -0
  545. package/workflows/documents/syncFailures/syncAbandon.js.map +1 -0
  546. package/workflows/documents/syncFailures/syncFailureClassification.d.ts +74 -0
  547. package/workflows/documents/syncFailures/syncFailureClassification.js +122 -0
  548. package/workflows/documents/syncFailures/syncFailureClassification.js.map +1 -0
  549. package/workflows/documents/syncFailures/syncPolicyRepair.js +50 -0
  550. package/workflows/documents/syncFailures/syncPolicyRepair.js.map +1 -0
  551. package/workflows/documents/syncFailures/syncRepairAbandon.js.map +1 -0
  552. package/workflows/documents/syncFailures/syncRepairAccess.js +42 -0
  553. package/workflows/documents/syncFailures/syncRepairAccess.js.map +1 -0
  554. package/workflows/documents/syncPlan/syncContentKeys.d.ts +39 -0
  555. package/workflows/documents/syncPlan/syncContentKeys.js +254 -0
  556. package/workflows/documents/syncPlan/syncContentKeys.js.map +1 -0
  557. package/workflows/documents/syncPlan/syncPlanIdentity.js +203 -0
  558. package/workflows/documents/syncPlan/syncPlanIdentity.js.map +1 -0
  559. package/workflows/documents/syncPlan/syncPlanMaterial.js +306 -0
  560. package/workflows/documents/syncPlan/syncPlanMaterial.js.map +1 -0
  561. package/workflows/documents/syncPlan/syncPlanProjection.js.map +1 -0
  562. package/workflows/documents/syncPlan/syncPlanRequestBounds.js +54 -0
  563. package/workflows/documents/syncPlan/syncPlanRequestBounds.js.map +1 -0
  564. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js +119 -0
  565. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js.map +1 -0
  566. package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js +227 -0
  567. package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js.map +1 -0
  568. package/workflows/documents/syncRekeys/syncContainerRekeyProjection.js +79 -0
  569. package/workflows/documents/syncRekeys/syncContainerRekeyProjection.js.map +1 -0
  570. package/workflows/documents/syncRekeys/syncContainerRekeys.js +72 -0
  571. package/workflows/documents/syncRekeys/syncContainerRekeys.js.map +1 -0
  572. package/workflows/documents/syncRekeys/syncRecoveryRekey.d.ts +70 -0
  573. package/workflows/documents/syncRekeys/syncRecoveryRekey.js +120 -0
  574. package/workflows/documents/syncRekeys/syncRecoveryRekey.js.map +1 -0
  575. package/workflows/documents/syncRekeys/syncRekeyCommit.js +18 -0
  576. package/workflows/organizations/groupMetadata/currentGroupMetadataAuthority.js +53 -0
  577. package/workflows/organizations/groupMetadata/currentGroupMetadataAuthority.js.map +1 -0
  578. package/workflows/organizations/groupMetadata/groupMetadataAccess.d.ts +33 -0
  579. package/workflows/organizations/groupMetadata/groupMetadataAccess.js +114 -0
  580. package/workflows/organizations/groupMetadata/groupMetadataAccess.js.map +1 -0
  581. package/workflows/organizations/groupMetadata/groupMetadataBinding.js +19 -0
  582. package/workflows/organizations/groupMetadata/groupMetadataBinding.js.map +1 -0
  583. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js +41 -0
  584. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js.map +1 -0
  585. package/workflows/organizations/groupMetadata/groupMetadataErrors.js +40 -0
  586. package/workflows/organizations/groupMetadata/groupMetadataRootBinding.js +51 -0
  587. package/workflows/organizations/groupMetadata/groupMetadataRootBinding.js.map +1 -0
  588. package/workflows/organizations/groupMetadata/groupMetadataRuntime.js +47 -0
  589. package/workflows/organizations/groupMetadata/groupMetadataRuntime.js.map +1 -0
  590. package/workflows/organizations/groupMetadata/runtimeGroupMetadataAuthority.js +16 -0
  591. package/workflows/organizations/groupMetadata/runtimeGroupMetadataAuthority.js.map +1 -0
  592. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js +72 -0
  593. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js.map +1 -0
  594. package/workflows/organizations/groupNames/groupMembershipName.d.ts +8 -0
  595. package/workflows/organizations/groupNames/groupMembershipName.js +18 -0
  596. package/workflows/organizations/groupNames/groupMembershipName.js.map +1 -0
  597. package/workflows/organizations/groupNames/groupNameUniqueness.js +151 -0
  598. package/workflows/organizations/groupNames/groupNameUniqueness.js.map +1 -0
  599. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js +48 -0
  600. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js.map +1 -0
  601. package/workflows/organizations/groupNames/organizationGroupNames.js +13 -0
  602. package/workflows/organizations/groupNames/organizationGroupNames.js.map +1 -0
  603. package/workflows/organizations/groupPolicy/commitCurrentGroupPolicyMutation.js +139 -0
  604. package/workflows/organizations/groupPolicy/commitCurrentGroupPolicyMutation.js.map +1 -0
  605. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js +79 -0
  606. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js.map +1 -0
  607. package/workflows/organizations/groupPolicy/currentPolicyMutationAcknowledgement.js +65 -0
  608. package/workflows/organizations/groupPolicy/currentPolicyMutationAcknowledgement.js.map +1 -0
  609. package/workflows/organizations/groupPolicy/groupPolicyMutationAcknowledgement.js +174 -0
  610. package/workflows/organizations/groupPolicy/groupPolicyMutationAcknowledgement.js.map +1 -0
  611. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.d.ts +58 -0
  612. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js +166 -0
  613. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js.map +1 -0
  614. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.d.ts +26 -0
  615. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js +64 -0
  616. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js.map +1 -0
  617. package/workflows/organizations/groupPolicy/groupPolicyMutationHead.js +26 -0
  618. package/workflows/organizations/groupPolicy/groupPolicyRequests.js +181 -0
  619. package/workflows/organizations/groupPolicy/groupPolicyRequests.js.map +1 -0
  620. package/workflows/organizations/groupPolicy/groupPolicyVerification.js +74 -0
  621. package/workflows/organizations/groupPolicy/groupPolicyVerification.js.map +1 -0
  622. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.d.ts +22 -0
  623. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.js +71 -0
  624. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.js.map +1 -0
  625. package/workflows/organizations/groups/createCurrentOrganizationGroup.js +85 -0
  626. package/workflows/organizations/groups/createCurrentOrganizationGroup.js.map +1 -0
  627. package/workflows/organizations/groups/deleteCurrentOrganizationGroup.js +35 -0
  628. package/workflows/organizations/groups/deleteCurrentOrganizationGroup.js.map +1 -0
  629. package/workflows/organizations/groups/deleteOrganizationGroup.d.ts +19 -0
  630. package/workflows/organizations/groups/deleteOrganizationGroup.js +75 -0
  631. package/workflows/organizations/groups/deleteOrganizationGroup.js.map +1 -0
  632. package/workflows/organizations/groups/groupCreation.d.ts +21 -0
  633. package/workflows/organizations/groups/groupCreation.js +68 -0
  634. package/workflows/organizations/groups/groupCreation.js.map +1 -0
  635. package/workflows/organizations/groups/organizationGroupDirectory.js +153 -0
  636. package/workflows/organizations/groups/organizationGroupDirectory.js.map +1 -0
  637. package/workflows/organizations/index.d.ts +13 -13
  638. package/workflows/organizations/index.js +12 -12
  639. package/workflows/organizations/index.js.map +1 -1
  640. package/workflows/organizations/policyHistory/groupPolicyHistoryPage.js.map +1 -0
  641. package/workflows/organizations/policyHistory/loadPolicyHistoryDetails.js +78 -0
  642. package/workflows/organizations/policyHistory/loadPolicyHistoryDetails.js.map +1 -0
  643. package/workflows/organizations/policyHistory/organizationPolicyHistoryDetails.js +110 -0
  644. package/workflows/organizations/policyHistory/organizationPolicyHistoryDetails.js.map +1 -0
  645. package/workflows/organizations/policyHistory/organizationPolicyHistoryVerification.js +67 -0
  646. package/workflows/organizations/policyHistory/organizationPolicyHistoryVerification.js.map +1 -0
  647. package/workflows/organizations/policyHistory/policyHistoryAccessDenial.js +19 -0
  648. package/workflows/organizations/policyHistory/policyHistoryAccessDenial.js.map +1 -0
  649. package/workflows/organizations/policyHistory/policyHistoryCache.js +42 -0
  650. package/workflows/organizations/policyHistory/policyHistoryCache.js.map +1 -0
  651. package/workflows/organizations/policyHistory/policyHistoryReadModel.d.ts +9 -0
  652. package/workflows/organizations/policyHistory/policyHistoryTypes.d.ts +58 -0
  653. package/workflows/organizations/principalMutations/acknowledgedDirectoryBindings.js +18 -0
  654. package/workflows/organizations/principalMutations/acknowledgedDirectoryBindings.js.map +1 -0
  655. package/workflows/organizations/principalMutations/currentGroupMutationReferences.js +35 -0
  656. package/workflows/organizations/principalMutations/currentGroupMutationReferences.js.map +1 -0
  657. package/workflows/organizations/principalMutations/currentOrganizationMutationAuthority.js +16 -0
  658. package/workflows/organizations/principalMutations/currentOrganizationMutationAuthority.js.map +1 -0
  659. package/workflows/organizations/principalMutations/currentOrganizationMutationRetention.js +64 -0
  660. package/workflows/organizations/principalMutations/currentOrganizationMutationRetention.js.map +1 -0
  661. package/workflows/organizations/principalMutations/currentPrincipalMutationLease.js +39 -0
  662. package/workflows/organizations/principalMutations/currentPrincipalMutationLease.js.map +1 -0
  663. package/workflows/organizations/principalMutations/principalMutationJournalManagement.d.ts +26 -0
  664. package/workflows/organizations/principalMutations/principalMutationJournalManagement.js +104 -0
  665. package/workflows/organizations/principalMutations/principalMutationJournalManagement.js.map +1 -0
  666. package/workflows/organizations/principalMutations/principalMutationJournalSession.d.ts +26 -0
  667. package/workflows/organizations/principalMutations/principalMutationJournalSession.js +85 -0
  668. package/workflows/organizations/principalMutations/principalMutationJournalSession.js.map +1 -0
  669. package/workflows/organizations/principalMutations/principalMutationReceipt.js +28 -0
  670. package/workflows/organizations/principalMutations/principalMutationReceipt.js.map +1 -0
  671. package/workflows/organizations/principalMutations/principalOperationReceipt.d.ts +5 -0
  672. package/workflows/organizations/principalMutations/principalOperationReceipt.js +36 -0
  673. package/workflows/organizations/principalMutations/principalOperationReceipt.js.map +1 -0
  674. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.d.ts +6 -0
  675. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.js +20 -0
  676. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.js.map +1 -0
  677. package/workflows/organizations/principalMutations/runtimeCurrentGroupMutation.js +113 -0
  678. package/workflows/organizations/principalMutations/runtimeCurrentGroupMutation.js.map +1 -0
  679. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js +48 -0
  680. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js.map +1 -0
  681. package/workflows/organizations/principalPolicy/index.d.ts +98 -0
  682. package/workflows/organizations/principalPolicy/index.js +256 -0
  683. package/workflows/organizations/principalPolicy/index.js.map +1 -0
  684. package/workflows/organizations/principalPolicy/principalPolicyApi.d.ts +33 -0
  685. package/workflows/organizations/principalPolicy/principalPolicyApi.js.map +1 -0
  686. package/workflows/organizations/principalPolicy/principalPolicyReceiptArtifacts.js +74 -0
  687. package/workflows/organizations/principalPolicy/principalPolicyReceiptArtifacts.js.map +1 -0
  688. package/workflows/organizations/principalPolicy/principalPolicyRecipients.js +43 -0
  689. package/workflows/organizations/principalPolicy/principalPolicyRecipients.js.map +1 -0
  690. package/workflows/organizations/principalPolicy/principalPolicyRequest.d.ts +68 -0
  691. package/workflows/organizations/principalPolicy/principalPolicyRequest.js +176 -0
  692. package/workflows/organizations/provisioning/createOrganization.d.ts +62 -0
  693. package/workflows/organizations/provisioning/createOrganization.js +128 -0
  694. package/workflows/organizations/provisioning/createOrganization.js.map +1 -0
  695. package/workflows/organizations/provisioning/organizationProvisioningAttempt.d.ts +36 -0
  696. package/workflows/organizations/provisioning/organizationProvisioningAttempt.js +205 -0
  697. package/workflows/organizations/provisioning/organizationProvisioningAttempt.js.map +1 -0
  698. package/workflows/organizations/provisioning/organizationReplacementVerification.js +26 -0
  699. package/workflows/organizations/provisioning/organizationReplacementVerification.js.map +1 -0
  700. package/workflows/organizations/readModel/dataUsageReadModel.d.ts +19 -0
  701. package/workflows/organizations/readModel/dataUsageReadModel.js +64 -0
  702. package/workflows/organizations/readModel/dataUsageReadModel.js.map +1 -0
  703. package/workflows/organizations/readModel/index.d.ts +70 -0
  704. package/workflows/organizations/readModel/index.js +10 -0
  705. package/workflows/organizations/readModel/index.js.map +1 -0
  706. package/workflows/organizations/readModel/listLocalOrganizations.d.ts +20 -0
  707. package/workflows/organizations/readModel/listLocalOrganizations.js +137 -0
  708. package/workflows/organizations/readModel/listLocalOrganizations.js.map +1 -0
  709. package/workflows/organizations/readModel/localReadModelDetails.d.ts +25 -0
  710. package/workflows/organizations/readModel/localReadModelDetails.js +182 -0
  711. package/workflows/organizations/readModel/localReadModelDetails.js.map +1 -0
  712. package/workflows/organizations/readModel/organizationPresentationAccessState.js +173 -0
  713. package/workflows/organizations/readModel/organizationPresentationAccessState.js.map +1 -0
  714. package/workflows/organizations/readModel/organizationPresentationFailures.js +7 -0
  715. package/workflows/organizations/readModel/readModelProjection.d.ts +29 -0
  716. package/workflows/organizations/readModel/readModelProjection.js +255 -0
  717. package/workflows/organizations/readModel/readModelProjection.js.map +1 -0
  718. package/workflows/organizations/rematerialization/authoredPrincipalPolicyWarmer.js +25 -0
  719. package/workflows/organizations/rematerialization/authoredPrincipalPolicyWarmer.js.map +1 -0
  720. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js +31 -0
  721. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js.map +1 -0
  722. package/workflows/organizations/rematerialization/principalContainerRematerialization.js +321 -0
  723. package/workflows/organizations/rematerialization/principalContainerRematerialization.js.map +1 -0
  724. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js +77 -0
  725. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js.map +1 -0
  726. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js +79 -0
  727. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js.map +1 -0
  728. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.d.ts +33 -0
  729. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js +140 -0
  730. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js.map +1 -0
  731. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.d.ts +39 -0
  732. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js +87 -0
  733. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js.map +1 -0
  734. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js +84 -0
  735. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js.map +1 -0
  736. package/workflows/principals/acknowledgements/principalAcknowledgementChecks.d.ts +30 -0
  737. package/workflows/principals/acknowledgements/principalCurrentPublicationSeal.js +51 -0
  738. package/workflows/principals/acknowledgements/principalCurrentPublicationSeal.js.map +1 -0
  739. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js +68 -0
  740. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js.map +1 -0
  741. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.d.ts +10 -0
  742. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js +119 -0
  743. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js.map +1 -0
  744. package/workflows/principals/historyRecovery/principalHistoryRecoveryAuthority.js +20 -0
  745. package/workflows/principals/historyRecovery/principalHistoryRecoveryAuthority.js.map +1 -0
  746. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js +69 -0
  747. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js.map +1 -0
  748. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js +68 -0
  749. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js.map +1 -0
  750. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js +61 -0
  751. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js.map +1 -0
  752. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.d.ts +35 -0
  753. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.js +16 -0
  754. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.js.map +1 -0
  755. package/workflows/principals/historyRecovery/principalHistoryRecoveryVerification.js +29 -0
  756. package/workflows/principals/historyRecovery/recoverCurrentOrganizationPolicy.js +38 -0
  757. package/workflows/principals/historyRecovery/recoverCurrentOrganizationPolicy.js.map +1 -0
  758. package/workflows/principals/historyRecovery/recoverPrincipalHistoryPage.js +31 -0
  759. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js +295 -0
  760. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js.map +1 -0
  761. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.d.ts +27 -0
  762. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.js +163 -0
  763. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.js.map +1 -0
  764. package/workflows/principals/index.d.ts +6 -6
  765. package/workflows/principals/index.js +6 -6
  766. package/workflows/principals/index.js.map +1 -1
  767. package/workflows/principals/policyCache/index.d.ts +20 -0
  768. package/workflows/principals/policyCache/index.js +242 -0
  769. package/workflows/principals/policyCache/index.js.map +1 -0
  770. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js +39 -0
  771. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js.map +1 -0
  772. package/workflows/principals/policyCache/principalPolicyCacheValidation.js +149 -0
  773. package/workflows/principals/policyCache/principalPolicyCacheValidation.js.map +1 -0
  774. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js +67 -0
  775. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js.map +1 -0
  776. package/workflows/principals/policyRepair.js +1 -1
  777. package/workflows/principals/policyRepair.js.map +1 -1
  778. package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js +60 -0
  779. package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js.map +1 -0
  780. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js +88 -0
  781. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js.map +1 -0
  782. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js +179 -0
  783. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js.map +1 -0
  784. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.d.ts +41 -0
  785. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.js.map +1 -0
  786. package/workflows/principals/publicHistory/publicProjectionDirectory.js +40 -0
  787. package/workflows/principals/publicHistory/publicProjectionDirectory.js.map +1 -0
  788. package/workflows/principals/publicHistory/publicProjectionPrincipal.js +54 -0
  789. package/workflows/principals/publicHistory/publicProjectionPrincipal.js.map +1 -0
  790. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.d.ts +9 -0
  791. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.js +98 -0
  792. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.js.map +1 -0
  793. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js +178 -0
  794. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js.map +1 -0
  795. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js +96 -0
  796. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js.map +1 -0
  797. package/workflows/principals/recoveryOperation/principalCurrentRecoveryBatch.js +14 -0
  798. package/workflows/principals/recoveryOperation/principalCurrentRecoveryBatch.js.map +1 -0
  799. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.d.ts +10 -0
  800. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js +127 -0
  801. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js.map +1 -0
  802. package/workflows/principals/recoveryOperation/principalRecoveryDiscoveryPage.js.map +1 -0
  803. package/workflows/principals/recoveryOperation/principalRecoveryLocalPreference.js +30 -0
  804. package/workflows/principals/recoveryOperation/principalRecoveryLocalPreference.js.map +1 -0
  805. package/workflows/principals/recoveryOperation/principalRecoveryMemo.d.ts +21 -0
  806. package/workflows/principals/recoveryOperation/principalRecoveryMemo.js +178 -0
  807. package/workflows/principals/recoveryOperation/principalRecoveryMemo.js.map +1 -0
  808. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js +33 -0
  809. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js.map +1 -0
  810. package/workflows/principals/recoveryOperation/principalRecoveryOutage.js +40 -0
  811. package/workflows/principals/recoveryOperation/principalRecoveryOutage.js.map +1 -0
  812. package/workflows/principals/runtimePolicyRecovery.js +3 -3
  813. package/workflows/principals/runtimePolicyRecovery.js.map +1 -1
  814. package/workflows/principals/runtimeProjectionPolicyRecovery.js +3 -3
  815. package/workflows/principals/runtimeProjectionPolicyRecovery.js.map +1 -1
  816. package/workflows/registration/organizationProvisioningArtifacts.d.ts +2 -2
  817. package/workflows/registration/provisionedPrincipalHistory.js +1 -1
  818. package/workflows/registration/provisionedPrincipalHistory.js.map +1 -1
  819. package/workflows/registration/provisionedProfileDocument.js +1 -1
  820. package/workflows/registration/provisionedProfileDocument.js.map +1 -1
  821. package/workflows/registration/provisioningBootstrapBuilders.js +3 -3
  822. package/workflows/registration/provisioningBootstrapBuilders.js.map +1 -1
  823. package/workflows/registration/registerIdentity.js +2 -2
  824. package/workflows/registration/registerIdentity.js.map +1 -1
  825. package/workflows/sync/remoteReset.js +1 -1
  826. package/workflows/sync/remoteReset.js.map +1 -1
  827. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js +0 -61
  828. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js.map +0 -1
  829. package/data/keyingProjectionVerification/bundleVerification.js +0 -61
  830. package/data/keyingProjectionVerification/bundleVerification.js.map +0 -1
  831. package/data/keyingProjectionVerification/checkpointContext.d.ts +0 -45
  832. package/data/keyingProjectionVerification/checkpointContext.js +0 -120
  833. package/data/keyingProjectionVerification/checkpointContext.js.map +0 -1
  834. package/data/keyingProjectionVerification/containerAncestorCitations.js +0 -164
  835. package/data/keyingProjectionVerification/containerAncestorCitations.js.map +0 -1
  836. package/data/keyingProjectionVerification/containerCreateManifest.js +0 -28
  837. package/data/keyingProjectionVerification/containerDestinationVerification.js +0 -51
  838. package/data/keyingProjectionVerification/containerDestinationVerification.js.map +0 -1
  839. package/data/keyingProjectionVerification/containerManifestVerification.js +0 -285
  840. package/data/keyingProjectionVerification/containerManifestVerification.js.map +0 -1
  841. package/data/keyingProjectionVerification/containerPathVerification.js +0 -51
  842. package/data/keyingProjectionVerification/containerPathVerification.js.map +0 -1
  843. package/data/keyingProjectionVerification/containerProjectionVerification.d.ts +0 -25
  844. package/data/keyingProjectionVerification/containerProjectionVerification.js +0 -254
  845. package/data/keyingProjectionVerification/containerProjectionVerification.js.map +0 -1
  846. package/data/keyingProjectionVerification/documentDependencyPaths.d.ts +0 -17
  847. package/data/keyingProjectionVerification/documentDependencyPaths.js +0 -70
  848. package/data/keyingProjectionVerification/documentDependencyPaths.js.map +0 -1
  849. package/data/keyingProjectionVerification/documentManifestPolicies.js +0 -32
  850. package/data/keyingProjectionVerification/documentManifestPolicies.js.map +0 -1
  851. package/data/keyingProjectionVerification/documentManifestPredecessor.js +0 -12
  852. package/data/keyingProjectionVerification/documentManifestVerification.js +0 -135
  853. package/data/keyingProjectionVerification/documentManifestVerification.js.map +0 -1
  854. package/data/keyingProjectionVerification/documentProjectionVerification.d.ts +0 -24
  855. package/data/keyingProjectionVerification/documentProjectionVerification.js +0 -172
  856. package/data/keyingProjectionVerification/documentProjectionVerification.js.map +0 -1
  857. package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js +0 -100
  858. package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js.map +0 -1
  859. package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js +0 -8
  860. package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js.map +0 -1
  861. package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js +0 -177
  862. package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js.map +0 -1
  863. package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js +0 -17
  864. package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js.map +0 -1
  865. package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js +0 -55
  866. package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js.map +0 -1
  867. package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js +0 -116
  868. package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js.map +0 -1
  869. package/data/keyingProjectionVerification/documentPurgeProofVerification.d.ts +0 -34
  870. package/data/keyingProjectionVerification/documentPurgeProofVerification.js +0 -208
  871. package/data/keyingProjectionVerification/documentPurgeProofVerification.js.map +0 -1
  872. package/data/keyingProjectionVerification/manifestCheckpointVerification.js +0 -64
  873. package/data/keyingProjectionVerification/manifestCheckpointVerification.js.map +0 -1
  874. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js +0 -45
  875. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js.map +0 -1
  876. package/data/keyingProjectionVerification/organizationFounderBinding.js +0 -41
  877. package/data/keyingProjectionVerification/organizationFounderBinding.js.map +0 -1
  878. package/data/keyingProjectionVerification/principalPolicyCache.js +0 -76
  879. package/data/keyingProjectionVerification/principalPolicyCache.js.map +0 -1
  880. package/data/keyingProjectionVerification/principalPolicyVerification.js +0 -252
  881. package/data/keyingProjectionVerification/principalPolicyVerification.js.map +0 -1
  882. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js +0 -63
  883. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js.map +0 -1
  884. package/data/keyingProjectionVerification/projectionPolicyEvidence.js +0 -23
  885. package/data/keyingProjectionVerification/projectionPolicyEvidence.js.map +0 -1
  886. package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js +0 -72
  887. package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js.map +0 -1
  888. package/stores/container-contents/backgroundHydration.js +0 -32
  889. package/stores/container-contents/backgroundHydration.js.map +0 -1
  890. package/stores/container-contents/containerPurgeCore.js +0 -98
  891. package/stores/container-contents/containerPurgeCore.js.map +0 -1
  892. package/stores/container-contents/containerStateMap.js.map +0 -1
  893. package/stores/container-contents/containerStatePersistence.js +0 -57
  894. package/stores/container-contents/containerStatePersistence.js.map +0 -1
  895. package/stores/container-contents/documentRecovery.js +0 -114
  896. package/stores/container-contents/documentRecovery.js.map +0 -1
  897. package/stores/container-contents/documentRotation.js +0 -13
  898. package/stores/container-contents/documentRotation.js.map +0 -1
  899. package/stores/container-contents/documentWork.js +0 -29
  900. package/stores/container-contents/documentWork.js.map +0 -1
  901. package/stores/container-contents/emptyTrashOperation.js.map +0 -1
  902. package/stores/container-contents/existingSystemContainer.js +0 -58
  903. package/stores/container-contents/existingSystemContainer.js.map +0 -1
  904. package/stores/container-contents/groupRewrapOperation.js +0 -52
  905. package/stores/container-contents/groupRewrapOperation.js.map +0 -1
  906. package/stores/container-contents/metadataSyncSignal.js +0 -37
  907. package/stores/container-contents/metadataSyncSignal.js.map +0 -1
  908. package/stores/container-contents/missingContainerState.js +0 -10
  909. package/stores/container-contents/missingContainerState.js.map +0 -1
  910. package/stores/container-contents/missingSyncedContainerState.js.map +0 -1
  911. package/stores/container-contents/operations.js +0 -301
  912. package/stores/container-contents/operations.js.map +0 -1
  913. package/stores/container-contents/organizationMetadataSystemContainer.js +0 -44
  914. package/stores/container-contents/organizationMetadataSystemContainer.js.map +0 -1
  915. package/stores/container-contents/purgeContainerOperation.js.map +0 -1
  916. package/stores/container-contents/reconcilableContainer.d.ts +0 -48
  917. package/stores/container-contents/reconcilableContainer.js.map +0 -1
  918. package/stores/container-contents/remoteBackedContainerState.js.map +0 -1
  919. package/stores/container-contents/remoteContainerIngestion.js +0 -59
  920. package/stores/container-contents/remoteContainerIngestion.js.map +0 -1
  921. package/stores/container-contents/remoteEventProjectionInvalidation.js +0 -36
  922. package/stores/container-contents/remoteEventProjectionInvalidation.js.map +0 -1
  923. package/stores/container-contents/remoteEventSync.js +0 -38
  924. package/stores/container-contents/remoteEventSync.js.map +0 -1
  925. package/stores/container-contents/remoteHydrationRequest.js +0 -245
  926. package/stores/container-contents/remoteHydrationRequest.js.map +0 -1
  927. package/stores/container-contents/remoteWriteGuards.js +0 -54
  928. package/stores/container-contents/remoteWriteGuards.js.map +0 -1
  929. package/stores/container-contents/remoteWriteQueue.js +0 -51
  930. package/stores/container-contents/remoteWriteQueue.js.map +0 -1
  931. package/stores/container-contents/reportShareFailure.js +0 -44
  932. package/stores/container-contents/reportShareFailure.js.map +0 -1
  933. package/stores/container-contents/setContainerIconOperation.js +0 -47
  934. package/stores/container-contents/setContainerIconOperation.js.map +0 -1
  935. package/stores/container-contents/shareOperations.js +0 -90
  936. package/stores/container-contents/shareOperations.js.map +0 -1
  937. package/stores/container-contents/startupHydration.js +0 -110
  938. package/stores/container-contents/startupHydration.js.map +0 -1
  939. package/stores/container-contents/syncAgent.d.ts +0 -8
  940. package/stores/container-contents/syncAgent.js +0 -241
  941. package/stores/container-contents/syncAgent.js.map +0 -1
  942. package/stores/container-contents/syncAgentTypes.d.ts +0 -81
  943. package/stores/container-contents/syncAgentTypes.js.map +0 -1
  944. package/stores/container-contents/syncLaneIteration.js +0 -237
  945. package/stores/container-contents/syncLaneIteration.js.map +0 -1
  946. package/stores/container-contents/systemContainerHydration.js +0 -30
  947. package/stores/container-contents/systemContainerHydration.js.map +0 -1
  948. package/stores/container-contents/systemContainerIcon.js +0 -42
  949. package/stores/container-contents/systemContainerIcon.js.map +0 -1
  950. package/stores/container-contents/systemContainerLookup.js.map +0 -1
  951. package/stores/container-contents/systemContainerPostCreate.js +0 -109
  952. package/stores/container-contents/systemContainerPostCreate.js.map +0 -1
  953. package/stores/container-contents/systemContainerPromotion.js +0 -49
  954. package/stores/container-contents/systemContainerPromotion.js.map +0 -1
  955. package/stores/container-contents/writeGeneration.js.map +0 -1
  956. package/stores/documents/documentStore/attachmentDetachState.js +0 -54
  957. package/stores/documents/documentStore/attachmentDetachState.js.map +0 -1
  958. package/stores/documents/documentStore/attachmentHydration.js +0 -90
  959. package/stores/documents/documentStore/attachmentHydration.js.map +0 -1
  960. package/stores/documents/documentStore/attachmentHydrationCommit.js +0 -53
  961. package/stores/documents/documentStore/attachmentHydrationCommit.js.map +0 -1
  962. package/stores/documents/documentStore/attachmentIntents.js +0 -39
  963. package/stores/documents/documentStore/attachmentIntents.js.map +0 -1
  964. package/stores/documents/documentStore/attachmentMutationPersistence.js +0 -37
  965. package/stores/documents/documentStore/attachmentMutationPersistence.js.map +0 -1
  966. package/stores/documents/documentStore/attachmentPersistFollowup.js.map +0 -1
  967. package/stores/documents/documentStore/attachmentPersistence.js +0 -106
  968. package/stores/documents/documentStore/attachmentPersistence.js.map +0 -1
  969. package/stores/documents/documentStore/attachmentRemoval.js +0 -136
  970. package/stores/documents/documentStore/attachmentRemoval.js.map +0 -1
  971. package/stores/documents/documentStore/attachmentSnapshot.js.map +0 -1
  972. package/stores/documents/documentStore/attachmentSourceUpload.js +0 -39
  973. package/stores/documents/documentStore/attachmentSourceUpload.js.map +0 -1
  974. package/stores/documents/documentStore/attachmentStaging.js +0 -84
  975. package/stores/documents/documentStore/attachmentStaging.js.map +0 -1
  976. package/stores/documents/documentStore/attachmentUploadAttempt.js +0 -97
  977. package/stores/documents/documentStore/attachmentUploadAttempt.js.map +0 -1
  978. package/stores/documents/documentStore/attachmentUploadLane.js +0 -49
  979. package/stores/documents/documentStore/attachmentUploadLane.js.map +0 -1
  980. package/stores/documents/documentStore/attachmentUploadResume.js +0 -95
  981. package/stores/documents/documentStore/attachmentUploadResume.js.map +0 -1
  982. package/stores/documents/documentStore/attachmentWriteGeneration.js +0 -32
  983. package/stores/documents/documentStore/attachmentWriteGeneration.js.map +0 -1
  984. package/stores/documents/documentStore/attachments.js +0 -241
  985. package/stores/documents/documentStore/attachments.js.map +0 -1
  986. package/stores/documents/documentStore/deferredInitialUpdate.js +0 -116
  987. package/stores/documents/documentStore/deferredInitialUpdate.js.map +0 -1
  988. package/stores/documents/documentStore/documentHistoryCompaction.js +0 -67
  989. package/stores/documents/documentStore/documentHistoryCompaction.js.map +0 -1
  990. package/stores/documents/documentStore/durableDocumentReload.js +0 -79
  991. package/stores/documents/documentStore/durableDocumentReload.js.map +0 -1
  992. package/stores/documents/documentStore/historyRebuild.js +0 -75
  993. package/stores/documents/documentStore/historyRebuild.js.map +0 -1
  994. package/stores/documents/documentStore/initialization.js +0 -330
  995. package/stores/documents/documentStore/initialization.js.map +0 -1
  996. package/stores/documents/documentStore/initializationAttachments.js +0 -9
  997. package/stores/documents/documentStore/initializationAttachments.js.map +0 -1
  998. package/stores/documents/documentStore/initializationHistory.js +0 -33
  999. package/stores/documents/documentStore/initializationHistory.js.map +0 -1
  1000. package/stores/documents/documentStore/initializationRecovery.js +0 -107
  1001. package/stores/documents/documentStore/initializationRecovery.js.map +0 -1
  1002. package/stores/documents/documentStore/pullContinuationInvalidation.js +0 -61
  1003. package/stores/documents/documentStore/pullContinuationInvalidation.js.map +0 -1
  1004. package/stores/documents/documentStore/remoteRevalidationTelemetry.js +0 -15
  1005. package/stores/documents/documentStore/remoteRevalidationTelemetry.js.map +0 -1
  1006. package/stores/documents/documentStore/remoteWork.js.map +0 -1
  1007. package/stores/documents/documentStore/rotation.js +0 -307
  1008. package/stores/documents/documentStore/rotation.js.map +0 -1
  1009. package/stores/documents/documentStore/rotationProvenance.js +0 -52
  1010. package/stores/documents/documentStore/rotationProvenance.js.map +0 -1
  1011. package/stores/documents/documentStore/rotationSettlement.js +0 -222
  1012. package/stores/documents/documentStore/rotationSettlement.js.map +0 -1
  1013. package/stores/documents/documentStore/sync.js +0 -299
  1014. package/stores/documents/documentStore/sync.js.map +0 -1
  1015. package/stores/documents/documentStore/syncAcceptedUpdateIds.js.map +0 -1
  1016. package/stores/documents/documentStore/syncAttachmentSettlement.js +0 -72
  1017. package/stores/documents/documentStore/syncAttachmentSettlement.js.map +0 -1
  1018. package/stores/documents/documentStore/syncAttachments.js +0 -323
  1019. package/stores/documents/documentStore/syncAttachments.js.map +0 -1
  1020. package/stores/documents/documentStore/syncDetachedAttachments.js +0 -129
  1021. package/stores/documents/documentStore/syncDetachedAttachments.js.map +0 -1
  1022. package/stores/documents/documentStore/syncFinalize.js +0 -204
  1023. package/stores/documents/documentStore/syncFinalize.js.map +0 -1
  1024. package/stores/documents/documentStore/syncGeneration.js.map +0 -1
  1025. package/stores/documents/documentStore/syncOutgoingCoverage.js +0 -96
  1026. package/stores/documents/documentStore/syncOutgoingCoverage.js.map +0 -1
  1027. package/stores/documents/documentStore/syncRemoteSignals.js +0 -67
  1028. package/stores/documents/documentStore/syncRemoteSignals.js.map +0 -1
  1029. package/stores/documents/documentStore/syncRequest.js +0 -157
  1030. package/stores/documents/documentStore/syncRequest.js.map +0 -1
  1031. package/stores/documents/documentStore/syncShared.js +0 -211
  1032. package/stores/documents/documentStore/syncShared.js.map +0 -1
  1033. package/stores/documents/documentStore/syncUpdateImport.js +0 -62
  1034. package/stores/documents/documentStore/syncUpdateImport.js.map +0 -1
  1035. package/stores/documents/documentStore/versionCoverage.js +0 -45
  1036. package/stores/documents/documentStore.d.ts +0 -8
  1037. package/stores/documents/documentStore.js +0 -215
  1038. package/stores/documents/documentStore.js.map +0 -1
  1039. package/workflows/blobs/attachmentBindingVerification.js +0 -49
  1040. package/workflows/blobs/attachmentBindingVerification.js.map +0 -1
  1041. package/workflows/blobs/attachmentDecryptor.js +0 -41
  1042. package/workflows/blobs/attachmentDecryptor.js.map +0 -1
  1043. package/workflows/blobs/attachmentKeyAuthenticator.js +0 -68
  1044. package/workflows/blobs/attachmentKeyAuthenticator.js.map +0 -1
  1045. package/workflows/blobs/automaticMultipartUpload.js +0 -9
  1046. package/workflows/blobs/automaticMultipartUpload.js.map +0 -1
  1047. package/workflows/blobs/blobChunkDecryption.js +0 -34
  1048. package/workflows/blobs/blobChunkDecryption.js.map +0 -1
  1049. package/workflows/blobs/decrypt.d.ts +0 -12
  1050. package/workflows/blobs/decrypt.js +0 -246
  1051. package/workflows/blobs/decrypt.js.map +0 -1
  1052. package/workflows/blobs/hydrate.d.ts +0 -56
  1053. package/workflows/blobs/hydrate.js +0 -190
  1054. package/workflows/blobs/hydrate.js.map +0 -1
  1055. package/workflows/blobs/hydrationResults.js +0 -23
  1056. package/workflows/blobs/hydrationResults.js.map +0 -1
  1057. package/workflows/blobs/multipartFirstParts.js +0 -82
  1058. package/workflows/blobs/multipartFirstParts.js.map +0 -1
  1059. package/workflows/blobs/multipartStageFailures.js +0 -36
  1060. package/workflows/blobs/multipartStageFailures.js.map +0 -1
  1061. package/workflows/blobs/multipartStageResolution.js.map +0 -1
  1062. package/workflows/blobs/multipartUpload.js +0 -274
  1063. package/workflows/blobs/multipartUpload.js.map +0 -1
  1064. package/workflows/blobs/retainedAttachmentVerification.js +0 -40
  1065. package/workflows/blobs/retainedAttachmentVerification.js.map +0 -1
  1066. package/workflows/blobs/upload.d.ts +0 -10
  1067. package/workflows/blobs/upload.js +0 -243
  1068. package/workflows/blobs/upload.js.map +0 -1
  1069. package/workflows/blobs/verifiedWrapScope.js +0 -20
  1070. package/workflows/blobs/verifiedWrapScope.js.map +0 -1
  1071. package/workflows/blobs/writerProjection.js +0 -29
  1072. package/workflows/blobs/writerProjection.js.map +0 -1
  1073. package/workflows/container-contents/container-state/createAdoption.js +0 -193
  1074. package/workflows/container-contents/container-state/createAdoption.js.map +0 -1
  1075. package/workflows/container-contents/container-state/createChild.js +0 -217
  1076. package/workflows/container-contents/container-state/createChild.js.map +0 -1
  1077. package/workflows/container-contents/container-state/createIntentDepth.js +0 -36
  1078. package/workflows/container-contents/container-state/createIntentDepth.js.map +0 -1
  1079. package/workflows/container-contents/container-state/createIntentSettlement.js.map +0 -1
  1080. package/workflows/container-contents/container-state/createIntentSync.js +0 -354
  1081. package/workflows/container-contents/container-state/createIntentSync.js.map +0 -1
  1082. package/workflows/container-contents/container-state/createTerminalFailure.js +0 -19
  1083. package/workflows/container-contents/container-state/createTerminalFailure.js.map +0 -1
  1084. package/workflows/container-contents/container-state/createWithMetadata.js +0 -270
  1085. package/workflows/container-contents/container-state/createWithMetadata.js.map +0 -1
  1086. package/workflows/container-contents/container-state/createWithMetadataPlan.js +0 -68
  1087. package/workflows/container-contents/container-state/createWithMetadataPlan.js.map +0 -1
  1088. package/workflows/container-contents/container-state/groupGrantVerification.js +0 -71
  1089. package/workflows/container-contents/container-state/groupGrantVerification.js.map +0 -1
  1090. package/workflows/container-contents/container-state/groupShareEpoch.js +0 -16
  1091. package/workflows/container-contents/container-state/groupShareEpoch.js.map +0 -1
  1092. package/workflows/container-contents/container-state/localPurgeScope.js +0 -49
  1093. package/workflows/container-contents/container-state/localPurgeScope.js.map +0 -1
  1094. package/workflows/container-contents/container-state/purgeTree.js +0 -298
  1095. package/workflows/container-contents/container-state/purgeTree.js.map +0 -1
  1096. package/workflows/container-contents/container-state/purgeTreeCollection.js.map +0 -1
  1097. package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js +0 -75
  1098. package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js.map +0 -1
  1099. package/workflows/container-contents/container-state/purgeTreeScope.js +0 -175
  1100. package/workflows/container-contents/container-state/purgeTreeScope.js.map +0 -1
  1101. package/workflows/container-contents/container-state/readLocalPurgeScope.js +0 -18
  1102. package/workflows/container-contents/container-state/readLocalPurgeScope.js.map +0 -1
  1103. package/workflows/container-contents/container-state/share.js +0 -283
  1104. package/workflows/container-contents/container-state/share.js.map +0 -1
  1105. package/workflows/container-contents/container-state/sharePersistence.js +0 -136
  1106. package/workflows/container-contents/container-state/sharePersistence.js.map +0 -1
  1107. package/workflows/container-contents/remoteHydration/childIndex.js.map +0 -1
  1108. package/workflows/container-contents/remoteHydration/containerStateFingerprint.js.map +0 -1
  1109. package/workflows/container-contents/remoteHydration/destinationPrefetch.js.map +0 -1
  1110. package/workflows/container-contents/remoteHydration/destinationRoleCache.js.map +0 -1
  1111. package/workflows/container-contents/remoteHydration/destinationRootReload.js +0 -10
  1112. package/workflows/container-contents/remoteHydration/destinationRootReload.js.map +0 -1
  1113. package/workflows/container-contents/remoteHydration/insertRemoteContainer.js +0 -135
  1114. package/workflows/container-contents/remoteHydration/insertRemoteContainer.js.map +0 -1
  1115. package/workflows/container-contents/remoteHydration/laneFetchMarkers.js +0 -21
  1116. package/workflows/container-contents/remoteHydration/laneFetchMarkers.js.map +0 -1
  1117. package/workflows/container-contents/remoteHydration/parentLaneFetch.js +0 -61
  1118. package/workflows/container-contents/remoteHydration/parentLaneFetch.js.map +0 -1
  1119. package/workflows/container-contents/remoteHydration/parentLaneQueue.js.map +0 -1
  1120. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js +0 -244
  1121. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js.map +0 -1
  1122. package/workflows/container-contents/remoteHydration/remoteContainerState.js +0 -263
  1123. package/workflows/container-contents/remoteHydration/remoteContainerState.js.map +0 -1
  1124. package/workflows/container-contents/remoteHydration/remoteContainerTimestamps.js.map +0 -1
  1125. package/workflows/container-contents/remoteHydration/replacementBinding.js +0 -75
  1126. package/workflows/container-contents/remoteHydration/replacementBinding.js.map +0 -1
  1127. package/workflows/container-contents/remoteHydration/verifiedDestination.js +0 -296
  1128. package/workflows/container-contents/remoteHydration/verifiedDestination.js.map +0 -1
  1129. package/workflows/containers/child/carriedDescendantRekeys.js +0 -126
  1130. package/workflows/containers/child/carriedDescendantRekeys.js.map +0 -1
  1131. package/workflows/containers/child/create.d.ts +0 -24
  1132. package/workflows/containers/child/create.js +0 -335
  1133. package/workflows/containers/child/create.js.map +0 -1
  1134. package/workflows/containers/child/createProjection.d.ts +0 -6
  1135. package/workflows/containers/child/createProjection.js +0 -43
  1136. package/workflows/containers/child/createProjection.js.map +0 -1
  1137. package/workflows/containers/child/createSubmission.d.ts +0 -56
  1138. package/workflows/containers/child/createSubmission.js +0 -43
  1139. package/workflows/containers/child/createSubmission.js.map +0 -1
  1140. package/workflows/containers/child/currentShareGrantMutation.js +0 -82
  1141. package/workflows/containers/child/currentShareGrantMutation.js.map +0 -1
  1142. package/workflows/containers/child/currentSharePrincipalPolicy.js +0 -83
  1143. package/workflows/containers/child/currentSharePrincipalPolicy.js.map +0 -1
  1144. package/workflows/containers/child/keyringOverrideLineage.d.ts +0 -22
  1145. package/workflows/containers/child/keyringOverrideLineage.js +0 -39
  1146. package/workflows/containers/child/move.d.ts +0 -23
  1147. package/workflows/containers/child/move.js +0 -268
  1148. package/workflows/containers/child/move.js.map +0 -1
  1149. package/workflows/containers/child/moveArtifacts.js +0 -102
  1150. package/workflows/containers/child/moveArtifacts.js.map +0 -1
  1151. package/workflows/containers/child/moveRotation.js +0 -88
  1152. package/workflows/containers/child/moveRotation.js.map +0 -1
  1153. package/workflows/containers/child/moveWraps.js +0 -49
  1154. package/workflows/containers/child/moveWraps.js.map +0 -1
  1155. package/workflows/containers/child/rekey.d.ts +0 -32
  1156. package/workflows/containers/child/rekey.js +0 -227
  1157. package/workflows/containers/child/rekey.js.map +0 -1
  1158. package/workflows/containers/child/rekeyProjection.d.ts +0 -46
  1159. package/workflows/containers/child/rekeyProjection.js +0 -151
  1160. package/workflows/containers/child/rekeyProjection.js.map +0 -1
  1161. package/workflows/containers/child/rekeyRemote.d.ts +0 -24
  1162. package/workflows/containers/child/rekeyRemote.js +0 -64
  1163. package/workflows/containers/child/rekeyRemote.js.map +0 -1
  1164. package/workflows/containers/child/replacementPrincipalPolicyReferences.js +0 -19
  1165. package/workflows/containers/child/replacementPrincipalPolicyReferences.js.map +0 -1
  1166. package/workflows/containers/child/rotationContext.js +0 -64
  1167. package/workflows/containers/child/rotationContext.js.map +0 -1
  1168. package/workflows/containers/child/rotationPrincipalPolicies.js +0 -19
  1169. package/workflows/containers/child/rotationPrincipalPolicies.js.map +0 -1
  1170. package/workflows/containers/child/rotationWraps.js +0 -85
  1171. package/workflows/containers/child/rotationWraps.js.map +0 -1
  1172. package/workflows/containers/child/runtimeCurrentGroupShare.js +0 -79
  1173. package/workflows/containers/child/runtimeCurrentGroupShare.js.map +0 -1
  1174. package/workflows/containers/child/share.d.ts +0 -65
  1175. package/workflows/containers/child/share.js +0 -256
  1176. package/workflows/containers/child/share.js.map +0 -1
  1177. package/workflows/containers/child/shareAncestorRepair.js +0 -95
  1178. package/workflows/containers/child/shareAncestorRepair.js.map +0 -1
  1179. package/workflows/containers/child/shareMaterialization.d.ts +0 -25
  1180. package/workflows/containers/child/shareMaterialization.js +0 -164
  1181. package/workflows/containers/child/shareMaterialization.js.map +0 -1
  1182. package/workflows/containers/child/sharePlanCore.d.ts +0 -82
  1183. package/workflows/containers/child/sharePlanCore.js +0 -191
  1184. package/workflows/containers/child/sharePlanCore.js.map +0 -1
  1185. package/workflows/containers/child/sharePrincipalPolicy.d.ts +0 -51
  1186. package/workflows/containers/child/sharePrincipalPolicy.js +0 -194
  1187. package/workflows/containers/child/sharePrincipalPolicy.js.map +0 -1
  1188. package/workflows/containers/child/shareProjection.js.map +0 -1
  1189. package/workflows/documents/attachmentPersistence.d.ts +0 -58
  1190. package/workflows/documents/attachmentPersistence.js.map +0 -1
  1191. package/workflows/documents/blobMutationLock.d.ts +0 -8
  1192. package/workflows/documents/blobMutationLock.js +0 -35
  1193. package/workflows/documents/blobMutationLock.js.map +0 -1
  1194. package/workflows/documents/create.d.ts +0 -56
  1195. package/workflows/documents/create.js +0 -258
  1196. package/workflows/documents/create.js.map +0 -1
  1197. package/workflows/documents/createAdoption.js +0 -100
  1198. package/workflows/documents/createAdoption.js.map +0 -1
  1199. package/workflows/documents/createProjection.d.ts +0 -14
  1200. package/workflows/documents/createProjectionFetch.d.ts +0 -27
  1201. package/workflows/documents/createProjectionFetch.js.map +0 -1
  1202. package/workflows/documents/createResponse.js +0 -49
  1203. package/workflows/documents/createResponse.js.map +0 -1
  1204. package/workflows/documents/documentCreationPersistence.js +0 -16
  1205. package/workflows/documents/documentCreationPersistence.js.map +0 -1
  1206. package/workflows/documents/initialSync.js +0 -65
  1207. package/workflows/documents/initialSync.js.map +0 -1
  1208. package/workflows/documents/linkSet.d.ts +0 -20
  1209. package/workflows/documents/linkSet.js +0 -290
  1210. package/workflows/documents/linkSet.js.map +0 -1
  1211. package/workflows/documents/linkSetAuthority.js +0 -61
  1212. package/workflows/documents/linkSetAuthority.js.map +0 -1
  1213. package/workflows/documents/linkSetBlobRewraps.js +0 -143
  1214. package/workflows/documents/linkSetBlobRewraps.js.map +0 -1
  1215. package/workflows/documents/linkSetProjectionSeed.js +0 -119
  1216. package/workflows/documents/linkSetProjectionSeed.js.map +0 -1
  1217. package/workflows/documents/linkSetRemote.d.ts +0 -23
  1218. package/workflows/documents/linkSetRemote.js +0 -187
  1219. package/workflows/documents/linkSetRemote.js.map +0 -1
  1220. package/workflows/documents/orphanBlobReclaimState.js.map +0 -1
  1221. package/workflows/documents/orphanBlobReclaims.d.ts +0 -6
  1222. package/workflows/documents/orphanBlobReclaims.js +0 -143
  1223. package/workflows/documents/orphanBlobReclaims.js.map +0 -1
  1224. package/workflows/documents/persistedDocumentRemoval.d.ts +0 -44
  1225. package/workflows/documents/persistedDocumentRemoval.js +0 -70
  1226. package/workflows/documents/persistedDocumentRemoval.js.map +0 -1
  1227. package/workflows/documents/purge.d.ts +0 -53
  1228. package/workflows/documents/purge.js +0 -204
  1229. package/workflows/documents/purge.js.map +0 -1
  1230. package/workflows/documents/readOnlyProjectionFailure.js +0 -30
  1231. package/workflows/documents/readOnlyProjectionFailure.js.map +0 -1
  1232. package/workflows/documents/readOnlySync.d.ts +0 -71
  1233. package/workflows/documents/readOnlySync.js +0 -269
  1234. package/workflows/documents/readOnlySync.js.map +0 -1
  1235. package/workflows/documents/reportDocumentSyncQuarantine.js.map +0 -1
  1236. package/workflows/documents/subtreePurgeScope.d.ts +0 -8
  1237. package/workflows/documents/subtreePurgeScope.js +0 -18
  1238. package/workflows/documents/subtreePurgeScope.js.map +0 -1
  1239. package/workflows/documents/sync.d.ts +0 -4
  1240. package/workflows/documents/sync.js +0 -287
  1241. package/workflows/documents/sync.js.map +0 -1
  1242. package/workflows/documents/syncAbandon.js +0 -51
  1243. package/workflows/documents/syncAbandon.js.map +0 -1
  1244. package/workflows/documents/syncAttemptPlanning.js +0 -79
  1245. package/workflows/documents/syncAttemptPlanning.js.map +0 -1
  1246. package/workflows/documents/syncAttemptState.d.ts +0 -27
  1247. package/workflows/documents/syncAttemptState.js.map +0 -1
  1248. package/workflows/documents/syncAutomaticContainerRekeys.js +0 -119
  1249. package/workflows/documents/syncAutomaticContainerRekeys.js.map +0 -1
  1250. package/workflows/documents/syncContainerRekeyPreparation.js +0 -227
  1251. package/workflows/documents/syncContainerRekeyPreparation.js.map +0 -1
  1252. package/workflows/documents/syncContainerRekeyProjection.js +0 -79
  1253. package/workflows/documents/syncContainerRekeyProjection.js.map +0 -1
  1254. package/workflows/documents/syncContainerRekeys.js +0 -72
  1255. package/workflows/documents/syncContainerRekeys.js.map +0 -1
  1256. package/workflows/documents/syncContentKeys.d.ts +0 -39
  1257. package/workflows/documents/syncContentKeys.js +0 -254
  1258. package/workflows/documents/syncContentKeys.js.map +0 -1
  1259. package/workflows/documents/syncFailureClassification.d.ts +0 -74
  1260. package/workflows/documents/syncFailureClassification.js +0 -122
  1261. package/workflows/documents/syncFailureClassification.js.map +0 -1
  1262. package/workflows/documents/syncFailures.js +0 -252
  1263. package/workflows/documents/syncFailures.js.map +0 -1
  1264. package/workflows/documents/syncLane.d.ts +0 -20
  1265. package/workflows/documents/syncLane.js +0 -94
  1266. package/workflows/documents/syncLane.js.map +0 -1
  1267. package/workflows/documents/syncPlanIdentity.js +0 -203
  1268. package/workflows/documents/syncPlanIdentity.js.map +0 -1
  1269. package/workflows/documents/syncPlanMaterial.js +0 -306
  1270. package/workflows/documents/syncPlanMaterial.js.map +0 -1
  1271. package/workflows/documents/syncPlanProjection.js.map +0 -1
  1272. package/workflows/documents/syncPlanRequestBounds.js +0 -54
  1273. package/workflows/documents/syncPlanRequestBounds.js.map +0 -1
  1274. package/workflows/documents/syncPolicyRepair.js +0 -50
  1275. package/workflows/documents/syncPolicyRepair.js.map +0 -1
  1276. package/workflows/documents/syncRecoveryRekey.d.ts +0 -70
  1277. package/workflows/documents/syncRecoveryRekey.js +0 -120
  1278. package/workflows/documents/syncRecoveryRekey.js.map +0 -1
  1279. package/workflows/documents/syncRekeyCommit.js +0 -18
  1280. package/workflows/documents/syncRepairAbandon.js.map +0 -1
  1281. package/workflows/documents/syncRepairAccess.js +0 -42
  1282. package/workflows/documents/syncRepairAccess.js.map +0 -1
  1283. package/workflows/documents/syncResponseResult.js +0 -134
  1284. package/workflows/documents/syncResponseResult.js.map +0 -1
  1285. package/workflows/documents/syncSubmittedResult.js +0 -119
  1286. package/workflows/documents/syncSubmittedResult.js.map +0 -1
  1287. package/workflows/documents/syncTrace.js +0 -148
  1288. package/workflows/organizations/acknowledgedDirectoryBindings.js +0 -18
  1289. package/workflows/organizations/acknowledgedDirectoryBindings.js.map +0 -1
  1290. package/workflows/organizations/authoredPrincipalPolicyWarmer.js +0 -25
  1291. package/workflows/organizations/authoredPrincipalPolicyWarmer.js.map +0 -1
  1292. package/workflows/organizations/commitCurrentGroupPolicyMutation.js +0 -139
  1293. package/workflows/organizations/commitCurrentGroupPolicyMutation.js.map +0 -1
  1294. package/workflows/organizations/createCurrentOrganizationGroup.js +0 -85
  1295. package/workflows/organizations/createCurrentOrganizationGroup.js.map +0 -1
  1296. package/workflows/organizations/createOrganization.d.ts +0 -62
  1297. package/workflows/organizations/createOrganization.js +0 -128
  1298. package/workflows/organizations/createOrganization.js.map +0 -1
  1299. package/workflows/organizations/currentGroupMetadataAuthority.js +0 -53
  1300. package/workflows/organizations/currentGroupMetadataAuthority.js.map +0 -1
  1301. package/workflows/organizations/currentGroupMutationReferences.js +0 -35
  1302. package/workflows/organizations/currentGroupMutationReferences.js.map +0 -1
  1303. package/workflows/organizations/currentGroupPolicyMutationContext.js +0 -79
  1304. package/workflows/organizations/currentGroupPolicyMutationContext.js.map +0 -1
  1305. package/workflows/organizations/currentOrganizationGroupNames.js +0 -72
  1306. package/workflows/organizations/currentOrganizationGroupNames.js.map +0 -1
  1307. package/workflows/organizations/currentOrganizationMutationAuthority.js +0 -16
  1308. package/workflows/organizations/currentOrganizationMutationAuthority.js.map +0 -1
  1309. package/workflows/organizations/currentOrganizationMutationRetention.js +0 -64
  1310. package/workflows/organizations/currentOrganizationMutationRetention.js.map +0 -1
  1311. package/workflows/organizations/currentPolicyMutationAcknowledgement.js +0 -65
  1312. package/workflows/organizations/currentPolicyMutationAcknowledgement.js.map +0 -1
  1313. package/workflows/organizations/currentPrincipalMutationLease.js +0 -39
  1314. package/workflows/organizations/currentPrincipalMutationLease.js.map +0 -1
  1315. package/workflows/organizations/dataUsageReadModel.d.ts +0 -19
  1316. package/workflows/organizations/dataUsageReadModel.js +0 -64
  1317. package/workflows/organizations/dataUsageReadModel.js.map +0 -1
  1318. package/workflows/organizations/deleteCurrentOrganizationGroup.js +0 -35
  1319. package/workflows/organizations/deleteCurrentOrganizationGroup.js.map +0 -1
  1320. package/workflows/organizations/deleteOrganizationGroup.d.ts +0 -19
  1321. package/workflows/organizations/deleteOrganizationGroup.js +0 -75
  1322. package/workflows/organizations/deleteOrganizationGroup.js.map +0 -1
  1323. package/workflows/organizations/groupCreation.d.ts +0 -21
  1324. package/workflows/organizations/groupCreation.js +0 -68
  1325. package/workflows/organizations/groupCreation.js.map +0 -1
  1326. package/workflows/organizations/groupMembershipName.d.ts +0 -8
  1327. package/workflows/organizations/groupMembershipName.js +0 -18
  1328. package/workflows/organizations/groupMembershipName.js.map +0 -1
  1329. package/workflows/organizations/groupMetadataAccess.d.ts +0 -33
  1330. package/workflows/organizations/groupMetadataAccess.js +0 -114
  1331. package/workflows/organizations/groupMetadataAccess.js.map +0 -1
  1332. package/workflows/organizations/groupMetadataBinding.js +0 -19
  1333. package/workflows/organizations/groupMetadataBinding.js.map +0 -1
  1334. package/workflows/organizations/groupMetadataContainerAuthority.js +0 -41
  1335. package/workflows/organizations/groupMetadataContainerAuthority.js.map +0 -1
  1336. package/workflows/organizations/groupMetadataErrors.js +0 -40
  1337. package/workflows/organizations/groupMetadataRootBinding.js +0 -51
  1338. package/workflows/organizations/groupMetadataRootBinding.js.map +0 -1
  1339. package/workflows/organizations/groupMetadataRuntime.js +0 -47
  1340. package/workflows/organizations/groupMetadataRuntime.js.map +0 -1
  1341. package/workflows/organizations/groupNameUniqueness.js +0 -151
  1342. package/workflows/organizations/groupNameUniqueness.js.map +0 -1
  1343. package/workflows/organizations/groupPolicyHistoryPage.js.map +0 -1
  1344. package/workflows/organizations/groupPolicyMutationAcknowledgement.js +0 -174
  1345. package/workflows/organizations/groupPolicyMutationAcknowledgement.js.map +0 -1
  1346. package/workflows/organizations/groupPolicyMutationContext.d.ts +0 -58
  1347. package/workflows/organizations/groupPolicyMutationContext.js +0 -166
  1348. package/workflows/organizations/groupPolicyMutationContext.js.map +0 -1
  1349. package/workflows/organizations/groupPolicyMutationEvidence.d.ts +0 -26
  1350. package/workflows/organizations/groupPolicyMutationEvidence.js +0 -64
  1351. package/workflows/organizations/groupPolicyMutationEvidence.js.map +0 -1
  1352. package/workflows/organizations/groupPolicyMutationHead.js +0 -26
  1353. package/workflows/organizations/groupPolicyRequests.js +0 -181
  1354. package/workflows/organizations/groupPolicyRequests.js.map +0 -1
  1355. package/workflows/organizations/groupPolicyVerification.js +0 -74
  1356. package/workflows/organizations/groupPolicyVerification.js.map +0 -1
  1357. package/workflows/organizations/listLocalOrganizations.d.ts +0 -20
  1358. package/workflows/organizations/listLocalOrganizations.js +0 -137
  1359. package/workflows/organizations/listLocalOrganizations.js.map +0 -1
  1360. package/workflows/organizations/loadPolicyHistoryDetails.js +0 -78
  1361. package/workflows/organizations/loadPolicyHistoryDetails.js.map +0 -1
  1362. package/workflows/organizations/localReadModelDetails.d.ts +0 -25
  1363. package/workflows/organizations/localReadModelDetails.js +0 -182
  1364. package/workflows/organizations/localReadModelDetails.js.map +0 -1
  1365. package/workflows/organizations/organizationGroupDirectory.js +0 -153
  1366. package/workflows/organizations/organizationGroupDirectory.js.map +0 -1
  1367. package/workflows/organizations/organizationGroupNamePolicies.js +0 -48
  1368. package/workflows/organizations/organizationGroupNamePolicies.js.map +0 -1
  1369. package/workflows/organizations/organizationGroupNames.js +0 -13
  1370. package/workflows/organizations/organizationGroupNames.js.map +0 -1
  1371. package/workflows/organizations/organizationPolicyHistoryDetails.js +0 -110
  1372. package/workflows/organizations/organizationPolicyHistoryDetails.js.map +0 -1
  1373. package/workflows/organizations/organizationPolicyHistoryVerification.js +0 -67
  1374. package/workflows/organizations/organizationPolicyHistoryVerification.js.map +0 -1
  1375. package/workflows/organizations/organizationPresentationAccessState.js +0 -173
  1376. package/workflows/organizations/organizationPresentationAccessState.js.map +0 -1
  1377. package/workflows/organizations/organizationPresentationFailures.js +0 -7
  1378. package/workflows/organizations/organizationProvisioningAttempt.d.ts +0 -36
  1379. package/workflows/organizations/organizationProvisioningAttempt.js +0 -205
  1380. package/workflows/organizations/organizationProvisioningAttempt.js.map +0 -1
  1381. package/workflows/organizations/organizationReplacementVerification.js +0 -26
  1382. package/workflows/organizations/organizationReplacementVerification.js.map +0 -1
  1383. package/workflows/organizations/policyHistoryAccessDenial.js +0 -19
  1384. package/workflows/organizations/policyHistoryAccessDenial.js.map +0 -1
  1385. package/workflows/organizations/policyHistoryCache.js +0 -42
  1386. package/workflows/organizations/policyHistoryCache.js.map +0 -1
  1387. package/workflows/organizations/policyHistoryReadModel.d.ts +0 -9
  1388. package/workflows/organizations/policyHistoryTypes.d.ts +0 -58
  1389. package/workflows/organizations/precedingPrincipalRematerialization.js +0 -31
  1390. package/workflows/organizations/precedingPrincipalRematerialization.js.map +0 -1
  1391. package/workflows/organizations/principalContainerRematerialization.js +0 -321
  1392. package/workflows/organizations/principalContainerRematerialization.js.map +0 -1
  1393. package/workflows/organizations/principalContainerRematerializationPlanning.js +0 -77
  1394. package/workflows/organizations/principalContainerRematerializationPlanning.js.map +0 -1
  1395. package/workflows/organizations/principalContainerRematerializationTargets.js +0 -79
  1396. package/workflows/organizations/principalContainerRematerializationTargets.js.map +0 -1
  1397. package/workflows/organizations/principalMutationJournalManagement.d.ts +0 -26
  1398. package/workflows/organizations/principalMutationJournalManagement.js +0 -104
  1399. package/workflows/organizations/principalMutationJournalManagement.js.map +0 -1
  1400. package/workflows/organizations/principalMutationJournalSession.d.ts +0 -26
  1401. package/workflows/organizations/principalMutationJournalSession.js +0 -85
  1402. package/workflows/organizations/principalMutationJournalSession.js.map +0 -1
  1403. package/workflows/organizations/principalMutationReceipt.js +0 -28
  1404. package/workflows/organizations/principalMutationReceipt.js.map +0 -1
  1405. package/workflows/organizations/principalOperationReceipt.d.ts +0 -5
  1406. package/workflows/organizations/principalOperationReceipt.js +0 -36
  1407. package/workflows/organizations/principalOperationReceipt.js.map +0 -1
  1408. package/workflows/organizations/principalPolicy.d.ts +0 -98
  1409. package/workflows/organizations/principalPolicy.js +0 -256
  1410. package/workflows/organizations/principalPolicy.js.map +0 -1
  1411. package/workflows/organizations/principalPolicyApi.d.ts +0 -33
  1412. package/workflows/organizations/principalPolicyApi.js.map +0 -1
  1413. package/workflows/organizations/principalPolicyReceiptArtifacts.js +0 -74
  1414. package/workflows/organizations/principalPolicyReceiptArtifacts.js.map +0 -1
  1415. package/workflows/organizations/principalPolicyRecipients.js +0 -43
  1416. package/workflows/organizations/principalPolicyRecipients.js.map +0 -1
  1417. package/workflows/organizations/principalPolicyRequest.d.ts +0 -68
  1418. package/workflows/organizations/principalPolicyRequest.js +0 -176
  1419. package/workflows/organizations/readModel.d.ts +0 -70
  1420. package/workflows/organizations/readModel.js +0 -10
  1421. package/workflows/organizations/readModel.js.map +0 -1
  1422. package/workflows/organizations/readModelProjection.d.ts +0 -29
  1423. package/workflows/organizations/readModelProjection.js +0 -255
  1424. package/workflows/organizations/readModelProjection.js.map +0 -1
  1425. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.d.ts +0 -6
  1426. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.js +0 -20
  1427. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.js.map +0 -1
  1428. package/workflows/organizations/runtimeCurrentGroupMutation.js +0 -113
  1429. package/workflows/organizations/runtimeCurrentGroupMutation.js.map +0 -1
  1430. package/workflows/organizations/runtimeCurrentOrganizationMutation.js +0 -48
  1431. package/workflows/organizations/runtimeCurrentOrganizationMutation.js.map +0 -1
  1432. package/workflows/organizations/runtimeGroupMetadataAuthority.js +0 -16
  1433. package/workflows/organizations/runtimeGroupMetadataAuthority.js.map +0 -1
  1434. package/workflows/organizations/submitGroupPolicyCommit.d.ts +0 -22
  1435. package/workflows/organizations/submitGroupPolicyCommit.js +0 -71
  1436. package/workflows/organizations/submitGroupPolicyCommit.js.map +0 -1
  1437. package/workflows/principals/acknowledgedPrincipalCurrents.d.ts +0 -33
  1438. package/workflows/principals/acknowledgedPrincipalCurrents.js +0 -140
  1439. package/workflows/principals/acknowledgedPrincipalCurrents.js.map +0 -1
  1440. package/workflows/principals/acknowledgedPrincipalPredecessor.d.ts +0 -39
  1441. package/workflows/principals/acknowledgedPrincipalPredecessor.js +0 -87
  1442. package/workflows/principals/acknowledgedPrincipalPredecessor.js.map +0 -1
  1443. package/workflows/principals/initialPrincipalCurrentPublication.js +0 -84
  1444. package/workflows/principals/initialPrincipalCurrentPublication.js.map +0 -1
  1445. package/workflows/principals/loadRecoveredPrincipalHistoryPage.d.ts +0 -10
  1446. package/workflows/principals/loadRecoveredPrincipalHistoryPage.js +0 -119
  1447. package/workflows/principals/loadRecoveredPrincipalHistoryPage.js.map +0 -1
  1448. package/workflows/principals/policyCache.d.ts +0 -20
  1449. package/workflows/principals/policyCache.js +0 -242
  1450. package/workflows/principals/policyCache.js.map +0 -1
  1451. package/workflows/principals/principalAcknowledgementChecks.d.ts +0 -30
  1452. package/workflows/principals/principalCurrentPublicationSeal.js +0 -51
  1453. package/workflows/principals/principalCurrentPublicationSeal.js.map +0 -1
  1454. package/workflows/principals/principalCurrentRecoveryBatch.js +0 -14
  1455. package/workflows/principals/principalCurrentRecoveryBatch.js.map +0 -1
  1456. package/workflows/principals/principalHistoryRecoveryAuthority.js +0 -20
  1457. package/workflows/principals/principalHistoryRecoveryAuthority.js.map +0 -1
  1458. package/workflows/principals/principalHistoryRecoveryPrefix.js +0 -69
  1459. package/workflows/principals/principalHistoryRecoveryPrefix.js.map +0 -1
  1460. package/workflows/principals/principalHistoryRecoveryReferences.js +0 -68
  1461. package/workflows/principals/principalHistoryRecoveryReferences.js.map +0 -1
  1462. package/workflows/principals/principalHistoryRecoveryStage.js +0 -61
  1463. package/workflows/principals/principalHistoryRecoveryStage.js.map +0 -1
  1464. package/workflows/principals/principalHistoryRecoveryTypes.d.ts +0 -35
  1465. package/workflows/principals/principalHistoryRecoveryTypes.js +0 -16
  1466. package/workflows/principals/principalHistoryRecoveryTypes.js.map +0 -1
  1467. package/workflows/principals/principalHistoryRecoveryVerification.js +0 -29
  1468. package/workflows/principals/principalPolicyCacheAdvance.js +0 -39
  1469. package/workflows/principals/principalPolicyCacheAdvance.js.map +0 -1
  1470. package/workflows/principals/principalPolicyCacheValidation.js +0 -149
  1471. package/workflows/principals/principalPolicyCacheValidation.js.map +0 -1
  1472. package/workflows/principals/principalPolicyOrganizationScope.js +0 -67
  1473. package/workflows/principals/principalPolicyOrganizationScope.js.map +0 -1
  1474. package/workflows/principals/principalRecoveryDirectory.d.ts +0 -10
  1475. package/workflows/principals/principalRecoveryDirectory.js +0 -127
  1476. package/workflows/principals/principalRecoveryDirectory.js.map +0 -1
  1477. package/workflows/principals/principalRecoveryDiscoveryPage.js.map +0 -1
  1478. package/workflows/principals/principalRecoveryLocalPreference.js +0 -30
  1479. package/workflows/principals/principalRecoveryLocalPreference.js.map +0 -1
  1480. package/workflows/principals/principalRecoveryMemo.d.ts +0 -21
  1481. package/workflows/principals/principalRecoveryMemo.js +0 -178
  1482. package/workflows/principals/principalRecoveryMemo.js.map +0 -1
  1483. package/workflows/principals/principalRecoveryMemoValidity.js +0 -33
  1484. package/workflows/principals/principalRecoveryMemoValidity.js.map +0 -1
  1485. package/workflows/principals/principalRecoveryOutage.js +0 -40
  1486. package/workflows/principals/principalRecoveryOutage.js.map +0 -1
  1487. package/workflows/principals/publicPrincipalHistoryAuthority.js +0 -60
  1488. package/workflows/principals/publicPrincipalHistoryAuthority.js.map +0 -1
  1489. package/workflows/principals/publicPrincipalHistoryPage.js +0 -88
  1490. package/workflows/principals/publicPrincipalHistoryPage.js.map +0 -1
  1491. package/workflows/principals/publicPrincipalHistoryProgress.js +0 -179
  1492. package/workflows/principals/publicPrincipalHistoryProgress.js.map +0 -1
  1493. package/workflows/principals/publicPrincipalHistoryTypes.d.ts +0 -41
  1494. package/workflows/principals/publicPrincipalHistoryTypes.js.map +0 -1
  1495. package/workflows/principals/publicProjectionDirectory.js +0 -40
  1496. package/workflows/principals/publicProjectionDirectory.js.map +0 -1
  1497. package/workflows/principals/publicProjectionPrincipal.js +0 -54
  1498. package/workflows/principals/publicProjectionPrincipal.js.map +0 -1
  1499. package/workflows/principals/reconcileAcknowledgedPrincipalCurrent.js +0 -68
  1500. package/workflows/principals/reconcileAcknowledgedPrincipalCurrent.js.map +0 -1
  1501. package/workflows/principals/recoverCurrentOrganizationPolicy.js +0 -38
  1502. package/workflows/principals/recoverCurrentOrganizationPolicy.js.map +0 -1
  1503. package/workflows/principals/recoverPrincipalHistoryPage.js +0 -31
  1504. package/workflows/principals/recoverPrincipalPolicyHistory.js +0 -295
  1505. package/workflows/principals/recoverPrincipalPolicyHistory.js.map +0 -1
  1506. package/workflows/principals/recoverProjectionPolicyHistory.d.ts +0 -9
  1507. package/workflows/principals/recoverProjectionPolicyHistory.js +0 -98
  1508. package/workflows/principals/recoverProjectionPolicyHistory.js.map +0 -1
  1509. package/workflows/principals/recoverPublicPrincipalHistory.js +0 -178
  1510. package/workflows/principals/recoverPublicPrincipalHistory.js.map +0 -1
  1511. package/workflows/principals/recoverScopedPrincipalPolicyHistory.d.ts +0 -27
  1512. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js +0 -163
  1513. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js.map +0 -1
  1514. package/workflows/principals/selectPublicPrincipalHistory.js +0 -96
  1515. package/workflows/principals/selectPublicPrincipalHistory.js.map +0 -1
  1516. /package/data/keyingProjectionVerification/{containerCreateManifest.js.map → container/containerCreateManifest.js.map} +0 -0
  1517. /package/data/keyingProjectionVerification/{documentContainerProjections.js → document/documentContainerProjections.js} +0 -0
  1518. /package/data/keyingProjectionVerification/{documentContainerProjections.js.map → document/documentContainerProjections.js.map} +0 -0
  1519. /package/data/keyingProjectionVerification/{documentManifestPredecessor.js.map → document/documentManifestPredecessor.js.map} +0 -0
  1520. /package/stores/container-contents/{containerStateMap.js → containerState/containerStateMap.js} +0 -0
  1521. /package/stores/container-contents/{missingSyncedContainerState.js → containerState/missingSyncedContainerState.js} +0 -0
  1522. /package/stores/container-contents/{reconcilableContainer.js → containerState/reconcilableContainer.js} +0 -0
  1523. /package/stores/container-contents/{remoteHydrationRefresh.js → hydration/remoteHydrationRefresh.js} +0 -0
  1524. /package/stores/container-contents/{remoteHydrationRefresh.js.map → hydration/remoteHydrationRefresh.js.map} +0 -0
  1525. /package/stores/container-contents/{emptyTrashOperation.js → operations/emptyTrashOperation.js} +0 -0
  1526. /package/stores/container-contents/{purgeContainerOperation.js → operations/purgeContainerOperation.js} +0 -0
  1527. /package/stores/container-contents/{remoteBackedContainerState.js → remoteEvents/remoteBackedContainerState.js} +0 -0
  1528. /package/stores/container-contents/{writeGeneration.js → remoteWrites/writeGeneration.js} +0 -0
  1529. /package/stores/container-contents/{syncAgentTypes.js → syncAgent/syncAgentTypes.js} +0 -0
  1530. /package/stores/container-contents/{systemContainerLookup.js → systemContainers/systemContainerLookup.js} +0 -0
  1531. /package/stores/documents/documentStore/{attachmentPersistFollowup.js → attachments/attachmentPersistFollowup.js} +0 -0
  1532. /package/stores/documents/documentStore/{attachmentSnapshot.js → attachments/attachmentSnapshot.js} +0 -0
  1533. /package/stores/documents/documentStore/{remoteWork.js → sync/remoteWork.js} +0 -0
  1534. /package/stores/documents/documentStore/{syncAcceptedUpdateIds.js → sync/syncAcceptedUpdateIds.js} +0 -0
  1535. /package/stores/documents/documentStore/{syncGeneration.js → sync/syncGeneration.js} +0 -0
  1536. /package/stores/documents/documentStore/{versionCoverage.js.map → sync/versionCoverage.js.map} +0 -0
  1537. /package/workflows/blobs/{readAttachmentTransfer.js → hydration/readAttachmentTransfer.js} +0 -0
  1538. /package/workflows/blobs/{readAttachmentTransfer.js.map → hydration/readAttachmentTransfer.js.map} +0 -0
  1539. /package/workflows/blobs/{multipartStageResolution.js → upload/multipartStageResolution.js} +0 -0
  1540. /package/workflows/container-contents/container-state/{createIntentSettlement.js → create/createIntentSettlement.js} +0 -0
  1541. /package/workflows/container-contents/container-state/{purgeProgress.d.ts → purge/purgeProgress.d.ts} +0 -0
  1542. /package/workflows/container-contents/container-state/{purgeProgress.js → purge/purgeProgress.js} +0 -0
  1543. /package/workflows/container-contents/container-state/{purgeProgress.js.map → purge/purgeProgress.js.map} +0 -0
  1544. /package/workflows/container-contents/container-state/{purgeTreeCollection.js → purge/purgeTreeCollection.js} +0 -0
  1545. /package/workflows/container-contents/remoteHydration/{destinationPrefetch.js → destination/destinationPrefetch.js} +0 -0
  1546. /package/workflows/container-contents/remoteHydration/{destinationRoleCache.js → destination/destinationRoleCache.js} +0 -0
  1547. /package/workflows/container-contents/remoteHydration/{childIndex.js → lanes/childIndex.js} +0 -0
  1548. /package/workflows/container-contents/remoteHydration/{parentLaneQueue.js → lanes/parentLaneQueue.js} +0 -0
  1549. /package/workflows/container-contents/remoteHydration/{containerStateFingerprint.js → remoteContainers/containerStateFingerprint.js} +0 -0
  1550. /package/workflows/container-contents/remoteHydration/{remoteContainerTimestamps.js → remoteContainers/remoteContainerTimestamps.js} +0 -0
  1551. /package/workflows/containers/child/{keyringOverrideLineage.js.map → rekey/keyringOverrideLineage.js.map} +0 -0
  1552. /package/workflows/containers/child/{shareProjection.js → share/shareProjection.js} +0 -0
  1553. /package/workflows/documents/{attachmentPersistence.js → attachments/attachmentPersistence.js} +0 -0
  1554. /package/workflows/documents/{orphanBlobReclaimState.js → attachments/orphanBlobReclaimState.js} +0 -0
  1555. /package/workflows/documents/{createProjection.js → create/createProjection.js} +0 -0
  1556. /package/workflows/documents/{createProjection.js.map → create/createProjection.js.map} +0 -0
  1557. /package/workflows/documents/{createProjectionFetch.js → create/createProjectionFetch.js} +0 -0
  1558. /package/workflows/documents/{reportDocumentSyncQuarantine.js → sync/reportDocumentSyncQuarantine.js} +0 -0
  1559. /package/workflows/documents/{syncAttemptState.js → sync/syncAttemptState.js} +0 -0
  1560. /package/workflows/documents/{syncTrace.d.ts → sync/syncTrace.d.ts} +0 -0
  1561. /package/workflows/documents/{syncTrace.js.map → sync/syncTrace.js.map} +0 -0
  1562. /package/workflows/documents/{syncFailureClearance.d.ts → syncFailures/syncFailureClearance.d.ts} +0 -0
  1563. /package/workflows/documents/{syncFailureClearance.js → syncFailures/syncFailureClearance.js} +0 -0
  1564. /package/workflows/documents/{syncFailureClearance.js.map → syncFailures/syncFailureClearance.js.map} +0 -0
  1565. /package/workflows/documents/{syncRepairAbandon.js → syncFailures/syncRepairAbandon.js} +0 -0
  1566. /package/workflows/documents/{syncPlanProjection.js → syncPlan/syncPlanProjection.js} +0 -0
  1567. /package/workflows/documents/{syncRekeyCommit.js.map → syncRekeys/syncRekeyCommit.js.map} +0 -0
  1568. /package/workflows/organizations/{groupMetadataErrors.js.map → groupMetadata/groupMetadataErrors.js.map} +0 -0
  1569. /package/workflows/organizations/{groupMutationAuthorization.js → groupPolicy/groupMutationAuthorization.js} +0 -0
  1570. /package/workflows/organizations/{groupMutationAuthorization.js.map → groupPolicy/groupMutationAuthorization.js.map} +0 -0
  1571. /package/workflows/organizations/{groupPolicyMutationHead.js.map → groupPolicy/groupPolicyMutationHead.js.map} +0 -0
  1572. /package/workflows/organizations/{groupPolicyHistoryPage.js → policyHistory/groupPolicyHistoryPage.js} +0 -0
  1573. /package/workflows/organizations/{policyHistoryReadModel.js → policyHistory/policyHistoryReadModel.js} +0 -0
  1574. /package/workflows/organizations/{policyHistoryReadModel.js.map → policyHistory/policyHistoryReadModel.js.map} +0 -0
  1575. /package/workflows/organizations/{policyHistoryTypes.js → policyHistory/policyHistoryTypes.js} +0 -0
  1576. /package/workflows/organizations/{policyHistoryTypes.js.map → policyHistory/policyHistoryTypes.js.map} +0 -0
  1577. /package/workflows/organizations/{principalPolicyApi.js → principalPolicy/principalPolicyApi.js} +0 -0
  1578. /package/workflows/organizations/{principalPolicyRequest.js.map → principalPolicy/principalPolicyRequest.js.map} +0 -0
  1579. /package/workflows/organizations/{organizationPresentationFailures.js.map → readModel/organizationPresentationFailures.js.map} +0 -0
  1580. /package/workflows/principals/{principalAcknowledgementChecks.js → acknowledgements/principalAcknowledgementChecks.js} +0 -0
  1581. /package/workflows/principals/{principalAcknowledgementChecks.js.map → acknowledgements/principalAcknowledgementChecks.js.map} +0 -0
  1582. /package/workflows/principals/{principalHistoryRecoveryVerification.js.map → historyRecovery/principalHistoryRecoveryVerification.js.map} +0 -0
  1583. /package/workflows/principals/{recoverPrincipalHistoryPage.js.map → historyRecovery/recoverPrincipalHistoryPage.js.map} +0 -0
  1584. /package/workflows/principals/{recoverPrincipalPolicyHistory.d.ts → historyRecovery/recoverPrincipalPolicyHistory.d.ts} +0 -0
  1585. /package/workflows/principals/{principalPolicyCacheScope.js → policyCache/principalPolicyCacheScope.js} +0 -0
  1586. /package/workflows/principals/{principalPolicyCacheScope.js.map → policyCache/principalPolicyCacheScope.js.map} +0 -0
  1587. /package/workflows/principals/{publicPrincipalHistoryTypes.js → publicHistory/publicPrincipalHistoryTypes.js} +0 -0
  1588. /package/workflows/principals/{principalRecoveryDiscoveryPage.js → recoveryOperation/principalRecoveryDiscoveryPage.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"provisionedPrincipalHistory.js","sourceRoot":"","sources":["provisionedPrincipalHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PrincipalPolicyHistoryProgressOptions } from \"@tearleads/crypto\";\nimport type { PrincipalPolicyBundleResponse } from \"@tearleads/validators/response\";\nimport { assertProjectionVerificationCurrent } from \"../../data/keyingProjectionVerification/types\";\nimport type { PrincipalHistoryProtectionLease } from \"../../data/principals/principalHistoryProtection\";\nimport { principalPolicyReferenceFromBundle } from \"../../data/principals/principalPolicyAdminSigners\";\nimport { getOrCreatePrincipalPolicyCoordinator } from \"../../data/principals/principalPolicyCoordinator\";\nimport type { ExecSql, ExecSqlClientLike } from \"../../data/sqlite/sqlSchema\";\nimport type {\n TrustedUserIdentity,\n TrustedUserIdentityResolver,\n} from \"../../data/trustedUserIdentity\";\nimport { createPrincipalCurrentRecoveryBatch } from \"../principals/principalCurrentRecoveryBatch\";\nimport type { PrincipalPolicyPageReader } from \"../principals/principalPolicyHistoryReader\";\n\n/** The version-1 policies a provisioning request signed and its response acknowledged. */\ninterface ProvisionedPrincipalPolicies {\n readonly adminGroup: PrincipalPolicyBundleResponse;\n readonly memberGroup: PrincipalPolicyBundleResponse;\n readonly organization: PrincipalPolicyBundleResponse;\n}\n\n/**\n * Records verified recovery progress for an organization's founding policy\n * heads, so the device's first scoped recovery of them needs no history read.\n * It is bound to the provisioning scope: the database the bootstrap committed\n * to and the identity that signed it. Failure leaves the online path.\n */\nexport type ProvisionedPrincipalHistoryPrimer = (input: {\n /** The database client the provisioning bootstrap committed to. */\n readonly database: ExecSqlClientLike;\n /** Whether the identity that provisioned is still the active one. */\n readonly isCurrent: () => boolean;\n readonly organizationId: string;\n readonly policies: ProvisionedPrincipalPolicies;\n readonly userId: string;\n}) => Promise<void>;\n\n/**\n * Serves only the acknowledged initial heads, each complete in one page. The\n * ordinary verifier still checks every signature, the directory binding and\n * strict Admins rules before any progress is saved.\n */\nfunction provisionedPolicyPages(\n policies: ProvisionedPrincipalPolicies,\n): PrincipalPolicyPageReader {\n const bundles = [\n policies.organization,\n policies.adminGroup,\n policies.memberGroup,\n ];\n return {\n async *getPrincipalPolicyPages(principalType, principalId, options = {}) {\n const bundle = bundles.find(\n ({ currentState }) =>\n currentState.principalType === principalType &&\n currentState.principalId === principalId,\n );\n if (\n !bundle ||\n options.resume !== undefined ||\n (options.afterVersion ?? 0) !== 0 ||\n (options.stateHash !== undefined &&\n options.stateHash !== bundle.currentState.stateHash)\n )\n throw new Error(\n \"Provisioned principal history holds only the acknowledged initial heads\",\n );\n yield {\n ok: true,\n data: {\n ...structuredClone(bundle),\n historyPage: { afterVersion: 0, nextAfterVersion: null },\n },\n };\n },\n };\n}\n\nasync function primeProvisionedPrincipalHistory(input: {\n readonly execSql: ExecSql;\n readonly organizationId: string;\n readonly policies: ProvisionedPrincipalPolicies;\n readonly protection: PrincipalPolicyHistoryProgressOptions;\n readonly resolveTrustedUserIdentity: TrustedUserIdentityResolver;\n readonly stillCurrent: () => boolean;\n}): Promise<void> {\n const { recover } = createPrincipalCurrentRecoveryBatch();\n const options = {\n historyReader: provisionedPolicyPages(input.policies),\n execSql: input.execSql,\n offline: false,\n organizationId: input.organizationId,\n protection: input.protection,\n resolveTrustedUserIdentity: input.resolveTrustedUserIdentity,\n stillCurrent: input.stillCurrent,\n };\n // Scoped recovery of each group also completes the directory and strict\n // Admins stages; Members reuses them through the shared batch.\n for (const group of [input.policies.adminGroup, input.policies.memberGroup])\n await recover({\n ...options,\n reference: principalPolicyReferenceFromBundle(group),\n });\n}\n\n/** The runtime seams priming reads; none of them writes durable state. */\ninterface ProvisionedPrincipalHistoryRuntime {\n readonly bindLease: () => PrincipalHistoryProtectionLease | undefined;\n /** The runtime executor, only while `database` is its ready database. */\n readonly execSqlFor: (database: ExecSqlClientLike) => ExecSql | null;\n readonly logError: (message: string | Error, cause?: unknown) => void;\n /** Read-only: the identity the trust store already pins for a user. */\n readonly loadPinnedIdentity: (\n execSql: ExecSql,\n userId: string,\n ) => Promise<TrustedUserIdentity | null>;\n readonly signingFingerprint: () => string | null;\n}\n\n/**\n * Binds priming to the exact provisioning scope, captured before any await:\n * the bootstrap's database and runtime executor, the identity whose key signed\n * the founding states, and a protection lease for that identity. Every later\n * step, and every progress write inside its transaction, rechecks that scope,\n * so a switched identity or database aborts priming without a durable write.\n * Priming never writes a trust pin; it only reads the founder's existing one.\n */\nexport function createProvisionedPrincipalHistoryPrimer(\n runtime: ProvisionedPrincipalHistoryRuntime,\n): ProvisionedPrincipalHistoryPrimer {\n return async (input) => {\n try {\n await primeInProvisioningScope(runtime, input);\n } catch (error) {\n runtime.logError(\n \"Provisioned principal history was not primed; recovery reads it online\",\n error,\n );\n }\n };\n}\n\nasync function primeInProvisioningScope(\n runtime: ProvisionedPrincipalHistoryRuntime,\n input: Parameters<ProvisionedPrincipalHistoryPrimer>[0],\n): Promise<void> {\n // Everything below is captured synchronously, before the first await.\n const founderFingerprint =\n input.policies.organization.currentState.signerUserKeyFingerprint;\n const execSql = runtime.execSqlFor(input.database);\n const scopeCurrent = () =>\n execSql !== null &&\n input.isCurrent() &&\n runtime.execSqlFor(input.database) === execSql &&\n runtime.signingFingerprint() === founderFingerprint;\n const lease = scopeCurrent() ? runtime.bindLease() : undefined;\n if (!execSql || !lease) return;\n const resolveTrustedUserIdentity: TrustedUserIdentityResolver = async (\n signerUserId,\n ) => {\n if (signerUserId !== input.userId) return null;\n assertProjectionVerificationCurrent(scopeCurrent);\n const identity = await runtime.loadPinnedIdentity(execSql, input.userId);\n assertProjectionVerificationCurrent(scopeCurrent);\n return identity?.signingKeyFingerprint === founderFingerprint\n ? identity\n : null;\n };\n await getOrCreatePrincipalPolicyCoordinator(execSql).queueRecovery(\n input.organizationId,\n () =>\n lease(({ protection, stillCurrent }) =>\n primeProvisionedPrincipalHistory({\n execSql,\n organizationId: input.organizationId,\n policies: input.policies,\n protection,\n resolveTrustedUserIdentity,\n // Progress writes check this inside their transactions.\n stillCurrent: () => stillCurrent() && scopeCurrent(),\n }),\n ),\n );\n}\n"]}
1
+ {"version":3,"file":"provisionedPrincipalHistory.js","sourceRoot":"","sources":["provisionedPrincipalHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PrincipalPolicyHistoryProgressOptions } from \"@tearleads/crypto\";\nimport type { PrincipalPolicyBundleResponse } from \"@tearleads/validators/response\";\nimport { assertProjectionVerificationCurrent } from \"../../data/keyingProjectionVerification/types\";\nimport type { PrincipalHistoryProtectionLease } from \"../../data/principals/principalHistoryProtection\";\nimport { principalPolicyReferenceFromBundle } from \"../../data/principals/principalPolicyAdminSigners\";\nimport { getOrCreatePrincipalPolicyCoordinator } from \"../../data/principals/principalPolicyCoordinator\";\nimport type { ExecSql, ExecSqlClientLike } from \"../../data/sqlite/sqlSchema\";\nimport type {\n TrustedUserIdentity,\n TrustedUserIdentityResolver,\n} from \"../../data/trustedUserIdentity\";\nimport type { PrincipalPolicyPageReader } from \"../principals/principalPolicyHistoryReader\";\nimport { createPrincipalCurrentRecoveryBatch } from \"../principals/recoveryOperation/principalCurrentRecoveryBatch\";\n\n/** The version-1 policies a provisioning request signed and its response acknowledged. */\ninterface ProvisionedPrincipalPolicies {\n readonly adminGroup: PrincipalPolicyBundleResponse;\n readonly memberGroup: PrincipalPolicyBundleResponse;\n readonly organization: PrincipalPolicyBundleResponse;\n}\n\n/**\n * Records verified recovery progress for an organization's founding policy\n * heads, so the device's first scoped recovery of them needs no history read.\n * It is bound to the provisioning scope: the database the bootstrap committed\n * to and the identity that signed it. Failure leaves the online path.\n */\nexport type ProvisionedPrincipalHistoryPrimer = (input: {\n /** The database client the provisioning bootstrap committed to. */\n readonly database: ExecSqlClientLike;\n /** Whether the identity that provisioned is still the active one. */\n readonly isCurrent: () => boolean;\n readonly organizationId: string;\n readonly policies: ProvisionedPrincipalPolicies;\n readonly userId: string;\n}) => Promise<void>;\n\n/**\n * Serves only the acknowledged initial heads, each complete in one page. The\n * ordinary verifier still checks every signature, the directory binding and\n * strict Admins rules before any progress is saved.\n */\nfunction provisionedPolicyPages(\n policies: ProvisionedPrincipalPolicies,\n): PrincipalPolicyPageReader {\n const bundles = [\n policies.organization,\n policies.adminGroup,\n policies.memberGroup,\n ];\n return {\n async *getPrincipalPolicyPages(principalType, principalId, options = {}) {\n const bundle = bundles.find(\n ({ currentState }) =>\n currentState.principalType === principalType &&\n currentState.principalId === principalId,\n );\n if (\n !bundle ||\n options.resume !== undefined ||\n (options.afterVersion ?? 0) !== 0 ||\n (options.stateHash !== undefined &&\n options.stateHash !== bundle.currentState.stateHash)\n )\n throw new Error(\n \"Provisioned principal history holds only the acknowledged initial heads\",\n );\n yield {\n ok: true,\n data: {\n ...structuredClone(bundle),\n historyPage: { afterVersion: 0, nextAfterVersion: null },\n },\n };\n },\n };\n}\n\nasync function primeProvisionedPrincipalHistory(input: {\n readonly execSql: ExecSql;\n readonly organizationId: string;\n readonly policies: ProvisionedPrincipalPolicies;\n readonly protection: PrincipalPolicyHistoryProgressOptions;\n readonly resolveTrustedUserIdentity: TrustedUserIdentityResolver;\n readonly stillCurrent: () => boolean;\n}): Promise<void> {\n const { recover } = createPrincipalCurrentRecoveryBatch();\n const options = {\n historyReader: provisionedPolicyPages(input.policies),\n execSql: input.execSql,\n offline: false,\n organizationId: input.organizationId,\n protection: input.protection,\n resolveTrustedUserIdentity: input.resolveTrustedUserIdentity,\n stillCurrent: input.stillCurrent,\n };\n // Scoped recovery of each group also completes the directory and strict\n // Admins stages; Members reuses them through the shared batch.\n for (const group of [input.policies.adminGroup, input.policies.memberGroup])\n await recover({\n ...options,\n reference: principalPolicyReferenceFromBundle(group),\n });\n}\n\n/** The runtime seams priming reads; none of them writes durable state. */\ninterface ProvisionedPrincipalHistoryRuntime {\n readonly bindLease: () => PrincipalHistoryProtectionLease | undefined;\n /** The runtime executor, only while `database` is its ready database. */\n readonly execSqlFor: (database: ExecSqlClientLike) => ExecSql | null;\n readonly logError: (message: string | Error, cause?: unknown) => void;\n /** Read-only: the identity the trust store already pins for a user. */\n readonly loadPinnedIdentity: (\n execSql: ExecSql,\n userId: string,\n ) => Promise<TrustedUserIdentity | null>;\n readonly signingFingerprint: () => string | null;\n}\n\n/**\n * Binds priming to the exact provisioning scope, captured before any await:\n * the bootstrap's database and runtime executor, the identity whose key signed\n * the founding states, and a protection lease for that identity. Every later\n * step, and every progress write inside its transaction, rechecks that scope,\n * so a switched identity or database aborts priming without a durable write.\n * Priming never writes a trust pin; it only reads the founder's existing one.\n */\nexport function createProvisionedPrincipalHistoryPrimer(\n runtime: ProvisionedPrincipalHistoryRuntime,\n): ProvisionedPrincipalHistoryPrimer {\n return async (input) => {\n try {\n await primeInProvisioningScope(runtime, input);\n } catch (error) {\n runtime.logError(\n \"Provisioned principal history was not primed; recovery reads it online\",\n error,\n );\n }\n };\n}\n\nasync function primeInProvisioningScope(\n runtime: ProvisionedPrincipalHistoryRuntime,\n input: Parameters<ProvisionedPrincipalHistoryPrimer>[0],\n): Promise<void> {\n // Everything below is captured synchronously, before the first await.\n const founderFingerprint =\n input.policies.organization.currentState.signerUserKeyFingerprint;\n const execSql = runtime.execSqlFor(input.database);\n const scopeCurrent = () =>\n execSql !== null &&\n input.isCurrent() &&\n runtime.execSqlFor(input.database) === execSql &&\n runtime.signingFingerprint() === founderFingerprint;\n const lease = scopeCurrent() ? runtime.bindLease() : undefined;\n if (!execSql || !lease) return;\n const resolveTrustedUserIdentity: TrustedUserIdentityResolver = async (\n signerUserId,\n ) => {\n if (signerUserId !== input.userId) return null;\n assertProjectionVerificationCurrent(scopeCurrent);\n const identity = await runtime.loadPinnedIdentity(execSql, input.userId);\n assertProjectionVerificationCurrent(scopeCurrent);\n return identity?.signingKeyFingerprint === founderFingerprint\n ? identity\n : null;\n };\n await getOrCreatePrincipalPolicyCoordinator(execSql).queueRecovery(\n input.organizationId,\n () =>\n lease(({ protection, stillCurrent }) =>\n primeProvisionedPrincipalHistory({\n execSql,\n organizationId: input.organizationId,\n policies: input.policies,\n protection,\n resolveTrustedUserIdentity,\n // Progress writes check this inside their transactions.\n stillCurrent: () => stillCurrent() && scopeCurrent(),\n }),\n ),\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { bytesToBase64 } from "../../internal/encoding/index.js";
2
- import { buildInitialDocumentSyncRequest } from "../documents/initialSync.js";
2
+ import { buildInitialDocumentSyncRequest } from "../documents/sync/initialSync.js";
3
3
  import { createInitializedOrganizationProfileDocument, DEFAULT_PERSONAL_ORGANIZATION_PROFILE_NAME, } from "../organizations/organizationProfile.js";
4
4
  import { createInitializedRosterProfileDocument, DEFAULT_ROSTER_PROFILE_SELF_NICKNAME, } from "../organizations/rosterProfileContainer.js";
5
5
  async function buildProvisionedDocumentRequest(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"provisionedProfileDocument.js","sourceRoot":"","sources":["provisionedProfileDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,4CAA4C,EAC5C,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sCAAsC,EACtC,oCAAoC,GACrC,MAAM,yCAAyC,CAAC;AAQjD,KAAK,UAAU,+BAA+B,CAC5C,KAA8D;IAE9D,OAAO;QACL,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO;QAC1C,WAAW,EAAE,MAAM,+BAA+B,CAAC,KAAK,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,KAA8D;IAE9D,MAAM,WAAW,GAAG,MAAM,4CAA4C,CAAC;QACrE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,0CAA0C;KAC/D,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC;QACpD,GAAG,KAAK;QACR,aAAa,EAAE,WAAW,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAGC;IAED,MAAM,WAAW,GAAG,MAAM,sCAAsC,CAAC;QAC/D,sBAAsB,EAAE,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC;QACnE,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,oCAAoC;QAChE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC;QACpD,GAAG,KAAK;QACR,aAAa,EAAE,WAAW,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import { bytesToBase64 } from \"@tearleads/encoding\";\nimport type { ProvisionedDocumentRequest } from \"@tearleads/validators/request\";\nimport type { ContainerWriterProjectionResponse } from \"@tearleads/validators/response\";\nimport type {\n DocumentCreateAuthor,\n MaterializedDocumentCreatePlan,\n} from \"../../data/documents/shared/types\";\nimport { buildInitialDocumentSyncRequest } from \"../documents/initialSync\";\nimport {\n createInitializedOrganizationProfileDocument,\n DEFAULT_PERSONAL_ORGANIZATION_PROFILE_NAME,\n} from \"../organizations/organizationProfile\";\nimport {\n createInitializedRosterProfileDocument,\n DEFAULT_ROSTER_PROFILE_SELF_NICKNAME,\n} from \"../organizations/rosterProfileContainer\";\n\ninterface ProvisionedProfileInput {\n author: DocumentCreateAuthor;\n containerProjection: ContainerWriterProjectionResponse;\n materializedDocument: MaterializedDocumentCreatePlan;\n}\n\nasync function buildProvisionedDocumentRequest(\n input: ProvisionedProfileInput & { initialUpdate: Uint8Array },\n): Promise<ProvisionedDocumentRequest> {\n return {\n ...input.materializedDocument.plan.request,\n initialSync: await buildInitialDocumentSyncRequest(input),\n };\n}\n\nexport async function buildProvisionedOrganizationProfile(\n input: ProvisionedProfileInput & { name?: string | undefined },\n) {\n const initialized = await createInitializedOrganizationProfileDocument({\n name: input.name ?? DEFAULT_PERSONAL_ORGANIZATION_PROFILE_NAME,\n });\n const request = await buildProvisionedDocumentRequest({\n ...input,\n initialUpdate: initialized.initialUpdate,\n });\n return { ...initialized, request };\n}\n\nexport async function buildProvisionedRosterProfile(\n input: ProvisionedProfileInput & {\n encapsulationPublicKey: Uint8Array;\n nickname?: string | undefined;\n },\n) {\n const initialized = await createInitializedRosterProfileDocument({\n encapsulationPublicKey: bytesToBase64(input.encapsulationPublicKey),\n isSelf: true,\n nickname: input.nickname ?? DEFAULT_ROSTER_PROFILE_SELF_NICKNAME,\n userId: input.author.signerUserId,\n });\n const request = await buildProvisionedDocumentRequest({\n ...input,\n initialUpdate: initialized.initialUpdate,\n });\n return { ...initialized, request };\n}\n"]}
1
+ {"version":3,"file":"provisionedProfileDocument.js","sourceRoot":"","sources":["provisionedProfileDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACL,4CAA4C,EAC5C,0CAA0C,GAC3C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sCAAsC,EACtC,oCAAoC,GACrC,MAAM,yCAAyC,CAAC;AAQjD,KAAK,UAAU,+BAA+B,CAC5C,KAA8D;IAE9D,OAAO;QACL,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO;QAC1C,WAAW,EAAE,MAAM,+BAA+B,CAAC,KAAK,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,KAA8D;IAE9D,MAAM,WAAW,GAAG,MAAM,4CAA4C,CAAC;QACrE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,0CAA0C;KAC/D,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC;QACpD,GAAG,KAAK;QACR,aAAa,EAAE,WAAW,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAGC;IAED,MAAM,WAAW,GAAG,MAAM,sCAAsC,CAAC;QAC/D,sBAAsB,EAAE,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC;QACnE,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,oCAAoC;QAChE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC;QACpD,GAAG,KAAK;QACR,aAAa,EAAE,WAAW,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import { bytesToBase64 } from \"@tearleads/encoding\";\nimport type { ProvisionedDocumentRequest } from \"@tearleads/validators/request\";\nimport type { ContainerWriterProjectionResponse } from \"@tearleads/validators/response\";\nimport type {\n DocumentCreateAuthor,\n MaterializedDocumentCreatePlan,\n} from \"../../data/documents/shared/types\";\nimport { buildInitialDocumentSyncRequest } from \"../documents/sync/initialSync\";\nimport {\n createInitializedOrganizationProfileDocument,\n DEFAULT_PERSONAL_ORGANIZATION_PROFILE_NAME,\n} from \"../organizations/organizationProfile\";\nimport {\n createInitializedRosterProfileDocument,\n DEFAULT_ROSTER_PROFILE_SELF_NICKNAME,\n} from \"../organizations/rosterProfileContainer\";\n\ninterface ProvisionedProfileInput {\n author: DocumentCreateAuthor;\n containerProjection: ContainerWriterProjectionResponse;\n materializedDocument: MaterializedDocumentCreatePlan;\n}\n\nasync function buildProvisionedDocumentRequest(\n input: ProvisionedProfileInput & { initialUpdate: Uint8Array },\n): Promise<ProvisionedDocumentRequest> {\n return {\n ...input.materializedDocument.plan.request,\n initialSync: await buildInitialDocumentSyncRequest(input),\n };\n}\n\nexport async function buildProvisionedOrganizationProfile(\n input: ProvisionedProfileInput & { name?: string | undefined },\n) {\n const initialized = await createInitializedOrganizationProfileDocument({\n name: input.name ?? DEFAULT_PERSONAL_ORGANIZATION_PROFILE_NAME,\n });\n const request = await buildProvisionedDocumentRequest({\n ...input,\n initialUpdate: initialized.initialUpdate,\n });\n return { ...initialized, request };\n}\n\nexport async function buildProvisionedRosterProfile(\n input: ProvisionedProfileInput & {\n encapsulationPublicKey: Uint8Array;\n nickname?: string | undefined;\n },\n) {\n const initialized = await createInitializedRosterProfileDocument({\n encapsulationPublicKey: bytesToBase64(input.encapsulationPublicKey),\n isSelf: true,\n nickname: input.nickname ?? DEFAULT_ROSTER_PROFILE_SELF_NICKNAME,\n userId: input.author.signerUserId,\n });\n const request = await buildProvisionedDocumentRequest({\n ...input,\n initialUpdate: initialized.initialUpdate,\n });\n return { ...initialized, request };\n}\n"]}
@@ -2,10 +2,10 @@ import { base64ToBytes } from "../../internal/encoding/index.js";
2
2
  import { createInitializedContainerMetadataDocument } from "../../data/containers/containerMetadataDocument.js";
3
3
  import { deriveStableDocumentId } from "../../data/documents/shared/stableDocumentId.js";
4
4
  import { deriveContainerSystemSlot, } from "../container-contents/systemSlot.js";
5
- import { buildContainerCreatePlan, childContainerWriterProjectionFromCreatePlan, } from "../containers/child/create.js";
5
+ import { buildContainerCreatePlan, childContainerWriterProjectionFromCreatePlan, } from "../containers/child/create/index.js";
6
6
  import { buildRootContainerCreatePlan, rootContainerWriterProjectionFromCreatePlan, } from "../containers/root/create.js";
7
- import { buildMaterializedDocumentCreatePlan } from "../documents/create.js";
8
- import { buildInitialDocumentSyncRequest } from "../documents/initialSync.js";
7
+ import { buildMaterializedDocumentCreatePlan } from "../documents/create/index.js";
8
+ import { buildInitialDocumentSyncRequest } from "../documents/sync/initialSync.js";
9
9
  import { getOrganizationProfileDocumentLocalId } from "../organizations/organizationProfile.js";
10
10
  import { deriveOrganizationMetadataContainerSystemSlot, deriveOrganizationRosterProfileContainerSystemSlot, getRosterProfileDocumentLocalId, ORGANIZATION_METADATA_CONTAINER_NAME, ORGANIZATION_ROSTER_PROFILE_CONTAINER_NAME, } from "../organizations/rosterProfileContainer.js";
11
11
  import { buildProvisionedOrganizationProfile, buildProvisionedRosterProfile, } from "./provisionedProfileDocument.js";
@@ -1 +1 @@
1
- {"version":3,"file":"provisioningBootstrapBuilders.js","sourceRoot":"","sources":["provisioningBootstrapBuilders.ts"],"names":[],"mappings":"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","sourcesContent":["import { base64ToBytes } from \"@tearleads/encoding\";\nimport type { ContainerSystemSlot } from \"@tearleads/validators/containerSystemSlot\";\nimport type { CreateOrganizationGroupRequest } from \"@tearleads/validators/request\";\nimport { createInitializedContainerMetadataDocument } from \"../../data/containers/containerMetadataDocument\";\nimport { deriveStableDocumentId } from \"../../data/documents/shared/stableDocumentId\";\nimport {\n type ContainerSystemSlotDefinition,\n deriveContainerSystemSlot,\n} from \"../container-contents/systemSlot\";\nimport {\n buildContainerCreatePlan,\n childContainerWriterProjectionFromCreatePlan,\n} from \"../containers/child/create\";\nimport {\n buildRootContainerCreatePlan,\n rootContainerWriterProjectionFromCreatePlan,\n} from \"../containers/root/create\";\nimport type { resolveDocumentCreateAuthor } from \"../documents/author\";\nimport { buildMaterializedDocumentCreatePlan } from \"../documents/create\";\nimport { buildInitialDocumentSyncRequest } from \"../documents/initialSync\";\nimport { getOrganizationProfileDocumentLocalId } from \"../organizations/organizationProfile\";\nimport {\n deriveOrganizationMetadataContainerSystemSlot,\n deriveOrganizationRosterProfileContainerSystemSlot,\n getRosterProfileDocumentLocalId,\n ORGANIZATION_METADATA_CONTAINER_NAME,\n ORGANIZATION_ROSTER_PROFILE_CONTAINER_NAME,\n} from \"../organizations/rosterProfileContainer\";\nimport type {\n InitialOrganizationMetadataBootstrap,\n InitialRootContainerCreatePlan,\n InitialRosterProfileBootstrap,\n InitialSystemContainerBootstrap,\n InitialSystemContainerCreatePlan,\n} from \"./organizationProvisioningArtifacts\";\nimport {\n buildProvisionedOrganizationProfile,\n buildProvisionedRosterProfile,\n} from \"./provisionedProfileDocument\";\nimport { verifiedPrincipalPolicyFromInitialGroupRequest } from \"./registrationPrincipalPolicyPersistence\";\nimport type { createInitialRootMetadataBootstrap } from \"./rootMetadataBootstrap\";\n\ntype InitialRootContainerProjection = ReturnType<\n typeof rootContainerWriterProjectionFromCreatePlan\n>;\n\n/**\n * An app-owned system container to provision atomically with a new organization\n * (e.g. a trash bin). The client-sdk is agnostic to what these are:\n * the caller (the app, which owns the mini-app slot namespaces) declares each\n * one, and the provisioning path derives its per-user system slot, builds a\n * signed Admins-scoped child of root, and links it into the same transaction as\n * the rest of the organization bootstrap. The behavioral rules that govern a\n * system container are resolved client-side by slot, so provisioning needs only\n * the slot definition, display name, and icon — no rules travel to the server.\n */\nexport interface ProvisionedSystemContainerSpec {\n readonly slotDefinition: ContainerSystemSlotDefinition;\n readonly name: string;\n readonly icon: string | null;\n}\n\ninterface InitialOrganizationMetadataBootstrapInput {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n containerId: string;\n initialAdminGroup: CreateOrganizationGroupRequest;\n initialMemberGroup: CreateOrganizationGroupRequest;\n organizationProfileName?: string | undefined;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n targetSecretKey: Uint8Array;\n}\n\ninterface InitialRosterProfileInput {\n author: InitialOrganizationMetadataBootstrapInput[\"author\"];\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n encapsulationPublicKey: Uint8Array;\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n rosterProfileNickname?: string | undefined;\n targetSecretKey: Uint8Array;\n}\n\ninterface ProvisionedChildContainerCore {\n containerId: string;\n containerMetadataDocument: Awaited<\n ReturnType<typeof buildMaterializedDocumentCreatePlan>\n >;\n containerMetadataInitialUpdate: Uint8Array;\n containerPlan: InitialSystemContainerCreatePlan;\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n containerRequest: {\n systemSlot: ContainerSystemSlot;\n container: InitialSystemContainerCreatePlan[\"plan\"][\"request\"];\n initialMetadataSync: Awaited<\n ReturnType<typeof buildInitialDocumentSyncRequest>\n >;\n metadataDocument: Awaited<\n ReturnType<typeof buildMaterializedDocumentCreatePlan>\n >[\"plan\"][\"request\"];\n };\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n systemSlot: ContainerSystemSlot;\n}\n\n/**\n * The shared spine of every provisioned system child container: mint the\n * container and its metadata document under root, project the writer view,\n * and assemble the create request. Callers differ only in slot derivation,\n * display metadata, authorizing policies, an optional managed read grant, and\n * what they attach afterwards (roster/org profile documents).\n */\nasync function buildProvisionedChildContainerCore(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n containerId?: string | undefined;\n icon: string | null;\n managedPrincipalGrant?: Parameters<\n typeof buildContainerCreatePlan\n >[0][\"managedPrincipalGrant\"];\n name: string;\n principalPolicies: Parameters<\n typeof buildContainerCreatePlan\n >[0][\"principalPolicies\"];\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n systemSlot: ContainerSystemSlot;\n targetSecretKey: Uint8Array;\n independentMetadataGroups?: {\n adminGroup: CreateOrganizationGroupRequest;\n memberGroup: CreateOrganizationGroupRequest;\n };\n}): Promise<ProvisionedChildContainerCore> {\n const containerId = input.containerId ?? crypto.randomUUID();\n const { initialUpdate } = await createInitializedContainerMetadataDocument(\n containerId,\n {\n icon: input.icon,\n name: input.name,\n },\n );\n const containerKey = crypto.getRandomValues(new Uint8Array(32));\n const containerPlan: InitialSystemContainerCreatePlan = {\n containerKey,\n plan: input.independentMetadataGroups\n ? (\n await buildRootContainerCreatePlan({\n ...input.independentMetadataGroups,\n author: input.author,\n containerId,\n containerKey,\n metadataDocumentId: containerId,\n systemSlot: input.systemSlot,\n recipientEncapsulationPublicKey: base64ToBytes(\n input.independentMetadataGroups.adminGroup.initialGroupPolicy\n .state.encapsulationPublicKey,\n ),\n })\n ).plan\n : await buildContainerCreatePlan({\n author: input.author,\n containerId,\n containerKey,\n ...(input.managedPrincipalGrant\n ? { managedPrincipalGrant: input.managedPrincipalGrant }\n : {}),\n metadataDocumentId: containerId,\n systemSlot: input.systemSlot,\n parentProjection: input.rootContainerProjection,\n principalPolicies: input.principalPolicies,\n }),\n };\n const containerProjection = input.independentMetadataGroups\n ? rootContainerWriterProjectionFromCreatePlan(containerPlan.plan)\n : childContainerWriterProjectionFromCreatePlan({\n materializedPlan: containerPlan,\n parentProjection: input.rootContainerProjection,\n });\n const knownContainerKeks = new Map([\n [containerPlan.plan.containerKeyEpochId, containerPlan.containerKey],\n ]);\n const containerMetadataDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection,\n documentId: containerPlan.plan.metadataDocumentId,\n knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n const initialMetadataSync = await buildInitialDocumentSyncRequest({\n author: input.author,\n containerProjection,\n initialUpdate,\n materializedDocument: containerMetadataDocument,\n });\n return {\n containerId,\n containerMetadataDocument,\n containerMetadataInitialUpdate: initialUpdate,\n containerPlan,\n containerProjection,\n containerRequest: {\n systemSlot: input.systemSlot,\n container: containerPlan.plan.request,\n initialMetadataSync,\n metadataDocument: containerMetadataDocument.plan.request,\n },\n knownContainerKeks,\n systemSlot: input.systemSlot,\n };\n}\n\nexport async function buildInitialRosterProfileBootstrap(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n encapsulationPublicKey: Uint8Array;\n initialAdminGroup: CreateOrganizationGroupRequest;\n rosterProfileNickname?: string | undefined;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n targetSecretKey: Uint8Array;\n}): Promise<InitialRosterProfileBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n icon: null,\n name: ORGANIZATION_ROSTER_PROFILE_CONTAINER_NAME,\n principalPolicies: [\n await verifiedPrincipalPolicyFromInitialGroupRequest(\n input.initialAdminGroup,\n ),\n ],\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveOrganizationRosterProfileContainerSystemSlot({\n organizationId: input.author.organizationId,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n const { profile, rosterProfileDocument } = await buildInitialRosterProfile({\n author: input.author,\n containerProjection: core.containerProjection,\n encapsulationPublicKey: input.encapsulationPublicKey,\n knownContainerKeks: core.knownContainerKeks,\n rosterProfileNickname: input.rosterProfileNickname,\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n profileDocument: rosterProfileDocument,\n profileDocumentInitialUpdate: profile.initialUpdate,\n profileDocumentRequest: profile.request,\n systemSlot: core.systemSlot,\n };\n}\n\nasync function buildInitialRosterProfile(input: InitialRosterProfileInput) {\n const rosterProfileDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection: input.containerProjection,\n documentId: await deriveStableDocumentId(\n getRosterProfileDocumentLocalId({\n organizationId: input.author.organizationId,\n userId: input.author.signerUserId,\n }),\n ),\n knownContainerKeks: input.knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n const profile = await buildProvisionedRosterProfile({\n author: input.author,\n containerProjection: input.containerProjection,\n encapsulationPublicKey: input.encapsulationPublicKey,\n materializedDocument: rosterProfileDocument,\n nickname: input.rosterProfileNickname,\n });\n return { profile, rosterProfileDocument };\n}\n\nexport async function buildInitialSystemContainerBootstrap(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n initialAdminGroup: CreateOrganizationGroupRequest;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n signingPrivateKey: Uint8Array;\n spec: ProvisionedSystemContainerSpec;\n targetSecretKey: Uint8Array;\n}): Promise<InitialSystemContainerBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n icon: input.spec.icon,\n name: input.spec.name,\n principalPolicies: [\n await verifiedPrincipalPolicyFromInitialGroupRequest(\n input.initialAdminGroup,\n ),\n ],\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveContainerSystemSlot({\n definition: input.spec.slotDefinition,\n secretKey: input.signingPrivateKey,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n icon: input.spec.icon,\n name: input.spec.name,\n systemSlot: core.systemSlot,\n };\n}\n\nfunction stableOrganizationProfileId(organizationId: string): Promise<string> {\n return deriveStableDocumentId(\n getOrganizationProfileDocumentLocalId({ organizationId }),\n );\n}\n\nasync function buildInitialOrganizationProfile(input: {\n author: InitialOrganizationMetadataBootstrapInput[\"author\"];\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n organizationProfileName?: string | undefined;\n targetSecretKey: Uint8Array;\n}) {\n const organizationProfileDocument = await buildMaterializedDocumentCreatePlan(\n {\n author: input.author,\n containerProjection: input.containerProjection,\n documentId: await stableOrganizationProfileId(\n input.author.organizationId,\n ),\n knownContainerKeks: input.knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n },\n );\n const profile = await buildProvisionedOrganizationProfile({\n author: input.author,\n containerProjection: input.containerProjection,\n materializedDocument: organizationProfileDocument,\n name: input.organizationProfileName,\n });\n return { organizationProfileDocument, profile };\n}\n\n/**\n * Organization labels use an independent system root with Admins/admin and\n * Members/read grants. Personal root shares and rotations cannot expose or\n * strand organization metadata; Members changes still rotate its own KEK.\n */\nexport async function buildInitialOrganizationMetadataBootstrap(\n input: InitialOrganizationMetadataBootstrapInput,\n): Promise<InitialOrganizationMetadataBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n containerId: input.containerId,\n icon: null,\n independentMetadataGroups: {\n adminGroup: input.initialAdminGroup,\n memberGroup: input.initialMemberGroup,\n },\n name: ORGANIZATION_METADATA_CONTAINER_NAME,\n // Both reserved groups receive explicit grants on the independent root.\n principalPolicies: await Promise.all([\n verifiedPrincipalPolicyFromInitialGroupRequest(input.initialAdminGroup),\n verifiedPrincipalPolicyFromInitialGroupRequest(input.initialMemberGroup),\n ]),\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveOrganizationMetadataContainerSystemSlot({\n organizationId: input.author.organizationId,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n const { organizationProfileDocument, profile } =\n await buildInitialOrganizationProfile({\n author: input.author,\n containerProjection: core.containerProjection,\n knownContainerKeks: core.knownContainerKeks,\n organizationProfileName: input.organizationProfileName,\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n organizationProfileDocument,\n organizationProfileDocumentRequest: profile.request,\n organizationProfileSnapshot: profile.snapshot,\n systemSlot: core.systemSlot,\n };\n}\n\nexport async function buildInitialRootProvisioning(input: {\n adminGroup: CreateOrganizationGroupRequest;\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n bootstrap: Awaited<ReturnType<typeof createInitialRootMetadataBootstrap>>;\n recipientEncapsulationPublicKey: Uint8Array;\n rootContainerId: string;\n targetSecretKey: Uint8Array;\n}) {\n const rootContainer = await buildRootContainerCreatePlan({\n adminGroup: input.adminGroup,\n author: input.author,\n containerId: input.rootContainerId,\n metadataDocumentId: input.bootstrap.metadataDocumentId,\n recipientEncapsulationPublicKey: input.recipientEncapsulationPublicKey,\n });\n const rootContainerProjection = rootContainerWriterProjectionFromCreatePlan(\n rootContainer.plan,\n );\n const rootMetadataDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection: rootContainerProjection,\n documentId: input.bootstrap.metadataDocumentId,\n knownContainerKeks: new Map([\n [rootContainer.plan.containerKeyEpochId, rootContainer.containerKey],\n ]),\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n return {\n rootContainer,\n rootContainerProjection,\n rootMetadataDocument,\n rootMetadataDocumentRequest: {\n ...rootMetadataDocument.plan.request,\n initialSync: await buildInitialDocumentSyncRequest({\n author: input.author,\n containerProjection: rootContainerProjection,\n initialUpdate: input.bootstrap.initialUpdate,\n materializedDocument: rootMetadataDocument,\n }),\n },\n };\n}\n"]}
1
+ {"version":3,"file":"provisioningBootstrapBuilders.js","sourceRoot":"","sources":["provisioningBootstrapBuilders.ts"],"names":[],"mappings":"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","sourcesContent":["import { base64ToBytes } from \"@tearleads/encoding\";\nimport type { ContainerSystemSlot } from \"@tearleads/validators/containerSystemSlot\";\nimport type { CreateOrganizationGroupRequest } from \"@tearleads/validators/request\";\nimport { createInitializedContainerMetadataDocument } from \"../../data/containers/containerMetadataDocument\";\nimport { deriveStableDocumentId } from \"../../data/documents/shared/stableDocumentId\";\nimport {\n type ContainerSystemSlotDefinition,\n deriveContainerSystemSlot,\n} from \"../container-contents/systemSlot\";\nimport {\n buildContainerCreatePlan,\n childContainerWriterProjectionFromCreatePlan,\n} from \"../containers/child/create\";\nimport {\n buildRootContainerCreatePlan,\n rootContainerWriterProjectionFromCreatePlan,\n} from \"../containers/root/create\";\nimport type { resolveDocumentCreateAuthor } from \"../documents/author\";\nimport { buildMaterializedDocumentCreatePlan } from \"../documents/create\";\nimport { buildInitialDocumentSyncRequest } from \"../documents/sync/initialSync\";\nimport { getOrganizationProfileDocumentLocalId } from \"../organizations/organizationProfile\";\nimport {\n deriveOrganizationMetadataContainerSystemSlot,\n deriveOrganizationRosterProfileContainerSystemSlot,\n getRosterProfileDocumentLocalId,\n ORGANIZATION_METADATA_CONTAINER_NAME,\n ORGANIZATION_ROSTER_PROFILE_CONTAINER_NAME,\n} from \"../organizations/rosterProfileContainer\";\nimport type {\n InitialOrganizationMetadataBootstrap,\n InitialRootContainerCreatePlan,\n InitialRosterProfileBootstrap,\n InitialSystemContainerBootstrap,\n InitialSystemContainerCreatePlan,\n} from \"./organizationProvisioningArtifacts\";\nimport {\n buildProvisionedOrganizationProfile,\n buildProvisionedRosterProfile,\n} from \"./provisionedProfileDocument\";\nimport { verifiedPrincipalPolicyFromInitialGroupRequest } from \"./registrationPrincipalPolicyPersistence\";\nimport type { createInitialRootMetadataBootstrap } from \"./rootMetadataBootstrap\";\n\ntype InitialRootContainerProjection = ReturnType<\n typeof rootContainerWriterProjectionFromCreatePlan\n>;\n\n/**\n * An app-owned system container to provision atomically with a new organization\n * (e.g. a trash bin). The client-sdk is agnostic to what these are:\n * the caller (the app, which owns the mini-app slot namespaces) declares each\n * one, and the provisioning path derives its per-user system slot, builds a\n * signed Admins-scoped child of root, and links it into the same transaction as\n * the rest of the organization bootstrap. The behavioral rules that govern a\n * system container are resolved client-side by slot, so provisioning needs only\n * the slot definition, display name, and icon — no rules travel to the server.\n */\nexport interface ProvisionedSystemContainerSpec {\n readonly slotDefinition: ContainerSystemSlotDefinition;\n readonly name: string;\n readonly icon: string | null;\n}\n\ninterface InitialOrganizationMetadataBootstrapInput {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n containerId: string;\n initialAdminGroup: CreateOrganizationGroupRequest;\n initialMemberGroup: CreateOrganizationGroupRequest;\n organizationProfileName?: string | undefined;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n targetSecretKey: Uint8Array;\n}\n\ninterface InitialRosterProfileInput {\n author: InitialOrganizationMetadataBootstrapInput[\"author\"];\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n encapsulationPublicKey: Uint8Array;\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n rosterProfileNickname?: string | undefined;\n targetSecretKey: Uint8Array;\n}\n\ninterface ProvisionedChildContainerCore {\n containerId: string;\n containerMetadataDocument: Awaited<\n ReturnType<typeof buildMaterializedDocumentCreatePlan>\n >;\n containerMetadataInitialUpdate: Uint8Array;\n containerPlan: InitialSystemContainerCreatePlan;\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n containerRequest: {\n systemSlot: ContainerSystemSlot;\n container: InitialSystemContainerCreatePlan[\"plan\"][\"request\"];\n initialMetadataSync: Awaited<\n ReturnType<typeof buildInitialDocumentSyncRequest>\n >;\n metadataDocument: Awaited<\n ReturnType<typeof buildMaterializedDocumentCreatePlan>\n >[\"plan\"][\"request\"];\n };\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n systemSlot: ContainerSystemSlot;\n}\n\n/**\n * The shared spine of every provisioned system child container: mint the\n * container and its metadata document under root, project the writer view,\n * and assemble the create request. Callers differ only in slot derivation,\n * display metadata, authorizing policies, an optional managed read grant, and\n * what they attach afterwards (roster/org profile documents).\n */\nasync function buildProvisionedChildContainerCore(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n containerId?: string | undefined;\n icon: string | null;\n managedPrincipalGrant?: Parameters<\n typeof buildContainerCreatePlan\n >[0][\"managedPrincipalGrant\"];\n name: string;\n principalPolicies: Parameters<\n typeof buildContainerCreatePlan\n >[0][\"principalPolicies\"];\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n systemSlot: ContainerSystemSlot;\n targetSecretKey: Uint8Array;\n independentMetadataGroups?: {\n adminGroup: CreateOrganizationGroupRequest;\n memberGroup: CreateOrganizationGroupRequest;\n };\n}): Promise<ProvisionedChildContainerCore> {\n const containerId = input.containerId ?? crypto.randomUUID();\n const { initialUpdate } = await createInitializedContainerMetadataDocument(\n containerId,\n {\n icon: input.icon,\n name: input.name,\n },\n );\n const containerKey = crypto.getRandomValues(new Uint8Array(32));\n const containerPlan: InitialSystemContainerCreatePlan = {\n containerKey,\n plan: input.independentMetadataGroups\n ? (\n await buildRootContainerCreatePlan({\n ...input.independentMetadataGroups,\n author: input.author,\n containerId,\n containerKey,\n metadataDocumentId: containerId,\n systemSlot: input.systemSlot,\n recipientEncapsulationPublicKey: base64ToBytes(\n input.independentMetadataGroups.adminGroup.initialGroupPolicy\n .state.encapsulationPublicKey,\n ),\n })\n ).plan\n : await buildContainerCreatePlan({\n author: input.author,\n containerId,\n containerKey,\n ...(input.managedPrincipalGrant\n ? { managedPrincipalGrant: input.managedPrincipalGrant }\n : {}),\n metadataDocumentId: containerId,\n systemSlot: input.systemSlot,\n parentProjection: input.rootContainerProjection,\n principalPolicies: input.principalPolicies,\n }),\n };\n const containerProjection = input.independentMetadataGroups\n ? rootContainerWriterProjectionFromCreatePlan(containerPlan.plan)\n : childContainerWriterProjectionFromCreatePlan({\n materializedPlan: containerPlan,\n parentProjection: input.rootContainerProjection,\n });\n const knownContainerKeks = new Map([\n [containerPlan.plan.containerKeyEpochId, containerPlan.containerKey],\n ]);\n const containerMetadataDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection,\n documentId: containerPlan.plan.metadataDocumentId,\n knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n const initialMetadataSync = await buildInitialDocumentSyncRequest({\n author: input.author,\n containerProjection,\n initialUpdate,\n materializedDocument: containerMetadataDocument,\n });\n return {\n containerId,\n containerMetadataDocument,\n containerMetadataInitialUpdate: initialUpdate,\n containerPlan,\n containerProjection,\n containerRequest: {\n systemSlot: input.systemSlot,\n container: containerPlan.plan.request,\n initialMetadataSync,\n metadataDocument: containerMetadataDocument.plan.request,\n },\n knownContainerKeks,\n systemSlot: input.systemSlot,\n };\n}\n\nexport async function buildInitialRosterProfileBootstrap(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n encapsulationPublicKey: Uint8Array;\n initialAdminGroup: CreateOrganizationGroupRequest;\n rosterProfileNickname?: string | undefined;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n targetSecretKey: Uint8Array;\n}): Promise<InitialRosterProfileBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n icon: null,\n name: ORGANIZATION_ROSTER_PROFILE_CONTAINER_NAME,\n principalPolicies: [\n await verifiedPrincipalPolicyFromInitialGroupRequest(\n input.initialAdminGroup,\n ),\n ],\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveOrganizationRosterProfileContainerSystemSlot({\n organizationId: input.author.organizationId,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n const { profile, rosterProfileDocument } = await buildInitialRosterProfile({\n author: input.author,\n containerProjection: core.containerProjection,\n encapsulationPublicKey: input.encapsulationPublicKey,\n knownContainerKeks: core.knownContainerKeks,\n rosterProfileNickname: input.rosterProfileNickname,\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n profileDocument: rosterProfileDocument,\n profileDocumentInitialUpdate: profile.initialUpdate,\n profileDocumentRequest: profile.request,\n systemSlot: core.systemSlot,\n };\n}\n\nasync function buildInitialRosterProfile(input: InitialRosterProfileInput) {\n const rosterProfileDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection: input.containerProjection,\n documentId: await deriveStableDocumentId(\n getRosterProfileDocumentLocalId({\n organizationId: input.author.organizationId,\n userId: input.author.signerUserId,\n }),\n ),\n knownContainerKeks: input.knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n const profile = await buildProvisionedRosterProfile({\n author: input.author,\n containerProjection: input.containerProjection,\n encapsulationPublicKey: input.encapsulationPublicKey,\n materializedDocument: rosterProfileDocument,\n nickname: input.rosterProfileNickname,\n });\n return { profile, rosterProfileDocument };\n}\n\nexport async function buildInitialSystemContainerBootstrap(input: {\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n initialAdminGroup: CreateOrganizationGroupRequest;\n rootContainer: InitialRootContainerCreatePlan;\n rootContainerProjection: InitialRootContainerProjection;\n signingPrivateKey: Uint8Array;\n spec: ProvisionedSystemContainerSpec;\n targetSecretKey: Uint8Array;\n}): Promise<InitialSystemContainerBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n icon: input.spec.icon,\n name: input.spec.name,\n principalPolicies: [\n await verifiedPrincipalPolicyFromInitialGroupRequest(\n input.initialAdminGroup,\n ),\n ],\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveContainerSystemSlot({\n definition: input.spec.slotDefinition,\n secretKey: input.signingPrivateKey,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n icon: input.spec.icon,\n name: input.spec.name,\n systemSlot: core.systemSlot,\n };\n}\n\nfunction stableOrganizationProfileId(organizationId: string): Promise<string> {\n return deriveStableDocumentId(\n getOrganizationProfileDocumentLocalId({ organizationId }),\n );\n}\n\nasync function buildInitialOrganizationProfile(input: {\n author: InitialOrganizationMetadataBootstrapInput[\"author\"];\n containerProjection: ReturnType<\n typeof childContainerWriterProjectionFromCreatePlan\n >;\n knownContainerKeks: ReadonlyMap<string, Uint8Array>;\n organizationProfileName?: string | undefined;\n targetSecretKey: Uint8Array;\n}) {\n const organizationProfileDocument = await buildMaterializedDocumentCreatePlan(\n {\n author: input.author,\n containerProjection: input.containerProjection,\n documentId: await stableOrganizationProfileId(\n input.author.organizationId,\n ),\n knownContainerKeks: input.knownContainerKeks,\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n },\n );\n const profile = await buildProvisionedOrganizationProfile({\n author: input.author,\n containerProjection: input.containerProjection,\n materializedDocument: organizationProfileDocument,\n name: input.organizationProfileName,\n });\n return { organizationProfileDocument, profile };\n}\n\n/**\n * Organization labels use an independent system root with Admins/admin and\n * Members/read grants. Personal root shares and rotations cannot expose or\n * strand organization metadata; Members changes still rotate its own KEK.\n */\nexport async function buildInitialOrganizationMetadataBootstrap(\n input: InitialOrganizationMetadataBootstrapInput,\n): Promise<InitialOrganizationMetadataBootstrap> {\n const core = await buildProvisionedChildContainerCore({\n author: input.author,\n containerId: input.containerId,\n icon: null,\n independentMetadataGroups: {\n adminGroup: input.initialAdminGroup,\n memberGroup: input.initialMemberGroup,\n },\n name: ORGANIZATION_METADATA_CONTAINER_NAME,\n // Both reserved groups receive explicit grants on the independent root.\n principalPolicies: await Promise.all([\n verifiedPrincipalPolicyFromInitialGroupRequest(input.initialAdminGroup),\n verifiedPrincipalPolicyFromInitialGroupRequest(input.initialMemberGroup),\n ]),\n rootContainer: input.rootContainer,\n rootContainerProjection: input.rootContainerProjection,\n systemSlot: await deriveOrganizationMetadataContainerSystemSlot({\n organizationId: input.author.organizationId,\n }),\n targetSecretKey: input.targetSecretKey,\n });\n const { organizationProfileDocument, profile } =\n await buildInitialOrganizationProfile({\n author: input.author,\n containerProjection: core.containerProjection,\n knownContainerKeks: core.knownContainerKeks,\n organizationProfileName: input.organizationProfileName,\n targetSecretKey: input.targetSecretKey,\n });\n return {\n containerId: core.containerId,\n containerMetadataDocument: core.containerMetadataDocument,\n containerMetadataInitialUpdate: core.containerMetadataInitialUpdate,\n containerPlan: core.containerPlan,\n containerRequest: core.containerRequest,\n organizationProfileDocument,\n organizationProfileDocumentRequest: profile.request,\n organizationProfileSnapshot: profile.snapshot,\n systemSlot: core.systemSlot,\n };\n}\n\nexport async function buildInitialRootProvisioning(input: {\n adminGroup: CreateOrganizationGroupRequest;\n author: NonNullable<ReturnType<typeof resolveDocumentCreateAuthor>>;\n bootstrap: Awaited<ReturnType<typeof createInitialRootMetadataBootstrap>>;\n recipientEncapsulationPublicKey: Uint8Array;\n rootContainerId: string;\n targetSecretKey: Uint8Array;\n}) {\n const rootContainer = await buildRootContainerCreatePlan({\n adminGroup: input.adminGroup,\n author: input.author,\n containerId: input.rootContainerId,\n metadataDocumentId: input.bootstrap.metadataDocumentId,\n recipientEncapsulationPublicKey: input.recipientEncapsulationPublicKey,\n });\n const rootContainerProjection = rootContainerWriterProjectionFromCreatePlan(\n rootContainer.plan,\n );\n const rootMetadataDocument = await buildMaterializedDocumentCreatePlan({\n author: input.author,\n containerProjection: rootContainerProjection,\n documentId: input.bootstrap.metadataDocumentId,\n knownContainerKeks: new Map([\n [rootContainer.plan.containerKeyEpochId, rootContainer.containerKey],\n ]),\n targetSecretKey: input.targetSecretKey,\n trustedLocalProjection: true,\n });\n return {\n rootContainer,\n rootContainerProjection,\n rootMetadataDocument,\n rootMetadataDocumentRequest: {\n ...rootMetadataDocument.plan.request,\n initialSync: await buildInitialDocumentSyncRequest({\n author: input.author,\n containerProjection: rootContainerProjection,\n initialUpdate: input.bootstrap.initialUpdate,\n materializedDocument: rootMetadataDocument,\n }),\n },\n };\n}\n"]}
@@ -3,8 +3,8 @@ import { bytesToBase64 } from "../../internal/encoding/index.js";
3
3
  import { encodeOrganizationAuthorityDescriptor } from "../../data/principals/organizationAuthorityDescriptor.js";
4
4
  import { validateUserIdentityKeys } from "../../data/trustedUserIdentity/index.js";
5
5
  import { resolveDocumentCreateAuthor } from "../documents/author.js";
6
- import { groupPolicyMutationHead } from "../organizations/groupPolicyMutationHead.js";
7
- import { buildInitialGroupPolicyRequest, buildInitialMemberGroupPolicyRequest, } from "../organizations/principalPolicy.js";
6
+ import { groupPolicyMutationHead } from "../organizations/groupPolicy/groupPolicyMutationHead.js";
7
+ import { buildInitialGroupPolicyRequest, buildInitialMemberGroupPolicyRequest, } from "../organizations/principalPolicy/index.js";
8
8
  import { persistOrganizationProvisioningState } from "./organizationProvisioningPersistence.js";
9
9
  import { buildInitialOrganizationMetadataBootstrap, buildInitialRootProvisioning, buildInitialRosterProfileBootstrap, buildInitialSystemContainerBootstrap, } from "./provisioningBootstrapBuilders.js";
10
10
  import { createInitialRootMetadataBootstrap } from "./rootMetadataBootstrap.js";
@@ -1 +1 @@
1
- {"version":3,"file":"registerIdentity.js","sourceRoot":"","sources":["registerIdentity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n buildPrincipalStateSigningInput,\n type EncapsulationKeyPair,\n generateKemSeedAndKeyPair,\n KeyingVerificationError,\n type ReferencedPrincipalHead,\n type SigningKeyPair,\n signPrincipalState,\n toFingerprint,\n wrapDekForRecipients,\n} from \"@tearleads/crypto\";\nimport { bytesToBase64 } from \"@tearleads/encoding\";\nimport type {\n CreateOrganizationGroupRequest,\n ProvisionedDocumentRequest,\n ProvisionedSystemContainerRequest,\n RegistrationRequest,\n} from \"@tearleads/validators/request\";\nimport type { RegistrationResponse } from \"@tearleads/validators/response\";\nimport type { DocumentProjectorRegistryInput } from \"../../data/documents/documentKinds\";\nimport { encodeOrganizationAuthorityDescriptor } from \"../../data/principals/organizationAuthorityDescriptor\";\nimport type { ExecSqlClientLike } from \"../../data/sqlite/sqlSchema\";\nimport type { LocalUserIdentityCandidate } from \"../../data/trustedUserIdentity\";\nimport { validateUserIdentityKeys } from \"../../data/trustedUserIdentity\";\nimport { resolveDocumentCreateAuthor } from \"../documents/author\";\nimport { groupPolicyMutationHead } from \"../organizations/groupPolicyMutationHead\";\nimport {\n buildInitialGroupPolicyRequest,\n buildInitialMemberGroupPolicyRequest,\n} from \"../organizations/principalPolicy\";\nimport type { OrganizationProvisioningArtifacts } from \"./organizationProvisioningArtifacts\";\nimport { persistOrganizationProvisioningState } from \"./organizationProvisioningPersistence\";\nimport type { ProvisionedPrincipalHistoryPrimer } from \"./provisionedPrincipalHistory\";\nimport {\n buildInitialOrganizationMetadataBootstrap,\n buildInitialRootProvisioning,\n buildInitialRosterProfileBootstrap,\n buildInitialSystemContainerBootstrap,\n type ProvisionedSystemContainerSpec,\n} from \"./provisioningBootstrapBuilders\";\nimport { createInitialRootMetadataBootstrap } from \"./rootMetadataBootstrap\";\n\nexport type { OrganizationProvisioningArtifacts } from \"./organizationProvisioningArtifacts\";\nexport type { ProvisionedSystemContainerSpec } from \"./provisioningBootstrapBuilders\";\nexport { persistOrganizationProvisioningState };\n\nexport interface RegistrationApi {\n registerUser(\n userId: string,\n organizationId: string,\n rootContainerId: string,\n signingPublicKey: Uint8Array,\n encapsulationPublicKey: Uint8Array,\n initialAdminGroup: RegistrationRequest[\"initialAdminGroup\"],\n initialMemberGroup: RegistrationRequest[\"initialMemberGroup\"],\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"],\n initialRootContainer: RegistrationRequest[\"initialRootContainer\"],\n initialRootMetadataDocument: ProvisionedDocumentRequest,\n initialRosterProfileContainer: RegistrationRequest[\"initialRosterProfileContainer\"],\n initialRosterProfileDocument: ProvisionedDocumentRequest | undefined,\n initialOrganizationMetadataContainer: ProvisionedSystemContainerRequest,\n initialOrganizationProfileDocument?: ProvisionedDocumentRequest | undefined,\n initialSystemContainers?: ProvisionedSystemContainerRequest[] | undefined,\n ): Promise<RegistrationResponse | null>;\n}\n\ninterface OrganizationProvisioningPrincipalPolicies {\n initialAdminGroup: CreateOrganizationGroupRequest;\n initialMemberGroup: CreateOrganizationGroupRequest;\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"];\n organizationId: string;\n signingFingerprint: string;\n}\n\nexport interface RegisterIdentityInput {\n apiClient: RegistrationApi;\n containerId: string;\n dbClient: ExecSqlClientLike;\n documentProjectors?: DocumentProjectorRegistryInput | undefined;\n /**\n * Reports whether the identity that started this registration is still\n * current. Forwarded to the bootstrap persist's in-mutex currency check,\n * so an identity replaced while the persist waits for the mutation queue\n * cannot write its bootstrap through a client the replacement owns.\n */\n isIdentityCurrent?: (() => boolean) | undefined;\n /** @internal Forwarded to the bootstrap persist; test-only seam. */\n onPersistQueued?: (() => void) | undefined;\n encapsulationKeyPair: EncapsulationKeyPair;\n log?: ((message: string) => void) | undefined;\n logError?: ((message: string | Error, cause?: unknown) => void) | undefined;\n /**\n * Overrides the seeded personal-org profile name; defaults to \"Personal Org\".\n */\n organizationProfileName?: string | undefined;\n pinLocalUserIdentity: (\n userId: string,\n candidate: LocalUserIdentityCandidate,\n ) => Promise<void>;\n /** Seeds verified recovery progress for the founding policy heads. */\n primePrincipalHistory?: ProvisionedPrincipalHistoryPrimer | undefined;\n /**\n * App-owned system containers to provision atomically with the personal\n * organization (e.g. a trash bin). See {@link ProvisionedSystemContainerSpec}.\n */\n provisionedSystemContainers?:\n | ReadonlyArray<ProvisionedSystemContainerSpec>\n | undefined;\n /**\n * Overrides the seeded self roster-profile nickname; defaults to \"You\". The\n * demo host passes each pane's peer-labeled self name (\"Peer 1 (You)\").\n */\n rosterProfileNickname?: string | undefined;\n signingKeyFingerprint?: string | null | undefined;\n signingKeyPair: SigningKeyPair;\n}\n\n/**\n * The freshly built provisioning artifacts, shared by registration and\n * additional-organization creation. `registerIdentity` generates a new\n * `userId`; creating an additional organization reuses the caller's existing\n * one. Everything here is derived purely from the caller's key material, so it\n * is identical for both flows.\n */\nexport interface OrganizationProvisioningArtifactsInput {\n encapsulationKeyPair: EncapsulationKeyPair;\n organizationProfileName?: string | undefined;\n /**\n * App-owned system containers to provision atomically with the organization\n * (e.g. a trash bin). Omitted/empty leaves the org with only the roster and\n * organization-metadata system containers.\n */\n provisionedSystemContainers?:\n | ReadonlyArray<ProvisionedSystemContainerSpec>\n | undefined;\n rootContainerId: string;\n rosterProfileNickname?: string | undefined;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}\n\nexport async function buildInitialOrganizationPolicyRequest(input: {\n adminGroupId: string;\n groupHeads: readonly ReferencedPrincipalHead[];\n encapsulationPublicKey: Uint8Array;\n memberGroupId: string;\n organizationId: string;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}): Promise<RegistrationRequest[\"initialOrganizationPolicy\"]> {\n const organizationKem = generateKemSeedAndKeyPair();\n const signerUserKeyFingerprint = await toFingerprint(\n input.signingKeyPair.signingPublicKey,\n );\n const userEncapsulationKeyFingerprint = await toFingerprint(\n input.encapsulationPublicKey,\n );\n const projection = [\n {\n userId: input.userId,\n role: \"admin\" as const,\n },\n ];\n const payloadCiphertext = encodeOrganizationAuthorityDescriptor({\n version: 2,\n organizationId: input.organizationId,\n adminGroupId: input.adminGroupId,\n memberGroupId: input.memberGroupId,\n groupHeads: input.groupHeads.map((head) => {\n if (head.principalType !== \"group\") {\n throw new Error(\"Organization directory can contain only group heads\");\n }\n return { ...head, principalType: \"group\" };\n }),\n });\n const [memberEnvelope] = await wrapDekForRecipients(\n organizationKem.secretKey,\n [input.encapsulationPublicKey],\n );\n\n if (!memberEnvelope) {\n throw new Error(\"Failed to wrap organization key for registering user\");\n }\n const memberEnvelopes = [\n {\n userId: input.userId,\n memberKeyFingerprint: userEncapsulationKeyFingerprint,\n kemCipherText: bytesToBase64(memberEnvelope.kemCipherText),\n wrappedKey: bytesToBase64(memberEnvelope.wrappedKey),\n },\n ];\n const state = await signPrincipalState(\n await buildPrincipalStateSigningInput({\n principalType: \"organization\",\n principalId: input.organizationId,\n version: 1,\n prevStateHash: null,\n keyEpoch: 1,\n encapsulationPublicKey: bytesToBase64(organizationKem.publicKey),\n keyFingerprint: await toFingerprint(organizationKem.publicKey),\n members: [{ userId: input.userId }],\n memberEnvelopes,\n projection,\n grants: [],\n payloadCiphertext,\n externalAuthority: null,\n signedAt: new Date().toISOString(),\n signerUserId: input.userId,\n signerUserKeyFingerprint,\n }),\n input.signingKeyPair.signingPrivateKey,\n );\n\n return {\n state,\n encryptedPayload: {\n cipherSuite: \"aes-256-gcm\",\n ciphertext: payloadCiphertext,\n ciphertextHash: state.payloadCiphertextHash,\n },\n projection,\n grants: [],\n memberEnvelopes,\n };\n}\n\nasync function createOrganizationPrincipalPolicies(input: {\n encapsulationKeyPair: EncapsulationKeyPair;\n organizationMetadataContainerId: string;\n rootContainerId: string;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}): Promise<OrganizationProvisioningPrincipalPolicies> {\n const organizationId = crypto.randomUUID();\n const signingFingerprint = await toFingerprint(\n input.signingKeyPair.signingPublicKey,\n );\n const initialAdminGroup = await buildInitialGroupPolicyRequest({\n creatorEncapsulationKeyPair: input.encapsulationKeyPair,\n groupId: crypto.randomUUID(),\n grants: [\n { containerId: input.rootContainerId, accessLevel: \"admin\" },\n {\n containerId: input.organizationMetadataContainerId,\n accessLevel: \"admin\",\n },\n ],\n name: \"Admins\",\n builtinRole: \"admins\",\n signerUserId: input.userId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n });\n const initialMemberGroup = await buildInitialMemberGroupPolicyRequest({\n creatorEncapsulationKeyPair: input.encapsulationKeyPair,\n groupId: crypto.randomUUID(),\n grants: [\n {\n containerId: input.organizationMetadataContainerId,\n accessLevel: \"read\",\n },\n ],\n signerUserId: input.userId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n });\n const initialOrganizationPolicy = await buildInitialOrganizationPolicyRequest(\n {\n adminGroupId: initialAdminGroup.groupId,\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n groupHeads: await Promise.all([\n groupPolicyMutationHead(initialAdminGroup.initialGroupPolicy),\n groupPolicyMutationHead(initialMemberGroup.initialGroupPolicy),\n ]),\n memberGroupId: initialMemberGroup.groupId,\n organizationId,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n },\n );\n\n return {\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n organizationId,\n signingFingerprint,\n };\n}\n\nfunction requireOrganizationProvisioningAuthor(input: {\n readonly organizationId: string;\n readonly signingFingerprint: string;\n readonly signingKeyPair: SigningKeyPair;\n readonly userId: string;\n}) {\n const author = resolveDocumentCreateAuthor({\n auth: { organizationId: input.organizationId, userId: input.userId },\n crypto: {\n signingFingerprint: input.signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n },\n });\n if (!author) {\n throw new Error(\n `Organization provisioning document author context is unavailable for user ${input.userId} in organization ${input.organizationId}.`,\n );\n }\n return author;\n}\n\n/** Builds the signed artifacts shared by registration and org creation. */\nexport async function buildOrganizationProvisioningArtifacts(\n input: OrganizationProvisioningArtifactsInput,\n): Promise<OrganizationProvisioningArtifacts> {\n const bootstrap = await createInitialRootMetadataBootstrap(\n input.rootContainerId,\n );\n const organizationMetadataContainerId = crypto.randomUUID();\n const {\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n organizationId,\n signingFingerprint,\n } = await createOrganizationPrincipalPolicies({\n encapsulationKeyPair: input.encapsulationKeyPair,\n organizationMetadataContainerId,\n rootContainerId: input.rootContainerId,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n });\n const author = requireOrganizationProvisioningAuthor({\n organizationId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n });\n\n const {\n rootContainer,\n rootContainerProjection,\n rootMetadataDocument,\n rootMetadataDocumentRequest,\n } = await buildInitialRootProvisioning({\n adminGroup: initialAdminGroup,\n author,\n bootstrap,\n recipientEncapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n rootContainerId: input.rootContainerId,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const rosterProfileBootstrap = await buildInitialRosterProfileBootstrap({\n author,\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n initialAdminGroup,\n rosterProfileNickname: input.rosterProfileNickname,\n rootContainer,\n rootContainerProjection,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const organizationMetadataBootstrap =\n await buildInitialOrganizationMetadataBootstrap({\n author,\n containerId: organizationMetadataContainerId,\n initialAdminGroup,\n initialMemberGroup,\n organizationProfileName: input.organizationProfileName,\n rootContainer,\n rootContainerProjection,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const systemContainerBootstraps = await Promise.all(\n (input.provisionedSystemContainers ?? []).map((spec) =>\n buildInitialSystemContainerBootstrap({\n author,\n initialAdminGroup,\n rootContainer,\n rootContainerProjection,\n signingPrivateKey: input.signingKeyPair.signingPrivateKey,\n spec,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n }),\n ),\n );\n\n return {\n replacementAuthorization: null,\n bootstrap,\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n initialRootContainer: rootContainer.plan.request,\n organizationId,\n organizationMetadataBootstrap,\n rootContainer,\n rootMetadataDocument,\n rootMetadataDocumentRequest,\n rosterProfileBootstrap,\n systemContainerBootstraps,\n };\n}\n\nexport async function registerIdentity(\n input: RegisterIdentityInput,\n): Promise<RegistrationResponse | null> {\n input.log?.(\"Registering identity...\");\n await validateUserIdentityKeys({\n candidate: {\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n signingKeyFingerprint: input.signingKeyFingerprint,\n signingPublicKey: input.signingKeyPair.signingPublicKey,\n },\n });\n\n const newUserId = crypto.randomUUID();\n const artifacts = await buildOrganizationProvisioningArtifacts({\n encapsulationKeyPair: input.encapsulationKeyPair,\n organizationProfileName: input.organizationProfileName,\n provisionedSystemContainers: input.provisionedSystemContainers,\n rootContainerId: input.containerId,\n rosterProfileNickname: input.rosterProfileNickname,\n signingKeyPair: input.signingKeyPair,\n userId: newUserId,\n });\n\n const response = await input.apiClient.registerUser(\n newUserId,\n artifacts.organizationId,\n input.containerId,\n input.signingKeyPair.signingPublicKey,\n input.encapsulationKeyPair.publicKey,\n artifacts.initialAdminGroup,\n artifacts.initialMemberGroup,\n artifacts.initialOrganizationPolicy,\n artifacts.initialRootContainer,\n artifacts.rootMetadataDocumentRequest,\n artifacts.rosterProfileBootstrap.containerRequest,\n artifacts.rosterProfileBootstrap.profileDocumentRequest,\n artifacts.organizationMetadataBootstrap.containerRequest,\n artifacts.organizationMetadataBootstrap.organizationProfileDocumentRequest,\n artifacts.systemContainerBootstraps.map(\n (systemContainer) => systemContainer.containerRequest,\n ),\n );\n if (!response) {\n return null;\n }\n if (response.userId !== newUserId) {\n throw new KeyingVerificationError(\n \"object_mismatch\",\n \"Registration response user does not match the requested identity\",\n );\n }\n // Pinned only once the server has confirmed this user, and before anything\n // is persisted under it. The trust store binds each signing key to one user,\n // so a pin for an id the server never accepted — a retry after a lost\n // response, or a restored key that is already registered — would later\n // refuse the key's real user at login. Like the persistence below, it is a\n // durable write, so it is skipped once the registering identity has been\n // replaced: the caller discards this result.\n if (input.isIdentityCurrent?.() ?? true) {\n await input.pinLocalUserIdentity(newUserId, {\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n signingPublicKey: input.signingKeyPair.signingPublicKey,\n });\n }\n\n input.log?.(`Key registered (${response.userId})`);\n await persistOrganizationProvisioningState({\n bootstrap: artifacts.bootstrap,\n canStartDurableMutation: input.isIdentityCurrent,\n onPersistQueued: input.onPersistQueued,\n containerId: input.containerId,\n dbClient: input.dbClient,\n documentProjectors: input.documentProjectors,\n initialAdminGroup: artifacts.initialAdminGroup,\n initialMemberGroup: artifacts.initialMemberGroup,\n initialOrganizationPolicy: artifacts.initialOrganizationPolicy,\n log: input.log,\n logError: input.logError,\n organizationMetadataBootstrap: artifacts.organizationMetadataBootstrap,\n primePrincipalHistory: input.primePrincipalHistory,\n response,\n rootContainer: artifacts.rootContainer,\n rootMetadataDocument: artifacts.rootMetadataDocument,\n rootMetadataDocumentRequest: artifacts.rootMetadataDocumentRequest,\n rosterProfileBootstrap: artifacts.rosterProfileBootstrap,\n systemContainerBootstraps: artifacts.systemContainerBootstraps,\n });\n\n return response;\n}\n"]}
1
+ {"version":3,"file":"registerIdentity.js","sourceRoot":"","sources":["registerIdentity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n buildPrincipalStateSigningInput,\n type EncapsulationKeyPair,\n generateKemSeedAndKeyPair,\n KeyingVerificationError,\n type ReferencedPrincipalHead,\n type SigningKeyPair,\n signPrincipalState,\n toFingerprint,\n wrapDekForRecipients,\n} from \"@tearleads/crypto\";\nimport { bytesToBase64 } from \"@tearleads/encoding\";\nimport type {\n CreateOrganizationGroupRequest,\n ProvisionedDocumentRequest,\n ProvisionedSystemContainerRequest,\n RegistrationRequest,\n} from \"@tearleads/validators/request\";\nimport type { RegistrationResponse } from \"@tearleads/validators/response\";\nimport type { DocumentProjectorRegistryInput } from \"../../data/documents/documentKinds\";\nimport { encodeOrganizationAuthorityDescriptor } from \"../../data/principals/organizationAuthorityDescriptor\";\nimport type { ExecSqlClientLike } from \"../../data/sqlite/sqlSchema\";\nimport type { LocalUserIdentityCandidate } from \"../../data/trustedUserIdentity\";\nimport { validateUserIdentityKeys } from \"../../data/trustedUserIdentity\";\nimport { resolveDocumentCreateAuthor } from \"../documents/author\";\nimport { groupPolicyMutationHead } from \"../organizations/groupPolicy/groupPolicyMutationHead\";\nimport {\n buildInitialGroupPolicyRequest,\n buildInitialMemberGroupPolicyRequest,\n} from \"../organizations/principalPolicy\";\nimport type { OrganizationProvisioningArtifacts } from \"./organizationProvisioningArtifacts\";\nimport { persistOrganizationProvisioningState } from \"./organizationProvisioningPersistence\";\nimport type { ProvisionedPrincipalHistoryPrimer } from \"./provisionedPrincipalHistory\";\nimport {\n buildInitialOrganizationMetadataBootstrap,\n buildInitialRootProvisioning,\n buildInitialRosterProfileBootstrap,\n buildInitialSystemContainerBootstrap,\n type ProvisionedSystemContainerSpec,\n} from \"./provisioningBootstrapBuilders\";\nimport { createInitialRootMetadataBootstrap } from \"./rootMetadataBootstrap\";\n\nexport type { OrganizationProvisioningArtifacts } from \"./organizationProvisioningArtifacts\";\nexport type { ProvisionedSystemContainerSpec } from \"./provisioningBootstrapBuilders\";\nexport { persistOrganizationProvisioningState };\n\nexport interface RegistrationApi {\n registerUser(\n userId: string,\n organizationId: string,\n rootContainerId: string,\n signingPublicKey: Uint8Array,\n encapsulationPublicKey: Uint8Array,\n initialAdminGroup: RegistrationRequest[\"initialAdminGroup\"],\n initialMemberGroup: RegistrationRequest[\"initialMemberGroup\"],\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"],\n initialRootContainer: RegistrationRequest[\"initialRootContainer\"],\n initialRootMetadataDocument: ProvisionedDocumentRequest,\n initialRosterProfileContainer: RegistrationRequest[\"initialRosterProfileContainer\"],\n initialRosterProfileDocument: ProvisionedDocumentRequest | undefined,\n initialOrganizationMetadataContainer: ProvisionedSystemContainerRequest,\n initialOrganizationProfileDocument?: ProvisionedDocumentRequest | undefined,\n initialSystemContainers?: ProvisionedSystemContainerRequest[] | undefined,\n ): Promise<RegistrationResponse | null>;\n}\n\ninterface OrganizationProvisioningPrincipalPolicies {\n initialAdminGroup: CreateOrganizationGroupRequest;\n initialMemberGroup: CreateOrganizationGroupRequest;\n initialOrganizationPolicy: RegistrationRequest[\"initialOrganizationPolicy\"];\n organizationId: string;\n signingFingerprint: string;\n}\n\nexport interface RegisterIdentityInput {\n apiClient: RegistrationApi;\n containerId: string;\n dbClient: ExecSqlClientLike;\n documentProjectors?: DocumentProjectorRegistryInput | undefined;\n /**\n * Reports whether the identity that started this registration is still\n * current. Forwarded to the bootstrap persist's in-mutex currency check,\n * so an identity replaced while the persist waits for the mutation queue\n * cannot write its bootstrap through a client the replacement owns.\n */\n isIdentityCurrent?: (() => boolean) | undefined;\n /** @internal Forwarded to the bootstrap persist; test-only seam. */\n onPersistQueued?: (() => void) | undefined;\n encapsulationKeyPair: EncapsulationKeyPair;\n log?: ((message: string) => void) | undefined;\n logError?: ((message: string | Error, cause?: unknown) => void) | undefined;\n /**\n * Overrides the seeded personal-org profile name; defaults to \"Personal Org\".\n */\n organizationProfileName?: string | undefined;\n pinLocalUserIdentity: (\n userId: string,\n candidate: LocalUserIdentityCandidate,\n ) => Promise<void>;\n /** Seeds verified recovery progress for the founding policy heads. */\n primePrincipalHistory?: ProvisionedPrincipalHistoryPrimer | undefined;\n /**\n * App-owned system containers to provision atomically with the personal\n * organization (e.g. a trash bin). See {@link ProvisionedSystemContainerSpec}.\n */\n provisionedSystemContainers?:\n | ReadonlyArray<ProvisionedSystemContainerSpec>\n | undefined;\n /**\n * Overrides the seeded self roster-profile nickname; defaults to \"You\". The\n * demo host passes each pane's peer-labeled self name (\"Peer 1 (You)\").\n */\n rosterProfileNickname?: string | undefined;\n signingKeyFingerprint?: string | null | undefined;\n signingKeyPair: SigningKeyPair;\n}\n\n/**\n * The freshly built provisioning artifacts, shared by registration and\n * additional-organization creation. `registerIdentity` generates a new\n * `userId`; creating an additional organization reuses the caller's existing\n * one. Everything here is derived purely from the caller's key material, so it\n * is identical for both flows.\n */\nexport interface OrganizationProvisioningArtifactsInput {\n encapsulationKeyPair: EncapsulationKeyPair;\n organizationProfileName?: string | undefined;\n /**\n * App-owned system containers to provision atomically with the organization\n * (e.g. a trash bin). Omitted/empty leaves the org with only the roster and\n * organization-metadata system containers.\n */\n provisionedSystemContainers?:\n | ReadonlyArray<ProvisionedSystemContainerSpec>\n | undefined;\n rootContainerId: string;\n rosterProfileNickname?: string | undefined;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}\n\nexport async function buildInitialOrganizationPolicyRequest(input: {\n adminGroupId: string;\n groupHeads: readonly ReferencedPrincipalHead[];\n encapsulationPublicKey: Uint8Array;\n memberGroupId: string;\n organizationId: string;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}): Promise<RegistrationRequest[\"initialOrganizationPolicy\"]> {\n const organizationKem = generateKemSeedAndKeyPair();\n const signerUserKeyFingerprint = await toFingerprint(\n input.signingKeyPair.signingPublicKey,\n );\n const userEncapsulationKeyFingerprint = await toFingerprint(\n input.encapsulationPublicKey,\n );\n const projection = [\n {\n userId: input.userId,\n role: \"admin\" as const,\n },\n ];\n const payloadCiphertext = encodeOrganizationAuthorityDescriptor({\n version: 2,\n organizationId: input.organizationId,\n adminGroupId: input.adminGroupId,\n memberGroupId: input.memberGroupId,\n groupHeads: input.groupHeads.map((head) => {\n if (head.principalType !== \"group\") {\n throw new Error(\"Organization directory can contain only group heads\");\n }\n return { ...head, principalType: \"group\" };\n }),\n });\n const [memberEnvelope] = await wrapDekForRecipients(\n organizationKem.secretKey,\n [input.encapsulationPublicKey],\n );\n\n if (!memberEnvelope) {\n throw new Error(\"Failed to wrap organization key for registering user\");\n }\n const memberEnvelopes = [\n {\n userId: input.userId,\n memberKeyFingerprint: userEncapsulationKeyFingerprint,\n kemCipherText: bytesToBase64(memberEnvelope.kemCipherText),\n wrappedKey: bytesToBase64(memberEnvelope.wrappedKey),\n },\n ];\n const state = await signPrincipalState(\n await buildPrincipalStateSigningInput({\n principalType: \"organization\",\n principalId: input.organizationId,\n version: 1,\n prevStateHash: null,\n keyEpoch: 1,\n encapsulationPublicKey: bytesToBase64(organizationKem.publicKey),\n keyFingerprint: await toFingerprint(organizationKem.publicKey),\n members: [{ userId: input.userId }],\n memberEnvelopes,\n projection,\n grants: [],\n payloadCiphertext,\n externalAuthority: null,\n signedAt: new Date().toISOString(),\n signerUserId: input.userId,\n signerUserKeyFingerprint,\n }),\n input.signingKeyPair.signingPrivateKey,\n );\n\n return {\n state,\n encryptedPayload: {\n cipherSuite: \"aes-256-gcm\",\n ciphertext: payloadCiphertext,\n ciphertextHash: state.payloadCiphertextHash,\n },\n projection,\n grants: [],\n memberEnvelopes,\n };\n}\n\nasync function createOrganizationPrincipalPolicies(input: {\n encapsulationKeyPair: EncapsulationKeyPair;\n organizationMetadataContainerId: string;\n rootContainerId: string;\n signingKeyPair: SigningKeyPair;\n userId: string;\n}): Promise<OrganizationProvisioningPrincipalPolicies> {\n const organizationId = crypto.randomUUID();\n const signingFingerprint = await toFingerprint(\n input.signingKeyPair.signingPublicKey,\n );\n const initialAdminGroup = await buildInitialGroupPolicyRequest({\n creatorEncapsulationKeyPair: input.encapsulationKeyPair,\n groupId: crypto.randomUUID(),\n grants: [\n { containerId: input.rootContainerId, accessLevel: \"admin\" },\n {\n containerId: input.organizationMetadataContainerId,\n accessLevel: \"admin\",\n },\n ],\n name: \"Admins\",\n builtinRole: \"admins\",\n signerUserId: input.userId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n });\n const initialMemberGroup = await buildInitialMemberGroupPolicyRequest({\n creatorEncapsulationKeyPair: input.encapsulationKeyPair,\n groupId: crypto.randomUUID(),\n grants: [\n {\n containerId: input.organizationMetadataContainerId,\n accessLevel: \"read\",\n },\n ],\n signerUserId: input.userId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n });\n const initialOrganizationPolicy = await buildInitialOrganizationPolicyRequest(\n {\n adminGroupId: initialAdminGroup.groupId,\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n groupHeads: await Promise.all([\n groupPolicyMutationHead(initialAdminGroup.initialGroupPolicy),\n groupPolicyMutationHead(initialMemberGroup.initialGroupPolicy),\n ]),\n memberGroupId: initialMemberGroup.groupId,\n organizationId,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n },\n );\n\n return {\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n organizationId,\n signingFingerprint,\n };\n}\n\nfunction requireOrganizationProvisioningAuthor(input: {\n readonly organizationId: string;\n readonly signingFingerprint: string;\n readonly signingKeyPair: SigningKeyPair;\n readonly userId: string;\n}) {\n const author = resolveDocumentCreateAuthor({\n auth: { organizationId: input.organizationId, userId: input.userId },\n crypto: {\n signingFingerprint: input.signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n },\n });\n if (!author) {\n throw new Error(\n `Organization provisioning document author context is unavailable for user ${input.userId} in organization ${input.organizationId}.`,\n );\n }\n return author;\n}\n\n/** Builds the signed artifacts shared by registration and org creation. */\nexport async function buildOrganizationProvisioningArtifacts(\n input: OrganizationProvisioningArtifactsInput,\n): Promise<OrganizationProvisioningArtifacts> {\n const bootstrap = await createInitialRootMetadataBootstrap(\n input.rootContainerId,\n );\n const organizationMetadataContainerId = crypto.randomUUID();\n const {\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n organizationId,\n signingFingerprint,\n } = await createOrganizationPrincipalPolicies({\n encapsulationKeyPair: input.encapsulationKeyPair,\n organizationMetadataContainerId,\n rootContainerId: input.rootContainerId,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n });\n const author = requireOrganizationProvisioningAuthor({\n organizationId,\n signingFingerprint,\n signingKeyPair: input.signingKeyPair,\n userId: input.userId,\n });\n\n const {\n rootContainer,\n rootContainerProjection,\n rootMetadataDocument,\n rootMetadataDocumentRequest,\n } = await buildInitialRootProvisioning({\n adminGroup: initialAdminGroup,\n author,\n bootstrap,\n recipientEncapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n rootContainerId: input.rootContainerId,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const rosterProfileBootstrap = await buildInitialRosterProfileBootstrap({\n author,\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n initialAdminGroup,\n rosterProfileNickname: input.rosterProfileNickname,\n rootContainer,\n rootContainerProjection,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const organizationMetadataBootstrap =\n await buildInitialOrganizationMetadataBootstrap({\n author,\n containerId: organizationMetadataContainerId,\n initialAdminGroup,\n initialMemberGroup,\n organizationProfileName: input.organizationProfileName,\n rootContainer,\n rootContainerProjection,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n });\n const systemContainerBootstraps = await Promise.all(\n (input.provisionedSystemContainers ?? []).map((spec) =>\n buildInitialSystemContainerBootstrap({\n author,\n initialAdminGroup,\n rootContainer,\n rootContainerProjection,\n signingPrivateKey: input.signingKeyPair.signingPrivateKey,\n spec,\n targetSecretKey: input.encapsulationKeyPair.secretKey,\n }),\n ),\n );\n\n return {\n replacementAuthorization: null,\n bootstrap,\n initialAdminGroup,\n initialMemberGroup,\n initialOrganizationPolicy,\n initialRootContainer: rootContainer.plan.request,\n organizationId,\n organizationMetadataBootstrap,\n rootContainer,\n rootMetadataDocument,\n rootMetadataDocumentRequest,\n rosterProfileBootstrap,\n systemContainerBootstraps,\n };\n}\n\nexport async function registerIdentity(\n input: RegisterIdentityInput,\n): Promise<RegistrationResponse | null> {\n input.log?.(\"Registering identity...\");\n await validateUserIdentityKeys({\n candidate: {\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n signingKeyFingerprint: input.signingKeyFingerprint,\n signingPublicKey: input.signingKeyPair.signingPublicKey,\n },\n });\n\n const newUserId = crypto.randomUUID();\n const artifacts = await buildOrganizationProvisioningArtifacts({\n encapsulationKeyPair: input.encapsulationKeyPair,\n organizationProfileName: input.organizationProfileName,\n provisionedSystemContainers: input.provisionedSystemContainers,\n rootContainerId: input.containerId,\n rosterProfileNickname: input.rosterProfileNickname,\n signingKeyPair: input.signingKeyPair,\n userId: newUserId,\n });\n\n const response = await input.apiClient.registerUser(\n newUserId,\n artifacts.organizationId,\n input.containerId,\n input.signingKeyPair.signingPublicKey,\n input.encapsulationKeyPair.publicKey,\n artifacts.initialAdminGroup,\n artifacts.initialMemberGroup,\n artifacts.initialOrganizationPolicy,\n artifacts.initialRootContainer,\n artifacts.rootMetadataDocumentRequest,\n artifacts.rosterProfileBootstrap.containerRequest,\n artifacts.rosterProfileBootstrap.profileDocumentRequest,\n artifacts.organizationMetadataBootstrap.containerRequest,\n artifacts.organizationMetadataBootstrap.organizationProfileDocumentRequest,\n artifacts.systemContainerBootstraps.map(\n (systemContainer) => systemContainer.containerRequest,\n ),\n );\n if (!response) {\n return null;\n }\n if (response.userId !== newUserId) {\n throw new KeyingVerificationError(\n \"object_mismatch\",\n \"Registration response user does not match the requested identity\",\n );\n }\n // Pinned only once the server has confirmed this user, and before anything\n // is persisted under it. The trust store binds each signing key to one user,\n // so a pin for an id the server never accepted — a retry after a lost\n // response, or a restored key that is already registered — would later\n // refuse the key's real user at login. Like the persistence below, it is a\n // durable write, so it is skipped once the registering identity has been\n // replaced: the caller discards this result.\n if (input.isIdentityCurrent?.() ?? true) {\n await input.pinLocalUserIdentity(newUserId, {\n encapsulationPublicKey: input.encapsulationKeyPair.publicKey,\n signingPublicKey: input.signingKeyPair.signingPublicKey,\n });\n }\n\n input.log?.(`Key registered (${response.userId})`);\n await persistOrganizationProvisioningState({\n bootstrap: artifacts.bootstrap,\n canStartDurableMutation: input.isIdentityCurrent,\n onPersistQueued: input.onPersistQueued,\n containerId: input.containerId,\n dbClient: input.dbClient,\n documentProjectors: input.documentProjectors,\n initialAdminGroup: artifacts.initialAdminGroup,\n initialMemberGroup: artifacts.initialMemberGroup,\n initialOrganizationPolicy: artifacts.initialOrganizationPolicy,\n log: input.log,\n logError: input.logError,\n organizationMetadataBootstrap: artifacts.organizationMetadataBootstrap,\n primePrincipalHistory: input.primePrincipalHistory,\n response,\n rootContainer: artifacts.rootContainer,\n rootMetadataDocument: artifacts.rootMetadataDocument,\n rootMetadataDocumentRequest: artifacts.rootMetadataDocumentRequest,\n rosterProfileBootstrap: artifacts.rosterProfileBootstrap,\n systemContainerBootstraps: artifacts.systemContainerBootstraps,\n });\n\n return response;\n}\n"]}
@@ -11,7 +11,7 @@ import { clientSqlTables, containerHydrationTombstones, containers, documentAtta
11
11
  import { getClientSQLitePersistenceRuntime, } from "../../data/sqlite/sqlitePersistenceRuntime.js";
12
12
  import { ensureSqlTables } from "../../data/sqlite/sqlTableSchema.js";
13
13
  import { verifiedAccessManifestBundles } from "../../data/sqlite/verifiedManifestBundleSchema.js";
14
- import { runOrganizationPresentationReset } from "../organizations/organizationPresentationAccessState.js";
14
+ import { runOrganizationPresentationReset } from "../organizations/readModel/organizationPresentationAccessState.js";
15
15
  import { clearResetPendingAttachments } from "./remoteResetAttachments.js";
16
16
  import { remoteResetBatches } from "./remoteResetBatches.js";
17
17
  import { clearRemoteResetSyncCursors } from "./remoteResetCursorScope.js";
@@ -1 +1 @@
1
- {"version":3,"file":"remoteReset.js","sourceRoot":"","sources":["remoteReset.ts"],"names":[],"mappings":"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","sourcesContent":["import { and, eq, inArray, or } from \"drizzle-orm\";\nimport { recordSupersededContainerBindingsInTransaction } from \"../../data/persistence/container-contents/supersededContainerBindings\";\nimport {\n deleteDocumentPlacementRowsByContainerIds,\n deleteDocumentPlacementRowsByDocumentIds,\n} from \"../../data/persistence/containers/documentContainerProjectionPersistence\";\nimport { clearDocumentDiscoveryEvidenceOnRemoteReset } from \"../../data/persistence/documents/documentDiscoveryReset\";\nimport {\n queuedUpdateRow,\n unqueueDocumentScopesInTransaction,\n} from \"../../data/sqlite/documentPendingUpdatePersistence\";\nimport { documentIntentLinkTargets } from \"../../data/sqlite/documentPlacementIntentSchema\";\nimport { CLEARED_DOCUMENT_SYNC_FAILURE } from \"../../data/sqlite/documentSyncFailurePersistence\";\nimport { organizationDataUsageSnapshots } from \"../../data/sqlite/organizationDataUsageSchema\";\nimport {\n organizationPresentationDenials,\n organizationReadModelContainerGrants,\n organizationReadModelDirectoryUsers,\n organizationReadModelGroupMembers,\n organizationReadModelGroups,\n organizationReadModelRequesters,\n organizationReadModelState,\n} from \"../../data/sqlite/organizationReadModelSchema\";\nimport {\n clientSqlTables,\n containerHydrationTombstones,\n containers,\n documentAttachmentBlobProjection,\n documentHistoryUpdates,\n documentPendingAttachments,\n documentProjection,\n documents,\n dormantContainerMetadata,\n dormantMetadataSweepRequests,\n inContainerIntentLanes,\n inLocalIntentLane,\n LOCAL_INTENT_LANES,\n localIntents,\n} from \"../../data/sqlite/schema\";\nimport {\n type ClientSQLiteTransactionScope,\n getClientSQLitePersistenceRuntime,\n} from \"../../data/sqlite/sqlitePersistenceRuntime\";\nimport type { ExecSql } from \"../../data/sqlite/sqlSchema\";\nimport { ensureSqlTables } from \"../../data/sqlite/sqlTableSchema\";\nimport { verifiedAccessManifestBundles } from \"../../data/sqlite/verifiedManifestBundleSchema\";\nimport { runOrganizationPresentationReset } from \"../organizations/organizationPresentationAccessState\";\nimport { clearResetPendingAttachments } from \"./remoteResetAttachments\";\nimport { remoteResetBatches } from \"./remoteResetBatches\";\nimport { clearRemoteResetSyncCursors } from \"./remoteResetCursorScope\";\nimport {\n buildResetPlans,\n type ResetAttachmentUpload,\n type ResetDocumentUpdate,\n} from \"./remoteResetPlans\";\nimport { clearRemoteResetPrincipalRows } from \"./remoteResetPrincipalScope\";\nimport {\n type RemoteResetInput,\n type RemoteSyncStateSnapshot,\n readRemoteSyncStateSnapshot,\n} from \"./remoteResetScope\";\n\nexport type {\n RemoteResetInput,\n RemoteResetReplacement,\n} from \"./remoteResetScope\";\n\nconst CONTAINER_CREATE_INTENT_TYPE = \"container.create\";\n\nexport interface ClearRemoteSyncStateResult {\n readonly clearedContainerCreateIntentCount: number;\n readonly clearedContainerMoveIntentCount: number;\n readonly clearedDocumentMoveIntentCount: number;\n readonly clearedPrincipalPolicyCount: number;\n readonly clearedSyncCursorCount: number;\n readonly queuedAttachmentUploadCount: number;\n readonly queuedContainerCreateCount: number;\n readonly queuedDocumentUpdateCount: number;\n readonly resetContainerCount: number;\n readonly resetDocumentCount: number;\n}\n\nasync function clearOrganizationPresentationRows(\n tx: ClientSQLiteTransactionScope,\n organizationId: string,\n): Promise<void> {\n for (const table of [\n organizationDataUsageSnapshots,\n organizationReadModelContainerGrants,\n organizationReadModelGroupMembers,\n organizationReadModelDirectoryUsers,\n organizationReadModelGroups,\n organizationReadModelRequesters,\n organizationReadModelState,\n organizationPresentationDenials,\n ] as const) {\n await tx\n .delete(table)\n .where(eq(table.organizationId, organizationId))\n .run();\n }\n}\n\ninterface ScopedRemoteRowsInput {\n attachmentUploads: readonly ResetAttachmentUpload[];\n organizationId: string;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}\n\nasync function clearScopedContainerRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n for (const containerBatch of remoteResetBatches(\n input.snapshot.containerIds,\n )) {\n await deleteDocumentPlacementRowsByContainerIds(input.tx, containerBatch);\n await input.tx\n .delete(localIntents)\n .where(\n and(\n inContainerIntentLanes(),\n inArray(localIntents.subjectId, containerBatch),\n ),\n )\n .run();\n await input.tx\n .delete(containerHydrationTombstones)\n .where(inArray(containerHydrationTombstones.containerId, containerBatch))\n .run();\n }\n}\n\nasync function clearScopedDocumentRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n const { snapshot, tx } = input;\n for (const documentIdBatch of remoteResetBatches(snapshot.oldDocumentIds)) {\n await deleteDocumentPlacementRowsByDocumentIds(tx, documentIdBatch);\n }\n await clearResetPendingAttachments({\n attachmentUploads: input.attachmentUploads,\n documentLocalIds: snapshot.documentLocalIds,\n tx,\n });\n for (const localIdBatch of remoteResetBatches(snapshot.documentLocalIds)) {\n const placementIntents = and(\n inLocalIntentLane(LOCAL_INTENT_LANES.documentPlacement),\n inArray(localIntents.localId, localIdBatch),\n );\n await tx\n .delete(documentIntentLinkTargets)\n .where(\n inArray(\n documentIntentLinkTargets.intentId,\n tx\n .select({ id: localIntents.id })\n .from(localIntents)\n .where(placementIntents),\n ),\n )\n .run();\n await tx.delete(localIntents).where(placementIntents).run();\n }\n // Sync failures clear with the document columns in resetRemoteColumns.\n for (const documentBatch of remoteResetBatches(snapshot.documentRows)) {\n await unqueueDocumentScopesInTransaction(tx, documentBatch);\n }\n}\n\nasync function clearScopedRemoteRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n const { organizationId, tx } = input;\n await clearOrganizationPresentationRows(tx, organizationId);\n for (const table of [\n dormantContainerMetadata,\n dormantMetadataSweepRequests,\n verifiedAccessManifestBundles,\n ] as const) {\n await tx\n .delete(table)\n .where(eq(table.organizationId, organizationId))\n .run();\n }\n await clearDocumentDiscoveryEvidenceOnRemoteReset(tx, {\n containerIds: input.snapshot.containerIds,\n documentIds: input.snapshot.oldDocumentIds,\n });\n await clearRemoteResetPrincipalRows(input);\n await clearScopedContainerRows(input);\n await clearScopedDocumentRows(input);\n await clearRemoteResetSyncCursors({\n containerIds: input.snapshot.containerIds,\n tx,\n });\n}\n\nasync function resetRemoteColumns(input: {\n now: string;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n const { now, reset, snapshot, tx } = input;\n for (const row of snapshot.documentRows) {\n await tx\n .update(documents)\n .set({\n accessEpoch: 1,\n accessStateHash: null,\n contentKeyBundle: null,\n documentId: null,\n documentKekTargets: null,\n documentManifestBundle: null,\n lastCommitLsn: null,\n pullContinuation: null,\n recoveryDocumentId: row.documentId ?? row.recoveryDocumentId,\n ...CLEARED_DOCUMENT_SYNC_FAILURE,\n updatedAt: now,\n })\n .where(\n and(\n eq(documents.appKind, row.appKind),\n eq(documents.localId, row.localId),\n ),\n )\n .run();\n }\n for (const localIdBatch of remoteResetBatches(snapshot.documentLocalIds)) {\n await tx\n .update(documentProjection)\n .set({\n documentId: null,\n organizationId:\n reset.replacement?.organizationId ?? reset.organizationId,\n })\n .where(inArray(documentProjection.localId, localIdBatch))\n .run();\n }\n // Replacement re-homes folders under their ids; the purged organization\n // can never bind them again on this device.\n for (const containerIds of reset.replacement\n ? remoteResetBatches(snapshot.containerIds)\n : []) {\n await recordSupersededContainerBindingsInTransaction(tx, {\n containerIds,\n organizationId: reset.organizationId,\n supersededAt: now,\n });\n }\n for (const row of snapshot.containerRows) {\n await tx\n .update(containers)\n .set({\n metadataDocumentId: null,\n organizationId:\n reset.replacement?.organizationId ?? reset.organizationId,\n parentId:\n reset.replacement && row.parentId === null\n ? reset.replacement.rootContainerId\n : row.parentId,\n serverCreatedAt: null,\n serverUpdatedAt: null,\n ...(reset.replacement ? { systemSlot: null } : {}),\n localUpdatedAt: now,\n })\n .where(eq(containers.id, row.id))\n .run();\n }\n}\n\nasync function queueResetDocumentUpdates(input: {\n documentUpdates: readonly ResetDocumentUpdate[];\n now: string;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n for (const updateBatch of remoteResetBatches(input.documentUpdates)) {\n await input.tx\n .insert(documentHistoryUpdates)\n .values(\n updateBatch.map((update) =>\n queuedUpdateRow({\n createdAt: input.now,\n origin: \"outbox\",\n pendingUpdate: update,\n scope: update,\n updateId: crypto.randomUUID(),\n }),\n ),\n )\n .run();\n }\n}\n\nasync function queueResetContainerCreates(input: {\n now: string;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<number> {\n const rows = input.snapshot.containerRows.flatMap((row) => {\n const parentId =\n row.parentId ?? input.reset.replacement?.rootContainerId ?? null;\n return parentId ? [{ id: row.id, parentId }] : [];\n });\n if (rows.length === 0) return 0;\n for (const rowBatch of remoteResetBatches(rows)) {\n await input.tx\n .insert(localIntents)\n .values(\n rowBatch.map((row) => ({\n id: crypto.randomUUID(),\n lane: LOCAL_INTENT_LANES.containerCreate,\n subjectId: row.id,\n targetContainerId: row.parentId,\n intentType: CONTAINER_CREATE_INTENT_TYPE,\n syncStatus: \"pending\" as const,\n remoteContainerId: null,\n remoteMetadataAccessStateHash: null,\n remoteMetadataDocumentId: null,\n lastError: null,\n createdAt: input.now,\n updatedAt: input.now,\n })),\n )\n .run();\n }\n return rows.length;\n}\n\nasync function queueResetAttachmentUploads(input: {\n attachmentUploads: readonly ResetAttachmentUpload[];\n now: string;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n for (const attachmentBatch of remoteResetBatches(input.attachmentUploads)) {\n await input.tx\n .insert(documentPendingAttachments)\n .values(\n attachmentBatch.map((attachment) => ({\n ...attachment,\n createdAt: input.now,\n })),\n )\n .run();\n await input.tx\n .delete(documentAttachmentBlobProjection)\n .where(\n or(\n ...attachmentBatch.map((attachment) =>\n and(\n eq(documentAttachmentBlobProjection.localId, attachment.localId),\n eq(documentAttachmentBlobProjection.slotId, attachment.slotId),\n ),\n ),\n ),\n )\n .run();\n }\n}\n\nasync function clearRemoteSyncStateInTransaction(input: {\n plans: Awaited<ReturnType<typeof buildResetPlans>>;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<ClearRemoteSyncStateResult> {\n const now = new Date().toISOString();\n const { snapshot } = input;\n await clearScopedRemoteRows({\n attachmentUploads: input.plans.attachmentUploads,\n organizationId: input.reset.organizationId,\n snapshot,\n tx: input.tx,\n });\n await resetRemoteColumns({ now, reset: input.reset, snapshot, tx: input.tx });\n await queueResetDocumentUpdates({\n documentUpdates: input.plans.documentUpdates,\n now,\n tx: input.tx,\n });\n const queuedContainerCreateCount = await queueResetContainerCreates({\n now,\n reset: input.reset,\n snapshot,\n tx: input.tx,\n });\n await queueResetAttachmentUploads({\n attachmentUploads: input.plans.attachmentUploads,\n now,\n tx: input.tx,\n });\n return {\n clearedContainerCreateIntentCount:\n snapshot.clearedContainerCreateIntentCount,\n clearedContainerMoveIntentCount: snapshot.clearedContainerMoveIntentCount,\n clearedDocumentMoveIntentCount: snapshot.clearedDocumentMoveIntentCount,\n clearedPrincipalPolicyCount: snapshot.clearedPrincipalPolicyCount,\n clearedSyncCursorCount: snapshot.clearedSyncCursorCount,\n queuedAttachmentUploadCount: input.plans.attachmentUploads.length,\n queuedContainerCreateCount,\n queuedDocumentUpdateCount: input.plans.documentUpdates.length,\n resetContainerCount: snapshot.containerRows.length,\n resetDocumentCount: snapshot.documentRows.length,\n };\n}\n\nexport async function clearRemoteSyncState(\n execSql: ExecSql,\n reset: RemoteResetInput,\n canCommit?: (() => boolean) | undefined,\n): Promise<ClearRemoteSyncStateResult> {\n return runOrganizationPresentationReset(\n execSql,\n reset.organizationId,\n async () => {\n await ensureSqlTables(execSql, clientSqlTables);\n const runtime = getClientSQLitePersistenceRuntime(execSql);\n const resetInTransaction = async (tx: ClientSQLiteTransactionScope) => {\n if (canCommit && !canCommit()) {\n throw new Error(\n \"Remote sync reset aborted: session identity changed\",\n );\n }\n const snapshot = await readRemoteSyncStateSnapshot(\n tx,\n reset.organizationId,\n );\n const plans = await buildResetPlans(tx, snapshot.documentRows);\n return clearRemoteSyncStateInTransaction({\n plans,\n reset,\n snapshot,\n tx,\n });\n };\n if (!canCommit) {\n return runtime.transaction(resetInTransaction);\n }\n const outcome = await runtime.guardedTransaction(\n resetInTransaction,\n canCommit,\n );\n if (!outcome.committed || !outcome.result) {\n throw new Error(\"Remote sync reset aborted: session identity changed\");\n }\n return outcome.result;\n },\n );\n}\n"]}
1
+ {"version":3,"file":"remoteReset.js","sourceRoot":"","sources":["remoteReset.ts"],"names":[],"mappings":"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","sourcesContent":["import { and, eq, inArray, or } from \"drizzle-orm\";\nimport { recordSupersededContainerBindingsInTransaction } from \"../../data/persistence/container-contents/supersededContainerBindings\";\nimport {\n deleteDocumentPlacementRowsByContainerIds,\n deleteDocumentPlacementRowsByDocumentIds,\n} from \"../../data/persistence/containers/documentContainerProjectionPersistence\";\nimport { clearDocumentDiscoveryEvidenceOnRemoteReset } from \"../../data/persistence/documents/documentDiscoveryReset\";\nimport {\n queuedUpdateRow,\n unqueueDocumentScopesInTransaction,\n} from \"../../data/sqlite/documentPendingUpdatePersistence\";\nimport { documentIntentLinkTargets } from \"../../data/sqlite/documentPlacementIntentSchema\";\nimport { CLEARED_DOCUMENT_SYNC_FAILURE } from \"../../data/sqlite/documentSyncFailurePersistence\";\nimport { organizationDataUsageSnapshots } from \"../../data/sqlite/organizationDataUsageSchema\";\nimport {\n organizationPresentationDenials,\n organizationReadModelContainerGrants,\n organizationReadModelDirectoryUsers,\n organizationReadModelGroupMembers,\n organizationReadModelGroups,\n organizationReadModelRequesters,\n organizationReadModelState,\n} from \"../../data/sqlite/organizationReadModelSchema\";\nimport {\n clientSqlTables,\n containerHydrationTombstones,\n containers,\n documentAttachmentBlobProjection,\n documentHistoryUpdates,\n documentPendingAttachments,\n documentProjection,\n documents,\n dormantContainerMetadata,\n dormantMetadataSweepRequests,\n inContainerIntentLanes,\n inLocalIntentLane,\n LOCAL_INTENT_LANES,\n localIntents,\n} from \"../../data/sqlite/schema\";\nimport {\n type ClientSQLiteTransactionScope,\n getClientSQLitePersistenceRuntime,\n} from \"../../data/sqlite/sqlitePersistenceRuntime\";\nimport type { ExecSql } from \"../../data/sqlite/sqlSchema\";\nimport { ensureSqlTables } from \"../../data/sqlite/sqlTableSchema\";\nimport { verifiedAccessManifestBundles } from \"../../data/sqlite/verifiedManifestBundleSchema\";\nimport { runOrganizationPresentationReset } from \"../organizations/readModel/organizationPresentationAccessState\";\nimport { clearResetPendingAttachments } from \"./remoteResetAttachments\";\nimport { remoteResetBatches } from \"./remoteResetBatches\";\nimport { clearRemoteResetSyncCursors } from \"./remoteResetCursorScope\";\nimport {\n buildResetPlans,\n type ResetAttachmentUpload,\n type ResetDocumentUpdate,\n} from \"./remoteResetPlans\";\nimport { clearRemoteResetPrincipalRows } from \"./remoteResetPrincipalScope\";\nimport {\n type RemoteResetInput,\n type RemoteSyncStateSnapshot,\n readRemoteSyncStateSnapshot,\n} from \"./remoteResetScope\";\n\nexport type {\n RemoteResetInput,\n RemoteResetReplacement,\n} from \"./remoteResetScope\";\n\nconst CONTAINER_CREATE_INTENT_TYPE = \"container.create\";\n\nexport interface ClearRemoteSyncStateResult {\n readonly clearedContainerCreateIntentCount: number;\n readonly clearedContainerMoveIntentCount: number;\n readonly clearedDocumentMoveIntentCount: number;\n readonly clearedPrincipalPolicyCount: number;\n readonly clearedSyncCursorCount: number;\n readonly queuedAttachmentUploadCount: number;\n readonly queuedContainerCreateCount: number;\n readonly queuedDocumentUpdateCount: number;\n readonly resetContainerCount: number;\n readonly resetDocumentCount: number;\n}\n\nasync function clearOrganizationPresentationRows(\n tx: ClientSQLiteTransactionScope,\n organizationId: string,\n): Promise<void> {\n for (const table of [\n organizationDataUsageSnapshots,\n organizationReadModelContainerGrants,\n organizationReadModelGroupMembers,\n organizationReadModelDirectoryUsers,\n organizationReadModelGroups,\n organizationReadModelRequesters,\n organizationReadModelState,\n organizationPresentationDenials,\n ] as const) {\n await tx\n .delete(table)\n .where(eq(table.organizationId, organizationId))\n .run();\n }\n}\n\ninterface ScopedRemoteRowsInput {\n attachmentUploads: readonly ResetAttachmentUpload[];\n organizationId: string;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}\n\nasync function clearScopedContainerRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n for (const containerBatch of remoteResetBatches(\n input.snapshot.containerIds,\n )) {\n await deleteDocumentPlacementRowsByContainerIds(input.tx, containerBatch);\n await input.tx\n .delete(localIntents)\n .where(\n and(\n inContainerIntentLanes(),\n inArray(localIntents.subjectId, containerBatch),\n ),\n )\n .run();\n await input.tx\n .delete(containerHydrationTombstones)\n .where(inArray(containerHydrationTombstones.containerId, containerBatch))\n .run();\n }\n}\n\nasync function clearScopedDocumentRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n const { snapshot, tx } = input;\n for (const documentIdBatch of remoteResetBatches(snapshot.oldDocumentIds)) {\n await deleteDocumentPlacementRowsByDocumentIds(tx, documentIdBatch);\n }\n await clearResetPendingAttachments({\n attachmentUploads: input.attachmentUploads,\n documentLocalIds: snapshot.documentLocalIds,\n tx,\n });\n for (const localIdBatch of remoteResetBatches(snapshot.documentLocalIds)) {\n const placementIntents = and(\n inLocalIntentLane(LOCAL_INTENT_LANES.documentPlacement),\n inArray(localIntents.localId, localIdBatch),\n );\n await tx\n .delete(documentIntentLinkTargets)\n .where(\n inArray(\n documentIntentLinkTargets.intentId,\n tx\n .select({ id: localIntents.id })\n .from(localIntents)\n .where(placementIntents),\n ),\n )\n .run();\n await tx.delete(localIntents).where(placementIntents).run();\n }\n // Sync failures clear with the document columns in resetRemoteColumns.\n for (const documentBatch of remoteResetBatches(snapshot.documentRows)) {\n await unqueueDocumentScopesInTransaction(tx, documentBatch);\n }\n}\n\nasync function clearScopedRemoteRows(\n input: ScopedRemoteRowsInput,\n): Promise<void> {\n const { organizationId, tx } = input;\n await clearOrganizationPresentationRows(tx, organizationId);\n for (const table of [\n dormantContainerMetadata,\n dormantMetadataSweepRequests,\n verifiedAccessManifestBundles,\n ] as const) {\n await tx\n .delete(table)\n .where(eq(table.organizationId, organizationId))\n .run();\n }\n await clearDocumentDiscoveryEvidenceOnRemoteReset(tx, {\n containerIds: input.snapshot.containerIds,\n documentIds: input.snapshot.oldDocumentIds,\n });\n await clearRemoteResetPrincipalRows(input);\n await clearScopedContainerRows(input);\n await clearScopedDocumentRows(input);\n await clearRemoteResetSyncCursors({\n containerIds: input.snapshot.containerIds,\n tx,\n });\n}\n\nasync function resetRemoteColumns(input: {\n now: string;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n const { now, reset, snapshot, tx } = input;\n for (const row of snapshot.documentRows) {\n await tx\n .update(documents)\n .set({\n accessEpoch: 1,\n accessStateHash: null,\n contentKeyBundle: null,\n documentId: null,\n documentKekTargets: null,\n documentManifestBundle: null,\n lastCommitLsn: null,\n pullContinuation: null,\n recoveryDocumentId: row.documentId ?? row.recoveryDocumentId,\n ...CLEARED_DOCUMENT_SYNC_FAILURE,\n updatedAt: now,\n })\n .where(\n and(\n eq(documents.appKind, row.appKind),\n eq(documents.localId, row.localId),\n ),\n )\n .run();\n }\n for (const localIdBatch of remoteResetBatches(snapshot.documentLocalIds)) {\n await tx\n .update(documentProjection)\n .set({\n documentId: null,\n organizationId:\n reset.replacement?.organizationId ?? reset.organizationId,\n })\n .where(inArray(documentProjection.localId, localIdBatch))\n .run();\n }\n // Replacement re-homes folders under their ids; the purged organization\n // can never bind them again on this device.\n for (const containerIds of reset.replacement\n ? remoteResetBatches(snapshot.containerIds)\n : []) {\n await recordSupersededContainerBindingsInTransaction(tx, {\n containerIds,\n organizationId: reset.organizationId,\n supersededAt: now,\n });\n }\n for (const row of snapshot.containerRows) {\n await tx\n .update(containers)\n .set({\n metadataDocumentId: null,\n organizationId:\n reset.replacement?.organizationId ?? reset.organizationId,\n parentId:\n reset.replacement && row.parentId === null\n ? reset.replacement.rootContainerId\n : row.parentId,\n serverCreatedAt: null,\n serverUpdatedAt: null,\n ...(reset.replacement ? { systemSlot: null } : {}),\n localUpdatedAt: now,\n })\n .where(eq(containers.id, row.id))\n .run();\n }\n}\n\nasync function queueResetDocumentUpdates(input: {\n documentUpdates: readonly ResetDocumentUpdate[];\n now: string;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n for (const updateBatch of remoteResetBatches(input.documentUpdates)) {\n await input.tx\n .insert(documentHistoryUpdates)\n .values(\n updateBatch.map((update) =>\n queuedUpdateRow({\n createdAt: input.now,\n origin: \"outbox\",\n pendingUpdate: update,\n scope: update,\n updateId: crypto.randomUUID(),\n }),\n ),\n )\n .run();\n }\n}\n\nasync function queueResetContainerCreates(input: {\n now: string;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<number> {\n const rows = input.snapshot.containerRows.flatMap((row) => {\n const parentId =\n row.parentId ?? input.reset.replacement?.rootContainerId ?? null;\n return parentId ? [{ id: row.id, parentId }] : [];\n });\n if (rows.length === 0) return 0;\n for (const rowBatch of remoteResetBatches(rows)) {\n await input.tx\n .insert(localIntents)\n .values(\n rowBatch.map((row) => ({\n id: crypto.randomUUID(),\n lane: LOCAL_INTENT_LANES.containerCreate,\n subjectId: row.id,\n targetContainerId: row.parentId,\n intentType: CONTAINER_CREATE_INTENT_TYPE,\n syncStatus: \"pending\" as const,\n remoteContainerId: null,\n remoteMetadataAccessStateHash: null,\n remoteMetadataDocumentId: null,\n lastError: null,\n createdAt: input.now,\n updatedAt: input.now,\n })),\n )\n .run();\n }\n return rows.length;\n}\n\nasync function queueResetAttachmentUploads(input: {\n attachmentUploads: readonly ResetAttachmentUpload[];\n now: string;\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n for (const attachmentBatch of remoteResetBatches(input.attachmentUploads)) {\n await input.tx\n .insert(documentPendingAttachments)\n .values(\n attachmentBatch.map((attachment) => ({\n ...attachment,\n createdAt: input.now,\n })),\n )\n .run();\n await input.tx\n .delete(documentAttachmentBlobProjection)\n .where(\n or(\n ...attachmentBatch.map((attachment) =>\n and(\n eq(documentAttachmentBlobProjection.localId, attachment.localId),\n eq(documentAttachmentBlobProjection.slotId, attachment.slotId),\n ),\n ),\n ),\n )\n .run();\n }\n}\n\nasync function clearRemoteSyncStateInTransaction(input: {\n plans: Awaited<ReturnType<typeof buildResetPlans>>;\n reset: RemoteResetInput;\n snapshot: RemoteSyncStateSnapshot;\n tx: ClientSQLiteTransactionScope;\n}): Promise<ClearRemoteSyncStateResult> {\n const now = new Date().toISOString();\n const { snapshot } = input;\n await clearScopedRemoteRows({\n attachmentUploads: input.plans.attachmentUploads,\n organizationId: input.reset.organizationId,\n snapshot,\n tx: input.tx,\n });\n await resetRemoteColumns({ now, reset: input.reset, snapshot, tx: input.tx });\n await queueResetDocumentUpdates({\n documentUpdates: input.plans.documentUpdates,\n now,\n tx: input.tx,\n });\n const queuedContainerCreateCount = await queueResetContainerCreates({\n now,\n reset: input.reset,\n snapshot,\n tx: input.tx,\n });\n await queueResetAttachmentUploads({\n attachmentUploads: input.plans.attachmentUploads,\n now,\n tx: input.tx,\n });\n return {\n clearedContainerCreateIntentCount:\n snapshot.clearedContainerCreateIntentCount,\n clearedContainerMoveIntentCount: snapshot.clearedContainerMoveIntentCount,\n clearedDocumentMoveIntentCount: snapshot.clearedDocumentMoveIntentCount,\n clearedPrincipalPolicyCount: snapshot.clearedPrincipalPolicyCount,\n clearedSyncCursorCount: snapshot.clearedSyncCursorCount,\n queuedAttachmentUploadCount: input.plans.attachmentUploads.length,\n queuedContainerCreateCount,\n queuedDocumentUpdateCount: input.plans.documentUpdates.length,\n resetContainerCount: snapshot.containerRows.length,\n resetDocumentCount: snapshot.documentRows.length,\n };\n}\n\nexport async function clearRemoteSyncState(\n execSql: ExecSql,\n reset: RemoteResetInput,\n canCommit?: (() => boolean) | undefined,\n): Promise<ClearRemoteSyncStateResult> {\n return runOrganizationPresentationReset(\n execSql,\n reset.organizationId,\n async () => {\n await ensureSqlTables(execSql, clientSqlTables);\n const runtime = getClientSQLitePersistenceRuntime(execSql);\n const resetInTransaction = async (tx: ClientSQLiteTransactionScope) => {\n if (canCommit && !canCommit()) {\n throw new Error(\n \"Remote sync reset aborted: session identity changed\",\n );\n }\n const snapshot = await readRemoteSyncStateSnapshot(\n tx,\n reset.organizationId,\n );\n const plans = await buildResetPlans(tx, snapshot.documentRows);\n return clearRemoteSyncStateInTransaction({\n plans,\n reset,\n snapshot,\n tx,\n });\n };\n if (!canCommit) {\n return runtime.transaction(resetInTransaction);\n }\n const outcome = await runtime.guardedTransaction(\n resetInTransaction,\n canCommit,\n );\n if (!outcome.committed || !outcome.result) {\n throw new Error(\"Remote sync reset aborted: session identity changed\");\n }\n return outcome.result;\n },\n );\n}\n"]}
@@ -1,61 +0,0 @@
1
- import { KeyingVerificationError, } from "../../internal/crypto/index.js";
2
- import { advanceKeyingCheckpointsAtomically, validateKeyingCheckpointsAtomically, } from "../persistence/keyingCheckpointAdvancePersistence.js";
3
- function objectKey(manifest) {
4
- const { objectKind, organizationId, objectId } = manifest.checkpoint;
5
- return JSON.stringify([objectKind, organizationId, objectId]);
6
- }
7
- function manifestsByObject(manifests) {
8
- const byObject = new Map();
9
- for (const manifest of manifests) {
10
- const key = objectKey(manifest);
11
- let byHash = byObject.get(key);
12
- if (!byHash) {
13
- byHash = new Map();
14
- byObject.set(key, byHash);
15
- }
16
- byHash.set(manifest.manifestHash, manifest);
17
- }
18
- return byObject;
19
- }
20
- function accessManifestCheckpointAdvances(input) {
21
- const evidenceByObject = manifestsByObject(input.verifiedManifests);
22
- const headsByObject = manifestsByObject(input.verifiedHeads);
23
- const advances = [];
24
- for (const [key, headsByHash] of headsByObject) {
25
- if (headsByHash.size !== 1) {
26
- throw new KeyingVerificationError("equivocation", `projection declares conflicting access manifest heads for ${key}`);
27
- }
28
- const head = headsByHash.values().next().value;
29
- if (!head) {
30
- continue;
31
- }
32
- const predecessors = [
33
- ...(evidenceByObject.get(key)?.values() ?? []),
34
- ].filter((manifest) => manifest.manifestHash !== head.manifestHash);
35
- advances.push({ head, predecessors });
36
- }
37
- return advances;
38
- }
39
- export async function validateAccessManifestCheckpoints(input) {
40
- await validateKeyingCheckpointsAtomically({
41
- access: accessManifestCheckpointAdvances(input),
42
- execSql: input.execSql,
43
- policies: input.policies,
44
- authorizationPolicies: input.authorizationPolicies,
45
- stillCurrent: input.stillCurrent,
46
- verifiedBundles: input.verifiedBundles,
47
- });
48
- }
49
- export async function enforceAccessManifestCheckpoints(input) {
50
- await advanceKeyingCheckpointsAtomically({
51
- access: accessManifestCheckpointAdvances(input),
52
- documentPurgeCheckpoint: input.documentPurgeCheckpoint,
53
- execSql: input.execSql,
54
- organizationId: input.organizationId,
55
- policies: input.policies,
56
- authorizationPolicies: input.authorizationPolicies,
57
- stillCurrent: input.stillCurrent,
58
- verifiedBundles: input.verifiedBundles,
59
- });
60
- }
61
- //# sourceMappingURL=accessManifestCheckpointEnforcement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessManifestCheckpointEnforcement.js","sourceRoot":"","sources":["accessManifestCheckpointEnforcement.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n KeyingVerificationError,\n type VerifiedAccessManifestCheckpointEvidence,\n type VerifiedPrincipalPolicySelection,\n} from \"@tearleads/crypto\";\nimport type { DocumentPurgeCheckpoint } from \"../persistence/documentPurgeCheckpointPersistence\";\nimport {\n type AccessManifestCheckpointAdvance,\n advanceKeyingCheckpointsAtomically,\n validateKeyingCheckpointsAtomically,\n} from \"../persistence/keyingCheckpointAdvancePersistence\";\nimport type { VerifiedManifestBundle } from \"../persistence/verifiedManifestBundlePersistence\";\nimport type { PrincipalPolicyCheckpointEvidence } from \"../principals/principalPolicyEvidence\";\nimport type { ExecSql } from \"../sqlite/sqlSchema\";\n\nfunction objectKey(manifest: VerifiedAccessManifestCheckpointEvidence): string {\n const { objectKind, organizationId, objectId } = manifest.checkpoint;\n return JSON.stringify([objectKind, organizationId, objectId]);\n}\n\nfunction manifestsByObject(\n manifests: readonly VerifiedAccessManifestCheckpointEvidence[],\n): Map<string, Map<string, VerifiedAccessManifestCheckpointEvidence>> {\n const byObject = new Map<\n string,\n Map<string, VerifiedAccessManifestCheckpointEvidence>\n >();\n for (const manifest of manifests) {\n const key = objectKey(manifest);\n let byHash = byObject.get(key);\n if (!byHash) {\n byHash = new Map();\n byObject.set(key, byHash);\n }\n byHash.set(manifest.manifestHash, manifest);\n }\n return byObject;\n}\n\nfunction accessManifestCheckpointAdvances(input: {\n readonly verifiedHeads: readonly VerifiedAccessManifestCheckpointEvidence[];\n readonly verifiedManifests: readonly VerifiedAccessManifestCheckpointEvidence[];\n}): AccessManifestCheckpointAdvance[] {\n const evidenceByObject = manifestsByObject(input.verifiedManifests);\n const headsByObject = manifestsByObject(input.verifiedHeads);\n const advances: AccessManifestCheckpointAdvance[] = [];\n\n for (const [key, headsByHash] of headsByObject) {\n if (headsByHash.size !== 1) {\n throw new KeyingVerificationError(\n \"equivocation\",\n `projection declares conflicting access manifest heads for ${key}`,\n );\n }\n const head = headsByHash.values().next().value;\n if (!head) {\n continue;\n }\n const predecessors = [\n ...(evidenceByObject.get(key)?.values() ?? []),\n ].filter((manifest) => manifest.manifestHash !== head.manifestHash);\n advances.push({ head, predecessors });\n }\n\n return advances;\n}\n\nexport async function validateAccessManifestCheckpoints(input: {\n readonly execSql: ExecSql;\n readonly policies: readonly PrincipalPolicyCheckpointEvidence[];\n readonly authorizationPolicies?:\n | readonly VerifiedPrincipalPolicySelection[]\n | undefined;\n readonly stillCurrent?: (() => boolean) | undefined;\n readonly verifiedBundles?: readonly VerifiedManifestBundle[] | undefined;\n readonly verifiedHeads: readonly VerifiedAccessManifestCheckpointEvidence[];\n readonly verifiedManifests: readonly VerifiedAccessManifestCheckpointEvidence[];\n}): Promise<void> {\n await validateKeyingCheckpointsAtomically({\n access: accessManifestCheckpointAdvances(input),\n execSql: input.execSql,\n policies: input.policies,\n authorizationPolicies: input.authorizationPolicies,\n stillCurrent: input.stillCurrent,\n verifiedBundles: input.verifiedBundles,\n });\n}\n\nexport async function enforceAccessManifestCheckpoints(input: {\n readonly execSql: ExecSql;\n readonly organizationId?: string | undefined;\n readonly documentPurgeCheckpoint?: DocumentPurgeCheckpoint | undefined;\n readonly policies: readonly PrincipalPolicyCheckpointEvidence[];\n readonly authorizationPolicies?:\n | readonly VerifiedPrincipalPolicySelection[]\n | undefined;\n readonly stillCurrent?: (() => boolean) | undefined;\n readonly verifiedBundles?: readonly VerifiedManifestBundle[] | undefined;\n readonly verifiedHeads: readonly VerifiedAccessManifestCheckpointEvidence[];\n readonly verifiedManifests: readonly VerifiedAccessManifestCheckpointEvidence[];\n}): Promise<void> {\n await advanceKeyingCheckpointsAtomically({\n access: accessManifestCheckpointAdvances(input),\n documentPurgeCheckpoint: input.documentPurgeCheckpoint,\n execSql: input.execSql,\n organizationId: input.organizationId,\n policies: input.policies,\n authorizationPolicies: input.authorizationPolicies,\n stillCurrent: input.stillCurrent,\n verifiedBundles: input.verifiedBundles,\n });\n}\n"]}