@tearleads/client-sdk 0.1.61 → 0.1.63

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 (1196) hide show
  1. package/client/containerContents/documentDiscovery.js +5 -5
  2. package/client/containerContents/documentDiscovery.js.map +1 -1
  3. package/client/containerContents/index.d.ts +7 -7
  4. package/client/containerContents/index.js +7 -7
  5. package/client/containerContents/index.js.map +1 -1
  6. package/client/containerContents/types.d.ts +6 -6
  7. package/client/containerContents/types.js.map +1 -1
  8. package/client/deviceFirst/index.js +2 -2
  9. package/client/deviceFirst/index.js.map +1 -1
  10. package/client/organizations/currentPrincipalMutations.js +5 -5
  11. package/client/organizations/currentPrincipalMutations.js.map +1 -1
  12. package/client/organizations/organizationDataUsage.js +1 -1
  13. package/client/organizations/organizationDataUsage.js.map +1 -1
  14. package/client/organizations/organizationGroupHistory.js +1 -1
  15. package/client/organizations/organizationGroupHistory.js.map +1 -1
  16. package/client/organizations/organizationGroupNameHydration.js +3 -3
  17. package/client/organizations/organizationGroupNameHydration.js.map +1 -1
  18. package/client/organizations/organizationHistory.js +2 -2
  19. package/client/organizations/organizationHistory.js.map +1 -1
  20. package/client/organizations/organizationReadModels.js +1 -1
  21. package/client/organizations/organizationReadModels.js.map +1 -1
  22. package/client/organizations/principalContainerMutations.js +1 -1
  23. package/client/organizations/principalContainerMutations.js.map +1 -1
  24. package/client/organizations/principalMutationRecovery.js.map +1 -1
  25. package/client/organizations/principalMutations.js +5 -5
  26. package/client/organizations/principalMutations.js.map +1 -1
  27. package/client/runtime/principalMutationApi.d.ts +1 -1
  28. package/client/runtime/principalMutationApi.js +2 -2
  29. package/client/runtime/principalMutationApi.js.map +1 -1
  30. package/client/runtime/principalMutationDispatch.js +1 -1
  31. package/client/runtime/principalMutationDispatch.js.map +1 -1
  32. package/client/session/index.js +1 -1
  33. package/client/session/index.js.map +1 -1
  34. package/client/session/sessionOrganizationCreation.js +1 -1
  35. package/client/session/sessionOrganizationCreation.js.map +1 -1
  36. package/client/session/sessionPurgeRecovery.js +2 -2
  37. package/client/session/sessionPurgeRecovery.js.map +1 -1
  38. package/package.json +1 -1
  39. package/stores/container-contents/containerStatePersistence.js +1 -1
  40. package/stores/container-contents/documentRecovery.js +2 -2
  41. package/stores/container-contents/documentRecovery.js.map +1 -1
  42. package/stores/container-contents/documentWork.js.map +1 -1
  43. package/stores/container-contents/localRefresh.js +2 -2
  44. package/stores/container-contents/localRefresh.js.map +1 -1
  45. package/stores/container-contents/operations.js +2 -2
  46. package/stores/container-contents/operations.js.map +1 -1
  47. package/stores/container-contents/remoteContainerIngestion.js +1 -1
  48. package/stores/container-contents/remoteEventSync.js +1 -1
  49. package/stores/container-contents/remoteHydrationRequest.js +1 -1
  50. package/stores/container-contents/setContainerIconOperation.js +2 -2
  51. package/stores/container-contents/setContainerIconOperation.js.map +1 -1
  52. package/stores/container-contents/shareOperations.js +1 -1
  53. package/stores/container-contents/startupHydration.js +1 -1
  54. package/stores/container-contents/syncAgent.d.ts +2 -2
  55. package/stores/container-contents/syncAgentTypes.d.ts +1 -1
  56. package/stores/container-contents/syncLaneIteration.js +2 -2
  57. package/stores/container-contents/syncLaneIteration.js.map +1 -1
  58. package/stores/container-contents/systemContainerIcon.js +1 -1
  59. package/stores/container-contents/systemContainerIcon.js.map +1 -1
  60. package/stores/documents/documentStore/attachmentHydrationCommit.js +1 -1
  61. package/stores/documents/documentStore/attachmentHydrationCommit.js.map +1 -1
  62. package/stores/documents/documentStore/attachmentUploadAttempt.js +1 -1
  63. package/stores/documents/documentStore/syncRemoteSignals.js +1 -1
  64. package/stores/documents/documentStore/syncRemoteSignals.js.map +1 -1
  65. package/stores/documents/documentStore/syncShared.js +1 -1
  66. package/stores/documents/documentStore/syncShared.js.map +1 -1
  67. package/workflows/blobs/detach.js +1 -1
  68. package/workflows/blobs/detach.js.map +1 -1
  69. package/workflows/blobs/hydration/blobChunkDecryption.js +34 -0
  70. package/workflows/blobs/hydration/blobChunkDecryption.js.map +1 -0
  71. package/workflows/blobs/hydration/decrypt.d.ts +12 -0
  72. package/workflows/blobs/hydration/decrypt.js +246 -0
  73. package/workflows/blobs/hydration/decrypt.js.map +1 -0
  74. package/workflows/blobs/hydration/hydrate.d.ts +56 -0
  75. package/workflows/blobs/hydration/hydrate.js +190 -0
  76. package/workflows/blobs/hydration/hydrate.js.map +1 -0
  77. package/workflows/blobs/hydration/hydrationResults.js +23 -0
  78. package/workflows/blobs/hydration/hydrationResults.js.map +1 -0
  79. package/workflows/blobs/index.d.ts +3 -3
  80. package/workflows/blobs/index.js +3 -3
  81. package/workflows/blobs/index.js.map +1 -1
  82. package/workflows/blobs/upload/automaticMultipartUpload.js +9 -0
  83. package/workflows/blobs/upload/automaticMultipartUpload.js.map +1 -0
  84. package/workflows/blobs/upload/index.d.ts +10 -0
  85. package/workflows/blobs/upload/index.js +243 -0
  86. package/workflows/blobs/upload/index.js.map +1 -0
  87. package/workflows/blobs/upload/multipartFirstParts.js +82 -0
  88. package/workflows/blobs/upload/multipartFirstParts.js.map +1 -0
  89. package/workflows/blobs/upload/multipartStageFailures.js +36 -0
  90. package/workflows/blobs/upload/multipartStageFailures.js.map +1 -0
  91. package/workflows/blobs/upload/multipartStageResolution.js.map +1 -0
  92. package/workflows/blobs/upload/multipartUpload.js +274 -0
  93. package/workflows/blobs/upload/multipartUpload.js.map +1 -0
  94. package/workflows/blobs/verification/attachmentBindingVerification.js +49 -0
  95. package/workflows/blobs/verification/attachmentBindingVerification.js.map +1 -0
  96. package/workflows/blobs/verification/attachmentDecryptor.js +41 -0
  97. package/workflows/blobs/verification/attachmentDecryptor.js.map +1 -0
  98. package/workflows/blobs/verification/attachmentKeyAuthenticator.js +68 -0
  99. package/workflows/blobs/verification/attachmentKeyAuthenticator.js.map +1 -0
  100. package/workflows/blobs/verification/retainedAttachmentVerification.js +40 -0
  101. package/workflows/blobs/verification/retainedAttachmentVerification.js.map +1 -0
  102. package/workflows/blobs/verification/verifiedWrapScope.js +20 -0
  103. package/workflows/blobs/verification/verifiedWrapScope.js.map +1 -0
  104. package/workflows/blobs/verification/writerProjection.js +29 -0
  105. package/workflows/blobs/verification/writerProjection.js.map +1 -0
  106. package/workflows/container-contents/attribution/documentAttributionRanges.d.ts +26 -0
  107. package/workflows/container-contents/attribution/documentCharacterBlame.js +33 -0
  108. package/workflows/container-contents/attribution/documentCharacterBlame.js.map +1 -0
  109. package/workflows/container-contents/attribution/documentFieldBlame.js +26 -0
  110. package/workflows/container-contents/attribution/documentFieldBlame.js.map +1 -0
  111. package/workflows/container-contents/container-state/createIntentSync.js +1 -1
  112. package/workflows/container-contents/container-state/createIntentSync.js.map +1 -1
  113. package/workflows/container-contents/container-state/moveIntentSync.js +1 -1
  114. package/workflows/container-contents/container-state/moveIntentSync.js.map +1 -1
  115. package/workflows/container-contents/container-state/purgeTree.js +2 -2
  116. package/workflows/container-contents/container-state/purgeTree.js.map +1 -1
  117. package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js.map +1 -1
  118. package/workflows/container-contents/container-state/remote.js +1 -1
  119. package/workflows/container-contents/container-state/remote.js.map +1 -1
  120. package/workflows/container-contents/container-state/sharePersistence.js +2 -2
  121. package/workflows/container-contents/container-state/sharePersistence.js.map +1 -1
  122. package/workflows/container-contents/documentDiscovery/containerDocumentListing.js +106 -0
  123. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js +65 -0
  124. package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js.map +1 -0
  125. package/workflows/container-contents/documentDiscovery/documentDiscoveryCandidates.js.map +1 -0
  126. package/workflows/container-contents/documentDiscovery/documentDiscoveryEvidence.js +91 -0
  127. package/workflows/container-contents/documentDiscovery/documentDiscoveryEvidence.js.map +1 -0
  128. package/workflows/container-contents/documentDiscovery/documentDiscoveryInputs.js +85 -0
  129. package/workflows/container-contents/documentDiscovery/documentDiscoveryInputs.js.map +1 -0
  130. package/workflows/container-contents/documentDiscovery/documentDiscoveryLanes.js.map +1 -0
  131. package/workflows/container-contents/documentDiscovery/documentDiscoveryTypes.d.ts +160 -0
  132. package/workflows/container-contents/documentDiscovery/documentDiscoveryTypes.js.map +1 -0
  133. package/workflows/container-contents/documentDiscovery/index.d.ts +12 -0
  134. package/workflows/container-contents/documentDiscovery/index.js +183 -0
  135. package/workflows/container-contents/documentDiscovery/index.js.map +1 -0
  136. package/workflows/container-contents/documentLinks/availableDocumentLinkIntent.js +32 -0
  137. package/workflows/container-contents/documentLinks/availableDocumentLinkIntent.js.map +1 -0
  138. package/workflows/container-contents/documentLinks/deferredDocumentLinks.js +9 -0
  139. package/workflows/container-contents/documentLinks/deferredDocumentLinks.js.map +1 -0
  140. package/workflows/container-contents/documentLinks/documentLinkIntent.js +82 -0
  141. package/workflows/container-contents/documentLinks/documentLinkIntent.js.map +1 -0
  142. package/workflows/container-contents/documentLinks/documentLocalRelink.js.map +1 -0
  143. package/workflows/container-contents/documentLinks/index.d.ts +64 -0
  144. package/workflows/container-contents/documentLinks/index.js +264 -0
  145. package/workflows/container-contents/documentLinks/index.js.map +1 -0
  146. package/workflows/container-contents/documentMove/documentMoveDeniedReplay.js.map +1 -0
  147. package/workflows/container-contents/documentMove/documentMoveFailure.js +35 -0
  148. package/workflows/container-contents/documentMove/documentMoveFailure.js.map +1 -0
  149. package/workflows/container-contents/documentMove/documentMoveIntent.js +77 -0
  150. package/workflows/container-contents/documentMove/documentMoveIntent.js.map +1 -0
  151. package/workflows/container-contents/documentMove/documentMoveIntentErrors.js +17 -0
  152. package/workflows/container-contents/documentMove/documentMoveIntentErrors.js.map +1 -0
  153. package/workflows/container-contents/documentMove/documentMoveIntentSettlement.js +25 -0
  154. package/workflows/container-contents/documentMove/documentMoveIntentSettlement.js.map +1 -0
  155. package/workflows/container-contents/documentMove/documentMoveIntentSync.js +346 -0
  156. package/workflows/container-contents/documentMove/documentMoveIntentSync.js.map +1 -0
  157. package/workflows/container-contents/documentMove/documentMoveVanishedRefresh.js +100 -0
  158. package/workflows/container-contents/documentMove/documentMoveVanishedRefresh.js.map +1 -0
  159. package/workflows/container-contents/documentPriming/documentHydrationProbe.js +146 -0
  160. package/workflows/container-contents/documentPriming/documentHydrationProbe.js.map +1 -0
  161. package/workflows/container-contents/documentPriming/documentRuntimeTargetSync.js.map +1 -0
  162. package/workflows/container-contents/documentPriming/index.js +245 -0
  163. package/workflows/container-contents/documentPriming/index.js.map +1 -0
  164. package/workflows/container-contents/documentQueries/documentStructure.d.ts +53 -0
  165. package/workflows/container-contents/documentQueries/documentStructure.js +183 -0
  166. package/workflows/container-contents/documentQueries/documentStructure.js.map +1 -0
  167. package/workflows/container-contents/documentQueries/documentStructureTypes.d.ts +32 -0
  168. package/workflows/container-contents/documentQueries/documentStructureTypes.js.map +1 -0
  169. package/workflows/container-contents/documentQueries/documentSubtreeQueries.js +169 -0
  170. package/workflows/container-contents/documentQueries/documentSubtreeQueries.js.map +1 -0
  171. package/workflows/container-contents/documentQueries/index.d.ts +62 -0
  172. package/workflows/container-contents/documentQueries/index.js +212 -0
  173. package/workflows/container-contents/documentQueries/index.js.map +1 -0
  174. package/workflows/container-contents/documentQueries/orphanedDocumentSql.js +39 -0
  175. package/workflows/container-contents/documentQueries/orphanedDocumentSql.js.map +1 -0
  176. package/workflows/container-contents/documentQueries/pendingDownloads.d.ts +12 -0
  177. package/workflows/container-contents/documentQueries/pendingDownloads.js +42 -0
  178. package/workflows/container-contents/documentQueries/pendingDownloads.js.map +1 -0
  179. package/workflows/container-contents/documentQueries/sql.js +1 -1
  180. package/workflows/container-contents/documentQueries/sql.js.map +1 -1
  181. package/workflows/container-contents/index.d.ts +13 -13
  182. package/workflows/container-contents/index.js +11 -11
  183. package/workflows/container-contents/index.js.map +1 -1
  184. package/workflows/container-contents/info/blobInfo.d.ts +6 -0
  185. package/workflows/container-contents/info/blobInfo.js +323 -0
  186. package/workflows/container-contents/info/blobInfo.js.map +1 -0
  187. package/workflows/container-contents/info/blobInfoTypes.d.ts +48 -0
  188. package/workflows/container-contents/info/blobInfoTypes.js.map +1 -0
  189. package/workflows/container-contents/info/containerInfo.d.ts +77 -0
  190. package/workflows/container-contents/info/containerInfo.js +200 -0
  191. package/workflows/container-contents/info/containerInfo.js.map +1 -0
  192. package/workflows/container-contents/info/documentInfo.d.ts +18 -0
  193. package/workflows/container-contents/info/documentInfo.js +306 -0
  194. package/workflows/container-contents/info/documentInfo.js.map +1 -0
  195. package/workflows/container-contents/info/documentInfoTypes.d.ts +92 -0
  196. package/workflows/container-contents/info/documentInfoTypes.js.map +1 -0
  197. package/workflows/container-contents/metadata/index.d.ts +25 -0
  198. package/workflows/container-contents/metadata/index.js +217 -0
  199. package/workflows/container-contents/metadata/index.js.map +1 -0
  200. package/workflows/container-contents/metadata/metadataEvents.d.ts +7 -0
  201. package/workflows/container-contents/metadata/metadataEvents.js +47 -0
  202. package/workflows/container-contents/metadata/metadataEvents.js.map +1 -0
  203. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js +40 -0
  204. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js.map +1 -0
  205. package/workflows/container-contents/metadata/metadataMutationPreparation.d.ts +75 -0
  206. package/workflows/container-contents/metadata/metadataMutationPreparation.js +177 -0
  207. package/workflows/container-contents/metadata/metadataMutationPreparation.js.map +1 -0
  208. package/workflows/container-contents/metadata/metadataPersistence.d.ts +34 -0
  209. package/workflows/container-contents/metadata/metadataPersistence.js +254 -0
  210. package/workflows/container-contents/metadata/metadataPersistence.js.map +1 -0
  211. package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js +65 -0
  212. package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js.map +1 -0
  213. package/workflows/container-contents/metadata/metadataReadState.d.ts +2 -0
  214. package/workflows/container-contents/metadata/metadataReadState.js.map +1 -0
  215. package/workflows/container-contents/metadata/metadataRecord.js +43 -0
  216. package/workflows/container-contents/metadata/metadataRecord.js.map +1 -0
  217. package/workflows/container-contents/metadata/metadataRemoteSync.d.ts +38 -0
  218. package/workflows/container-contents/metadata/metadataRemoteSync.js +91 -0
  219. package/workflows/container-contents/metadata/metadataRemoteSync.js.map +1 -0
  220. package/workflows/container-contents/metadata/metadataStateInstallation.d.ts +3 -0
  221. package/workflows/container-contents/metadata/metadataStateInstallation.js.map +1 -0
  222. package/workflows/container-contents/metadata/metadataStateIsolation.js +80 -0
  223. package/workflows/container-contents/metadata/metadataStateIsolation.js.map +1 -0
  224. package/workflows/container-contents/metadata/metadataSyncErrors.js +41 -0
  225. package/workflows/container-contents/metadata/metadataSyncErrors.js.map +1 -0
  226. package/workflows/container-contents/metadata/metadataSyncSettlement.d.ts +13 -0
  227. package/workflows/container-contents/metadata/metadataSyncSettlement.js +27 -0
  228. package/workflows/container-contents/metadata/metadataSyncSettlement.js.map +1 -0
  229. package/workflows/container-contents/metadata/metadataTypes.d.ts +54 -0
  230. package/workflows/container-contents/metadata/metadataTypes.js.map +1 -0
  231. package/workflows/container-contents/pendingWrites/aggregation.js.map +1 -1
  232. package/workflows/container-contents/pendingWrites/deferredTails.js.map +1 -1
  233. package/workflows/container-contents/pendingWrites/index.d.ts +26 -0
  234. package/workflows/container-contents/pendingWrites/index.js +116 -0
  235. package/workflows/container-contents/pendingWrites/index.js.map +1 -0
  236. package/workflows/container-contents/projectionGeneration.js.map +1 -1
  237. package/workflows/container-contents/projectionView.js +1 -1
  238. package/workflows/container-contents/projectionView.js.map +1 -1
  239. package/workflows/container-contents/recovery/folderRecovery.d.ts +19 -0
  240. package/workflows/container-contents/recovery/folderRecovery.js +32 -0
  241. package/workflows/container-contents/recovery/folderRecovery.js.map +1 -0
  242. package/workflows/container-contents/recovery/staleRootRecovery.js +111 -0
  243. package/workflows/container-contents/recovery/staleRootRecovery.js.map +1 -0
  244. package/workflows/container-contents/remoteHydration/completeHydration.js +1 -1
  245. package/workflows/container-contents/remoteHydration/completeHydration.js.map +1 -1
  246. package/workflows/container-contents/remoteHydration/destinationRootReload.js +1 -1
  247. package/workflows/container-contents/remoteHydration/destinationRootReload.js.map +1 -1
  248. package/workflows/container-contents/remoteHydration/heldContainerRebind.js +1 -1
  249. package/workflows/container-contents/remoteHydration/heldContainerRebind.js.map +1 -1
  250. package/workflows/container-contents/remoteHydration/index.d.ts +28 -0
  251. package/workflows/container-contents/remoteHydration/index.js +302 -0
  252. package/workflows/container-contents/remoteHydration/index.js.map +1 -0
  253. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js +244 -0
  254. package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js.map +1 -0
  255. package/workflows/container-contents/remoteHydration/remoteContainerState.js +263 -0
  256. package/workflows/container-contents/remoteHydration/remoteContainerState.js.map +1 -0
  257. package/workflows/container-contents/remoteHydration/types.d.ts +1 -1
  258. package/workflows/container-contents/remoteHydration/verifiedDestination.js +1 -1
  259. package/workflows/container-contents/remoteHydration/verifiedDestination.js.map +1 -1
  260. package/workflows/container-contents/tombstones/documentPurge.d.ts +37 -0
  261. package/workflows/container-contents/tombstones/documentPurge.js +136 -0
  262. package/workflows/container-contents/tombstones/documentPurge.js.map +1 -0
  263. package/workflows/container-contents/tombstones/documentTombstoneEvidence.js +173 -0
  264. package/workflows/container-contents/tombstones/documentTombstoneEvidence.js.map +1 -0
  265. package/workflows/container-contents/tombstones/documentTombstoneGate.js +94 -0
  266. package/workflows/container-contents/tombstones/documentTombstoneGate.js.map +1 -0
  267. package/workflows/containers/child/currentShareGrantMutation.js +5 -5
  268. package/workflows/containers/child/currentShareGrantMutation.js.map +1 -1
  269. package/workflows/containers/child/currentSharePrincipalPolicy.js +5 -5
  270. package/workflows/containers/child/currentSharePrincipalPolicy.js.map +1 -1
  271. package/workflows/containers/child/runtimeCurrentGroupShare.js +1 -1
  272. package/workflows/containers/child/runtimeCurrentGroupShare.js.map +1 -1
  273. package/workflows/containers/child/share.d.ts +1 -1
  274. package/workflows/containers/child/share.js +4 -4
  275. package/workflows/containers/child/share.js.map +1 -1
  276. package/workflows/containers/child/sharePrincipalPolicy.d.ts +1 -1
  277. package/workflows/containers/child/sharePrincipalPolicy.js +2 -2
  278. package/workflows/containers/child/sharePrincipalPolicy.js.map +1 -1
  279. package/workflows/documents/attachments/attachmentPersistence.d.ts +58 -0
  280. package/workflows/documents/attachments/attachmentPersistence.js.map +1 -0
  281. package/workflows/documents/attachments/blobMutationLock.d.ts +8 -0
  282. package/workflows/documents/attachments/blobMutationLock.js +35 -0
  283. package/workflows/documents/attachments/blobMutationLock.js.map +1 -0
  284. package/workflows/documents/attachments/orphanBlobReclaimState.js.map +1 -0
  285. package/workflows/documents/attachments/orphanBlobReclaims.d.ts +6 -0
  286. package/workflows/documents/attachments/orphanBlobReclaims.js +143 -0
  287. package/workflows/documents/attachments/orphanBlobReclaims.js.map +1 -0
  288. package/workflows/documents/authorAccessFailure.js.map +1 -1
  289. package/workflows/documents/create/createAdoption.js +100 -0
  290. package/workflows/documents/create/createAdoption.js.map +1 -0
  291. package/workflows/documents/create/createProjection.d.ts +14 -0
  292. package/workflows/documents/create/createProjectionFetch.d.ts +27 -0
  293. package/workflows/documents/create/createProjectionFetch.js.map +1 -0
  294. package/workflows/documents/create/createResponse.js +49 -0
  295. package/workflows/documents/create/createResponse.js.map +1 -0
  296. package/workflows/documents/create/documentCreationPersistence.js +16 -0
  297. package/workflows/documents/create/documentCreationPersistence.js.map +1 -0
  298. package/workflows/documents/create/index.d.ts +56 -0
  299. package/workflows/documents/create/index.js +258 -0
  300. package/workflows/documents/create/index.js.map +1 -0
  301. package/workflows/documents/documentMutationCommit.js +1 -1
  302. package/workflows/documents/documentMutationCommit.js.map +1 -1
  303. package/workflows/documents/index.d.ts +17 -17
  304. package/workflows/documents/index.js +14 -14
  305. package/workflows/documents/index.js.map +1 -1
  306. package/workflows/documents/linkSet/index.d.ts +20 -0
  307. package/workflows/documents/linkSet/index.js +290 -0
  308. package/workflows/documents/linkSet/index.js.map +1 -0
  309. package/workflows/documents/linkSet/linkSetAuthority.js +61 -0
  310. package/workflows/documents/linkSet/linkSetAuthority.js.map +1 -0
  311. package/workflows/documents/linkSet/linkSetBlobRewraps.js +143 -0
  312. package/workflows/documents/linkSet/linkSetBlobRewraps.js.map +1 -0
  313. package/workflows/documents/linkSet/linkSetProjectionSeed.js +119 -0
  314. package/workflows/documents/linkSet/linkSetProjectionSeed.js.map +1 -0
  315. package/workflows/documents/linkSet/linkSetRemote.d.ts +23 -0
  316. package/workflows/documents/linkSet/linkSetRemote.js +187 -0
  317. package/workflows/documents/linkSet/linkSetRemote.js.map +1 -0
  318. package/workflows/documents/purge/index.d.ts +53 -0
  319. package/workflows/documents/purge/index.js +204 -0
  320. package/workflows/documents/purge/index.js.map +1 -0
  321. package/workflows/documents/purge/persistedDocumentRemoval.d.ts +44 -0
  322. package/workflows/documents/purge/persistedDocumentRemoval.js +70 -0
  323. package/workflows/documents/purge/persistedDocumentRemoval.js.map +1 -0
  324. package/workflows/documents/purge/subtreePurgeScope.d.ts +8 -0
  325. package/workflows/documents/purge/subtreePurgeScope.js +18 -0
  326. package/workflows/documents/purge/subtreePurgeScope.js.map +1 -0
  327. package/workflows/documents/rotationBaseline.js +1 -1
  328. package/workflows/documents/rotationBaseline.js.map +1 -1
  329. package/workflows/documents/sync/index.d.ts +4 -0
  330. package/workflows/documents/sync/index.js +287 -0
  331. package/workflows/documents/sync/index.js.map +1 -0
  332. package/workflows/documents/sync/initialSync.js +65 -0
  333. package/workflows/documents/sync/initialSync.js.map +1 -0
  334. package/workflows/documents/sync/readOnlyProjectionFailure.js +30 -0
  335. package/workflows/documents/sync/readOnlyProjectionFailure.js.map +1 -0
  336. package/workflows/documents/sync/readOnlySync.d.ts +71 -0
  337. package/workflows/documents/sync/readOnlySync.js +269 -0
  338. package/workflows/documents/sync/readOnlySync.js.map +1 -0
  339. package/workflows/documents/sync/reportDocumentSyncQuarantine.js.map +1 -0
  340. package/workflows/documents/sync/syncAttemptPlanning.js +79 -0
  341. package/workflows/documents/sync/syncAttemptPlanning.js.map +1 -0
  342. package/workflows/documents/sync/syncAttemptState.d.ts +27 -0
  343. package/workflows/documents/sync/syncAttemptState.js.map +1 -0
  344. package/workflows/documents/sync/syncLane.d.ts +20 -0
  345. package/workflows/documents/sync/syncLane.js +94 -0
  346. package/workflows/documents/sync/syncLane.js.map +1 -0
  347. package/workflows/documents/sync/syncResponseResult.js +134 -0
  348. package/workflows/documents/sync/syncResponseResult.js.map +1 -0
  349. package/workflows/documents/sync/syncSubmittedResult.js +119 -0
  350. package/workflows/documents/sync/syncSubmittedResult.js.map +1 -0
  351. package/workflows/documents/sync/syncTrace.js +148 -0
  352. package/workflows/documents/syncFailures/index.js +252 -0
  353. package/workflows/documents/syncFailures/index.js.map +1 -0
  354. package/workflows/documents/syncFailures/syncAbandon.js +51 -0
  355. package/workflows/documents/syncFailures/syncAbandon.js.map +1 -0
  356. package/workflows/documents/syncFailures/syncFailureClassification.d.ts +74 -0
  357. package/workflows/documents/syncFailures/syncFailureClassification.js +122 -0
  358. package/workflows/documents/syncFailures/syncFailureClassification.js.map +1 -0
  359. package/workflows/documents/syncFailures/syncPolicyRepair.js +50 -0
  360. package/workflows/documents/syncFailures/syncPolicyRepair.js.map +1 -0
  361. package/workflows/documents/syncFailures/syncRepairAbandon.js.map +1 -0
  362. package/workflows/documents/syncFailures/syncRepairAccess.js +42 -0
  363. package/workflows/documents/syncFailures/syncRepairAccess.js.map +1 -0
  364. package/workflows/documents/syncPlan/syncContentKeys.d.ts +39 -0
  365. package/workflows/documents/syncPlan/syncContentKeys.js +254 -0
  366. package/workflows/documents/syncPlan/syncContentKeys.js.map +1 -0
  367. package/workflows/documents/syncPlan/syncPlanIdentity.js +203 -0
  368. package/workflows/documents/syncPlan/syncPlanIdentity.js.map +1 -0
  369. package/workflows/documents/syncPlan/syncPlanMaterial.js +306 -0
  370. package/workflows/documents/syncPlan/syncPlanMaterial.js.map +1 -0
  371. package/workflows/documents/syncPlan/syncPlanProjection.js.map +1 -0
  372. package/workflows/documents/syncPlan/syncPlanRequestBounds.js +54 -0
  373. package/workflows/documents/syncPlan/syncPlanRequestBounds.js.map +1 -0
  374. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js +119 -0
  375. package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js.map +1 -0
  376. package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js +227 -0
  377. package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js.map +1 -0
  378. package/workflows/documents/syncRekeys/syncContainerRekeyProjection.js +79 -0
  379. package/workflows/documents/syncRekeys/syncContainerRekeyProjection.js.map +1 -0
  380. package/workflows/documents/syncRekeys/syncContainerRekeys.js +72 -0
  381. package/workflows/documents/syncRekeys/syncContainerRekeys.js.map +1 -0
  382. package/workflows/documents/syncRekeys/syncRecoveryRekey.d.ts +70 -0
  383. package/workflows/documents/syncRekeys/syncRecoveryRekey.js +120 -0
  384. package/workflows/documents/syncRekeys/syncRecoveryRekey.js.map +1 -0
  385. package/workflows/documents/syncRekeys/syncRekeyCommit.js +18 -0
  386. package/workflows/organizations/groupMetadata/currentGroupMetadataAuthority.js +53 -0
  387. package/workflows/organizations/groupMetadata/currentGroupMetadataAuthority.js.map +1 -0
  388. package/workflows/organizations/groupMetadata/groupMetadataAccess.d.ts +33 -0
  389. package/workflows/organizations/groupMetadata/groupMetadataAccess.js +114 -0
  390. package/workflows/organizations/groupMetadata/groupMetadataAccess.js.map +1 -0
  391. package/workflows/organizations/groupMetadata/groupMetadataBinding.js +19 -0
  392. package/workflows/organizations/groupMetadata/groupMetadataBinding.js.map +1 -0
  393. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js +41 -0
  394. package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js.map +1 -0
  395. package/workflows/organizations/groupMetadata/groupMetadataErrors.js +40 -0
  396. package/workflows/organizations/groupMetadata/groupMetadataRootBinding.js +51 -0
  397. package/workflows/organizations/groupMetadata/groupMetadataRootBinding.js.map +1 -0
  398. package/workflows/organizations/groupMetadata/groupMetadataRuntime.js +47 -0
  399. package/workflows/organizations/groupMetadata/groupMetadataRuntime.js.map +1 -0
  400. package/workflows/organizations/groupMetadata/runtimeGroupMetadataAuthority.js +16 -0
  401. package/workflows/organizations/groupMetadata/runtimeGroupMetadataAuthority.js.map +1 -0
  402. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js +72 -0
  403. package/workflows/organizations/groupNames/currentOrganizationGroupNames.js.map +1 -0
  404. package/workflows/organizations/groupNames/groupMembershipName.d.ts +8 -0
  405. package/workflows/organizations/groupNames/groupMembershipName.js +18 -0
  406. package/workflows/organizations/groupNames/groupMembershipName.js.map +1 -0
  407. package/workflows/organizations/groupNames/groupNameUniqueness.js +151 -0
  408. package/workflows/organizations/groupNames/groupNameUniqueness.js.map +1 -0
  409. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js +48 -0
  410. package/workflows/organizations/groupNames/organizationGroupNamePolicies.js.map +1 -0
  411. package/workflows/organizations/groupNames/organizationGroupNames.js +13 -0
  412. package/workflows/organizations/groupNames/organizationGroupNames.js.map +1 -0
  413. package/workflows/organizations/groupPolicy/commitCurrentGroupPolicyMutation.js +139 -0
  414. package/workflows/organizations/groupPolicy/commitCurrentGroupPolicyMutation.js.map +1 -0
  415. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js +79 -0
  416. package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js.map +1 -0
  417. package/workflows/organizations/groupPolicy/currentPolicyMutationAcknowledgement.js +65 -0
  418. package/workflows/organizations/groupPolicy/currentPolicyMutationAcknowledgement.js.map +1 -0
  419. package/workflows/organizations/groupPolicy/groupPolicyMutationAcknowledgement.js +174 -0
  420. package/workflows/organizations/groupPolicy/groupPolicyMutationAcknowledgement.js.map +1 -0
  421. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.d.ts +58 -0
  422. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js +166 -0
  423. package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js.map +1 -0
  424. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.d.ts +26 -0
  425. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js +64 -0
  426. package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js.map +1 -0
  427. package/workflows/organizations/groupPolicy/groupPolicyMutationHead.js +26 -0
  428. package/workflows/organizations/groupPolicy/groupPolicyRequests.js +181 -0
  429. package/workflows/organizations/groupPolicy/groupPolicyRequests.js.map +1 -0
  430. package/workflows/organizations/groupPolicy/groupPolicyVerification.js +74 -0
  431. package/workflows/organizations/groupPolicy/groupPolicyVerification.js.map +1 -0
  432. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.d.ts +22 -0
  433. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.js +71 -0
  434. package/workflows/organizations/groupPolicy/submitGroupPolicyCommit.js.map +1 -0
  435. package/workflows/organizations/groups/createCurrentOrganizationGroup.js +85 -0
  436. package/workflows/organizations/groups/createCurrentOrganizationGroup.js.map +1 -0
  437. package/workflows/organizations/groups/deleteCurrentOrganizationGroup.js +35 -0
  438. package/workflows/organizations/groups/deleteCurrentOrganizationGroup.js.map +1 -0
  439. package/workflows/organizations/groups/deleteOrganizationGroup.d.ts +19 -0
  440. package/workflows/organizations/groups/deleteOrganizationGroup.js +75 -0
  441. package/workflows/organizations/groups/deleteOrganizationGroup.js.map +1 -0
  442. package/workflows/organizations/groups/groupCreation.d.ts +21 -0
  443. package/workflows/organizations/groups/groupCreation.js +68 -0
  444. package/workflows/organizations/groups/groupCreation.js.map +1 -0
  445. package/workflows/organizations/groups/organizationGroupDirectory.js +153 -0
  446. package/workflows/organizations/groups/organizationGroupDirectory.js.map +1 -0
  447. package/workflows/organizations/index.d.ts +13 -13
  448. package/workflows/organizations/index.js +12 -12
  449. package/workflows/organizations/index.js.map +1 -1
  450. package/workflows/organizations/policyHistory/groupPolicyHistoryPage.js.map +1 -0
  451. package/workflows/organizations/policyHistory/loadPolicyHistoryDetails.js +78 -0
  452. package/workflows/organizations/policyHistory/loadPolicyHistoryDetails.js.map +1 -0
  453. package/workflows/organizations/policyHistory/organizationPolicyHistoryDetails.js +110 -0
  454. package/workflows/organizations/policyHistory/organizationPolicyHistoryDetails.js.map +1 -0
  455. package/workflows/organizations/policyHistory/organizationPolicyHistoryVerification.js +67 -0
  456. package/workflows/organizations/policyHistory/organizationPolicyHistoryVerification.js.map +1 -0
  457. package/workflows/organizations/policyHistory/policyHistoryAccessDenial.js +19 -0
  458. package/workflows/organizations/policyHistory/policyHistoryAccessDenial.js.map +1 -0
  459. package/workflows/organizations/policyHistory/policyHistoryCache.js +42 -0
  460. package/workflows/organizations/policyHistory/policyHistoryCache.js.map +1 -0
  461. package/workflows/organizations/policyHistory/policyHistoryReadModel.d.ts +9 -0
  462. package/workflows/organizations/policyHistory/policyHistoryTypes.d.ts +58 -0
  463. package/workflows/organizations/principalMutations/acknowledgedDirectoryBindings.js +18 -0
  464. package/workflows/organizations/principalMutations/acknowledgedDirectoryBindings.js.map +1 -0
  465. package/workflows/organizations/principalMutations/currentGroupMutationReferences.js +35 -0
  466. package/workflows/organizations/principalMutations/currentGroupMutationReferences.js.map +1 -0
  467. package/workflows/organizations/principalMutations/currentOrganizationMutationAuthority.js +16 -0
  468. package/workflows/organizations/principalMutations/currentOrganizationMutationAuthority.js.map +1 -0
  469. package/workflows/organizations/principalMutations/currentOrganizationMutationRetention.js +64 -0
  470. package/workflows/organizations/principalMutations/currentOrganizationMutationRetention.js.map +1 -0
  471. package/workflows/organizations/principalMutations/currentPrincipalMutationLease.js +39 -0
  472. package/workflows/organizations/principalMutations/currentPrincipalMutationLease.js.map +1 -0
  473. package/workflows/organizations/principalMutations/principalMutationJournalManagement.d.ts +26 -0
  474. package/workflows/organizations/principalMutations/principalMutationJournalManagement.js +104 -0
  475. package/workflows/organizations/principalMutations/principalMutationJournalManagement.js.map +1 -0
  476. package/workflows/organizations/principalMutations/principalMutationJournalSession.d.ts +26 -0
  477. package/workflows/organizations/principalMutations/principalMutationJournalSession.js +85 -0
  478. package/workflows/organizations/principalMutations/principalMutationJournalSession.js.map +1 -0
  479. package/workflows/organizations/principalMutations/principalMutationReceipt.js +28 -0
  480. package/workflows/organizations/principalMutations/principalMutationReceipt.js.map +1 -0
  481. package/workflows/organizations/principalMutations/principalOperationReceipt.d.ts +5 -0
  482. package/workflows/organizations/principalMutations/principalOperationReceipt.js +36 -0
  483. package/workflows/organizations/principalMutations/principalOperationReceipt.js.map +1 -0
  484. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.d.ts +6 -0
  485. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.js +20 -0
  486. package/workflows/organizations/principalMutations/retainAcknowledgedPrincipalCurrents.js.map +1 -0
  487. package/workflows/organizations/principalMutations/runtimeCurrentGroupMutation.js +113 -0
  488. package/workflows/organizations/principalMutations/runtimeCurrentGroupMutation.js.map +1 -0
  489. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js +48 -0
  490. package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js.map +1 -0
  491. package/workflows/organizations/principalPolicy/index.d.ts +98 -0
  492. package/workflows/organizations/principalPolicy/index.js +256 -0
  493. package/workflows/organizations/principalPolicy/index.js.map +1 -0
  494. package/workflows/organizations/principalPolicy/principalPolicyApi.d.ts +33 -0
  495. package/workflows/organizations/principalPolicy/principalPolicyApi.js.map +1 -0
  496. package/workflows/organizations/principalPolicy/principalPolicyReceiptArtifacts.js +74 -0
  497. package/workflows/organizations/principalPolicy/principalPolicyReceiptArtifacts.js.map +1 -0
  498. package/workflows/organizations/principalPolicy/principalPolicyRecipients.js +43 -0
  499. package/workflows/organizations/principalPolicy/principalPolicyRecipients.js.map +1 -0
  500. package/workflows/organizations/principalPolicy/principalPolicyRequest.d.ts +68 -0
  501. package/workflows/organizations/principalPolicy/principalPolicyRequest.js +176 -0
  502. package/workflows/organizations/provisioning/createOrganization.d.ts +62 -0
  503. package/workflows/organizations/provisioning/createOrganization.js +128 -0
  504. package/workflows/organizations/provisioning/createOrganization.js.map +1 -0
  505. package/workflows/organizations/provisioning/organizationProvisioningAttempt.d.ts +36 -0
  506. package/workflows/organizations/provisioning/organizationProvisioningAttempt.js +205 -0
  507. package/workflows/organizations/provisioning/organizationProvisioningAttempt.js.map +1 -0
  508. package/workflows/organizations/provisioning/organizationReplacementVerification.js +26 -0
  509. package/workflows/organizations/provisioning/organizationReplacementVerification.js.map +1 -0
  510. package/workflows/organizations/readModel/dataUsageReadModel.d.ts +19 -0
  511. package/workflows/organizations/readModel/dataUsageReadModel.js +64 -0
  512. package/workflows/organizations/readModel/dataUsageReadModel.js.map +1 -0
  513. package/workflows/organizations/readModel/index.d.ts +70 -0
  514. package/workflows/organizations/readModel/index.js +10 -0
  515. package/workflows/organizations/readModel/index.js.map +1 -0
  516. package/workflows/organizations/readModel/listLocalOrganizations.d.ts +20 -0
  517. package/workflows/organizations/readModel/listLocalOrganizations.js +137 -0
  518. package/workflows/organizations/readModel/listLocalOrganizations.js.map +1 -0
  519. package/workflows/organizations/readModel/localReadModelDetails.d.ts +25 -0
  520. package/workflows/organizations/readModel/localReadModelDetails.js +182 -0
  521. package/workflows/organizations/readModel/localReadModelDetails.js.map +1 -0
  522. package/workflows/organizations/readModel/organizationPresentationAccessState.js +173 -0
  523. package/workflows/organizations/readModel/organizationPresentationAccessState.js.map +1 -0
  524. package/workflows/organizations/readModel/organizationPresentationFailures.js +7 -0
  525. package/workflows/organizations/readModel/readModelProjection.d.ts +29 -0
  526. package/workflows/organizations/readModel/readModelProjection.js +255 -0
  527. package/workflows/organizations/readModel/readModelProjection.js.map +1 -0
  528. package/workflows/organizations/rematerialization/authoredPrincipalPolicyWarmer.js +25 -0
  529. package/workflows/organizations/rematerialization/authoredPrincipalPolicyWarmer.js.map +1 -0
  530. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js +31 -0
  531. package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js.map +1 -0
  532. package/workflows/organizations/rematerialization/principalContainerRematerialization.js +321 -0
  533. package/workflows/organizations/rematerialization/principalContainerRematerialization.js.map +1 -0
  534. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js +77 -0
  535. package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js.map +1 -0
  536. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js +79 -0
  537. package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js.map +1 -0
  538. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.d.ts +33 -0
  539. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js +140 -0
  540. package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js.map +1 -0
  541. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.d.ts +39 -0
  542. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js +87 -0
  543. package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js.map +1 -0
  544. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js +84 -0
  545. package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js.map +1 -0
  546. package/workflows/principals/acknowledgements/principalAcknowledgementChecks.d.ts +30 -0
  547. package/workflows/principals/acknowledgements/principalCurrentPublicationSeal.js +51 -0
  548. package/workflows/principals/acknowledgements/principalCurrentPublicationSeal.js.map +1 -0
  549. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js +68 -0
  550. package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js.map +1 -0
  551. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.d.ts +10 -0
  552. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js +119 -0
  553. package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js.map +1 -0
  554. package/workflows/principals/historyRecovery/principalHistoryRecoveryAuthority.js +20 -0
  555. package/workflows/principals/historyRecovery/principalHistoryRecoveryAuthority.js.map +1 -0
  556. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js +69 -0
  557. package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js.map +1 -0
  558. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js +68 -0
  559. package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js.map +1 -0
  560. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js +61 -0
  561. package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js.map +1 -0
  562. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.d.ts +35 -0
  563. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.js +16 -0
  564. package/workflows/principals/historyRecovery/principalHistoryRecoveryTypes.js.map +1 -0
  565. package/workflows/principals/historyRecovery/principalHistoryRecoveryVerification.js +29 -0
  566. package/workflows/principals/historyRecovery/recoverCurrentOrganizationPolicy.js +38 -0
  567. package/workflows/principals/historyRecovery/recoverCurrentOrganizationPolicy.js.map +1 -0
  568. package/workflows/principals/historyRecovery/recoverPrincipalHistoryPage.js +31 -0
  569. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js +295 -0
  570. package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js.map +1 -0
  571. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.d.ts +27 -0
  572. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.js +163 -0
  573. package/workflows/principals/historyRecovery/recoverScopedPrincipalPolicyHistory.js.map +1 -0
  574. package/workflows/principals/index.d.ts +6 -6
  575. package/workflows/principals/index.js +6 -6
  576. package/workflows/principals/index.js.map +1 -1
  577. package/workflows/principals/policyCache/index.d.ts +20 -0
  578. package/workflows/principals/policyCache/index.js +242 -0
  579. package/workflows/principals/policyCache/index.js.map +1 -0
  580. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js +39 -0
  581. package/workflows/principals/policyCache/principalPolicyCacheAdvance.js.map +1 -0
  582. package/workflows/principals/policyCache/principalPolicyCacheValidation.js +149 -0
  583. package/workflows/principals/policyCache/principalPolicyCacheValidation.js.map +1 -0
  584. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js +67 -0
  585. package/workflows/principals/policyCache/principalPolicyOrganizationScope.js.map +1 -0
  586. package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js +60 -0
  587. package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js.map +1 -0
  588. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js +88 -0
  589. package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js.map +1 -0
  590. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js +179 -0
  591. package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js.map +1 -0
  592. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.d.ts +41 -0
  593. package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.js.map +1 -0
  594. package/workflows/principals/publicHistory/publicProjectionDirectory.js +40 -0
  595. package/workflows/principals/publicHistory/publicProjectionDirectory.js.map +1 -0
  596. package/workflows/principals/publicHistory/publicProjectionPrincipal.js +54 -0
  597. package/workflows/principals/publicHistory/publicProjectionPrincipal.js.map +1 -0
  598. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.d.ts +9 -0
  599. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.js +98 -0
  600. package/workflows/principals/publicHistory/recoverProjectionPolicyHistory.js.map +1 -0
  601. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js +178 -0
  602. package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js.map +1 -0
  603. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js +96 -0
  604. package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js.map +1 -0
  605. package/workflows/principals/recoveryOperation/principalCurrentRecoveryBatch.js +14 -0
  606. package/workflows/principals/recoveryOperation/principalCurrentRecoveryBatch.js.map +1 -0
  607. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.d.ts +10 -0
  608. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js +127 -0
  609. package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js.map +1 -0
  610. package/workflows/principals/recoveryOperation/principalRecoveryDiscoveryPage.js.map +1 -0
  611. package/workflows/principals/recoveryOperation/principalRecoveryLocalPreference.js +30 -0
  612. package/workflows/principals/recoveryOperation/principalRecoveryLocalPreference.js.map +1 -0
  613. package/workflows/principals/recoveryOperation/principalRecoveryMemo.d.ts +21 -0
  614. package/workflows/principals/recoveryOperation/principalRecoveryMemo.js +178 -0
  615. package/workflows/principals/recoveryOperation/principalRecoveryMemo.js.map +1 -0
  616. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js +33 -0
  617. package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js.map +1 -0
  618. package/workflows/principals/recoveryOperation/principalRecoveryOutage.js +40 -0
  619. package/workflows/principals/recoveryOperation/principalRecoveryOutage.js.map +1 -0
  620. package/workflows/principals/runtimePolicyRecovery.js +3 -3
  621. package/workflows/principals/runtimePolicyRecovery.js.map +1 -1
  622. package/workflows/principals/runtimeProjectionPolicyRecovery.js +3 -3
  623. package/workflows/principals/runtimeProjectionPolicyRecovery.js.map +1 -1
  624. package/workflows/registration/organizationProvisioningArtifacts.d.ts +1 -1
  625. package/workflows/registration/provisionedPrincipalHistory.js +1 -1
  626. package/workflows/registration/provisionedPrincipalHistory.js.map +1 -1
  627. package/workflows/registration/provisionedProfileDocument.js +1 -1
  628. package/workflows/registration/provisionedProfileDocument.js.map +1 -1
  629. package/workflows/registration/provisioningBootstrapBuilders.js +2 -2
  630. package/workflows/registration/provisioningBootstrapBuilders.js.map +1 -1
  631. package/workflows/registration/registerIdentity.js +2 -2
  632. package/workflows/registration/registerIdentity.js.map +1 -1
  633. package/workflows/sync/remoteReset.js +1 -1
  634. package/workflows/sync/remoteReset.js.map +1 -1
  635. package/workflows/blobs/attachmentBindingVerification.js +0 -49
  636. package/workflows/blobs/attachmentBindingVerification.js.map +0 -1
  637. package/workflows/blobs/attachmentDecryptor.js +0 -41
  638. package/workflows/blobs/attachmentDecryptor.js.map +0 -1
  639. package/workflows/blobs/attachmentKeyAuthenticator.js +0 -68
  640. package/workflows/blobs/attachmentKeyAuthenticator.js.map +0 -1
  641. package/workflows/blobs/automaticMultipartUpload.js +0 -9
  642. package/workflows/blobs/automaticMultipartUpload.js.map +0 -1
  643. package/workflows/blobs/blobChunkDecryption.js +0 -34
  644. package/workflows/blobs/blobChunkDecryption.js.map +0 -1
  645. package/workflows/blobs/decrypt.d.ts +0 -12
  646. package/workflows/blobs/decrypt.js +0 -246
  647. package/workflows/blobs/decrypt.js.map +0 -1
  648. package/workflows/blobs/hydrate.d.ts +0 -56
  649. package/workflows/blobs/hydrate.js +0 -190
  650. package/workflows/blobs/hydrate.js.map +0 -1
  651. package/workflows/blobs/hydrationResults.js +0 -23
  652. package/workflows/blobs/hydrationResults.js.map +0 -1
  653. package/workflows/blobs/multipartFirstParts.js +0 -82
  654. package/workflows/blobs/multipartFirstParts.js.map +0 -1
  655. package/workflows/blobs/multipartStageFailures.js +0 -36
  656. package/workflows/blobs/multipartStageFailures.js.map +0 -1
  657. package/workflows/blobs/multipartStageResolution.js.map +0 -1
  658. package/workflows/blobs/multipartUpload.js +0 -274
  659. package/workflows/blobs/multipartUpload.js.map +0 -1
  660. package/workflows/blobs/retainedAttachmentVerification.js +0 -40
  661. package/workflows/blobs/retainedAttachmentVerification.js.map +0 -1
  662. package/workflows/blobs/upload.d.ts +0 -10
  663. package/workflows/blobs/upload.js +0 -243
  664. package/workflows/blobs/upload.js.map +0 -1
  665. package/workflows/blobs/verifiedWrapScope.js +0 -20
  666. package/workflows/blobs/verifiedWrapScope.js.map +0 -1
  667. package/workflows/blobs/writerProjection.js +0 -29
  668. package/workflows/blobs/writerProjection.js.map +0 -1
  669. package/workflows/container-contents/availableDocumentLinkIntent.js +0 -32
  670. package/workflows/container-contents/availableDocumentLinkIntent.js.map +0 -1
  671. package/workflows/container-contents/blobInfo.d.ts +0 -6
  672. package/workflows/container-contents/blobInfo.js +0 -323
  673. package/workflows/container-contents/blobInfo.js.map +0 -1
  674. package/workflows/container-contents/blobInfoTypes.d.ts +0 -48
  675. package/workflows/container-contents/blobInfoTypes.js.map +0 -1
  676. package/workflows/container-contents/containerDocumentListing.js +0 -106
  677. package/workflows/container-contents/containerInfo.d.ts +0 -77
  678. package/workflows/container-contents/containerInfo.js +0 -200
  679. package/workflows/container-contents/containerInfo.js.map +0 -1
  680. package/workflows/container-contents/deferredDocumentLinks.js +0 -9
  681. package/workflows/container-contents/deferredDocumentLinks.js.map +0 -1
  682. package/workflows/container-contents/documentAttributionRanges.d.ts +0 -26
  683. package/workflows/container-contents/documentCharacterBlame.js +0 -33
  684. package/workflows/container-contents/documentCharacterBlame.js.map +0 -1
  685. package/workflows/container-contents/documentDiscovery.d.ts +0 -12
  686. package/workflows/container-contents/documentDiscovery.js +0 -183
  687. package/workflows/container-contents/documentDiscovery.js.map +0 -1
  688. package/workflows/container-contents/documentDiscoveryApply.js +0 -65
  689. package/workflows/container-contents/documentDiscoveryApply.js.map +0 -1
  690. package/workflows/container-contents/documentDiscoveryCandidates.js.map +0 -1
  691. package/workflows/container-contents/documentDiscoveryEvidence.js +0 -91
  692. package/workflows/container-contents/documentDiscoveryEvidence.js.map +0 -1
  693. package/workflows/container-contents/documentDiscoveryInputs.js +0 -85
  694. package/workflows/container-contents/documentDiscoveryInputs.js.map +0 -1
  695. package/workflows/container-contents/documentDiscoveryLanes.js.map +0 -1
  696. package/workflows/container-contents/documentDiscoveryTypes.d.ts +0 -160
  697. package/workflows/container-contents/documentDiscoveryTypes.js.map +0 -1
  698. package/workflows/container-contents/documentFieldBlame.js +0 -26
  699. package/workflows/container-contents/documentFieldBlame.js.map +0 -1
  700. package/workflows/container-contents/documentHydrationProbe.js +0 -146
  701. package/workflows/container-contents/documentHydrationProbe.js.map +0 -1
  702. package/workflows/container-contents/documentInfo.d.ts +0 -18
  703. package/workflows/container-contents/documentInfo.js +0 -306
  704. package/workflows/container-contents/documentInfo.js.map +0 -1
  705. package/workflows/container-contents/documentInfoTypes.d.ts +0 -92
  706. package/workflows/container-contents/documentInfoTypes.js.map +0 -1
  707. package/workflows/container-contents/documentLinkIntent.js +0 -82
  708. package/workflows/container-contents/documentLinkIntent.js.map +0 -1
  709. package/workflows/container-contents/documentLinks.d.ts +0 -64
  710. package/workflows/container-contents/documentLinks.js +0 -264
  711. package/workflows/container-contents/documentLinks.js.map +0 -1
  712. package/workflows/container-contents/documentLocalRelink.js.map +0 -1
  713. package/workflows/container-contents/documentMoveDeniedReplay.js.map +0 -1
  714. package/workflows/container-contents/documentMoveFailure.js +0 -35
  715. package/workflows/container-contents/documentMoveFailure.js.map +0 -1
  716. package/workflows/container-contents/documentMoveIntent.js +0 -77
  717. package/workflows/container-contents/documentMoveIntent.js.map +0 -1
  718. package/workflows/container-contents/documentMoveIntentErrors.js +0 -17
  719. package/workflows/container-contents/documentMoveIntentErrors.js.map +0 -1
  720. package/workflows/container-contents/documentMoveIntentSettlement.js +0 -25
  721. package/workflows/container-contents/documentMoveIntentSettlement.js.map +0 -1
  722. package/workflows/container-contents/documentMoveIntentSync.js +0 -346
  723. package/workflows/container-contents/documentMoveIntentSync.js.map +0 -1
  724. package/workflows/container-contents/documentMoveVanishedRefresh.js +0 -100
  725. package/workflows/container-contents/documentMoveVanishedRefresh.js.map +0 -1
  726. package/workflows/container-contents/documentPriming.js +0 -245
  727. package/workflows/container-contents/documentPriming.js.map +0 -1
  728. package/workflows/container-contents/documentPurge.d.ts +0 -37
  729. package/workflows/container-contents/documentPurge.js +0 -136
  730. package/workflows/container-contents/documentPurge.js.map +0 -1
  731. package/workflows/container-contents/documentQueries.d.ts +0 -62
  732. package/workflows/container-contents/documentQueries.js +0 -212
  733. package/workflows/container-contents/documentQueries.js.map +0 -1
  734. package/workflows/container-contents/documentRuntimeTargetSync.js.map +0 -1
  735. package/workflows/container-contents/documentStructure.d.ts +0 -53
  736. package/workflows/container-contents/documentStructure.js +0 -183
  737. package/workflows/container-contents/documentStructure.js.map +0 -1
  738. package/workflows/container-contents/documentStructureTypes.d.ts +0 -32
  739. package/workflows/container-contents/documentStructureTypes.js.map +0 -1
  740. package/workflows/container-contents/documentSubtreeQueries.js +0 -169
  741. package/workflows/container-contents/documentSubtreeQueries.js.map +0 -1
  742. package/workflows/container-contents/documentTombstoneEvidence.js +0 -173
  743. package/workflows/container-contents/documentTombstoneEvidence.js.map +0 -1
  744. package/workflows/container-contents/documentTombstoneGate.js +0 -94
  745. package/workflows/container-contents/documentTombstoneGate.js.map +0 -1
  746. package/workflows/container-contents/folderRecovery.d.ts +0 -19
  747. package/workflows/container-contents/folderRecovery.js +0 -32
  748. package/workflows/container-contents/folderRecovery.js.map +0 -1
  749. package/workflows/container-contents/metadata.d.ts +0 -25
  750. package/workflows/container-contents/metadata.js +0 -217
  751. package/workflows/container-contents/metadata.js.map +0 -1
  752. package/workflows/container-contents/metadataEvents.d.ts +0 -7
  753. package/workflows/container-contents/metadataEvents.js +0 -47
  754. package/workflows/container-contents/metadataEvents.js.map +0 -1
  755. package/workflows/container-contents/metadataIncomingUpdateIsolation.js +0 -40
  756. package/workflows/container-contents/metadataIncomingUpdateIsolation.js.map +0 -1
  757. package/workflows/container-contents/metadataMutationPreparation.d.ts +0 -75
  758. package/workflows/container-contents/metadataMutationPreparation.js +0 -177
  759. package/workflows/container-contents/metadataMutationPreparation.js.map +0 -1
  760. package/workflows/container-contents/metadataPersistence.d.ts +0 -34
  761. package/workflows/container-contents/metadataPersistence.js +0 -254
  762. package/workflows/container-contents/metadataPersistence.js.map +0 -1
  763. package/workflows/container-contents/metadataPullContinuationInvalidation.js +0 -65
  764. package/workflows/container-contents/metadataPullContinuationInvalidation.js.map +0 -1
  765. package/workflows/container-contents/metadataReadState.d.ts +0 -2
  766. package/workflows/container-contents/metadataReadState.js.map +0 -1
  767. package/workflows/container-contents/metadataRecord.js +0 -43
  768. package/workflows/container-contents/metadataRecord.js.map +0 -1
  769. package/workflows/container-contents/metadataRemoteSync.d.ts +0 -38
  770. package/workflows/container-contents/metadataRemoteSync.js +0 -91
  771. package/workflows/container-contents/metadataRemoteSync.js.map +0 -1
  772. package/workflows/container-contents/metadataStateInstallation.d.ts +0 -3
  773. package/workflows/container-contents/metadataStateInstallation.js.map +0 -1
  774. package/workflows/container-contents/metadataStateIsolation.js +0 -80
  775. package/workflows/container-contents/metadataStateIsolation.js.map +0 -1
  776. package/workflows/container-contents/metadataSyncErrors.js +0 -41
  777. package/workflows/container-contents/metadataSyncErrors.js.map +0 -1
  778. package/workflows/container-contents/metadataSyncSettlement.d.ts +0 -13
  779. package/workflows/container-contents/metadataSyncSettlement.js +0 -27
  780. package/workflows/container-contents/metadataSyncSettlement.js.map +0 -1
  781. package/workflows/container-contents/metadataTypes.d.ts +0 -54
  782. package/workflows/container-contents/metadataTypes.js.map +0 -1
  783. package/workflows/container-contents/orphanedDocumentSql.js +0 -39
  784. package/workflows/container-contents/orphanedDocumentSql.js.map +0 -1
  785. package/workflows/container-contents/pendingDownloads.d.ts +0 -12
  786. package/workflows/container-contents/pendingDownloads.js +0 -42
  787. package/workflows/container-contents/pendingDownloads.js.map +0 -1
  788. package/workflows/container-contents/pendingWrites.d.ts +0 -26
  789. package/workflows/container-contents/pendingWrites.js +0 -116
  790. package/workflows/container-contents/pendingWrites.js.map +0 -1
  791. package/workflows/container-contents/remoteContainerPageHydration.js +0 -244
  792. package/workflows/container-contents/remoteContainerPageHydration.js.map +0 -1
  793. package/workflows/container-contents/remoteContainerState.js +0 -263
  794. package/workflows/container-contents/remoteContainerState.js.map +0 -1
  795. package/workflows/container-contents/remoteHydration.d.ts +0 -28
  796. package/workflows/container-contents/remoteHydration.js +0 -302
  797. package/workflows/container-contents/remoteHydration.js.map +0 -1
  798. package/workflows/container-contents/staleRootRecovery.js +0 -111
  799. package/workflows/container-contents/staleRootRecovery.js.map +0 -1
  800. package/workflows/documents/attachmentPersistence.d.ts +0 -58
  801. package/workflows/documents/attachmentPersistence.js.map +0 -1
  802. package/workflows/documents/blobMutationLock.d.ts +0 -8
  803. package/workflows/documents/blobMutationLock.js +0 -35
  804. package/workflows/documents/blobMutationLock.js.map +0 -1
  805. package/workflows/documents/create.d.ts +0 -56
  806. package/workflows/documents/create.js +0 -258
  807. package/workflows/documents/create.js.map +0 -1
  808. package/workflows/documents/createAdoption.js +0 -100
  809. package/workflows/documents/createAdoption.js.map +0 -1
  810. package/workflows/documents/createProjection.d.ts +0 -14
  811. package/workflows/documents/createProjectionFetch.d.ts +0 -27
  812. package/workflows/documents/createProjectionFetch.js.map +0 -1
  813. package/workflows/documents/createResponse.js +0 -49
  814. package/workflows/documents/createResponse.js.map +0 -1
  815. package/workflows/documents/documentCreationPersistence.js +0 -16
  816. package/workflows/documents/documentCreationPersistence.js.map +0 -1
  817. package/workflows/documents/initialSync.js +0 -65
  818. package/workflows/documents/initialSync.js.map +0 -1
  819. package/workflows/documents/linkSet.d.ts +0 -20
  820. package/workflows/documents/linkSet.js +0 -290
  821. package/workflows/documents/linkSet.js.map +0 -1
  822. package/workflows/documents/linkSetAuthority.js +0 -61
  823. package/workflows/documents/linkSetAuthority.js.map +0 -1
  824. package/workflows/documents/linkSetBlobRewraps.js +0 -143
  825. package/workflows/documents/linkSetBlobRewraps.js.map +0 -1
  826. package/workflows/documents/linkSetProjectionSeed.js +0 -119
  827. package/workflows/documents/linkSetProjectionSeed.js.map +0 -1
  828. package/workflows/documents/linkSetRemote.d.ts +0 -23
  829. package/workflows/documents/linkSetRemote.js +0 -187
  830. package/workflows/documents/linkSetRemote.js.map +0 -1
  831. package/workflows/documents/orphanBlobReclaimState.js.map +0 -1
  832. package/workflows/documents/orphanBlobReclaims.d.ts +0 -6
  833. package/workflows/documents/orphanBlobReclaims.js +0 -143
  834. package/workflows/documents/orphanBlobReclaims.js.map +0 -1
  835. package/workflows/documents/persistedDocumentRemoval.d.ts +0 -44
  836. package/workflows/documents/persistedDocumentRemoval.js +0 -70
  837. package/workflows/documents/persistedDocumentRemoval.js.map +0 -1
  838. package/workflows/documents/purge.d.ts +0 -53
  839. package/workflows/documents/purge.js +0 -204
  840. package/workflows/documents/purge.js.map +0 -1
  841. package/workflows/documents/readOnlyProjectionFailure.js +0 -30
  842. package/workflows/documents/readOnlyProjectionFailure.js.map +0 -1
  843. package/workflows/documents/readOnlySync.d.ts +0 -71
  844. package/workflows/documents/readOnlySync.js +0 -269
  845. package/workflows/documents/readOnlySync.js.map +0 -1
  846. package/workflows/documents/reportDocumentSyncQuarantine.js.map +0 -1
  847. package/workflows/documents/subtreePurgeScope.d.ts +0 -8
  848. package/workflows/documents/subtreePurgeScope.js +0 -18
  849. package/workflows/documents/subtreePurgeScope.js.map +0 -1
  850. package/workflows/documents/sync.d.ts +0 -4
  851. package/workflows/documents/sync.js +0 -287
  852. package/workflows/documents/sync.js.map +0 -1
  853. package/workflows/documents/syncAbandon.js +0 -51
  854. package/workflows/documents/syncAbandon.js.map +0 -1
  855. package/workflows/documents/syncAttemptPlanning.js +0 -79
  856. package/workflows/documents/syncAttemptPlanning.js.map +0 -1
  857. package/workflows/documents/syncAttemptState.d.ts +0 -27
  858. package/workflows/documents/syncAttemptState.js.map +0 -1
  859. package/workflows/documents/syncAutomaticContainerRekeys.js +0 -119
  860. package/workflows/documents/syncAutomaticContainerRekeys.js.map +0 -1
  861. package/workflows/documents/syncContainerRekeyPreparation.js +0 -227
  862. package/workflows/documents/syncContainerRekeyPreparation.js.map +0 -1
  863. package/workflows/documents/syncContainerRekeyProjection.js +0 -79
  864. package/workflows/documents/syncContainerRekeyProjection.js.map +0 -1
  865. package/workflows/documents/syncContainerRekeys.js +0 -72
  866. package/workflows/documents/syncContainerRekeys.js.map +0 -1
  867. package/workflows/documents/syncContentKeys.d.ts +0 -39
  868. package/workflows/documents/syncContentKeys.js +0 -254
  869. package/workflows/documents/syncContentKeys.js.map +0 -1
  870. package/workflows/documents/syncFailureClassification.d.ts +0 -74
  871. package/workflows/documents/syncFailureClassification.js +0 -122
  872. package/workflows/documents/syncFailureClassification.js.map +0 -1
  873. package/workflows/documents/syncFailures.js +0 -252
  874. package/workflows/documents/syncFailures.js.map +0 -1
  875. package/workflows/documents/syncLane.d.ts +0 -20
  876. package/workflows/documents/syncLane.js +0 -94
  877. package/workflows/documents/syncLane.js.map +0 -1
  878. package/workflows/documents/syncPlanIdentity.js +0 -203
  879. package/workflows/documents/syncPlanIdentity.js.map +0 -1
  880. package/workflows/documents/syncPlanMaterial.js +0 -306
  881. package/workflows/documents/syncPlanMaterial.js.map +0 -1
  882. package/workflows/documents/syncPlanProjection.js.map +0 -1
  883. package/workflows/documents/syncPlanRequestBounds.js +0 -54
  884. package/workflows/documents/syncPlanRequestBounds.js.map +0 -1
  885. package/workflows/documents/syncPolicyRepair.js +0 -50
  886. package/workflows/documents/syncPolicyRepair.js.map +0 -1
  887. package/workflows/documents/syncRecoveryRekey.d.ts +0 -70
  888. package/workflows/documents/syncRecoveryRekey.js +0 -120
  889. package/workflows/documents/syncRecoveryRekey.js.map +0 -1
  890. package/workflows/documents/syncRekeyCommit.js +0 -18
  891. package/workflows/documents/syncRepairAbandon.js.map +0 -1
  892. package/workflows/documents/syncRepairAccess.js +0 -42
  893. package/workflows/documents/syncRepairAccess.js.map +0 -1
  894. package/workflows/documents/syncResponseResult.js +0 -134
  895. package/workflows/documents/syncResponseResult.js.map +0 -1
  896. package/workflows/documents/syncSubmittedResult.js +0 -119
  897. package/workflows/documents/syncSubmittedResult.js.map +0 -1
  898. package/workflows/documents/syncTrace.js +0 -148
  899. package/workflows/organizations/acknowledgedDirectoryBindings.js +0 -18
  900. package/workflows/organizations/acknowledgedDirectoryBindings.js.map +0 -1
  901. package/workflows/organizations/authoredPrincipalPolicyWarmer.js +0 -25
  902. package/workflows/organizations/authoredPrincipalPolicyWarmer.js.map +0 -1
  903. package/workflows/organizations/commitCurrentGroupPolicyMutation.js +0 -139
  904. package/workflows/organizations/commitCurrentGroupPolicyMutation.js.map +0 -1
  905. package/workflows/organizations/createCurrentOrganizationGroup.js +0 -85
  906. package/workflows/organizations/createCurrentOrganizationGroup.js.map +0 -1
  907. package/workflows/organizations/createOrganization.d.ts +0 -62
  908. package/workflows/organizations/createOrganization.js +0 -128
  909. package/workflows/organizations/createOrganization.js.map +0 -1
  910. package/workflows/organizations/currentGroupMetadataAuthority.js +0 -53
  911. package/workflows/organizations/currentGroupMetadataAuthority.js.map +0 -1
  912. package/workflows/organizations/currentGroupMutationReferences.js +0 -35
  913. package/workflows/organizations/currentGroupMutationReferences.js.map +0 -1
  914. package/workflows/organizations/currentGroupPolicyMutationContext.js +0 -79
  915. package/workflows/organizations/currentGroupPolicyMutationContext.js.map +0 -1
  916. package/workflows/organizations/currentOrganizationGroupNames.js +0 -72
  917. package/workflows/organizations/currentOrganizationGroupNames.js.map +0 -1
  918. package/workflows/organizations/currentOrganizationMutationAuthority.js +0 -16
  919. package/workflows/organizations/currentOrganizationMutationAuthority.js.map +0 -1
  920. package/workflows/organizations/currentOrganizationMutationRetention.js +0 -64
  921. package/workflows/organizations/currentOrganizationMutationRetention.js.map +0 -1
  922. package/workflows/organizations/currentPolicyMutationAcknowledgement.js +0 -65
  923. package/workflows/organizations/currentPolicyMutationAcknowledgement.js.map +0 -1
  924. package/workflows/organizations/currentPrincipalMutationLease.js +0 -39
  925. package/workflows/organizations/currentPrincipalMutationLease.js.map +0 -1
  926. package/workflows/organizations/dataUsageReadModel.d.ts +0 -19
  927. package/workflows/organizations/dataUsageReadModel.js +0 -64
  928. package/workflows/organizations/dataUsageReadModel.js.map +0 -1
  929. package/workflows/organizations/deleteCurrentOrganizationGroup.js +0 -35
  930. package/workflows/organizations/deleteCurrentOrganizationGroup.js.map +0 -1
  931. package/workflows/organizations/deleteOrganizationGroup.d.ts +0 -19
  932. package/workflows/organizations/deleteOrganizationGroup.js +0 -75
  933. package/workflows/organizations/deleteOrganizationGroup.js.map +0 -1
  934. package/workflows/organizations/groupCreation.d.ts +0 -21
  935. package/workflows/organizations/groupCreation.js +0 -68
  936. package/workflows/organizations/groupCreation.js.map +0 -1
  937. package/workflows/organizations/groupMembershipName.d.ts +0 -8
  938. package/workflows/organizations/groupMembershipName.js +0 -18
  939. package/workflows/organizations/groupMembershipName.js.map +0 -1
  940. package/workflows/organizations/groupMetadataAccess.d.ts +0 -33
  941. package/workflows/organizations/groupMetadataAccess.js +0 -114
  942. package/workflows/organizations/groupMetadataAccess.js.map +0 -1
  943. package/workflows/organizations/groupMetadataBinding.js +0 -19
  944. package/workflows/organizations/groupMetadataBinding.js.map +0 -1
  945. package/workflows/organizations/groupMetadataContainerAuthority.js +0 -41
  946. package/workflows/organizations/groupMetadataContainerAuthority.js.map +0 -1
  947. package/workflows/organizations/groupMetadataErrors.js +0 -40
  948. package/workflows/organizations/groupMetadataRootBinding.js +0 -51
  949. package/workflows/organizations/groupMetadataRootBinding.js.map +0 -1
  950. package/workflows/organizations/groupMetadataRuntime.js +0 -47
  951. package/workflows/organizations/groupMetadataRuntime.js.map +0 -1
  952. package/workflows/organizations/groupNameUniqueness.js +0 -151
  953. package/workflows/organizations/groupNameUniqueness.js.map +0 -1
  954. package/workflows/organizations/groupPolicyHistoryPage.js.map +0 -1
  955. package/workflows/organizations/groupPolicyMutationAcknowledgement.js +0 -174
  956. package/workflows/organizations/groupPolicyMutationAcknowledgement.js.map +0 -1
  957. package/workflows/organizations/groupPolicyMutationContext.d.ts +0 -58
  958. package/workflows/organizations/groupPolicyMutationContext.js +0 -166
  959. package/workflows/organizations/groupPolicyMutationContext.js.map +0 -1
  960. package/workflows/organizations/groupPolicyMutationEvidence.d.ts +0 -26
  961. package/workflows/organizations/groupPolicyMutationEvidence.js +0 -64
  962. package/workflows/organizations/groupPolicyMutationEvidence.js.map +0 -1
  963. package/workflows/organizations/groupPolicyMutationHead.js +0 -26
  964. package/workflows/organizations/groupPolicyRequests.js +0 -181
  965. package/workflows/organizations/groupPolicyRequests.js.map +0 -1
  966. package/workflows/organizations/groupPolicyVerification.js +0 -74
  967. package/workflows/organizations/groupPolicyVerification.js.map +0 -1
  968. package/workflows/organizations/listLocalOrganizations.d.ts +0 -20
  969. package/workflows/organizations/listLocalOrganizations.js +0 -137
  970. package/workflows/organizations/listLocalOrganizations.js.map +0 -1
  971. package/workflows/organizations/loadPolicyHistoryDetails.js +0 -78
  972. package/workflows/organizations/loadPolicyHistoryDetails.js.map +0 -1
  973. package/workflows/organizations/localReadModelDetails.d.ts +0 -25
  974. package/workflows/organizations/localReadModelDetails.js +0 -182
  975. package/workflows/organizations/localReadModelDetails.js.map +0 -1
  976. package/workflows/organizations/organizationGroupDirectory.js +0 -153
  977. package/workflows/organizations/organizationGroupDirectory.js.map +0 -1
  978. package/workflows/organizations/organizationGroupNamePolicies.js +0 -48
  979. package/workflows/organizations/organizationGroupNamePolicies.js.map +0 -1
  980. package/workflows/organizations/organizationGroupNames.js +0 -13
  981. package/workflows/organizations/organizationGroupNames.js.map +0 -1
  982. package/workflows/organizations/organizationPolicyHistoryDetails.js +0 -110
  983. package/workflows/organizations/organizationPolicyHistoryDetails.js.map +0 -1
  984. package/workflows/organizations/organizationPolicyHistoryVerification.js +0 -67
  985. package/workflows/organizations/organizationPolicyHistoryVerification.js.map +0 -1
  986. package/workflows/organizations/organizationPresentationAccessState.js +0 -173
  987. package/workflows/organizations/organizationPresentationAccessState.js.map +0 -1
  988. package/workflows/organizations/organizationPresentationFailures.js +0 -7
  989. package/workflows/organizations/organizationProvisioningAttempt.d.ts +0 -36
  990. package/workflows/organizations/organizationProvisioningAttempt.js +0 -205
  991. package/workflows/organizations/organizationProvisioningAttempt.js.map +0 -1
  992. package/workflows/organizations/organizationReplacementVerification.js +0 -26
  993. package/workflows/organizations/organizationReplacementVerification.js.map +0 -1
  994. package/workflows/organizations/policyHistoryAccessDenial.js +0 -19
  995. package/workflows/organizations/policyHistoryAccessDenial.js.map +0 -1
  996. package/workflows/organizations/policyHistoryCache.js +0 -42
  997. package/workflows/organizations/policyHistoryCache.js.map +0 -1
  998. package/workflows/organizations/policyHistoryReadModel.d.ts +0 -9
  999. package/workflows/organizations/policyHistoryTypes.d.ts +0 -58
  1000. package/workflows/organizations/precedingPrincipalRematerialization.js +0 -31
  1001. package/workflows/organizations/precedingPrincipalRematerialization.js.map +0 -1
  1002. package/workflows/organizations/principalContainerRematerialization.js +0 -321
  1003. package/workflows/organizations/principalContainerRematerialization.js.map +0 -1
  1004. package/workflows/organizations/principalContainerRematerializationPlanning.js +0 -77
  1005. package/workflows/organizations/principalContainerRematerializationPlanning.js.map +0 -1
  1006. package/workflows/organizations/principalContainerRematerializationTargets.js +0 -79
  1007. package/workflows/organizations/principalContainerRematerializationTargets.js.map +0 -1
  1008. package/workflows/organizations/principalMutationJournalManagement.d.ts +0 -26
  1009. package/workflows/organizations/principalMutationJournalManagement.js +0 -104
  1010. package/workflows/organizations/principalMutationJournalManagement.js.map +0 -1
  1011. package/workflows/organizations/principalMutationJournalSession.d.ts +0 -26
  1012. package/workflows/organizations/principalMutationJournalSession.js +0 -85
  1013. package/workflows/organizations/principalMutationJournalSession.js.map +0 -1
  1014. package/workflows/organizations/principalMutationReceipt.js +0 -28
  1015. package/workflows/organizations/principalMutationReceipt.js.map +0 -1
  1016. package/workflows/organizations/principalOperationReceipt.d.ts +0 -5
  1017. package/workflows/organizations/principalOperationReceipt.js +0 -36
  1018. package/workflows/organizations/principalOperationReceipt.js.map +0 -1
  1019. package/workflows/organizations/principalPolicy.d.ts +0 -98
  1020. package/workflows/organizations/principalPolicy.js +0 -256
  1021. package/workflows/organizations/principalPolicy.js.map +0 -1
  1022. package/workflows/organizations/principalPolicyApi.d.ts +0 -33
  1023. package/workflows/organizations/principalPolicyApi.js.map +0 -1
  1024. package/workflows/organizations/principalPolicyReceiptArtifacts.js +0 -74
  1025. package/workflows/organizations/principalPolicyReceiptArtifacts.js.map +0 -1
  1026. package/workflows/organizations/principalPolicyRecipients.js +0 -43
  1027. package/workflows/organizations/principalPolicyRecipients.js.map +0 -1
  1028. package/workflows/organizations/principalPolicyRequest.d.ts +0 -68
  1029. package/workflows/organizations/principalPolicyRequest.js +0 -176
  1030. package/workflows/organizations/readModel.d.ts +0 -70
  1031. package/workflows/organizations/readModel.js +0 -10
  1032. package/workflows/organizations/readModel.js.map +0 -1
  1033. package/workflows/organizations/readModelProjection.d.ts +0 -29
  1034. package/workflows/organizations/readModelProjection.js +0 -255
  1035. package/workflows/organizations/readModelProjection.js.map +0 -1
  1036. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.d.ts +0 -6
  1037. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.js +0 -20
  1038. package/workflows/organizations/retainAcknowledgedPrincipalCurrents.js.map +0 -1
  1039. package/workflows/organizations/runtimeCurrentGroupMutation.js +0 -113
  1040. package/workflows/organizations/runtimeCurrentGroupMutation.js.map +0 -1
  1041. package/workflows/organizations/runtimeCurrentOrganizationMutation.js +0 -48
  1042. package/workflows/organizations/runtimeCurrentOrganizationMutation.js.map +0 -1
  1043. package/workflows/organizations/runtimeGroupMetadataAuthority.js +0 -16
  1044. package/workflows/organizations/runtimeGroupMetadataAuthority.js.map +0 -1
  1045. package/workflows/organizations/submitGroupPolicyCommit.d.ts +0 -22
  1046. package/workflows/organizations/submitGroupPolicyCommit.js +0 -71
  1047. package/workflows/organizations/submitGroupPolicyCommit.js.map +0 -1
  1048. package/workflows/principals/acknowledgedPrincipalCurrents.d.ts +0 -33
  1049. package/workflows/principals/acknowledgedPrincipalCurrents.js +0 -140
  1050. package/workflows/principals/acknowledgedPrincipalCurrents.js.map +0 -1
  1051. package/workflows/principals/acknowledgedPrincipalPredecessor.d.ts +0 -39
  1052. package/workflows/principals/acknowledgedPrincipalPredecessor.js +0 -87
  1053. package/workflows/principals/acknowledgedPrincipalPredecessor.js.map +0 -1
  1054. package/workflows/principals/initialPrincipalCurrentPublication.js +0 -84
  1055. package/workflows/principals/initialPrincipalCurrentPublication.js.map +0 -1
  1056. package/workflows/principals/loadRecoveredPrincipalHistoryPage.d.ts +0 -10
  1057. package/workflows/principals/loadRecoveredPrincipalHistoryPage.js +0 -119
  1058. package/workflows/principals/loadRecoveredPrincipalHistoryPage.js.map +0 -1
  1059. package/workflows/principals/policyCache.d.ts +0 -20
  1060. package/workflows/principals/policyCache.js +0 -242
  1061. package/workflows/principals/policyCache.js.map +0 -1
  1062. package/workflows/principals/principalAcknowledgementChecks.d.ts +0 -30
  1063. package/workflows/principals/principalCurrentPublicationSeal.js +0 -51
  1064. package/workflows/principals/principalCurrentPublicationSeal.js.map +0 -1
  1065. package/workflows/principals/principalCurrentRecoveryBatch.js +0 -14
  1066. package/workflows/principals/principalCurrentRecoveryBatch.js.map +0 -1
  1067. package/workflows/principals/principalHistoryRecoveryAuthority.js +0 -20
  1068. package/workflows/principals/principalHistoryRecoveryAuthority.js.map +0 -1
  1069. package/workflows/principals/principalHistoryRecoveryPrefix.js +0 -69
  1070. package/workflows/principals/principalHistoryRecoveryPrefix.js.map +0 -1
  1071. package/workflows/principals/principalHistoryRecoveryReferences.js +0 -68
  1072. package/workflows/principals/principalHistoryRecoveryReferences.js.map +0 -1
  1073. package/workflows/principals/principalHistoryRecoveryStage.js +0 -61
  1074. package/workflows/principals/principalHistoryRecoveryStage.js.map +0 -1
  1075. package/workflows/principals/principalHistoryRecoveryTypes.d.ts +0 -35
  1076. package/workflows/principals/principalHistoryRecoveryTypes.js +0 -16
  1077. package/workflows/principals/principalHistoryRecoveryTypes.js.map +0 -1
  1078. package/workflows/principals/principalHistoryRecoveryVerification.js +0 -29
  1079. package/workflows/principals/principalPolicyCacheAdvance.js +0 -39
  1080. package/workflows/principals/principalPolicyCacheAdvance.js.map +0 -1
  1081. package/workflows/principals/principalPolicyCacheValidation.js +0 -149
  1082. package/workflows/principals/principalPolicyCacheValidation.js.map +0 -1
  1083. package/workflows/principals/principalPolicyOrganizationScope.js +0 -67
  1084. package/workflows/principals/principalPolicyOrganizationScope.js.map +0 -1
  1085. package/workflows/principals/principalRecoveryDirectory.d.ts +0 -10
  1086. package/workflows/principals/principalRecoveryDirectory.js +0 -127
  1087. package/workflows/principals/principalRecoveryDirectory.js.map +0 -1
  1088. package/workflows/principals/principalRecoveryDiscoveryPage.js.map +0 -1
  1089. package/workflows/principals/principalRecoveryLocalPreference.js +0 -30
  1090. package/workflows/principals/principalRecoveryLocalPreference.js.map +0 -1
  1091. package/workflows/principals/principalRecoveryMemo.d.ts +0 -21
  1092. package/workflows/principals/principalRecoveryMemo.js +0 -178
  1093. package/workflows/principals/principalRecoveryMemo.js.map +0 -1
  1094. package/workflows/principals/principalRecoveryMemoValidity.js +0 -33
  1095. package/workflows/principals/principalRecoveryMemoValidity.js.map +0 -1
  1096. package/workflows/principals/principalRecoveryOutage.js +0 -40
  1097. package/workflows/principals/principalRecoveryOutage.js.map +0 -1
  1098. package/workflows/principals/publicPrincipalHistoryAuthority.js +0 -60
  1099. package/workflows/principals/publicPrincipalHistoryAuthority.js.map +0 -1
  1100. package/workflows/principals/publicPrincipalHistoryPage.js +0 -88
  1101. package/workflows/principals/publicPrincipalHistoryPage.js.map +0 -1
  1102. package/workflows/principals/publicPrincipalHistoryProgress.js +0 -179
  1103. package/workflows/principals/publicPrincipalHistoryProgress.js.map +0 -1
  1104. package/workflows/principals/publicPrincipalHistoryTypes.d.ts +0 -41
  1105. package/workflows/principals/publicPrincipalHistoryTypes.js.map +0 -1
  1106. package/workflows/principals/publicProjectionDirectory.js +0 -40
  1107. package/workflows/principals/publicProjectionDirectory.js.map +0 -1
  1108. package/workflows/principals/publicProjectionPrincipal.js +0 -54
  1109. package/workflows/principals/publicProjectionPrincipal.js.map +0 -1
  1110. package/workflows/principals/reconcileAcknowledgedPrincipalCurrent.js +0 -68
  1111. package/workflows/principals/reconcileAcknowledgedPrincipalCurrent.js.map +0 -1
  1112. package/workflows/principals/recoverCurrentOrganizationPolicy.js +0 -38
  1113. package/workflows/principals/recoverCurrentOrganizationPolicy.js.map +0 -1
  1114. package/workflows/principals/recoverPrincipalHistoryPage.js +0 -31
  1115. package/workflows/principals/recoverPrincipalPolicyHistory.js +0 -295
  1116. package/workflows/principals/recoverPrincipalPolicyHistory.js.map +0 -1
  1117. package/workflows/principals/recoverProjectionPolicyHistory.d.ts +0 -9
  1118. package/workflows/principals/recoverProjectionPolicyHistory.js +0 -98
  1119. package/workflows/principals/recoverProjectionPolicyHistory.js.map +0 -1
  1120. package/workflows/principals/recoverPublicPrincipalHistory.js +0 -178
  1121. package/workflows/principals/recoverPublicPrincipalHistory.js.map +0 -1
  1122. package/workflows/principals/recoverScopedPrincipalPolicyHistory.d.ts +0 -27
  1123. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js +0 -163
  1124. package/workflows/principals/recoverScopedPrincipalPolicyHistory.js.map +0 -1
  1125. package/workflows/principals/selectPublicPrincipalHistory.js +0 -96
  1126. package/workflows/principals/selectPublicPrincipalHistory.js.map +0 -1
  1127. /package/workflows/blobs/{readAttachmentTransfer.js → hydration/readAttachmentTransfer.js} +0 -0
  1128. /package/workflows/blobs/{readAttachmentTransfer.js.map → hydration/readAttachmentTransfer.js.map} +0 -0
  1129. /package/workflows/blobs/{multipartStageResolution.js → upload/multipartStageResolution.js} +0 -0
  1130. /package/workflows/container-contents/{documentAttributionRanges.js → attribution/documentAttributionRanges.js} +0 -0
  1131. /package/workflows/container-contents/{documentAttributionRanges.js.map → attribution/documentAttributionRanges.js.map} +0 -0
  1132. /package/workflows/container-contents/{containerDocumentListing.js.map → documentDiscovery/containerDocumentListing.js.map} +0 -0
  1133. /package/workflows/container-contents/{documentDiscoveryCandidates.js → documentDiscovery/documentDiscoveryCandidates.js} +0 -0
  1134. /package/workflows/container-contents/{documentDiscoveryLanes.js → documentDiscovery/documentDiscoveryLanes.js} +0 -0
  1135. /package/workflows/container-contents/{documentDiscoveryTypes.js → documentDiscovery/documentDiscoveryTypes.js} +0 -0
  1136. /package/workflows/container-contents/{documentHeadScope.js → documentDiscovery/documentHeadScope.js} +0 -0
  1137. /package/workflows/container-contents/{documentHeadScope.js.map → documentDiscovery/documentHeadScope.js.map} +0 -0
  1138. /package/workflows/container-contents/{documentLocalRelink.js → documentLinks/documentLocalRelink.js} +0 -0
  1139. /package/workflows/container-contents/{documentMoveDeniedReplay.js → documentMove/documentMoveDeniedReplay.js} +0 -0
  1140. /package/workflows/container-contents/{documentMoveUnlinkIds.js → documentMove/documentMoveUnlinkIds.js} +0 -0
  1141. /package/workflows/container-contents/{documentMoveUnlinkIds.js.map → documentMove/documentMoveUnlinkIds.js.map} +0 -0
  1142. /package/workflows/container-contents/{documentRuntimeTargetSync.js → documentPriming/documentRuntimeTargetSync.js} +0 -0
  1143. /package/workflows/container-contents/{documentStructureTypes.js → documentQueries/documentStructureTypes.js} +0 -0
  1144. /package/workflows/container-contents/{blobInfoRows.js → info/blobInfoRows.js} +0 -0
  1145. /package/workflows/container-contents/{blobInfoRows.js.map → info/blobInfoRows.js.map} +0 -0
  1146. /package/workflows/container-contents/{blobInfoTypes.js → info/blobInfoTypes.js} +0 -0
  1147. /package/workflows/container-contents/{documentInfoTypes.js → info/documentInfoTypes.js} +0 -0
  1148. /package/workflows/container-contents/{metadataReadState.js → metadata/metadataReadState.js} +0 -0
  1149. /package/workflows/container-contents/{metadataStateInstallation.js → metadata/metadataStateInstallation.js} +0 -0
  1150. /package/workflows/container-contents/{metadataSyncFollowup.js → metadata/metadataSyncFollowup.js} +0 -0
  1151. /package/workflows/container-contents/{metadataSyncFollowup.js.map → metadata/metadataSyncFollowup.js.map} +0 -0
  1152. /package/workflows/container-contents/{metadataSyncRegistrations.d.ts → metadata/metadataSyncRegistrations.d.ts} +0 -0
  1153. /package/workflows/container-contents/{metadataSyncRegistrations.js → metadata/metadataSyncRegistrations.js} +0 -0
  1154. /package/workflows/container-contents/{metadataSyncRegistrations.js.map → metadata/metadataSyncRegistrations.js.map} +0 -0
  1155. /package/workflows/container-contents/{metadataTypes.js → metadata/metadataTypes.js} +0 -0
  1156. /package/workflows/container-contents/{pendingWritesTypes.d.ts → pendingWrites/pendingWritesTypes.d.ts} +0 -0
  1157. /package/workflows/container-contents/{pendingWritesTypes.js → pendingWrites/pendingWritesTypes.js} +0 -0
  1158. /package/workflows/container-contents/{pendingWritesTypes.js.map → pendingWrites/pendingWritesTypes.js.map} +0 -0
  1159. /package/workflows/container-contents/{remoteHydrationLog.js → remoteHydration/remoteHydrationLog.js} +0 -0
  1160. /package/workflows/container-contents/{remoteHydrationLog.js.map → remoteHydration/remoteHydrationLog.js.map} +0 -0
  1161. /package/workflows/documents/{attachmentPersistence.js → attachments/attachmentPersistence.js} +0 -0
  1162. /package/workflows/documents/{orphanBlobReclaimState.js → attachments/orphanBlobReclaimState.js} +0 -0
  1163. /package/workflows/documents/{createProjection.js → create/createProjection.js} +0 -0
  1164. /package/workflows/documents/{createProjection.js.map → create/createProjection.js.map} +0 -0
  1165. /package/workflows/documents/{createProjectionFetch.js → create/createProjectionFetch.js} +0 -0
  1166. /package/workflows/documents/{reportDocumentSyncQuarantine.js → sync/reportDocumentSyncQuarantine.js} +0 -0
  1167. /package/workflows/documents/{syncAttemptState.js → sync/syncAttemptState.js} +0 -0
  1168. /package/workflows/documents/{syncTrace.d.ts → sync/syncTrace.d.ts} +0 -0
  1169. /package/workflows/documents/{syncTrace.js.map → sync/syncTrace.js.map} +0 -0
  1170. /package/workflows/documents/{syncFailureClearance.d.ts → syncFailures/syncFailureClearance.d.ts} +0 -0
  1171. /package/workflows/documents/{syncFailureClearance.js → syncFailures/syncFailureClearance.js} +0 -0
  1172. /package/workflows/documents/{syncFailureClearance.js.map → syncFailures/syncFailureClearance.js.map} +0 -0
  1173. /package/workflows/documents/{syncRepairAbandon.js → syncFailures/syncRepairAbandon.js} +0 -0
  1174. /package/workflows/documents/{syncPlanProjection.js → syncPlan/syncPlanProjection.js} +0 -0
  1175. /package/workflows/documents/{syncRekeyCommit.js.map → syncRekeys/syncRekeyCommit.js.map} +0 -0
  1176. /package/workflows/organizations/{groupMetadataErrors.js.map → groupMetadata/groupMetadataErrors.js.map} +0 -0
  1177. /package/workflows/organizations/{groupMutationAuthorization.js → groupPolicy/groupMutationAuthorization.js} +0 -0
  1178. /package/workflows/organizations/{groupMutationAuthorization.js.map → groupPolicy/groupMutationAuthorization.js.map} +0 -0
  1179. /package/workflows/organizations/{groupPolicyMutationHead.js.map → groupPolicy/groupPolicyMutationHead.js.map} +0 -0
  1180. /package/workflows/organizations/{groupPolicyHistoryPage.js → policyHistory/groupPolicyHistoryPage.js} +0 -0
  1181. /package/workflows/organizations/{policyHistoryReadModel.js → policyHistory/policyHistoryReadModel.js} +0 -0
  1182. /package/workflows/organizations/{policyHistoryReadModel.js.map → policyHistory/policyHistoryReadModel.js.map} +0 -0
  1183. /package/workflows/organizations/{policyHistoryTypes.js → policyHistory/policyHistoryTypes.js} +0 -0
  1184. /package/workflows/organizations/{policyHistoryTypes.js.map → policyHistory/policyHistoryTypes.js.map} +0 -0
  1185. /package/workflows/organizations/{principalPolicyApi.js → principalPolicy/principalPolicyApi.js} +0 -0
  1186. /package/workflows/organizations/{principalPolicyRequest.js.map → principalPolicy/principalPolicyRequest.js.map} +0 -0
  1187. /package/workflows/organizations/{organizationPresentationFailures.js.map → readModel/organizationPresentationFailures.js.map} +0 -0
  1188. /package/workflows/principals/{principalAcknowledgementChecks.js → acknowledgements/principalAcknowledgementChecks.js} +0 -0
  1189. /package/workflows/principals/{principalAcknowledgementChecks.js.map → acknowledgements/principalAcknowledgementChecks.js.map} +0 -0
  1190. /package/workflows/principals/{principalHistoryRecoveryVerification.js.map → historyRecovery/principalHistoryRecoveryVerification.js.map} +0 -0
  1191. /package/workflows/principals/{recoverPrincipalHistoryPage.js.map → historyRecovery/recoverPrincipalHistoryPage.js.map} +0 -0
  1192. /package/workflows/principals/{recoverPrincipalPolicyHistory.d.ts → historyRecovery/recoverPrincipalPolicyHistory.d.ts} +0 -0
  1193. /package/workflows/principals/{principalPolicyCacheScope.js → policyCache/principalPolicyCacheScope.js} +0 -0
  1194. /package/workflows/principals/{principalPolicyCacheScope.js.map → policyCache/principalPolicyCacheScope.js.map} +0 -0
  1195. /package/workflows/principals/{publicPrincipalHistoryTypes.js → publicHistory/publicPrincipalHistoryTypes.js} +0 -0
  1196. /package/workflows/principals/{principalRecoveryDiscoveryPage.js → recoveryOperation/principalRecoveryDiscoveryPage.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentPurge.js","sourceRoot":"","sources":["documentPurge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uCAAuC,EAAE,MAAM,kDAAkD,CAAC;AAC3G,OAAO,EAAE,sCAAsC,EAAE,MAAM,kDAAkD,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAEL,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oCAAoC,EAAE,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AA6C1F,KAAK,UAAU,yBAAyB,CAAC,KASxC;IACC,OAAO,KAAK,CAAC,WAAW,CAAC,8BAA8B,CACrD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAC3B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,EAAE,kBAAkB,EAAE,EAAE;QAC3B,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,oCAAoC,CAC/E;YACE,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,KAAK,CAAC,MAAM;SACtB,CACF,CAAC;QACF,MAAM,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,KAS1C;IACC,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,oCAAoC,CAAC;QACzC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB;QAC1D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;KACrC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CACzD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAC3B,KAAK,CAAC,MAAM,CACb,CAAC;IACF,IAAI,cAAc,IAAI,cAAc,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAC,MAAM,uBAAuB,CAAC;YAC5B,yBAAyB,EAAE,KAAK,CAAC,gBAAgB;YACjD,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB;YAC1D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;YACpC,cAAc;YACd,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;QACJ,CAAC,CAAC,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAwC;IAExC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,2BAA2B,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,4CAA4C,MAAM,mDAAmD,CACtG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM;YACN,UAAU;YACV,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;YAC9B,eAAe,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;gBAC9C,OAAO,GAAG,MAAM,2BAA2B,CAAC;oBAC1C,gBAAgB;oBAChB,UAAU;oBACV,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,MAAM;oBACN,WAAW;oBACX,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YACD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,+BAA+B,EAC7B,kCAAkC,CAAC,OAAO,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,4CAA4C,MAAM,cAAc,UAAU,GAAG,CAC9E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,mCAAmC,MAAM,cAAc,UAAU,GAAG,CACrE,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2EAA2E;QAC3E,8DAA8D;QAC9D,sCAAsC,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,uCAAuC,CAC3C,KAAK,EACL,OAAO,CAAC,IAAI,CAAC,sBAAsB,EACnC;YACE,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,gBAAgB;SAC5B,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,4CAA4C,MAAM,cAAc,UAAU,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CACtG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAQjD;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,2BAA2B,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,YAAY,CACnD,OAAO,CAAC,KAAK,CAAC,OAAO,EACrB,MAAM,CACP,CAAC;QACF,IACE,CAAC,cAAc;YACf,cAAc,CAAC,UAAU,KAAK,IAAI;YAClC,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS;gBACtC,cAAc,CAAC,WAAW,KAAK,KAAK,CAAC,mBAAmB,CAAC,EAC3D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,yDAAyD,MAAM,wCAAwC,CACxG,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC;YAC5C,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;YAC1D,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;YACpD,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;YAC9B,cAAc;YACd,OAAO,EAAE,MAAM;YACf,WAAW;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,yDAAyD,MAAM,+BAA+B,CAC/F,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,wBAAwB,EAAE,EAAE;SAC7B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,CACd,uDAAuD,MAAM,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import type { DocumentPurgeResponse } from \"@tearleads/validators/response\";\nimport type { StoredDocumentKind } from \"../../../data/documents/documentKinds\";\nimport type { ProjectionUserKeyResolver } from \"../../../data/keyingProjectionVerification\";\nimport { reportAndRethrowKeyingVerificationError } from \"../../../data/keyingProjectionVerification/error\";\nimport { rethrowProjectionVerificationCancelled } from \"../../../data/keyingProjectionVerification/types\";\nimport { errorMessage } from \"../../../data/shared/errorMessage\";\nimport {\n type DocumentsPersistence,\n defaultDocumentsPersistence,\n deletePersistedDocument,\n purgeRemoteDocument,\n reclaimDocumentOrphanBlobs,\n resolveDocumentCreateAuthor,\n} from \"../../documents\";\nimport { ensureDocumentClientProjectionTables } from \"../../documents/persistence\";\nimport type { SubtreePurgeRoot } from \"../../documents/purge/subtreePurgeScope\";\nimport { createRuntimePrincipalPolicyWarmer } from \"../../principals/runtimePolicyWarmer\";\nimport type { ContainerContentsWorkflowRuntime } from \"../runtime\";\n\ntype ContainerDocumentPurgeApi = Pick<\n ContainerContentsWorkflowRuntime[\"apiClient\"],\n | \"getPrincipalPolicyPages\"\n | \"getProjectionPolicyHistoryPages\"\n | \"getDocumentPurgeProof\"\n | \"getDocumentWriterProjectionResult\"\n | \"purgeDocument\"\n>;\ntype DocumentPurgeResult =\n | DocumentPurgeResponse\n | {\n readonly documentId: string;\n readonly purgedAt: string;\n readonly reclaimedBlobStorageKeys: readonly string[];\n }\n | null;\n\ninterface ContainerDocumentPurgeRuntime\n extends Pick<\n ContainerContentsWorkflowRuntime,\n | \"auth\"\n | \"crypto\"\n | \"infra\"\n | \"resolveTrustedUserIdentity\"\n | \"state\"\n | \"util\"\n > {\n apiClient: ContainerDocumentPurgeApi;\n}\n\ninterface PurgeRemoteContainerDocumentInput {\n beforeSubmit?: (() => Promise<boolean>) | undefined;\n documentId: string;\n expectedSubtreeRoot?: SubtreePurgeRoot | undefined;\n stillCurrent?: (() => boolean) | undefined;\n documentKind: StoredDocumentKind;\n noteId: string;\n persistence?: DocumentsPersistence | undefined;\n resolveProjectionUserKey: ProjectionUserKeyResolver;\n runtime: ContainerDocumentPurgeRuntime;\n}\n\nasync function deleteAbsentDocumentState(input: {\n readonly commitPurgeProof: (\n transactionExecSql: ContainerDocumentPurgeRuntime[\"infra\"][\"execSql\"],\n ) => Promise<void>;\n readonly documentId: string;\n readonly documentKind: StoredDocumentKind;\n readonly noteId: string;\n readonly persistence: DocumentsPersistence;\n readonly runtime: ContainerDocumentPurgeRuntime;\n}): Promise<boolean> {\n return input.persistence.deleteDocumentSideRowsIfAbsent(\n input.runtime.infra.execSql,\n input.noteId,\n input.documentId,\n async (transactionExecSql) => {\n await input.runtime.infra.documentProjectors.deleteStoredDocumentClientProjection(\n {\n documentKind: input.documentKind,\n execSql: transactionExecSql,\n localId: input.noteId,\n },\n );\n await input.commitPurgeProof(transactionExecSql);\n },\n );\n}\n\nasync function commitVerifiedDocumentPurge(input: {\n readonly commitPurgeProof: (\n transactionExecSql: ContainerDocumentPurgeRuntime[\"infra\"][\"execSql\"],\n ) => Promise<void>;\n readonly documentId: string;\n readonly documentKind: StoredDocumentKind;\n readonly noteId: string;\n readonly persistence: DocumentsPersistence;\n readonly runtime: ContainerDocumentPurgeRuntime;\n}): Promise<boolean> {\n await input.persistence.ensureSchema(input.runtime.infra.execSql);\n await ensureDocumentClientProjectionTables({\n documentProjectors: input.runtime.infra.documentProjectors,\n execSql: input.runtime.infra.execSql,\n });\n const expectedRecord = await input.persistence.loadDocument(\n input.runtime.infra.execSql,\n input.noteId,\n );\n if (expectedRecord && expectedRecord.documentId !== input.documentId) {\n throw new Error(\n \"Local document identity changed while its remote purge was committing\",\n );\n }\n const deleted = expectedRecord\n ? await deletePersistedDocument({\n beforeDeleteInTransaction: input.commitPurgeProof,\n documentProjectors: input.runtime.infra.documentProjectors,\n execSql: input.runtime.infra.execSql,\n expectedRecord,\n localId: input.noteId,\n persistence: input.persistence,\n })\n : await deleteAbsentDocumentState(input);\n if (!deleted) {\n throw new Error(\n \"Local document state changed while its remote purge was committing\",\n );\n }\n return true;\n}\n\nexport async function purgeRemoteContainerDocument(\n input: PurgeRemoteContainerDocumentInput,\n): Promise<DocumentPurgeResult> {\n const { documentId, noteId, runtime } = input;\n const persistence = input.persistence ?? defaultDocumentsPersistence;\n try {\n const author = resolveDocumentCreateAuthor(runtime);\n if (!author) {\n runtime.util.log(\n `Container contents: failed to purge note ${noteId} because the local signing context is unavailable`,\n );\n return null;\n }\n let deleted = false;\n const response = await purgeRemoteDocument({\n apiClient: runtime.apiClient,\n beforeSubmit: input.beforeSubmit,\n author,\n documentId,\n expectedSubtreeRoot: input.expectedSubtreeRoot,\n stillCurrent: input.stillCurrent,\n execSql: runtime.infra.execSql,\n onVerifiedPurge: async ({ commitPurgeProof }) => {\n deleted = await commitVerifiedDocumentPurge({\n commitPurgeProof,\n documentId,\n documentKind: input.documentKind,\n noteId,\n persistence,\n runtime,\n });\n },\n resolveProjectionUserKey: input.resolveProjectionUserKey,\n warmReferencedPrincipalPolicies:\n createRuntimePrincipalPolicyWarmer(runtime),\n });\n if (!response) {\n runtime.util.log(\n `Container contents: failed to purge note ${noteId} (document ${documentId})`,\n );\n return null;\n }\n if (deleted) {\n void reclaimDocumentOrphanBlobs(runtime, persistence);\n }\n runtime.util.log(\n `Container contents: purged note ${noteId} (document ${documentId})`,\n );\n return response;\n } catch (error) {\n // A cancelled verification is neither a failure nor a completed purge; the\n // caller that owns the generation decides what to do with it.\n rethrowProjectionVerificationCancelled(error);\n await reportAndRethrowKeyingVerificationError(\n error,\n runtime.util.reportSecurityIncident,\n {\n objectId: documentId,\n objectKind: \"document\",\n operation: \"document.purge\",\n },\n );\n runtime.util.log(\n `Container contents: failed to purge note ${noteId} (document ${documentId}): ${errorMessage(error)}`,\n );\n return null;\n }\n}\n\ninterface ContainerDocumentLocalPurgeRuntime\n extends Pick<ContainerContentsWorkflowRuntime, \"infra\" | \"util\"> {}\n\nexport async function purgeLocalContainerDocument(input: {\n beforeDeleteInTransaction?: Parameters<\n typeof deletePersistedDocument\n >[0][\"beforeDeleteInTransaction\"];\n noteId: string;\n expectedContainerId?: string | null | undefined;\n persistence?: DocumentsPersistence | undefined;\n runtime: ContainerDocumentLocalPurgeRuntime;\n}): Promise<DocumentPurgeResult> {\n const { noteId, runtime } = input;\n const persistence = input.persistence ?? defaultDocumentsPersistence;\n try {\n await persistence.ensureSchema(runtime.infra.execSql);\n const expectedRecord = await persistence.loadDocument(\n runtime.infra.execSql,\n noteId,\n );\n if (\n !expectedRecord ||\n expectedRecord.documentId !== null ||\n (input.expectedContainerId !== undefined &&\n expectedRecord.containerId !== input.expectedContainerId)\n ) {\n runtime.util.log(\n `Container contents: local-only purge refused for note ${noteId} because it is absent or remote-backed`,\n );\n return null;\n }\n const deleted = await deletePersistedDocument({\n beforeDeleteInTransaction: input.beforeDeleteInTransaction,\n documentProjectors: runtime.infra.documentProjectors,\n execSql: runtime.infra.execSql,\n expectedRecord,\n localId: noteId,\n persistence,\n });\n if (!deleted) {\n runtime.util.log(\n `Container contents: local-only purge refused for note ${noteId} because its identity changed`,\n );\n return null;\n }\n if (deleted) {\n void reclaimDocumentOrphanBlobs(runtime, persistence);\n }\n runtime.util.log(`Container contents: purged local-only note ${noteId}`);\n return {\n documentId: noteId,\n purgedAt: new Date().toISOString(),\n reclaimedBlobStorageKeys: [],\n };\n } catch (error) {\n runtime.util.log(\n `Container contents: failed to purge local-only note ${noteId}: ${errorMessage(error)}`,\n );\n return null;\n }\n}\n"]}
