@tearleads/client-sdk 0.1.63 → 0.1.65

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 (1432) hide show
  1. package/client/organizations/organizationAccessRestoration.js +1 -1
  2. package/data/containers/shared/mutationAcknowledgement.js +1 -1
  3. package/data/containers/shared/mutationAcknowledgement.js.map +1 -1
  4. package/data/documents/blob/shared/projection.js +4 -4
  5. package/data/documents/blob/shared/projection.js.map +1 -1
  6. package/data/documents/shared/containerKek/containerKekCurrency.d.ts +22 -0
  7. package/data/documents/shared/containerKek/containerKekEntryVerification.js +15 -0
  8. package/data/documents/shared/containerKek/containerKekLogFetch.d.ts +18 -0
  9. package/data/documents/shared/containerKek/containerKekLogFetch.js +76 -0
  10. package/data/documents/shared/containerKek/containerKekPath.js +265 -0
  11. package/data/documents/shared/containerKek/containerKekPath.js.map +1 -0
  12. package/data/documents/shared/containerKek/containerKekPathHistory.d.ts +61 -0
  13. package/data/documents/shared/containerKek/containerKekPathHistory.js +223 -0
  14. package/data/documents/shared/containerKek/containerKekPathHistory.js.map +1 -0
  15. package/data/documents/shared/containerKek/containerKekPathVerification.d.ts +15 -0
  16. package/data/documents/shared/containerKek/containerKekPathVerification.js +23 -0
  17. package/data/documents/shared/containerKek/containerKekPathVerification.js.map +1 -0
  18. package/data/documents/shared/containerKek/containerKekWrapping.js +61 -0
  19. package/data/documents/shared/containerKek/containerKekWrapping.js.map +1 -0
  20. package/data/documents/shared/containerKek/keyringLogWalk.d.ts +45 -0
  21. package/data/documents/shared/containerKek/keyringLogWalk.js +204 -0
  22. package/data/documents/shared/containerKek/keyringRebuild.d.ts +60 -0
  23. package/data/documents/shared/containerKek/keyringRebuild.js +242 -0
  24. package/data/documents/shared/containerKek/keyringRebuild.js.map +1 -0
  25. package/data/documents/shared/crypto.js +2 -2
  26. package/data/documents/shared/crypto.js.map +1 -1
  27. package/data/documents/shared/events.js +1 -1
  28. package/data/documents/shared/projection/index.d.ts +25 -0
  29. package/data/documents/shared/projection/index.js +132 -0
  30. package/data/documents/shared/projection/index.js.map +1 -0
  31. package/data/documents/shared/projection/projectionContentKeys.d.ts +90 -0
  32. package/data/documents/shared/projection/projectionContentKeys.js +262 -0
  33. package/data/documents/shared/projection/projectionContentKeys.js.map +1 -0
  34. package/data/documents/shared/projection/projectionTargets.d.ts +38 -0
  35. package/data/documents/shared/projection/projectionTargets.js +164 -0
  36. package/data/documents/shared/projection/projectionTargets.js.map +1 -0
  37. package/data/documents/shared/responses.d.ts +1 -1
  38. package/data/documents/shared/responses.js +1 -1
  39. package/data/documents/shared/responses.js.map +1 -1
  40. package/data/documents/shared/sync/documentSyncUpdateDecryption.js +238 -0
  41. package/data/documents/shared/sync/documentSyncUpdateDecryption.js.map +1 -0
  42. package/data/documents/shared/sync/documentSyncUpdateIsolation.d.ts +55 -0
  43. package/data/documents/shared/sync/documentSyncUpdateIsolation.js +298 -0
  44. package/data/documents/shared/sync/documentSyncUpdateIsolation.js.map +1 -0
  45. package/data/documents/shared/sync/mutationAcknowledgement.js +10 -0
  46. package/data/documents/shared/sync/mutationAcknowledgement.js.map +1 -0
  47. package/data/documents/shared/sync/pullContinuation.js +53 -0
  48. package/data/documents/shared/sync/syncPagination.d.ts +20 -0
  49. package/data/documents/shared/sync/syncPagination.js +109 -0
  50. package/data/documents/shared/sync/syncPagination.js.map +1 -0
  51. package/data/documents/shared/sync/syncResponseAuthorization.js +63 -0
  52. package/data/documents/shared/sync/syncResponseAuthorization.js.map +1 -0
  53. package/data/documents/shared/sync/syncResponses.d.ts +11 -0
  54. package/data/documents/shared/sync/syncResponses.js +285 -0
  55. package/data/documents/shared/sync/syncResponses.js.map +1 -0
  56. package/data/documents/shared/sync/syncSubmitFailure.d.ts +9 -0
  57. package/data/documents/shared/types.d.ts +3 -3
  58. package/data/documents/shared/types.js.map +1 -1
  59. package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js +61 -0
  60. package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js.map +1 -0
  61. package/data/keyingProjectionVerification/checkpoints/bundleVerification.js +61 -0
  62. package/data/keyingProjectionVerification/checkpoints/bundleVerification.js.map +1 -0
  63. package/data/keyingProjectionVerification/checkpoints/checkpointContext.d.ts +45 -0
  64. package/data/keyingProjectionVerification/checkpoints/checkpointContext.js +120 -0
  65. package/data/keyingProjectionVerification/checkpoints/checkpointContext.js.map +1 -0
  66. package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js +64 -0
  67. package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js.map +1 -0
  68. package/data/keyingProjectionVerification/container/containerAncestorCitations.js +164 -0
  69. package/data/keyingProjectionVerification/container/containerAncestorCitations.js.map +1 -0
  70. package/data/keyingProjectionVerification/container/containerCreateManifest.js +28 -0
  71. package/data/keyingProjectionVerification/container/containerDestinationVerification.js +51 -0
  72. package/data/keyingProjectionVerification/container/containerDestinationVerification.js.map +1 -0
  73. package/data/keyingProjectionVerification/container/containerManifestVerification.js +285 -0
  74. package/data/keyingProjectionVerification/container/containerManifestVerification.js.map +1 -0
  75. package/data/keyingProjectionVerification/container/containerPathVerification.js +51 -0
  76. package/data/keyingProjectionVerification/container/containerPathVerification.js.map +1 -0
  77. package/data/keyingProjectionVerification/container/containerProjectionVerification.d.ts +25 -0
  78. package/data/keyingProjectionVerification/container/containerProjectionVerification.js +254 -0
  79. package/data/keyingProjectionVerification/container/containerProjectionVerification.js.map +1 -0
  80. package/data/keyingProjectionVerification/document/documentDependencyPaths.d.ts +17 -0
  81. package/data/keyingProjectionVerification/document/documentDependencyPaths.js +70 -0
  82. package/data/keyingProjectionVerification/document/documentDependencyPaths.js.map +1 -0
  83. package/data/keyingProjectionVerification/document/documentManifestPolicies.js +32 -0
  84. package/data/keyingProjectionVerification/document/documentManifestPolicies.js.map +1 -0
  85. package/data/keyingProjectionVerification/document/documentManifestPredecessor.js +12 -0
  86. package/data/keyingProjectionVerification/document/documentManifestVerification.js +135 -0
  87. package/data/keyingProjectionVerification/document/documentManifestVerification.js.map +1 -0
  88. package/data/keyingProjectionVerification/document/documentProjectionVerification.d.ts +24 -0
  89. package/data/keyingProjectionVerification/document/documentProjectionVerification.js +172 -0
  90. package/data/keyingProjectionVerification/document/documentProjectionVerification.js.map +1 -0
  91. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js +100 -0
  92. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js.map +1 -0
  93. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js +8 -0
  94. package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js.map +1 -0
  95. package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js +177 -0
  96. package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js.map +1 -0
  97. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js +17 -0
  98. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js.map +1 -0
  99. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js +55 -0
  100. package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js.map +1 -0
  101. package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js +116 -0
  102. package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js.map +1 -0
  103. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.d.ts +34 -0
  104. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js +208 -0
  105. package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js.map +1 -0
  106. package/data/keyingProjectionVerification/index.d.ts +4 -4
  107. package/data/keyingProjectionVerification/index.js +4 -4
  108. package/data/keyingProjectionVerification/index.js.map +1 -1
  109. package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js +45 -0
  110. package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js.map +1 -0
  111. package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js +41 -0
  112. package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js.map +1 -0
  113. package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js +76 -0
  114. package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js.map +1 -0
  115. package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js +252 -0
  116. package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js.map +1 -0
  117. package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js +63 -0
  118. package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js.map +1 -0
  119. package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js +23 -0
  120. package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js.map +1 -0
  121. package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js +72 -0
  122. package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js.map +1 -0
  123. package/data/persistence/container-contents/containerContentsPersistence.js +3 -3
  124. package/data/persistence/container-contents/containerContentsPersistence.js.map +1 -1
  125. package/data/persistence/container-contents/containerContentsPersistenceTypes.d.ts +2 -2
  126. package/data/persistence/container-contents/containerContentsPersistenceTypes.js.map +1 -1
  127. package/data/persistence/container-contents/containerCreateIntentSettlement.js +1 -1
  128. package/data/persistence/container-contents/containerDeletionPersistence.js +2 -2
  129. package/data/persistence/container-contents/containerDocumentReassignment.js +2 -2
  130. package/data/persistence/container-contents/containerDocumentReassignment.js.map +1 -1
  131. package/data/persistence/container-contents/containerHydrationPersistence.js +3 -3
  132. package/data/persistence/container-contents/containerHydrationPersistence.js.map +1 -1
  133. package/data/persistence/container-contents/containerIntentPersistence.js +1 -1
  134. package/data/persistence/container-contents/containerMetadataMutationPersistence.js +5 -5
  135. package/data/persistence/container-contents/containerMetadataMutationPersistence.js.map +1 -1
  136. package/data/persistence/container-contents/containerMetadataPullContinuationPersistence.js +1 -1
  137. package/data/persistence/container-contents/containerMetadataRows.js +3 -3
  138. package/data/persistence/container-contents/containerMetadataRows.js.map +1 -1
  139. package/data/persistence/container-contents/containerMoveAbandonPersistence.js +1 -1
  140. package/data/persistence/container-contents/containerMoveIntentRows.js +1 -1
  141. package/data/persistence/container-contents/containerPendingUpdatePersistence.js +3 -3
  142. package/data/persistence/container-contents/containerPendingUpdatePersistence.js.map +1 -1
  143. package/data/persistence/container-contents/containerRebindPersistence.js +1 -1
  144. package/data/persistence/container-contents/containerReconcilePersistence.js +2 -2
  145. package/data/persistence/container-contents/containerRecoveryPersistence.js +1 -1
  146. package/data/persistence/container-contents/containerRemovalWork.js +3 -3
  147. package/data/persistence/container-contents/containerRemovalWork.js.map +1 -1
  148. package/data/persistence/container-contents/containerStructuralRepair.js +1 -1
  149. package/data/persistence/container-contents/documentLinkRemovalRepair.js +2 -2
  150. package/data/persistence/container-contents/documentLinkRemovalRepair.js.map +1 -1
  151. package/data/persistence/container-contents/documentMoveIntentPersistence.js +2 -2
  152. package/data/persistence/container-contents/documentMoveIntentPersistence.js.map +1 -1
  153. package/data/persistence/container-contents/documentPlacementIntentEnqueue.js +2 -2
  154. package/data/persistence/container-contents/documentPlacementIntentEnqueue.js.map +1 -1
  155. package/data/persistence/container-contents/documentPurgePlacement.js +1 -1
  156. package/data/persistence/container-contents/dormantContainerMetadata.js +1 -1
  157. package/data/persistence/container-contents/dormantMetadataSweep.js +1 -1
  158. package/data/persistence/container-contents/pendingContainerCreate.js +1 -1
  159. package/data/persistence/container-contents/supersededContainerBindings.js +1 -1
  160. package/data/persistence/containers/containerPersistence.js +1 -1
  161. package/data/persistence/containers/containerSyncWatermarkPersistence.js +1 -1
  162. package/data/persistence/containers/documentContainerProjectionPersistence.js +1 -1
  163. package/data/persistence/containers/documentPlacement.js +1 -1
  164. package/data/persistence/documents/containerDocumentTombstoneHoldsPersistence.js +1 -1
  165. package/data/persistence/documents/documentDiscoveryEvidencePersistence.js +3 -3
  166. package/data/persistence/documents/documentDiscoveryEvidencePersistence.js.map +1 -1
  167. package/data/persistence/documents/documentDiscoveryReset.js +1 -1
  168. package/data/persistence/documents/documentDiscoveryReset.js.map +1 -1
  169. package/data/persistence/documents/documentsPersistence.js +3 -3
  170. package/data/persistence/documents/documentsPersistence.js.map +1 -1
  171. package/data/persistence/documents/internal/attachmentStagingPersistence.js +1 -1
  172. package/data/persistence/documents/internal/containerDocumentTombstoneHolds.js +1 -1
  173. package/data/persistence/documents/internal/containerDocumentTombstones.js +1 -1
  174. package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js +2 -2
  175. package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js.map +1 -1
  176. package/data/persistence/documents/internal/discardDocument.js +3 -3
  177. package/data/persistence/documents/internal/discardDocument.js.map +1 -1
  178. package/data/persistence/documents/internal/documentDeletionPersistence.js +4 -4
  179. package/data/persistence/documents/internal/documentDeletionPersistence.js.map +1 -1
  180. package/data/persistence/documents/internal/documentMutationPersistence.js +5 -5
  181. package/data/persistence/documents/internal/documentMutationPersistence.js.map +1 -1
  182. package/data/persistence/documents/internal/documentProjectionRows.js +1 -1
  183. package/data/persistence/documents/internal/documentPullContinuationPersistence.js +1 -1
  184. package/data/persistence/documents/internal/documentRows.js +2 -2
  185. package/data/persistence/documents/internal/documentRows.js.map +1 -1
  186. package/data/persistence/documents/internal/documentSummaryQueries.js +1 -1
  187. package/data/persistence/documents/internal/ensureDocumentsSchema.js +2 -2
  188. package/data/persistence/documents/internal/hydratedAttachmentPersistence.js +1 -1
  189. package/data/persistence/documents/internal/orphanSideRows.js +2 -2
  190. package/data/persistence/documents/internal/orphanSideRows.js.map +1 -1
  191. package/data/persistence/documents/internal/pendingCreateAdoption.js +1 -1
  192. package/data/persistence/documents/internal/rowQueryPersistence.js +2 -2
  193. package/data/persistence/documents/internal/syncQueuePersistence.js +3 -3
  194. package/data/persistence/documents/internal/syncQueuePersistence.js.map +1 -1
  195. package/data/persistence/documents/types.d.ts +3 -3
  196. package/data/persistence/documents/types.js.map +1 -1
  197. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.d.ts +10 -0
  198. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js +43 -0
  199. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js.map +1 -0
  200. package/data/persistence/keyingCheckpoints/keyingCheckpointAdvancePersistence.js +222 -0
  201. package/data/persistence/keyingCheckpoints/keyingCheckpointAdvancePersistence.js.map +1 -0
  202. package/data/persistence/keyingCheckpoints/keyingCheckpointEvidence.js +32 -0
  203. package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js +133 -0
  204. package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js.map +1 -0
  205. package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.d.ts +53 -0
  206. package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.js +167 -0
  207. package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.js.map +1 -0
  208. package/data/persistence/keyingCheckpoints/organizationReplacementCheckpointPersistence.js +72 -0
  209. package/data/persistence/keyingCheckpoints/organizationReplacementCheckpointPersistence.js.map +1 -0
  210. package/data/persistence/keyingCheckpoints/principalAuthorizationCheckpoints.js +29 -0
  211. package/data/persistence/keyingCheckpoints/principalAuthorizationCheckpoints.js.map +1 -0
  212. package/data/persistence/organizationFounderPersistence.js +2 -2
  213. package/data/persistence/organizationFounderPersistence.js.map +1 -1
  214. package/data/persistence/organizations/organizationAccessRevocationPersistence.js +3 -3
  215. package/data/persistence/organizations/organizationAccessRevocationPersistence.js.map +1 -1
  216. package/data/persistence/organizations/organizationDataUsagePersistence.js +2 -2
  217. package/data/persistence/organizations/organizationDataUsagePersistence.js.map +1 -1
  218. package/data/persistence/organizations/organizationGroupNamePersistence.js +2 -2
  219. package/data/persistence/organizations/organizationGroupNamePersistence.js.map +1 -1
  220. package/data/persistence/organizations/organizationPresentationDenialPersistence.js +2 -2
  221. package/data/persistence/organizations/organizationPresentationDenialPersistence.js.map +1 -1
  222. package/data/persistence/organizations/organizationProfileDocumentPointers.js +2 -2
  223. package/data/persistence/organizations/organizationProfileDocumentPointers.js.map +1 -1
  224. package/data/persistence/organizations/organizationProvisioningAttemptPersistence.js +1 -1
  225. package/data/persistence/organizations/organizationProvisioningAttemptPersistence.js.map +1 -1
  226. package/data/persistence/organizations/organizationReadModelGrantPersistence.js +1 -1
  227. package/data/persistence/organizations/organizationReadModelGrantPersistence.js.map +1 -1
  228. package/data/persistence/organizations/organizationReadModelMemberLoad.js +1 -1
  229. package/data/persistence/organizations/organizationReadModelMemberLoad.js.map +1 -1
  230. package/data/persistence/organizations/organizationReadModelMembershipPersistence.js +1 -1
  231. package/data/persistence/organizations/organizationReadModelMembershipPersistence.js.map +1 -1
  232. package/data/persistence/organizations/organizationReadModelPersistence.js +3 -3
  233. package/data/persistence/organizations/organizationReadModelPersistence.js.map +1 -1
  234. package/data/persistence/organizations/organizationReadModelProjection.js +1 -1
  235. package/data/persistence/organizations/organizationReadModelProjection.js.map +1 -1
  236. package/data/persistence/organizations/organizationReadModelPurge.js +3 -3
  237. package/data/persistence/organizations/organizationReadModelPurge.js.map +1 -1
  238. package/data/persistence/principalCurrentAcknowledgementPersistence.d.ts +3 -3
  239. package/data/persistence/principalCurrentAcknowledgementPersistence.js +10 -10
  240. package/data/persistence/principalCurrentAcknowledgementPersistence.js.map +1 -1
  241. package/data/persistence/principalHistory/principalHistoryEvidencePersistence.d.ts +32 -0
  242. package/data/persistence/principalHistory/principalHistoryEvidencePersistence.js +92 -0
  243. package/data/persistence/principalHistory/principalHistoryEvidencePersistence.js.map +1 -0
  244. package/data/persistence/principalHistory/principalHistoryIncompleteRetention.js +26 -0
  245. package/data/persistence/principalHistory/principalHistoryIncompleteRetention.js.map +1 -0
  246. package/data/persistence/principalHistory/principalHistoryNodeRetention.js +201 -0
  247. package/data/persistence/principalHistory/principalHistoryNodeRetention.js.map +1 -0
  248. package/data/persistence/principalHistory/principalHistoryPrefixPersistence.d.ts +29 -0
  249. package/data/persistence/principalHistory/principalHistoryPrefixPersistence.js +102 -0
  250. package/data/persistence/principalHistory/principalHistoryPrefixPersistence.js.map +1 -0
  251. package/data/persistence/principalHistory/principalHistoryRootOwnership.js +71 -0
  252. package/data/persistence/principalHistory/principalHistoryRootOwnership.js.map +1 -0
  253. package/data/persistence/principalHistory/principalHistoryStagePersistence.d.ts +15 -0
  254. package/data/persistence/principalHistory/principalHistoryStagePersistence.js +96 -0
  255. package/data/persistence/principalHistory/principalHistoryStagePersistence.js.map +1 -0
  256. package/data/persistence/principalHistory/principalHistoryStageRetention.js +45 -0
  257. package/data/persistence/principalHistory/principalHistoryStageRetention.js.map +1 -0
  258. package/data/persistence/principalHistory/principalHistoryUnpublishedRetention.js +64 -0
  259. package/data/persistence/principalHistory/principalHistoryUnpublishedRetention.js.map +1 -0
  260. package/data/persistence/principalKeys/principalGrantRetirementPersistence.d.ts +9 -0
  261. package/data/persistence/principalKeys/principalGrantRetirementPersistence.js +43 -0
  262. package/data/persistence/principalKeys/principalGrantRetirementPersistence.js.map +1 -0
  263. package/data/persistence/principalKeys/principalKeyEnvelopeArchivePersistence.js +63 -0
  264. package/data/persistence/principalKeys/principalKeyEnvelopeArchivePersistence.js.map +1 -0
  265. package/data/persistence/principalKeys/principalKeyEnvelopeCandidates.js +87 -0
  266. package/data/persistence/principalKeys/principalKeyEnvelopeCandidates.js.map +1 -0
  267. package/data/persistence/principalMutationJournalPersistence.d.ts +1 -1
  268. package/data/persistence/principalMutationJournalPersistence.js +1 -1
  269. package/data/persistence/principalMutationJournalPersistence.js.map +1 -1
  270. package/data/persistence/principalPolicy/principalPolicyBundleIntegrity.js +49 -0
  271. package/data/persistence/principalPolicy/principalPolicyBundleIntegrity.js.map +1 -0
  272. package/data/persistence/principalPolicy/principalPolicyCheckpointSelection.js +26 -0
  273. package/data/persistence/principalPolicy/principalPolicyCheckpointSelection.js.map +1 -0
  274. package/data/persistence/principalPolicy/principalPolicyOrganizationPersistence.js +42 -0
  275. package/data/persistence/principalPolicy/principalPolicyOrganizationPersistence.js.map +1 -0
  276. package/data/persistence/principalPolicy/principalPolicyPersistence.js +279 -0
  277. package/data/persistence/principalPolicy/principalPolicyPersistence.js.map +1 -0
  278. package/data/persistence/principalPolicy/principalPolicyReferenceCheckpoint.js +27 -0
  279. package/data/persistence/principalPolicy/principalPolicyReferenceCheckpoint.js.map +1 -0
  280. package/data/persistence/principalPolicy/principalPolicyReferenceIndexPersistence.js +115 -0
  281. package/data/persistence/principalPolicy/principalPolicyReferenceIndexPersistence.js.map +1 -0
  282. package/data/persistence/principalPolicy/principalPolicyReferencePersistence.js +215 -0
  283. package/data/persistence/principalPolicy/principalPolicyReferencePersistence.js.map +1 -0
  284. package/data/persistence/principalPolicy/verifiedPrincipalPolicyBundle.js +33 -0
  285. package/data/persistence/principalPolicy/verifiedPrincipalPolicyBundle.js.map +1 -0
  286. package/data/persistence/principalPolicy/verifiedPrincipalPolicyCurrent.js +56 -0
  287. package/data/persistence/principalPolicy/verifiedPrincipalPolicyCurrent.js.map +1 -0
  288. package/data/persistence/principalPolicy/verifiedPrincipalPolicyRetentionPersistence.js +18 -0
  289. package/data/persistence/principalPolicy/verifiedPrincipalPolicyRetentionPersistence.js.map +1 -0
  290. package/data/persistence/securityIncidentPersistence.js +1 -1
  291. package/data/persistence/securityIncidentPersistence.js.map +1 -1
  292. package/data/persistence/trustedUserIdentityPinPersistence.js +1 -1
  293. package/data/persistence/verifiedManifestBundlePersistence.d.ts +1 -1
  294. package/data/persistence/verifiedManifestBundlePersistence.js +4 -4
  295. package/data/persistence/verifiedManifestBundlePersistence.js.map +1 -1
  296. package/data/principals/organizationGroupRoles.js +2 -2
  297. package/data/principals/organizationGroupRoles.js.map +1 -1
  298. package/data/principals/principalHistoryPrefixProtection.js.map +1 -1
  299. package/data/principals/principalHistoryStageProtection.js.map +1 -1
  300. package/data/principals/principalPolicyCrypto.js +1 -1
  301. package/data/principals/principalPolicyCrypto.js.map +1 -1
  302. package/data/sqlite/documentPersistence/documentHistoryPersistence.d.ts +86 -0
  303. package/data/sqlite/documentPersistence/documentHistoryPersistence.js +304 -0
  304. package/data/sqlite/documentPersistence/documentHistoryPersistence.js.map +1 -0
  305. package/data/sqlite/documentPersistence/documentOrphanBlobReclaims.js +6 -0
  306. package/data/sqlite/documentPersistence/documentOrphanBlobReclaims.js.map +1 -0
  307. package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.d.ts +103 -0
  308. package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.js +243 -0
  309. package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.js.map +1 -0
  310. package/data/sqlite/documentPersistence/documentPersistenceTypes.d.ts +79 -0
  311. package/data/sqlite/documentPersistence/documentPersistenceTypes.js.map +1 -0
  312. package/data/sqlite/documentPersistence/documentRecordPersistence.d.ts +275 -0
  313. package/data/sqlite/documentPersistence/documentRecordPersistence.js +103 -0
  314. package/data/sqlite/documentPersistence/documentRecordPersistence.js.map +1 -0
  315. package/data/sqlite/documentPersistence/documentSyncFailurePersistence.d.ts +39 -0
  316. package/data/sqlite/documentPersistence/documentSyncFailurePersistence.js +81 -0
  317. package/data/sqlite/documentPersistence/documentSyncFailurePersistence.js.map +1 -0
  318. package/data/sqlite/documentPersistence/index.d.ts +22 -0
  319. package/data/sqlite/documentPersistence/index.js +35 -0
  320. package/data/sqlite/documentPersistence/index.js.map +1 -0
  321. package/data/sqlite/schema/containerSchema.d.ts +1193 -0
  322. package/data/sqlite/schema/containerSchema.js +103 -0
  323. package/data/sqlite/schema/containerSchema.js.map +1 -0
  324. package/data/sqlite/schema/index.d.ts +8055 -0
  325. package/data/sqlite/schema/index.js +525 -0
  326. package/data/sqlite/schema/index.js.map +1 -0
  327. package/data/sqlite/schema/organizationDataUsageSchema.js +34 -0
  328. package/data/sqlite/schema/organizationDataUsageSchema.js.map +1 -0
  329. package/data/sqlite/schema/organizationProvisioningAttemptSchema.js +23 -0
  330. package/data/sqlite/schema/organizationProvisioningAttemptSchema.js.map +1 -0
  331. package/data/sqlite/schema/organizationReadModelTableRegistry.d.ts +1332 -0
  332. package/data/sqlite/schema/organizationReadModelTableRegistry.js +31 -0
  333. package/data/sqlite/schema/organizationReadModelTableRegistry.js.map +1 -0
  334. package/data/sqlite/schema/principalHistoryEvidenceSchema.d.ts +308 -0
  335. package/data/sqlite/schema/principalHistoryEvidenceSchema.js +48 -0
  336. package/data/sqlite/schema/principalHistoryEvidenceSchema.js.map +1 -0
  337. package/data/sqlite/schema/principalHistoryNodeRetentionSchema.js +30 -0
  338. package/data/sqlite/schema/principalHistoryNodeRetentionSchema.js.map +1 -0
  339. package/data/sqlite/schema/principalHistoryRetentionSchema.js +25 -0
  340. package/data/sqlite/schema/principalHistoryRetentionSchema.js.map +1 -0
  341. package/data/sqlite/schema/principalHistoryStageSchema.d.ts +161 -0
  342. package/data/sqlite/schema/principalHistoryStageSchema.js +34 -0
  343. package/data/sqlite/schema/principalHistoryStageSchema.js.map +1 -0
  344. package/data/sqlite/schema/principalMutationJournalSchema.d.ts +85 -0
  345. package/data/sqlite/schema/principalMutationJournalSchema.js +13 -0
  346. package/data/sqlite/schema/principalMutationJournalSchema.js.map +1 -0
  347. package/data/sqlite/schema/principalPolicySchema.js +72 -0
  348. package/data/sqlite/schema/principalPolicySchema.js.map +1 -0
  349. package/data/sqlite/schema/securityIncidentSchema.d.ts +224 -0
  350. package/data/sqlite/schema/securityIncidentSchema.js +28 -0
  351. package/data/sqlite/schema/securityIncidentSchema.js.map +1 -0
  352. package/data/sqlite/schema/verifiedManifestBundleSchema.d.ts +174 -0
  353. package/data/sqlite/schema/verifiedManifestBundleSchema.js +36 -0
  354. package/data/sqlite/schema/verifiedManifestBundleSchema.js.map +1 -0
  355. package/data/sqlite/sqlitePersistenceRuntime.d.ts +1 -1
  356. package/data/sqlite/sqlitePersistenceRuntime.js +1 -1
  357. package/package.json +1 -1
  358. package/sqlite/index.d.ts +1 -1
  359. package/sqlite/index.js +1 -1
  360. package/stores/container-contents/accessRestorationSweep.js +1 -1
  361. package/stores/container-contents/accessRestorationSweep.js.map +1 -1
  362. package/stores/container-contents/containerContentsStore.d.ts +1 -1
  363. package/stores/container-contents/containerContentsStore.js +12 -12
  364. package/stores/container-contents/containerContentsStore.js.map +1 -1
  365. package/stores/container-contents/containerState/containerStateMap.js.map +1 -0
  366. package/stores/container-contents/containerState/containerStatePersistence.js +57 -0
  367. package/stores/container-contents/containerState/containerStatePersistence.js.map +1 -0
  368. package/stores/container-contents/containerState/missingContainerState.js +10 -0
  369. package/stores/container-contents/containerState/missingContainerState.js.map +1 -0
  370. package/stores/container-contents/containerState/missingSyncedContainerState.js.map +1 -0
  371. package/stores/container-contents/containerState/reconcilableContainer.d.ts +48 -0
  372. package/stores/container-contents/containerState/reconcilableContainer.js.map +1 -0
  373. package/stores/container-contents/documentWork/documentRecovery.js +114 -0
  374. package/stores/container-contents/documentWork/documentRecovery.js.map +1 -0
  375. package/stores/container-contents/documentWork/documentRotation.js +13 -0
  376. package/stores/container-contents/documentWork/documentRotation.js.map +1 -0
  377. package/stores/container-contents/documentWork/index.js +29 -0
  378. package/stores/container-contents/documentWork/index.js.map +1 -0
  379. package/stores/container-contents/hydration/backgroundHydration.js +32 -0
  380. package/stores/container-contents/hydration/backgroundHydration.js.map +1 -0
  381. package/stores/container-contents/hydration/remoteHydrationRequest.js +245 -0
  382. package/stores/container-contents/hydration/remoteHydrationRequest.js.map +1 -0
  383. package/stores/container-contents/hydration/startupHydration.js +110 -0
  384. package/stores/container-contents/hydration/startupHydration.js.map +1 -0
  385. package/stores/container-contents/index.d.ts +3 -3
  386. package/stores/container-contents/index.js +2 -2
  387. package/stores/container-contents/index.js.map +1 -1
  388. package/stores/container-contents/localRefresh.js +2 -2
  389. package/stores/container-contents/localRefresh.js.map +1 -1
  390. package/stores/container-contents/operations/containerPurgeCore.js +98 -0
  391. package/stores/container-contents/operations/containerPurgeCore.js.map +1 -0
  392. package/stores/container-contents/operations/emptyTrashOperation.js.map +1 -0
  393. package/stores/container-contents/operations/groupRewrapOperation.js +52 -0
  394. package/stores/container-contents/operations/groupRewrapOperation.js.map +1 -0
  395. package/stores/container-contents/operations/index.js +301 -0
  396. package/stores/container-contents/operations/index.js.map +1 -0
  397. package/stores/container-contents/operations/purgeContainerOperation.js.map +1 -0
  398. package/stores/container-contents/operations/reportShareFailure.js +44 -0
  399. package/stores/container-contents/operations/reportShareFailure.js.map +1 -0
  400. package/stores/container-contents/operations/setContainerIconOperation.js +47 -0
  401. package/stores/container-contents/operations/setContainerIconOperation.js.map +1 -0
  402. package/stores/container-contents/operations/shareOperations.js +90 -0
  403. package/stores/container-contents/operations/shareOperations.js.map +1 -0
  404. package/stores/container-contents/remoteEvents/remoteBackedContainerState.js.map +1 -0
  405. package/stores/container-contents/remoteEvents/remoteContainerIngestion.js +59 -0
  406. package/stores/container-contents/remoteEvents/remoteContainerIngestion.js.map +1 -0
  407. package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js +36 -0
  408. package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js.map +1 -0
  409. package/stores/container-contents/remoteEvents/remoteEventSync.js +38 -0
  410. package/stores/container-contents/remoteEvents/remoteEventSync.js.map +1 -0
  411. package/stores/container-contents/remoteWrites/remoteWriteGuards.js +54 -0
  412. package/stores/container-contents/remoteWrites/remoteWriteGuards.js.map +1 -0
  413. package/stores/container-contents/remoteWrites/remoteWriteQueue.js +51 -0
  414. package/stores/container-contents/remoteWrites/remoteWriteQueue.js.map +1 -0
  415. package/stores/container-contents/remoteWrites/writeGeneration.js.map +1 -0
  416. package/stores/container-contents/state.d.ts +1 -1
  417. package/stores/container-contents/state.js +2 -2
  418. package/stores/container-contents/state.js.map +1 -1
  419. package/stores/container-contents/syncAgent/index.d.ts +8 -0
  420. package/stores/container-contents/syncAgent/index.js +241 -0
  421. package/stores/container-contents/syncAgent/index.js.map +1 -0
  422. package/stores/container-contents/syncAgent/metadataSyncSignal.js +37 -0
  423. package/stores/container-contents/syncAgent/metadataSyncSignal.js.map +1 -0
  424. package/stores/container-contents/syncAgent/syncAgentTypes.d.ts +81 -0
  425. package/stores/container-contents/syncAgent/syncAgentTypes.js.map +1 -0
  426. package/stores/container-contents/syncAgent/syncLaneIteration.js +237 -0
  427. package/stores/container-contents/syncAgent/syncLaneIteration.js.map +1 -0
  428. package/stores/container-contents/systemContainers/existingSystemContainer.js +58 -0
  429. package/stores/container-contents/systemContainers/existingSystemContainer.js.map +1 -0
  430. package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js +44 -0
  431. package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js.map +1 -0
  432. package/stores/container-contents/systemContainers/systemContainerHydration.js +30 -0
  433. package/stores/container-contents/systemContainers/systemContainerHydration.js.map +1 -0
  434. package/stores/container-contents/systemContainers/systemContainerIcon.js +42 -0
  435. package/stores/container-contents/systemContainers/systemContainerIcon.js.map +1 -0
  436. package/stores/container-contents/systemContainers/systemContainerLookup.js.map +1 -0
  437. package/stores/container-contents/systemContainers/systemContainerPostCreate.js +109 -0
  438. package/stores/container-contents/systemContainers/systemContainerPostCreate.js.map +1 -0
  439. package/stores/container-contents/systemContainers/systemContainerPromotion.js +49 -0
  440. package/stores/container-contents/systemContainers/systemContainerPromotion.js.map +1 -0
  441. package/stores/container-contents/types.d.ts +2 -2
  442. package/stores/container-contents/types.js.map +1 -1
  443. package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js +39 -0
  444. package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js.map +1 -0
  445. package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js +84 -0
  446. package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js.map +1 -0
  447. package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js +97 -0
  448. package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js.map +1 -0
  449. package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js +49 -0
  450. package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js.map +1 -0
  451. package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js +95 -0
  452. package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js.map +1 -0
  453. package/stores/documents/documentStore/attachments/attachmentDetachState.js +54 -0
  454. package/stores/documents/documentStore/attachments/attachmentDetachState.js.map +1 -0
  455. package/stores/documents/documentStore/attachments/attachmentHydration.js +90 -0
  456. package/stores/documents/documentStore/attachments/attachmentHydration.js.map +1 -0
  457. package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js +53 -0
  458. package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js.map +1 -0
  459. package/stores/documents/documentStore/attachments/attachmentIntents.js +39 -0
  460. package/stores/documents/documentStore/attachments/attachmentIntents.js.map +1 -0
  461. package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js +37 -0
  462. package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js.map +1 -0
  463. package/stores/documents/documentStore/attachments/attachmentPersistFollowup.js.map +1 -0
  464. package/stores/documents/documentStore/attachments/attachmentPersistence.js +106 -0
  465. package/stores/documents/documentStore/attachments/attachmentPersistence.js.map +1 -0
  466. package/stores/documents/documentStore/attachments/attachmentRemoval.js +136 -0
  467. package/stores/documents/documentStore/attachments/attachmentRemoval.js.map +1 -0
  468. package/stores/documents/documentStore/attachments/attachmentSnapshot.js.map +1 -0
  469. package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js +32 -0
  470. package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js.map +1 -0
  471. package/stores/documents/documentStore/attachments/index.js +241 -0
  472. package/stores/documents/documentStore/attachments/index.js.map +1 -0
  473. package/stores/documents/documentStore/history/documentHistoryCompaction.js +67 -0
  474. package/stores/documents/documentStore/history/documentHistoryCompaction.js.map +1 -0
  475. package/stores/documents/documentStore/history/durableDocumentReload.js +79 -0
  476. package/stores/documents/documentStore/history/durableDocumentReload.js.map +1 -0
  477. package/stores/documents/documentStore/history/historyRebuild.js +75 -0
  478. package/stores/documents/documentStore/history/historyRebuild.js.map +1 -0
  479. package/stores/documents/documentStore/index.d.ts +8 -0
  480. package/stores/documents/documentStore/index.js +215 -0
  481. package/stores/documents/documentStore/index.js.map +1 -0
  482. package/stores/documents/documentStore/initialization/deferredInitialUpdate.js +116 -0
  483. package/stores/documents/documentStore/initialization/deferredInitialUpdate.js.map +1 -0
  484. package/stores/documents/documentStore/initialization/index.js +330 -0
  485. package/stores/documents/documentStore/initialization/index.js.map +1 -0
  486. package/stores/documents/documentStore/initialization/initializationAttachments.js +9 -0
  487. package/stores/documents/documentStore/initialization/initializationAttachments.js.map +1 -0
  488. package/stores/documents/documentStore/initialization/initializationHistory.js +33 -0
  489. package/stores/documents/documentStore/initialization/initializationHistory.js.map +1 -0
  490. package/stores/documents/documentStore/initialization/initializationRecovery.js +107 -0
  491. package/stores/documents/documentStore/initialization/initializationRecovery.js.map +1 -0
  492. package/stores/documents/documentStore/mutationIdentityRevalidation.js.map +1 -1
  493. package/stores/documents/documentStore/mutations.js +2 -2
  494. package/stores/documents/documentStore/mutations.js.map +1 -1
  495. package/stores/documents/documentStore/pendingUpdateRefusal.js +1 -1
  496. package/stores/documents/documentStore/pendingUpdateRefusal.js.map +1 -1
  497. package/stores/documents/documentStore/persistence.js +3 -3
  498. package/stores/documents/documentStore/persistence.js.map +1 -1
  499. package/stores/documents/documentStore/rotation/index.js +307 -0
  500. package/stores/documents/documentStore/rotation/index.js.map +1 -0
  501. package/stores/documents/documentStore/rotation/rotationProvenance.js +52 -0
  502. package/stores/documents/documentStore/rotation/rotationProvenance.js.map +1 -0
  503. package/stores/documents/documentStore/rotation/rotationSettlement.js +222 -0
  504. package/stores/documents/documentStore/rotation/rotationSettlement.js.map +1 -0
  505. package/stores/documents/documentStore/rows.js +2 -2
  506. package/stores/documents/documentStore/rows.js.map +1 -1
  507. package/stores/documents/documentStore/state.js +1 -1
  508. package/stores/documents/documentStore/state.js.map +1 -1
  509. package/stores/documents/documentStore/sync/index.js +299 -0
  510. package/stores/documents/documentStore/sync/index.js.map +1 -0
  511. package/stores/documents/documentStore/sync/pullContinuationInvalidation.js +61 -0
  512. package/stores/documents/documentStore/sync/pullContinuationInvalidation.js.map +1 -0
  513. package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js +15 -0
  514. package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js.map +1 -0
  515. package/stores/documents/documentStore/sync/remoteWork.js.map +1 -0
  516. package/stores/documents/documentStore/sync/syncAcceptedUpdateIds.js.map +1 -0
  517. package/stores/documents/documentStore/sync/syncAttachmentSettlement.js +72 -0
  518. package/stores/documents/documentStore/sync/syncAttachmentSettlement.js.map +1 -0
  519. package/stores/documents/documentStore/sync/syncAttachments.js +323 -0
  520. package/stores/documents/documentStore/sync/syncAttachments.js.map +1 -0
  521. package/stores/documents/documentStore/sync/syncDetachedAttachments.js +129 -0
  522. package/stores/documents/documentStore/sync/syncDetachedAttachments.js.map +1 -0
  523. package/stores/documents/documentStore/sync/syncFinalize.js +204 -0
  524. package/stores/documents/documentStore/sync/syncFinalize.js.map +1 -0
  525. package/stores/documents/documentStore/sync/syncGeneration.js.map +1 -0
  526. package/stores/documents/documentStore/sync/syncOutgoingCoverage.js +96 -0
  527. package/stores/documents/documentStore/sync/syncOutgoingCoverage.js.map +1 -0
  528. package/stores/documents/documentStore/sync/syncRemoteSignals.js +67 -0
  529. package/stores/documents/documentStore/sync/syncRemoteSignals.js.map +1 -0
  530. package/stores/documents/documentStore/sync/syncRequest.js +157 -0
  531. package/stores/documents/documentStore/sync/syncRequest.js.map +1 -0
  532. package/stores/documents/documentStore/sync/syncShared.js +211 -0
  533. package/stores/documents/documentStore/sync/syncShared.js.map +1 -0
  534. package/stores/documents/documentStore/sync/syncUpdateImport.js +62 -0
  535. package/stores/documents/documentStore/sync/syncUpdateImport.js.map +1 -0
  536. package/stores/documents/documentStore/sync/versionCoverage.js +45 -0
  537. package/stores/documents/index.d.ts +1 -1
  538. package/stores/documents/index.js +1 -1
  539. package/stores/local-projection/localProjectionStore.d.ts +1 -1
  540. package/stores/local-projection/localProjectionStore.js +1 -1
  541. package/stores/local-projection/localProjectionStore.js.map +1 -1
  542. package/stores/local-projection/registry.d.ts +1 -1
  543. package/stores/local-projection/types.d.ts +1 -1
  544. package/workflows/blobs/detach.js +1 -1
  545. package/workflows/blobs/hydration/decrypt.js +2 -2
  546. package/workflows/blobs/hydration/decrypt.js.map +1 -1
  547. package/workflows/blobs/upload/index.js +1 -1
  548. package/workflows/blobs/verification/retainedAttachmentVerification.js +1 -1
  549. package/workflows/blobs/verification/writerProjection.js +1 -1
  550. package/workflows/container-contents/container-state/create/createAdoption.js +193 -0
  551. package/workflows/container-contents/container-state/create/createAdoption.js.map +1 -0
  552. package/workflows/container-contents/container-state/create/createChild.js +217 -0
  553. package/workflows/container-contents/container-state/create/createChild.js.map +1 -0
  554. package/workflows/container-contents/container-state/create/createIntentDepth.js +36 -0
  555. package/workflows/container-contents/container-state/create/createIntentDepth.js.map +1 -0
  556. package/workflows/container-contents/container-state/create/createIntentSettlement.js.map +1 -0
  557. package/workflows/container-contents/container-state/create/createIntentSync.js +354 -0
  558. package/workflows/container-contents/container-state/create/createIntentSync.js.map +1 -0
  559. package/workflows/container-contents/container-state/create/createTerminalFailure.js +19 -0
  560. package/workflows/container-contents/container-state/create/createTerminalFailure.js.map +1 -0
  561. package/workflows/container-contents/container-state/create/createWithMetadata.js +270 -0
  562. package/workflows/container-contents/container-state/create/createWithMetadata.js.map +1 -0
  563. package/workflows/container-contents/container-state/create/createWithMetadataPlan.js +68 -0
  564. package/workflows/container-contents/container-state/create/createWithMetadataPlan.js.map +1 -0
  565. package/workflows/container-contents/container-state/purge/localPurgeScope.js +49 -0
  566. package/workflows/container-contents/container-state/purge/localPurgeScope.js.map +1 -0
  567. package/workflows/container-contents/container-state/purge/purgeTree.js +298 -0
  568. package/workflows/container-contents/container-state/purge/purgeTree.js.map +1 -0
  569. package/workflows/container-contents/container-state/purge/purgeTreeCollection.js.map +1 -0
  570. package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js +75 -0
  571. package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js.map +1 -0
  572. package/workflows/container-contents/container-state/purge/purgeTreeScope.js +175 -0
  573. package/workflows/container-contents/container-state/purge/purgeTreeScope.js.map +1 -0
  574. package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js +18 -0
  575. package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js.map +1 -0
  576. package/workflows/container-contents/container-state/remote.js +2 -2
  577. package/workflows/container-contents/container-state/remote.js.map +1 -1
  578. package/workflows/container-contents/container-state/share/groupGrantVerification.js +71 -0
  579. package/workflows/container-contents/container-state/share/groupGrantVerification.js.map +1 -0
  580. package/workflows/container-contents/container-state/share/groupShareEpoch.js +16 -0
  581. package/workflows/container-contents/container-state/share/groupShareEpoch.js.map +1 -0
  582. package/workflows/container-contents/container-state/share/index.js +283 -0
  583. package/workflows/container-contents/container-state/share/index.js.map +1 -0
  584. package/workflows/container-contents/container-state/share/sharePersistence.js +136 -0
  585. package/workflows/container-contents/container-state/share/sharePersistence.js.map +1 -0
  586. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js +1 -1
  587. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js.map +1 -1
  588. package/workflows/container-contents/documentDiscovery/index.js +1 -1
  589. package/workflows/container-contents/documentDiscovery/index.js.map +1 -1
  590. package/workflows/container-contents/documentLinks/index.js +1 -1
  591. package/workflows/container-contents/documentMove/documentMoveVanishedRefresh.js +1 -1
  592. package/workflows/container-contents/documentPriming/documentHydrationProbe.js +1 -1
  593. package/workflows/container-contents/documentPriming/index.js +1 -1
  594. package/workflows/container-contents/documentQueries/index.js +1 -1
  595. package/workflows/container-contents/documentQueries/sql.js +1 -1
  596. package/workflows/container-contents/info/blobInfo.js +1 -1
  597. package/workflows/container-contents/info/containerInfo.js +1 -1
  598. package/workflows/container-contents/info/documentInfo.js +1 -1
  599. package/workflows/container-contents/metadata/index.js +1 -1
  600. package/workflows/container-contents/metadata/index.js.map +1 -1
  601. package/workflows/container-contents/metadata/metadataEvents.d.ts +1 -1
  602. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js +2 -2
  603. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js.map +1 -1
  604. package/workflows/container-contents/metadata/metadataMutationPreparation.js +1 -1
  605. package/workflows/container-contents/metadata/metadataMutationPreparation.js.map +1 -1
  606. package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js +1 -1
  607. package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js.map +1 -1
  608. package/workflows/container-contents/metadata/metadataRemoteSync.d.ts +1 -1
  609. package/workflows/container-contents/metadata/metadataSyncErrors.js +2 -2
  610. package/workflows/container-contents/metadata/metadataSyncErrors.js.map +1 -1
  611. package/workflows/container-contents/metadata/metadataSyncSettlement.d.ts +1 -1
  612. package/workflows/container-contents/metadata/metadataSyncSettlement.js.map +1 -1
  613. package/workflows/container-contents/metadata/metadataTypes.d.ts +1 -1
  614. package/workflows/container-contents/metadata/metadataTypes.js.map +1 -1
  615. package/workflows/container-contents/pendingWrites/index.js +2 -2
  616. package/workflows/container-contents/pendingWrites/sources.js +1 -1
  617. package/workflows/container-contents/remoteHydration/destination/destinationPrefetch.js.map +1 -0
  618. package/workflows/container-contents/remoteHydration/destination/destinationRoleCache.js.map +1 -0
  619. package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js +10 -0
  620. package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js.map +1 -0
  621. package/workflows/container-contents/remoteHydration/destination/replacementBinding.js +75 -0
  622. package/workflows/container-contents/remoteHydration/destination/replacementBinding.js.map +1 -0
  623. package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js +296 -0
  624. package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js.map +1 -0
  625. package/workflows/container-contents/remoteHydration/index.js +4 -4
  626. package/workflows/container-contents/remoteHydration/index.js.map +1 -1
  627. package/workflows/container-contents/remoteHydration/lanes/childIndex.js.map +1 -0
  628. package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js +21 -0
  629. package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js.map +1 -0
  630. package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js +61 -0
  631. package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js.map +1 -0
  632. package/workflows/container-contents/remoteHydration/lanes/parentLaneQueue.js.map +1 -0
  633. package/workflows/container-contents/remoteHydration/principalPolicyCache.js +1 -1
  634. package/workflows/container-contents/remoteHydration/principalPolicyCache.js.map +1 -1
  635. package/workflows/container-contents/remoteHydration/reattachMetadata.js.map +1 -1
  636. package/workflows/container-contents/remoteHydration/reconciliation.js +2 -2
  637. package/workflows/container-contents/remoteHydration/reconciliation.js.map +1 -1
  638. package/workflows/container-contents/remoteHydration/remoteContainers/containerStateFingerprint.js.map +1 -0
  639. package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js +135 -0
  640. package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js.map +1 -0
  641. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js +244 -0
  642. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js.map +1 -0
  643. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js +263 -0
  644. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js.map +1 -0
  645. package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerTimestamps.js.map +1 -0
  646. package/workflows/container-contents/remoteHydration/tombstoneApplication.js +2 -2
  647. package/workflows/container-contents/remoteHydration/tombstoneApplication.js.map +1 -1
  648. package/workflows/container-contents/tombstones/documentTombstoneEvidence.js +2 -2
  649. package/workflows/container-contents/tombstones/documentTombstoneEvidence.js.map +1 -1
  650. package/workflows/containers/child/create/createProjection.d.ts +6 -0
  651. package/workflows/containers/child/create/createProjection.js +43 -0
  652. package/workflows/containers/child/create/createProjection.js.map +1 -0
  653. package/workflows/containers/child/create/createSubmission.d.ts +56 -0
  654. package/workflows/containers/child/create/createSubmission.js +43 -0
  655. package/workflows/containers/child/create/createSubmission.js.map +1 -0
  656. package/workflows/containers/child/create/index.d.ts +24 -0
  657. package/workflows/containers/child/create/index.js +335 -0
  658. package/workflows/containers/child/create/index.js.map +1 -0
  659. package/workflows/containers/child/move/index.d.ts +23 -0
  660. package/workflows/containers/child/move/index.js +268 -0
  661. package/workflows/containers/child/move/index.js.map +1 -0
  662. package/workflows/containers/child/move/moveArtifacts.js +102 -0
  663. package/workflows/containers/child/move/moveArtifacts.js.map +1 -0
  664. package/workflows/containers/child/move/moveRotation.js +88 -0
  665. package/workflows/containers/child/move/moveRotation.js.map +1 -0
  666. package/workflows/containers/child/move/moveWraps.js +49 -0
  667. package/workflows/containers/child/move/moveWraps.js.map +1 -0
  668. package/workflows/containers/child/mutationSubmit.js +1 -1
  669. package/workflows/containers/child/mutationSubmit.js.map +1 -1
  670. package/workflows/containers/child/recite.js +2 -2
  671. package/workflows/containers/child/recite.js.map +1 -1
  672. package/workflows/containers/child/rekey/carriedDescendantRekeys.js +126 -0
  673. package/workflows/containers/child/rekey/carriedDescendantRekeys.js.map +1 -0
  674. package/workflows/containers/child/rekey/index.d.ts +32 -0
  675. package/workflows/containers/child/rekey/index.js +227 -0
  676. package/workflows/containers/child/rekey/index.js.map +1 -0
  677. package/workflows/containers/child/rekey/keyringOverrideLineage.d.ts +22 -0
  678. package/workflows/containers/child/rekey/keyringOverrideLineage.js +39 -0
  679. package/workflows/containers/child/rekey/rekeyProjection.d.ts +46 -0
  680. package/workflows/containers/child/rekey/rekeyProjection.js +151 -0
  681. package/workflows/containers/child/rekey/rekeyProjection.js.map +1 -0
  682. package/workflows/containers/child/rekey/rekeyRemote.d.ts +24 -0
  683. package/workflows/containers/child/rekey/rekeyRemote.js +64 -0
  684. package/workflows/containers/child/rekey/rekeyRemote.js.map +1 -0
  685. package/workflows/containers/child/revoke.js +5 -5
  686. package/workflows/containers/child/revoke.js.map +1 -1
  687. package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js +19 -0
  688. package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js.map +1 -0
  689. package/workflows/containers/child/rotation/rotationContext.js +64 -0
  690. package/workflows/containers/child/rotation/rotationContext.js.map +1 -0
  691. package/workflows/containers/child/rotation/rotationPrincipalPolicies.js +19 -0
  692. package/workflows/containers/child/rotation/rotationPrincipalPolicies.js.map +1 -0
  693. package/workflows/containers/child/rotation/rotationWraps.js +85 -0
  694. package/workflows/containers/child/rotation/rotationWraps.js.map +1 -0
  695. package/workflows/containers/child/share/currentShareGrantMutation.js +82 -0
  696. package/workflows/containers/child/share/currentShareGrantMutation.js.map +1 -0
  697. package/workflows/containers/child/share/currentSharePrincipalPolicy.js +83 -0
  698. package/workflows/containers/child/share/currentSharePrincipalPolicy.js.map +1 -0
  699. package/workflows/containers/child/share/index.d.ts +65 -0
  700. package/workflows/containers/child/share/index.js +256 -0
  701. package/workflows/containers/child/share/index.js.map +1 -0
  702. package/workflows/containers/child/share/runtimeCurrentGroupShare.js +79 -0
  703. package/workflows/containers/child/share/runtimeCurrentGroupShare.js.map +1 -0
  704. package/workflows/containers/child/share/shareAncestorRepair.js +95 -0
  705. package/workflows/containers/child/share/shareAncestorRepair.js.map +1 -0
  706. package/workflows/containers/child/share/shareMaterialization.d.ts +25 -0
  707. package/workflows/containers/child/share/shareMaterialization.js +164 -0
  708. package/workflows/containers/child/share/shareMaterialization.js.map +1 -0
  709. package/workflows/containers/child/share/sharePlanCore.d.ts +82 -0
  710. package/workflows/containers/child/share/sharePlanCore.js +191 -0
  711. package/workflows/containers/child/share/sharePlanCore.js.map +1 -0
  712. package/workflows/containers/child/share/sharePrincipalPolicy.d.ts +51 -0
  713. package/workflows/containers/child/share/sharePrincipalPolicy.js +194 -0
  714. package/workflows/containers/child/share/sharePrincipalPolicy.js.map +1 -0
  715. package/workflows/containers/child/share/shareProjection.js.map +1 -0
  716. package/workflows/containers/index.d.ts +13 -13
  717. package/workflows/containers/index.js +12 -12
  718. package/workflows/containers/index.js.map +1 -1
  719. package/workflows/containers/writeRefusal.js +1 -1
  720. package/workflows/containers/writeRefusal.js.map +1 -1
  721. package/workflows/documents/create/createAdoption.js +1 -1
  722. package/workflows/documents/create/createResponse.js +2 -2
  723. package/workflows/documents/create/createResponse.js.map +1 -1
  724. package/workflows/documents/create/index.js +1 -1
  725. package/workflows/documents/documentMutationCommit.d.ts +1 -1
  726. package/workflows/documents/documentMutationPreparation.d.ts +1 -1
  727. package/workflows/documents/documentMutationPreparation.js +1 -1
  728. package/workflows/documents/documentMutationPreparation.js.map +1 -1
  729. package/workflows/documents/index.d.ts +5 -5
  730. package/workflows/documents/index.js +5 -5
  731. package/workflows/documents/index.js.map +1 -1
  732. package/workflows/documents/linkSet/index.js +2 -2
  733. package/workflows/documents/linkSet/index.js.map +1 -1
  734. package/workflows/documents/linkSet/linkSetAuthority.js +2 -2
  735. package/workflows/documents/linkSet/linkSetAuthority.js.map +1 -1
  736. package/workflows/documents/linkSet/linkSetBlobRewraps.js +2 -2
  737. package/workflows/documents/linkSet/linkSetBlobRewraps.js.map +1 -1
  738. package/workflows/documents/linkSet/linkSetProjectionSeed.js +2 -2
  739. package/workflows/documents/linkSet/linkSetProjectionSeed.js.map +1 -1
  740. package/workflows/documents/linkSet/linkSetRemote.js +1 -1
  741. package/workflows/documents/linkSet/linkSetRemote.js.map +1 -1
  742. package/workflows/documents/purge/index.js +2 -2
  743. package/workflows/documents/purge/index.js.map +1 -1
  744. package/workflows/documents/sync/index.js +2 -2
  745. package/workflows/documents/sync/index.js.map +1 -1
  746. package/workflows/documents/sync/initialSync.js +1 -1
  747. package/workflows/documents/sync/readOnlyProjectionFailure.js +1 -1
  748. package/workflows/documents/sync/readOnlyProjectionFailure.js.map +1 -1
  749. package/workflows/documents/sync/readOnlySync.d.ts +3 -3
  750. package/workflows/documents/sync/readOnlySync.js +1 -1
  751. package/workflows/documents/sync/readOnlySync.js.map +1 -1
  752. package/workflows/documents/sync/reportDocumentSyncQuarantine.js.map +1 -1
  753. package/workflows/documents/sync/syncAttemptPlanning.js +2 -2
  754. package/workflows/documents/sync/syncAttemptPlanning.js.map +1 -1
  755. package/workflows/documents/sync/syncAttemptState.d.ts +2 -2
  756. package/workflows/documents/sync/syncAttemptState.js.map +1 -1
  757. package/workflows/documents/sync/syncResponseResult.js +2 -2
  758. package/workflows/documents/sync/syncResponseResult.js.map +1 -1
  759. package/workflows/documents/syncFailures/index.js +1 -1
  760. package/workflows/documents/syncFailures/index.js.map +1 -1
  761. package/workflows/documents/syncFailures/syncAbandon.js.map +1 -1
  762. package/workflows/documents/syncFailures/syncFailureClassification.js +1 -1
  763. package/workflows/documents/syncFailures/syncFailureClassification.js.map +1 -1
  764. package/workflows/documents/syncPlan/syncContentKeys.d.ts +1 -1
  765. package/workflows/documents/syncPlan/syncContentKeys.js +3 -3
  766. package/workflows/documents/syncPlan/syncContentKeys.js.map +1 -1
  767. package/workflows/documents/syncPlan/syncPlanMaterial.js +2 -2
  768. package/workflows/documents/syncPlan/syncPlanMaterial.js.map +1 -1
  769. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js +4 -4
  770. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js.map +1 -1
  771. package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js +1 -1
  772. package/workflows/documents/syncRekeys/syncRecoveryRekey.d.ts +1 -1
  773. package/workflows/documents/syncRekeys/syncRecoveryRekey.js +1 -1
  774. package/workflows/organizations/currentOrganizationAuthority.js +2 -2
  775. package/workflows/organizations/currentOrganizationAuthority.js.map +1 -1
  776. package/workflows/organizations/groupMetadata/groupMetadataAccess.js +1 -1
  777. package/workflows/organizations/groupMetadata/groupMetadataAccess.js.map +1 -1
  778. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js +1 -1
  779. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js.map +1 -1
  780. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js +1 -1
  781. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js.map +1 -1
  782. package/workflows/organizations/groupNames/groupNameUniqueness.js +3 -3
  783. package/workflows/organizations/groupNames/groupNameUniqueness.js.map +1 -1
  784. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js +2 -2
  785. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js.map +1 -1
  786. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js +1 -1
  787. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js.map +1 -1
  788. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js +2 -2
  789. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js.map +1 -1
  790. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js +1 -1
  791. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js.map +1 -1
  792. package/workflows/organizations/groupPolicy/groupPolicyVerification.js +1 -1
  793. package/workflows/organizations/groupPolicy/groupPolicyVerification.js.map +1 -1
  794. package/workflows/organizations/groups/createCurrentOrganizationGroup.js +1 -1
  795. package/workflows/organizations/groups/createCurrentOrganizationGroup.js.map +1 -1
  796. package/workflows/organizations/groups/deleteOrganizationGroup.js +1 -1
  797. package/workflows/organizations/groups/deleteOrganizationGroup.js.map +1 -1
  798. package/workflows/organizations/groups/organizationGroupDirectory.js +1 -1
  799. package/workflows/organizations/groups/organizationGroupDirectory.js.map +1 -1
  800. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js +1 -1
  801. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js.map +1 -1
  802. package/workflows/organizations/provisioning/organizationReplacementVerification.js +1 -1
  803. package/workflows/organizations/provisioning/organizationReplacementVerification.js.map +1 -1
  804. package/workflows/organizations/readModel/listLocalOrganizations.js +1 -1
  805. package/workflows/organizations/readModel/localReadModelDetails.js +1 -1
  806. package/workflows/organizations/readModel/localReadModelDetails.js.map +1 -1
  807. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js +1 -1
  808. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js.map +1 -1
  809. package/workflows/organizations/rematerialization/principalContainerRematerialization.js +5 -5
  810. package/workflows/organizations/rematerialization/principalContainerRematerialization.js.map +1 -1
  811. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js +1 -1
  812. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js.map +1 -1
  813. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js +1 -1
  814. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js.map +1 -1
  815. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js +1 -1
  816. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js.map +1 -1
  817. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.d.ts +1 -1
  818. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js +1 -1
  819. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js.map +1 -1
  820. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js +1 -1
  821. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js.map +1 -1
  822. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js +2 -2
  823. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js.map +1 -1
  824. package/workflows/principals/externalAdminPolicy.js +2 -2
  825. package/workflows/principals/externalAdminPolicy.js.map +1 -1
  826. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js +2 -2
  827. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js.map +1 -1
  828. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js +1 -1
  829. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js.map +1 -1
  830. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js +1 -1
  831. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js.map +1 -1
  832. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js +1 -1
  833. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js.map +1 -1
  834. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js +3 -3
  835. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js.map +1 -1
  836. package/workflows/principals/policyCache/index.js +4 -4
  837. package/workflows/principals/policyCache/index.js.map +1 -1
  838. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js +1 -1
  839. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js.map +1 -1
  840. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js +3 -3
  841. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js.map +1 -1
  842. package/workflows/principals/policyRepair.js +1 -1
  843. package/workflows/principals/policyRepair.js.map +1 -1
  844. package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js.map +1 -1
  845. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js +2 -2
  846. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js.map +1 -1
  847. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js +3 -3
  848. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js.map +1 -1
  849. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.d.ts +2 -2
  850. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.js.map +1 -1
  851. package/workflows/principals/publicHistory/publicProjectionPrincipal.js +1 -1
  852. package/workflows/principals/publicHistory/publicProjectionPrincipal.js.map +1 -1
  853. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js +1 -1
  854. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js.map +1 -1
  855. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js +1 -1
  856. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js.map +1 -1
  857. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js +1 -1
  858. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js.map +1 -1
  859. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js +1 -1
  860. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js.map +1 -1
  861. package/workflows/registration/organizationProvisioningArtifacts.d.ts +1 -1
  862. package/workflows/registration/persistRegistrationBootstrap.d.ts +2 -2
  863. package/workflows/registration/persistRegistrationBootstrap.js +2 -2
  864. package/workflows/registration/persistRegistrationBootstrap.js.map +1 -1
  865. package/workflows/registration/provisioningAcknowledgement.js +1 -1
  866. package/workflows/registration/provisioningAcknowledgement.js.map +1 -1
  867. package/workflows/registration/provisioningBootstrapBuilders.js +1 -1
  868. package/workflows/registration/registrationPrincipalPolicyPersistence.js +1 -1
  869. package/workflows/registration/registrationPrincipalPolicyPersistence.js.map +1 -1
  870. package/workflows/sync/remoteReset.js +7 -7
  871. package/workflows/sync/remoteReset.js.map +1 -1
  872. package/workflows/sync/remoteResetAttachments.js +1 -1
  873. package/workflows/sync/remoteResetCursorScope.js +1 -1
  874. package/workflows/sync/remoteResetPlans.js +1 -1
  875. package/workflows/sync/remoteResetPrincipalScope.js +5 -5
  876. package/workflows/sync/remoteResetPrincipalScope.js.map +1 -1
  877. package/workflows/sync/remoteResetScope.js +1 -1
  878. package/data/documents/shared/containerKekCurrency.d.ts +0 -22
  879. package/data/documents/shared/containerKekEntryVerification.js +0 -15
  880. package/data/documents/shared/containerKekLogFetch.d.ts +0 -18
  881. package/data/documents/shared/containerKekLogFetch.js +0 -76
  882. package/data/documents/shared/containerKekPath.js +0 -265
  883. package/data/documents/shared/containerKekPath.js.map +0 -1
  884. package/data/documents/shared/containerKekPathHistory.d.ts +0 -61
  885. package/data/documents/shared/containerKekPathHistory.js +0 -223
  886. package/data/documents/shared/containerKekPathHistory.js.map +0 -1
  887. package/data/documents/shared/containerKekPathVerification.d.ts +0 -15
  888. package/data/documents/shared/containerKekPathVerification.js +0 -23
  889. package/data/documents/shared/containerKekPathVerification.js.map +0 -1
  890. package/data/documents/shared/containerKekWrapping.js +0 -61
  891. package/data/documents/shared/containerKekWrapping.js.map +0 -1
  892. package/data/documents/shared/documentSyncUpdateDecryption.js +0 -238
  893. package/data/documents/shared/documentSyncUpdateDecryption.js.map +0 -1
  894. package/data/documents/shared/documentSyncUpdateIsolation.d.ts +0 -55
  895. package/data/documents/shared/documentSyncUpdateIsolation.js +0 -298
  896. package/data/documents/shared/documentSyncUpdateIsolation.js.map +0 -1
  897. package/data/documents/shared/keyringLogWalk.d.ts +0 -45
  898. package/data/documents/shared/keyringLogWalk.js +0 -204
  899. package/data/documents/shared/keyringRebuild.d.ts +0 -60
  900. package/data/documents/shared/keyringRebuild.js +0 -242
  901. package/data/documents/shared/keyringRebuild.js.map +0 -1
  902. package/data/documents/shared/mutationAcknowledgement.js +0 -10
  903. package/data/documents/shared/mutationAcknowledgement.js.map +0 -1
  904. package/data/documents/shared/projection.d.ts +0 -25
  905. package/data/documents/shared/projection.js +0 -132
  906. package/data/documents/shared/projection.js.map +0 -1
  907. package/data/documents/shared/projectionContentKeys.d.ts +0 -90
  908. package/data/documents/shared/projectionContentKeys.js +0 -262
  909. package/data/documents/shared/projectionContentKeys.js.map +0 -1
  910. package/data/documents/shared/projectionTargets.d.ts +0 -38
  911. package/data/documents/shared/projectionTargets.js +0 -164
  912. package/data/documents/shared/projectionTargets.js.map +0 -1
  913. package/data/documents/shared/pullContinuation.js +0 -53
  914. package/data/documents/shared/syncPagination.d.ts +0 -20
  915. package/data/documents/shared/syncPagination.js +0 -109
  916. package/data/documents/shared/syncPagination.js.map +0 -1
  917. package/data/documents/shared/syncResponseAuthorization.js +0 -63
  918. package/data/documents/shared/syncResponseAuthorization.js.map +0 -1
  919. package/data/documents/shared/syncResponses.d.ts +0 -11
  920. package/data/documents/shared/syncResponses.js +0 -285
  921. package/data/documents/shared/syncResponses.js.map +0 -1
  922. package/data/documents/shared/syncSubmitFailure.d.ts +0 -9
  923. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js +0 -61
  924. package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js.map +0 -1
  925. package/data/keyingProjectionVerification/bundleVerification.js +0 -61
  926. package/data/keyingProjectionVerification/bundleVerification.js.map +0 -1
  927. package/data/keyingProjectionVerification/checkpointContext.d.ts +0 -45
  928. package/data/keyingProjectionVerification/checkpointContext.js +0 -120
  929. package/data/keyingProjectionVerification/checkpointContext.js.map +0 -1
  930. package/data/keyingProjectionVerification/containerAncestorCitations.js +0 -164
  931. package/data/keyingProjectionVerification/containerAncestorCitations.js.map +0 -1
  932. package/data/keyingProjectionVerification/containerCreateManifest.js +0 -28
  933. package/data/keyingProjectionVerification/containerDestinationVerification.js +0 -51
  934. package/data/keyingProjectionVerification/containerDestinationVerification.js.map +0 -1
  935. package/data/keyingProjectionVerification/containerManifestVerification.js +0 -285
  936. package/data/keyingProjectionVerification/containerManifestVerification.js.map +0 -1
  937. package/data/keyingProjectionVerification/containerPathVerification.js +0 -51
  938. package/data/keyingProjectionVerification/containerPathVerification.js.map +0 -1
  939. package/data/keyingProjectionVerification/containerProjectionVerification.d.ts +0 -25
  940. package/data/keyingProjectionVerification/containerProjectionVerification.js +0 -254
  941. package/data/keyingProjectionVerification/containerProjectionVerification.js.map +0 -1
  942. package/data/keyingProjectionVerification/documentDependencyPaths.d.ts +0 -17
  943. package/data/keyingProjectionVerification/documentDependencyPaths.js +0 -70
  944. package/data/keyingProjectionVerification/documentDependencyPaths.js.map +0 -1
  945. package/data/keyingProjectionVerification/documentManifestPolicies.js +0 -32
  946. package/data/keyingProjectionVerification/documentManifestPolicies.js.map +0 -1
  947. package/data/keyingProjectionVerification/documentManifestPredecessor.js +0 -12
  948. package/data/keyingProjectionVerification/documentManifestVerification.js +0 -135
  949. package/data/keyingProjectionVerification/documentManifestVerification.js.map +0 -1
  950. package/data/keyingProjectionVerification/documentProjectionVerification.d.ts +0 -24
  951. package/data/keyingProjectionVerification/documentProjectionVerification.js +0 -172
  952. package/data/keyingProjectionVerification/documentProjectionVerification.js.map +0 -1
  953. package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js +0 -100
  954. package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js.map +0 -1
  955. package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js +0 -8
  956. package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js.map +0 -1
  957. package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js +0 -177
  958. package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js.map +0 -1
  959. package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js +0 -17
  960. package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js.map +0 -1
  961. package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js +0 -55
  962. package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js.map +0 -1
  963. package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js +0 -116
  964. package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js.map +0 -1
  965. package/data/keyingProjectionVerification/documentPurgeProofVerification.d.ts +0 -34
  966. package/data/keyingProjectionVerification/documentPurgeProofVerification.js +0 -208
  967. package/data/keyingProjectionVerification/documentPurgeProofVerification.js.map +0 -1
  968. package/data/keyingProjectionVerification/manifestCheckpointVerification.js +0 -64
  969. package/data/keyingProjectionVerification/manifestCheckpointVerification.js.map +0 -1
  970. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js +0 -45
  971. package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js.map +0 -1
  972. package/data/keyingProjectionVerification/organizationFounderBinding.js +0 -41
  973. package/data/keyingProjectionVerification/organizationFounderBinding.js.map +0 -1
  974. package/data/keyingProjectionVerification/principalPolicyCache.js +0 -76
  975. package/data/keyingProjectionVerification/principalPolicyCache.js.map +0 -1
  976. package/data/keyingProjectionVerification/principalPolicyVerification.js +0 -252
  977. package/data/keyingProjectionVerification/principalPolicyVerification.js.map +0 -1
  978. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js +0 -63
  979. package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js.map +0 -1
  980. package/data/keyingProjectionVerification/projectionPolicyEvidence.js +0 -23
  981. package/data/keyingProjectionVerification/projectionPolicyEvidence.js.map +0 -1
  982. package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js +0 -72
  983. package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js.map +0 -1
  984. package/data/persistence/documentPurgeCheckpointPersistence.d.ts +0 -10
  985. package/data/persistence/documentPurgeCheckpointPersistence.js +0 -43
  986. package/data/persistence/documentPurgeCheckpointPersistence.js.map +0 -1
  987. package/data/persistence/keyingCheckpointAdvancePersistence.js +0 -222
  988. package/data/persistence/keyingCheckpointAdvancePersistence.js.map +0 -1
  989. package/data/persistence/keyingCheckpointEvidence.js +0 -32
  990. package/data/persistence/keyingCheckpointPersistence.js +0 -133
  991. package/data/persistence/keyingCheckpointPersistence.js.map +0 -1
  992. package/data/persistence/locallyAcknowledgedCheckpointPersistence.d.ts +0 -53
  993. package/data/persistence/locallyAcknowledgedCheckpointPersistence.js +0 -167
  994. package/data/persistence/locallyAcknowledgedCheckpointPersistence.js.map +0 -1
  995. package/data/persistence/organizationReplacementCheckpointPersistence.js +0 -72
  996. package/data/persistence/organizationReplacementCheckpointPersistence.js.map +0 -1
  997. package/data/persistence/principalAuthorizationCheckpoints.js +0 -29
  998. package/data/persistence/principalAuthorizationCheckpoints.js.map +0 -1
  999. package/data/persistence/principalGrantRetirementPersistence.d.ts +0 -9
  1000. package/data/persistence/principalGrantRetirementPersistence.js +0 -43
  1001. package/data/persistence/principalGrantRetirementPersistence.js.map +0 -1
  1002. package/data/persistence/principalHistoryEvidencePersistence.d.ts +0 -32
  1003. package/data/persistence/principalHistoryEvidencePersistence.js +0 -92
  1004. package/data/persistence/principalHistoryEvidencePersistence.js.map +0 -1
  1005. package/data/persistence/principalHistoryIncompleteRetention.js +0 -26
  1006. package/data/persistence/principalHistoryIncompleteRetention.js.map +0 -1
  1007. package/data/persistence/principalHistoryNodeRetention.js +0 -201
  1008. package/data/persistence/principalHistoryNodeRetention.js.map +0 -1
  1009. package/data/persistence/principalHistoryPrefixPersistence.d.ts +0 -29
  1010. package/data/persistence/principalHistoryPrefixPersistence.js +0 -102
  1011. package/data/persistence/principalHistoryPrefixPersistence.js.map +0 -1
  1012. package/data/persistence/principalHistoryRootOwnership.js +0 -71
  1013. package/data/persistence/principalHistoryRootOwnership.js.map +0 -1
  1014. package/data/persistence/principalHistoryStagePersistence.d.ts +0 -15
  1015. package/data/persistence/principalHistoryStagePersistence.js +0 -96
  1016. package/data/persistence/principalHistoryStagePersistence.js.map +0 -1
  1017. package/data/persistence/principalHistoryStageRetention.js +0 -45
  1018. package/data/persistence/principalHistoryStageRetention.js.map +0 -1
  1019. package/data/persistence/principalHistoryUnpublishedRetention.js +0 -64
  1020. package/data/persistence/principalHistoryUnpublishedRetention.js.map +0 -1
  1021. package/data/persistence/principalKeyEnvelopeArchivePersistence.js +0 -63
  1022. package/data/persistence/principalKeyEnvelopeArchivePersistence.js.map +0 -1
  1023. package/data/persistence/principalKeyEnvelopeCandidates.js +0 -87
  1024. package/data/persistence/principalKeyEnvelopeCandidates.js.map +0 -1
  1025. package/data/persistence/principalPolicyBundleIntegrity.js +0 -49
  1026. package/data/persistence/principalPolicyBundleIntegrity.js.map +0 -1
  1027. package/data/persistence/principalPolicyCheckpointSelection.js +0 -26
  1028. package/data/persistence/principalPolicyCheckpointSelection.js.map +0 -1
  1029. package/data/persistence/principalPolicyOrganizationPersistence.js +0 -42
  1030. package/data/persistence/principalPolicyOrganizationPersistence.js.map +0 -1
  1031. package/data/persistence/principalPolicyPersistence.js +0 -279
  1032. package/data/persistence/principalPolicyPersistence.js.map +0 -1
  1033. package/data/persistence/principalPolicyReferenceCheckpoint.js +0 -27
  1034. package/data/persistence/principalPolicyReferenceCheckpoint.js.map +0 -1
  1035. package/data/persistence/principalPolicyReferenceIndexPersistence.js +0 -115
  1036. package/data/persistence/principalPolicyReferenceIndexPersistence.js.map +0 -1
  1037. package/data/persistence/principalPolicyReferencePersistence.js +0 -215
  1038. package/data/persistence/principalPolicyReferencePersistence.js.map +0 -1
  1039. package/data/persistence/verifiedPrincipalPolicyBundle.js +0 -33
  1040. package/data/persistence/verifiedPrincipalPolicyBundle.js.map +0 -1
  1041. package/data/persistence/verifiedPrincipalPolicyCurrent.js +0 -56
  1042. package/data/persistence/verifiedPrincipalPolicyCurrent.js.map +0 -1
  1043. package/data/persistence/verifiedPrincipalPolicyRetentionPersistence.js +0 -18
  1044. package/data/persistence/verifiedPrincipalPolicyRetentionPersistence.js.map +0 -1
  1045. package/data/sqlite/containerSchema.d.ts +0 -1193
  1046. package/data/sqlite/containerSchema.js +0 -103
  1047. package/data/sqlite/containerSchema.js.map +0 -1
  1048. package/data/sqlite/documentHistoryPersistence.d.ts +0 -86
  1049. package/data/sqlite/documentHistoryPersistence.js +0 -304
  1050. package/data/sqlite/documentHistoryPersistence.js.map +0 -1
  1051. package/data/sqlite/documentOrphanBlobReclaims.js +0 -6
  1052. package/data/sqlite/documentOrphanBlobReclaims.js.map +0 -1
  1053. package/data/sqlite/documentPendingUpdatePersistence.d.ts +0 -103
  1054. package/data/sqlite/documentPendingUpdatePersistence.js +0 -243
  1055. package/data/sqlite/documentPendingUpdatePersistence.js.map +0 -1
  1056. package/data/sqlite/documentPersistence.d.ts +0 -22
  1057. package/data/sqlite/documentPersistence.js +0 -35
  1058. package/data/sqlite/documentPersistence.js.map +0 -1
  1059. package/data/sqlite/documentPersistenceTypes.d.ts +0 -79
  1060. package/data/sqlite/documentPersistenceTypes.js.map +0 -1
  1061. package/data/sqlite/documentRecordPersistence.d.ts +0 -275
  1062. package/data/sqlite/documentRecordPersistence.js +0 -103
  1063. package/data/sqlite/documentRecordPersistence.js.map +0 -1
  1064. package/data/sqlite/documentSyncFailurePersistence.d.ts +0 -39
  1065. package/data/sqlite/documentSyncFailurePersistence.js +0 -81
  1066. package/data/sqlite/documentSyncFailurePersistence.js.map +0 -1
  1067. package/data/sqlite/organizationDataUsageSchema.js +0 -34
  1068. package/data/sqlite/organizationDataUsageSchema.js.map +0 -1
  1069. package/data/sqlite/organizationProvisioningAttemptSchema.js +0 -23
  1070. package/data/sqlite/organizationProvisioningAttemptSchema.js.map +0 -1
  1071. package/data/sqlite/organizationReadModelTableRegistry.d.ts +0 -1332
  1072. package/data/sqlite/organizationReadModelTableRegistry.js +0 -31
  1073. package/data/sqlite/organizationReadModelTableRegistry.js.map +0 -1
  1074. package/data/sqlite/principalHistoryEvidenceSchema.d.ts +0 -308
  1075. package/data/sqlite/principalHistoryEvidenceSchema.js +0 -48
  1076. package/data/sqlite/principalHistoryEvidenceSchema.js.map +0 -1
  1077. package/data/sqlite/principalHistoryNodeRetentionSchema.js +0 -30
  1078. package/data/sqlite/principalHistoryNodeRetentionSchema.js.map +0 -1
  1079. package/data/sqlite/principalHistoryRetentionSchema.js +0 -25
  1080. package/data/sqlite/principalHistoryRetentionSchema.js.map +0 -1
  1081. package/data/sqlite/principalHistoryStageSchema.d.ts +0 -161
  1082. package/data/sqlite/principalHistoryStageSchema.js +0 -34
  1083. package/data/sqlite/principalHistoryStageSchema.js.map +0 -1
  1084. package/data/sqlite/principalMutationJournalSchema.d.ts +0 -85
  1085. package/data/sqlite/principalMutationJournalSchema.js +0 -13
  1086. package/data/sqlite/principalMutationJournalSchema.js.map +0 -1
  1087. package/data/sqlite/principalPolicySchema.js +0 -72
  1088. package/data/sqlite/principalPolicySchema.js.map +0 -1
  1089. package/data/sqlite/schema.d.ts +0 -8055
  1090. package/data/sqlite/schema.js +0 -525
  1091. package/data/sqlite/schema.js.map +0 -1
  1092. package/data/sqlite/securityIncidentSchema.d.ts +0 -224
  1093. package/data/sqlite/securityIncidentSchema.js +0 -28
  1094. package/data/sqlite/securityIncidentSchema.js.map +0 -1
  1095. package/data/sqlite/verifiedManifestBundleSchema.d.ts +0 -174
  1096. package/data/sqlite/verifiedManifestBundleSchema.js +0 -36
  1097. package/data/sqlite/verifiedManifestBundleSchema.js.map +0 -1
  1098. package/stores/container-contents/backgroundHydration.js +0 -32
  1099. package/stores/container-contents/backgroundHydration.js.map +0 -1
  1100. package/stores/container-contents/containerPurgeCore.js +0 -98
  1101. package/stores/container-contents/containerPurgeCore.js.map +0 -1
  1102. package/stores/container-contents/containerStateMap.js.map +0 -1
  1103. package/stores/container-contents/containerStatePersistence.js +0 -57
  1104. package/stores/container-contents/containerStatePersistence.js.map +0 -1
  1105. package/stores/container-contents/documentRecovery.js +0 -114
  1106. package/stores/container-contents/documentRecovery.js.map +0 -1
  1107. package/stores/container-contents/documentRotation.js +0 -13
  1108. package/stores/container-contents/documentRotation.js.map +0 -1
  1109. package/stores/container-contents/documentWork.js +0 -29
  1110. package/stores/container-contents/documentWork.js.map +0 -1
  1111. package/stores/container-contents/emptyTrashOperation.js.map +0 -1
  1112. package/stores/container-contents/existingSystemContainer.js +0 -58
  1113. package/stores/container-contents/existingSystemContainer.js.map +0 -1
  1114. package/stores/container-contents/groupRewrapOperation.js +0 -52
  1115. package/stores/container-contents/groupRewrapOperation.js.map +0 -1
  1116. package/stores/container-contents/metadataSyncSignal.js +0 -37
  1117. package/stores/container-contents/metadataSyncSignal.js.map +0 -1
  1118. package/stores/container-contents/missingContainerState.js +0 -10
  1119. package/stores/container-contents/missingContainerState.js.map +0 -1
  1120. package/stores/container-contents/missingSyncedContainerState.js.map +0 -1
  1121. package/stores/container-contents/operations.js +0 -301
  1122. package/stores/container-contents/operations.js.map +0 -1
  1123. package/stores/container-contents/organizationMetadataSystemContainer.js +0 -44
  1124. package/stores/container-contents/organizationMetadataSystemContainer.js.map +0 -1
  1125. package/stores/container-contents/purgeContainerOperation.js.map +0 -1
  1126. package/stores/container-contents/reconcilableContainer.d.ts +0 -48
  1127. package/stores/container-contents/reconcilableContainer.js.map +0 -1
  1128. package/stores/container-contents/remoteBackedContainerState.js.map +0 -1
  1129. package/stores/container-contents/remoteContainerIngestion.js +0 -59
  1130. package/stores/container-contents/remoteContainerIngestion.js.map +0 -1
  1131. package/stores/container-contents/remoteEventProjectionInvalidation.js +0 -36
  1132. package/stores/container-contents/remoteEventProjectionInvalidation.js.map +0 -1
  1133. package/stores/container-contents/remoteEventSync.js +0 -38
  1134. package/stores/container-contents/remoteEventSync.js.map +0 -1
  1135. package/stores/container-contents/remoteHydrationRequest.js +0 -245
  1136. package/stores/container-contents/remoteHydrationRequest.js.map +0 -1
  1137. package/stores/container-contents/remoteWriteGuards.js +0 -54
  1138. package/stores/container-contents/remoteWriteGuards.js.map +0 -1
  1139. package/stores/container-contents/remoteWriteQueue.js +0 -51
  1140. package/stores/container-contents/remoteWriteQueue.js.map +0 -1
  1141. package/stores/container-contents/reportShareFailure.js +0 -44
  1142. package/stores/container-contents/reportShareFailure.js.map +0 -1
  1143. package/stores/container-contents/setContainerIconOperation.js +0 -47
  1144. package/stores/container-contents/setContainerIconOperation.js.map +0 -1
  1145. package/stores/container-contents/shareOperations.js +0 -90
  1146. package/stores/container-contents/shareOperations.js.map +0 -1
  1147. package/stores/container-contents/startupHydration.js +0 -110
  1148. package/stores/container-contents/startupHydration.js.map +0 -1
  1149. package/stores/container-contents/syncAgent.d.ts +0 -8
  1150. package/stores/container-contents/syncAgent.js +0 -241
  1151. package/stores/container-contents/syncAgent.js.map +0 -1
  1152. package/stores/container-contents/syncAgentTypes.d.ts +0 -81
  1153. package/stores/container-contents/syncAgentTypes.js.map +0 -1
  1154. package/stores/container-contents/syncLaneIteration.js +0 -237
  1155. package/stores/container-contents/syncLaneIteration.js.map +0 -1
  1156. package/stores/container-contents/systemContainerHydration.js +0 -30
  1157. package/stores/container-contents/systemContainerHydration.js.map +0 -1
  1158. package/stores/container-contents/systemContainerIcon.js +0 -42
  1159. package/stores/container-contents/systemContainerIcon.js.map +0 -1
  1160. package/stores/container-contents/systemContainerLookup.js.map +0 -1
  1161. package/stores/container-contents/systemContainerPostCreate.js +0 -109
  1162. package/stores/container-contents/systemContainerPostCreate.js.map +0 -1
  1163. package/stores/container-contents/systemContainerPromotion.js +0 -49
  1164. package/stores/container-contents/systemContainerPromotion.js.map +0 -1
  1165. package/stores/container-contents/writeGeneration.js.map +0 -1
  1166. package/stores/documents/documentStore/attachmentDetachState.js +0 -54
  1167. package/stores/documents/documentStore/attachmentDetachState.js.map +0 -1
  1168. package/stores/documents/documentStore/attachmentHydration.js +0 -90
  1169. package/stores/documents/documentStore/attachmentHydration.js.map +0 -1
  1170. package/stores/documents/documentStore/attachmentHydrationCommit.js +0 -53
  1171. package/stores/documents/documentStore/attachmentHydrationCommit.js.map +0 -1
  1172. package/stores/documents/documentStore/attachmentIntents.js +0 -39
  1173. package/stores/documents/documentStore/attachmentIntents.js.map +0 -1
  1174. package/stores/documents/documentStore/attachmentMutationPersistence.js +0 -37
  1175. package/stores/documents/documentStore/attachmentMutationPersistence.js.map +0 -1
  1176. package/stores/documents/documentStore/attachmentPersistFollowup.js.map +0 -1
  1177. package/stores/documents/documentStore/attachmentPersistence.js +0 -106
  1178. package/stores/documents/documentStore/attachmentPersistence.js.map +0 -1
  1179. package/stores/documents/documentStore/attachmentRemoval.js +0 -136
  1180. package/stores/documents/documentStore/attachmentRemoval.js.map +0 -1
  1181. package/stores/documents/documentStore/attachmentSnapshot.js.map +0 -1
  1182. package/stores/documents/documentStore/attachmentSourceUpload.js +0 -39
  1183. package/stores/documents/documentStore/attachmentSourceUpload.js.map +0 -1
  1184. package/stores/documents/documentStore/attachmentStaging.js +0 -84
  1185. package/stores/documents/documentStore/attachmentStaging.js.map +0 -1
  1186. package/stores/documents/documentStore/attachmentUploadAttempt.js +0 -97
  1187. package/stores/documents/documentStore/attachmentUploadAttempt.js.map +0 -1
  1188. package/stores/documents/documentStore/attachmentUploadLane.js +0 -49
  1189. package/stores/documents/documentStore/attachmentUploadLane.js.map +0 -1
  1190. package/stores/documents/documentStore/attachmentUploadResume.js +0 -95
  1191. package/stores/documents/documentStore/attachmentUploadResume.js.map +0 -1
  1192. package/stores/documents/documentStore/attachmentWriteGeneration.js +0 -32
  1193. package/stores/documents/documentStore/attachmentWriteGeneration.js.map +0 -1
  1194. package/stores/documents/documentStore/attachments.js +0 -241
  1195. package/stores/documents/documentStore/attachments.js.map +0 -1
  1196. package/stores/documents/documentStore/deferredInitialUpdate.js +0 -116
  1197. package/stores/documents/documentStore/deferredInitialUpdate.js.map +0 -1
  1198. package/stores/documents/documentStore/documentHistoryCompaction.js +0 -67
  1199. package/stores/documents/documentStore/documentHistoryCompaction.js.map +0 -1
  1200. package/stores/documents/documentStore/durableDocumentReload.js +0 -79
  1201. package/stores/documents/documentStore/durableDocumentReload.js.map +0 -1
  1202. package/stores/documents/documentStore/historyRebuild.js +0 -75
  1203. package/stores/documents/documentStore/historyRebuild.js.map +0 -1
  1204. package/stores/documents/documentStore/initialization.js +0 -330
  1205. package/stores/documents/documentStore/initialization.js.map +0 -1
  1206. package/stores/documents/documentStore/initializationAttachments.js +0 -9
  1207. package/stores/documents/documentStore/initializationAttachments.js.map +0 -1
  1208. package/stores/documents/documentStore/initializationHistory.js +0 -33
  1209. package/stores/documents/documentStore/initializationHistory.js.map +0 -1
  1210. package/stores/documents/documentStore/initializationRecovery.js +0 -107
  1211. package/stores/documents/documentStore/initializationRecovery.js.map +0 -1
  1212. package/stores/documents/documentStore/pullContinuationInvalidation.js +0 -61
  1213. package/stores/documents/documentStore/pullContinuationInvalidation.js.map +0 -1
  1214. package/stores/documents/documentStore/remoteRevalidationTelemetry.js +0 -15
  1215. package/stores/documents/documentStore/remoteRevalidationTelemetry.js.map +0 -1
  1216. package/stores/documents/documentStore/remoteWork.js.map +0 -1
  1217. package/stores/documents/documentStore/rotation.js +0 -307
  1218. package/stores/documents/documentStore/rotation.js.map +0 -1
  1219. package/stores/documents/documentStore/rotationProvenance.js +0 -52
  1220. package/stores/documents/documentStore/rotationProvenance.js.map +0 -1
  1221. package/stores/documents/documentStore/rotationSettlement.js +0 -222
  1222. package/stores/documents/documentStore/rotationSettlement.js.map +0 -1
  1223. package/stores/documents/documentStore/sync.js +0 -299
  1224. package/stores/documents/documentStore/sync.js.map +0 -1
  1225. package/stores/documents/documentStore/syncAcceptedUpdateIds.js.map +0 -1
  1226. package/stores/documents/documentStore/syncAttachmentSettlement.js +0 -72
  1227. package/stores/documents/documentStore/syncAttachmentSettlement.js.map +0 -1
  1228. package/stores/documents/documentStore/syncAttachments.js +0 -323
  1229. package/stores/documents/documentStore/syncAttachments.js.map +0 -1
  1230. package/stores/documents/documentStore/syncDetachedAttachments.js +0 -129
  1231. package/stores/documents/documentStore/syncDetachedAttachments.js.map +0 -1
  1232. package/stores/documents/documentStore/syncFinalize.js +0 -204
  1233. package/stores/documents/documentStore/syncFinalize.js.map +0 -1
  1234. package/stores/documents/documentStore/syncGeneration.js.map +0 -1
  1235. package/stores/documents/documentStore/syncOutgoingCoverage.js +0 -96
  1236. package/stores/documents/documentStore/syncOutgoingCoverage.js.map +0 -1
  1237. package/stores/documents/documentStore/syncRemoteSignals.js +0 -67
  1238. package/stores/documents/documentStore/syncRemoteSignals.js.map +0 -1
  1239. package/stores/documents/documentStore/syncRequest.js +0 -157
  1240. package/stores/documents/documentStore/syncRequest.js.map +0 -1
  1241. package/stores/documents/documentStore/syncShared.js +0 -211
  1242. package/stores/documents/documentStore/syncShared.js.map +0 -1
  1243. package/stores/documents/documentStore/syncUpdateImport.js +0 -62
  1244. package/stores/documents/documentStore/syncUpdateImport.js.map +0 -1
  1245. package/stores/documents/documentStore/versionCoverage.js +0 -45
  1246. package/stores/documents/documentStore.d.ts +0 -8
  1247. package/stores/documents/documentStore.js +0 -215
  1248. package/stores/documents/documentStore.js.map +0 -1
  1249. package/workflows/container-contents/container-state/createAdoption.js +0 -193
  1250. package/workflows/container-contents/container-state/createAdoption.js.map +0 -1
  1251. package/workflows/container-contents/container-state/createChild.js +0 -217
  1252. package/workflows/container-contents/container-state/createChild.js.map +0 -1
  1253. package/workflows/container-contents/container-state/createIntentDepth.js +0 -36
  1254. package/workflows/container-contents/container-state/createIntentDepth.js.map +0 -1
  1255. package/workflows/container-contents/container-state/createIntentSettlement.js.map +0 -1
  1256. package/workflows/container-contents/container-state/createIntentSync.js +0 -354
  1257. package/workflows/container-contents/container-state/createIntentSync.js.map +0 -1
  1258. package/workflows/container-contents/container-state/createTerminalFailure.js +0 -19
  1259. package/workflows/container-contents/container-state/createTerminalFailure.js.map +0 -1
  1260. package/workflows/container-contents/container-state/createWithMetadata.js +0 -270
  1261. package/workflows/container-contents/container-state/createWithMetadata.js.map +0 -1
  1262. package/workflows/container-contents/container-state/createWithMetadataPlan.js +0 -68
  1263. package/workflows/container-contents/container-state/createWithMetadataPlan.js.map +0 -1
  1264. package/workflows/container-contents/container-state/groupGrantVerification.js +0 -71
  1265. package/workflows/container-contents/container-state/groupGrantVerification.js.map +0 -1
  1266. package/workflows/container-contents/container-state/groupShareEpoch.js +0 -16
  1267. package/workflows/container-contents/container-state/groupShareEpoch.js.map +0 -1
  1268. package/workflows/container-contents/container-state/localPurgeScope.js +0 -49
  1269. package/workflows/container-contents/container-state/localPurgeScope.js.map +0 -1
  1270. package/workflows/container-contents/container-state/purgeTree.js +0 -298
  1271. package/workflows/container-contents/container-state/purgeTree.js.map +0 -1
  1272. package/workflows/container-contents/container-state/purgeTreeCollection.js.map +0 -1
  1273. package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js +0 -75
  1274. package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js.map +0 -1
  1275. package/workflows/container-contents/container-state/purgeTreeScope.js +0 -175
  1276. package/workflows/container-contents/container-state/purgeTreeScope.js.map +0 -1
  1277. package/workflows/container-contents/container-state/readLocalPurgeScope.js +0 -18
  1278. package/workflows/container-contents/container-state/readLocalPurgeScope.js.map +0 -1
  1279. package/workflows/container-contents/container-state/share.js +0 -283
  1280. package/workflows/container-contents/container-state/share.js.map +0 -1
  1281. package/workflows/container-contents/container-state/sharePersistence.js +0 -136
  1282. package/workflows/container-contents/container-state/sharePersistence.js.map +0 -1
  1283. package/workflows/container-contents/remoteHydration/childIndex.js.map +0 -1
  1284. package/workflows/container-contents/remoteHydration/containerStateFingerprint.js.map +0 -1
  1285. package/workflows/container-contents/remoteHydration/destinationPrefetch.js.map +0 -1
  1286. package/workflows/container-contents/remoteHydration/destinationRoleCache.js.map +0 -1
  1287. package/workflows/container-contents/remoteHydration/destinationRootReload.js +0 -10
  1288. package/workflows/container-contents/remoteHydration/destinationRootReload.js.map +0 -1
  1289. package/workflows/container-contents/remoteHydration/insertRemoteContainer.js +0 -135
  1290. package/workflows/container-contents/remoteHydration/insertRemoteContainer.js.map +0 -1
  1291. package/workflows/container-contents/remoteHydration/laneFetchMarkers.js +0 -21
  1292. package/workflows/container-contents/remoteHydration/laneFetchMarkers.js.map +0 -1
  1293. package/workflows/container-contents/remoteHydration/parentLaneFetch.js +0 -61
  1294. package/workflows/container-contents/remoteHydration/parentLaneFetch.js.map +0 -1
  1295. package/workflows/container-contents/remoteHydration/parentLaneQueue.js.map +0 -1
  1296. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js +0 -244
  1297. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js.map +0 -1
  1298. package/workflows/container-contents/remoteHydration/remoteContainerState.js +0 -263
  1299. package/workflows/container-contents/remoteHydration/remoteContainerState.js.map +0 -1
  1300. package/workflows/container-contents/remoteHydration/remoteContainerTimestamps.js.map +0 -1
  1301. package/workflows/container-contents/remoteHydration/replacementBinding.js +0 -75
  1302. package/workflows/container-contents/remoteHydration/replacementBinding.js.map +0 -1
  1303. package/workflows/container-contents/remoteHydration/verifiedDestination.js +0 -296
  1304. package/workflows/container-contents/remoteHydration/verifiedDestination.js.map +0 -1
  1305. package/workflows/containers/child/carriedDescendantRekeys.js +0 -126
  1306. package/workflows/containers/child/carriedDescendantRekeys.js.map +0 -1
  1307. package/workflows/containers/child/create.d.ts +0 -24
  1308. package/workflows/containers/child/create.js +0 -335
  1309. package/workflows/containers/child/create.js.map +0 -1
  1310. package/workflows/containers/child/createProjection.d.ts +0 -6
  1311. package/workflows/containers/child/createProjection.js +0 -43
  1312. package/workflows/containers/child/createProjection.js.map +0 -1
  1313. package/workflows/containers/child/createSubmission.d.ts +0 -56
  1314. package/workflows/containers/child/createSubmission.js +0 -43
  1315. package/workflows/containers/child/createSubmission.js.map +0 -1
  1316. package/workflows/containers/child/currentShareGrantMutation.js +0 -82
  1317. package/workflows/containers/child/currentShareGrantMutation.js.map +0 -1
  1318. package/workflows/containers/child/currentSharePrincipalPolicy.js +0 -83
  1319. package/workflows/containers/child/currentSharePrincipalPolicy.js.map +0 -1
  1320. package/workflows/containers/child/keyringOverrideLineage.d.ts +0 -22
  1321. package/workflows/containers/child/keyringOverrideLineage.js +0 -39
  1322. package/workflows/containers/child/move.d.ts +0 -23
  1323. package/workflows/containers/child/move.js +0 -268
  1324. package/workflows/containers/child/move.js.map +0 -1
  1325. package/workflows/containers/child/moveArtifacts.js +0 -102
  1326. package/workflows/containers/child/moveArtifacts.js.map +0 -1
  1327. package/workflows/containers/child/moveRotation.js +0 -88
  1328. package/workflows/containers/child/moveRotation.js.map +0 -1
  1329. package/workflows/containers/child/moveWraps.js +0 -49
  1330. package/workflows/containers/child/moveWraps.js.map +0 -1
  1331. package/workflows/containers/child/rekey.d.ts +0 -32
  1332. package/workflows/containers/child/rekey.js +0 -227
  1333. package/workflows/containers/child/rekey.js.map +0 -1
  1334. package/workflows/containers/child/rekeyProjection.d.ts +0 -46
  1335. package/workflows/containers/child/rekeyProjection.js +0 -151
  1336. package/workflows/containers/child/rekeyProjection.js.map +0 -1
  1337. package/workflows/containers/child/rekeyRemote.d.ts +0 -24
  1338. package/workflows/containers/child/rekeyRemote.js +0 -64
  1339. package/workflows/containers/child/rekeyRemote.js.map +0 -1
  1340. package/workflows/containers/child/replacementPrincipalPolicyReferences.js +0 -19
  1341. package/workflows/containers/child/replacementPrincipalPolicyReferences.js.map +0 -1
  1342. package/workflows/containers/child/rotationContext.js +0 -64
  1343. package/workflows/containers/child/rotationContext.js.map +0 -1
  1344. package/workflows/containers/child/rotationPrincipalPolicies.js +0 -19
  1345. package/workflows/containers/child/rotationPrincipalPolicies.js.map +0 -1
  1346. package/workflows/containers/child/rotationWraps.js +0 -85
  1347. package/workflows/containers/child/rotationWraps.js.map +0 -1
  1348. package/workflows/containers/child/runtimeCurrentGroupShare.js +0 -79
  1349. package/workflows/containers/child/runtimeCurrentGroupShare.js.map +0 -1
  1350. package/workflows/containers/child/share.d.ts +0 -65
  1351. package/workflows/containers/child/share.js +0 -256
  1352. package/workflows/containers/child/share.js.map +0 -1
  1353. package/workflows/containers/child/shareAncestorRepair.js +0 -95
  1354. package/workflows/containers/child/shareAncestorRepair.js.map +0 -1
  1355. package/workflows/containers/child/shareMaterialization.d.ts +0 -25
  1356. package/workflows/containers/child/shareMaterialization.js +0 -164
  1357. package/workflows/containers/child/shareMaterialization.js.map +0 -1
  1358. package/workflows/containers/child/sharePlanCore.d.ts +0 -82
  1359. package/workflows/containers/child/sharePlanCore.js +0 -191
  1360. package/workflows/containers/child/sharePlanCore.js.map +0 -1
  1361. package/workflows/containers/child/sharePrincipalPolicy.d.ts +0 -51
  1362. package/workflows/containers/child/sharePrincipalPolicy.js +0 -194
  1363. package/workflows/containers/child/sharePrincipalPolicy.js.map +0 -1
  1364. package/workflows/containers/child/shareProjection.js.map +0 -1
  1365. /package/data/documents/shared/{containerKekCurrency.js → containerKek/containerKekCurrency.js} +0 -0
  1366. /package/data/documents/shared/{containerKekCurrency.js.map → containerKek/containerKekCurrency.js.map} +0 -0
  1367. /package/data/documents/shared/{containerKekEntryVerification.js.map → containerKek/containerKekEntryVerification.js.map} +0 -0
  1368. /package/data/documents/shared/{containerKekLogFetch.js.map → containerKek/containerKekLogFetch.js.map} +0 -0
  1369. /package/data/documents/shared/{containerKekPath.d.ts → containerKek/containerKekPath.d.ts} +0 -0
  1370. /package/data/documents/shared/{keyringLogWalk.js.map → containerKek/keyringLogWalk.js.map} +0 -0
  1371. /package/data/documents/shared/{pullContinuation.d.ts → sync/pullContinuation.d.ts} +0 -0
  1372. /package/data/documents/shared/{pullContinuation.js.map → sync/pullContinuation.js.map} +0 -0
  1373. /package/data/documents/shared/{syncSubmitFailure.js → sync/syncSubmitFailure.js} +0 -0
  1374. /package/data/documents/shared/{syncSubmitFailure.js.map → sync/syncSubmitFailure.js.map} +0 -0
  1375. /package/data/keyingProjectionVerification/{containerCreateManifest.js.map → container/containerCreateManifest.js.map} +0 -0
  1376. /package/data/keyingProjectionVerification/{documentContainerProjections.js → document/documentContainerProjections.js} +0 -0
  1377. /package/data/keyingProjectionVerification/{documentContainerProjections.js.map → document/documentContainerProjections.js.map} +0 -0
  1378. /package/data/keyingProjectionVerification/{documentManifestPredecessor.js.map → document/documentManifestPredecessor.js.map} +0 -0
  1379. /package/data/persistence/{keyingCheckpointEvidence.js.map → keyingCheckpoints/keyingCheckpointEvidence.js.map} +0 -0
  1380. /package/data/persistence/{storedPrincipalPolicyBundle.js → principalPolicy/storedPrincipalPolicyBundle.js} +0 -0
  1381. /package/data/persistence/{storedPrincipalPolicyBundle.js.map → principalPolicy/storedPrincipalPolicyBundle.js.map} +0 -0
  1382. /package/data/sqlite/{documentPersistenceTypes.js → documentPersistence/documentPersistenceTypes.js} +0 -0
  1383. /package/data/sqlite/{containerDocumentTombstoneHoldSchema.d.ts → schema/containerDocumentTombstoneHoldSchema.d.ts} +0 -0
  1384. /package/data/sqlite/{containerDocumentTombstoneHoldSchema.js → schema/containerDocumentTombstoneHoldSchema.js} +0 -0
  1385. /package/data/sqlite/{containerDocumentTombstoneHoldSchema.js.map → schema/containerDocumentTombstoneHoldSchema.js.map} +0 -0
  1386. /package/data/sqlite/{documentAttachmentSchema.d.ts → schema/documentAttachmentSchema.d.ts} +0 -0
  1387. /package/data/sqlite/{documentAttachmentSchema.js → schema/documentAttachmentSchema.js} +0 -0
  1388. /package/data/sqlite/{documentAttachmentSchema.js.map → schema/documentAttachmentSchema.js.map} +0 -0
  1389. /package/data/sqlite/{documentDiscoveryEvidenceSchema.js → schema/documentDiscoveryEvidenceSchema.js} +0 -0
  1390. /package/data/sqlite/{documentDiscoveryEvidenceSchema.js.map → schema/documentDiscoveryEvidenceSchema.js.map} +0 -0
  1391. /package/data/sqlite/{documentPlacementIntentSchema.js → schema/documentPlacementIntentSchema.js} +0 -0
  1392. /package/data/sqlite/{documentPlacementIntentSchema.js.map → schema/documentPlacementIntentSchema.js.map} +0 -0
  1393. /package/data/sqlite/{localIntentSchema.d.ts → schema/localIntentSchema.d.ts} +0 -0
  1394. /package/data/sqlite/{localIntentSchema.js → schema/localIntentSchema.js} +0 -0
  1395. /package/data/sqlite/{localIntentSchema.js.map → schema/localIntentSchema.js.map} +0 -0
  1396. /package/data/sqlite/{organizationFounderSchema.js → schema/organizationFounderSchema.js} +0 -0
  1397. /package/data/sqlite/{organizationFounderSchema.js.map → schema/organizationFounderSchema.js.map} +0 -0
  1398. /package/data/sqlite/{organizationReadModelSchema.js → schema/organizationReadModelSchema.js} +0 -0
  1399. /package/data/sqlite/{organizationReadModelSchema.js.map → schema/organizationReadModelSchema.js.map} +0 -0
  1400. /package/data/sqlite/{principalGrantRetirementSchema.js → schema/principalGrantRetirementSchema.js} +0 -0
  1401. /package/data/sqlite/{principalGrantRetirementSchema.js.map → schema/principalGrantRetirementSchema.js.map} +0 -0
  1402. /package/data/sqlite/{principalPolicySchema.d.ts → schema/principalPolicySchema.d.ts} +0 -0
  1403. /package/stores/container-contents/{containerStateMap.js → containerState/containerStateMap.js} +0 -0
  1404. /package/stores/container-contents/{missingSyncedContainerState.js → containerState/missingSyncedContainerState.js} +0 -0
  1405. /package/stores/container-contents/{reconcilableContainer.js → containerState/reconcilableContainer.js} +0 -0
  1406. /package/stores/container-contents/{remoteHydrationRefresh.js → hydration/remoteHydrationRefresh.js} +0 -0
  1407. /package/stores/container-contents/{remoteHydrationRefresh.js.map → hydration/remoteHydrationRefresh.js.map} +0 -0
  1408. /package/stores/container-contents/{emptyTrashOperation.js → operations/emptyTrashOperation.js} +0 -0
  1409. /package/stores/container-contents/{purgeContainerOperation.js → operations/purgeContainerOperation.js} +0 -0
  1410. /package/stores/container-contents/{remoteBackedContainerState.js → remoteEvents/remoteBackedContainerState.js} +0 -0
  1411. /package/stores/container-contents/{writeGeneration.js → remoteWrites/writeGeneration.js} +0 -0
  1412. /package/stores/container-contents/{syncAgentTypes.js → syncAgent/syncAgentTypes.js} +0 -0
  1413. /package/stores/container-contents/{systemContainerLookup.js → systemContainers/systemContainerLookup.js} +0 -0
  1414. /package/stores/documents/documentStore/{attachmentPersistFollowup.js → attachments/attachmentPersistFollowup.js} +0 -0
  1415. /package/stores/documents/documentStore/{attachmentSnapshot.js → attachments/attachmentSnapshot.js} +0 -0
  1416. /package/stores/documents/documentStore/{remoteWork.js → sync/remoteWork.js} +0 -0
  1417. /package/stores/documents/documentStore/{syncAcceptedUpdateIds.js → sync/syncAcceptedUpdateIds.js} +0 -0
  1418. /package/stores/documents/documentStore/{syncGeneration.js → sync/syncGeneration.js} +0 -0
  1419. /package/stores/documents/documentStore/{versionCoverage.js.map → sync/versionCoverage.js.map} +0 -0
  1420. /package/workflows/container-contents/container-state/{createIntentSettlement.js → create/createIntentSettlement.js} +0 -0
  1421. /package/workflows/container-contents/container-state/{purgeProgress.d.ts → purge/purgeProgress.d.ts} +0 -0
  1422. /package/workflows/container-contents/container-state/{purgeProgress.js → purge/purgeProgress.js} +0 -0
  1423. /package/workflows/container-contents/container-state/{purgeProgress.js.map → purge/purgeProgress.js.map} +0 -0
  1424. /package/workflows/container-contents/container-state/{purgeTreeCollection.js → purge/purgeTreeCollection.js} +0 -0
  1425. /package/workflows/container-contents/remoteHydration/{destinationPrefetch.js → destination/destinationPrefetch.js} +0 -0
  1426. /package/workflows/container-contents/remoteHydration/{destinationRoleCache.js → destination/destinationRoleCache.js} +0 -0
  1427. /package/workflows/container-contents/remoteHydration/{childIndex.js → lanes/childIndex.js} +0 -0
  1428. /package/workflows/container-contents/remoteHydration/{parentLaneQueue.js → lanes/parentLaneQueue.js} +0 -0
  1429. /package/workflows/container-contents/remoteHydration/{containerStateFingerprint.js → remoteContainers/containerStateFingerprint.js} +0 -0
  1430. /package/workflows/container-contents/remoteHydration/{remoteContainerTimestamps.js → remoteContainers/remoteContainerTimestamps.js} +0 -0
  1431. /package/workflows/containers/child/{keyringOverrideLineage.js.map → rekey/keyringOverrideLineage.js.map} +0 -0
  1432. /package/workflows/containers/child/{shareProjection.js → share/shareProjection.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"verifiedManifestBundlePersistence.js","sourceRoot":"","sources":["verifiedManifestBundlePersistence.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n VerifiedManifestCitations,\n WriterProjectionTarget,\n} from \"@tearleads/api-client\";\nimport { toFingerprint } from \"@tearleads/crypto\";\nimport {\n type AccessManifestBundleWireResponse,\n isAccessManifestBundleWireResponse,\n} from \"@tearleads/validators/response\";\nimport {\n KNOWN_MANIFEST_HINT_LIMIT,\n MAX_CONTAINER_PATH_LENGTH,\n} from \"@tearleads/validators/util\";\nimport { and, asc, desc, eq, inArray, sql } from \"drizzle-orm\";\nimport { containers } from \"../sqlite/containerSchema\";\nimport {\n documentDiscoveryHeads,\n pendingDocumentDiscoveries,\n} from \"../sqlite/documentDiscoveryEvidenceSchema\";\nimport {\n containerTables,\n documentContainerProjection,\n documentContainerProjectionTables,\n} from \"../sqlite/schema\";\nimport {\n type ClientSQLiteDatabase,\n type ClientSQLiteTransactionScope,\n getClientSQLitePersistenceRuntime,\n} from \"../sqlite/sqlitePersistenceRuntime\";\nimport { type ExecSql, ensureSqlTables } from \"../sqlite/sqlSchema\";\nimport {\n verifiedAccessManifestBundles as bundles,\n verifiedManifestBundleTables,\n} from \"../sqlite/verifiedManifestBundleSchema\";\n\n/**\n * Bounds local bytes (a bundle is ~10–20 KB). Evicting the least recently\n * verified rows only makes a later read carry those bundles again.\n */\nexport const MAX_VERIFIED_MANIFEST_BUNDLES = 1024;\nconst STATEMENT_BATCH = 200;\n\nexport interface VerifiedManifestBundle {\n readonly bundle: AccessManifestBundleWireResponse;\n readonly checkpoint: {\n readonly objectKind: string;\n readonly organizationId: string;\n readonly objectId: string;\n readonly epoch: number;\n };\n}\n\nfunction sha256Hex(text: string): Promise<string> {\n return toFingerprint(new TextEncoder().encode(text));\n}\n\nfunction batches<T>(values: readonly T[]): T[][] {\n const result: T[][] = [];\n for (let index = 0; index < values.length; index += STATEMENT_BATCH)\n result.push(values.slice(index, index + STATEMENT_BATCH));\n return result;\n}\n\nasync function pruneInTransaction(\n tx: ClientSQLiteTransactionScope,\n): Promise<void> {\n const [row] = await tx.select({ count: sql<number>`count(*)` }).from(bundles);\n const excess = (row?.count ?? 0) - MAX_VERIFIED_MANIFEST_BUNDLES;\n if (excess <= 0) return;\n const evicted = await tx\n .select({ manifestHash: bundles.manifestHash })\n .from(bundles)\n .orderBy(asc(bundles.verifiedAt), asc(bundles.manifestHash))\n .limit(excess);\n for (const batch of batches(evicted.map((entry) => entry.manifestHash)))\n await tx.delete(bundles).where(inArray(bundles.manifestHash, batch)).run();\n}\n\n/** A verified bundle's exact JSON and that JSON's digest. */\nexport type VerifiedManifestBundleRow = Omit<\n typeof bundles.$inferInsert,\n \"verifiedAt\"\n>;\n\n/**\n * Prepares rows for bundles that just passed projection verification. The\n * digests are computed here, before the checkpoint transaction that writes\n * them begins.\n */\nexport function verifiedManifestBundleRows(\n entries: readonly VerifiedManifestBundle[],\n): Promise<VerifiedManifestBundleRow[]> {\n const unique = new Map(\n entries.map((entry) => [entry.bundle.manifestHash, entry]),\n );\n return Promise.all(\n [...unique.values()].map(async ({ bundle, checkpoint }) => {\n const bundleJson = JSON.stringify(bundle);\n return {\n manifestHash: bundle.manifestHash,\n organizationId: checkpoint.organizationId,\n objectKind: checkpoint.objectKind,\n objectId: checkpoint.objectId,\n epoch: checkpoint.epoch,\n bundleJson,\n bundleDigest: await sha256Hex(bundleJson),\n };\n }),\n );\n}\n\n/**\n * Records verified bundles inside the transaction that finalizes their\n * projection's checkpoints, so they commit or roll back with it and no cache\n * work outlives the verification. Freshly verified bytes replace any stored\n * copy.\n */\nexport async function writeVerifiedManifestBundlesInTransaction(\n tx: ClientSQLiteTransactionScope,\n rows: readonly VerifiedManifestBundleRow[],\n verifiedAt: string,\n): Promise<void> {\n if (rows.length === 0) return;\n const stored = await storedDigests(\n tx,\n rows.map((row) => row.manifestHash),\n );\n // An identical stored row only needs its recency refreshed.\n const unchanged = rows.filter(\n (row) => stored.get(row.manifestHash) === row.bundleDigest,\n );\n for (const batch of batches(unchanged.map((row) => row.manifestHash)))\n await tx\n .update(bundles)\n .set({ verifiedAt })\n .where(inArray(bundles.manifestHash, batch))\n .run();\n for (const row of rows) {\n if (stored.get(row.manifestHash) === row.bundleDigest) continue;\n const verified = { ...row, verifiedAt };\n await tx\n .insert(bundles)\n .values(verified)\n .onConflictDoUpdate({ target: bundles.manifestHash, set: verified })\n .run();\n }\n await pruneInTransaction(tx);\n}\n\nasync function storedDigests(\n tx: ClientSQLiteTransactionScope,\n manifestHashes: readonly string[],\n): Promise<Map<string, string>> {\n const digests = new Map<string, string>();\n for (const batch of batches(manifestHashes)) {\n const rows = await tx\n .select({\n bundleDigest: bundles.bundleDigest,\n manifestHash: bundles.manifestHash,\n })\n .from(bundles)\n .where(inArray(bundles.manifestHash, batch));\n for (const row of rows) digests.set(row.manifestHash, row.bundleDigest);\n }\n return digests;\n}\n\n/** The requested object first, then each container whose lineage it cites. */\nasync function containerLineage(\n db: ClientSQLiteDatabase,\n containerId: string,\n): Promise<string[]> {\n const lineage = [containerId];\n while (lineage.length < MAX_CONTAINER_PATH_LENGTH) {\n const [row] = await db\n .select({ parentId: containers.parentId })\n .from(containers)\n .where(eq(containers.id, lineage.at(-1) ?? \"\"))\n .limit(1);\n const parentId = row?.parentId;\n if (!parentId || lineage.includes(parentId)) break;\n lineage.push(parentId);\n }\n return lineage;\n}\n\nasync function citedObjects(\n db: ClientSQLiteDatabase,\n target: WriterProjectionTarget,\n): Promise<{ readonly kind: string; readonly id: string }[]> {\n if (target.kind === \"container\")\n return (await containerLineage(db, target.id)).map((id) => ({\n kind: \"container\",\n id,\n }));\n // Linked containers, containers listing the document before its signed\n // placement is checked, and a container whose metadata document it is.\n const placements = [\n ...(await db\n .select({ containerId: documentContainerProjection.containerId })\n .from(documentContainerProjection)\n .where(eq(documentContainerProjection.documentId, target.id))),\n ...(await db\n .select({ containerId: pendingDocumentDiscoveries.containerId })\n .from(pendingDocumentDiscoveries)\n .where(eq(pendingDocumentDiscoveries.documentId, target.id))),\n ...(await db\n .select({ containerId: containers.id })\n .from(containers)\n .where(eq(containers.metadataDocumentId, target.id))),\n ];\n const containerIds = new Set<string>();\n for (const { containerId } of placements)\n if (containerId)\n for (const id of await containerLineage(db, containerId))\n containerIds.add(id);\n return [\n { kind: \"document\", id: target.id },\n ...[...containerIds].map((id) => ({ kind: \"container\", id })),\n ];\n}\n\n/**\n * The one organization every local source places the read in. Verified\n * ownership (stored verified bundles of the target and of the containers on\n * its walk, and a document's verified discovery head) and local placement\n * (listed container rows reached through links, pending listings, metadata,\n * or parents) must all agree: any disagreement, or no source at all, yields\n * null, so the read is sent with no hints rather than another\n * organization's.\n */\nasync function targetOrganization(\n db: ClientSQLiteDatabase,\n target: WriterProjectionTarget,\n objects: readonly { readonly kind: string; readonly id: string }[],\n): Promise<string | null> {\n const containerIds = objects\n .filter((object) => object.kind === \"container\")\n .map((object) => object.id);\n const listed =\n containerIds.length === 0\n ? []\n : await db\n .select({ organizationId: containers.organizationId })\n .from(containers)\n .where(inArray(containers.id, containerIds));\n const verifiedContainers =\n containerIds.length === 0\n ? []\n : await db\n .select({ organizationId: bundles.organizationId })\n .from(bundles)\n .where(\n and(\n eq(bundles.objectKind, \"container\"),\n inArray(bundles.objectId, containerIds),\n ),\n );\n const verifiedTarget = await db\n .select({ organizationId: bundles.organizationId })\n .from(bundles)\n .where(\n and(eq(bundles.objectKind, target.kind), eq(bundles.objectId, target.id)),\n );\n const discovered =\n target.kind === \"document\"\n ? await db\n .select({ organizationId: documentDiscoveryHeads.organizationId })\n .from(documentDiscoveryHeads)\n .where(eq(documentDiscoveryHeads.documentId, target.id))\n : [];\n const sources = [listed, verifiedContainers, verifiedTarget, discovered];\n const organizations = new Set(\n sources.flat().map((row) => row.organizationId),\n );\n const [organizationId] = organizations;\n return organizations.size === 1 && organizationId ? organizationId : null;\n}\n\ninterface StoredBundleRow {\n readonly bundleDigest: string;\n readonly bundleJson: string;\n readonly manifestHash: string;\n}\n\nconst storedColumns = {\n bundleDigest: bundles.bundleDigest,\n bundleJson: bundles.bundleJson,\n manifestHash: bundles.manifestHash,\n};\n\nasync function readStoredBundle(\n row: StoredBundleRow,\n): Promise<AccessManifestBundleWireResponse | null> {\n if ((await sha256Hex(row.bundleJson)) !== row.bundleDigest) return null;\n try {\n const bundle: unknown = JSON.parse(row.bundleJson);\n return isAccessManifestBundleWireResponse(bundle) &&\n bundle.manifestHash === row.manifestHash\n ? bundle\n : null;\n } catch {\n return null;\n }\n}\n\nfunction objectRows(\n db: ClientSQLiteDatabase,\n organizationId: string,\n object: { readonly kind: string; readonly id: string },\n limit: number,\n) {\n return db\n .select(storedColumns)\n .from(bundles)\n .where(\n and(\n eq(bundles.organizationId, organizationId),\n eq(bundles.objectKind, object.kind),\n eq(bundles.objectId, object.id),\n ),\n )\n .orderBy(desc(bundles.epoch))\n .limit(limit);\n}\n\nfunction recentRows(\n db: ClientSQLiteDatabase,\n organizationId: string,\n limit: number,\n) {\n return db\n .select(storedColumns)\n .from(bundles)\n .where(eq(bundles.organizationId, organizationId))\n .orderBy(desc(bundles.verifiedAt), asc(bundles.manifestHash))\n .limit(limit);\n}\n\n/**\n * Verified bundles of the target's object and of the containers its\n * projection walks, newest epochs first; then the most recently verified rows\n * of its organization, since a just-verified parent is the likeliest part of\n * a new child's projection. Citations never leave the target's organization:\n * an object whose organization the device cannot place cites nothing.\n * Damaged rows are dropped.\n */\nexport async function loadVerifiedManifestCitations(\n execSql: ExecSql,\n target: WriterProjectionTarget,\n limit = KNOWN_MANIFEST_HINT_LIMIT,\n): Promise<AccessManifestBundleWireResponse[]> {\n await ensureSqlTables(execSql, [\n ...verifiedManifestBundleTables,\n ...containerTables,\n ...documentContainerProjectionTables,\n ]);\n const { db } = getClientSQLitePersistenceRuntime(execSql);\n const cited = new Map<string, AccessManifestBundleWireResponse>();\n const damaged: string[] = [];\n const collect = async (rows: readonly StoredBundleRow[]) => {\n for (const row of rows) {\n if (cited.size >= limit || cited.has(row.manifestHash)) continue;\n const bundle = await readStoredBundle(row);\n if (bundle) cited.set(row.manifestHash, bundle);\n else damaged.push(row.manifestHash);\n }\n };\n const objects = await citedObjects(db, target);\n const organizationId = await targetOrganization(db, target, objects);\n if (organizationId === null) return [];\n for (const object of objects)\n if (cited.size < limit)\n await collect(\n await objectRows(db, organizationId, object, limit - cited.size),\n );\n if (cited.size < limit)\n await collect(await recentRows(db, organizationId, limit + cited.size));\n if (damaged.length > 0)\n await getClientSQLitePersistenceRuntime(execSql)\n .runMutation((handle) =>\n handle\n .delete(bundles)\n .where(inArray(bundles.manifestHash, damaged))\n .run(),\n )\n .catch(() => undefined);\n return [...cited.values()];\n}\n\n/** Cites from whichever database the signed-in identity currently uses. */\nexport function createVerifiedManifestCitations(\n resolveExecSql: () => ExecSql | null,\n): VerifiedManifestCitations {\n return {\n cite: async (target) => {\n const execSql = resolveExecSql();\n return execSql ? loadVerifiedManifestCitations(execSql, target) : [];\n },\n };\n}\n"]}