@@ -0,0 +1,173 @@
1
+ import { DOCUMENT_NOT_FOUND_ERROR_CODE, } from "../../../internal/validators/response/index.js";
2
+ import { assertDocumentWriterProjectionConsistent } from "../../../data/documents/shared/projection.js";
3
+ import { uniqueSortedStrings } from "../../../data/documents/shared/readers.js";
4
+ import { ProjectionDependencyUnavailableError } from "../../../data/keyingProjectionVerification/dependencyUnavailable.js";
5
+ import { reportKeyingVerificationErrorInCauseChain } from "../../../data/keyingProjectionVerification/error.js";
6
+ import { createProjectionUserKeyResolver } from "../../../data/keyingProjectionVerification/userKeyResolver.js";
7
+ import { loadDocumentPurgeCheckpoint } from "../../../data/persistence/documentPurgeCheckpointPersistence.js";
8
+ import { createRuntimePrincipalPolicyWarmer } from "../../principals/runtimePolicyWarmer.js";
9
+ import { documentHeadMatchesOrganization } from "../documentDiscovery/documentHeadScope.js";
10
+ export const HEAD_LINK_SET_LOAD_CONCURRENCY = 4;
11
+ /**
12
+ * Head loads per settle. Tombstones beyond it stay unverified and are held
13
+ * for a later, backed-off retry, so a bulk move out of a folder does not cost
14
+ * every device an unbounded burst of fetches before the watermark advances.
15
+ */
16
+ export const HEAD_LINK_SET_LOADS_PER_RUN = 32;
17
+ async function verifiedHeadLinkSet(runtime, deps, documentId, projection) {
18
+ const verified = {};
19
+ await deps.assertDocumentWriterProjectionConsistent(projection, {
20
+ // Only the link set is read; a bundle wrapped to superseded KEK targets
21
+ // still carries the signed head.
22
+ allowStaleContentKeyBundle: true,
23
+ execSql: runtime.infra.execSql,
24
+ onVerifiedAuthorization: (authorization) => {
25
+ const head = authorization.documentManifestByHash.get(projection.documentManifest.manifestHash);
26
+ if (head && head.state.documentId === documentId) {
27
+ verified.value = {
28
+ organizationId: head.state.organizationId,
29
+ accessEpoch: head.state.epoch,
30
+ accessStateHash: head.manifestHash,
31
+ linkedContainerIds: uniqueSortedStrings(head.state.linkedContainerIds),
32
+ };
33
+ }
34
+ },
35
+ resolveProjectionUserKey: createProjectionUserKeyResolver(runtime),
36
+ warmReferencedPrincipalPolicies: createRuntimePrincipalPolicyWarmer(runtime),
37
+ });
38
+ if (!verified.value) {
39
+ throw new Error("Tombstone evidence lacks a verified document head");
40
+ }
41
+ return verified.value;
42
+ }
43
+ async function reportUnavailableHead(runtime, documentId, error) {
44
+ const integrityFailure = await reportKeyingVerificationErrorInCauseChain(error, runtime.util.reportSecurityIncident, {
45
+ objectId: documentId,
46
+ objectKind: "document",
47
+ operation: "document.tombstone-evidence",
48
+ });
49
+ try {
50
+ if (!integrityFailure &&
51
+ error instanceof ProjectionDependencyUnavailableError) {
52
+ // A policy can advance without changing this document's hash. Drop its
53
+ // cached evidence so the held head can recover on the next run.
54
+ runtime.apiClient.evictDocumentWriterProjection(documentId);
55
+ runtime.util.log(`Container contents: tombstone evidence for document ${documentId} is awaiting current policy history`);
56
+ return;
57
+ }
58
+ runtime.util.logError?.("Container contents: tombstone evidence is unavailable", error);
59
+ }
60
+ catch {
61
+ // A host logger that throws must not fail the discovery pass.
62
+ }
63
+ }
64
+ export function createDocumentHeadLinkSetLoader(runtime, deps = {
65
+ assertDocumentWriterProjectionConsistent,
66
+ loadDocumentPurgeCheckpoint,
67
+ }) {
68
+ return async (documentId, expectedManifestHash) => {
69
+ try {
70
+ // A verified purge proof is terminal signed evidence that the document
71
+ // links nothing any more.
72
+ if (await deps.loadDocumentPurgeCheckpoint(runtime.infra.execSql, documentId)) {
73
+ return {
74
+ organizationId: null,
75
+ accessEpoch: Number.MAX_SAFE_INTEGER,
76
+ linkedContainerIds: [],
77
+ };
78
+ }
79
+ // Tombstones require a fresh head. Listings can reuse a matching cached
80
+ // projection, whose signature and local checkpoint are still verified.
81
+ if (!expectedManifestHash)
82
+ runtime.apiClient.evictDocumentWriterProjection(documentId);
83
+ let result = await runtime.apiClient.getDocumentWriterProjectionResult(documentId, { reportErrors: false });
84
+ if (expectedManifestHash &&
85
+ result.ok &&
86
+ result.data.documentManifest.manifestHash !== expectedManifestHash) {
87
+ runtime.apiClient.evictDocumentWriterProjection(documentId);
88
+ result = await runtime.apiClient.getDocumentWriterProjectionResult(documentId, { reportErrors: false });
89
+ }
90
+ if (!result.ok) {
91
+ if (result.status === 404 &&
92
+ result.code === DOCUMENT_NOT_FOUND_ERROR_CODE)
93
+ return "not-found";
94
+ runtime.util.log(`Container contents: tombstone evidence for document ${documentId} is unavailable (${result.status ?? "offline"})`);
95
+ return null;
96
+ }
97
+ return await verifiedHeadLinkSet(runtime, deps, documentId, result.data);
98
+ }
99
+ catch (error) {
100
+ // Any failure leaves the tombstone unverified (held and retried); a
101
+ // thrown error here must not fail the whole discovery pass.
102
+ await reportUnavailableHead(runtime, documentId, error);
103
+ return null;
104
+ }
105
+ };
106
+ }
107
+ function judgeTombstones(tombstones, head) {
108
+ return tombstones.map((tombstone) => {
109
+ if (head === null) {
110
+ return { kind: "unverified", tombstone };
111
+ }
112
+ if (head.linkedContainerIds.includes(tombstone.containerId)) {
113
+ return {
114
+ kind: "refuted",
115
+ linkedContainerIds: head.linkedContainerIds,
116
+ tombstone,
117
+ };
118
+ }
119
+ return {
120
+ kind: "verified",
121
+ tombstone: {
122
+ ...tombstone,
123
+ accessEpoch: head.accessEpoch,
124
+ linkedContainerIds: head.linkedContainerIds,
125
+ },
126
+ };
127
+ });
128
+ }
129
+ /**
130
+ * Judge listing tombstones against each document's verified head link set,
131
+ * fetched once per document with bounded concurrency and a per-run cap. A
132
+ * head whose epoch is below local document state is no evidence: it may be a
133
+ * lagging replica or a replay, and applying it could delete rows a newer
134
+ * listing or settled move wrote.
135
+ */
136
+ export function createContainerDocumentTombstoneVerifier(organizationId, loadDocumentHeadLinkSet, loadLocalDocumentAccessEpoch) {
137
+ return async (tombstones) => {
138
+ const byDocumentId = new Map();
139
+ for (const tombstone of tombstones) {
140
+ const group = byDocumentId.get(tombstone.documentId) ?? [];
141
+ group.push(tombstone);
142
+ byDocumentId.set(tombstone.documentId, group);
143
+ }
144
+ const groups = [...byDocumentId.entries()];
145
+ const verdicts = groups.map(([, group], index) => index < HEAD_LINK_SET_LOADS_PER_RUN
146
+ ? judgeTombstones(group, null)
147
+ : group.map((tombstone) => ({ kind: "deferred", tombstone })));
148
+ let next = 0;
149
+ const worker = async () => {
150
+ while (next < Math.min(groups.length, HEAD_LINK_SET_LOADS_PER_RUN)) {
151
+ const index = next++;
152
+ const entry = groups[index];
153
+ if (!entry)
154
+ break;
155
+ const [documentId, group] = entry;
156
+ const head = await loadDocumentHeadLinkSet(documentId);
157
+ if (head === null || head === "not-found")
158
+ continue;
159
+ if (!documentHeadMatchesOrganization(head, organizationId))
160
+ continue;
161
+ // A local-state read that fails is treated like an unavailable head:
162
+ // the tombstones stay held rather than failing the discovery pass.
163
+ const localEpoch = await loadLocalDocumentAccessEpoch(documentId).catch(() => Number.MAX_SAFE_INTEGER);
164
+ if (head.accessEpoch < localEpoch)
165
+ continue;
166
+ verdicts[index] = judgeTombstones(group, head);
167
+ }
168
+ };
169
+ await Promise.all(Array.from({ length: Math.min(HEAD_LINK_SET_LOAD_CONCURRENCY, groups.length) }, worker));
170
+ return verdicts.flat();
171
+ };
172
+ }
173
+ //# sourceMappingURL=documentTombstoneEvidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTombstoneEvidence.js","sourceRoot":"","sources":["documentTombstoneEvidence.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DOCUMENT_NOT_FOUND_ERROR_CODE,\n type DocumentWriterProjectionResponse,\n} from \"@tearleads/validators/response\";\nimport { assertDocumentWriterProjectionConsistent } from \"../../../data/documents/shared/projection\";\nimport { uniqueSortedStrings } from \"../../../data/documents/shared/readers\";\nimport { ProjectionDependencyUnavailableError } from \"../../../data/keyingProjectionVerification/dependencyUnavailable\";\nimport { reportKeyingVerificationErrorInCauseChain } from \"../../../data/keyingProjectionVerification/error\";\nimport { createProjectionUserKeyResolver } from \"../../../data/keyingProjectionVerification/userKeyResolver\";\nimport { loadDocumentPurgeCheckpoint } from \"../../../data/persistence/documentPurgeCheckpointPersistence\";\nimport { createRuntimePrincipalPolicyWarmer } from \"../../principals/runtimePolicyWarmer\";\nimport type {\n ContainerDocumentTombstone,\n ContainerDocumentTombstoneVerdict,\n ContainerDocumentTombstoneVerifier,\n} from \"../documentDiscovery/documentDiscoveryTypes\";\nimport { documentHeadMatchesOrganization } from \"../documentDiscovery/documentHeadScope\";\nimport type { ContainerContentsWorkflowRuntime } from \"../runtime\";\n\nexport interface VerifiedDocumentHeadLinkSet {\n readonly organizationId: string | null;\n readonly accessEpoch: number;\n /** Present for a signed head; a terminal purge has no live access state. */\n readonly accessStateHash?: string;\n readonly linkedContainerIds: ReadonlyArray<string>;\n}\n\n/**\n * The document's verified head link set, or `null` when no verified head is\n * available: the projection could not be fetched (the requester may no\n * longer read the document, or it was purged) or failed verification.\n */\nexport type DocumentHeadLinkSetLoader = (\n documentId: string,\n expectedManifestHash?: string,\n) => Promise<VerifiedDocumentHeadLinkSet | \"not-found\" | null>;\n\n/** The highest access epoch local state records for the document. */\nexport type LocalDocumentAccessEpochLoader = (\n documentId: string,\n) => Promise<number>;\n\nexport interface DocumentHeadLinkSetLoaderDeps {\n readonly assertDocumentWriterProjectionConsistent: typeof assertDocumentWriterProjectionConsistent;\n readonly loadDocumentPurgeCheckpoint: typeof loadDocumentPurgeCheckpoint;\n}\n\nexport const HEAD_LINK_SET_LOAD_CONCURRENCY = 4;\n/**\n * Head loads per settle. Tombstones beyond it stay unverified and are held\n * for a later, backed-off retry, so a bulk move out of a folder does not cost\n * every device an unbounded burst of fetches before the watermark advances.\n */\nexport const HEAD_LINK_SET_LOADS_PER_RUN = 32;\n\nasync function verifiedHeadLinkSet(\n runtime: ContainerContentsWorkflowRuntime,\n deps: DocumentHeadLinkSetLoaderDeps,\n documentId: string,\n projection: DocumentWriterProjectionResponse,\n): Promise<VerifiedDocumentHeadLinkSet> {\n const verified: { value?: VerifiedDocumentHeadLinkSet } = {};\n await deps.assertDocumentWriterProjectionConsistent(projection, {\n // Only the link set is read; a bundle wrapped to superseded KEK targets\n // still carries the signed head.\n allowStaleContentKeyBundle: true,\n execSql: runtime.infra.execSql,\n onVerifiedAuthorization: (authorization) => {\n const head = authorization.documentManifestByHash.get(\n projection.documentManifest.manifestHash,\n );\n if (head && head.state.documentId === documentId) {\n verified.value = {\n organizationId: head.state.organizationId,\n accessEpoch: head.state.epoch,\n accessStateHash: head.manifestHash,\n linkedContainerIds: uniqueSortedStrings(\n head.state.linkedContainerIds,\n ),\n };\n }\n },\n resolveProjectionUserKey: createProjectionUserKeyResolver(runtime),\n warmReferencedPrincipalPolicies:\n createRuntimePrincipalPolicyWarmer(runtime),\n });\n if (!verified.value) {\n throw new Error(\"Tombstone evidence lacks a verified document head\");\n }\n return verified.value;\n}\n\nasync function reportUnavailableHead(\n runtime: ContainerContentsWorkflowRuntime,\n documentId: string,\n error: unknown,\n): Promise<void> {\n const integrityFailure = await reportKeyingVerificationErrorInCauseChain(\n error,\n runtime.util.reportSecurityIncident,\n {\n objectId: documentId,\n objectKind: \"document\",\n operation: \"document.tombstone-evidence\",\n },\n );\n try {\n if (\n !integrityFailure &&\n error instanceof ProjectionDependencyUnavailableError\n ) {\n // A policy can advance without changing this document's hash. Drop its\n // cached evidence so the held head can recover on the next run.\n runtime.apiClient.evictDocumentWriterProjection(documentId);\n runtime.util.log(\n `Container contents: tombstone evidence for document ${documentId} is awaiting current policy history`,\n );\n return;\n }\n runtime.util.logError?.(\n \"Container contents: tombstone evidence is unavailable\",\n error,\n );\n } catch {\n // A host logger that throws must not fail the discovery pass.\n }\n}\n\nexport function createDocumentHeadLinkSetLoader(\n runtime: ContainerContentsWorkflowRuntime,\n deps: DocumentHeadLinkSetLoaderDeps = {\n assertDocumentWriterProjectionConsistent,\n loadDocumentPurgeCheckpoint,\n },\n): DocumentHeadLinkSetLoader {\n return async (documentId, expectedManifestHash) => {\n try {\n // A verified purge proof is terminal signed evidence that the document\n // links nothing any more.\n if (\n await deps.loadDocumentPurgeCheckpoint(\n runtime.infra.execSql,\n documentId,\n )\n ) {\n return {\n organizationId: null,\n accessEpoch: Number.MAX_SAFE_INTEGER,\n linkedContainerIds: [],\n };\n }\n // Tombstones require a fresh head. Listings can reuse a matching cached\n // projection, whose signature and local checkpoint are still verified.\n if (!expectedManifestHash)\n runtime.apiClient.evictDocumentWriterProjection(documentId);\n let result = await runtime.apiClient.getDocumentWriterProjectionResult(\n documentId,\n { reportErrors: false },\n );\n if (\n expectedManifestHash &&\n result.ok &&\n result.data.documentManifest.manifestHash !== expectedManifestHash\n ) {\n runtime.apiClient.evictDocumentWriterProjection(documentId);\n result = await runtime.apiClient.getDocumentWriterProjectionResult(\n documentId,\n { reportErrors: false },\n );\n }\n if (!result.ok) {\n if (\n result.status === 404 &&\n result.code === DOCUMENT_NOT_FOUND_ERROR_CODE\n )\n return \"not-found\";\n runtime.util.log(\n `Container contents: tombstone evidence for document ${documentId} is unavailable (${result.status ?? \"offline\"})`,\n );\n return null;\n }\n return await verifiedHeadLinkSet(runtime, deps, documentId, result.data);\n } catch (error) {\n // Any failure leaves the tombstone unverified (held and retried); a\n // thrown error here must not fail the whole discovery pass.\n await reportUnavailableHead(runtime, documentId, error);\n return null;\n }\n };\n}\n\nfunction judgeTombstones(\n tombstones: ReadonlyArray<ContainerDocumentTombstone>,\n head: VerifiedDocumentHeadLinkSet | null,\n): ContainerDocumentTombstoneVerdict[] {\n return tombstones.map((tombstone): ContainerDocumentTombstoneVerdict => {\n if (head === null) {\n return { kind: \"unverified\", tombstone };\n }\n if (head.linkedContainerIds.includes(tombstone.containerId)) {\n return {\n kind: \"refuted\",\n linkedContainerIds: head.linkedContainerIds,\n tombstone,\n };\n }\n return {\n kind: \"verified\",\n tombstone: {\n ...tombstone,\n accessEpoch: head.accessEpoch,\n linkedContainerIds: head.linkedContainerIds,\n },\n };\n });\n}\n\n/**\n * Judge listing tombstones against each document's verified head link set,\n * fetched once per document with bounded concurrency and a per-run cap. A\n * head whose epoch is below local document state is no evidence: it may be a\n * lagging replica or a replay, and applying it could delete rows a newer\n * listing or settled move wrote.\n */\nexport function createContainerDocumentTombstoneVerifier(\n organizationId: string | undefined,\n loadDocumentHeadLinkSet: DocumentHeadLinkSetLoader,\n loadLocalDocumentAccessEpoch: LocalDocumentAccessEpochLoader,\n): ContainerDocumentTombstoneVerifier {\n return async (tombstones) => {\n const byDocumentId = new Map<string, ContainerDocumentTombstone[]>();\n for (const tombstone of tombstones) {\n const group = byDocumentId.get(tombstone.documentId) ?? [];\n group.push(tombstone);\n byDocumentId.set(tombstone.documentId, group);\n }\n const groups = [...byDocumentId.entries()];\n const verdicts: ContainerDocumentTombstoneVerdict[][] = groups.map(\n ([, group], index): ContainerDocumentTombstoneVerdict[] =>\n index < HEAD_LINK_SET_LOADS_PER_RUN\n ? judgeTombstones(group, null)\n : group.map((tombstone) => ({ kind: \"deferred\", tombstone })),\n );\n let next = 0;\n const worker = async () => {\n while (next < Math.min(groups.length, HEAD_LINK_SET_LOADS_PER_RUN)) {\n const index = next++;\n const entry = groups[index];\n if (!entry) break;\n const [documentId, group] = entry;\n const head = await loadDocumentHeadLinkSet(documentId);\n if (head === null || head === \"not-found\") continue;\n if (!documentHeadMatchesOrganization(head, organizationId)) continue;\n // A local-state read that fails is treated like an unavailable head:\n // the tombstones stay held rather than failing the discovery pass.\n const localEpoch = await loadLocalDocumentAccessEpoch(documentId).catch(\n () => Number.MAX_SAFE_INTEGER,\n );\n if (head.accessEpoch < localEpoch) continue;\n verdicts[index] = judgeTombstones(group, head);\n }\n };\n await Promise.all(\n Array.from(\n { length: Math.min(HEAD_LINK_SET_LOAD_CONCURRENCY, groups.length) },\n worker,\n ),\n );\n return verdicts.flat();\n };\n}\n"]}
@@ -0,0 +1,94 @@
1
+ import { containerDocumentPlacementKey as placementKey } from "../../../data/persistence/documents/containerDocumentTombstoneHoldsPersistence.js";
2
+ function dedupePlacements(placements) {
3
+ const seen = new Set();
4
+ return placements.filter((placement) => {
5
+ const key = placementKey(placement);
6
+ if (seen.has(key))
7
+ return false;
8
+ seen.add(key);
9
+ return true;
10
+ });
11
+ }
12
+ /**
13
+ * One candidate per placement the device actually holds; the newest server
14
+ * timestamp wins. A tombstone for a placement this device never had has
15
+ * nothing to remove or hide, so its head is not fetched.
16
+ */
17
+ async function mergeTombstoneCandidates(store, listed, held) {
18
+ const known = new Set((await store.listKnownContainerDocumentPlacements(listed)).map(placementKey));
19
+ const byPlacement = new Map();
20
+ for (const tombstone of [
21
+ ...held,
22
+ ...listed.filter((tombstone) => known.has(placementKey(tombstone))),
23
+ ]) {
24
+ const key = placementKey(tombstone);
25
+ const current = byPlacement.get(key);
26
+ if (!current ||
27
+ Date.parse(current.updatedAt) < Date.parse(tombstone.updatedAt)) {
28
+ byPlacement.set(key, tombstone);
29
+ }
30
+ }
31
+ return [...byPlacement.values()];
32
+ }
33
+ function assertVerdictsCoverCandidates(candidates, verdicts) {
34
+ const verdictKeys = new Set(verdicts.map((verdict) => placementKey(verdict.tombstone)));
35
+ if (verdictKeys.size !== verdicts.length ||
36
+ verdictKeys.size !== candidates.length ||
37
+ candidates.some((candidate) => !verdictKeys.has(placementKey(candidate)))) {
38
+ throw new Error("Container document tombstone verification must return one verdict per tombstone");
39
+ }
40
+ }
41
+ /**
42
+ * Apply a tombstone only when the signed head omits its container. Unavailable
43
+ * heads leave hidden placements. A head that still links a container keeps its
44
+ * placement visible, but retains a backed-off retry: even an uncached signed
45
+ * head can lag the listing, so its refutation must not discard an honest move.
46
+ * Listing items pass their own signed-head gate before reaching persistence.
47
+ */
48
+ export async function settleContainerDocumentTombstones(input) {
49
+ const { store } = input;
50
+ const held = await store.listHeldContainerDocumentTombstones(input.containerIds);
51
+ const candidates = await mergeTombstoneCandidates(store, input.tombstones, held);
52
+ if (candidates.length === 0) {
53
+ return [];
54
+ }
55
+ const verdicts = await store.verifyContainerDocumentTombstones(candidates);
56
+ assertVerdictsCoverCandidates(candidates, verdicts);
57
+ const verified = verdicts.flatMap((verdict) => verdict.kind === "verified" ? [verdict.tombstone] : []);
58
+ const refuted = verdicts.flatMap((verdict) => verdict.kind === "refuted" ? [verdict.tombstone] : []);
59
+ const unverified = verdicts.flatMap((verdict) => verdict.kind === "unverified" ? [verdict.tombstone] : []);
60
+ const deferred = verdicts.flatMap((verdict) => verdict.kind === "deferred"
61
+ ? [{ ...verdict.tombstone, deferred: true }]
62
+ : []);
63
+ // A loaded head is evidence for every placement it links, including holds
64
+ // on this document that were not due this run: make them visible while
65
+ // retaining each retry, since the head may lag any of those tombstones.
66
+ const headLinkedPlacements = verdicts.flatMap((verdict) => {
67
+ if (verdict.kind !== "verified" && verdict.kind !== "refuted")
68
+ return [];
69
+ const linked = verdict.kind === "verified"
70
+ ? verdict.tombstone.linkedContainerIds
71
+ : verdict.linkedContainerIds;
72
+ return linked.map((containerId) => ({
73
+ containerId,
74
+ documentId: verdict.tombstone.documentId,
75
+ }));
76
+ });
77
+ const summaries = verified.length > 0
78
+ ? await store.applyContainerDocumentTombstones(verified)
79
+ : [];
80
+ const retryKeys = new Set(refuted.map(placementKey));
81
+ const visibleRetries = dedupePlacements(headLinkedPlacements).filter((placement) => !retryKeys.has(placementKey(placement)));
82
+ if (visibleRetries.length > 0) {
83
+ await store.refuteContainerDocumentTombstoneHolds(visibleRetries);
84
+ }
85
+ const retries = [
86
+ ...unverified,
87
+ ...deferred,
88
+ ...refuted.map((tombstone) => ({ ...tombstone, refuted: true })),
89
+ ];
90
+ if (retries.length > 0)
91
+ await store.holdContainerDocumentTombstones(retries);
92
+ return summaries;
93
+ }
94
+ //# sourceMappingURL=documentTombstoneGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentTombstoneGate.js","sourceRoot":"","sources":["documentTombstoneGate.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DocumentSummary } from \"../../../data/documents/documentSummary\";\nimport { containerDocumentPlacementKey as placementKey } from \"../../../data/persistence/documents/containerDocumentTombstoneHoldsPersistence\";\nimport type {\n ContainerDocumentPlacement,\n ContainerDocumentTombstone,\n ContainerDocumentTombstoneVerdict,\n DiscoverContainerDocumentsOptions,\n} from \"../documentDiscovery/documentDiscoveryTypes\";\n\ntype TombstoneGateStore = Pick<\n DiscoverContainerDocumentsOptions,\n | \"applyContainerDocumentTombstones\"\n | \"holdContainerDocumentTombstones\"\n | \"listHeldContainerDocumentTombstones\"\n | \"listKnownContainerDocumentPlacements\"\n | \"refuteContainerDocumentTombstoneHolds\"\n | \"verifyContainerDocumentTombstones\"\n>;\n\nfunction dedupePlacements<T extends ContainerDocumentPlacement>(\n placements: ReadonlyArray<T>,\n): T[] {\n const seen = new Set<string>();\n return placements.filter((placement) => {\n const key = placementKey(placement);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n}\n\n/**\n * One candidate per placement the device actually holds; the newest server\n * timestamp wins. A tombstone for a placement this device never had has\n * nothing to remove or hide, so its head is not fetched.\n */\nasync function mergeTombstoneCandidates(\n store: TombstoneGateStore,\n listed: ReadonlyArray<ContainerDocumentTombstone>,\n held: ReadonlyArray<ContainerDocumentTombstone>,\n): Promise<ContainerDocumentTombstone[]> {\n const known = new Set(\n (await store.listKnownContainerDocumentPlacements(listed)).map(\n placementKey,\n ),\n );\n const byPlacement = new Map<string, ContainerDocumentTombstone>();\n for (const tombstone of [\n ...held,\n ...listed.filter((tombstone) => known.has(placementKey(tombstone))),\n ]) {\n const key = placementKey(tombstone);\n const current = byPlacement.get(key);\n if (\n !current ||\n Date.parse(current.updatedAt) < Date.parse(tombstone.updatedAt)\n ) {\n byPlacement.set(key, tombstone);\n }\n }\n return [...byPlacement.values()];\n}\n\nfunction assertVerdictsCoverCandidates(\n candidates: ReadonlyArray<ContainerDocumentTombstone>,\n verdicts: ReadonlyArray<ContainerDocumentTombstoneVerdict>,\n): void {\n const verdictKeys = new Set(\n verdicts.map((verdict) => placementKey(verdict.tombstone)),\n );\n if (\n verdictKeys.size !== verdicts.length ||\n verdictKeys.size !== candidates.length ||\n candidates.some((candidate) => !verdictKeys.has(placementKey(candidate)))\n ) {\n throw new Error(\n \"Container document tombstone verification must return one verdict per tombstone\",\n );\n }\n}\n\n/**\n * Apply a tombstone only when the signed head omits its container. Unavailable\n * heads leave hidden placements. A head that still links a container keeps its\n * placement visible, but retains a backed-off retry: even an uncached signed\n * head can lag the listing, so its refutation must not discard an honest move.\n * Listing items pass their own signed-head gate before reaching persistence.\n */\nexport async function settleContainerDocumentTombstones(input: {\n containerIds: ReadonlyArray<string>;\n store: TombstoneGateStore;\n tombstones: ReadonlyArray<ContainerDocumentTombstone>;\n}): Promise<ReadonlyArray<DocumentSummary>> {\n const { store } = input;\n const held = await store.listHeldContainerDocumentTombstones(\n input.containerIds,\n );\n const candidates = await mergeTombstoneCandidates(\n store,\n input.tombstones,\n held,\n );\n if (candidates.length === 0) {\n return [];\n }\n\n const verdicts = await store.verifyContainerDocumentTombstones(candidates);\n assertVerdictsCoverCandidates(candidates, verdicts);\n const verified = verdicts.flatMap((verdict) =>\n verdict.kind === \"verified\" ? [verdict.tombstone] : [],\n );\n const refuted = verdicts.flatMap((verdict) =>\n verdict.kind === \"refuted\" ? [verdict.tombstone] : [],\n );\n const unverified = verdicts.flatMap((verdict) =>\n verdict.kind === \"unverified\" ? [verdict.tombstone] : [],\n );\n const deferred = verdicts.flatMap((verdict) =>\n verdict.kind === \"deferred\"\n ? [{ ...verdict.tombstone, deferred: true }]\n : [],\n );\n // A loaded head is evidence for every placement it links, including holds\n // on this document that were not due this run: make them visible while\n // retaining each retry, since the head may lag any of those tombstones.\n const headLinkedPlacements = verdicts.flatMap((verdict) => {\n if (verdict.kind !== \"verified\" && verdict.kind !== \"refuted\") return [];\n const linked =\n verdict.kind === \"verified\"\n ? verdict.tombstone.linkedContainerIds\n : verdict.linkedContainerIds;\n return linked.map((containerId) => ({\n containerId,\n documentId: verdict.tombstone.documentId,\n }));\n });\n\n const summaries =\n verified.length > 0\n ? await store.applyContainerDocumentTombstones(verified)\n : [];\n const retryKeys = new Set(refuted.map(placementKey));\n const visibleRetries = dedupePlacements(headLinkedPlacements).filter(\n (placement) => !retryKeys.has(placementKey(placement)),\n );\n if (visibleRetries.length > 0) {\n await store.refuteContainerDocumentTombstoneHolds(visibleRetries);\n }\n const retries = [\n ...unverified,\n ...deferred,\n ...refuted.map((tombstone) => ({ ...tombstone, refuted: true })),\n ];\n if (retries.length > 0) await store.holdContainerDocumentTombstones(retries);\n return summaries;\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { assertProjectionVerificationCurrent } from "../../../data/keyingProjectionVerification/types.js";
2
- import { commitCurrentGroupPolicyMutation } from "../../organizations/commitCurrentGroupPolicyMutation.js";
3
- import { createRuntimeGroupMetadataAccess } from "../../organizations/groupMetadataRuntime.js";
4
- import { buildSetGroupContainerGrantPolicyRequest } from "../../organizations/groupPolicyRequests.js";
5
- import { preparePrincipalContainerRematerializationBatch, } from "../../organizations/principalContainerRematerialization.js";
6
- import { groupPolicyNameMismatch } from "../../organizations/principalPolicyRequest.js";
2
+ import { createRuntimeGroupMetadataAccess } from "../../organizations/groupMetadata/groupMetadataRuntime.js";
3
+ import { commitCurrentGroupPolicyMutation } from "../../organizations/groupPolicy/commitCurrentGroupPolicyMutation.js";
4
+ import { buildSetGroupContainerGrantPolicyRequest } from "../../organizations/groupPolicy/groupPolicyRequests.js";
5
+ import { groupPolicyNameMismatch } from "../../organizations/principalPolicy/principalPolicyRequest.js";
6
+ import { preparePrincipalContainerRematerializationBatch, } from "../../organizations/rematerialization/principalContainerRematerialization.js";
7
7
  import { GroupShareNameMismatchError } from "./sharePrincipalPolicy.js";
8
8
  /** Fresh mutation authority rechecks the chosen name before authoring a grant. */
9
9
  export async function commitCurrentShareGrant(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"currentShareGrantMutation.js","sourceRoot":"","sources":["currentShareGrantMutation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AACxG,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,EAAE,wCAAwC,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAEL,+CAA+C,GAChD,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAOrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAS7C;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC7C,IAAI,YAAY,KAAK,IAAI;QACvB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;IACJ,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC5C,IAAI,CAAC,cAAc;QACjB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,OAAO,KAAK,CAAC,MAAM,CACjB;QACE,OAAO,EAAE,KAAK,CAAC,gBAAgB;QAC/B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;QAC3C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACvC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACjD,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,2BAA2B,CAC/B,KAAK,CAAC,OAAO,EACb,KAAK,EACL,OAAO,EACP,YAAY,CACb,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,wCAAwC,CAAC;YAC7D,GAAG,OAAO;YACV,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;YACvC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB;YACrD,cAAc;SACf,CAAC,CAAC;QACH,MAAM,QAAQ,GAEV,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC;YACtD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,gBAAgB;YAC/B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;YAC3C,OAAO;YACP,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;YACvC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB;YACrD,cAAc;YACd,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;YAC5D,yBAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC9C,QAAQ,CAAC,KAAK,GAAG,MAAM,6BAA6B,CAClD,KAAK,EACL,OAAO,EACP,UAAU,EACV,KAAK,CAAC,sBAAsB,CAC7B,CAAC;gBACF,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GACT,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAC7B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAC5D,IAAI,CAAC,CAAC,CAAC;QACV,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,eAAe;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,IAAuE;IAEvE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,iBAAiB,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAuE,EACvE,KAA0D,EAC1D,OAA2C,EAC3C,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAC5C,OAAO,CAAC,aAAa,EACrB,YAAY,EACZ,gCAAgC,CAC9B,OAAO,EACP,KAAK,CAAC,MAAM,CAAC,cAAc,EAC3B,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,uBAAuB,CAChC,CAAC,QAAQ,CACX,CAAC;IACF,IAAI,QAAQ;QACV,MAAM,IAAI,2BAA2B,CACnC,mEAAmE,CACpE,CAAC;IACJ,mCAAmC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,6BAA6B,CACpC,KAA0D,EAC1D,OAA2C,EAC3C,UAEkB,EAClB,sBAAsC;IAEtC,OAAO,+CAA+C,CAAC;QACrD,GAAG,KAAK;QACR,MAAM,EAAE;YACN,GAAG,IAAI,GAAG,CACR,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAChE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAU,CAC/C,CACF,CAAC,MAAM,EAAE;SACX;QACD,OAAO,EAAE,KAAK,CAAC,gBAAgB;QAC/B,UAAU;QACV,+BAA+B,EAAE,OAAO,CAAC,+BAA+B;QACxE,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,sBAAsB;KACvB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { MaterializedContainerSharePlan } from \"../../../data/containers/shared/types\";\nimport { assertProjectionVerificationCurrent } from \"../../../data/keyingProjectionVerification/types\";\nimport { commitCurrentGroupPolicyMutation } from \"../../organizations/commitCurrentGroupPolicyMutation\";\nimport { createRuntimeGroupMetadataAccess } from \"../../organizations/groupMetadataRuntime\";\nimport { buildSetGroupContainerGrantPolicyRequest } from \"../../organizations/groupPolicyRequests\";\nimport {\n type PreparedPrincipalContainerRematerializationBatch,\n preparePrincipalContainerRematerializationBatch,\n} from \"../../organizations/principalContainerRematerialization\";\nimport { groupPolicyNameMismatch } from \"../../organizations/principalPolicyRequest\";\nimport type {\n createRuntimeCurrentGroupMutation,\n RuntimeCurrentGroupMutationContext,\n} from \"../../organizations/runtimeCurrentGroupMutation\";\nimport type { createRuntimeCurrentSharePrincipalPolicy } from \"./currentSharePrincipalPolicy\";\nimport type { shareRemoteContainerWithGroup } from \"./share\";\nimport { GroupShareNameMismatchError } from \"./sharePrincipalPolicy\";\n\n/** Fresh mutation authority rechecks the chosen name before authoring a grant. */\nexport async function commitCurrentShareGrant(input: {\n readonly runtime: Parameters<\n typeof createRuntimeCurrentSharePrincipalPolicy\n >[0];\n readonly share: Parameters<typeof shareRemoteContainerWithGroup>[0];\n readonly recitationStillCurrent?: (() => boolean) | undefined;\n readonly mutate: NonNullable<\n ReturnType<typeof createRuntimeCurrentGroupMutation>\n >;\n}): ReturnType<typeof shareRemoteContainerWithGroup> {\n const share = input.share;\n const expectedName = share.expectedGroupName;\n if (expectedName === null)\n throw new Error(\n \"Minting a group grant requires the chosen group name; only a re-wrap of an existing signed grant may omit it\",\n );\n const signingKeyPair = share.signingKeyPair;\n if (!signingKeyPair)\n throw new Error(\n \"Container group share requires principal policy signing context\",\n );\n return input.mutate(\n {\n groupId: share.recipientGroupId,\n organizationId: share.author.organizationId,\n signerUserId: share.author.signerUserId,\n stillCurrent: share.stillCurrent ?? (() => true),\n },\n async (context) => {\n await assertCurrentShareGrantName(\n input.runtime,\n share,\n context,\n expectedName,\n );\n const request = await buildSetGroupContainerGrantPolicyRequest({\n ...context,\n accessLevel: share.accessLevel,\n containerId: share.containerId,\n signerUserId: share.author.signerUserId,\n signingFingerprint: share.author.signerKeyFingerprint,\n signingKeyPair,\n });\n const prepared: {\n batch?: PreparedPrincipalContainerRematerializationBatch;\n } = {};\n const response = await commitCurrentGroupPolicyMutation({\n apiClient: share.apiClient,\n context,\n groupId: share.recipientGroupId,\n organizationId: share.author.organizationId,\n request,\n signerUserId: share.author.signerUserId,\n signingFingerprint: share.author.signerKeyFingerprint,\n signingKeyPair,\n resolveTrustedUserIdentity: share.resolveTrustedUserIdentity,\n prepareContainerMutations: async (nextPolicy) => {\n prepared.batch = await prepareCurrentShareGrantBatch(\n share,\n context,\n nextPolicy,\n input.recitationStillCurrent,\n );\n return prepared.batch;\n },\n });\n const index =\n prepared.batch?.plans.findIndex(\n (planned) => planned.plan.containerId === share.containerId,\n ) ?? -1;\n const plan = prepared.batch?.plans[index];\n const acknowledgement = response.containerMutations[index];\n if (!plan || !acknowledgement || !isSharePlan(plan))\n throw new Error(\"Container group share acknowledgement is incomplete\");\n return {\n containerKey: plan.containerKey,\n plan: plan.plan,\n response: acknowledgement,\n };\n },\n );\n}\n\nfunction isSharePlan(\n plan: PreparedPrincipalContainerRematerializationBatch[\"plans\"][number],\n): plan is MaterializedContainerSharePlan {\n return plan.plan.body.eventType === \"container.grant\";\n}\n\nasync function assertCurrentShareGrantName(\n runtime: Parameters<typeof createRuntimeCurrentSharePrincipalPolicy>[0],\n share: Parameters<typeof shareRemoteContainerWithGroup>[0],\n context: RuntimeCurrentGroupMutationContext,\n expectedName: string,\n) {\n const mismatch = await groupPolicyNameMismatch(\n context.currentPolicy,\n expectedName,\n createRuntimeGroupMetadataAccess(\n runtime,\n share.author.organizationId,\n context.stillCurrent,\n context.verifyMetadataContainer,\n ).readName,\n );\n if (mismatch)\n throw new GroupShareNameMismatchError(\n \"Container share group name does not match the signed group policy\",\n );\n assertProjectionVerificationCurrent(context.stillCurrent);\n}\n\nfunction prepareCurrentShareGrantBatch(\n share: Parameters<typeof shareRemoteContainerWithGroup>[0],\n context: RuntimeCurrentGroupMutationContext,\n nextPolicy: Parameters<\n typeof preparePrincipalContainerRematerializationBatch\n >[0][\"nextPolicy\"],\n recitationStillCurrent?: () => boolean,\n) {\n return preparePrincipalContainerRematerializationBatch({\n ...share,\n grants: [\n ...new Map(\n [...context.currentPolicy.currentGrants, ...nextPolicy.grants].map(\n (grant) => [grant.containerId, grant] as const,\n ),\n ).values(),\n ],\n groupId: share.recipientGroupId,\n nextPolicy,\n resolveAuthoredPolicyReferences: context.resolveAuthoredPolicyReferences,\n stillCurrent: context.stillCurrent,\n recitationStillCurrent,\n });\n}\n"]}