1
+ {"version":3,"file":"verifiedManifestBundlePersistence.js","sourceRoot":"","sources":["verifiedManifestBundlePersistence.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n VerifiedManifestCitations,\n WriterProjectionTarget,\n} from \"@tearleads/api-client\";\nimport { toFingerprint } from \"@tearleads/crypto\";\nimport {\n type AccessManifestBundleWireResponse,\n isAccessManifestBundleWireResponse,\n} from \"@tearleads/validators/response\";\nimport {\n KNOWN_MANIFEST_HINT_LIMIT,\n MAX_CONTAINER_PATH_LENGTH,\n} from \"@tearleads/validators/util\";\nimport { and, asc, desc, eq, inArray, sql } from \"drizzle-orm\";\nimport {\n containerTables,\n documentContainerProjection,\n documentContainerProjectionTables,\n} from \"../sqlite/schema\";\nimport { containers } from \"../sqlite/schema/containerSchema\";\nimport {\n documentDiscoveryHeads,\n pendingDocumentDiscoveries,\n} from \"../sqlite/schema/documentDiscoveryEvidenceSchema\";\nimport {\n verifiedAccessManifestBundles as bundles,\n verifiedManifestBundleTables,\n} from \"../sqlite/schema/verifiedManifestBundleSchema\";\nimport {\n type ClientSQLiteDatabase,\n type ClientSQLiteTransactionScope,\n getClientSQLitePersistenceRuntime,\n} from \"../sqlite/sqlitePersistenceRuntime\";\nimport { type ExecSql, ensureSqlTables } from \"../sqlite/sqlSchema\";\n\n/**\n * Bounds local bytes (a bundle is ~10–20 KB). Evicting the least recently\n * verified rows only makes a later read carry those bundles again.\n */\nexport const MAX_VERIFIED_MANIFEST_BUNDLES = 1024;\nconst STATEMENT_BATCH = 200;\n\nexport interface VerifiedManifestBundle {\n readonly bundle: AccessManifestBundleWireResponse;\n readonly checkpoint: {\n readonly objectKind: string;\n readonly organizationId: string;\n readonly objectId: string;\n readonly epoch: number;\n };\n}\n\nfunction sha256Hex(text: string): Promise<string> {\n return toFingerprint(new TextEncoder().encode(text));\n}\n\nfunction batches<T>(values: readonly T[]): T[][] {\n const result: T[][] = [];\n for (let index = 0; index < values.length; index += STATEMENT_BATCH)\n result.push(values.slice(index, index + STATEMENT_BATCH));\n return result;\n}\n\nasync function pruneInTransaction(\n tx: ClientSQLiteTransactionScope,\n): Promise<void> {\n const [row] = await tx.select({ count: sql<number>`count(*)` }).from(bundles);\n const excess = (row?.count ?? 0) - MAX_VERIFIED_MANIFEST_BUNDLES;\n if (excess <= 0) return;\n const evicted = await tx\n .select({ manifestHash: bundles.manifestHash })\n .from(bundles)\n .orderBy(asc(bundles.verifiedAt), asc(bundles.manifestHash))\n .limit(excess);\n for (const batch of batches(evicted.map((entry) => entry.manifestHash)))\n await tx.delete(bundles).where(inArray(bundles.manifestHash, batch)).run();\n}\n\n/** A verified bundle's exact JSON and that JSON's digest. */\nexport type VerifiedManifestBundleRow = Omit<\n typeof bundles.$inferInsert,\n \"verifiedAt\"\n>;\n\n/**\n * Prepares rows for bundles that just passed projection verification. The\n * digests are computed here, before the checkpoint transaction that writes\n * them begins.\n */\nexport function verifiedManifestBundleRows(\n entries: readonly VerifiedManifestBundle[],\n): Promise<VerifiedManifestBundleRow[]> {\n const unique = new Map(\n entries.map((entry) => [entry.bundle.manifestHash, entry]),\n );\n return Promise.all(\n [...unique.values()].map(async ({ bundle, checkpoint }) => {\n const bundleJson = JSON.stringify(bundle);\n return {\n manifestHash: bundle.manifestHash,\n organizationId: checkpoint.organizationId,\n objectKind: checkpoint.objectKind,\n objectId: checkpoint.objectId,\n epoch: checkpoint.epoch,\n bundleJson,\n bundleDigest: await sha256Hex(bundleJson),\n };\n }),\n );\n}\n\n/**\n * Records verified bundles inside the transaction that finalizes their\n * projection's checkpoints, so they commit or roll back with it and no cache\n * work outlives the verification. Freshly verified bytes replace any stored\n * copy.\n */\nexport async function writeVerifiedManifestBundlesInTransaction(\n tx: ClientSQLiteTransactionScope,\n rows: readonly VerifiedManifestBundleRow[],\n verifiedAt: string,\n): Promise<void> {\n if (rows.length === 0) return;\n const stored = await storedDigests(\n tx,\n rows.map((row) => row.manifestHash),\n );\n // An identical stored row only needs its recency refreshed.\n const unchanged = rows.filter(\n (row) => stored.get(row.manifestHash) === row.bundleDigest,\n );\n for (const batch of batches(unchanged.map((row) => row.manifestHash)))\n await tx\n .update(bundles)\n .set({ verifiedAt })\n .where(inArray(bundles.manifestHash, batch))\n .run();\n for (const row of rows) {\n if (stored.get(row.manifestHash) === row.bundleDigest) continue;\n const verified = { ...row, verifiedAt };\n await tx\n .insert(bundles)\n .values(verified)\n .onConflictDoUpdate({ target: bundles.manifestHash, set: verified })\n .run();\n }\n await pruneInTransaction(tx);\n}\n\nasync function storedDigests(\n tx: ClientSQLiteTransactionScope,\n manifestHashes: readonly string[],\n): Promise<Map<string, string>> {\n const digests = new Map<string, string>();\n for (const batch of batches(manifestHashes)) {\n const rows = await tx\n .select({\n bundleDigest: bundles.bundleDigest,\n manifestHash: bundles.manifestHash,\n })\n .from(bundles)\n .where(inArray(bundles.manifestHash, batch));\n for (const row of rows) digests.set(row.manifestHash, row.bundleDigest);\n }\n return digests;\n}\n\n/** The requested object first, then each container whose lineage it cites. */\nasync function containerLineage(\n db: ClientSQLiteDatabase,\n containerId: string,\n): Promise<string[]> {\n const lineage = [containerId];\n while (lineage.length < MAX_CONTAINER_PATH_LENGTH) {\n const [row] = await db\n .select({ parentId: containers.parentId })\n .from(containers)\n .where(eq(containers.id, lineage.at(-1) ?? \"\"))\n .limit(1);\n const parentId = row?.parentId;\n if (!parentId || lineage.includes(parentId)) break;\n lineage.push(parentId);\n }\n return lineage;\n}\n\nasync function citedObjects(\n db: ClientSQLiteDatabase,\n target: WriterProjectionTarget,\n): Promise<{ readonly kind: string; readonly id: string }[]> {\n if (target.kind === \"container\")\n return (await containerLineage(db, target.id)).map((id) => ({\n kind: \"container\",\n id,\n }));\n // Linked containers, containers listing the document before its signed\n // placement is checked, and a container whose metadata document it is.\n const placements = [\n ...(await db\n .select({ containerId: documentContainerProjection.containerId })\n .from(documentContainerProjection)\n .where(eq(documentContainerProjection.documentId, target.id))),\n ...(await db\n .select({ containerId: pendingDocumentDiscoveries.containerId })\n .from(pendingDocumentDiscoveries)\n .where(eq(pendingDocumentDiscoveries.documentId, target.id))),\n ...(await db\n .select({ containerId: containers.id })\n .from(containers)\n .where(eq(containers.metadataDocumentId, target.id))),\n ];\n const containerIds = new Set<string>();\n for (const { containerId } of placements)\n if (containerId)\n for (const id of await containerLineage(db, containerId))\n containerIds.add(id);\n return [\n { kind: \"document\", id: target.id },\n ...[...containerIds].map((id) => ({ kind: \"container\", id })),\n ];\n}\n\n/**\n * The one organization every local source places the read in. Verified\n * ownership (stored verified bundles of the target and of the containers on\n * its walk, and a document's verified discovery head) and local placement\n * (listed container rows reached through links, pending listings, metadata,\n * or parents) must all agree: any disagreement, or no source at all, yields\n * null, so the read is sent with no hints rather than another\n * organization's.\n */\nasync function targetOrganization(\n db: ClientSQLiteDatabase,\n target: WriterProjectionTarget,\n objects: readonly { readonly kind: string; readonly id: string }[],\n): Promise<string | null> {\n const containerIds = objects\n .filter((object) => object.kind === \"container\")\n .map((object) => object.id);\n const listed =\n containerIds.length === 0\n ? []\n : await db\n .select({ organizationId: containers.organizationId })\n .from(containers)\n .where(inArray(containers.id, containerIds));\n const verifiedContainers =\n containerIds.length === 0\n ? []\n : await db\n .select({ organizationId: bundles.organizationId })\n .from(bundles)\n .where(\n and(\n eq(bundles.objectKind, \"container\"),\n inArray(bundles.objectId, containerIds),\n ),\n );\n const verifiedTarget = await db\n .select({ organizationId: bundles.organizationId })\n .from(bundles)\n .where(\n and(eq(bundles.objectKind, target.kind), eq(bundles.objectId, target.id)),\n );\n const discovered =\n target.kind === \"document\"\n ? await db\n .select({ organizationId: documentDiscoveryHeads.organizationId })\n .from(documentDiscoveryHeads)\n .where(eq(documentDiscoveryHeads.documentId, target.id))\n : [];\n const sources = [listed, verifiedContainers, verifiedTarget, discovered];\n const organizations = new Set(\n sources.flat().map((row) => row.organizationId),\n );\n const [organizationId] = organizations;\n return organizations.size === 1 && organizationId ? organizationId : null;\n}\n\ninterface StoredBundleRow {\n readonly bundleDigest: string;\n readonly bundleJson: string;\n readonly manifestHash: string;\n}\n\nconst storedColumns = {\n bundleDigest: bundles.bundleDigest,\n bundleJson: bundles.bundleJson,\n manifestHash: bundles.manifestHash,\n};\n\nasync function readStoredBundle(\n row: StoredBundleRow,\n): Promise<AccessManifestBundleWireResponse | null> {\n if ((await sha256Hex(row.bundleJson)) !== row.bundleDigest) return null;\n try {\n const bundle: unknown = JSON.parse(row.bundleJson);\n return isAccessManifestBundleWireResponse(bundle) &&\n bundle.manifestHash === row.manifestHash\n ? bundle\n : null;\n } catch {\n return null;\n }\n}\n\nfunction objectRows(\n db: ClientSQLiteDatabase,\n organizationId: string,\n object: { readonly kind: string; readonly id: string },\n limit: number,\n) {\n return db\n .select(storedColumns)\n .from(bundles)\n .where(\n and(\n eq(bundles.organizationId, organizationId),\n eq(bundles.objectKind, object.kind),\n eq(bundles.objectId, object.id),\n ),\n )\n .orderBy(desc(bundles.epoch))\n .limit(limit);\n}\n\nfunction recentRows(\n db: ClientSQLiteDatabase,\n organizationId: string,\n limit: number,\n) {\n return db\n .select(storedColumns)\n .from(bundles)\n .where(eq(bundles.organizationId, organizationId))\n .orderBy(desc(bundles.verifiedAt), asc(bundles.manifestHash))\n .limit(limit);\n}\n\n/**\n * Verified bundles of the target's object and of the containers its\n * projection walks, newest epochs first; then the most recently verified rows\n * of its organization, since a just-verified parent is the likeliest part of\n * a new child's projection. Citations never leave the target's organization:\n * an object whose organization the device cannot place cites nothing.\n * Damaged rows are dropped.\n */\nexport async function loadVerifiedManifestCitations(\n execSql: ExecSql,\n target: WriterProjectionTarget,\n limit = KNOWN_MANIFEST_HINT_LIMIT,\n): Promise<AccessManifestBundleWireResponse[]> {\n await ensureSqlTables(execSql, [\n ...verifiedManifestBundleTables,\n ...containerTables,\n ...documentContainerProjectionTables,\n ]);\n const { db } = getClientSQLitePersistenceRuntime(execSql);\n const cited = new Map<string, AccessManifestBundleWireResponse>();\n const damaged: string[] = [];\n const collect = async (rows: readonly StoredBundleRow[]) => {\n for (const row of rows) {\n if (cited.size >= limit || cited.has(row.manifestHash)) continue;\n const bundle = await readStoredBundle(row);\n if (bundle) cited.set(row.manifestHash, bundle);\n else damaged.push(row.manifestHash);\n }\n };\n const objects = await citedObjects(db, target);\n const organizationId = await targetOrganization(db, target, objects);\n if (organizationId === null) return [];\n for (const object of objects)\n if (cited.size < limit)\n await collect(\n await objectRows(db, organizationId, object, limit - cited.size),\n );\n if (cited.size < limit)\n await collect(await recentRows(db, organizationId, limit + cited.size));\n if (damaged.length > 0)\n await getClientSQLitePersistenceRuntime(execSql)\n .runMutation((handle) =>\n handle\n .delete(bundles)\n .where(inArray(bundles.manifestHash, damaged))\n .run(),\n )\n .catch(() => undefined);\n return [...cited.values()];\n}\n\n/** Cites from whichever database the signed-in identity currently uses. */\nexport function createVerifiedManifestCitations(\n resolveExecSql: () => ExecSql | null,\n): VerifiedManifestCitations {\n return {\n cite: async (target) => {\n const execSql = resolveExecSql();\n return execSql ? loadVerifiedManifestCitations(execSql, target) : [];\n },\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { computePrincipalStateHash, computePrincipalStatePayloadCiphertextHash, } from "../../internal/crypto/index.js";
2
- import { loadPrincipalPolicyCheckpoint } from "../persistence/keyingCheckpointPersistence.js";
3
- import { loadPrincipalPolicyBundle } from "../persistence/principalPolicyPersistence.js";
2
+ import { loadPrincipalPolicyCheckpoint } from "../persistence/keyingCheckpoints/keyingCheckpointPersistence.js";
3
+ import { loadPrincipalPolicyBundle } from "../persistence/principalPolicy/principalPolicyPersistence.js";
4
4
  import { parseOrganizationAuthorityDescriptor } from "./organizationAuthorityDescriptor.js";
5
5
  /** Public labels come only from a descriptor pinned by prior verification. */
6
6
  export async function loadVerifiedOrganizationGroupRoles(execSql, organizationId) {
@@ -1 +1 @@
1
- {"version":3,"file":"organizationGroupRoles.js","sourceRoot":"","sources":["organizationGroupRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,0CAA0C,GAC3C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAEzF,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,OAAgB,EAChB,cAAsB;IAEtB,MAAM,UAAU,GAAG,MAAM,6BAA6B,CACpD,OAAO,EACP,cAAc,EACd,cAAc,CACf,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,OAAO,EACP,cAAc,EACd,cAAc,CACf,CAAC;IACF,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;IAClC,IACE,KAAK,CAAC,aAAa,KAAK,cAAc;QACtC,KAAK,CAAC,WAAW,KAAK,cAAc;QACpC,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO;QACpC,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS;QACxC,CAAC,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS;QACjE,CAAC,MAAM,0CAA0C,CAC/C,MAAM,CAAC,cAAc,CAAC,UAAU,CACjC,CAAC,KAAK,KAAK,CAAC,qBAAqB;QAElC,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,oCAAoC,CACrD,MAAM,CAAC,cAAc,CAAC,UAAU,CACjC,CAAC;IACF,IAAI,UAAU,CAAC,cAAc,KAAK,cAAc;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACnE,OAAO,IAAI,GAAG,CAAC;QACb,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC;QACnC,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;KACtC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n computePrincipalStateHash,\n computePrincipalStatePayloadCiphertextHash,\n} from \"@tearleads/crypto\";\nimport { loadPrincipalPolicyCheckpoint } from \"../persistence/keyingCheckpointPersistence\";\nimport { loadPrincipalPolicyBundle } from \"../persistence/principalPolicyPersistence\";\nimport type { ExecSql } from \"../sqlite/sqlSchema\";\nimport { parseOrganizationAuthorityDescriptor } from \"./organizationAuthorityDescriptor\";\n\n/** Public labels come only from a descriptor pinned by prior verification. */\nexport async function loadVerifiedOrganizationGroupRoles(\n execSql: ExecSql,\n organizationId: string,\n): Promise<ReadonlyMap<string, string>> {\n const checkpoint = await loadPrincipalPolicyCheckpoint(\n execSql,\n \"organization\",\n organizationId,\n );\n const bundle = await loadPrincipalPolicyBundle(\n execSql,\n \"organization\",\n organizationId,\n );\n if (!checkpoint || !bundle) return new Map();\n const state = bundle.currentState;\n if (\n state.principalType !== \"organization\" ||\n state.principalId !== organizationId ||\n state.version !== checkpoint.version ||\n state.stateHash !== checkpoint.stateHash ||\n (await computePrincipalStateHash(state)) !== checkpoint.stateHash ||\n (await computePrincipalStatePayloadCiphertextHash(\n bundle.currentPayload.ciphertext,\n )) !== state.payloadCiphertextHash\n )\n return new Map();\n const descriptor = parseOrganizationAuthorityDescriptor(\n bundle.currentPayload.ciphertext,\n );\n if (descriptor.organizationId !== organizationId) return new Map();\n return new Map([\n [descriptor.adminGroupId, \"Admins\"],\n [descriptor.memberGroupId, \"Members\"],\n ]);\n}\n"]}
1
+ {"version":3,"file":"organizationGroupRoles.js","sourceRoot":"","sources":["organizationGroupRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,0CAA0C,GAC3C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAEtG,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAEzF,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,OAAgB,EAChB,cAAsB;IAEtB,MAAM,UAAU,GAAG,MAAM,6BAA6B,CACpD,OAAO,EACP,cAAc,EACd,cAAc,CACf,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,OAAO,EACP,cAAc,EACd,cAAc,CACf,CAAC;IACF,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;IAClC,IACE,KAAK,CAAC,aAAa,KAAK,cAAc;QACtC,KAAK,CAAC,WAAW,KAAK,cAAc;QACpC,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO;QACpC,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS;QACxC,CAAC,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS;QACjE,CAAC,MAAM,0CAA0C,CAC/C,MAAM,CAAC,cAAc,CAAC,UAAU,CACjC,CAAC,KAAK,KAAK,CAAC,qBAAqB;QAElC,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,oCAAoC,CACrD,MAAM,CAAC,cAAc,CAAC,UAAU,CACjC,CAAC;IACF,IAAI,UAAU,CAAC,cAAc,KAAK,cAAc;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACnE,OAAO,IAAI,GAAG,CAAC;QACb,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC;QACnC,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;KACtC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n computePrincipalStateHash,\n computePrincipalStatePayloadCiphertextHash,\n} from \"@tearleads/crypto\";\nimport { loadPrincipalPolicyCheckpoint } from \"../persistence/keyingCheckpoints/keyingCheckpointPersistence\";\nimport { loadPrincipalPolicyBundle } from \"../persistence/principalPolicy/principalPolicyPersistence\";\nimport type { ExecSql } from \"../sqlite/sqlSchema\";\nimport { parseOrganizationAuthorityDescriptor } from \"./organizationAuthorityDescriptor\";\n\n/** Public labels come only from a descriptor pinned by prior verification. */\nexport async function loadVerifiedOrganizationGroupRoles(\n execSql: ExecSql,\n organizationId: string,\n): Promise<ReadonlyMap<string, string>> {\n const checkpoint = await loadPrincipalPolicyCheckpoint(\n execSql,\n \"organization\",\n organizationId,\n );\n const bundle = await loadPrincipalPolicyBundle(\n execSql,\n \"organization\",\n organizationId,\n );\n if (!checkpoint || !bundle) return new Map();\n const state = bundle.currentState;\n if (\n state.principalType !== \"organization\" ||\n state.principalId !== organizationId ||\n state.version !== checkpoint.version ||\n state.stateHash !== checkpoint.stateHash ||\n (await computePrincipalStateHash(state)) !== checkpoint.stateHash ||\n (await computePrincipalStatePayloadCiphertextHash(\n bundle.currentPayload.ciphertext,\n )) !== state.payloadCiphertextHash\n )\n return new Map();\n const descriptor = parseOrganizationAuthorityDescriptor(\n bundle.currentPayload.ciphertext,\n );\n if (descriptor.organizationId !== organizationId) return new Map();\n return new Map([\n [descriptor.adminGroupId, \"Admins\"],\n [descriptor.memberGroupId, \"Members\"],\n ]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"principalHistoryPrefixProtection.js","sourceRoot":"","sources":["principalHistoryPrefixProtection.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,4BAA4B,EAC5B,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,6EAA6E;AAC7E,gFAAgF;AAChF,mFAAmF;AACnF,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAIrD;IACC,OAAO,aAAa,CAClB,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,4BAA4B,CAAC;QAC3B,6CAA6C;QAC7C,KAAK,CAAC,cAAc;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa;QACxB,KAAK,CAAC,IAAI,CAAC,WAAW;QACtB,KAAK,CAAC,UAAU,CAAC,OAAO;KACzB,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,UAAiD,EACjD,MAAgD;IAEhD,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,4BAA4B,CAAC;YACpC,MAAM,EAAE,2CAA2C;YACnD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,aAAa,CAChC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAC7C;SACF,CAAC;KACH,CAAC;AACJ,CAAC","sourcesContent":["import {\n type PrincipalPolicyHistoryProgressOptions,\n type ReferencedPrincipalHead,\n serializeKeyingCanonicalJson,\n toFingerprint,\n} from \"@tearleads/crypto\";\nimport type { PrincipalHistoryPrefix } from \"../persistence/principalHistoryPrefixPersistence\";\n\n// Signed entries and index nodes are content-addressed public evidence. Keep\n// their storage namespace stable across local-key replacement; authenticating a\n// prefix still requires the current private key. An unreadable prefix is discarded\n// and rebuilt from signatures, reusing rows only after checking the new root.\nexport async function principalHistoryEvidenceScopeId(input: {\n readonly organizationId: string;\n readonly head: Pick<ReferencedPrincipalHead, \"principalType\" | \"principalId\">;\n readonly protection: PrincipalPolicyHistoryProgressOptions;\n}): Promise<string> {\n return toFingerprint(\n new TextEncoder().encode(\n serializeKeyingCanonicalJson([\n \"tearleads.sdk.principal-history-evidence.v2\",\n input.organizationId,\n input.head.principalType,\n input.head.principalId,\n input.protection.context,\n ]),\n ),\n );\n}\n\nexport async function principalHistoryPrefixProtection(\n protection: PrincipalPolicyHistoryProgressOptions,\n prefix: Omit<PrincipalHistoryPrefix, \"progress\">,\n): Promise<PrincipalPolicyHistoryProgressOptions> {\n return {\n localKey: protection.localKey,\n context: serializeKeyingCanonicalJson({\n domain: \"tearleads.sdk.principal-history-prefix.v2\",\n context: protection.context,\n scopeId: prefix.scopeId,\n organizationId: prefix.organizationId,\n version: prefix.version,\n headJson: prefix.headJson,\n currentDigest: await toFingerprint(\n new TextEncoder().encode(prefix.currentJson),\n ),\n }),\n };\n}\n"]}
1
+ {"version":3,"file":"principalHistoryPrefixProtection.js","sourceRoot":"","sources":["principalHistoryPrefixProtection.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,4BAA4B,EAC5B,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,6EAA6E;AAC7E,gFAAgF;AAChF,mFAAmF;AACnF,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAIrD;IACC,OAAO,aAAa,CAClB,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,4BAA4B,CAAC;QAC3B,6CAA6C;QAC7C,KAAK,CAAC,cAAc;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa;QACxB,KAAK,CAAC,IAAI,CAAC,WAAW;QACtB,KAAK,CAAC,UAAU,CAAC,OAAO;KACzB,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,UAAiD,EACjD,MAAgD;IAEhD,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,4BAA4B,CAAC;YACpC,MAAM,EAAE,2CAA2C;YACnD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,aAAa,CAChC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAC7C;SACF,CAAC;KACH,CAAC;AACJ,CAAC","sourcesContent":["import {\n type PrincipalPolicyHistoryProgressOptions,\n type ReferencedPrincipalHead,\n serializeKeyingCanonicalJson,\n toFingerprint,\n} from \"@tearleads/crypto\";\nimport type { PrincipalHistoryPrefix } from \"../persistence/principalHistory/principalHistoryPrefixPersistence\";\n\n// Signed entries and index nodes are content-addressed public evidence. Keep\n// their storage namespace stable across local-key replacement; authenticating a\n// prefix still requires the current private key. An unreadable prefix is discarded\n// and rebuilt from signatures, reusing rows only after checking the new root.\nexport async function principalHistoryEvidenceScopeId(input: {\n readonly organizationId: string;\n readonly head: Pick<ReferencedPrincipalHead, \"principalType\" | \"principalId\">;\n readonly protection: PrincipalPolicyHistoryProgressOptions;\n}): Promise<string> {\n return toFingerprint(\n new TextEncoder().encode(\n serializeKeyingCanonicalJson([\n \"tearleads.sdk.principal-history-evidence.v2\",\n input.organizationId,\n input.head.principalType,\n input.head.principalId,\n input.protection.context,\n ]),\n ),\n );\n}\n\nexport async function principalHistoryPrefixProtection(\n protection: PrincipalPolicyHistoryProgressOptions,\n prefix: Omit<PrincipalHistoryPrefix, \"progress\">,\n): Promise<PrincipalPolicyHistoryProgressOptions> {\n return {\n localKey: protection.localKey,\n context: serializeKeyingCanonicalJson({\n domain: \"tearleads.sdk.principal-history-prefix.v2\",\n context: protection.context,\n scopeId: prefix.scopeId,\n organizationId: prefix.organizationId,\n version: prefix.version,\n headJson: prefix.headJson,\n currentDigest: await toFingerprint(\n new TextEncoder().encode(prefix.currentJson),\n ),\n }),\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"principalHistoryStageProtection.js","sourceRoot":"","sources":["principalHistoryStageProtection.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,4BAA4B,EAC5B,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAG/E,MAAM,UAAU,uBAAuB,CACrC,cAAsB,EACtB,IAA6B,EAC7B,OAAe;IAEf,OAAO,aAAa,CAClB,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,4BAA4B,CAAC;QAC3B,0CAA0C;QAC1C,cAAc;QACd,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,cAAc;QACnB,OAAO;KACR,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAiD,EACjD,YAAqC,EACrC,KAA8C;IAE9C,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,4BAA4B,CAAC;YACpC,MAAM,EAAE,0CAA0C;YAClD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE;YACjC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,MAAM,aAAa,CAChC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAC5C;SACF,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAkE;IAElE,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,MAAM,IAAI,GAAG;QACX,GAAG,OAAO;QACV,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE;KAC1E,CAAC;IACF,IACE,CAAC,6BAA6B,CAAC,IAAI,CAAC;QACpC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO;QAE/C,OAAO,IAAI,CAAC;IACd,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAC;AACJ,CAAC","sourcesContent":["import type { PrincipalPolicyPageCurrent } from \"@tearleads/api-client\";\nimport {\n type PrincipalPolicyHistoryProgressOptions,\n type ReferencedPrincipalHead,\n serializeKeyingCanonicalJson,\n toFingerprint,\n} from \"@tearleads/crypto\";\nimport { isPrincipalPolicyPageResponse } from \"@tearleads/validators/response\";\nimport type { PrincipalHistoryStage } from \"../persistence/principalHistoryStagePersistence\";\n\nexport function principalHistoryStageId(\n organizationId: string,\n head: ReferencedPrincipalHead,\n context: string,\n) {\n return toFingerprint(\n new TextEncoder().encode(\n serializeKeyingCanonicalJson([\n \"tearleads.sdk.principal-history-stage.v2\",\n organizationId,\n head.principalType,\n head.principalId,\n head.version,\n head.keyEpoch,\n head.stateHash,\n head.keyFingerprint,\n context,\n ]),\n ),\n );\n}\n\nexport async function principalHistoryStageProtection(\n protection: PrincipalPolicyHistoryProgressOptions,\n expectedHead: ReferencedPrincipalHead,\n stage: Omit<PrincipalHistoryStage, \"progress\">,\n): Promise<PrincipalPolicyHistoryProgressOptions> {\n return {\n localKey: protection.localKey,\n context: serializeKeyingCanonicalJson({\n domain: \"tearleads.sdk.principal-history-stage.v1\",\n context: protection.context,\n id: stage.id,\n organizationId: stage.organizationId,\n expectedHead: { ...expectedHead },\n afterVersion: stage.afterVersion,\n complete: stage.complete,\n currentDigest: await toFingerprint(\n new TextEncoder().encode(stage.currentJson),\n ),\n }),\n };\n}\n\nexport function parsePrincipalHistoryStageCurrent(\n stage: Pick<PrincipalHistoryStage, \"currentJson\" | \"afterVersion\">,\n): PrincipalPolicyPageCurrent | null {\n let current: unknown;\n try {\n current = JSON.parse(stage.currentJson);\n } catch {\n return null;\n }\n if (!current || typeof current !== \"object\" || Array.isArray(current))\n return null;\n const page = {\n ...current,\n previousStates: [],\n historyPage: { afterVersion: stage.afterVersion, nextAfterVersion: null },\n };\n if (\n !isPrincipalPolicyPageResponse(page) ||\n stage.afterVersion >= page.currentState.version\n )\n return null;\n return {\n currentState: page.currentState,\n currentPayload: page.currentPayload,\n currentProjection: page.currentProjection,\n currentGrants: page.currentGrants,\n currentMemberEnvelopes: page.currentMemberEnvelopes,\n };\n}\n"]}
1
+ {"version":3,"file":"principalHistoryStageProtection.js","sourceRoot":"","sources":["principalHistoryStageProtection.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,4BAA4B,EAC5B,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAG/E,MAAM,UAAU,uBAAuB,CACrC,cAAsB,EACtB,IAA6B,EAC7B,OAAe;IAEf,OAAO,aAAa,CAClB,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,4BAA4B,CAAC;QAC3B,0CAA0C;QAC1C,cAAc;QACd,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,cAAc;QACnB,OAAO;KACR,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAiD,EACjD,YAAqC,EACrC,KAA8C;IAE9C,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,4BAA4B,CAAC;YACpC,MAAM,EAAE,0CAA0C;YAClD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE;YACjC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,MAAM,aAAa,CAChC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAC5C;SACF,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAkE;IAElE,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,MAAM,IAAI,GAAG;QACX,GAAG,OAAO;QACV,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE;KAC1E,CAAC;IACF,IACE,CAAC,6BAA6B,CAAC,IAAI,CAAC;QACpC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO;QAE/C,OAAO,IAAI,CAAC;IACd,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CAAC;AACJ,CAAC","sourcesContent":["import type { PrincipalPolicyPageCurrent } from \"@tearleads/api-client\";\nimport {\n type PrincipalPolicyHistoryProgressOptions,\n type ReferencedPrincipalHead,\n serializeKeyingCanonicalJson,\n toFingerprint,\n} from \"@tearleads/crypto\";\nimport { isPrincipalPolicyPageResponse } from \"@tearleads/validators/response\";\nimport type { PrincipalHistoryStage } from \"../persistence/principalHistory/principalHistoryStagePersistence\";\n\nexport function principalHistoryStageId(\n organizationId: string,\n head: ReferencedPrincipalHead,\n context: string,\n) {\n return toFingerprint(\n new TextEncoder().encode(\n serializeKeyingCanonicalJson([\n \"tearleads.sdk.principal-history-stage.v2\",\n organizationId,\n head.principalType,\n head.principalId,\n head.version,\n head.keyEpoch,\n head.stateHash,\n head.keyFingerprint,\n context,\n ]),\n ),\n );\n}\n\nexport async function principalHistoryStageProtection(\n protection: PrincipalPolicyHistoryProgressOptions,\n expectedHead: ReferencedPrincipalHead,\n stage: Omit<PrincipalHistoryStage, \"progress\">,\n): Promise<PrincipalPolicyHistoryProgressOptions> {\n return {\n localKey: protection.localKey,\n context: serializeKeyingCanonicalJson({\n domain: \"tearleads.sdk.principal-history-stage.v1\",\n context: protection.context,\n id: stage.id,\n organizationId: stage.organizationId,\n expectedHead: { ...expectedHead },\n afterVersion: stage.afterVersion,\n complete: stage.complete,\n currentDigest: await toFingerprint(\n new TextEncoder().encode(stage.currentJson),\n ),\n }),\n };\n}\n\nexport function parsePrincipalHistoryStageCurrent(\n stage: Pick<PrincipalHistoryStage, \"currentJson\" | \"afterVersion\">,\n): PrincipalPolicyPageCurrent | null {\n let current: unknown;\n try {\n current = JSON.parse(stage.currentJson);\n } catch {\n return null;\n }\n if (!current || typeof current !== \"object\" || Array.isArray(current))\n return null;\n const page = {\n ...current,\n previousStates: [],\n historyPage: { afterVersion: stage.afterVersion, nextAfterVersion: null },\n };\n if (\n !isPrincipalPolicyPageResponse(page) ||\n stage.afterVersion >= page.currentState.version\n )\n return null;\n return {\n currentState: page.currentState,\n currentPayload: page.currentPayload,\n currentProjection: page.currentProjection,\n currentGrants: page.currentGrants,\n currentMemberEnvelopes: page.currentMemberEnvelopes,\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { unwrapDek } from "../../internal/crypto/index.js";
2
2
  import { base64ToBytes } from "../../internal/encoding/index.js";
3
- import { loadPrincipalKeyEnvelopeCandidates, } from "../persistence/principalKeyEnvelopeCandidates.js";
3
+ import { loadPrincipalKeyEnvelopeCandidates, } from "../persistence/principalKeys/principalKeyEnvelopeCandidates.js";
4
4
  function toKeyEnvelopeEntries(envelopes) {
5
5
  return envelopes.map((envelope) => ({
6
6
  keyFingerprint: envelope.keyFingerprint,
@@ -1 +1 @@
1
- {"version":3,"file":"principalPolicyCrypto.js","sourceRoot":"","sources":["principalPolicyCrypto.ts"],"names":[],"mappings":"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","sourcesContent":["import { type RecipientEntry, unwrapDek } from \"@tearleads/crypto\";\nimport { base64ToBytes } from \"@tearleads/encoding\";\nimport type { PrincipalMemberEnvelopeResponse } from \"@tearleads/validators/response\";\nimport type { SerializedKeyEnvelope } from \"@tearleads/validators/util\";\nimport {\n loadPrincipalKeyEnvelopeCandidates,\n type PrincipalKeyEnvelopeCandidate,\n} from \"../persistence/principalKeyEnvelopeCandidates\";\nimport type { ExecSql } from \"../sqlite/sqlSchema\";\n\ninterface PrincipalPolicyResolutionContext {\n bundlesByKeyFingerprint: ReadonlyMap<\n string,\n ReadonlyArray<PrincipalKeyEnvelopeCandidate>\n >;\n}\n\nfunction toKeyEnvelopeEntries(\n envelopes: ReadonlyArray<SerializedKeyEnvelope>,\n): RecipientEntry[] {\n return envelopes.map((envelope) => ({\n keyFingerprint: envelope.keyFingerprint,\n kemCipherText: base64ToBytes(envelope.kemCipherText),\n wrappedKey: base64ToBytes(envelope.wrappedKey),\n }));\n}\n\nfunction toMemberEnvelopeEntries(\n envelopes: ReadonlyArray<PrincipalMemberEnvelopeResponse>,\n): RecipientEntry[] {\n return envelopes.map((envelope) => ({\n keyFingerprint: envelope.memberKeyFingerprint,\n kemCipherText: base64ToBytes(envelope.kemCipherText),\n wrappedKey: base64ToBytes(envelope.wrappedKey),\n }));\n}\n\nfunction principalBundleKey(\n bundle: Pick<\n PrincipalKeyEnvelopeCandidate[\"currentState\"],\n \"principalType\" | \"principalId\"\n >,\n): string {\n return `${bundle.principalType}:${bundle.principalId}`;\n}\n\nasync function createPrincipalPolicyResolutionContext(\n execSql: ExecSql,\n fingerprints: readonly string[],\n): Promise<PrincipalPolicyResolutionContext> {\n const bundles = await loadPrincipalKeyEnvelopeCandidates(\n execSql,\n fingerprints,\n );\n const bundlesByKeyFingerprint = new Map<\n string,\n PrincipalKeyEnvelopeCandidate[]\n >();\n\n for (const bundle of bundles) {\n const matchingBundles =\n bundlesByKeyFingerprint.get(bundle.currentState.keyFingerprint) ?? [];\n matchingBundles.push(bundle);\n bundlesByKeyFingerprint.set(\n bundle.currentState.keyFingerprint,\n matchingBundles,\n );\n }\n\n return {\n bundlesByKeyFingerprint,\n };\n}\n\nasync function unwrapPrincipalSecretKey(\n bundle: PrincipalKeyEnvelopeCandidate,\n secretKey: Uint8Array,\n): Promise<Uint8Array> {\n const principalKey = principalBundleKey(bundle.currentState);\n const memberEnvelopeEntries = toMemberEnvelopeEntries(\n bundle.currentMemberEnvelopes.envelopes,\n );\n\n try {\n return await unwrapDek(memberEnvelopeEntries, secretKey);\n } catch {\n // No transitive fallback: a principal's envelopes are all addressed to\n // users directly, so if this identity key opens none of them the requester\n // is not a member.\n }\n\n throw new Error(`No matching principal member envelope for ${principalKey}`);\n}\n\nexport async function unwrapKeyEnvelopesWithPrincipalPolicies(input: {\n envelopes: ReadonlyArray<SerializedKeyEnvelope>;\n execSql?: ExecSql | undefined;\n secretKey: Uint8Array;\n}): Promise<Uint8Array> {\n const keyEntries = toKeyEnvelopeEntries(input.envelopes);\n\n try {\n return await unwrapDek(keyEntries, input.secretKey);\n } catch {\n if (!input.execSql) {\n throw new Error(\n \"No matching key envelope entry found for this secret key and no principal policy cache is available\",\n );\n }\n }\n\n const context = await createPrincipalPolicyResolutionContext(\n input.execSql,\n input.envelopes.map((envelope) => envelope.keyFingerprint),\n );\n const attemptedFingerprints = new Set<string>();\n\n for (const envelope of input.envelopes) {\n if (attemptedFingerprints.has(envelope.keyFingerprint)) continue;\n attemptedFingerprints.add(envelope.keyFingerprint);\n const candidateBundles =\n context.bundlesByKeyFingerprint.get(envelope.keyFingerprint) ?? [];\n\n for (const bundle of candidateBundles) {\n try {\n const principalSecretKey = await unwrapPrincipalSecretKey(\n bundle,\n input.secretKey,\n );\n\n return await unwrapDek(keyEntries, principalSecretKey);\n } catch {}\n }\n }\n\n throw new Error(\n \"No matching key envelope entry found for this secret key or cached principal policies\",\n );\n}\n"]}
1
+ {"version":3,"file":"principalPolicyCrypto.js","sourceRoot":"","sources":["principalPolicyCrypto.ts"],"names":[],"mappings":"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","sourcesContent":["import { type RecipientEntry, unwrapDek } from \"@tearleads/crypto\";\nimport { base64ToBytes } from \"@tearleads/encoding\";\nimport type { PrincipalMemberEnvelopeResponse } from \"@tearleads/validators/response\";\nimport type { SerializedKeyEnvelope } from \"@tearleads/validators/util\";\nimport {\n loadPrincipalKeyEnvelopeCandidates,\n type PrincipalKeyEnvelopeCandidate,\n} from \"../persistence/principalKeys/principalKeyEnvelopeCandidates\";\nimport type { ExecSql } from \"../sqlite/sqlSchema\";\n\ninterface PrincipalPolicyResolutionContext {\n bundlesByKeyFingerprint: ReadonlyMap<\n string,\n ReadonlyArray<PrincipalKeyEnvelopeCandidate>\n >;\n}\n\nfunction toKeyEnvelopeEntries(\n envelopes: ReadonlyArray<SerializedKeyEnvelope>,\n): RecipientEntry[] {\n return envelopes.map((envelope) => ({\n keyFingerprint: envelope.keyFingerprint,\n kemCipherText: base64ToBytes(envelope.kemCipherText),\n wrappedKey: base64ToBytes(envelope.wrappedKey),\n }));\n}\n\nfunction toMemberEnvelopeEntries(\n envelopes: ReadonlyArray<PrincipalMemberEnvelopeResponse>,\n): RecipientEntry[] {\n return envelopes.map((envelope) => ({\n keyFingerprint: envelope.memberKeyFingerprint,\n kemCipherText: base64ToBytes(envelope.kemCipherText),\n wrappedKey: base64ToBytes(envelope.wrappedKey),\n }));\n}\n\nfunction principalBundleKey(\n bundle: Pick<\n PrincipalKeyEnvelopeCandidate[\"currentState\"],\n \"principalType\" | \"principalId\"\n >,\n): string {\n return `${bundle.principalType}:${bundle.principalId}`;\n}\n\nasync function createPrincipalPolicyResolutionContext(\n execSql: ExecSql,\n fingerprints: readonly string[],\n): Promise<PrincipalPolicyResolutionContext> {\n const bundles = await loadPrincipalKeyEnvelopeCandidates(\n execSql,\n fingerprints,\n );\n const bundlesByKeyFingerprint = new Map<\n string,\n PrincipalKeyEnvelopeCandidate[]\n >();\n\n for (const bundle of bundles) {\n const matchingBundles =\n bundlesByKeyFingerprint.get(bundle.currentState.keyFingerprint) ?? [];\n matchingBundles.push(bundle);\n bundlesByKeyFingerprint.set(\n bundle.currentState.keyFingerprint,\n matchingBundles,\n );\n }\n\n return {\n bundlesByKeyFingerprint,\n };\n}\n\nasync function unwrapPrincipalSecretKey(\n bundle: PrincipalKeyEnvelopeCandidate,\n secretKey: Uint8Array,\n): Promise<Uint8Array> {\n const principalKey = principalBundleKey(bundle.currentState);\n const memberEnvelopeEntries = toMemberEnvelopeEntries(\n bundle.currentMemberEnvelopes.envelopes,\n );\n\n try {\n return await unwrapDek(memberEnvelopeEntries, secretKey);\n } catch {\n // No transitive fallback: a principal's envelopes are all addressed to\n // users directly, so if this identity key opens none of them the requester\n // is not a member.\n }\n\n throw new Error(`No matching principal member envelope for ${principalKey}`);\n}\n\nexport async function unwrapKeyEnvelopesWithPrincipalPolicies(input: {\n envelopes: ReadonlyArray<SerializedKeyEnvelope>;\n execSql?: ExecSql | undefined;\n secretKey: Uint8Array;\n}): Promise<Uint8Array> {\n const keyEntries = toKeyEnvelopeEntries(input.envelopes);\n\n try {\n return await unwrapDek(keyEntries, input.secretKey);\n } catch {\n if (!input.execSql) {\n throw new Error(\n \"No matching key envelope entry found for this secret key and no principal policy cache is available\",\n );\n }\n }\n\n const context = await createPrincipalPolicyResolutionContext(\n input.execSql,\n input.envelopes.map((envelope) => envelope.keyFingerprint),\n );\n const attemptedFingerprints = new Set<string>();\n\n for (const envelope of input.envelopes) {\n if (attemptedFingerprints.has(envelope.keyFingerprint)) continue;\n attemptedFingerprints.add(envelope.keyFingerprint);\n const candidateBundles =\n context.bundlesByKeyFingerprint.get(envelope.keyFingerprint) ?? [];\n\n for (const bundle of candidateBundles) {\n try {\n const principalSecretKey = await unwrapPrincipalSecretKey(\n bundle,\n input.secretKey,\n );\n\n return await unwrapDek(keyEntries, principalSecretKey);\n } catch {}\n }\n }\n\n throw new Error(\n \"No matching key envelope entry found for this secret key or cached principal policies\",\n );\n}\n"]}
@@ -0,0 +1,86 @@
1
+ import { type ExecSql } from "../sqlSchema.js";
2
+ import type { DocumentScope } from "./documentPersistenceTypes.js";
3
+ /**
4
+ * Compaction thresholds: once the tail carries this many rows or bytes, the
5
+ * next persist of a full-history-capable document exports a fresh checkpoint
6
+ * and clears the tail. Small enough to keep restore replay short, large
7
+ * enough that a full-history export (O(history)) happens once per burst of
8
+ * edits instead of per keystroke.
9
+ */
10
+ export declare const DOCUMENT_HISTORY_COMPACTION_MAX_ROWS = 200;
11
+ export declare const DOCUMENT_HISTORY_COMPACTION_MAX_BYTES: number;
12
+ /**
13
+ * Row provenance: "local" for updates authored on this device, "remote" for
14
+ * decrypted pulled updates. Restores advance the outgoing-delta marker across
15
+ * remote rows (already server-side); local rows never advance it.
16
+ */
17
+ type DocumentHistoryUpdateOrigin = "local" | "remote";
18
+ interface DocumentHistoryTailUpdate {
19
+ readonly origin: DocumentHistoryUpdateOrigin;
20
+ readonly updateData: string;
21
+ }
22
+ interface DocumentHistoryRestoreState {
23
+ readonly snapshot: string;
24
+ readonly tailUpdates: readonly DocumentHistoryTailUpdate[];
25
+ }
26
+ export declare function appendDocumentHistoryUpdates(execSql: ExecSql, scope: DocumentScope, updates: readonly string[], origin: DocumentHistoryUpdateOrigin): Promise<void>;
27
+ /**
28
+ * The checkpoint + ordered tail for a scope, or null when NEITHER exists (a
29
+ * discovered shell that has not hydrated content yet; the caller starts the
30
+ * document empty and the remote pull supplies the content). A tail WITHOUT a
31
+ * checkpoint — a crash between the first enqueued edit's tail append and the
32
+ * birth-checkpoint seed — restores as tail-only (`snapshot: ""`): those tail
33
+ * rows can be the only durable copy of a local edit, so they must never be
34
+ * silently ignored.
35
+ */
36
+ export declare function loadDocumentHistoryRestoreState(execSql: ExecSql, scope: DocumentScope): Promise<DocumentHistoryRestoreState | null>;
37
+ /**
38
+ * Size of the tail compaction can shrink. Queued rows are excluded: they stay
39
+ * until settlement, so counting them would re-export full history on every
40
+ * persist while offline edits wait to sync.
41
+ */
42
+ export declare function readDocumentHistoryTailSize(execSql: ExecSql, scope: DocumentScope): Promise<{
43
+ byteLength: number;
44
+ hasCheckpoint: boolean;
45
+ rowCount: number;
46
+ }>;
47
+ interface DocumentHistoryTailEntry {
48
+ readonly id: string;
49
+ readonly updateData: string;
50
+ }
51
+ /**
52
+ * The current compactable tail rows WITH their payloads, so a compactor can
53
+ * prove each row's ops are covered by the snapshot it is about to install
54
+ * (another pane's append may carry ops this pane's document has not merged
55
+ * yet). Queued rows are never candidates.
56
+ */
57
+ export declare function listDocumentHistoryTailEntries(execSql: ExecSql, scope: DocumentScope): Promise<DocumentHistoryTailEntry[]>;
58
+ /**
59
+ * Replace the scope's checkpoint with a fresh full-history snapshot and
60
+ * delete ONLY the tail rows the caller captured before exporting it. Every
61
+ * append path writes its tail row after the ops are already in the live
62
+ * document, so any row captured before the export is provably covered by
63
+ * the snapshot — while a row appended concurrently (between export and this
64
+ * delete) survives for the next compaction instead of being lost.
65
+ */
66
+ export declare function replaceDocumentHistoryCheckpoint(execSql: ExecSql, scope: DocumentScope, input: {
67
+ coveredTailIds: readonly string[];
68
+ endVersionVector: string;
69
+ /**
70
+ * Skip the monotonic version gate. Only for document CREATION, where any
71
+ * existing checkpoint under this localId is the orphan of a failed prior
72
+ * attempt (checkpoint written, record row never committed) — a retry's
73
+ * fresh document need not dominate that orphan to replace it.
74
+ */
75
+ force?: boolean;
76
+ snapshot: string;
77
+ /**
78
+ * Re-checked after acquiring the serialized mutation slot (like the
79
+ * record-save path): a store reset/recreation that happened while this
80
+ * call waited in the queue must abort the write, or a stale compactor
81
+ * could install the OLD document's checkpoint over the new identity's.
82
+ */
83
+ stillCurrent?: () => boolean;
84
+ }): Promise<boolean>;
85
+ export declare function deleteDocumentHistory(execSql: ExecSql, scope: DocumentScope): Promise<void>;
86
+ export {};
@@ -0,0 +1,304 @@
1
+ import { base64ToBytes } from "../../../internal/encoding/index.js";
2
+ import { createDocument, exportFullHistoryIdentity, importSnapshot, satisfiesVersionVector, } from "../../../internal/loro/index.js";
3
+ import { and, eq, inArray, isNull, ne, sql } from "drizzle-orm";
4
+ import { documentHistoryCheckpoints, documentHistoryUpdates, documentTables, } from "../schema/index.js";
5
+ import { getClientSQLitePersistenceRuntime } from "../sqlitePersistenceRuntime.js";
6
+ import { ensureSqlTables } from "../sqlSchema.js";
7
+ /**
8
+ * Compaction thresholds: once the tail carries this many rows or bytes, the
9
+ * next persist of a full-history-capable document exports a fresh checkpoint
10
+ * and clears the tail. Small enough to keep restore replay short, large
11
+ * enough that a full-history export (O(history)) happens once per burst of
12
+ * edits instead of per keystroke.
13
+ */
14
+ export const DOCUMENT_HISTORY_COMPACTION_MAX_ROWS = 200;
15
+ export const DOCUMENT_HISTORY_COMPACTION_MAX_BYTES = 512 * 1024;
16
+ /**
17
+ * Rows of the update log that are history tail: every row except an "outbox"
18
+ * row, which only waits to be sent (see `documentHistoryUpdates`).
19
+ */
20
+ function tailInScope(scope) {
21
+ return and(eq(documentHistoryUpdates.appKind, scope.appKind), eq(documentHistoryUpdates.localId, scope.localId), ne(documentHistoryUpdates.origin, "outbox"));
22
+ }
23
+ /**
24
+ * Tail rows compaction may fold into a checkpoint and delete: a queued row is
25
+ * the only durable copy of an unsent update, so it waits for settlement even
26
+ * when a checkpoint already covers its operations.
27
+ */
28
+ function compactableTailInScope(scope) {
29
+ return and(tailInScope(scope), isNull(documentHistoryUpdates.updateId));
30
+ }
31
+ export async function appendDocumentHistoryUpdates(execSql, scope, updates, origin) {
32
+ if (updates.length === 0) {
33
+ return;
34
+ }
35
+ await ensureSqlTables(execSql, documentTables);
36
+ const createdAt = new Date().toISOString();
37
+ await getClientSQLitePersistenceRuntime(execSql).runMutation(async (db) => {
38
+ // Chunked: a catch-up pull can carry thousands of updates, and a single
39
+ // multi-row insert would exceed SQLite's bound-variable limit.
40
+ for (let index = 0; index < updates.length; index += HISTORY_ROW_CHUNK) {
41
+ await db.insert(documentHistoryUpdates).values(updates.slice(index, index + HISTORY_ROW_CHUNK).map((updateData) => ({
42
+ id: crypto.randomUUID(),
43
+ appKind: scope.appKind,
44
+ localId: scope.localId,
45
+ updateData,
46
+ origin,
47
+ createdAt,
48
+ })));
49
+ }
50
+ });
51
+ }
52
+ /**
53
+ * The checkpoint + ordered tail for a scope, or null when NEITHER exists (a
54
+ * discovered shell that has not hydrated content yet; the caller starts the
55
+ * document empty and the remote pull supplies the content). A tail WITHOUT a
56
+ * checkpoint — a crash between the first enqueued edit's tail append and the
57
+ * birth-checkpoint seed — restores as tail-only (`snapshot: ""`): those tail
58
+ * rows can be the only durable copy of a local edit, so they must never be
59
+ * silently ignored.
60
+ */
61
+ export async function loadDocumentHistoryRestoreState(execSql, scope) {
62
+ await ensureSqlTables(execSql, documentTables);
63
+ const { db } = getClientSQLitePersistenceRuntime(execSql);
64
+ // Read the TAIL before the (full) checkpoint: if another pane compacts
65
+ // between the two reads, this order yields old-tail + new-checkpoint — a
66
+ // safe superset (the new checkpoint subsumes the old tail, and replay is
67
+ // idempotent by op identity). The reverse order could yield old-checkpoint
68
+ // + already-emptied tail, a torn read that silently drops the compacted
69
+ // ops for the whole session.
70
+ const tail = await db
71
+ .select({
72
+ id: documentHistoryUpdates.id,
73
+ origin: documentHistoryUpdates.origin,
74
+ updateData: documentHistoryUpdates.updateData,
75
+ })
76
+ .from(documentHistoryUpdates)
77
+ .where(tailInScope(scope))
78
+ // Insertion order: same-millisecond appends make createdAt tie and a
79
+ // random-uuid tiebreak would replay out of order. importUpdates tolerates
80
+ // out-of-order batches, but replay should still be deterministic.
81
+ .orderBy(sql `rowid`);
82
+ const [checkpoint] = await db
83
+ .select({ snapshot: documentHistoryCheckpoints.snapshot })
84
+ .from(documentHistoryCheckpoints)
85
+ .where(and(eq(documentHistoryCheckpoints.appKind, scope.appKind), eq(documentHistoryCheckpoints.localId, scope.localId)))
86
+ .limit(1);
87
+ if (!checkpoint && tail.length === 0) {
88
+ return null;
89
+ }
90
+ return {
91
+ snapshot: checkpoint?.snapshot ?? "",
92
+ tailUpdates: tail.map((row) => ({
93
+ // Fail toward re-sending: an unrecognized origin never advances the
94
+ // marker, which is the recoverable direction (a redundant re-submit
95
+ // is idempotent; a skipped local op would be orphaned from sync).
96
+ origin: row.origin === "remote" ? "remote" : "local",
97
+ updateData: row.updateData,
98
+ })),
99
+ };
100
+ }
101
+ /**
102
+ * Size of the tail compaction can shrink. Queued rows are excluded: they stay
103
+ * until settlement, so counting them would re-export full history on every
104
+ * persist while offline edits wait to sync.
105
+ */
106
+ export async function readDocumentHistoryTailSize(execSql, scope) {
107
+ await ensureSqlTables(execSql, documentTables);
108
+ const { db } = getClientSQLitePersistenceRuntime(execSql);
109
+ const [totals] = await db
110
+ .select({
111
+ byteLength: sql `coalesce(sum(length(${documentHistoryUpdates.updateData})), 0)`,
112
+ rowCount: sql `count(*)`,
113
+ })
114
+ .from(documentHistoryUpdates)
115
+ .where(compactableTailInScope(scope));
116
+ const [checkpoint] = await db
117
+ .select({ localId: documentHistoryCheckpoints.localId })
118
+ .from(documentHistoryCheckpoints)
119
+ .where(and(eq(documentHistoryCheckpoints.appKind, scope.appKind), eq(documentHistoryCheckpoints.localId, scope.localId)))
120
+ .limit(1);
121
+ return {
122
+ byteLength: Number(totals?.byteLength ?? 0),
123
+ hasCheckpoint: checkpoint !== undefined,
124
+ rowCount: Number(totals?.rowCount ?? 0),
125
+ };
126
+ }
127
+ /**
128
+ * The current compactable tail rows WITH their payloads, so a compactor can
129
+ * prove each row's ops are covered by the snapshot it is about to install
130
+ * (another pane's append may carry ops this pane's document has not merged
131
+ * yet). Queued rows are never candidates.
132
+ */
133
+ export async function listDocumentHistoryTailEntries(execSql, scope) {
134
+ await ensureSqlTables(execSql, documentTables);
135
+ const { db } = getClientSQLitePersistenceRuntime(execSql);
136
+ const rows = await db
137
+ .select({
138
+ id: documentHistoryUpdates.id,
139
+ updateData: documentHistoryUpdates.updateData,
140
+ })
141
+ .from(documentHistoryUpdates)
142
+ .where(compactableTailInScope(scope));
143
+ return rows.flatMap((row) => row.id === null ? [] : [{ id: row.id, updateData: row.updateData }]);
144
+ }
145
+ const HISTORY_ROW_CHUNK = 400;
146
+ /**
147
+ * Replace the scope's checkpoint with a fresh full-history snapshot and
148
+ * delete ONLY the tail rows the caller captured before exporting it. Every
149
+ * append path writes its tail row after the ops are already in the live
150
+ * document, so any row captured before the export is provably covered by
151
+ * the snapshot — while a row appended concurrently (between export and this
152
+ * delete) survives for the next compaction instead of being lost.
153
+ */
154
+ export async function replaceDocumentHistoryCheckpoint(execSql, scope, input) {
155
+ await ensureSqlTables(execSql, documentTables);
156
+ // Sequential (non-transactional) so callers already inside a transaction
157
+ // can nest this. Crash between the statements leaves the new checkpoint
158
+ // plus covered tail rows — a safe superset, since tail replay is
159
+ // idempotent by op identity. The replacement itself is a compare-and-swap
160
+ // on the stored revision, so the version gate cannot be bypassed by a
161
+ // concurrent compactor between the read and the write: whoever loses the
162
+ // CAS re-reads and re-evaluates the gate against the winner's checkpoint.
163
+ return getClientSQLitePersistenceRuntime(execSql).runMutation(async (tx) => {
164
+ if (input.stillCurrent?.() === false) {
165
+ return false;
166
+ }
167
+ for (let attempt = 0; attempt < CHECKPOINT_CAS_ATTEMPTS; attempt += 1) {
168
+ let replaced;
169
+ try {
170
+ replaced = await tryReplaceCheckpointOnce(tx, scope, input);
171
+ }
172
+ catch (error) {
173
+ if (error instanceof CheckpointGateRejected) {
174
+ // A fresher checkpoint dominates this candidate: no write, and
175
+ // the caller's covered rows must stay for the covering pane.
176
+ return false;
177
+ }
178
+ throw error;
179
+ }
180
+ if (!replaced) {
181
+ // CAS lost to a concurrent writer — re-read and re-evaluate the
182
+ // gate against the winner's checkpoint.
183
+ continue;
184
+ }
185
+ for (let index = 0; index < input.coveredTailIds.length; index += HISTORY_ROW_CHUNK) {
186
+ // Never a queued row, even if a caller names one: its operations may
187
+ // be in the checkpoint, but it is still the unsent update itself.
188
+ await tx
189
+ .delete(documentHistoryUpdates)
190
+ .where(and(compactableTailInScope(scope), inArray(documentHistoryUpdates.id, input.coveredTailIds.slice(index, index + HISTORY_ROW_CHUNK))));
191
+ }
192
+ return true;
193
+ }
194
+ // Exhaustion must not read as durable success: creation and rebuild
195
+ // callers persist record rows assuming the checkpoint landed.
196
+ throw new Error("Document history checkpoint replacement lost every CAS attempt");
197
+ });
198
+ }
199
+ const CHECKPOINT_CAS_ATTEMPTS = 16;
200
+ /**
201
+ * One compare-and-swap attempt. Returns true when this caller's checkpoint
202
+ * became the stored one, false when a concurrent writer won the CAS (the
203
+ * caller re-reads and retries), and throws CheckpointGateRejected when a
204
+ * fresher stored checkpoint dominates the candidate.
205
+ */
206
+ async function tryReplaceCheckpointOnce(tx, scope, input) {
207
+ const updatedAt = new Date().toISOString();
208
+ const revision = crypto.randomUUID();
209
+ const [stored] = await tx
210
+ .select({
211
+ endVersionVector: documentHistoryCheckpoints.endVersionVector,
212
+ revision: documentHistoryCheckpoints.revision,
213
+ snapshot: documentHistoryCheckpoints.snapshot,
214
+ })
215
+ .from(documentHistoryCheckpoints)
216
+ .where(and(eq(documentHistoryCheckpoints.appKind, scope.appKind), eq(documentHistoryCheckpoints.localId, scope.localId)))
217
+ .limit(1);
218
+ if (!stored) {
219
+ const inserted = await tx
220
+ .insert(documentHistoryCheckpoints)
221
+ .values({
222
+ appKind: scope.appKind,
223
+ localId: scope.localId,
224
+ snapshot: input.snapshot,
225
+ endVersionVector: input.endVersionVector,
226
+ revision,
227
+ updatedAt,
228
+ })
229
+ .onConflictDoNothing({
230
+ target: [
231
+ documentHistoryCheckpoints.appKind,
232
+ documentHistoryCheckpoints.localId,
233
+ ],
234
+ })
235
+ .returning({ localId: documentHistoryCheckpoints.localId });
236
+ // Conflict means a concurrent writer inserted first — retry the gate.
237
+ return inserted.length > 0;
238
+ }
239
+ // A stale compactor (a pane whose document has not merged another pane's
240
+ // ops) must never replace a checkpoint it does not cover: the covered
241
+ // pane may already have deleted its tail rows, so regressing the
242
+ // checkpoint would leave those ops with no durable copy at all. Vector
243
+ // dominance proves counter coverage; the retained-prefix identity also
244
+ // proves the candidate carries the exact stored operations at those
245
+ // counters rather than a same-frontier fork.
246
+ if (input.force !== true) {
247
+ if (!satisfiesVersionVector(input.endVersionVector, stored.endVersionVector)) {
248
+ throw new CheckpointGateRejected();
249
+ }
250
+ if (input.snapshot !== stored.snapshot &&
251
+ !(await candidateContainsStoredCheckpointHistory({
252
+ candidateSnapshot: input.snapshot,
253
+ storedEndVersion: stored.endVersionVector,
254
+ storedSnapshot: stored.snapshot,
255
+ }))) {
256
+ throw new CheckpointGateRejected();
257
+ }
258
+ }
259
+ const replaced = await tx
260
+ .update(documentHistoryCheckpoints)
261
+ .set({
262
+ snapshot: input.snapshot,
263
+ endVersionVector: input.endVersionVector,
264
+ revision,
265
+ updatedAt,
266
+ })
267
+ .where(and(eq(documentHistoryCheckpoints.appKind, scope.appKind), eq(documentHistoryCheckpoints.localId, scope.localId), eq(documentHistoryCheckpoints.revision, stored.revision)))
268
+ .returning({ localId: documentHistoryCheckpoints.localId });
269
+ return replaced.length > 0;
270
+ }
271
+ async function candidateContainsStoredCheckpointHistory(input) {
272
+ const [candidateDocument, storedDocument] = await Promise.all([
273
+ createDocument("checkpoint-candidate-history-gate"),
274
+ createDocument("checkpoint-stored-history-gate"),
275
+ ]);
276
+ try {
277
+ importSnapshot(candidateDocument, base64ToBytes(input.candidateSnapshot));
278
+ importSnapshot(storedDocument, base64ToBytes(input.storedSnapshot));
279
+ return (exportFullHistoryIdentity(candidateDocument, input.storedEndVersion) ===
280
+ exportFullHistoryIdentity(storedDocument));
281
+ }
282
+ finally {
283
+ candidateDocument.free();
284
+ storedDocument.free();
285
+ }
286
+ }
287
+ class CheckpointGateRejected extends Error {
288
+ constructor() {
289
+ super("checkpoint gate rejected");
290
+ this.name = "CheckpointGateRejected";
291
+ }
292
+ }
293
+ export async function deleteDocumentHistory(execSql, scope) {
294
+ await ensureSqlTables(execSql, documentTables);
295
+ await getClientSQLitePersistenceRuntime(execSql).runMutation(async (tx) => {
296
+ await tx
297
+ .delete(documentHistoryCheckpoints)
298
+ .where(and(eq(documentHistoryCheckpoints.appKind, scope.appKind), eq(documentHistoryCheckpoints.localId, scope.localId)));
299
+ await tx
300
+ .delete(documentHistoryUpdates)
301
+ .where(and(eq(documentHistoryUpdates.appKind, scope.appKind), eq(documentHistoryUpdates.localId, scope.localId)));
302
+ });
303
+ }
304
+ //# sourceMappingURL=documentHistoryPersistence.js.map