1
+ {"version":3,"file":"currentShareGrantMutation.js","sourceRoot":"","sources":["currentShareGrantMutation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC;AACpH,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAK/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AACrG,OAAO,EAEL,+CAA+C,GAChD,MAAM,2EAA2E,CAAC;AAGnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAS7C;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC7C,IAAI,YAAY,KAAK,IAAI;QACvB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;IACJ,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC5C,IAAI,CAAC,cAAc;QACjB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,OAAO,KAAK,CAAC,MAAM,CACjB;QACE,OAAO,EAAE,KAAK,CAAC,gBAAgB;QAC/B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;QAC3C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACvC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACjD,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,2BAA2B,CAC/B,KAAK,CAAC,OAAO,EACb,KAAK,EACL,OAAO,EACP,YAAY,CACb,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,wCAAwC,CAAC;YAC7D,GAAG,OAAO;YACV,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;YACvC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB;YACrD,cAAc;SACf,CAAC,CAAC;QACH,MAAM,QAAQ,GAEV,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC;YACtD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,gBAAgB;YAC/B,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;YAC3C,OAAO;YACP,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;YACvC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAoB;YACrD,cAAc;YACd,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;YAC5D,yBAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC9C,QAAQ,CAAC,KAAK,GAAG,MAAM,6BAA6B,CAClD,KAAK,EACL,OAAO,EACP,UAAU,EACV,KAAK,CAAC,sBAAsB,CAC7B,CAAC;gBACF,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GACT,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAC7B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAC5D,IAAI,CAAC,CAAC,CAAC;QACV,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,eAAe;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,IAAuE;IAEvE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,iBAAiB,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAuE,EACvE,KAA0D,EAC1D,OAA2C,EAC3C,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAC5C,OAAO,CAAC,aAAa,EACrB,YAAY,EACZ,gCAAgC,CAC9B,OAAO,EACP,KAAK,CAAC,MAAM,CAAC,cAAc,EAC3B,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,uBAAuB,CAChC,CAAC,QAAQ,CACX,CAAC;IACF,IAAI,QAAQ;QACV,MAAM,IAAI,2BAA2B,CACnC,mEAAmE,CACpE,CAAC;IACJ,mCAAmC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,6BAA6B,CACpC,KAA0D,EAC1D,OAA2C,EAC3C,UAEkB,EAClB,sBAAsC;IAEtC,OAAO,+CAA+C,CAAC;QACrD,GAAG,KAAK;QACR,MAAM,EAAE;YACN,GAAG,IAAI,GAAG,CACR,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAChE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAU,CAC/C,CACF,CAAC,MAAM,EAAE;SACX;QACD,OAAO,EAAE,KAAK,CAAC,gBAAgB;QAC/B,UAAU;QACV,+BAA+B,EAAE,OAAO,CAAC,+BAA+B;QACxE,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,sBAAsB;KACvB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { MaterializedContainerSharePlan } from \"../../../data/containers/shared/types\";\nimport { assertProjectionVerificationCurrent } from \"../../../data/keyingProjectionVerification/types\";\nimport { createRuntimeGroupMetadataAccess } from \"../../organizations/groupMetadata/groupMetadataRuntime\";\nimport { commitCurrentGroupPolicyMutation } from \"../../organizations/groupPolicy/commitCurrentGroupPolicyMutation\";\nimport { buildSetGroupContainerGrantPolicyRequest } from \"../../organizations/groupPolicy/groupPolicyRequests\";\nimport type {\n createRuntimeCurrentGroupMutation,\n RuntimeCurrentGroupMutationContext,\n} from \"../../organizations/principalMutations/runtimeCurrentGroupMutation\";\nimport { groupPolicyNameMismatch } from \"../../organizations/principalPolicy/principalPolicyRequest\";\nimport {\n type PreparedPrincipalContainerRematerializationBatch,\n preparePrincipalContainerRematerializationBatch,\n} from \"../../organizations/rematerialization/principalContainerRematerialization\";\nimport type { createRuntimeCurrentSharePrincipalPolicy } from \"./currentSharePrincipalPolicy\";\nimport type { shareRemoteContainerWithGroup } from \"./share\";\nimport { GroupShareNameMismatchError } from \"./sharePrincipalPolicy\";\n\n/** Fresh mutation authority rechecks the chosen name before authoring a grant. */\nexport async function commitCurrentShareGrant(input: {\n readonly runtime: Parameters<\n typeof createRuntimeCurrentSharePrincipalPolicy\n >[0];\n readonly share: Parameters<typeof shareRemoteContainerWithGroup>[0];\n readonly recitationStillCurrent?: (() => boolean) | undefined;\n readonly mutate: NonNullable<\n ReturnType<typeof createRuntimeCurrentGroupMutation>\n >;\n}): ReturnType<typeof shareRemoteContainerWithGroup> {\n const share = input.share;\n const expectedName = share.expectedGroupName;\n if (expectedName === null)\n throw new Error(\n \"Minting a group grant requires the chosen group name; only a re-wrap of an existing signed grant may omit it\",\n );\n const signingKeyPair = share.signingKeyPair;\n if (!signingKeyPair)\n throw new Error(\n \"Container group share requires principal policy signing context\",\n );\n return input.mutate(\n {\n groupId: share.recipientGroupId,\n organizationId: share.author.organizationId,\n signerUserId: share.author.signerUserId,\n stillCurrent: share.stillCurrent ?? (() => true),\n },\n async (context) => {\n await assertCurrentShareGrantName(\n input.runtime,\n share,\n context,\n expectedName,\n );\n const request = await buildSetGroupContainerGrantPolicyRequest({\n ...context,\n accessLevel: share.accessLevel,\n containerId: share.containerId,\n signerUserId: share.author.signerUserId,\n signingFingerprint: share.author.signerKeyFingerprint,\n signingKeyPair,\n });\n const prepared: {\n batch?: PreparedPrincipalContainerRematerializationBatch;\n } = {};\n const response = await commitCurrentGroupPolicyMutation({\n apiClient: share.apiClient,\n context,\n groupId: share.recipientGroupId,\n organizationId: share.author.organizationId,\n request,\n signerUserId: share.author.signerUserId,\n signingFingerprint: share.author.signerKeyFingerprint,\n signingKeyPair,\n resolveTrustedUserIdentity: share.resolveTrustedUserIdentity,\n prepareContainerMutations: async (nextPolicy) => {\n prepared.batch = await prepareCurrentShareGrantBatch(\n share,\n context,\n nextPolicy,\n input.recitationStillCurrent,\n );\n return prepared.batch;\n },\n });\n const index =\n prepared.batch?.plans.findIndex(\n (planned) => planned.plan.containerId === share.containerId,\n ) ?? -1;\n const plan = prepared.batch?.plans[index];\n const acknowledgement = response.containerMutations[index];\n if (!plan || !acknowledgement || !isSharePlan(plan))\n throw new Error(\"Container group share acknowledgement is incomplete\");\n return {\n containerKey: plan.containerKey,\n plan: plan.plan,\n response: acknowledgement,\n };\n },\n );\n}\n\nfunction isSharePlan(\n plan: PreparedPrincipalContainerRematerializationBatch[\"plans\"][number],\n): plan is MaterializedContainerSharePlan {\n return plan.plan.body.eventType === \"container.grant\";\n}\n\nasync function assertCurrentShareGrantName(\n runtime: Parameters<typeof createRuntimeCurrentSharePrincipalPolicy>[0],\n share: Parameters<typeof shareRemoteContainerWithGroup>[0],\n context: RuntimeCurrentGroupMutationContext,\n expectedName: string,\n) {\n const mismatch = await groupPolicyNameMismatch(\n context.currentPolicy,\n expectedName,\n createRuntimeGroupMetadataAccess(\n runtime,\n share.author.organizationId,\n context.stillCurrent,\n context.verifyMetadataContainer,\n ).readName,\n );\n if (mismatch)\n throw new GroupShareNameMismatchError(\n \"Container share group name does not match the signed group policy\",\n );\n assertProjectionVerificationCurrent(context.stillCurrent);\n}\n\nfunction prepareCurrentShareGrantBatch(\n share: Parameters<typeof shareRemoteContainerWithGroup>[0],\n context: RuntimeCurrentGroupMutationContext,\n nextPolicy: Parameters<\n typeof preparePrincipalContainerRematerializationBatch\n >[0][\"nextPolicy\"],\n recitationStillCurrent?: () => boolean,\n) {\n return preparePrincipalContainerRematerializationBatch({\n ...share,\n grants: [\n ...new Map(\n [...context.currentPolicy.currentGrants, ...nextPolicy.grants].map(\n (grant) => [grant.containerId, grant] as const,\n ),\n ).values(),\n ],\n groupId: share.recipientGroupId,\n nextPolicy,\n resolveAuthoredPolicyReferences: context.resolveAuthoredPolicyReferences,\n stillCurrent: context.stillCurrent,\n recitationStillCurrent,\n });\n}\n"]}
@@ -2,12 +2,12 @@ import { KeyingVerificationError, } from "../../../internal/crypto/index.js";
2
2
  import { assertProjectionVerificationCurrent } from "../../../data/keyingProjectionVerification/types.js";
3
3
  import { advanceKeyingCheckpointsAtomically } from "../../../data/persistence/keyingCheckpointAdvancePersistence.js";
4
4
  import { principalHeadMatchesReference } from "../../../data/principals/organizationAuthorityDescriptor.js";
5
- import { createSelectedCurrentGroupMetadataContainerVerifier } from "../../organizations/currentGroupMetadataAuthority.js";
6
5
  import { loadCurrentOrganizationAuthority } from "../../organizations/currentOrganizationAuthority.js";
7
- import { createCurrentPrincipalMutationLease } from "../../organizations/currentPrincipalMutationLease.js";
8
- import { assertGroupMetadataBinding } from "../../organizations/groupMetadataBinding.js";
9
- import { createRuntimeGroupMetadataAccess } from "../../organizations/groupMetadataRuntime.js";
10
- import { groupPolicyNameMismatch, } from "../../organizations/principalPolicyRequest.js";
6
+ import { createSelectedCurrentGroupMetadataContainerVerifier } from "../../organizations/groupMetadata/currentGroupMetadataAuthority.js";
7
+ import { assertGroupMetadataBinding } from "../../organizations/groupMetadata/groupMetadataBinding.js";
8
+ import { createRuntimeGroupMetadataAccess } from "../../organizations/groupMetadata/groupMetadataRuntime.js";
9
+ import { createCurrentPrincipalMutationLease } from "../../organizations/principalMutations/currentPrincipalMutationLease.js";
10
+ import { groupPolicyNameMismatch, } from "../../organizations/principalPolicy/principalPolicyRequest.js";
11
11
  import { GroupShareNameMismatchError } from "./sharePrincipalPolicy.js";
12
12
  /** A share read need not be a group administrator; minting a grant checks that separately. */
13
13
  export function createRuntimeCurrentSharePrincipalPolicy(runtime) {
@@ -1 +1 @@
1
- {"version":3,"file":"currentSharePrincipalPolicy.js","sourceRoot":"","sources":["currentSharePrincipalPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n KeyingVerificationError,\n type ReferencedPrincipalHead,\n} from \"@tearleads/crypto\";\nimport { assertProjectionVerificationCurrent } from \"../../../data/keyingProjectionVerification/types\";\nimport { advanceKeyingCheckpointsAtomically } from \"../../../data/persistence/keyingCheckpointAdvancePersistence\";\nimport { principalHeadMatchesReference } from \"../../../data/principals/organizationAuthorityDescriptor\";\nimport { createSelectedCurrentGroupMetadataContainerVerifier } from \"../../organizations/currentGroupMetadataAuthority\";\nimport { loadCurrentOrganizationAuthority } from \"../../organizations/currentOrganizationAuthority\";\nimport { createCurrentPrincipalMutationLease } from \"../../organizations/currentPrincipalMutationLease\";\nimport { assertGroupMetadataBinding } from \"../../organizations/groupMetadataBinding\";\nimport { createRuntimeGroupMetadataAccess } from \"../../organizations/groupMetadataRuntime\";\nimport type { PrincipalMutationRecoveryApi } from \"../../organizations/principalMutationJournalManagement\";\nimport {\n type GroupPolicyNameReader,\n groupPolicyNameMismatch,\n} from \"../../organizations/principalPolicyRequest\";\nimport { GroupShareNameMismatchError } from \"./sharePrincipalPolicy\";\n\ntype CurrentShareRuntime = Parameters<\n typeof createRuntimeGroupMetadataAccess\n>[0] &\n Parameters<typeof createCurrentPrincipalMutationLease>[0] & {\n readonly apiClient: {\n readonly recoverPendingPrincipalMutation?:\n | PrincipalMutationRecoveryApi[\"recoverPendingPrincipalMutation\"]\n | undefined;\n };\n };\n\ninterface CurrentShareInput {\n readonly groupId: string;\n readonly organizationId: string;\n readonly expectedGroupHead?: ReferencedPrincipalHead | undefined;\n readonly expectedGroupName?: string | undefined;\n /** Trusted internal reader; it must authenticate the signed metadata container. */\n readonly readEncryptedName?: GroupPolicyNameReader | undefined;\n readonly stillCurrent: () => boolean;\n}\n\ntype CurrentGroup = Awaited<\n ReturnType<\n Awaited<ReturnType<typeof loadCurrentOrganizationAuthority>>[\"readGroup\"]\n >\n>;\n\nexport interface CurrentSharePrincipalPolicy {\n readonly current: CurrentGroup[\"current\"];\n readonly policy: CurrentGroup[\"policy\"];\n readonly checkpointPolicies: readonly CurrentGroup[\"policy\"][];\n readonly stillCurrent: () => boolean;\n}\n\n/** A share read need not be a group administrator; minting a grant checks that separately. */\nexport function createRuntimeCurrentSharePrincipalPolicy(\n runtime: CurrentShareRuntime,\n) {\n const lease = createCurrentPrincipalMutationLease(runtime);\n if (!lease) return undefined;\n return async <T>(\n input: CurrentShareInput,\n work: (policy: CurrentSharePrincipalPolicy) => Promise<T>,\n ): Promise<T> => {\n input = {\n ...input,\n expectedGroupHead: input.expectedGroupHead\n ? { ...input.expectedGroupHead }\n : undefined,\n };\n return lease(\n input.stillCurrent,\n async ({ resolveCurrentPolicy, stillCurrent: leaseCurrent }) => {\n await runtime.apiClient.recoverPendingPrincipalMutation?.(\n input.organizationId,\n );\n assertProjectionVerificationCurrent(leaseCurrent);\n const authority = await loadCurrentOrganizationAuthority({\n execSql: runtime.infra.execSql,\n organizationId: input.organizationId,\n resolveCurrentPolicy,\n stillCurrent: leaseCurrent,\n });\n const group = await authority.readGroup(input.groupId);\n const stillCurrent = () =>\n leaseCurrent() && authority.stillCurrent() && group.stillCurrent();\n assertProjectionVerificationCurrent(stillCurrent);\n if (\n input.expectedGroupHead &&\n !principalHeadMatchesReference(\n group.policy.state,\n input.expectedGroupHead,\n )\n )\n throw new KeyingVerificationError(\n \"object_mismatch\",\n \"Container share expected group head conflicts with the signed organization directory\",\n );\n assertGroupMetadataBinding(group.current, authority.descriptor);\n await assertCurrentShareName({\n runtime,\n input,\n authority,\n group,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n const checkpointPolicies = [...group.dependencies, group.policy];\n await advanceKeyingCheckpointsAtomically({\n access: [],\n execSql: runtime.infra.execSql,\n organizationId: input.organizationId,\n policies: checkpointPolicies,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n const result = await work({\n current: group.current,\n policy: group.policy,\n checkpointPolicies,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n return result;\n },\n );\n };\n}\n\nasync function assertCurrentShareName({\n runtime,\n input,\n authority,\n group,\n stillCurrent,\n}: {\n runtime: CurrentShareRuntime;\n input: CurrentShareInput;\n authority: Awaited<ReturnType<typeof loadCurrentOrganizationAuthority>>;\n group: CurrentGroup;\n stillCurrent: () => boolean;\n}) {\n if (input.expectedGroupName === undefined) return;\n const readName =\n input.readEncryptedName ??\n createRuntimeGroupMetadataAccess(\n runtime,\n input.organizationId,\n stillCurrent,\n createSelectedCurrentGroupMetadataContainerVerifier({\n authority,\n organizationId: input.organizationId,\n stillCurrent,\n }),\n ).readName;\n const mismatch = await groupPolicyNameMismatch(\n group.current,\n input.expectedGroupName,\n readName,\n );\n if (mismatch)\n throw new GroupShareNameMismatchError(\n mismatch === \"forbidden_characters\"\n ? \"Container share group name contains control or format characters\"\n : \"Container share group name does not match the signed group policy\",\n );\n}\n"]}
1
+ {"version":3,"file":"currentSharePrincipalPolicy.js","sourceRoot":"","sources":["currentSharePrincipalPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n KeyingVerificationError,\n type ReferencedPrincipalHead,\n} from \"@tearleads/crypto\";\nimport { assertProjectionVerificationCurrent } from \"../../../data/keyingProjectionVerification/types\";\nimport { advanceKeyingCheckpointsAtomically } from \"../../../data/persistence/keyingCheckpointAdvancePersistence\";\nimport { principalHeadMatchesReference } from \"../../../data/principals/organizationAuthorityDescriptor\";\nimport { loadCurrentOrganizationAuthority } from \"../../organizations/currentOrganizationAuthority\";\nimport { createSelectedCurrentGroupMetadataContainerVerifier } from \"../../organizations/groupMetadata/currentGroupMetadataAuthority\";\nimport { assertGroupMetadataBinding } from \"../../organizations/groupMetadata/groupMetadataBinding\";\nimport { createRuntimeGroupMetadataAccess } from \"../../organizations/groupMetadata/groupMetadataRuntime\";\nimport { createCurrentPrincipalMutationLease } from \"../../organizations/principalMutations/currentPrincipalMutationLease\";\nimport type { PrincipalMutationRecoveryApi } from \"../../organizations/principalMutations/principalMutationJournalManagement\";\nimport {\n type GroupPolicyNameReader,\n groupPolicyNameMismatch,\n} from \"../../organizations/principalPolicy/principalPolicyRequest\";\nimport { GroupShareNameMismatchError } from \"./sharePrincipalPolicy\";\n\ntype CurrentShareRuntime = Parameters<\n typeof createRuntimeGroupMetadataAccess\n>[0] &\n Parameters<typeof createCurrentPrincipalMutationLease>[0] & {\n readonly apiClient: {\n readonly recoverPendingPrincipalMutation?:\n | PrincipalMutationRecoveryApi[\"recoverPendingPrincipalMutation\"]\n | undefined;\n };\n };\n\ninterface CurrentShareInput {\n readonly groupId: string;\n readonly organizationId: string;\n readonly expectedGroupHead?: ReferencedPrincipalHead | undefined;\n readonly expectedGroupName?: string | undefined;\n /** Trusted internal reader; it must authenticate the signed metadata container. */\n readonly readEncryptedName?: GroupPolicyNameReader | undefined;\n readonly stillCurrent: () => boolean;\n}\n\ntype CurrentGroup = Awaited<\n ReturnType<\n Awaited<ReturnType<typeof loadCurrentOrganizationAuthority>>[\"readGroup\"]\n >\n>;\n\nexport interface CurrentSharePrincipalPolicy {\n readonly current: CurrentGroup[\"current\"];\n readonly policy: CurrentGroup[\"policy\"];\n readonly checkpointPolicies: readonly CurrentGroup[\"policy\"][];\n readonly stillCurrent: () => boolean;\n}\n\n/** A share read need not be a group administrator; minting a grant checks that separately. */\nexport function createRuntimeCurrentSharePrincipalPolicy(\n runtime: CurrentShareRuntime,\n) {\n const lease = createCurrentPrincipalMutationLease(runtime);\n if (!lease) return undefined;\n return async <T>(\n input: CurrentShareInput,\n work: (policy: CurrentSharePrincipalPolicy) => Promise<T>,\n ): Promise<T> => {\n input = {\n ...input,\n expectedGroupHead: input.expectedGroupHead\n ? { ...input.expectedGroupHead }\n : undefined,\n };\n return lease(\n input.stillCurrent,\n async ({ resolveCurrentPolicy, stillCurrent: leaseCurrent }) => {\n await runtime.apiClient.recoverPendingPrincipalMutation?.(\n input.organizationId,\n );\n assertProjectionVerificationCurrent(leaseCurrent);\n const authority = await loadCurrentOrganizationAuthority({\n execSql: runtime.infra.execSql,\n organizationId: input.organizationId,\n resolveCurrentPolicy,\n stillCurrent: leaseCurrent,\n });\n const group = await authority.readGroup(input.groupId);\n const stillCurrent = () =>\n leaseCurrent() && authority.stillCurrent() && group.stillCurrent();\n assertProjectionVerificationCurrent(stillCurrent);\n if (\n input.expectedGroupHead &&\n !principalHeadMatchesReference(\n group.policy.state,\n input.expectedGroupHead,\n )\n )\n throw new KeyingVerificationError(\n \"object_mismatch\",\n \"Container share expected group head conflicts with the signed organization directory\",\n );\n assertGroupMetadataBinding(group.current, authority.descriptor);\n await assertCurrentShareName({\n runtime,\n input,\n authority,\n group,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n const checkpointPolicies = [...group.dependencies, group.policy];\n await advanceKeyingCheckpointsAtomically({\n access: [],\n execSql: runtime.infra.execSql,\n organizationId: input.organizationId,\n policies: checkpointPolicies,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n const result = await work({\n current: group.current,\n policy: group.policy,\n checkpointPolicies,\n stillCurrent,\n });\n assertProjectionVerificationCurrent(stillCurrent);\n return result;\n },\n );\n };\n}\n\nasync function assertCurrentShareName({\n runtime,\n input,\n authority,\n group,\n stillCurrent,\n}: {\n runtime: CurrentShareRuntime;\n input: CurrentShareInput;\n authority: Awaited<ReturnType<typeof loadCurrentOrganizationAuthority>>;\n group: CurrentGroup;\n stillCurrent: () => boolean;\n}) {\n if (input.expectedGroupName === undefined) return;\n const readName =\n input.readEncryptedName ??\n createRuntimeGroupMetadataAccess(\n runtime,\n input.organizationId,\n stillCurrent,\n createSelectedCurrentGroupMetadataContainerVerifier({\n authority,\n organizationId: input.organizationId,\n stillCurrent,\n }),\n ).readName;\n const mismatch = await groupPolicyNameMismatch(\n group.current,\n input.expectedGroupName,\n readName,\n );\n if (mismatch)\n throw new GroupShareNameMismatchError(\n mismatch === \"forbidden_characters\"\n ? \"Container share group name contains control or format characters\"\n : \"Container share group name does not match the signed group policy\",\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { nullOnProjectionVerificationCancellation, requireProjectionUserKeyResolver, } from "../../../data/keyingProjectionVerification/index.js";
2
2
  import { principalPolicyCacheForVerifiedPolicies } from "../../../data/keyingProjectionVerification/principalPolicyCache.js";
3
3
  import { inheritPrincipalHistoryProtection } from "../../../data/principals/principalHistoryRuntime.js";
4
- import { createRuntimeCurrentGroupMutation } from "../../organizations/runtimeCurrentGroupMutation.js";
4
+ import { createRuntimeCurrentGroupMutation } from "../../organizations/principalMutations/runtimeCurrentGroupMutation.js";
5
5
  import { apiPrincipalPolicyPageReader, apiProjectionPolicyHistoryReader, } from "../../principals/principalPolicyHistoryReader.js";
6
6
  import { commitCurrentShareGrant } from "./currentShareGrantMutation.js";
7
7
  import { createRuntimeCurrentSharePrincipalPolicy } from "./currentSharePrincipalPolicy.js";
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeCurrentGroupShare.js","sourceRoot":"","sources":["runtimeCurrentGroupShare.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n nullOnProjectionVerificationCancellation,\n requireProjectionUserKeyResolver,\n} from \"../../../data/keyingProjectionVerification\";\nimport { principalPolicyCacheForVerifiedPolicies } from \"../../../data/keyingProjectionVerification/principalPolicyCache\";\nimport { inheritPrincipalHistoryProtection } from \"../../../data/principals/principalHistoryRuntime\";\nimport { createRuntimeCurrentGroupMutation } from \"../../organizations/runtimeCurrentGroupMutation\";\nimport {\n apiPrincipalPolicyPageReader,\n apiProjectionPolicyHistoryReader,\n} from \"../../principals/principalPolicyHistoryReader\";\nimport { commitCurrentShareGrant } from \"./currentShareGrantMutation\";\nimport { createRuntimeCurrentSharePrincipalPolicy } from \"./currentSharePrincipalPolicy\";\nimport {\n submitAcknowledgedContainerMutation,\n submitPlainContainerMutation,\n} from \"./mutationSubmit\";\nimport type { shareRemoteContainerWithGroup } from \"./share\";\nimport { buildMaterializedContainerSharePlan } from \"./shareMaterialization\";\nimport { resolveShareProjection } from \"./shareProjection\";\n\n/** Current evidence covers planning, any compound grant mint, and acknowledgement. */\nexport function createRuntimeCurrentGroupShare(\n runtime: Parameters<typeof createRuntimeCurrentSharePrincipalPolicy>[0],\n): typeof shareRemoteContainerWithGroup | undefined {\n const readCurrent = createRuntimeCurrentSharePrincipalPolicy(runtime);\n const api = runtime.apiClient;\n const historyReader = apiPrincipalPolicyPageReader(api);\n if (!readCurrent || !historyReader) return undefined;\n const mutate = createRuntimeCurrentGroupMutation(\n inheritPrincipalHistoryProtection(runtime, {\n ...runtime,\n apiClient: {\n ...historyReader,\n ...apiProjectionPolicyHistoryReader(api),\n recoverPendingPrincipalMutation: async (organizationId: string) => {\n // Built-in clients supply journal recovery; standalone hosts retain\n // responsibility for transport and exact-outcome recovery.\n await api.recoverPendingPrincipalMutation?.(organizationId);\n },\n },\n }),\n );\n if (!mutate) throw new Error(\"Current group mutation custody is unavailable\");\n return async (input) => {\n if (input.stillCurrent?.() === false) return null;\n const recitationStillCurrent = input.stillCurrent ?? (() => true);\n return nullOnProjectionVerificationCancellation(() =>\n readCurrent(\n {\n expectedGroupName: input.expectedGroupName ?? undefined,\n groupId: input.recipientGroupId,\n organizationId: input.author.organizationId,\n stillCurrent: input.stillCurrent ?? (() => true),\n },\n async ({ policy, checkpointPolicies, stillCurrent }) => {\n const share = { ...input, stillCurrent };\n const resolveProjectionUserKey = requireProjectionUserKeyResolver(\n input.resolveProjectionUserKey,\n \"Remote container share\",\n );\n const previousProjection = await resolveShareProjection(\n share,\n resolveProjectionUserKey,\n );\n if (!previousProjection) return null;\n const grant = policy.grants.find(\n (candidate) => candidate.containerId === input.containerId,\n );\n if (!grant || grant.accessLevel !== input.accessLevel)\n return commitCurrentShareGrant({\n runtime,\n share,\n mutate,\n recitationStillCurrent,\n });\n const materialized = await buildMaterializedContainerSharePlan({\n ...share,\n previousProjection,\n principalPolicyCache:\n principalPolicyCacheForVerifiedPolicies(checkpointPolicies),\n recipient: {\n principalPolicy: policy,\n subjectId: input.recipientGroupId,\n subjectType: \"group\",\n },\n resolveProjectionUserKey,\n });\n return submitAcknowledgedContainerMutation({\n ...share,\n recitationPolicies: checkpointPolicies,\n recitationStillCurrent,\n containerKey: materialized.containerKey,\n plan: materialized.plan,\n submit: () =>\n submitPlainContainerMutation(() =>\n input.apiClient.shareContainer(\n input.containerId,\n materialized.plan.request,\n {\n expectedPaymentRequiredOrganizationId:\n input.author.organizationId,\n },\n ),\n ),\n });\n },\n ),\n );\n };\n}\n"]}
1
+ {"version":3,"file":"runtimeCurrentGroupShare.js","sourceRoot":"","sources":["runtimeCurrentGroupShare.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n nullOnProjectionVerificationCancellation,\n requireProjectionUserKeyResolver,\n} from \"../../../data/keyingProjectionVerification\";\nimport { principalPolicyCacheForVerifiedPolicies } from \"../../../data/keyingProjectionVerification/principalPolicyCache\";\nimport { inheritPrincipalHistoryProtection } from \"../../../data/principals/principalHistoryRuntime\";\nimport { createRuntimeCurrentGroupMutation } from \"../../organizations/principalMutations/runtimeCurrentGroupMutation\";\nimport {\n apiPrincipalPolicyPageReader,\n apiProjectionPolicyHistoryReader,\n} from \"../../principals/principalPolicyHistoryReader\";\nimport { commitCurrentShareGrant } from \"./currentShareGrantMutation\";\nimport { createRuntimeCurrentSharePrincipalPolicy } from \"./currentSharePrincipalPolicy\";\nimport {\n submitAcknowledgedContainerMutation,\n submitPlainContainerMutation,\n} from \"./mutationSubmit\";\nimport type { shareRemoteContainerWithGroup } from \"./share\";\nimport { buildMaterializedContainerSharePlan } from \"./shareMaterialization\";\nimport { resolveShareProjection } from \"./shareProjection\";\n\n/** Current evidence covers planning, any compound grant mint, and acknowledgement. */\nexport function createRuntimeCurrentGroupShare(\n runtime: Parameters<typeof createRuntimeCurrentSharePrincipalPolicy>[0],\n): typeof shareRemoteContainerWithGroup | undefined {\n const readCurrent = createRuntimeCurrentSharePrincipalPolicy(runtime);\n const api = runtime.apiClient;\n const historyReader = apiPrincipalPolicyPageReader(api);\n if (!readCurrent || !historyReader) return undefined;\n const mutate = createRuntimeCurrentGroupMutation(\n inheritPrincipalHistoryProtection(runtime, {\n ...runtime,\n apiClient: {\n ...historyReader,\n ...apiProjectionPolicyHistoryReader(api),\n recoverPendingPrincipalMutation: async (organizationId: string) => {\n // Built-in clients supply journal recovery; standalone hosts retain\n // responsibility for transport and exact-outcome recovery.\n await api.recoverPendingPrincipalMutation?.(organizationId);\n },\n },\n }),\n );\n if (!mutate) throw new Error(\"Current group mutation custody is unavailable\");\n return async (input) => {\n if (input.stillCurrent?.() === false) return null;\n const recitationStillCurrent = input.stillCurrent ?? (() => true);\n return nullOnProjectionVerificationCancellation(() =>\n readCurrent(\n {\n expectedGroupName: input.expectedGroupName ?? undefined,\n groupId: input.recipientGroupId,\n organizationId: input.author.organizationId,\n stillCurrent: input.stillCurrent ?? (() => true),\n },\n async ({ policy, checkpointPolicies, stillCurrent }) => {\n const share = { ...input, stillCurrent };\n const resolveProjectionUserKey = requireProjectionUserKeyResolver(\n input.resolveProjectionUserKey,\n \"Remote container share\",\n );\n const previousProjection = await resolveShareProjection(\n share,\n resolveProjectionUserKey,\n );\n if (!previousProjection) return null;\n const grant = policy.grants.find(\n (candidate) => candidate.containerId === input.containerId,\n );\n if (!grant || grant.accessLevel !== input.accessLevel)\n return commitCurrentShareGrant({\n runtime,\n share,\n mutate,\n recitationStillCurrent,\n });\n const materialized = await buildMaterializedContainerSharePlan({\n ...share,\n previousProjection,\n principalPolicyCache:\n principalPolicyCacheForVerifiedPolicies(checkpointPolicies),\n recipient: {\n principalPolicy: policy,\n subjectId: input.recipientGroupId,\n subjectType: \"group\",\n },\n resolveProjectionUserKey,\n });\n return submitAcknowledgedContainerMutation({\n ...share,\n recitationPolicies: checkpointPolicies,\n recitationStillCurrent,\n containerKey: materialized.containerKey,\n plan: materialized.plan,\n submit: () =>\n submitPlainContainerMutation(() =>\n input.apiClient.shareContainer(\n input.containerId,\n materialized.plan.request,\n {\n expectedPaymentRequiredOrganizationId:\n input.author.organizationId,\n },\n ),\n ),\n });\n },\n ),\n );\n };\n}\n"]}
@@ -5,7 +5,7 @@ import { type ProjectionUserKeyResolver, type ReferencedPrincipalPolicyWarmer }
5
5
  import type { SecurityIncidentReporter } from "../../../data/shared/securityIncidents.js";
6
6
  import type { ExecSql } from "../../../data/sqlite/sqlSchema.js";
7
7
  import { type TrustedUserIdentityResolver } from "../../../data/trustedUserIdentity/index.js";
8
- import type { GroupPolicyNameReader } from "../../organizations/principalPolicyRequest.js";
8
+ import type { GroupPolicyNameReader } from "../../organizations/principalPolicy/principalPolicyRequest.js";
9
9
  import { type ContainerManagedPrincipalShareApi } from "./sharePrincipalPolicy.js";
10
10
  export declare function shareRemoteContainer(input: {
11
11
  reportSecurityIncident: SecurityIncidentReporter;
@@ -2,10 +2,10 @@ import { isProjectionVerificationCancelledError, nullOnProjectionVerificationCan
2
2
  import { principalPolicyCacheForVerifiedPolicies } from "../../../data/keyingProjectionVerification/principalPolicyCache.js";
3
3
  import { savePrincipalPolicyBundle } from "../../../data/persistence/principalPolicyPersistence.js";
4
4
  import { requireTrustedUserIdentityResolver, } from "../../../data/trustedUserIdentity/index.js";
5
- import { createGroupMetadataAccess } from "../../organizations/groupMetadataAccess.js";
6
- import { createGroupMetadataContainerVerifier } from "../../organizations/groupMetadataContainerAuthority.js";
7
- import { preparePrincipalContainerRematerializationBatch } from "../../organizations/principalContainerRematerialization.js";
8
- import { setOrganizationGroupContainerGrant } from "../../organizations/principalPolicy.js";
5
+ import { createGroupMetadataAccess } from "../../organizations/groupMetadata/groupMetadataAccess.js";
6
+ import { createGroupMetadataContainerVerifier } from "../../organizations/groupMetadata/groupMetadataContainerAuthority.js";
7
+ import { setOrganizationGroupContainerGrant } from "../../organizations/principalPolicy/index.js";
8
+ import { preparePrincipalContainerRematerializationBatch } from "../../organizations/rematerialization/principalContainerRematerialization.js";
9
9
  import { submitAcknowledgedContainerMutation, submitPlainContainerMutation, } from "./mutationSubmit.js";
10
10
  import { buildMaterializedContainerSharePlan } from "./shareMaterialization.js";
11
11
  import { advanceVerifiedSharePolicies, loadVerifiedGroupSharePrincipalPolicy, } from "./sharePrincipalPolicy.js";