@tearleads/client-sdk 0.1.63 → 0.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/organizations/organizationAccessRestoration.js +1 -1
- package/data/containers/shared/mutationAcknowledgement.js +1 -1
- package/data/containers/shared/mutationAcknowledgement.js.map +1 -1
- package/data/documents/blob/shared/projection.js +4 -4
- package/data/documents/blob/shared/projection.js.map +1 -1
- package/data/documents/shared/containerKek/containerKekCurrency.d.ts +22 -0
- package/data/documents/shared/containerKek/containerKekEntryVerification.js +15 -0
- package/data/documents/shared/containerKek/containerKekLogFetch.d.ts +18 -0
- package/data/documents/shared/containerKek/containerKekLogFetch.js +76 -0
- package/data/documents/shared/containerKek/containerKekPath.js +265 -0
- package/data/documents/shared/containerKek/containerKekPath.js.map +1 -0
- package/data/documents/shared/containerKek/containerKekPathHistory.d.ts +61 -0
- package/data/documents/shared/containerKek/containerKekPathHistory.js +223 -0
- package/data/documents/shared/containerKek/containerKekPathHistory.js.map +1 -0
- package/data/documents/shared/containerKek/containerKekPathVerification.d.ts +15 -0
- package/data/documents/shared/containerKek/containerKekPathVerification.js +23 -0
- package/data/documents/shared/containerKek/containerKekPathVerification.js.map +1 -0
- package/data/documents/shared/containerKek/containerKekWrapping.js +61 -0
- package/data/documents/shared/containerKek/containerKekWrapping.js.map +1 -0
- package/data/documents/shared/containerKek/keyringLogWalk.d.ts +45 -0
- package/data/documents/shared/containerKek/keyringLogWalk.js +204 -0
- package/data/documents/shared/containerKek/keyringRebuild.d.ts +60 -0
- package/data/documents/shared/containerKek/keyringRebuild.js +242 -0
- package/data/documents/shared/containerKek/keyringRebuild.js.map +1 -0
- package/data/documents/shared/crypto.js +2 -2
- package/data/documents/shared/crypto.js.map +1 -1
- package/data/documents/shared/events.js +1 -1
- package/data/documents/shared/projection/index.d.ts +25 -0
- package/data/documents/shared/projection/index.js +132 -0
- package/data/documents/shared/projection/index.js.map +1 -0
- package/data/documents/shared/projection/projectionContentKeys.d.ts +90 -0
- package/data/documents/shared/projection/projectionContentKeys.js +262 -0
- package/data/documents/shared/projection/projectionContentKeys.js.map +1 -0
- package/data/documents/shared/projection/projectionTargets.d.ts +38 -0
- package/data/documents/shared/projection/projectionTargets.js +164 -0
- package/data/documents/shared/projection/projectionTargets.js.map +1 -0
- package/data/documents/shared/responses.d.ts +1 -1
- package/data/documents/shared/responses.js +1 -1
- package/data/documents/shared/responses.js.map +1 -1
- package/data/documents/shared/sync/documentSyncUpdateDecryption.js +238 -0
- package/data/documents/shared/sync/documentSyncUpdateDecryption.js.map +1 -0
- package/data/documents/shared/sync/documentSyncUpdateIsolation.d.ts +55 -0
- package/data/documents/shared/sync/documentSyncUpdateIsolation.js +298 -0
- package/data/documents/shared/sync/documentSyncUpdateIsolation.js.map +1 -0
- package/data/documents/shared/sync/mutationAcknowledgement.js +10 -0
- package/data/documents/shared/sync/mutationAcknowledgement.js.map +1 -0
- package/data/documents/shared/sync/pullContinuation.js +53 -0
- package/data/documents/shared/sync/syncPagination.d.ts +20 -0
- package/data/documents/shared/sync/syncPagination.js +109 -0
- package/data/documents/shared/sync/syncPagination.js.map +1 -0
- package/data/documents/shared/sync/syncResponseAuthorization.js +63 -0
- package/data/documents/shared/sync/syncResponseAuthorization.js.map +1 -0
- package/data/documents/shared/sync/syncResponses.d.ts +11 -0
- package/data/documents/shared/sync/syncResponses.js +285 -0
- package/data/documents/shared/sync/syncResponses.js.map +1 -0
- package/data/documents/shared/sync/syncSubmitFailure.d.ts +9 -0
- package/data/documents/shared/types.d.ts +3 -3
- package/data/documents/shared/types.js.map +1 -1
- package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js +61 -0
- package/data/keyingProjectionVerification/checkpoints/accessManifestCheckpointEnforcement.js.map +1 -0
- package/data/keyingProjectionVerification/checkpoints/bundleVerification.js +61 -0
- package/data/keyingProjectionVerification/checkpoints/bundleVerification.js.map +1 -0
- package/data/keyingProjectionVerification/checkpoints/checkpointContext.d.ts +45 -0
- package/data/keyingProjectionVerification/checkpoints/checkpointContext.js +120 -0
- package/data/keyingProjectionVerification/checkpoints/checkpointContext.js.map +1 -0
- package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js +64 -0
- package/data/keyingProjectionVerification/checkpoints/manifestCheckpointVerification.js.map +1 -0
- package/data/keyingProjectionVerification/container/containerAncestorCitations.js +164 -0
- package/data/keyingProjectionVerification/container/containerAncestorCitations.js.map +1 -0
- package/data/keyingProjectionVerification/container/containerCreateManifest.js +28 -0
- package/data/keyingProjectionVerification/container/containerDestinationVerification.js +51 -0
- package/data/keyingProjectionVerification/container/containerDestinationVerification.js.map +1 -0
- package/data/keyingProjectionVerification/container/containerManifestVerification.js +285 -0
- package/data/keyingProjectionVerification/container/containerManifestVerification.js.map +1 -0
- package/data/keyingProjectionVerification/container/containerPathVerification.js +51 -0
- package/data/keyingProjectionVerification/container/containerPathVerification.js.map +1 -0
- package/data/keyingProjectionVerification/container/containerProjectionVerification.d.ts +25 -0
- package/data/keyingProjectionVerification/container/containerProjectionVerification.js +254 -0
- package/data/keyingProjectionVerification/container/containerProjectionVerification.js.map +1 -0
- package/data/keyingProjectionVerification/document/documentDependencyPaths.d.ts +17 -0
- package/data/keyingProjectionVerification/document/documentDependencyPaths.js +70 -0
- package/data/keyingProjectionVerification/document/documentDependencyPaths.js.map +1 -0
- package/data/keyingProjectionVerification/document/documentManifestPolicies.js +32 -0
- package/data/keyingProjectionVerification/document/documentManifestPolicies.js.map +1 -0
- package/data/keyingProjectionVerification/document/documentManifestPredecessor.js +12 -0
- package/data/keyingProjectionVerification/document/documentManifestVerification.js +135 -0
- package/data/keyingProjectionVerification/document/documentManifestVerification.js.map +1 -0
- package/data/keyingProjectionVerification/document/documentProjectionVerification.d.ts +24 -0
- package/data/keyingProjectionVerification/document/documentProjectionVerification.js +172 -0
- package/data/keyingProjectionVerification/document/documentProjectionVerification.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js +100 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointCurrency.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js +8 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeCheckpointEnforcement.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js +177 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeDocumentChainVerification.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js +17 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCheckpoints.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js +55 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePolicyCurrency.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js +116 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgePrincipalEvidence.js.map +1 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.d.ts +34 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js +208 -0
- package/data/keyingProjectionVerification/documentPurge/documentPurgeProofVerification.js.map +1 -0
- package/data/keyingProjectionVerification/index.d.ts +4 -4
- package/data/keyingProjectionVerification/index.js +4 -4
- package/data/keyingProjectionVerification/index.js.map +1 -1
- package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js +45 -0
- package/data/keyingProjectionVerification/principalPolicy/mergeProjectionPolicyEvidence.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js +41 -0
- package/data/keyingProjectionVerification/principalPolicy/organizationFounderBinding.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js +76 -0
- package/data/keyingProjectionVerification/principalPolicy/principalPolicyCache.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js +252 -0
- package/data/keyingProjectionVerification/principalPolicy/principalPolicyVerification.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js +63 -0
- package/data/keyingProjectionVerification/principalPolicy/projectionAuthorizationEvidence.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js +23 -0
- package/data/keyingProjectionVerification/principalPolicy/projectionPolicyEvidence.js.map +1 -0
- package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js +72 -0
- package/data/keyingProjectionVerification/principalPolicy/resolvedPrincipalPolicy.js.map +1 -0
- package/data/persistence/container-contents/containerContentsPersistence.js +3 -3
- package/data/persistence/container-contents/containerContentsPersistence.js.map +1 -1
- package/data/persistence/container-contents/containerContentsPersistenceTypes.d.ts +2 -2
- package/data/persistence/container-contents/containerContentsPersistenceTypes.js.map +1 -1
- package/data/persistence/container-contents/containerCreateIntentSettlement.js +1 -1
- package/data/persistence/container-contents/containerDeletionPersistence.js +2 -2
- package/data/persistence/container-contents/containerDocumentReassignment.js +2 -2
- package/data/persistence/container-contents/containerDocumentReassignment.js.map +1 -1
- package/data/persistence/container-contents/containerHydrationPersistence.js +3 -3
- package/data/persistence/container-contents/containerHydrationPersistence.js.map +1 -1
- package/data/persistence/container-contents/containerIntentPersistence.js +1 -1
- package/data/persistence/container-contents/containerMetadataMutationPersistence.js +5 -5
- package/data/persistence/container-contents/containerMetadataMutationPersistence.js.map +1 -1
- package/data/persistence/container-contents/containerMetadataPullContinuationPersistence.js +1 -1
- package/data/persistence/container-contents/containerMetadataRows.js +3 -3
- package/data/persistence/container-contents/containerMetadataRows.js.map +1 -1
- package/data/persistence/container-contents/containerMoveAbandonPersistence.js +1 -1
- package/data/persistence/container-contents/containerMoveIntentRows.js +1 -1
- package/data/persistence/container-contents/containerPendingUpdatePersistence.js +3 -3
- package/data/persistence/container-contents/containerPendingUpdatePersistence.js.map +1 -1
- package/data/persistence/container-contents/containerRebindPersistence.js +1 -1
- package/data/persistence/container-contents/containerReconcilePersistence.js +2 -2
- package/data/persistence/container-contents/containerRecoveryPersistence.js +1 -1
- package/data/persistence/container-contents/containerRemovalWork.js +3 -3
- package/data/persistence/container-contents/containerRemovalWork.js.map +1 -1
- package/data/persistence/container-contents/containerStructuralRepair.js +1 -1
- package/data/persistence/container-contents/documentLinkRemovalRepair.js +2 -2
- package/data/persistence/container-contents/documentLinkRemovalRepair.js.map +1 -1
- package/data/persistence/container-contents/documentMoveIntentPersistence.js +2 -2
- package/data/persistence/container-contents/documentMoveIntentPersistence.js.map +1 -1
- package/data/persistence/container-contents/documentPlacementIntentEnqueue.js +2 -2
- package/data/persistence/container-contents/documentPlacementIntentEnqueue.js.map +1 -1
- package/data/persistence/container-contents/documentPurgePlacement.js +1 -1
- package/data/persistence/container-contents/dormantContainerMetadata.js +1 -1
- package/data/persistence/container-contents/dormantMetadataSweep.js +1 -1
- package/data/persistence/container-contents/pendingContainerCreate.js +1 -1
- package/data/persistence/container-contents/supersededContainerBindings.js +1 -1
- package/data/persistence/containers/containerPersistence.js +1 -1
- package/data/persistence/containers/containerSyncWatermarkPersistence.js +1 -1
- package/data/persistence/containers/documentContainerProjectionPersistence.js +1 -1
- package/data/persistence/containers/documentPlacement.js +1 -1
- package/data/persistence/documents/containerDocumentTombstoneHoldsPersistence.js +1 -1
- package/data/persistence/documents/documentDiscoveryEvidencePersistence.js +3 -3
- package/data/persistence/documents/documentDiscoveryEvidencePersistence.js.map +1 -1
- package/data/persistence/documents/documentDiscoveryReset.js +1 -1
- package/data/persistence/documents/documentDiscoveryReset.js.map +1 -1
- package/data/persistence/documents/documentsPersistence.js +3 -3
- package/data/persistence/documents/documentsPersistence.js.map +1 -1
- package/data/persistence/documents/internal/attachmentStagingPersistence.js +1 -1
- package/data/persistence/documents/internal/containerDocumentTombstoneHolds.js +1 -1
- package/data/persistence/documents/internal/containerDocumentTombstones.js +1 -1
- package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js +2 -2
- package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js.map +1 -1
- package/data/persistence/documents/internal/discardDocument.js +3 -3
- package/data/persistence/documents/internal/discardDocument.js.map +1 -1
- package/data/persistence/documents/internal/documentDeletionPersistence.js +4 -4
- package/data/persistence/documents/internal/documentDeletionPersistence.js.map +1 -1
- package/data/persistence/documents/internal/documentMutationPersistence.js +5 -5
- package/data/persistence/documents/internal/documentMutationPersistence.js.map +1 -1
- package/data/persistence/documents/internal/documentProjectionRows.js +1 -1
- package/data/persistence/documents/internal/documentPullContinuationPersistence.js +1 -1
- package/data/persistence/documents/internal/documentRows.js +2 -2
- package/data/persistence/documents/internal/documentRows.js.map +1 -1
- package/data/persistence/documents/internal/documentSummaryQueries.js +1 -1
- package/data/persistence/documents/internal/ensureDocumentsSchema.js +2 -2
- package/data/persistence/documents/internal/hydratedAttachmentPersistence.js +1 -1
- package/data/persistence/documents/internal/orphanSideRows.js +2 -2
- package/data/persistence/documents/internal/orphanSideRows.js.map +1 -1
- package/data/persistence/documents/internal/pendingCreateAdoption.js +1 -1
- package/data/persistence/documents/internal/rowQueryPersistence.js +2 -2
- package/data/persistence/documents/internal/syncQueuePersistence.js +3 -3
- package/data/persistence/documents/internal/syncQueuePersistence.js.map +1 -1
- package/data/persistence/documents/types.d.ts +3 -3
- package/data/persistence/documents/types.js.map +1 -1
- package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.d.ts +10 -0
- package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js +43 -0
- package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js.map +1 -0
- package/data/persistence/keyingCheckpoints/keyingCheckpointAdvancePersistence.js +222 -0
- package/data/persistence/keyingCheckpoints/keyingCheckpointAdvancePersistence.js.map +1 -0
- package/data/persistence/keyingCheckpoints/keyingCheckpointEvidence.js +32 -0
- package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js +133 -0
- package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js.map +1 -0
- package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.d.ts +53 -0
- package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.js +167 -0
- package/data/persistence/keyingCheckpoints/locallyAcknowledgedCheckpointPersistence.js.map +1 -0
- package/data/persistence/keyingCheckpoints/organizationReplacementCheckpointPersistence.js +72 -0
- package/data/persistence/keyingCheckpoints/organizationReplacementCheckpointPersistence.js.map +1 -0
- package/data/persistence/keyingCheckpoints/principalAuthorizationCheckpoints.js +29 -0
- package/data/persistence/keyingCheckpoints/principalAuthorizationCheckpoints.js.map +1 -0
- package/data/persistence/organizationFounderPersistence.js +2 -2
- package/data/persistence/organizationFounderPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationAccessRevocationPersistence.js +3 -3
- package/data/persistence/organizations/organizationAccessRevocationPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationDataUsagePersistence.js +2 -2
- package/data/persistence/organizations/organizationDataUsagePersistence.js.map +1 -1
- package/data/persistence/organizations/organizationGroupNamePersistence.js +2 -2
- package/data/persistence/organizations/organizationGroupNamePersistence.js.map +1 -1
- package/data/persistence/organizations/organizationPresentationDenialPersistence.js +2 -2
- package/data/persistence/organizations/organizationPresentationDenialPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationProfileDocumentPointers.js +2 -2
- package/data/persistence/organizations/organizationProfileDocumentPointers.js.map +1 -1
- package/data/persistence/organizations/organizationProvisioningAttemptPersistence.js +1 -1
- package/data/persistence/organizations/organizationProvisioningAttemptPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelGrantPersistence.js +1 -1
- package/data/persistence/organizations/organizationReadModelGrantPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelMemberLoad.js +1 -1
- package/data/persistence/organizations/organizationReadModelMemberLoad.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelMembershipPersistence.js +1 -1
- package/data/persistence/organizations/organizationReadModelMembershipPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelPersistence.js +3 -3
- package/data/persistence/organizations/organizationReadModelPersistence.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelProjection.js +1 -1
- package/data/persistence/organizations/organizationReadModelProjection.js.map +1 -1
- package/data/persistence/organizations/organizationReadModelPurge.js +3 -3
- package/data/persistence/organizations/organizationReadModelPurge.js.map +1 -1
- package/data/persistence/principalCurrentAcknowledgementPersistence.d.ts +3 -3
- package/data/persistence/principalCurrentAcknowledgementPersistence.js +10 -10
- package/data/persistence/principalCurrentAcknowledgementPersistence.js.map +1 -1
- package/data/persistence/principalHistory/principalHistoryEvidencePersistence.d.ts +32 -0
- package/data/persistence/principalHistory/principalHistoryEvidencePersistence.js +92 -0
- package/data/persistence/principalHistory/principalHistoryEvidencePersistence.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryIncompleteRetention.js +26 -0
- package/data/persistence/principalHistory/principalHistoryIncompleteRetention.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryNodeRetention.js +201 -0
- package/data/persistence/principalHistory/principalHistoryNodeRetention.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryPrefixPersistence.d.ts +29 -0
- package/data/persistence/principalHistory/principalHistoryPrefixPersistence.js +102 -0
- package/data/persistence/principalHistory/principalHistoryPrefixPersistence.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryRootOwnership.js +71 -0
- package/data/persistence/principalHistory/principalHistoryRootOwnership.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryStagePersistence.d.ts +15 -0
- package/data/persistence/principalHistory/principalHistoryStagePersistence.js +96 -0
- package/data/persistence/principalHistory/principalHistoryStagePersistence.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryStageRetention.js +45 -0
- package/data/persistence/principalHistory/principalHistoryStageRetention.js.map +1 -0
- package/data/persistence/principalHistory/principalHistoryUnpublishedRetention.js +64 -0
- package/data/persistence/principalHistory/principalHistoryUnpublishedRetention.js.map +1 -0
- package/data/persistence/principalKeys/principalGrantRetirementPersistence.d.ts +9 -0
- package/data/persistence/principalKeys/principalGrantRetirementPersistence.js +43 -0
- package/data/persistence/principalKeys/principalGrantRetirementPersistence.js.map +1 -0
- package/data/persistence/principalKeys/principalKeyEnvelopeArchivePersistence.js +63 -0
- package/data/persistence/principalKeys/principalKeyEnvelopeArchivePersistence.js.map +1 -0
- package/data/persistence/principalKeys/principalKeyEnvelopeCandidates.js +87 -0
- package/data/persistence/principalKeys/principalKeyEnvelopeCandidates.js.map +1 -0
- package/data/persistence/principalMutationJournalPersistence.d.ts +1 -1
- package/data/persistence/principalMutationJournalPersistence.js +1 -1
- package/data/persistence/principalMutationJournalPersistence.js.map +1 -1
- package/data/persistence/principalPolicy/principalPolicyBundleIntegrity.js +49 -0
- package/data/persistence/principalPolicy/principalPolicyBundleIntegrity.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyCheckpointSelection.js +26 -0
- package/data/persistence/principalPolicy/principalPolicyCheckpointSelection.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyOrganizationPersistence.js +42 -0
- package/data/persistence/principalPolicy/principalPolicyOrganizationPersistence.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyPersistence.js +279 -0
- package/data/persistence/principalPolicy/principalPolicyPersistence.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyReferenceCheckpoint.js +27 -0
- package/data/persistence/principalPolicy/principalPolicyReferenceCheckpoint.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyReferenceIndexPersistence.js +115 -0
- package/data/persistence/principalPolicy/principalPolicyReferenceIndexPersistence.js.map +1 -0
- package/data/persistence/principalPolicy/principalPolicyReferencePersistence.js +215 -0
- package/data/persistence/principalPolicy/principalPolicyReferencePersistence.js.map +1 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyBundle.js +33 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyBundle.js.map +1 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyCurrent.js +56 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyCurrent.js.map +1 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyRetentionPersistence.js +18 -0
- package/data/persistence/principalPolicy/verifiedPrincipalPolicyRetentionPersistence.js.map +1 -0
- package/data/persistence/securityIncidentPersistence.js +1 -1
- package/data/persistence/securityIncidentPersistence.js.map +1 -1
- package/data/persistence/trustedUserIdentityPinPersistence.js +1 -1
- package/data/persistence/verifiedManifestBundlePersistence.d.ts +1 -1
- package/data/persistence/verifiedManifestBundlePersistence.js +4 -4
- package/data/persistence/verifiedManifestBundlePersistence.js.map +1 -1
- package/data/principals/organizationGroupRoles.js +2 -2
- package/data/principals/organizationGroupRoles.js.map +1 -1
- package/data/principals/principalHistoryPrefixProtection.js.map +1 -1
- package/data/principals/principalHistoryStageProtection.js.map +1 -1
- package/data/principals/principalPolicyCrypto.js +1 -1
- package/data/principals/principalPolicyCrypto.js.map +1 -1
- package/data/sqlite/documentPersistence/documentHistoryPersistence.d.ts +86 -0
- package/data/sqlite/documentPersistence/documentHistoryPersistence.js +304 -0
- package/data/sqlite/documentPersistence/documentHistoryPersistence.js.map +1 -0
- package/data/sqlite/documentPersistence/documentOrphanBlobReclaims.js +6 -0
- package/data/sqlite/documentPersistence/documentOrphanBlobReclaims.js.map +1 -0
- package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.d.ts +103 -0
- package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.js +243 -0
- package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.js.map +1 -0
- package/data/sqlite/documentPersistence/documentPersistenceTypes.d.ts +79 -0
- package/data/sqlite/documentPersistence/documentPersistenceTypes.js.map +1 -0
- package/data/sqlite/documentPersistence/documentRecordPersistence.d.ts +275 -0
- package/data/sqlite/documentPersistence/documentRecordPersistence.js +103 -0
- package/data/sqlite/documentPersistence/documentRecordPersistence.js.map +1 -0
- package/data/sqlite/documentPersistence/documentSyncFailurePersistence.d.ts +39 -0
- package/data/sqlite/documentPersistence/documentSyncFailurePersistence.js +81 -0
- package/data/sqlite/documentPersistence/documentSyncFailurePersistence.js.map +1 -0
- package/data/sqlite/documentPersistence/index.d.ts +22 -0
- package/data/sqlite/documentPersistence/index.js +35 -0
- package/data/sqlite/documentPersistence/index.js.map +1 -0
- package/data/sqlite/schema/containerSchema.d.ts +1193 -0
- package/data/sqlite/schema/containerSchema.js +103 -0
- package/data/sqlite/schema/containerSchema.js.map +1 -0
- package/data/sqlite/schema/index.d.ts +8055 -0
- package/data/sqlite/schema/index.js +525 -0
- package/data/sqlite/schema/index.js.map +1 -0
- package/data/sqlite/schema/organizationDataUsageSchema.js +34 -0
- package/data/sqlite/schema/organizationDataUsageSchema.js.map +1 -0
- package/data/sqlite/schema/organizationProvisioningAttemptSchema.js +23 -0
- package/data/sqlite/schema/organizationProvisioningAttemptSchema.js.map +1 -0
- package/data/sqlite/schema/organizationReadModelTableRegistry.d.ts +1332 -0
- package/data/sqlite/schema/organizationReadModelTableRegistry.js +31 -0
- package/data/sqlite/schema/organizationReadModelTableRegistry.js.map +1 -0
- package/data/sqlite/schema/principalHistoryEvidenceSchema.d.ts +308 -0
- package/data/sqlite/schema/principalHistoryEvidenceSchema.js +48 -0
- package/data/sqlite/schema/principalHistoryEvidenceSchema.js.map +1 -0
- package/data/sqlite/schema/principalHistoryNodeRetentionSchema.js +30 -0
- package/data/sqlite/schema/principalHistoryNodeRetentionSchema.js.map +1 -0
- package/data/sqlite/schema/principalHistoryRetentionSchema.js +25 -0
- package/data/sqlite/schema/principalHistoryRetentionSchema.js.map +1 -0
- package/data/sqlite/schema/principalHistoryStageSchema.d.ts +161 -0
- package/data/sqlite/schema/principalHistoryStageSchema.js +34 -0
- package/data/sqlite/schema/principalHistoryStageSchema.js.map +1 -0
- package/data/sqlite/schema/principalMutationJournalSchema.d.ts +85 -0
- package/data/sqlite/schema/principalMutationJournalSchema.js +13 -0
- package/data/sqlite/schema/principalMutationJournalSchema.js.map +1 -0
- package/data/sqlite/schema/principalPolicySchema.js +72 -0
- package/data/sqlite/schema/principalPolicySchema.js.map +1 -0
- package/data/sqlite/schema/securityIncidentSchema.d.ts +224 -0
- package/data/sqlite/schema/securityIncidentSchema.js +28 -0
- package/data/sqlite/schema/securityIncidentSchema.js.map +1 -0
- package/data/sqlite/schema/verifiedManifestBundleSchema.d.ts +174 -0
- package/data/sqlite/schema/verifiedManifestBundleSchema.js +36 -0
- package/data/sqlite/schema/verifiedManifestBundleSchema.js.map +1 -0
- package/data/sqlite/sqlitePersistenceRuntime.d.ts +1 -1
- package/data/sqlite/sqlitePersistenceRuntime.js +1 -1
- package/package.json +1 -1
- package/sqlite/index.d.ts +1 -1
- package/sqlite/index.js +1 -1
- package/stores/container-contents/accessRestorationSweep.js +1 -1
- package/stores/container-contents/accessRestorationSweep.js.map +1 -1
- package/stores/container-contents/containerContentsStore.d.ts +1 -1
- package/stores/container-contents/containerContentsStore.js +12 -12
- package/stores/container-contents/containerContentsStore.js.map +1 -1
- package/stores/container-contents/containerState/containerStateMap.js.map +1 -0
- package/stores/container-contents/containerState/containerStatePersistence.js +57 -0
- package/stores/container-contents/containerState/containerStatePersistence.js.map +1 -0
- package/stores/container-contents/containerState/missingContainerState.js +10 -0
- package/stores/container-contents/containerState/missingContainerState.js.map +1 -0
- package/stores/container-contents/containerState/missingSyncedContainerState.js.map +1 -0
- package/stores/container-contents/containerState/reconcilableContainer.d.ts +48 -0
- package/stores/container-contents/containerState/reconcilableContainer.js.map +1 -0
- package/stores/container-contents/documentWork/documentRecovery.js +114 -0
- package/stores/container-contents/documentWork/documentRecovery.js.map +1 -0
- package/stores/container-contents/documentWork/documentRotation.js +13 -0
- package/stores/container-contents/documentWork/documentRotation.js.map +1 -0
- package/stores/container-contents/documentWork/index.js +29 -0
- package/stores/container-contents/documentWork/index.js.map +1 -0
- package/stores/container-contents/hydration/backgroundHydration.js +32 -0
- package/stores/container-contents/hydration/backgroundHydration.js.map +1 -0
- package/stores/container-contents/hydration/remoteHydrationRequest.js +245 -0
- package/stores/container-contents/hydration/remoteHydrationRequest.js.map +1 -0
- package/stores/container-contents/hydration/startupHydration.js +110 -0
- package/stores/container-contents/hydration/startupHydration.js.map +1 -0
- package/stores/container-contents/index.d.ts +3 -3
- package/stores/container-contents/index.js +2 -2
- package/stores/container-contents/index.js.map +1 -1
- package/stores/container-contents/localRefresh.js +2 -2
- package/stores/container-contents/localRefresh.js.map +1 -1
- package/stores/container-contents/operations/containerPurgeCore.js +98 -0
- package/stores/container-contents/operations/containerPurgeCore.js.map +1 -0
- package/stores/container-contents/operations/emptyTrashOperation.js.map +1 -0
- package/stores/container-contents/operations/groupRewrapOperation.js +52 -0
- package/stores/container-contents/operations/groupRewrapOperation.js.map +1 -0
- package/stores/container-contents/operations/index.js +301 -0
- package/stores/container-contents/operations/index.js.map +1 -0
- package/stores/container-contents/operations/purgeContainerOperation.js.map +1 -0
- package/stores/container-contents/operations/reportShareFailure.js +44 -0
- package/stores/container-contents/operations/reportShareFailure.js.map +1 -0
- package/stores/container-contents/operations/setContainerIconOperation.js +47 -0
- package/stores/container-contents/operations/setContainerIconOperation.js.map +1 -0
- package/stores/container-contents/operations/shareOperations.js +90 -0
- package/stores/container-contents/operations/shareOperations.js.map +1 -0
- package/stores/container-contents/remoteEvents/remoteBackedContainerState.js.map +1 -0
- package/stores/container-contents/remoteEvents/remoteContainerIngestion.js +59 -0
- package/stores/container-contents/remoteEvents/remoteContainerIngestion.js.map +1 -0
- package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js +36 -0
- package/stores/container-contents/remoteEvents/remoteEventProjectionInvalidation.js.map +1 -0
- package/stores/container-contents/remoteEvents/remoteEventSync.js +38 -0
- package/stores/container-contents/remoteEvents/remoteEventSync.js.map +1 -0
- package/stores/container-contents/remoteWrites/remoteWriteGuards.js +54 -0
- package/stores/container-contents/remoteWrites/remoteWriteGuards.js.map +1 -0
- package/stores/container-contents/remoteWrites/remoteWriteQueue.js +51 -0
- package/stores/container-contents/remoteWrites/remoteWriteQueue.js.map +1 -0
- package/stores/container-contents/remoteWrites/writeGeneration.js.map +1 -0
- package/stores/container-contents/state.d.ts +1 -1
- package/stores/container-contents/state.js +2 -2
- package/stores/container-contents/state.js.map +1 -1
- package/stores/container-contents/syncAgent/index.d.ts +8 -0
- package/stores/container-contents/syncAgent/index.js +241 -0
- package/stores/container-contents/syncAgent/index.js.map +1 -0
- package/stores/container-contents/syncAgent/metadataSyncSignal.js +37 -0
- package/stores/container-contents/syncAgent/metadataSyncSignal.js.map +1 -0
- package/stores/container-contents/syncAgent/syncAgentTypes.d.ts +81 -0
- package/stores/container-contents/syncAgent/syncAgentTypes.js.map +1 -0
- package/stores/container-contents/syncAgent/syncLaneIteration.js +237 -0
- package/stores/container-contents/syncAgent/syncLaneIteration.js.map +1 -0
- package/stores/container-contents/systemContainers/existingSystemContainer.js +58 -0
- package/stores/container-contents/systemContainers/existingSystemContainer.js.map +1 -0
- package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js +44 -0
- package/stores/container-contents/systemContainers/organizationMetadataSystemContainer.js.map +1 -0
- package/stores/container-contents/systemContainers/systemContainerHydration.js +30 -0
- package/stores/container-contents/systemContainers/systemContainerHydration.js.map +1 -0
- package/stores/container-contents/systemContainers/systemContainerIcon.js +42 -0
- package/stores/container-contents/systemContainers/systemContainerIcon.js.map +1 -0
- package/stores/container-contents/systemContainers/systemContainerLookup.js.map +1 -0
- package/stores/container-contents/systemContainers/systemContainerPostCreate.js +109 -0
- package/stores/container-contents/systemContainers/systemContainerPostCreate.js.map +1 -0
- package/stores/container-contents/systemContainers/systemContainerPromotion.js +49 -0
- package/stores/container-contents/systemContainers/systemContainerPromotion.js.map +1 -0
- package/stores/container-contents/types.d.ts +2 -2
- package/stores/container-contents/types.js.map +1 -1
- package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js +39 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentSourceUpload.js.map +1 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js +84 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentStaging.js.map +1 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js +97 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadAttempt.js.map +1 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js +49 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadLane.js.map +1 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js +95 -0
- package/stores/documents/documentStore/attachmentUpload/attachmentUploadResume.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentDetachState.js +54 -0
- package/stores/documents/documentStore/attachments/attachmentDetachState.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentHydration.js +90 -0
- package/stores/documents/documentStore/attachments/attachmentHydration.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js +53 -0
- package/stores/documents/documentStore/attachments/attachmentHydrationCommit.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentIntents.js +39 -0
- package/stores/documents/documentStore/attachments/attachmentIntents.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js +37 -0
- package/stores/documents/documentStore/attachments/attachmentMutationPersistence.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentPersistFollowup.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentPersistence.js +106 -0
- package/stores/documents/documentStore/attachments/attachmentPersistence.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentRemoval.js +136 -0
- package/stores/documents/documentStore/attachments/attachmentRemoval.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentSnapshot.js.map +1 -0
- package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js +32 -0
- package/stores/documents/documentStore/attachments/attachmentWriteGeneration.js.map +1 -0
- package/stores/documents/documentStore/attachments/index.js +241 -0
- package/stores/documents/documentStore/attachments/index.js.map +1 -0
- package/stores/documents/documentStore/history/documentHistoryCompaction.js +67 -0
- package/stores/documents/documentStore/history/documentHistoryCompaction.js.map +1 -0
- package/stores/documents/documentStore/history/durableDocumentReload.js +79 -0
- package/stores/documents/documentStore/history/durableDocumentReload.js.map +1 -0
- package/stores/documents/documentStore/history/historyRebuild.js +75 -0
- package/stores/documents/documentStore/history/historyRebuild.js.map +1 -0
- package/stores/documents/documentStore/index.d.ts +8 -0
- package/stores/documents/documentStore/index.js +215 -0
- package/stores/documents/documentStore/index.js.map +1 -0
- package/stores/documents/documentStore/initialization/deferredInitialUpdate.js +116 -0
- package/stores/documents/documentStore/initialization/deferredInitialUpdate.js.map +1 -0
- package/stores/documents/documentStore/initialization/index.js +330 -0
- package/stores/documents/documentStore/initialization/index.js.map +1 -0
- package/stores/documents/documentStore/initialization/initializationAttachments.js +9 -0
- package/stores/documents/documentStore/initialization/initializationAttachments.js.map +1 -0
- package/stores/documents/documentStore/initialization/initializationHistory.js +33 -0
- package/stores/documents/documentStore/initialization/initializationHistory.js.map +1 -0
- package/stores/documents/documentStore/initialization/initializationRecovery.js +107 -0
- package/stores/documents/documentStore/initialization/initializationRecovery.js.map +1 -0
- package/stores/documents/documentStore/mutationIdentityRevalidation.js.map +1 -1
- package/stores/documents/documentStore/mutations.js +2 -2
- package/stores/documents/documentStore/mutations.js.map +1 -1
- package/stores/documents/documentStore/pendingUpdateRefusal.js +1 -1
- package/stores/documents/documentStore/pendingUpdateRefusal.js.map +1 -1
- package/stores/documents/documentStore/persistence.js +3 -3
- package/stores/documents/documentStore/persistence.js.map +1 -1
- package/stores/documents/documentStore/rotation/index.js +307 -0
- package/stores/documents/documentStore/rotation/index.js.map +1 -0
- package/stores/documents/documentStore/rotation/rotationProvenance.js +52 -0
- package/stores/documents/documentStore/rotation/rotationProvenance.js.map +1 -0
- package/stores/documents/documentStore/rotation/rotationSettlement.js +222 -0
- package/stores/documents/documentStore/rotation/rotationSettlement.js.map +1 -0
- package/stores/documents/documentStore/rows.js +2 -2
- package/stores/documents/documentStore/rows.js.map +1 -1
- package/stores/documents/documentStore/state.js +1 -1
- package/stores/documents/documentStore/state.js.map +1 -1
- package/stores/documents/documentStore/sync/index.js +299 -0
- package/stores/documents/documentStore/sync/index.js.map +1 -0
- package/stores/documents/documentStore/sync/pullContinuationInvalidation.js +61 -0
- package/stores/documents/documentStore/sync/pullContinuationInvalidation.js.map +1 -0
- package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js +15 -0
- package/stores/documents/documentStore/sync/remoteRevalidationTelemetry.js.map +1 -0
- package/stores/documents/documentStore/sync/remoteWork.js.map +1 -0
- package/stores/documents/documentStore/sync/syncAcceptedUpdateIds.js.map +1 -0
- package/stores/documents/documentStore/sync/syncAttachmentSettlement.js +72 -0
- package/stores/documents/documentStore/sync/syncAttachmentSettlement.js.map +1 -0
- package/stores/documents/documentStore/sync/syncAttachments.js +323 -0
- package/stores/documents/documentStore/sync/syncAttachments.js.map +1 -0
- package/stores/documents/documentStore/sync/syncDetachedAttachments.js +129 -0
- package/stores/documents/documentStore/sync/syncDetachedAttachments.js.map +1 -0
- package/stores/documents/documentStore/sync/syncFinalize.js +204 -0
- package/stores/documents/documentStore/sync/syncFinalize.js.map +1 -0
- package/stores/documents/documentStore/sync/syncGeneration.js.map +1 -0
- package/stores/documents/documentStore/sync/syncOutgoingCoverage.js +96 -0
- package/stores/documents/documentStore/sync/syncOutgoingCoverage.js.map +1 -0
- package/stores/documents/documentStore/sync/syncRemoteSignals.js +67 -0
- package/stores/documents/documentStore/sync/syncRemoteSignals.js.map +1 -0
- package/stores/documents/documentStore/sync/syncRequest.js +157 -0
- package/stores/documents/documentStore/sync/syncRequest.js.map +1 -0
- package/stores/documents/documentStore/sync/syncShared.js +211 -0
- package/stores/documents/documentStore/sync/syncShared.js.map +1 -0
- package/stores/documents/documentStore/sync/syncUpdateImport.js +62 -0
- package/stores/documents/documentStore/sync/syncUpdateImport.js.map +1 -0
- package/stores/documents/documentStore/sync/versionCoverage.js +45 -0
- package/stores/documents/index.d.ts +1 -1
- package/stores/documents/index.js +1 -1
- package/stores/local-projection/localProjectionStore.d.ts +1 -1
- package/stores/local-projection/localProjectionStore.js +1 -1
- package/stores/local-projection/localProjectionStore.js.map +1 -1
- package/stores/local-projection/registry.d.ts +1 -1
- package/stores/local-projection/types.d.ts +1 -1
- package/workflows/blobs/detach.js +1 -1
- package/workflows/blobs/hydration/decrypt.js +2 -2
- package/workflows/blobs/hydration/decrypt.js.map +1 -1
- package/workflows/blobs/upload/index.js +1 -1
- package/workflows/blobs/verification/retainedAttachmentVerification.js +1 -1
- package/workflows/blobs/verification/writerProjection.js +1 -1
- package/workflows/container-contents/container-state/create/createAdoption.js +193 -0
- package/workflows/container-contents/container-state/create/createAdoption.js.map +1 -0
- package/workflows/container-contents/container-state/create/createChild.js +217 -0
- package/workflows/container-contents/container-state/create/createChild.js.map +1 -0
- package/workflows/container-contents/container-state/create/createIntentDepth.js +36 -0
- package/workflows/container-contents/container-state/create/createIntentDepth.js.map +1 -0
- package/workflows/container-contents/container-state/create/createIntentSettlement.js.map +1 -0
- package/workflows/container-contents/container-state/create/createIntentSync.js +354 -0
- package/workflows/container-contents/container-state/create/createIntentSync.js.map +1 -0
- package/workflows/container-contents/container-state/create/createTerminalFailure.js +19 -0
- package/workflows/container-contents/container-state/create/createTerminalFailure.js.map +1 -0
- package/workflows/container-contents/container-state/create/createWithMetadata.js +270 -0
- package/workflows/container-contents/container-state/create/createWithMetadata.js.map +1 -0
- package/workflows/container-contents/container-state/create/createWithMetadataPlan.js +68 -0
- package/workflows/container-contents/container-state/create/createWithMetadataPlan.js.map +1 -0
- package/workflows/container-contents/container-state/purge/localPurgeScope.js +49 -0
- package/workflows/container-contents/container-state/purge/localPurgeScope.js.map +1 -0
- package/workflows/container-contents/container-state/purge/purgeTree.js +298 -0
- package/workflows/container-contents/container-state/purge/purgeTree.js.map +1 -0
- package/workflows/container-contents/container-state/purge/purgeTreeCollection.js.map +1 -0
- package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js +75 -0
- package/workflows/container-contents/container-state/purge/purgeTreeContainerDeletion.js.map +1 -0
- package/workflows/container-contents/container-state/purge/purgeTreeScope.js +175 -0
- package/workflows/container-contents/container-state/purge/purgeTreeScope.js.map +1 -0
- package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js +18 -0
- package/workflows/container-contents/container-state/purge/readLocalPurgeScope.js.map +1 -0
- package/workflows/container-contents/container-state/remote.js +2 -2
- package/workflows/container-contents/container-state/remote.js.map +1 -1
- package/workflows/container-contents/container-state/share/groupGrantVerification.js +71 -0
- package/workflows/container-contents/container-state/share/groupGrantVerification.js.map +1 -0
- package/workflows/container-contents/container-state/share/groupShareEpoch.js +16 -0
- package/workflows/container-contents/container-state/share/groupShareEpoch.js.map +1 -0
- package/workflows/container-contents/container-state/share/index.js +283 -0
- package/workflows/container-contents/container-state/share/index.js.map +1 -0
- package/workflows/container-contents/container-state/share/sharePersistence.js +136 -0
- package/workflows/container-contents/container-state/share/sharePersistence.js.map +1 -0
- package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js +1 -1
- package/workflows/container-contents/documentDiscovery/documentDiscoveryApply.js.map +1 -1
- package/workflows/container-contents/documentDiscovery/index.js +1 -1
- package/workflows/container-contents/documentDiscovery/index.js.map +1 -1
- package/workflows/container-contents/documentLinks/index.js +1 -1
- package/workflows/container-contents/documentMove/documentMoveVanishedRefresh.js +1 -1
- package/workflows/container-contents/documentPriming/documentHydrationProbe.js +1 -1
- package/workflows/container-contents/documentPriming/index.js +1 -1
- package/workflows/container-contents/documentQueries/index.js +1 -1
- package/workflows/container-contents/documentQueries/sql.js +1 -1
- package/workflows/container-contents/info/blobInfo.js +1 -1
- package/workflows/container-contents/info/containerInfo.js +1 -1
- package/workflows/container-contents/info/documentInfo.js +1 -1
- package/workflows/container-contents/metadata/index.js +1 -1
- package/workflows/container-contents/metadata/index.js.map +1 -1
- package/workflows/container-contents/metadata/metadataEvents.d.ts +1 -1
- package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js +2 -2
- package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js.map +1 -1
- package/workflows/container-contents/metadata/metadataMutationPreparation.js +1 -1
- package/workflows/container-contents/metadata/metadataMutationPreparation.js.map +1 -1
- package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js +1 -1
- package/workflows/container-contents/metadata/metadataPullContinuationInvalidation.js.map +1 -1
- package/workflows/container-contents/metadata/metadataRemoteSync.d.ts +1 -1
- package/workflows/container-contents/metadata/metadataSyncErrors.js +2 -2
- package/workflows/container-contents/metadata/metadataSyncErrors.js.map +1 -1
- package/workflows/container-contents/metadata/metadataSyncSettlement.d.ts +1 -1
- package/workflows/container-contents/metadata/metadataSyncSettlement.js.map +1 -1
- package/workflows/container-contents/metadata/metadataTypes.d.ts +1 -1
- package/workflows/container-contents/metadata/metadataTypes.js.map +1 -1
- package/workflows/container-contents/pendingWrites/index.js +2 -2
- package/workflows/container-contents/pendingWrites/sources.js +1 -1
- package/workflows/container-contents/remoteHydration/destination/destinationPrefetch.js.map +1 -0
- package/workflows/container-contents/remoteHydration/destination/destinationRoleCache.js.map +1 -0
- package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js +10 -0
- package/workflows/container-contents/remoteHydration/destination/destinationRootReload.js.map +1 -0
- package/workflows/container-contents/remoteHydration/destination/replacementBinding.js +75 -0
- package/workflows/container-contents/remoteHydration/destination/replacementBinding.js.map +1 -0
- package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js +296 -0
- package/workflows/container-contents/remoteHydration/destination/verifiedDestination.js.map +1 -0
- package/workflows/container-contents/remoteHydration/index.js +4 -4
- package/workflows/container-contents/remoteHydration/index.js.map +1 -1
- package/workflows/container-contents/remoteHydration/lanes/childIndex.js.map +1 -0
- package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js +21 -0
- package/workflows/container-contents/remoteHydration/lanes/laneFetchMarkers.js.map +1 -0
- package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js +61 -0
- package/workflows/container-contents/remoteHydration/lanes/parentLaneFetch.js.map +1 -0
- package/workflows/container-contents/remoteHydration/lanes/parentLaneQueue.js.map +1 -0
- package/workflows/container-contents/remoteHydration/principalPolicyCache.js +1 -1
- package/workflows/container-contents/remoteHydration/principalPolicyCache.js.map +1 -1
- package/workflows/container-contents/remoteHydration/reattachMetadata.js.map +1 -1
- package/workflows/container-contents/remoteHydration/reconciliation.js +2 -2
- package/workflows/container-contents/remoteHydration/reconciliation.js.map +1 -1
- package/workflows/container-contents/remoteHydration/remoteContainers/containerStateFingerprint.js.map +1 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js +135 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/insertRemoteContainer.js.map +1 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js +244 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerPageHydration.js.map +1 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js +263 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerState.js.map +1 -0
- package/workflows/container-contents/remoteHydration/remoteContainers/remoteContainerTimestamps.js.map +1 -0
- package/workflows/container-contents/remoteHydration/tombstoneApplication.js +2 -2
- package/workflows/container-contents/remoteHydration/tombstoneApplication.js.map +1 -1
- package/workflows/container-contents/tombstones/documentTombstoneEvidence.js +2 -2
- package/workflows/container-contents/tombstones/documentTombstoneEvidence.js.map +1 -1
- package/workflows/containers/child/create/createProjection.d.ts +6 -0
- package/workflows/containers/child/create/createProjection.js +43 -0
- package/workflows/containers/child/create/createProjection.js.map +1 -0
- package/workflows/containers/child/create/createSubmission.d.ts +56 -0
- package/workflows/containers/child/create/createSubmission.js +43 -0
- package/workflows/containers/child/create/createSubmission.js.map +1 -0
- package/workflows/containers/child/create/index.d.ts +24 -0
- package/workflows/containers/child/create/index.js +335 -0
- package/workflows/containers/child/create/index.js.map +1 -0
- package/workflows/containers/child/move/index.d.ts +23 -0
- package/workflows/containers/child/move/index.js +268 -0
- package/workflows/containers/child/move/index.js.map +1 -0
- package/workflows/containers/child/move/moveArtifacts.js +102 -0
- package/workflows/containers/child/move/moveArtifacts.js.map +1 -0
- package/workflows/containers/child/move/moveRotation.js +88 -0
- package/workflows/containers/child/move/moveRotation.js.map +1 -0
- package/workflows/containers/child/move/moveWraps.js +49 -0
- package/workflows/containers/child/move/moveWraps.js.map +1 -0
- package/workflows/containers/child/mutationSubmit.js +1 -1
- package/workflows/containers/child/mutationSubmit.js.map +1 -1
- package/workflows/containers/child/recite.js +2 -2
- package/workflows/containers/child/recite.js.map +1 -1
- package/workflows/containers/child/rekey/carriedDescendantRekeys.js +126 -0
- package/workflows/containers/child/rekey/carriedDescendantRekeys.js.map +1 -0
- package/workflows/containers/child/rekey/index.d.ts +32 -0
- package/workflows/containers/child/rekey/index.js +227 -0
- package/workflows/containers/child/rekey/index.js.map +1 -0
- package/workflows/containers/child/rekey/keyringOverrideLineage.d.ts +22 -0
- package/workflows/containers/child/rekey/keyringOverrideLineage.js +39 -0
- package/workflows/containers/child/rekey/rekeyProjection.d.ts +46 -0
- package/workflows/containers/child/rekey/rekeyProjection.js +151 -0
- package/workflows/containers/child/rekey/rekeyProjection.js.map +1 -0
- package/workflows/containers/child/rekey/rekeyRemote.d.ts +24 -0
- package/workflows/containers/child/rekey/rekeyRemote.js +64 -0
- package/workflows/containers/child/rekey/rekeyRemote.js.map +1 -0
- package/workflows/containers/child/revoke.js +5 -5
- package/workflows/containers/child/revoke.js.map +1 -1
- package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js +19 -0
- package/workflows/containers/child/rotation/replacementPrincipalPolicyReferences.js.map +1 -0
- package/workflows/containers/child/rotation/rotationContext.js +64 -0
- package/workflows/containers/child/rotation/rotationContext.js.map +1 -0
- package/workflows/containers/child/rotation/rotationPrincipalPolicies.js +19 -0
- package/workflows/containers/child/rotation/rotationPrincipalPolicies.js.map +1 -0
- package/workflows/containers/child/rotation/rotationWraps.js +85 -0
- package/workflows/containers/child/rotation/rotationWraps.js.map +1 -0
- package/workflows/containers/child/share/currentShareGrantMutation.js +82 -0
- package/workflows/containers/child/share/currentShareGrantMutation.js.map +1 -0
- package/workflows/containers/child/share/currentSharePrincipalPolicy.js +83 -0
- package/workflows/containers/child/share/currentSharePrincipalPolicy.js.map +1 -0
- package/workflows/containers/child/share/index.d.ts +65 -0
- package/workflows/containers/child/share/index.js +256 -0
- package/workflows/containers/child/share/index.js.map +1 -0
- package/workflows/containers/child/share/runtimeCurrentGroupShare.js +79 -0
- package/workflows/containers/child/share/runtimeCurrentGroupShare.js.map +1 -0
- package/workflows/containers/child/share/shareAncestorRepair.js +95 -0
- package/workflows/containers/child/share/shareAncestorRepair.js.map +1 -0
- package/workflows/containers/child/share/shareMaterialization.d.ts +25 -0
- package/workflows/containers/child/share/shareMaterialization.js +164 -0
- package/workflows/containers/child/share/shareMaterialization.js.map +1 -0
- package/workflows/containers/child/share/sharePlanCore.d.ts +82 -0
- package/workflows/containers/child/share/sharePlanCore.js +191 -0
- package/workflows/containers/child/share/sharePlanCore.js.map +1 -0
- package/workflows/containers/child/share/sharePrincipalPolicy.d.ts +51 -0
- package/workflows/containers/child/share/sharePrincipalPolicy.js +194 -0
- package/workflows/containers/child/share/sharePrincipalPolicy.js.map +1 -0
- package/workflows/containers/child/share/shareProjection.js.map +1 -0
- package/workflows/containers/index.d.ts +13 -13
- package/workflows/containers/index.js +12 -12
- package/workflows/containers/index.js.map +1 -1
- package/workflows/containers/writeRefusal.js +1 -1
- package/workflows/containers/writeRefusal.js.map +1 -1
- package/workflows/documents/create/createAdoption.js +1 -1
- package/workflows/documents/create/createResponse.js +2 -2
- package/workflows/documents/create/createResponse.js.map +1 -1
- package/workflows/documents/create/index.js +1 -1
- package/workflows/documents/documentMutationCommit.d.ts +1 -1
- package/workflows/documents/documentMutationPreparation.d.ts +1 -1
- package/workflows/documents/documentMutationPreparation.js +1 -1
- package/workflows/documents/documentMutationPreparation.js.map +1 -1
- package/workflows/documents/index.d.ts +5 -5
- package/workflows/documents/index.js +5 -5
- package/workflows/documents/index.js.map +1 -1
- package/workflows/documents/linkSet/index.js +2 -2
- package/workflows/documents/linkSet/index.js.map +1 -1
- package/workflows/documents/linkSet/linkSetAuthority.js +2 -2
- package/workflows/documents/linkSet/linkSetAuthority.js.map +1 -1
- package/workflows/documents/linkSet/linkSetBlobRewraps.js +2 -2
- package/workflows/documents/linkSet/linkSetBlobRewraps.js.map +1 -1
- package/workflows/documents/linkSet/linkSetProjectionSeed.js +2 -2
- package/workflows/documents/linkSet/linkSetProjectionSeed.js.map +1 -1
- package/workflows/documents/linkSet/linkSetRemote.js +1 -1
- package/workflows/documents/linkSet/linkSetRemote.js.map +1 -1
- package/workflows/documents/purge/index.js +2 -2
- package/workflows/documents/purge/index.js.map +1 -1
- package/workflows/documents/sync/index.js +2 -2
- package/workflows/documents/sync/index.js.map +1 -1
- package/workflows/documents/sync/initialSync.js +1 -1
- package/workflows/documents/sync/readOnlyProjectionFailure.js +1 -1
- package/workflows/documents/sync/readOnlyProjectionFailure.js.map +1 -1
- package/workflows/documents/sync/readOnlySync.d.ts +3 -3
- package/workflows/documents/sync/readOnlySync.js +1 -1
- package/workflows/documents/sync/readOnlySync.js.map +1 -1
- package/workflows/documents/sync/reportDocumentSyncQuarantine.js.map +1 -1
- package/workflows/documents/sync/syncAttemptPlanning.js +2 -2
- package/workflows/documents/sync/syncAttemptPlanning.js.map +1 -1
- package/workflows/documents/sync/syncAttemptState.d.ts +2 -2
- package/workflows/documents/sync/syncAttemptState.js.map +1 -1
- package/workflows/documents/sync/syncResponseResult.js +2 -2
- package/workflows/documents/sync/syncResponseResult.js.map +1 -1
- package/workflows/documents/syncFailures/index.js +1 -1
- package/workflows/documents/syncFailures/index.js.map +1 -1
- package/workflows/documents/syncFailures/syncAbandon.js.map +1 -1
- package/workflows/documents/syncFailures/syncFailureClassification.js +1 -1
- package/workflows/documents/syncFailures/syncFailureClassification.js.map +1 -1
- package/workflows/documents/syncPlan/syncContentKeys.d.ts +1 -1
- package/workflows/documents/syncPlan/syncContentKeys.js +3 -3
- package/workflows/documents/syncPlan/syncContentKeys.js.map +1 -1
- package/workflows/documents/syncPlan/syncPlanMaterial.js +2 -2
- package/workflows/documents/syncPlan/syncPlanMaterial.js.map +1 -1
- package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js +4 -4
- package/workflows/documents/syncRekeys/syncAutomaticContainerRekeys.js.map +1 -1
- package/workflows/documents/syncRekeys/syncContainerRekeyPreparation.js +1 -1
- package/workflows/documents/syncRekeys/syncRecoveryRekey.d.ts +1 -1
- package/workflows/documents/syncRekeys/syncRecoveryRekey.js +1 -1
- package/workflows/organizations/currentOrganizationAuthority.js +2 -2
- package/workflows/organizations/currentOrganizationAuthority.js.map +1 -1
- package/workflows/organizations/groupMetadata/groupMetadataAccess.js +1 -1
- package/workflows/organizations/groupMetadata/groupMetadataAccess.js.map +1 -1
- package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js +1 -1
- package/workflows/organizations/groupMetadata/groupMetadataContainerAuthority.js.map +1 -1
- package/workflows/organizations/groupNames/currentOrganizationGroupNames.js +1 -1
- package/workflows/organizations/groupNames/currentOrganizationGroupNames.js.map +1 -1
- package/workflows/organizations/groupNames/groupNameUniqueness.js +3 -3
- package/workflows/organizations/groupNames/groupNameUniqueness.js.map +1 -1
- package/workflows/organizations/groupNames/organizationGroupNamePolicies.js +2 -2
- package/workflows/organizations/groupNames/organizationGroupNamePolicies.js.map +1 -1
- package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js +1 -1
- package/workflows/organizations/groupPolicy/currentGroupPolicyMutationContext.js.map +1 -1
- package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js +2 -2
- package/workflows/organizations/groupPolicy/groupPolicyMutationContext.js.map +1 -1
- package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js +1 -1
- package/workflows/organizations/groupPolicy/groupPolicyMutationEvidence.js.map +1 -1
- package/workflows/organizations/groupPolicy/groupPolicyVerification.js +1 -1
- package/workflows/organizations/groupPolicy/groupPolicyVerification.js.map +1 -1
- package/workflows/organizations/groups/createCurrentOrganizationGroup.js +1 -1
- package/workflows/organizations/groups/createCurrentOrganizationGroup.js.map +1 -1
- package/workflows/organizations/groups/deleteOrganizationGroup.js +1 -1
- package/workflows/organizations/groups/deleteOrganizationGroup.js.map +1 -1
- package/workflows/organizations/groups/organizationGroupDirectory.js +1 -1
- package/workflows/organizations/groups/organizationGroupDirectory.js.map +1 -1
- package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js +1 -1
- package/workflows/organizations/principalMutations/runtimeCurrentOrganizationMutation.js.map +1 -1
- package/workflows/organizations/provisioning/organizationReplacementVerification.js +1 -1
- package/workflows/organizations/provisioning/organizationReplacementVerification.js.map +1 -1
- package/workflows/organizations/readModel/listLocalOrganizations.js +1 -1
- package/workflows/organizations/readModel/localReadModelDetails.js +1 -1
- package/workflows/organizations/readModel/localReadModelDetails.js.map +1 -1
- package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js +1 -1
- package/workflows/organizations/rematerialization/precedingPrincipalRematerialization.js.map +1 -1
- package/workflows/organizations/rematerialization/principalContainerRematerialization.js +5 -5
- package/workflows/organizations/rematerialization/principalContainerRematerialization.js.map +1 -1
- package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js +1 -1
- package/workflows/organizations/rematerialization/principalContainerRematerializationPlanning.js.map +1 -1
- package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js +1 -1
- package/workflows/organizations/rematerialization/principalContainerRematerializationTargets.js.map +1 -1
- package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js +1 -1
- package/workflows/principals/acknowledgements/acknowledgedPrincipalCurrents.js.map +1 -1
- package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.d.ts +1 -1
- package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js +1 -1
- package/workflows/principals/acknowledgements/acknowledgedPrincipalPredecessor.js.map +1 -1
- package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js +1 -1
- package/workflows/principals/acknowledgements/initialPrincipalCurrentPublication.js.map +1 -1
- package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js +2 -2
- package/workflows/principals/acknowledgements/reconcileAcknowledgedPrincipalCurrent.js.map +1 -1
- package/workflows/principals/externalAdminPolicy.js +2 -2
- package/workflows/principals/externalAdminPolicy.js.map +1 -1
- package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js +2 -2
- package/workflows/principals/historyRecovery/loadRecoveredPrincipalHistoryPage.js.map +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryPrefix.js.map +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryReferences.js.map +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js +1 -1
- package/workflows/principals/historyRecovery/principalHistoryRecoveryStage.js.map +1 -1
- package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js +3 -3
- package/workflows/principals/historyRecovery/recoverPrincipalPolicyHistory.js.map +1 -1
- package/workflows/principals/policyCache/index.js +4 -4
- package/workflows/principals/policyCache/index.js.map +1 -1
- package/workflows/principals/policyCache/principalPolicyCacheAdvance.js +1 -1
- package/workflows/principals/policyCache/principalPolicyCacheAdvance.js.map +1 -1
- package/workflows/principals/policyCache/principalPolicyOrganizationScope.js +3 -3
- package/workflows/principals/policyCache/principalPolicyOrganizationScope.js.map +1 -1
- package/workflows/principals/policyRepair.js +1 -1
- package/workflows/principals/policyRepair.js.map +1 -1
- package/workflows/principals/publicHistory/publicPrincipalHistoryAuthority.js.map +1 -1
- package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js +2 -2
- package/workflows/principals/publicHistory/publicPrincipalHistoryPage.js.map +1 -1
- package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js +3 -3
- package/workflows/principals/publicHistory/publicPrincipalHistoryProgress.js.map +1 -1
- package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.d.ts +2 -2
- package/workflows/principals/publicHistory/publicPrincipalHistoryTypes.js.map +1 -1
- package/workflows/principals/publicHistory/publicProjectionPrincipal.js +1 -1
- package/workflows/principals/publicHistory/publicProjectionPrincipal.js.map +1 -1
- package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js +1 -1
- package/workflows/principals/publicHistory/recoverPublicPrincipalHistory.js.map +1 -1
- package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js +1 -1
- package/workflows/principals/publicHistory/selectPublicPrincipalHistory.js.map +1 -1
- package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js +1 -1
- package/workflows/principals/recoveryOperation/principalRecoveryDirectory.js.map +1 -1
- package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js +1 -1
- package/workflows/principals/recoveryOperation/principalRecoveryMemoValidity.js.map +1 -1
- package/workflows/registration/organizationProvisioningArtifacts.d.ts +1 -1
- package/workflows/registration/persistRegistrationBootstrap.d.ts +2 -2
- package/workflows/registration/persistRegistrationBootstrap.js +2 -2
- package/workflows/registration/persistRegistrationBootstrap.js.map +1 -1
- package/workflows/registration/provisioningAcknowledgement.js +1 -1
- package/workflows/registration/provisioningAcknowledgement.js.map +1 -1
- package/workflows/registration/provisioningBootstrapBuilders.js +1 -1
- package/workflows/registration/registrationPrincipalPolicyPersistence.js +1 -1
- package/workflows/registration/registrationPrincipalPolicyPersistence.js.map +1 -1
- package/workflows/sync/remoteReset.js +7 -7
- package/workflows/sync/remoteReset.js.map +1 -1
- package/workflows/sync/remoteResetAttachments.js +1 -1
- package/workflows/sync/remoteResetCursorScope.js +1 -1
- package/workflows/sync/remoteResetPlans.js +1 -1
- package/workflows/sync/remoteResetPrincipalScope.js +5 -5
- package/workflows/sync/remoteResetPrincipalScope.js.map +1 -1
- package/workflows/sync/remoteResetScope.js +1 -1
- package/data/documents/shared/containerKekCurrency.d.ts +0 -22
- package/data/documents/shared/containerKekEntryVerification.js +0 -15
- package/data/documents/shared/containerKekLogFetch.d.ts +0 -18
- package/data/documents/shared/containerKekLogFetch.js +0 -76
- package/data/documents/shared/containerKekPath.js +0 -265
- package/data/documents/shared/containerKekPath.js.map +0 -1
- package/data/documents/shared/containerKekPathHistory.d.ts +0 -61
- package/data/documents/shared/containerKekPathHistory.js +0 -223
- package/data/documents/shared/containerKekPathHistory.js.map +0 -1
- package/data/documents/shared/containerKekPathVerification.d.ts +0 -15
- package/data/documents/shared/containerKekPathVerification.js +0 -23
- package/data/documents/shared/containerKekPathVerification.js.map +0 -1
- package/data/documents/shared/containerKekWrapping.js +0 -61
- package/data/documents/shared/containerKekWrapping.js.map +0 -1
- package/data/documents/shared/documentSyncUpdateDecryption.js +0 -238
- package/data/documents/shared/documentSyncUpdateDecryption.js.map +0 -1
- package/data/documents/shared/documentSyncUpdateIsolation.d.ts +0 -55
- package/data/documents/shared/documentSyncUpdateIsolation.js +0 -298
- package/data/documents/shared/documentSyncUpdateIsolation.js.map +0 -1
- package/data/documents/shared/keyringLogWalk.d.ts +0 -45
- package/data/documents/shared/keyringLogWalk.js +0 -204
- package/data/documents/shared/keyringRebuild.d.ts +0 -60
- package/data/documents/shared/keyringRebuild.js +0 -242
- package/data/documents/shared/keyringRebuild.js.map +0 -1
- package/data/documents/shared/mutationAcknowledgement.js +0 -10
- package/data/documents/shared/mutationAcknowledgement.js.map +0 -1
- package/data/documents/shared/projection.d.ts +0 -25
- package/data/documents/shared/projection.js +0 -132
- package/data/documents/shared/projection.js.map +0 -1
- package/data/documents/shared/projectionContentKeys.d.ts +0 -90
- package/data/documents/shared/projectionContentKeys.js +0 -262
- package/data/documents/shared/projectionContentKeys.js.map +0 -1
- package/data/documents/shared/projectionTargets.d.ts +0 -38
- package/data/documents/shared/projectionTargets.js +0 -164
- package/data/documents/shared/projectionTargets.js.map +0 -1
- package/data/documents/shared/pullContinuation.js +0 -53
- package/data/documents/shared/syncPagination.d.ts +0 -20
- package/data/documents/shared/syncPagination.js +0 -109
- package/data/documents/shared/syncPagination.js.map +0 -1
- package/data/documents/shared/syncResponseAuthorization.js +0 -63
- package/data/documents/shared/syncResponseAuthorization.js.map +0 -1
- package/data/documents/shared/syncResponses.d.ts +0 -11
- package/data/documents/shared/syncResponses.js +0 -285
- package/data/documents/shared/syncResponses.js.map +0 -1
- package/data/documents/shared/syncSubmitFailure.d.ts +0 -9
- package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js +0 -61
- package/data/keyingProjectionVerification/accessManifestCheckpointEnforcement.js.map +0 -1
- package/data/keyingProjectionVerification/bundleVerification.js +0 -61
- package/data/keyingProjectionVerification/bundleVerification.js.map +0 -1
- package/data/keyingProjectionVerification/checkpointContext.d.ts +0 -45
- package/data/keyingProjectionVerification/checkpointContext.js +0 -120
- package/data/keyingProjectionVerification/checkpointContext.js.map +0 -1
- package/data/keyingProjectionVerification/containerAncestorCitations.js +0 -164
- package/data/keyingProjectionVerification/containerAncestorCitations.js.map +0 -1
- package/data/keyingProjectionVerification/containerCreateManifest.js +0 -28
- package/data/keyingProjectionVerification/containerDestinationVerification.js +0 -51
- package/data/keyingProjectionVerification/containerDestinationVerification.js.map +0 -1
- package/data/keyingProjectionVerification/containerManifestVerification.js +0 -285
- package/data/keyingProjectionVerification/containerManifestVerification.js.map +0 -1
- package/data/keyingProjectionVerification/containerPathVerification.js +0 -51
- package/data/keyingProjectionVerification/containerPathVerification.js.map +0 -1
- package/data/keyingProjectionVerification/containerProjectionVerification.d.ts +0 -25
- package/data/keyingProjectionVerification/containerProjectionVerification.js +0 -254
- package/data/keyingProjectionVerification/containerProjectionVerification.js.map +0 -1
- package/data/keyingProjectionVerification/documentDependencyPaths.d.ts +0 -17
- package/data/keyingProjectionVerification/documentDependencyPaths.js +0 -70
- package/data/keyingProjectionVerification/documentDependencyPaths.js.map +0 -1
- package/data/keyingProjectionVerification/documentManifestPolicies.js +0 -32
- package/data/keyingProjectionVerification/documentManifestPolicies.js.map +0 -1
- package/data/keyingProjectionVerification/documentManifestPredecessor.js +0 -12
- package/data/keyingProjectionVerification/documentManifestVerification.js +0 -135
- package/data/keyingProjectionVerification/documentManifestVerification.js.map +0 -1
- package/data/keyingProjectionVerification/documentProjectionVerification.d.ts +0 -24
- package/data/keyingProjectionVerification/documentProjectionVerification.js +0 -172
- package/data/keyingProjectionVerification/documentProjectionVerification.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js +0 -100
- package/data/keyingProjectionVerification/documentPurgeCheckpointCurrency.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js +0 -8
- package/data/keyingProjectionVerification/documentPurgeCheckpointEnforcement.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js +0 -177
- package/data/keyingProjectionVerification/documentPurgeDocumentChainVerification.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js +0 -17
- package/data/keyingProjectionVerification/documentPurgePolicyCheckpoints.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js +0 -55
- package/data/keyingProjectionVerification/documentPurgePolicyCurrency.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js +0 -116
- package/data/keyingProjectionVerification/documentPurgePrincipalEvidence.js.map +0 -1
- package/data/keyingProjectionVerification/documentPurgeProofVerification.d.ts +0 -34
- package/data/keyingProjectionVerification/documentPurgeProofVerification.js +0 -208
- package/data/keyingProjectionVerification/documentPurgeProofVerification.js.map +0 -1
- package/data/keyingProjectionVerification/manifestCheckpointVerification.js +0 -64
- package/data/keyingProjectionVerification/manifestCheckpointVerification.js.map +0 -1
- package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js +0 -45
- package/data/keyingProjectionVerification/mergeProjectionPolicyEvidence.js.map +0 -1
- package/data/keyingProjectionVerification/organizationFounderBinding.js +0 -41
- package/data/keyingProjectionVerification/organizationFounderBinding.js.map +0 -1
- package/data/keyingProjectionVerification/principalPolicyCache.js +0 -76
- package/data/keyingProjectionVerification/principalPolicyCache.js.map +0 -1
- package/data/keyingProjectionVerification/principalPolicyVerification.js +0 -252
- package/data/keyingProjectionVerification/principalPolicyVerification.js.map +0 -1
- package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js +0 -63
- package/data/keyingProjectionVerification/projectionAuthorizationEvidence.js.map +0 -1
- package/data/keyingProjectionVerification/projectionPolicyEvidence.js +0 -23
- package/data/keyingProjectionVerification/projectionPolicyEvidence.js.map +0 -1
- package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js +0 -72
- package/data/keyingProjectionVerification/resolvedPrincipalPolicy.js.map +0 -1
- package/data/persistence/documentPurgeCheckpointPersistence.d.ts +0 -10
- package/data/persistence/documentPurgeCheckpointPersistence.js +0 -43
- package/data/persistence/documentPurgeCheckpointPersistence.js.map +0 -1
- package/data/persistence/keyingCheckpointAdvancePersistence.js +0 -222
- package/data/persistence/keyingCheckpointAdvancePersistence.js.map +0 -1
- package/data/persistence/keyingCheckpointEvidence.js +0 -32
- package/data/persistence/keyingCheckpointPersistence.js +0 -133
- package/data/persistence/keyingCheckpointPersistence.js.map +0 -1
- package/data/persistence/locallyAcknowledgedCheckpointPersistence.d.ts +0 -53
- package/data/persistence/locallyAcknowledgedCheckpointPersistence.js +0 -167
- package/data/persistence/locallyAcknowledgedCheckpointPersistence.js.map +0 -1
- package/data/persistence/organizationReplacementCheckpointPersistence.js +0 -72
- package/data/persistence/organizationReplacementCheckpointPersistence.js.map +0 -1
- package/data/persistence/principalAuthorizationCheckpoints.js +0 -29
- package/data/persistence/principalAuthorizationCheckpoints.js.map +0 -1
- package/data/persistence/principalGrantRetirementPersistence.d.ts +0 -9
- package/data/persistence/principalGrantRetirementPersistence.js +0 -43
- package/data/persistence/principalGrantRetirementPersistence.js.map +0 -1
- package/data/persistence/principalHistoryEvidencePersistence.d.ts +0 -32
- package/data/persistence/principalHistoryEvidencePersistence.js +0 -92
- package/data/persistence/principalHistoryEvidencePersistence.js.map +0 -1
- package/data/persistence/principalHistoryIncompleteRetention.js +0 -26
- package/data/persistence/principalHistoryIncompleteRetention.js.map +0 -1
- package/data/persistence/principalHistoryNodeRetention.js +0 -201
- package/data/persistence/principalHistoryNodeRetention.js.map +0 -1
- package/data/persistence/principalHistoryPrefixPersistence.d.ts +0 -29
- package/data/persistence/principalHistoryPrefixPersistence.js +0 -102
- package/data/persistence/principalHistoryPrefixPersistence.js.map +0 -1
- package/data/persistence/principalHistoryRootOwnership.js +0 -71
- package/data/persistence/principalHistoryRootOwnership.js.map +0 -1
- package/data/persistence/principalHistoryStagePersistence.d.ts +0 -15
- package/data/persistence/principalHistoryStagePersistence.js +0 -96
- package/data/persistence/principalHistoryStagePersistence.js.map +0 -1
- package/data/persistence/principalHistoryStageRetention.js +0 -45
- package/data/persistence/principalHistoryStageRetention.js.map +0 -1
- package/data/persistence/principalHistoryUnpublishedRetention.js +0 -64
- package/data/persistence/principalHistoryUnpublishedRetention.js.map +0 -1
- package/data/persistence/principalKeyEnvelopeArchivePersistence.js +0 -63
- package/data/persistence/principalKeyEnvelopeArchivePersistence.js.map +0 -1
- package/data/persistence/principalKeyEnvelopeCandidates.js +0 -87
- package/data/persistence/principalKeyEnvelopeCandidates.js.map +0 -1
- package/data/persistence/principalPolicyBundleIntegrity.js +0 -49
- package/data/persistence/principalPolicyBundleIntegrity.js.map +0 -1
- package/data/persistence/principalPolicyCheckpointSelection.js +0 -26
- package/data/persistence/principalPolicyCheckpointSelection.js.map +0 -1
- package/data/persistence/principalPolicyOrganizationPersistence.js +0 -42
- package/data/persistence/principalPolicyOrganizationPersistence.js.map +0 -1
- package/data/persistence/principalPolicyPersistence.js +0 -279
- package/data/persistence/principalPolicyPersistence.js.map +0 -1
- package/data/persistence/principalPolicyReferenceCheckpoint.js +0 -27
- package/data/persistence/principalPolicyReferenceCheckpoint.js.map +0 -1
- package/data/persistence/principalPolicyReferenceIndexPersistence.js +0 -115
- package/data/persistence/principalPolicyReferenceIndexPersistence.js.map +0 -1
- package/data/persistence/principalPolicyReferencePersistence.js +0 -215
- package/data/persistence/principalPolicyReferencePersistence.js.map +0 -1
- package/data/persistence/verifiedPrincipalPolicyBundle.js +0 -33
- package/data/persistence/verifiedPrincipalPolicyBundle.js.map +0 -1
- package/data/persistence/verifiedPrincipalPolicyCurrent.js +0 -56
- package/data/persistence/verifiedPrincipalPolicyCurrent.js.map +0 -1
- package/data/persistence/verifiedPrincipalPolicyRetentionPersistence.js +0 -18
- package/data/persistence/verifiedPrincipalPolicyRetentionPersistence.js.map +0 -1
- package/data/sqlite/containerSchema.d.ts +0 -1193
- package/data/sqlite/containerSchema.js +0 -103
- package/data/sqlite/containerSchema.js.map +0 -1
- package/data/sqlite/documentHistoryPersistence.d.ts +0 -86
- package/data/sqlite/documentHistoryPersistence.js +0 -304
- package/data/sqlite/documentHistoryPersistence.js.map +0 -1
- package/data/sqlite/documentOrphanBlobReclaims.js +0 -6
- package/data/sqlite/documentOrphanBlobReclaims.js.map +0 -1
- package/data/sqlite/documentPendingUpdatePersistence.d.ts +0 -103
- package/data/sqlite/documentPendingUpdatePersistence.js +0 -243
- package/data/sqlite/documentPendingUpdatePersistence.js.map +0 -1
- package/data/sqlite/documentPersistence.d.ts +0 -22
- package/data/sqlite/documentPersistence.js +0 -35
- package/data/sqlite/documentPersistence.js.map +0 -1
- package/data/sqlite/documentPersistenceTypes.d.ts +0 -79
- package/data/sqlite/documentPersistenceTypes.js.map +0 -1
- package/data/sqlite/documentRecordPersistence.d.ts +0 -275
- package/data/sqlite/documentRecordPersistence.js +0 -103
- package/data/sqlite/documentRecordPersistence.js.map +0 -1
- package/data/sqlite/documentSyncFailurePersistence.d.ts +0 -39
- package/data/sqlite/documentSyncFailurePersistence.js +0 -81
- package/data/sqlite/documentSyncFailurePersistence.js.map +0 -1
- package/data/sqlite/organizationDataUsageSchema.js +0 -34
- package/data/sqlite/organizationDataUsageSchema.js.map +0 -1
- package/data/sqlite/organizationProvisioningAttemptSchema.js +0 -23
- package/data/sqlite/organizationProvisioningAttemptSchema.js.map +0 -1
- package/data/sqlite/organizationReadModelTableRegistry.d.ts +0 -1332
- package/data/sqlite/organizationReadModelTableRegistry.js +0 -31
- package/data/sqlite/organizationReadModelTableRegistry.js.map +0 -1
- package/data/sqlite/principalHistoryEvidenceSchema.d.ts +0 -308
- package/data/sqlite/principalHistoryEvidenceSchema.js +0 -48
- package/data/sqlite/principalHistoryEvidenceSchema.js.map +0 -1
- package/data/sqlite/principalHistoryNodeRetentionSchema.js +0 -30
- package/data/sqlite/principalHistoryNodeRetentionSchema.js.map +0 -1
- package/data/sqlite/principalHistoryRetentionSchema.js +0 -25
- package/data/sqlite/principalHistoryRetentionSchema.js.map +0 -1
- package/data/sqlite/principalHistoryStageSchema.d.ts +0 -161
- package/data/sqlite/principalHistoryStageSchema.js +0 -34
- package/data/sqlite/principalHistoryStageSchema.js.map +0 -1
- package/data/sqlite/principalMutationJournalSchema.d.ts +0 -85
- package/data/sqlite/principalMutationJournalSchema.js +0 -13
- package/data/sqlite/principalMutationJournalSchema.js.map +0 -1
- package/data/sqlite/principalPolicySchema.js +0 -72
- package/data/sqlite/principalPolicySchema.js.map +0 -1
- package/data/sqlite/schema.d.ts +0 -8055
- package/data/sqlite/schema.js +0 -525
- package/data/sqlite/schema.js.map +0 -1
- package/data/sqlite/securityIncidentSchema.d.ts +0 -224
- package/data/sqlite/securityIncidentSchema.js +0 -28
- package/data/sqlite/securityIncidentSchema.js.map +0 -1
- package/data/sqlite/verifiedManifestBundleSchema.d.ts +0 -174
- package/data/sqlite/verifiedManifestBundleSchema.js +0 -36
- package/data/sqlite/verifiedManifestBundleSchema.js.map +0 -1
- package/stores/container-contents/backgroundHydration.js +0 -32
- package/stores/container-contents/backgroundHydration.js.map +0 -1
- package/stores/container-contents/containerPurgeCore.js +0 -98
- package/stores/container-contents/containerPurgeCore.js.map +0 -1
- package/stores/container-contents/containerStateMap.js.map +0 -1
- package/stores/container-contents/containerStatePersistence.js +0 -57
- package/stores/container-contents/containerStatePersistence.js.map +0 -1
- package/stores/container-contents/documentRecovery.js +0 -114
- package/stores/container-contents/documentRecovery.js.map +0 -1
- package/stores/container-contents/documentRotation.js +0 -13
- package/stores/container-contents/documentRotation.js.map +0 -1
- package/stores/container-contents/documentWork.js +0 -29
- package/stores/container-contents/documentWork.js.map +0 -1
- package/stores/container-contents/emptyTrashOperation.js.map +0 -1
- package/stores/container-contents/existingSystemContainer.js +0 -58
- package/stores/container-contents/existingSystemContainer.js.map +0 -1
- package/stores/container-contents/groupRewrapOperation.js +0 -52
- package/stores/container-contents/groupRewrapOperation.js.map +0 -1
- package/stores/container-contents/metadataSyncSignal.js +0 -37
- package/stores/container-contents/metadataSyncSignal.js.map +0 -1
- package/stores/container-contents/missingContainerState.js +0 -10
- package/stores/container-contents/missingContainerState.js.map +0 -1
- package/stores/container-contents/missingSyncedContainerState.js.map +0 -1
- package/stores/container-contents/operations.js +0 -301
- package/stores/container-contents/operations.js.map +0 -1
- package/stores/container-contents/organizationMetadataSystemContainer.js +0 -44
- package/stores/container-contents/organizationMetadataSystemContainer.js.map +0 -1
- package/stores/container-contents/purgeContainerOperation.js.map +0 -1
- package/stores/container-contents/reconcilableContainer.d.ts +0 -48
- package/stores/container-contents/reconcilableContainer.js.map +0 -1
- package/stores/container-contents/remoteBackedContainerState.js.map +0 -1
- package/stores/container-contents/remoteContainerIngestion.js +0 -59
- package/stores/container-contents/remoteContainerIngestion.js.map +0 -1
- package/stores/container-contents/remoteEventProjectionInvalidation.js +0 -36
- package/stores/container-contents/remoteEventProjectionInvalidation.js.map +0 -1
- package/stores/container-contents/remoteEventSync.js +0 -38
- package/stores/container-contents/remoteEventSync.js.map +0 -1
- package/stores/container-contents/remoteHydrationRequest.js +0 -245
- package/stores/container-contents/remoteHydrationRequest.js.map +0 -1
- package/stores/container-contents/remoteWriteGuards.js +0 -54
- package/stores/container-contents/remoteWriteGuards.js.map +0 -1
- package/stores/container-contents/remoteWriteQueue.js +0 -51
- package/stores/container-contents/remoteWriteQueue.js.map +0 -1
- package/stores/container-contents/reportShareFailure.js +0 -44
- package/stores/container-contents/reportShareFailure.js.map +0 -1
- package/stores/container-contents/setContainerIconOperation.js +0 -47
- package/stores/container-contents/setContainerIconOperation.js.map +0 -1
- package/stores/container-contents/shareOperations.js +0 -90
- package/stores/container-contents/shareOperations.js.map +0 -1
- package/stores/container-contents/startupHydration.js +0 -110
- package/stores/container-contents/startupHydration.js.map +0 -1
- package/stores/container-contents/syncAgent.d.ts +0 -8
- package/stores/container-contents/syncAgent.js +0 -241
- package/stores/container-contents/syncAgent.js.map +0 -1
- package/stores/container-contents/syncAgentTypes.d.ts +0 -81
- package/stores/container-contents/syncAgentTypes.js.map +0 -1
- package/stores/container-contents/syncLaneIteration.js +0 -237
- package/stores/container-contents/syncLaneIteration.js.map +0 -1
- package/stores/container-contents/systemContainerHydration.js +0 -30
- package/stores/container-contents/systemContainerHydration.js.map +0 -1
- package/stores/container-contents/systemContainerIcon.js +0 -42
- package/stores/container-contents/systemContainerIcon.js.map +0 -1
- package/stores/container-contents/systemContainerLookup.js.map +0 -1
- package/stores/container-contents/systemContainerPostCreate.js +0 -109
- package/stores/container-contents/systemContainerPostCreate.js.map +0 -1
- package/stores/container-contents/systemContainerPromotion.js +0 -49
- package/stores/container-contents/systemContainerPromotion.js.map +0 -1
- package/stores/container-contents/writeGeneration.js.map +0 -1
- package/stores/documents/documentStore/attachmentDetachState.js +0 -54
- package/stores/documents/documentStore/attachmentDetachState.js.map +0 -1
- package/stores/documents/documentStore/attachmentHydration.js +0 -90
- package/stores/documents/documentStore/attachmentHydration.js.map +0 -1
- package/stores/documents/documentStore/attachmentHydrationCommit.js +0 -53
- package/stores/documents/documentStore/attachmentHydrationCommit.js.map +0 -1
- package/stores/documents/documentStore/attachmentIntents.js +0 -39
- package/stores/documents/documentStore/attachmentIntents.js.map +0 -1
- package/stores/documents/documentStore/attachmentMutationPersistence.js +0 -37
- package/stores/documents/documentStore/attachmentMutationPersistence.js.map +0 -1
- package/stores/documents/documentStore/attachmentPersistFollowup.js.map +0 -1
- package/stores/documents/documentStore/attachmentPersistence.js +0 -106
- package/stores/documents/documentStore/attachmentPersistence.js.map +0 -1
- package/stores/documents/documentStore/attachmentRemoval.js +0 -136
- package/stores/documents/documentStore/attachmentRemoval.js.map +0 -1
- package/stores/documents/documentStore/attachmentSnapshot.js.map +0 -1
- package/stores/documents/documentStore/attachmentSourceUpload.js +0 -39
- package/stores/documents/documentStore/attachmentSourceUpload.js.map +0 -1
- package/stores/documents/documentStore/attachmentStaging.js +0 -84
- package/stores/documents/documentStore/attachmentStaging.js.map +0 -1
- package/stores/documents/documentStore/attachmentUploadAttempt.js +0 -97
- package/stores/documents/documentStore/attachmentUploadAttempt.js.map +0 -1
- package/stores/documents/documentStore/attachmentUploadLane.js +0 -49
- package/stores/documents/documentStore/attachmentUploadLane.js.map +0 -1
- package/stores/documents/documentStore/attachmentUploadResume.js +0 -95
- package/stores/documents/documentStore/attachmentUploadResume.js.map +0 -1
- package/stores/documents/documentStore/attachmentWriteGeneration.js +0 -32
- package/stores/documents/documentStore/attachmentWriteGeneration.js.map +0 -1
- package/stores/documents/documentStore/attachments.js +0 -241
- package/stores/documents/documentStore/attachments.js.map +0 -1
- package/stores/documents/documentStore/deferredInitialUpdate.js +0 -116
- package/stores/documents/documentStore/deferredInitialUpdate.js.map +0 -1
- package/stores/documents/documentStore/documentHistoryCompaction.js +0 -67
- package/stores/documents/documentStore/documentHistoryCompaction.js.map +0 -1
- package/stores/documents/documentStore/durableDocumentReload.js +0 -79
- package/stores/documents/documentStore/durableDocumentReload.js.map +0 -1
- package/stores/documents/documentStore/historyRebuild.js +0 -75
- package/stores/documents/documentStore/historyRebuild.js.map +0 -1
- package/stores/documents/documentStore/initialization.js +0 -330
- package/stores/documents/documentStore/initialization.js.map +0 -1
- package/stores/documents/documentStore/initializationAttachments.js +0 -9
- package/stores/documents/documentStore/initializationAttachments.js.map +0 -1
- package/stores/documents/documentStore/initializationHistory.js +0 -33
- package/stores/documents/documentStore/initializationHistory.js.map +0 -1
- package/stores/documents/documentStore/initializationRecovery.js +0 -107
- package/stores/documents/documentStore/initializationRecovery.js.map +0 -1
- package/stores/documents/documentStore/pullContinuationInvalidation.js +0 -61
- package/stores/documents/documentStore/pullContinuationInvalidation.js.map +0 -1
- package/stores/documents/documentStore/remoteRevalidationTelemetry.js +0 -15
- package/stores/documents/documentStore/remoteRevalidationTelemetry.js.map +0 -1
- package/stores/documents/documentStore/remoteWork.js.map +0 -1
- package/stores/documents/documentStore/rotation.js +0 -307
- package/stores/documents/documentStore/rotation.js.map +0 -1
- package/stores/documents/documentStore/rotationProvenance.js +0 -52
- package/stores/documents/documentStore/rotationProvenance.js.map +0 -1
- package/stores/documents/documentStore/rotationSettlement.js +0 -222
- package/stores/documents/documentStore/rotationSettlement.js.map +0 -1
- package/stores/documents/documentStore/sync.js +0 -299
- package/stores/documents/documentStore/sync.js.map +0 -1
- package/stores/documents/documentStore/syncAcceptedUpdateIds.js.map +0 -1
- package/stores/documents/documentStore/syncAttachmentSettlement.js +0 -72
- package/stores/documents/documentStore/syncAttachmentSettlement.js.map +0 -1
- package/stores/documents/documentStore/syncAttachments.js +0 -323
- package/stores/documents/documentStore/syncAttachments.js.map +0 -1
- package/stores/documents/documentStore/syncDetachedAttachments.js +0 -129
- package/stores/documents/documentStore/syncDetachedAttachments.js.map +0 -1
- package/stores/documents/documentStore/syncFinalize.js +0 -204
- package/stores/documents/documentStore/syncFinalize.js.map +0 -1
- package/stores/documents/documentStore/syncGeneration.js.map +0 -1
- package/stores/documents/documentStore/syncOutgoingCoverage.js +0 -96
- package/stores/documents/documentStore/syncOutgoingCoverage.js.map +0 -1
- package/stores/documents/documentStore/syncRemoteSignals.js +0 -67
- package/stores/documents/documentStore/syncRemoteSignals.js.map +0 -1
- package/stores/documents/documentStore/syncRequest.js +0 -157
- package/stores/documents/documentStore/syncRequest.js.map +0 -1
- package/stores/documents/documentStore/syncShared.js +0 -211
- package/stores/documents/documentStore/syncShared.js.map +0 -1
- package/stores/documents/documentStore/syncUpdateImport.js +0 -62
- package/stores/documents/documentStore/syncUpdateImport.js.map +0 -1
- package/stores/documents/documentStore/versionCoverage.js +0 -45
- package/stores/documents/documentStore.d.ts +0 -8
- package/stores/documents/documentStore.js +0 -215
- package/stores/documents/documentStore.js.map +0 -1
- package/workflows/container-contents/container-state/createAdoption.js +0 -193
- package/workflows/container-contents/container-state/createAdoption.js.map +0 -1
- package/workflows/container-contents/container-state/createChild.js +0 -217
- package/workflows/container-contents/container-state/createChild.js.map +0 -1
- package/workflows/container-contents/container-state/createIntentDepth.js +0 -36
- package/workflows/container-contents/container-state/createIntentDepth.js.map +0 -1
- package/workflows/container-contents/container-state/createIntentSettlement.js.map +0 -1
- package/workflows/container-contents/container-state/createIntentSync.js +0 -354
- package/workflows/container-contents/container-state/createIntentSync.js.map +0 -1
- package/workflows/container-contents/container-state/createTerminalFailure.js +0 -19
- package/workflows/container-contents/container-state/createTerminalFailure.js.map +0 -1
- package/workflows/container-contents/container-state/createWithMetadata.js +0 -270
- package/workflows/container-contents/container-state/createWithMetadata.js.map +0 -1
- package/workflows/container-contents/container-state/createWithMetadataPlan.js +0 -68
- package/workflows/container-contents/container-state/createWithMetadataPlan.js.map +0 -1
- package/workflows/container-contents/container-state/groupGrantVerification.js +0 -71
- package/workflows/container-contents/container-state/groupGrantVerification.js.map +0 -1
- package/workflows/container-contents/container-state/groupShareEpoch.js +0 -16
- package/workflows/container-contents/container-state/groupShareEpoch.js.map +0 -1
- package/workflows/container-contents/container-state/localPurgeScope.js +0 -49
- package/workflows/container-contents/container-state/localPurgeScope.js.map +0 -1
- package/workflows/container-contents/container-state/purgeTree.js +0 -298
- package/workflows/container-contents/container-state/purgeTree.js.map +0 -1
- package/workflows/container-contents/container-state/purgeTreeCollection.js.map +0 -1
- package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js +0 -75
- package/workflows/container-contents/container-state/purgeTreeContainerDeletion.js.map +0 -1
- package/workflows/container-contents/container-state/purgeTreeScope.js +0 -175
- package/workflows/container-contents/container-state/purgeTreeScope.js.map +0 -1
- package/workflows/container-contents/container-state/readLocalPurgeScope.js +0 -18
- package/workflows/container-contents/container-state/readLocalPurgeScope.js.map +0 -1
- package/workflows/container-contents/container-state/share.js +0 -283
- package/workflows/container-contents/container-state/share.js.map +0 -1
- package/workflows/container-contents/container-state/sharePersistence.js +0 -136
- package/workflows/container-contents/container-state/sharePersistence.js.map +0 -1
- package/workflows/container-contents/remoteHydration/childIndex.js.map +0 -1
- package/workflows/container-contents/remoteHydration/containerStateFingerprint.js.map +0 -1
- package/workflows/container-contents/remoteHydration/destinationPrefetch.js.map +0 -1
- package/workflows/container-contents/remoteHydration/destinationRoleCache.js.map +0 -1
- package/workflows/container-contents/remoteHydration/destinationRootReload.js +0 -10
- package/workflows/container-contents/remoteHydration/destinationRootReload.js.map +0 -1
- package/workflows/container-contents/remoteHydration/insertRemoteContainer.js +0 -135
- package/workflows/container-contents/remoteHydration/insertRemoteContainer.js.map +0 -1
- package/workflows/container-contents/remoteHydration/laneFetchMarkers.js +0 -21
- package/workflows/container-contents/remoteHydration/laneFetchMarkers.js.map +0 -1
- package/workflows/container-contents/remoteHydration/parentLaneFetch.js +0 -61
- package/workflows/container-contents/remoteHydration/parentLaneFetch.js.map +0 -1
- package/workflows/container-contents/remoteHydration/parentLaneQueue.js.map +0 -1
- package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js +0 -244
- package/workflows/container-contents/remoteHydration/remoteContainerPageHydration.js.map +0 -1
- package/workflows/container-contents/remoteHydration/remoteContainerState.js +0 -263
- package/workflows/container-contents/remoteHydration/remoteContainerState.js.map +0 -1
- package/workflows/container-contents/remoteHydration/remoteContainerTimestamps.js.map +0 -1
- package/workflows/container-contents/remoteHydration/replacementBinding.js +0 -75
- package/workflows/container-contents/remoteHydration/replacementBinding.js.map +0 -1
- package/workflows/container-contents/remoteHydration/verifiedDestination.js +0 -296
- package/workflows/container-contents/remoteHydration/verifiedDestination.js.map +0 -1
- package/workflows/containers/child/carriedDescendantRekeys.js +0 -126
- package/workflows/containers/child/carriedDescendantRekeys.js.map +0 -1
- package/workflows/containers/child/create.d.ts +0 -24
- package/workflows/containers/child/create.js +0 -335
- package/workflows/containers/child/create.js.map +0 -1
- package/workflows/containers/child/createProjection.d.ts +0 -6
- package/workflows/containers/child/createProjection.js +0 -43
- package/workflows/containers/child/createProjection.js.map +0 -1
- package/workflows/containers/child/createSubmission.d.ts +0 -56
- package/workflows/containers/child/createSubmission.js +0 -43
- package/workflows/containers/child/createSubmission.js.map +0 -1
- package/workflows/containers/child/currentShareGrantMutation.js +0 -82
- package/workflows/containers/child/currentShareGrantMutation.js.map +0 -1
- package/workflows/containers/child/currentSharePrincipalPolicy.js +0 -83
- package/workflows/containers/child/currentSharePrincipalPolicy.js.map +0 -1
- package/workflows/containers/child/keyringOverrideLineage.d.ts +0 -22
- package/workflows/containers/child/keyringOverrideLineage.js +0 -39
- package/workflows/containers/child/move.d.ts +0 -23
- package/workflows/containers/child/move.js +0 -268
- package/workflows/containers/child/move.js.map +0 -1
- package/workflows/containers/child/moveArtifacts.js +0 -102
- package/workflows/containers/child/moveArtifacts.js.map +0 -1
- package/workflows/containers/child/moveRotation.js +0 -88
- package/workflows/containers/child/moveRotation.js.map +0 -1
- package/workflows/containers/child/moveWraps.js +0 -49
- package/workflows/containers/child/moveWraps.js.map +0 -1
- package/workflows/containers/child/rekey.d.ts +0 -32
- package/workflows/containers/child/rekey.js +0 -227
- package/workflows/containers/child/rekey.js.map +0 -1
- package/workflows/containers/child/rekeyProjection.d.ts +0 -46
- package/workflows/containers/child/rekeyProjection.js +0 -151
- package/workflows/containers/child/rekeyProjection.js.map +0 -1
- package/workflows/containers/child/rekeyRemote.d.ts +0 -24
- package/workflows/containers/child/rekeyRemote.js +0 -64
- package/workflows/containers/child/rekeyRemote.js.map +0 -1
- package/workflows/containers/child/replacementPrincipalPolicyReferences.js +0 -19
- package/workflows/containers/child/replacementPrincipalPolicyReferences.js.map +0 -1
- package/workflows/containers/child/rotationContext.js +0 -64
- package/workflows/containers/child/rotationContext.js.map +0 -1
- package/workflows/containers/child/rotationPrincipalPolicies.js +0 -19
- package/workflows/containers/child/rotationPrincipalPolicies.js.map +0 -1
- package/workflows/containers/child/rotationWraps.js +0 -85
- package/workflows/containers/child/rotationWraps.js.map +0 -1
- package/workflows/containers/child/runtimeCurrentGroupShare.js +0 -79
- package/workflows/containers/child/runtimeCurrentGroupShare.js.map +0 -1
- package/workflows/containers/child/share.d.ts +0 -65
- package/workflows/containers/child/share.js +0 -256
- package/workflows/containers/child/share.js.map +0 -1
- package/workflows/containers/child/shareAncestorRepair.js +0 -95
- package/workflows/containers/child/shareAncestorRepair.js.map +0 -1
- package/workflows/containers/child/shareMaterialization.d.ts +0 -25
- package/workflows/containers/child/shareMaterialization.js +0 -164
- package/workflows/containers/child/shareMaterialization.js.map +0 -1
- package/workflows/containers/child/sharePlanCore.d.ts +0 -82
- package/workflows/containers/child/sharePlanCore.js +0 -191
- package/workflows/containers/child/sharePlanCore.js.map +0 -1
- package/workflows/containers/child/sharePrincipalPolicy.d.ts +0 -51
- package/workflows/containers/child/sharePrincipalPolicy.js +0 -194
- package/workflows/containers/child/sharePrincipalPolicy.js.map +0 -1
- package/workflows/containers/child/shareProjection.js.map +0 -1
- /package/data/documents/shared/{containerKekCurrency.js → containerKek/containerKekCurrency.js} +0 -0
- /package/data/documents/shared/{containerKekCurrency.js.map → containerKek/containerKekCurrency.js.map} +0 -0
- /package/data/documents/shared/{containerKekEntryVerification.js.map → containerKek/containerKekEntryVerification.js.map} +0 -0
- /package/data/documents/shared/{containerKekLogFetch.js.map → containerKek/containerKekLogFetch.js.map} +0 -0
- /package/data/documents/shared/{containerKekPath.d.ts → containerKek/containerKekPath.d.ts} +0 -0
- /package/data/documents/shared/{keyringLogWalk.js.map → containerKek/keyringLogWalk.js.map} +0 -0
- /package/data/documents/shared/{pullContinuation.d.ts → sync/pullContinuation.d.ts} +0 -0
- /package/data/documents/shared/{pullContinuation.js.map → sync/pullContinuation.js.map} +0 -0
- /package/data/documents/shared/{syncSubmitFailure.js → sync/syncSubmitFailure.js} +0 -0
- /package/data/documents/shared/{syncSubmitFailure.js.map → sync/syncSubmitFailure.js.map} +0 -0
- /package/data/keyingProjectionVerification/{containerCreateManifest.js.map → container/containerCreateManifest.js.map} +0 -0
- /package/data/keyingProjectionVerification/{documentContainerProjections.js → document/documentContainerProjections.js} +0 -0
- /package/data/keyingProjectionVerification/{documentContainerProjections.js.map → document/documentContainerProjections.js.map} +0 -0
- /package/data/keyingProjectionVerification/{documentManifestPredecessor.js.map → document/documentManifestPredecessor.js.map} +0 -0
- /package/data/persistence/{keyingCheckpointEvidence.js.map → keyingCheckpoints/keyingCheckpointEvidence.js.map} +0 -0
- /package/data/persistence/{storedPrincipalPolicyBundle.js → principalPolicy/storedPrincipalPolicyBundle.js} +0 -0
- /package/data/persistence/{storedPrincipalPolicyBundle.js.map → principalPolicy/storedPrincipalPolicyBundle.js.map} +0 -0
- /package/data/sqlite/{documentPersistenceTypes.js → documentPersistence/documentPersistenceTypes.js} +0 -0
- /package/data/sqlite/{containerDocumentTombstoneHoldSchema.d.ts → schema/containerDocumentTombstoneHoldSchema.d.ts} +0 -0
- /package/data/sqlite/{containerDocumentTombstoneHoldSchema.js → schema/containerDocumentTombstoneHoldSchema.js} +0 -0
- /package/data/sqlite/{containerDocumentTombstoneHoldSchema.js.map → schema/containerDocumentTombstoneHoldSchema.js.map} +0 -0
- /package/data/sqlite/{documentAttachmentSchema.d.ts → schema/documentAttachmentSchema.d.ts} +0 -0
- /package/data/sqlite/{documentAttachmentSchema.js → schema/documentAttachmentSchema.js} +0 -0
- /package/data/sqlite/{documentAttachmentSchema.js.map → schema/documentAttachmentSchema.js.map} +0 -0
- /package/data/sqlite/{documentDiscoveryEvidenceSchema.js → schema/documentDiscoveryEvidenceSchema.js} +0 -0
- /package/data/sqlite/{documentDiscoveryEvidenceSchema.js.map → schema/documentDiscoveryEvidenceSchema.js.map} +0 -0
- /package/data/sqlite/{documentPlacementIntentSchema.js → schema/documentPlacementIntentSchema.js} +0 -0
- /package/data/sqlite/{documentPlacementIntentSchema.js.map → schema/documentPlacementIntentSchema.js.map} +0 -0
- /package/data/sqlite/{localIntentSchema.d.ts → schema/localIntentSchema.d.ts} +0 -0
- /package/data/sqlite/{localIntentSchema.js → schema/localIntentSchema.js} +0 -0
- /package/data/sqlite/{localIntentSchema.js.map → schema/localIntentSchema.js.map} +0 -0
- /package/data/sqlite/{organizationFounderSchema.js → schema/organizationFounderSchema.js} +0 -0
- /package/data/sqlite/{organizationFounderSchema.js.map → schema/organizationFounderSchema.js.map} +0 -0
- /package/data/sqlite/{organizationReadModelSchema.js → schema/organizationReadModelSchema.js} +0 -0
- /package/data/sqlite/{organizationReadModelSchema.js.map → schema/organizationReadModelSchema.js.map} +0 -0
- /package/data/sqlite/{principalGrantRetirementSchema.js → schema/principalGrantRetirementSchema.js} +0 -0
- /package/data/sqlite/{principalGrantRetirementSchema.js.map → schema/principalGrantRetirementSchema.js.map} +0 -0
- /package/data/sqlite/{principalPolicySchema.d.ts → schema/principalPolicySchema.d.ts} +0 -0
- /package/stores/container-contents/{containerStateMap.js → containerState/containerStateMap.js} +0 -0
- /package/stores/container-contents/{missingSyncedContainerState.js → containerState/missingSyncedContainerState.js} +0 -0
- /package/stores/container-contents/{reconcilableContainer.js → containerState/reconcilableContainer.js} +0 -0
- /package/stores/container-contents/{remoteHydrationRefresh.js → hydration/remoteHydrationRefresh.js} +0 -0
- /package/stores/container-contents/{remoteHydrationRefresh.js.map → hydration/remoteHydrationRefresh.js.map} +0 -0
- /package/stores/container-contents/{emptyTrashOperation.js → operations/emptyTrashOperation.js} +0 -0
- /package/stores/container-contents/{purgeContainerOperation.js → operations/purgeContainerOperation.js} +0 -0
- /package/stores/container-contents/{remoteBackedContainerState.js → remoteEvents/remoteBackedContainerState.js} +0 -0
- /package/stores/container-contents/{writeGeneration.js → remoteWrites/writeGeneration.js} +0 -0
- /package/stores/container-contents/{syncAgentTypes.js → syncAgent/syncAgentTypes.js} +0 -0
- /package/stores/container-contents/{systemContainerLookup.js → systemContainers/systemContainerLookup.js} +0 -0
- /package/stores/documents/documentStore/{attachmentPersistFollowup.js → attachments/attachmentPersistFollowup.js} +0 -0
- /package/stores/documents/documentStore/{attachmentSnapshot.js → attachments/attachmentSnapshot.js} +0 -0
- /package/stores/documents/documentStore/{remoteWork.js → sync/remoteWork.js} +0 -0
- /package/stores/documents/documentStore/{syncAcceptedUpdateIds.js → sync/syncAcceptedUpdateIds.js} +0 -0
- /package/stores/documents/documentStore/{syncGeneration.js → sync/syncGeneration.js} +0 -0
- /package/stores/documents/documentStore/{versionCoverage.js.map → sync/versionCoverage.js.map} +0 -0
- /package/workflows/container-contents/container-state/{createIntentSettlement.js → create/createIntentSettlement.js} +0 -0
- /package/workflows/container-contents/container-state/{purgeProgress.d.ts → purge/purgeProgress.d.ts} +0 -0
- /package/workflows/container-contents/container-state/{purgeProgress.js → purge/purgeProgress.js} +0 -0
- /package/workflows/container-contents/container-state/{purgeProgress.js.map → purge/purgeProgress.js.map} +0 -0
- /package/workflows/container-contents/container-state/{purgeTreeCollection.js → purge/purgeTreeCollection.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{destinationPrefetch.js → destination/destinationPrefetch.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{destinationRoleCache.js → destination/destinationRoleCache.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{childIndex.js → lanes/childIndex.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{parentLaneQueue.js → lanes/parentLaneQueue.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{containerStateFingerprint.js → remoteContainers/containerStateFingerprint.js} +0 -0
- /package/workflows/container-contents/remoteHydration/{remoteContainerTimestamps.js → remoteContainers/remoteContainerTimestamps.js} +0 -0
- /package/workflows/containers/child/{keyringOverrideLineage.js.map → rekey/keyringOverrideLineage.js.map} +0 -0
- /package/workflows/containers/child/{shareProjection.js → share/shareProjection.js} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { createContainerParentSyncLane, loadContainerSyncLaneCheckRecords, } from "../../../workflows/container-contents/containerPersistence.js";
|
|
2
|
+
import { hasStartupDocumentSyncWork } from "../../../workflows/container-contents/documentPriming/index.js";
|
|
3
|
+
import { isDatabaseUnavailableError } from "../../../workflows/container-contents/syncLane.js";
|
|
4
|
+
const STARTUP_REMOTE_HYDRATION_FRESH_MS = 15 * 60_000;
|
|
5
|
+
function isFreshStartupRemoteHydrationCheck(checkedAt, nowMs) {
|
|
6
|
+
const checkedAtMs = Date.parse(checkedAt);
|
|
7
|
+
return (Number.isFinite(checkedAtMs) &&
|
|
8
|
+
nowMs - checkedAtMs <= STARTUP_REMOTE_HYDRATION_FRESH_MS);
|
|
9
|
+
}
|
|
10
|
+
function shouldHydrateUnmarkedStartupRoot(state) {
|
|
11
|
+
// An empty authenticated cache needs one root probe to discover the remote
|
|
12
|
+
// tree. Existing local-only roots are deliberately left cache-first; explicit
|
|
13
|
+
// refresh and remote events can reconcile them without polling every startup.
|
|
14
|
+
return state.containersById.size === 0;
|
|
15
|
+
}
|
|
16
|
+
async function getStaleStartupRemoteHydrationParentIds(state, isCurrent) {
|
|
17
|
+
const parentIds = [null, ...state.containersById.keys()];
|
|
18
|
+
const syncLanes = parentIds.map((parentId) => createContainerParentSyncLane(parentId));
|
|
19
|
+
const checkRecords = await loadContainerSyncLaneCheckRecords(state.runtime.infra.execSql, syncLanes);
|
|
20
|
+
if (isCurrent?.() === false) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const nowMs = Date.now();
|
|
24
|
+
const rootCheckRecord = checkRecords[0];
|
|
25
|
+
state.rootLaneHydrated = rootCheckRecord
|
|
26
|
+
? isFreshStartupRemoteHydrationCheck(rootCheckRecord.checkedAt, nowMs)
|
|
27
|
+
: false;
|
|
28
|
+
const hydrateUnmarkedRoot = shouldHydrateUnmarkedStartupRoot(state);
|
|
29
|
+
return parentIds.filter((_, index) => {
|
|
30
|
+
const checkRecord = checkRecords[index];
|
|
31
|
+
if (!checkRecord) {
|
|
32
|
+
return hydrateUnmarkedRoot && index === 0;
|
|
33
|
+
}
|
|
34
|
+
return !isFreshStartupRemoteHydrationCheck(checkRecord.checkedAt, nowMs);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function reportStartupHydrationError(message, error) {
|
|
38
|
+
if (isDatabaseUnavailableError(error)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.error(message, error);
|
|
42
|
+
}
|
|
43
|
+
export async function scheduleStaleStartupRemoteHydration(input) {
|
|
44
|
+
const { requestHydration, state } = input;
|
|
45
|
+
if (!state.runtime.auth.isAuthenticated || !state.runtime.state.online) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
let parentIds;
|
|
49
|
+
try {
|
|
50
|
+
parentIds = await getStaleStartupRemoteHydrationParentIds(state, input.isCurrent);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (input.isCurrent?.() === false) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
reportStartupHydrationError("Failed to inspect startup container contents hydration:", error);
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (!parentIds || input.isCurrent?.() === false) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const activeContainerId = state.runtime.state.containerId;
|
|
63
|
+
const shouldScheduleStaleRootRecovery = state.rootLaneHydrated &&
|
|
64
|
+
activeContainerId !== null &&
|
|
65
|
+
!state.containersById.has(activeContainerId);
|
|
66
|
+
if (parentIds.length === 0) {
|
|
67
|
+
return shouldScheduleStaleRootRecovery;
|
|
68
|
+
}
|
|
69
|
+
for (const parentId of parentIds) {
|
|
70
|
+
state.containerParentIdsNeedingHydration.add(parentId);
|
|
71
|
+
}
|
|
72
|
+
// Startup stays cache-first: only the local freshness-marker read is awaited.
|
|
73
|
+
// Missing markers on an existing remote cache do not force a first-open poll;
|
|
74
|
+
// stale checked lanes and empty caches hydrate behind the cached tree.
|
|
75
|
+
// WebSocket events and explicit refresh bypass this.
|
|
76
|
+
void requestHydration().catch((error) => {
|
|
77
|
+
reportStartupHydrationError("Failed to schedule startup container contents hydration:", error);
|
|
78
|
+
});
|
|
79
|
+
return shouldScheduleStaleRootRecovery;
|
|
80
|
+
}
|
|
81
|
+
export async function hasStartupContainerSyncWork(state) {
|
|
82
|
+
const execSql = state.runtime.infra.execSql;
|
|
83
|
+
const [createIntents, moveIntents] = await Promise.all([
|
|
84
|
+
state.persistence.listPendingCreateIntents(execSql),
|
|
85
|
+
state.persistence.listUnsyncedMoveIntents(execSql),
|
|
86
|
+
]);
|
|
87
|
+
if (createIntents.length > 0 || moveIntents.length > 0) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
// Durable document-level work (pending creates, queued Loro updates or
|
|
91
|
+
// attachments, pending document move intents) is drained by lane passes too:
|
|
92
|
+
// the pass primes the owning document stores, which register and request
|
|
93
|
+
// their own sync lanes. Without this probe, a relaunch whose only pending
|
|
94
|
+
// work is document-level never schedules any lane and the write queue sits
|
|
95
|
+
// unattempted forever.
|
|
96
|
+
if (await hasStartupDocumentSyncWork(execSql)) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
const containerIds = Array.from(state.containersById.keys());
|
|
100
|
+
if (containerIds.length === 0) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
const [containersWithPendingMetadata, containersWithPullContinuations] = await Promise.all([
|
|
104
|
+
state.persistence.listContainerIdsWithPendingUpdates(execSql, containerIds),
|
|
105
|
+
state.persistence.listContainerIdsWithPullContinuations(execSql, containerIds),
|
|
106
|
+
]);
|
|
107
|
+
return (containersWithPendingMetadata.length > 0 ||
|
|
108
|
+
containersWithPullContinuations.length > 0);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=startupHydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startupHydration.js","sourceRoot":"","sources":["startupHydration.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type ContainerContentsPersistence,\n createContainerParentSyncLane,\n loadContainerSyncLaneCheckRecords,\n} from \"../../../workflows/container-contents/containerPersistence\";\nimport { hasStartupDocumentSyncWork } from \"../../../workflows/container-contents/documentPriming\";\nimport { isDatabaseUnavailableError } from \"../../../workflows/container-contents/syncLane\";\n\nconst STARTUP_REMOTE_HYDRATION_FRESH_MS = 15 * 60_000;\ntype StartupHydrationExecSql = Parameters<\n typeof loadContainerSyncLaneCheckRecords\n>[0];\n\ninterface StartupHydrationState {\n containerParentIdsNeedingHydration: Set<string | null>;\n containersById: ReadonlyMap<\n string,\n {\n container: {\n metadataDocumentId?: string | null | undefined;\n parentId: string | null;\n };\n }\n >;\n rootLaneHydrated: boolean;\n runtime: {\n auth: { isAuthenticated: boolean; organizationId?: string | null };\n infra: { execSql: StartupHydrationExecSql };\n state: { containerId: string | null; online: boolean };\n };\n}\n\nfunction isFreshStartupRemoteHydrationCheck(\n checkedAt: string,\n nowMs: number,\n): boolean {\n const checkedAtMs = Date.parse(checkedAt);\n return (\n Number.isFinite(checkedAtMs) &&\n nowMs - checkedAtMs <= STARTUP_REMOTE_HYDRATION_FRESH_MS\n );\n}\n\nfunction shouldHydrateUnmarkedStartupRoot(\n state: StartupHydrationState,\n): boolean {\n // An empty authenticated cache needs one root probe to discover the remote\n // tree. Existing local-only roots are deliberately left cache-first; explicit\n // refresh and remote events can reconcile them without polling every startup.\n return state.containersById.size === 0;\n}\n\nasync function getStaleStartupRemoteHydrationParentIds(\n state: StartupHydrationState,\n isCurrent?: (() => boolean) | undefined,\n): Promise<Array<string | null> | null> {\n const parentIds = [null, ...state.containersById.keys()];\n const syncLanes = parentIds.map((parentId) =>\n createContainerParentSyncLane(parentId),\n );\n const checkRecords = await loadContainerSyncLaneCheckRecords(\n state.runtime.infra.execSql,\n syncLanes,\n );\n if (isCurrent?.() === false) {\n return null;\n }\n const nowMs = Date.now();\n const rootCheckRecord = checkRecords[0];\n state.rootLaneHydrated = rootCheckRecord\n ? isFreshStartupRemoteHydrationCheck(rootCheckRecord.checkedAt, nowMs)\n : false;\n const hydrateUnmarkedRoot = shouldHydrateUnmarkedStartupRoot(state);\n\n return parentIds.filter((_, index) => {\n const checkRecord = checkRecords[index];\n if (!checkRecord) {\n return hydrateUnmarkedRoot && index === 0;\n }\n\n return !isFreshStartupRemoteHydrationCheck(checkRecord.checkedAt, nowMs);\n });\n}\n\nfunction reportStartupHydrationError(message: string, error: unknown) {\n if (isDatabaseUnavailableError(error)) {\n return;\n }\n\n console.error(message, error);\n}\n\nexport async function scheduleStaleStartupRemoteHydration(input: {\n isCurrent?: (() => boolean) | undefined;\n requestHydration: () => Promise<void>;\n state: StartupHydrationState;\n}): Promise<boolean> {\n const { requestHydration, state } = input;\n if (!state.runtime.auth.isAuthenticated || !state.runtime.state.online) {\n return false;\n }\n\n let parentIds: Array<string | null> | null;\n try {\n parentIds = await getStaleStartupRemoteHydrationParentIds(\n state,\n input.isCurrent,\n );\n } catch (error: unknown) {\n if (input.isCurrent?.() === false) {\n return false;\n }\n reportStartupHydrationError(\n \"Failed to inspect startup container contents hydration:\",\n error,\n );\n return false;\n }\n if (!parentIds || input.isCurrent?.() === false) {\n return false;\n }\n const activeContainerId = state.runtime.state.containerId;\n const shouldScheduleStaleRootRecovery =\n state.rootLaneHydrated &&\n activeContainerId !== null &&\n !state.containersById.has(activeContainerId);\n if (parentIds.length === 0) {\n return shouldScheduleStaleRootRecovery;\n }\n\n for (const parentId of parentIds) {\n state.containerParentIdsNeedingHydration.add(parentId);\n }\n // Startup stays cache-first: only the local freshness-marker read is awaited.\n // Missing markers on an existing remote cache do not force a first-open poll;\n // stale checked lanes and empty caches hydrate behind the cached tree.\n // WebSocket events and explicit refresh bypass this.\n void requestHydration().catch((error: unknown) => {\n reportStartupHydrationError(\n \"Failed to schedule startup container contents hydration:\",\n error,\n );\n });\n return shouldScheduleStaleRootRecovery;\n}\n\nexport async function hasStartupContainerSyncWork(state: {\n containersById: ReadonlyMap<string, unknown>;\n persistence: ContainerContentsPersistence;\n runtime: { infra: { execSql: StartupHydrationExecSql } };\n}): Promise<boolean> {\n const execSql = state.runtime.infra.execSql;\n const [createIntents, moveIntents] = await Promise.all([\n state.persistence.listPendingCreateIntents(execSql),\n state.persistence.listUnsyncedMoveIntents(execSql),\n ]);\n if (createIntents.length > 0 || moveIntents.length > 0) {\n return true;\n }\n\n // Durable document-level work (pending creates, queued Loro updates or\n // attachments, pending document move intents) is drained by lane passes too:\n // the pass primes the owning document stores, which register and request\n // their own sync lanes. Without this probe, a relaunch whose only pending\n // work is document-level never schedules any lane and the write queue sits\n // unattempted forever.\n if (await hasStartupDocumentSyncWork(execSql)) {\n return true;\n }\n\n const containerIds = Array.from(state.containersById.keys());\n if (containerIds.length === 0) {\n return false;\n }\n const [containersWithPendingMetadata, containersWithPullContinuations] =\n await Promise.all([\n state.persistence.listContainerIdsWithPendingUpdates(\n execSql,\n containerIds,\n ),\n state.persistence.listContainerIdsWithPullContinuations(\n execSql,\n containerIds,\n ),\n ]);\n return (\n containersWithPendingMetadata.length > 0 ||\n containersWithPullContinuations.length > 0\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export type { PurgeOptions, PurgeProgress, } from "../../workflows/container-contents/container-state/purgeProgress.js";
|
|
1
|
+
export type { PurgeOptions, PurgeProgress, } from "../../workflows/container-contents/container-state/purge/purgeProgress.js";
|
|
2
2
|
export * from "./containerContentsStore.js";
|
|
3
|
-
export { isAutomaticRootCatchupContainerNode, isForeignSystemContainerNode, isReconcilableContainerNode, isRemoteBackedContainerNode, isSystemContainerNode, } from "./reconcilableContainer.js";
|
|
3
|
+
export { isAutomaticRootCatchupContainerNode, isForeignSystemContainerNode, isReconcilableContainerNode, isRemoteBackedContainerNode, isSystemContainerNode, } from "./containerState/reconcilableContainer.js";
|
|
4
4
|
export * from "./state.js";
|
|
5
|
-
export * from "./syncAgent.js";
|
|
5
|
+
export * from "./syncAgent/index.js";
|
|
6
6
|
export * from "./types.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./containerContentsStore.js";
|
|
2
|
-
export { isAutomaticRootCatchupContainerNode, isForeignSystemContainerNode, isReconcilableContainerNode, isRemoteBackedContainerNode, isSystemContainerNode, } from "./reconcilableContainer.js";
|
|
2
|
+
export { isAutomaticRootCatchupContainerNode, isForeignSystemContainerNode, isReconcilableContainerNode, isRemoteBackedContainerNode, isSystemContainerNode, } from "./containerState/reconcilableContainer.js";
|
|
3
3
|
export * from "./state.js";
|
|
4
|
-
export * from "./syncAgent.js";
|
|
4
|
+
export * from "./syncAgent/index.js";
|
|
5
5
|
export * from "./types.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC;AACzC,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC","sourcesContent":["export type {\n PurgeOptions,\n PurgeProgress,\n} from \"../../workflows/container-contents/container-state/purge/purgeProgress\";\nexport * from \"./containerContentsStore\";\nexport {\n isAutomaticRootCatchupContainerNode,\n isForeignSystemContainerNode,\n isReconcilableContainerNode,\n isRemoteBackedContainerNode,\n isSystemContainerNode,\n} from \"./containerState/reconcilableContainer\";\nexport * from \"./state\";\nexport * from \"./syncAgent\";\nexport * from \"./types\";\n"]}
|
|
@@ -5,8 +5,8 @@ import { installContainerMetadataRecord } from "../../workflows/container-conten
|
|
|
5
5
|
import { currentMetadataPullContinuation } from "../../workflows/container-contents/metadata/metadataPersistence.js";
|
|
6
6
|
import { reconcileLocalOnlyRootContainers } from "../../workflows/container-contents/remoteHydration/reconciliation.js";
|
|
7
7
|
import { isDatabaseUnavailableError } from "../../workflows/container-contents/syncLane.js";
|
|
8
|
-
import { captureContainerStateMutationGenerations, containerStateMutatedAfter, } from "./containerStateMap.js";
|
|
9
|
-
import { isRemoteBackedContainerState } from "./remoteBackedContainerState.js";
|
|
8
|
+
import { captureContainerStateMutationGenerations, containerStateMutatedAfter, } from "./containerState/containerStateMap.js";
|
|
9
|
+
import { isRemoteBackedContainerState } from "./remoteEvents/remoteBackedContainerState.js";
|
|
10
10
|
function readMetadataDocVersion(state) {
|
|
11
11
|
try {
|
|
12
12
|
return encodeVersionVector(state.doc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localRefresh.js","sourceRoot":"","sources":["localRefresh.ts"],"names":[],"mappings":"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","sourcesContent":["import { encodeVersionVector } from \"@tearleads/loro\";\nimport { errorMessage } from \"../../data/shared/errorMessage\";\nimport type { ContainerContentsPersistence } from \"../../workflows/container-contents/containerPersistence\";\nimport { loadLocalContainerStates } from \"../../workflows/container-contents/localState\";\nimport { installContainerMetadataRecord } from \"../../workflows/container-contents/metadata\";\nimport { currentMetadataPullContinuation } from \"../../workflows/container-contents/metadata/metadataPersistence\";\nimport type { ContainerState } from \"../../workflows/container-contents/remoteHydration\";\nimport { reconcileLocalOnlyRootContainers } from \"../../workflows/container-contents/remoteHydration/reconciliation\";\nimport type { ContainerContentsWorkflowRuntime } from \"../../workflows/container-contents/runtime\";\nimport { isDatabaseUnavailableError } from \"../../workflows/container-contents/syncLane\";\nimport {\n captureContainerStateMutationGenerations,\n containerStateMutatedAfter,\n} from \"./containerStateMap\";\nimport { isRemoteBackedContainerState } from \"./remoteBackedContainerState\";\n\ninterface LocalContainerRefreshHost {\n updateSnapshot: () => void;\n}\n\nexport interface LocalContainerRefreshState {\n containersById: Map<string, ContainerState>;\n documentStoresNeedPriming: boolean;\n initialized: boolean;\n lifecycleGeneration: number;\n localContainerRefreshGeneration: number | null;\n localContainerRefreshPromise: Promise<void> | null;\n localContainerRefreshStructuralGeneration: number | null;\n localContainersNeedRefresh: boolean;\n persistence: ContainerContentsPersistence;\n runtime: ContainerContentsWorkflowRuntime;\n structuralGeneration: number;\n}\n\ninterface LocalContainerRefreshBaseline {\n container: ContainerState[\"container\"];\n docVersion: string | null;\n pullContinuation: ReturnType<typeof currentMetadataPullContinuation>;\n record: ContainerState[\"record\"];\n}\n\nfunction readMetadataDocVersion(state: ContainerState): string | null {\n try {\n return encodeVersionVector(state.doc);\n } catch {\n return null;\n }\n}\n\nfunction captureLocalContainerRefreshBaselines(\n states: ReadonlyMap<string, ContainerState>,\n): ReadonlyMap<string, LocalContainerRefreshBaseline> {\n return new Map(\n Array.from(states, ([containerId, state]) => [\n containerId,\n {\n container: state.container,\n docVersion: readMetadataDocVersion(state),\n pullContinuation: currentMetadataPullContinuation(state),\n record: state.record,\n },\n ]),\n );\n}\n\nfunction liveContainerStateChangedAfterRefreshStarted(\n state: ContainerState,\n baseline: LocalContainerRefreshBaseline | undefined,\n): boolean {\n // No baseline means this live state was inserted after the refresh began.\n // The loaded snapshot cannot authoritatively replace a state that did not\n // exist when its query started.\n return (\n baseline === undefined ||\n state.container !== baseline.container ||\n state.record !== baseline.record ||\n currentMetadataPullContinuation(state) !== baseline.pullContinuation ||\n readMetadataDocVersion(state) !== baseline.docVersion\n );\n}\n\nfunction mergeLocalContainerStates(input: {\n containerMutationGenerations: ReadonlyMap<string, number>;\n liveStateBaselines: ReadonlyMap<string, LocalContainerRefreshBaseline>;\n localContainerStates: ReadonlyArray<ContainerState>;\n remoteContainerIdsAtLoadStart: ReadonlySet<string>;\n state: LocalContainerRefreshState;\n}): void {\n for (const localContainerState of input.localContainerStates) {\n const containerId = localContainerState.container.id;\n if (\n containerStateMutatedAfter(\n input.state.containersById,\n containerId,\n input.containerMutationGenerations,\n )\n ) {\n continue;\n }\n const existingState = input.state.containersById.get(containerId);\n if (existingState) {\n if (\n liveContainerStateChangedAfterRefreshStarted(\n existingState,\n input.liveStateBaselines.get(containerId),\n )\n ) {\n continue;\n }\n // The load can start before a remote create and finish after it. Its\n // local-only snapshot must not erase the remote identity that the create\n // persisted in the meantime, or the pending create intent is re-queued.\n if (\n !input.remoteContainerIdsAtLoadStart.has(containerId) &&\n existingState.record.documentId &&\n !localContainerState.record.documentId\n ) {\n continue;\n }\n existingState.container = localContainerState.container;\n existingState.doc = localContainerState.doc;\n installContainerMetadataRecord(existingState, localContainerState.record);\n } else if (!input.liveStateBaselines.has(containerId)) {\n // A baseline without a live entry means the state was removed while the\n // load was pending. Do not resurrect that stale snapshot.\n input.state.containersById.set(containerId, localContainerState);\n }\n }\n}\n\nfunction isRemoteBackedRootState(containerState: ContainerState): boolean {\n return (\n containerState.container.parentId === null &&\n isRemoteBackedContainerState(containerState)\n );\n}\n\nasync function reconcileLocalsLoadedAfterRemoteState(\n state: LocalContainerRefreshState,\n isCurrent: () => boolean,\n): Promise<void> {\n const remoteRootStates = Array.from(state.containersById.values()).filter(\n isRemoteBackedRootState,\n );\n for (const remoteRootState of remoteRootStates) {\n if (!isCurrent()) {\n return;\n }\n await reconcileLocalOnlyRootContainers({\n isCurrent,\n remoteRootState,\n state,\n });\n }\n}\n\n/**\n * Hand the tree-rebuild failure to host diagnostics as a real `Error`: the\n * unguarded metadata import inside `loadLocalContainerStates` lands corrupt\n * persisted state here, which the string-only log line cannot carry. That line\n * is the fallback for a host without `logError`, so there is no second copy.\n */\nfunction reportLocalContainerRefreshFailure(\n util: ContainerContentsWorkflowRuntime[\"util\"],\n error: unknown,\n): void {\n // Losing the database mid-flight is the teardown outcome the re-armed refresh\n // already covers, not a defect.\n if (!util.logError || isDatabaseUnavailableError(error)) return;\n try {\n // Callers run `void refreshLocalContainers()`, so a host logger that throws\n // or rejects must not escape as an unhandled rejection carrying app frames.\n void Promise.resolve(\n util.logError(\n \"Container contents: local container refresh failed\",\n error,\n ),\n ).catch(() => undefined);\n } catch {\n // Hosts may throw synchronously or return a rejected promise.\n }\n}\n\nexport function refreshLocalContainerStates(input: {\n host: LocalContainerRefreshHost;\n state: LocalContainerRefreshState;\n}): Promise<void> {\n const { host, state } = input;\n if (state.localContainerRefreshPromise) {\n const activeRefresh = state.localContainerRefreshPromise;\n if (\n state.localContainerRefreshGeneration === state.lifecycleGeneration &&\n state.localContainerRefreshStructuralGeneration ===\n state.structuralGeneration\n ) {\n return activeRefresh;\n }\n // A stale refresh owns its replacement retry in `finally`, so callers can\n // share that promise without scheduling a second replacement load.\n return activeRefresh;\n }\n\n if (\n !state.localContainersNeedRefresh ||\n !state.initialized ||\n state.runtime.infra.dbStatus !== \"ready\"\n ) {\n return Promise.resolve();\n }\n\n const lifecycleGeneration = state.lifecycleGeneration;\n const structuralGeneration = state.structuralGeneration;\n const isCurrent = () =>\n state.lifecycleGeneration === lifecycleGeneration &&\n state.structuralGeneration === structuralGeneration;\n state.localContainersNeedRefresh = false;\n const liveStateBaselines = captureLocalContainerRefreshBaselines(\n state.containersById,\n );\n const containerMutationGenerations = captureContainerStateMutationGenerations(\n state.containersById,\n );\n const remoteContainerIdsAtLoadStart = new Set<string>();\n for (const containerState of state.containersById.values()) {\n if (containerState.record.documentId) {\n remoteContainerIdsAtLoadStart.add(containerState.container.id);\n }\n }\n state.localContainerRefreshGeneration = lifecycleGeneration;\n state.localContainerRefreshStructuralGeneration = structuralGeneration;\n const refreshPromise = loadLocalContainerStates({\n persistence: state.persistence,\n runtime: state.runtime,\n })\n .then(async (localContainerStates) => {\n if (!isCurrent()) {\n return;\n }\n mergeLocalContainerStates({\n containerMutationGenerations,\n liveStateBaselines,\n localContainerStates,\n remoteContainerIdsAtLoadStart,\n state,\n });\n // Remote hydration can win the startup race and ingest the server root\n // before this local read returns. Re-run root/system convergence after\n // merging so that the late local bootstrap rows cannot reintroduce a\n // stale root and same-slot system children into the live tree.\n await reconcileLocalsLoadedAfterRemoteState(state, isCurrent);\n if (!isCurrent()) {\n return;\n }\n state.documentStoresNeedPriming = true;\n host.updateSnapshot();\n })\n .catch((error: unknown) => {\n if (!isCurrent()) {\n return;\n }\n state.localContainersNeedRefresh = true;\n state.runtime.util.log(\n `Failed to refresh local container states: ${errorMessage(error)}`,\n );\n reportLocalContainerRefreshFailure(state.runtime.util, error);\n })\n .finally(() => {\n const shouldRetryAfterReplacement = !isCurrent();\n if (state.localContainerRefreshPromise === refreshPromise) {\n state.localContainerRefreshPromise = null;\n state.localContainerRefreshGeneration = null;\n state.localContainerRefreshStructuralGeneration = null;\n }\n if (shouldRetryAfterReplacement) {\n state.localContainersNeedRefresh = true;\n return refreshLocalContainerStates(input);\n }\n return undefined;\n });\n state.localContainerRefreshPromise = refreshPromise;\n\n return refreshPromise;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"localRefresh.js","sourceRoot":"","sources":["localRefresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAElH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mEAAmE,CAAC;AAErH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACL,wCAAwC,EACxC,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AA2BzF,SAAS,sBAAsB,CAAC,KAAqB;IACnD,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,qCAAqC,CAC5C,MAA2C;IAE3C,OAAO,IAAI,GAAG,CACZ,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,WAAW;QACX;YACE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC;YACzC,gBAAgB,EAAE,+BAA+B,CAAC,KAAK,CAAC;YACxD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,4CAA4C,CACnD,KAAqB,EACrB,QAAmD;IAEnD,0EAA0E;IAC1E,0EAA0E;IAC1E,gCAAgC;IAChC,OAAO,CACL,QAAQ,KAAK,SAAS;QACtB,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;QACtC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAChC,+BAA+B,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,gBAAgB;QACpE,sBAAsB,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,UAAU,CACtD,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAMlC;IACC,KAAK,MAAM,mBAAmB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IACE,0BAA0B,CACxB,KAAK,CAAC,KAAK,CAAC,cAAc,EAC1B,WAAW,EACX,KAAK,CAAC,4BAA4B,CACnC,EACD,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE,CAAC;YAClB,IACE,4CAA4C,CAC1C,aAAa,EACb,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAC1C,EACD,CAAC;gBACD,SAAS;YACX,CAAC;YACD,qEAAqE;YACrE,yEAAyE;YACzE,wEAAwE;YACxE,IACE,CAAC,KAAK,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC;gBACrD,aAAa,CAAC,MAAM,CAAC,UAAU;gBAC/B,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;gBACD,SAAS;YACX,CAAC;YACD,aAAa,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;YACxD,aAAa,CAAC,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC;YAC5C,8BAA8B,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,wEAAwE;YACxE,0DAA0D;YAC1D,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,cAA8B;IAC7D,OAAO,CACL,cAAc,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI;QAC1C,4BAA4B,CAAC,cAAc,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qCAAqC,CAClD,KAAiC,EACjC,SAAwB;IAExB,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvE,uBAAuB,CACxB,CAAC;IACF,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,gCAAgC,CAAC;YACrC,SAAS;YACT,eAAe;YACf,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,kCAAkC,CACzC,IAA8C,EAC9C,KAAc;IAEd,8EAA8E;IAC9E,gCAAgC;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC,KAAK,CAAC;QAAE,OAAO;IAChE,IAAI,CAAC;QACH,4EAA4E;QAC5E,4EAA4E;QAC5E,KAAK,OAAO,CAAC,OAAO,CAClB,IAAI,CAAC,QAAQ,CACX,oDAAoD,EACpD,KAAK,CACN,CACF,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAG3C;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC9B,IAAI,KAAK,CAAC,4BAA4B,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,KAAK,CAAC,4BAA4B,CAAC;QACzD,IACE,KAAK,CAAC,+BAA+B,KAAK,KAAK,CAAC,mBAAmB;YACnE,KAAK,CAAC,yCAAyC;gBAC7C,KAAK,CAAC,oBAAoB,EAC5B,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,0EAA0E;QAC1E,mEAAmE;QACnE,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IACE,CAAC,KAAK,CAAC,0BAA0B;QACjC,CAAC,KAAK,CAAC,WAAW;QAClB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,EACxC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACtD,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;IACxD,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,KAAK,CAAC,mBAAmB,KAAK,mBAAmB;QACjD,KAAK,CAAC,oBAAoB,KAAK,oBAAoB,CAAC;IACtD,KAAK,CAAC,0BAA0B,GAAG,KAAK,CAAC;IACzC,MAAM,kBAAkB,GAAG,qCAAqC,CAC9D,KAAK,CAAC,cAAc,CACrB,CAAC;IACF,MAAM,4BAA4B,GAAG,wCAAwC,CAC3E,KAAK,CAAC,cAAc,CACrB,CAAC;IACF,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAAU,CAAC;IACxD,KAAK,MAAM,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3D,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,+BAA+B,GAAG,mBAAmB,CAAC;IAC5D,KAAK,CAAC,yCAAyC,GAAG,oBAAoB,CAAC;IACvE,MAAM,cAAc,GAAG,wBAAwB,CAAC;QAC9C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;SACC,IAAI,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE;QACnC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,yBAAyB,CAAC;YACxB,4BAA4B;YAC5B,kBAAkB;YAClB,oBAAoB;YACpB,6BAA6B;YAC7B,KAAK;SACN,CAAC,CAAC;QACH,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,qCAAqC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CACpB,6CAA6C,YAAY,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;QACF,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,4BAA4B,KAAK,cAAc,EAAE,CAAC;YAC1D,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC;YAC1C,KAAK,CAAC,+BAA+B,GAAG,IAAI,CAAC;YAC7C,KAAK,CAAC,yCAAyC,GAAG,IAAI,CAAC;QACzD,CAAC;QACD,IAAI,2BAA2B,EAAE,CAAC;YAChC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACxC,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACL,KAAK,CAAC,4BAA4B,GAAG,cAAc,CAAC;IAEpD,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import { encodeVersionVector } from \"@tearleads/loro\";\nimport { errorMessage } from \"../../data/shared/errorMessage\";\nimport type { ContainerContentsPersistence } from \"../../workflows/container-contents/containerPersistence\";\nimport { loadLocalContainerStates } from \"../../workflows/container-contents/localState\";\nimport { installContainerMetadataRecord } from \"../../workflows/container-contents/metadata\";\nimport { currentMetadataPullContinuation } from \"../../workflows/container-contents/metadata/metadataPersistence\";\nimport type { ContainerState } from \"../../workflows/container-contents/remoteHydration\";\nimport { reconcileLocalOnlyRootContainers } from \"../../workflows/container-contents/remoteHydration/reconciliation\";\nimport type { ContainerContentsWorkflowRuntime } from \"../../workflows/container-contents/runtime\";\nimport { isDatabaseUnavailableError } from \"../../workflows/container-contents/syncLane\";\nimport {\n captureContainerStateMutationGenerations,\n containerStateMutatedAfter,\n} from \"./containerState/containerStateMap\";\nimport { isRemoteBackedContainerState } from \"./remoteEvents/remoteBackedContainerState\";\n\ninterface LocalContainerRefreshHost {\n updateSnapshot: () => void;\n}\n\nexport interface LocalContainerRefreshState {\n containersById: Map<string, ContainerState>;\n documentStoresNeedPriming: boolean;\n initialized: boolean;\n lifecycleGeneration: number;\n localContainerRefreshGeneration: number | null;\n localContainerRefreshPromise: Promise<void> | null;\n localContainerRefreshStructuralGeneration: number | null;\n localContainersNeedRefresh: boolean;\n persistence: ContainerContentsPersistence;\n runtime: ContainerContentsWorkflowRuntime;\n structuralGeneration: number;\n}\n\ninterface LocalContainerRefreshBaseline {\n container: ContainerState[\"container\"];\n docVersion: string | null;\n pullContinuation: ReturnType<typeof currentMetadataPullContinuation>;\n record: ContainerState[\"record\"];\n}\n\nfunction readMetadataDocVersion(state: ContainerState): string | null {\n try {\n return encodeVersionVector(state.doc);\n } catch {\n return null;\n }\n}\n\nfunction captureLocalContainerRefreshBaselines(\n states: ReadonlyMap<string, ContainerState>,\n): ReadonlyMap<string, LocalContainerRefreshBaseline> {\n return new Map(\n Array.from(states, ([containerId, state]) => [\n containerId,\n {\n container: state.container,\n docVersion: readMetadataDocVersion(state),\n pullContinuation: currentMetadataPullContinuation(state),\n record: state.record,\n },\n ]),\n );\n}\n\nfunction liveContainerStateChangedAfterRefreshStarted(\n state: ContainerState,\n baseline: LocalContainerRefreshBaseline | undefined,\n): boolean {\n // No baseline means this live state was inserted after the refresh began.\n // The loaded snapshot cannot authoritatively replace a state that did not\n // exist when its query started.\n return (\n baseline === undefined ||\n state.container !== baseline.container ||\n state.record !== baseline.record ||\n currentMetadataPullContinuation(state) !== baseline.pullContinuation ||\n readMetadataDocVersion(state) !== baseline.docVersion\n );\n}\n\nfunction mergeLocalContainerStates(input: {\n containerMutationGenerations: ReadonlyMap<string, number>;\n liveStateBaselines: ReadonlyMap<string, LocalContainerRefreshBaseline>;\n localContainerStates: ReadonlyArray<ContainerState>;\n remoteContainerIdsAtLoadStart: ReadonlySet<string>;\n state: LocalContainerRefreshState;\n}): void {\n for (const localContainerState of input.localContainerStates) {\n const containerId = localContainerState.container.id;\n if (\n containerStateMutatedAfter(\n input.state.containersById,\n containerId,\n input.containerMutationGenerations,\n )\n ) {\n continue;\n }\n const existingState = input.state.containersById.get(containerId);\n if (existingState) {\n if (\n liveContainerStateChangedAfterRefreshStarted(\n existingState,\n input.liveStateBaselines.get(containerId),\n )\n ) {\n continue;\n }\n // The load can start before a remote create and finish after it. Its\n // local-only snapshot must not erase the remote identity that the create\n // persisted in the meantime, or the pending create intent is re-queued.\n if (\n !input.remoteContainerIdsAtLoadStart.has(containerId) &&\n existingState.record.documentId &&\n !localContainerState.record.documentId\n ) {\n continue;\n }\n existingState.container = localContainerState.container;\n existingState.doc = localContainerState.doc;\n installContainerMetadataRecord(existingState, localContainerState.record);\n } else if (!input.liveStateBaselines.has(containerId)) {\n // A baseline without a live entry means the state was removed while the\n // load was pending. Do not resurrect that stale snapshot.\n input.state.containersById.set(containerId, localContainerState);\n }\n }\n}\n\nfunction isRemoteBackedRootState(containerState: ContainerState): boolean {\n return (\n containerState.container.parentId === null &&\n isRemoteBackedContainerState(containerState)\n );\n}\n\nasync function reconcileLocalsLoadedAfterRemoteState(\n state: LocalContainerRefreshState,\n isCurrent: () => boolean,\n): Promise<void> {\n const remoteRootStates = Array.from(state.containersById.values()).filter(\n isRemoteBackedRootState,\n );\n for (const remoteRootState of remoteRootStates) {\n if (!isCurrent()) {\n return;\n }\n await reconcileLocalOnlyRootContainers({\n isCurrent,\n remoteRootState,\n state,\n });\n }\n}\n\n/**\n * Hand the tree-rebuild failure to host diagnostics as a real `Error`: the\n * unguarded metadata import inside `loadLocalContainerStates` lands corrupt\n * persisted state here, which the string-only log line cannot carry. That line\n * is the fallback for a host without `logError`, so there is no second copy.\n */\nfunction reportLocalContainerRefreshFailure(\n util: ContainerContentsWorkflowRuntime[\"util\"],\n error: unknown,\n): void {\n // Losing the database mid-flight is the teardown outcome the re-armed refresh\n // already covers, not a defect.\n if (!util.logError || isDatabaseUnavailableError(error)) return;\n try {\n // Callers run `void refreshLocalContainers()`, so a host logger that throws\n // or rejects must not escape as an unhandled rejection carrying app frames.\n void Promise.resolve(\n util.logError(\n \"Container contents: local container refresh failed\",\n error,\n ),\n ).catch(() => undefined);\n } catch {\n // Hosts may throw synchronously or return a rejected promise.\n }\n}\n\nexport function refreshLocalContainerStates(input: {\n host: LocalContainerRefreshHost;\n state: LocalContainerRefreshState;\n}): Promise<void> {\n const { host, state } = input;\n if (state.localContainerRefreshPromise) {\n const activeRefresh = state.localContainerRefreshPromise;\n if (\n state.localContainerRefreshGeneration === state.lifecycleGeneration &&\n state.localContainerRefreshStructuralGeneration ===\n state.structuralGeneration\n ) {\n return activeRefresh;\n }\n // A stale refresh owns its replacement retry in `finally`, so callers can\n // share that promise without scheduling a second replacement load.\n return activeRefresh;\n }\n\n if (\n !state.localContainersNeedRefresh ||\n !state.initialized ||\n state.runtime.infra.dbStatus !== \"ready\"\n ) {\n return Promise.resolve();\n }\n\n const lifecycleGeneration = state.lifecycleGeneration;\n const structuralGeneration = state.structuralGeneration;\n const isCurrent = () =>\n state.lifecycleGeneration === lifecycleGeneration &&\n state.structuralGeneration === structuralGeneration;\n state.localContainersNeedRefresh = false;\n const liveStateBaselines = captureLocalContainerRefreshBaselines(\n state.containersById,\n );\n const containerMutationGenerations = captureContainerStateMutationGenerations(\n state.containersById,\n );\n const remoteContainerIdsAtLoadStart = new Set<string>();\n for (const containerState of state.containersById.values()) {\n if (containerState.record.documentId) {\n remoteContainerIdsAtLoadStart.add(containerState.container.id);\n }\n }\n state.localContainerRefreshGeneration = lifecycleGeneration;\n state.localContainerRefreshStructuralGeneration = structuralGeneration;\n const refreshPromise = loadLocalContainerStates({\n persistence: state.persistence,\n runtime: state.runtime,\n })\n .then(async (localContainerStates) => {\n if (!isCurrent()) {\n return;\n }\n mergeLocalContainerStates({\n containerMutationGenerations,\n liveStateBaselines,\n localContainerStates,\n remoteContainerIdsAtLoadStart,\n state,\n });\n // Remote hydration can win the startup race and ingest the server root\n // before this local read returns. Re-run root/system convergence after\n // merging so that the late local bootstrap rows cannot reintroduce a\n // stale root and same-slot system children into the live tree.\n await reconcileLocalsLoadedAfterRemoteState(state, isCurrent);\n if (!isCurrent()) {\n return;\n }\n state.documentStoresNeedPriming = true;\n host.updateSnapshot();\n })\n .catch((error: unknown) => {\n if (!isCurrent()) {\n return;\n }\n state.localContainersNeedRefresh = true;\n state.runtime.util.log(\n `Failed to refresh local container states: ${errorMessage(error)}`,\n );\n reportLocalContainerRefreshFailure(state.runtime.util, error);\n })\n .finally(() => {\n const shouldRetryAfterReplacement = !isCurrent();\n if (state.localContainerRefreshPromise === refreshPromise) {\n state.localContainerRefreshPromise = null;\n state.localContainerRefreshGeneration = null;\n state.localContainerRefreshStructuralGeneration = null;\n }\n if (shouldRetryAfterReplacement) {\n state.localContainersNeedRefresh = true;\n return refreshLocalContainerStates(input);\n }\n return undefined;\n });\n state.localContainerRefreshPromise = refreshPromise;\n\n return refreshPromise;\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { purgeContainerTree } from "../../../workflows/container-contents/container-state/purge/purgeTree.js";
|
|
2
|
+
import { prepareContainerDocumentRotationSnapshot } from "../documentWork/documentRotation.js";
|
|
3
|
+
import { getContainerContentsStoreLogLabel } from "../logLabel.js";
|
|
4
|
+
import { updateContainerContentsSnapshot } from "../state.js";
|
|
5
|
+
/** @internal Reconciles any completed destructive prefix after expiry. */
|
|
6
|
+
export async function refreshAfterStalePurge(input) {
|
|
7
|
+
const remoteParentIds = new Set();
|
|
8
|
+
for (const remoteDeletedContainerId of input.remoteDeletedContainerIds) {
|
|
9
|
+
const purgedState = input.containerStatesAtStart.get(remoteDeletedContainerId);
|
|
10
|
+
if (purgedState?.record.documentId) {
|
|
11
|
+
remoteParentIds.add(purgedState.container.parentId);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
input.state.localContainersNeedRefresh = true;
|
|
15
|
+
await input.syncAgent.refreshLocalContainers();
|
|
16
|
+
let removedState = false;
|
|
17
|
+
for (const purgedContainerId of input.purgedContainerIds) {
|
|
18
|
+
const deletedState = input.containerStatesAtStart.get(purgedContainerId);
|
|
19
|
+
if (deletedState &&
|
|
20
|
+
input.state.containersById.get(purgedContainerId) === deletedState) {
|
|
21
|
+
input.state.containersById.delete(purgedContainerId);
|
|
22
|
+
removedState = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
input.state.documentStoresNeedPriming = true;
|
|
26
|
+
if (removedState && input.state.initialized) {
|
|
27
|
+
updateContainerContentsSnapshot(input.state);
|
|
28
|
+
}
|
|
29
|
+
if (remoteParentIds.size > 0) {
|
|
30
|
+
await input.syncAgent.requestRemoteHydration({
|
|
31
|
+
followDiscoveredParentLanes: false,
|
|
32
|
+
parentIds: [...remoteParentIds],
|
|
33
|
+
resetAllLaneWatermarks: true,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Shared core of the two recursive purge operations (purgeContainer and
|
|
38
|
+
// emptyTrash): guard readiness and the remote-authority gate, run the
|
|
39
|
+
// recursive purge engine, drop the purged containers from the tree, and log
|
|
40
|
+
// the outcome. The operations differ only in target validation, whether the
|
|
41
|
+
// root container itself survives, and how the result is described/judged.
|
|
42
|
+
export async function runContainerPurge(state, syncAgent, containerId, options, isCurrent, operation) {
|
|
43
|
+
if (state.runtime.infra.dbStatus !== "ready" || !state.snapshot.ready) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
const targetState = state.containersById.get(containerId);
|
|
47
|
+
if (!targetState || !operation.validateTarget(targetState)) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
// Any remote container or document in the subtree needs the server, so require
|
|
51
|
+
// auth + online when the target itself is remote (a local-only subtree can be
|
|
52
|
+
// torn down offline, matching deleteContainer's gate).
|
|
53
|
+
const isRemoteContainer = Boolean(targetState.record.documentId);
|
|
54
|
+
if (isRemoteContainer &&
|
|
55
|
+
(!state.runtime.auth.isAuthenticated || !state.runtime.state.online)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
const containerStatesAtStart = new Map(state.containersById);
|
|
59
|
+
const result = await purgeContainerTree({
|
|
60
|
+
containersById: state.containersById,
|
|
61
|
+
keepRootContainer: operation.keepRootContainer ?? false,
|
|
62
|
+
onProgress: options?.onProgress,
|
|
63
|
+
persistence: state.persistence,
|
|
64
|
+
prepareDocumentRotationSnapshot: (document) => prepareContainerDocumentRotationSnapshot(state.runtime, document),
|
|
65
|
+
resolveProjectionUserKey: state.resolveProjectionUserKey,
|
|
66
|
+
rootContainerId: containerId,
|
|
67
|
+
runtime: state.runtime,
|
|
68
|
+
signal: options?.signal,
|
|
69
|
+
stillCurrent: isCurrent,
|
|
70
|
+
});
|
|
71
|
+
if (!result) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const purgedContainerIds = new Set(result.purgedContainerIds);
|
|
75
|
+
const hasUnsettledRemoteDelete = result.remoteDeletedContainerIds.some((containerId) => !purgedContainerIds.has(containerId));
|
|
76
|
+
if (!isCurrent() || hasUnsettledRemoteDelete) {
|
|
77
|
+
await refreshAfterStalePurge({
|
|
78
|
+
completedCount: result.completedCount,
|
|
79
|
+
containerStatesAtStart,
|
|
80
|
+
purgedContainerIds: result.purgedContainerIds,
|
|
81
|
+
remoteDeletedContainerIds: result.remoteDeletedContainerIds,
|
|
82
|
+
state,
|
|
83
|
+
syncAgent,
|
|
84
|
+
});
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
for (const purgedContainerId of result.purgedContainerIds) {
|
|
88
|
+
state.containersById.delete(purgedContainerId);
|
|
89
|
+
}
|
|
90
|
+
// Only re-render when something actually left the tree; a fully-failed or
|
|
91
|
+
// immediately-cancelled run changed nothing.
|
|
92
|
+
if (result.purgedContainerIds.length > 0) {
|
|
93
|
+
updateContainerContentsSnapshot(state);
|
|
94
|
+
}
|
|
95
|
+
state.runtime.util.log(`${getContainerContentsStoreLogLabel(state)}: ${operation.describeResult(targetState, result)}`);
|
|
96
|
+
return operation.didSucceed(result);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=containerPurgeCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containerPurgeCore.js","sourceRoot":"","sources":["containerPurgeCore.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PurgeOptions } from \"../../../workflows/container-contents/container-state/purge/purgeProgress\";\nimport { purgeContainerTree } from \"../../../workflows/container-contents/container-state/purge/purgeTree\";\nimport { prepareContainerDocumentRotationSnapshot } from \"../documentWork/documentRotation\";\nimport { getContainerContentsStoreLogLabel } from \"../logLabel\";\nimport type { ContainerWriteGuard } from \"../remoteWrites/writeGeneration\";\nimport { updateContainerContentsSnapshot } from \"../state\";\nimport type {\n ContainerContentsStoreSyncAgent,\n ContainerState,\n} from \"../syncAgent\";\nimport type { ContainerContentsStoreState } from \"../types\";\n\ntype ContainerPurgeResult = NonNullable<\n Awaited<ReturnType<typeof purgeContainerTree>>\n>;\n\n/** @internal Reconciles any completed destructive prefix after expiry. */\nexport async function refreshAfterStalePurge(input: {\n completedCount: number;\n containerStatesAtStart: ReadonlyMap<string, ContainerState>;\n purgedContainerIds: readonly string[];\n remoteDeletedContainerIds: readonly string[];\n state: ContainerContentsStoreState;\n syncAgent: ContainerContentsStoreSyncAgent;\n}): Promise<void> {\n const remoteParentIds = new Set<string | null>();\n for (const remoteDeletedContainerId of input.remoteDeletedContainerIds) {\n const purgedState = input.containerStatesAtStart.get(\n remoteDeletedContainerId,\n );\n if (purgedState?.record.documentId) {\n remoteParentIds.add(purgedState.container.parentId);\n }\n }\n\n input.state.localContainersNeedRefresh = true;\n await input.syncAgent.refreshLocalContainers();\n let removedState = false;\n for (const purgedContainerId of input.purgedContainerIds) {\n const deletedState = input.containerStatesAtStart.get(purgedContainerId);\n if (\n deletedState &&\n input.state.containersById.get(purgedContainerId) === deletedState\n ) {\n input.state.containersById.delete(purgedContainerId);\n removedState = true;\n }\n }\n input.state.documentStoresNeedPriming = true;\n if (removedState && input.state.initialized) {\n updateContainerContentsSnapshot(input.state);\n }\n if (remoteParentIds.size > 0) {\n await input.syncAgent.requestRemoteHydration({\n followDiscoveredParentLanes: false,\n parentIds: [...remoteParentIds],\n resetAllLaneWatermarks: true,\n });\n }\n}\n\n// Shared core of the two recursive purge operations (purgeContainer and\n// emptyTrash): guard readiness and the remote-authority gate, run the\n// recursive purge engine, drop the purged containers from the tree, and log\n// the outcome. The operations differ only in target validation, whether the\n// root container itself survives, and how the result is described/judged.\nexport async function runContainerPurge(\n state: ContainerContentsStoreState,\n syncAgent: ContainerContentsStoreSyncAgent,\n containerId: string,\n options: PurgeOptions | undefined,\n isCurrent: ContainerWriteGuard,\n operation: {\n describeResult: (\n target: ContainerState,\n result: ContainerPurgeResult,\n ) => string;\n didSucceed: (result: ContainerPurgeResult) => boolean;\n keepRootContainer?: boolean | undefined;\n validateTarget: (target: ContainerState) => boolean;\n },\n): Promise<boolean> {\n if (state.runtime.infra.dbStatus !== \"ready\" || !state.snapshot.ready) {\n return false;\n }\n\n const targetState = state.containersById.get(containerId);\n if (!targetState || !operation.validateTarget(targetState)) {\n return false;\n }\n\n // Any remote container or document in the subtree needs the server, so require\n // auth + online when the target itself is remote (a local-only subtree can be\n // torn down offline, matching deleteContainer's gate).\n const isRemoteContainer = Boolean(targetState.record.documentId);\n if (\n isRemoteContainer &&\n (!state.runtime.auth.isAuthenticated || !state.runtime.state.online)\n ) {\n return false;\n }\n const containerStatesAtStart = new Map(state.containersById);\n\n const result = await purgeContainerTree({\n containersById: state.containersById,\n keepRootContainer: operation.keepRootContainer ?? false,\n onProgress: options?.onProgress,\n persistence: state.persistence,\n prepareDocumentRotationSnapshot: (document) =>\n prepareContainerDocumentRotationSnapshot(state.runtime, document),\n resolveProjectionUserKey: state.resolveProjectionUserKey,\n rootContainerId: containerId,\n runtime: state.runtime,\n signal: options?.signal,\n stillCurrent: isCurrent,\n });\n if (!result) {\n return false;\n }\n const purgedContainerIds = new Set(result.purgedContainerIds);\n const hasUnsettledRemoteDelete = result.remoteDeletedContainerIds.some(\n (containerId) => !purgedContainerIds.has(containerId),\n );\n if (!isCurrent() || hasUnsettledRemoteDelete) {\n await refreshAfterStalePurge({\n completedCount: result.completedCount,\n containerStatesAtStart,\n purgedContainerIds: result.purgedContainerIds,\n remoteDeletedContainerIds: result.remoteDeletedContainerIds,\n state,\n syncAgent,\n });\n return false;\n }\n\n for (const purgedContainerId of result.purgedContainerIds) {\n state.containersById.delete(purgedContainerId);\n }\n // Only re-render when something actually left the tree; a fully-failed or\n // immediately-cancelled run changed nothing.\n if (result.purgedContainerIds.length > 0) {\n updateContainerContentsSnapshot(state);\n }\n state.runtime.util.log(\n `${getContainerContentsStoreLogLabel(state)}: ${operation.describeResult(targetState, result)}`,\n );\n return operation.didSucceed(result);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptyTrashOperation.js","sourceRoot":"","sources":["emptyTrashOperation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,kFAAkF;AAClF,iFAAiF;AACjF,gFAAgF;AAChF,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAkC,EAClC,SAA0C,EAC1C,gBAAwB,EACxB,OAAsB,EACtB,YAAiC,GAAG,EAAE,CAAC,IAAI;IAE3C,OAAO,iBAAiB,CACtB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT;QACE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClC,kBAAkB,MAAM,CAAC,kBAAkB,CAAC,MAAM,0BAA0B,MAAM,CAAC,WAAW,UAAU;QAC1G,0DAA0D;QAC1D,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC;QACnE,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI;KACjD,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type { PurgeOptions } from \"../../../workflows/container-contents/container-state/purge/purgeProgress\";\nimport type { ContainerWriteGuard } from \"../remoteWrites/writeGeneration\";\nimport type { ContainerContentsStoreSyncAgent } from \"../syncAgent\";\nimport type { ContainerContentsStoreState } from \"../types\";\nimport { runContainerPurge } from \"./containerPurgeCore\";\n\n// Permanently destroy EVERYTHING under the Trash bin — every trashed folder's\n// whole subtree and every document deleted straight into Trash — while leaving\n// the Trash system container itself in place. This is \"Empty Trash\": it reuses\n// the recursive purge engine with keepRootContainer so the bin survives, and it\n// inherits that engine's semantics — documents also linked outside Trash are\n// unlinked (not destroyed), containers are torn down leaf-first, a failed item is\n// skipped rather than aborting the sweep, and an optional signal cancels between\n// items. The target must be a real system container (the Trash bin); like every\n// purge it is online-only when any of its contents are remote.\nexport async function emptyTrash(\n state: ContainerContentsStoreState,\n syncAgent: ContainerContentsStoreSyncAgent,\n trashContainerId: string,\n options?: PurgeOptions,\n isCurrent: ContainerWriteGuard = () => true,\n): Promise<boolean> {\n return runContainerPurge(\n state,\n syncAgent,\n trashContainerId,\n options,\n isCurrent,\n {\n describeResult: (_target, result) =>\n `emptied trash (${result.purgedContainerIds.length} container(s) removed, ${result.failedCount} failed)`,\n // A clean empty: nothing failed and it ran to completion.\n didSucceed: (result) => !result.aborted && result.failedCount === 0,\n keepRootContainer: true,\n validateTarget: (target) =>\n (target.container.systemSlot ?? null) !== null,\n },\n );\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { prepareContainerStateGroupRewrap } from "../../../workflows/container-contents/container-state/share/index.js";
|
|
2
|
+
import { containerStateHasCurrentGroupGrant } from "../../../workflows/container-contents/container-state/share/groupGrantVerification.js";
|
|
3
|
+
export async function prepareContainerGroupRewrap(state, containerId, groupId, accessLevel, options, isCurrent = () => true) {
|
|
4
|
+
if (state.runtime.infra.dbStatus !== "ready" ||
|
|
5
|
+
!state.snapshot.ready ||
|
|
6
|
+
!state.runtime.auth.isAuthenticated ||
|
|
7
|
+
!state.runtime.state.online) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const containerState = state.containersById.get(containerId);
|
|
11
|
+
if (!containerState) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const preparation = await prepareContainerStateGroupRewrap({
|
|
15
|
+
accessLevel,
|
|
16
|
+
containerState,
|
|
17
|
+
groupId,
|
|
18
|
+
requireExistingGrant: options?.requireExistingGrant,
|
|
19
|
+
resolveProjectionUserKey: state.resolveProjectionUserKey,
|
|
20
|
+
runtime: state.runtime,
|
|
21
|
+
stillCurrent: isCurrent,
|
|
22
|
+
});
|
|
23
|
+
return isCurrent() ? preparation : null;
|
|
24
|
+
}
|
|
25
|
+
export async function verifyContainerGroupRewrapCurrent(state, containerId, groupId, accessLevel, expectedGroupHead, expectedContainerId, expectedOrganizationId, isCurrent = () => true) {
|
|
26
|
+
if (state.runtime.infra.dbStatus !== "ready" ||
|
|
27
|
+
!state.snapshot.ready ||
|
|
28
|
+
!state.runtime.auth.isAuthenticated ||
|
|
29
|
+
!state.runtime.state.online) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (containerId !== expectedContainerId) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const containerState = state.containersById.get(expectedContainerId);
|
|
36
|
+
if (!containerState) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const current = await containerStateHasCurrentGroupGrant({
|
|
40
|
+
accessLevel,
|
|
41
|
+
containerState,
|
|
42
|
+
expectedContainerId,
|
|
43
|
+
expectedGroupHead,
|
|
44
|
+
expectedOrganizationId,
|
|
45
|
+
groupId,
|
|
46
|
+
resolveProjectionUserKey: state.resolveProjectionUserKey,
|
|
47
|
+
runtime: state.runtime,
|
|
48
|
+
stillCurrent: isCurrent,
|
|
49
|
+
});
|
|
50
|
+
return isCurrent() && current;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=groupRewrapOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupRewrapOperation.js","sourceRoot":"","sources":["groupRewrapOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,6DAA6D,CAAC;AAC/G,OAAO,EAAE,kCAAkC,EAAE,MAAM,oFAAoF,CAAC;AAOxI,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAkC,EAClC,WAAmB,EACnB,OAAe,EACf,WAA8C,EAC9C,OAAwD,EACxD,YAAiC,GAAG,EAAE,CAAC,IAAI;IAE3C,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO;QACxC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK;QACrB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe;QACnC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,gCAAgC,CAAC;QACzD,WAAW;QACX,cAAc;QACd,OAAO;QACP,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;QACnD,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,SAAS;KACxB,CAAC,CAAC;IACH,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,KAAkC,EAClC,WAAmB,EACnB,OAAe,EACf,WAA8C,EAC9C,iBAA0C,EAC1C,mBAA2B,EAC3B,sBAA8B,EAC9B,YAAiC,GAAG,EAAE,CAAC,IAAI;IAE3C,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO;QACxC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK;QACrB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe;QACnC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kCAAkC,CAAC;QACvD,WAAW;QACX,cAAc;QACd,mBAAmB;QACnB,iBAAiB;QACjB,sBAAsB;QACtB,OAAO;QACP,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,SAAS;KACxB,CAAC,CAAC;IACH,OAAO,SAAS,EAAE,IAAI,OAAO,CAAC;AAChC,CAAC","sourcesContent":["import type { ReferencedPrincipalHead } from \"@tearleads/crypto\";\nimport { prepareContainerStateGroupRewrap } from \"../../../workflows/container-contents/container-state/share\";\nimport { containerStateHasCurrentGroupGrant } from \"../../../workflows/container-contents/container-state/share/groupGrantVerification\";\nimport type { ContainerWriteGuard } from \"../remoteWrites/writeGeneration\";\nimport type {\n ContainerContentsShareAccessLevel,\n ContainerContentsStoreState,\n} from \"../types\";\n\nexport async function prepareContainerGroupRewrap(\n state: ContainerContentsStoreState,\n containerId: string,\n groupId: string,\n accessLevel: ContainerContentsShareAccessLevel,\n options?: { requireExistingGrant?: boolean } | undefined,\n isCurrent: ContainerWriteGuard = () => true,\n) {\n if (\n state.runtime.infra.dbStatus !== \"ready\" ||\n !state.snapshot.ready ||\n !state.runtime.auth.isAuthenticated ||\n !state.runtime.state.online\n ) {\n return null;\n }\n const containerState = state.containersById.get(containerId);\n if (!containerState) {\n return null;\n }\n\n const preparation = await prepareContainerStateGroupRewrap({\n accessLevel,\n containerState,\n groupId,\n requireExistingGrant: options?.requireExistingGrant,\n resolveProjectionUserKey: state.resolveProjectionUserKey,\n runtime: state.runtime,\n stillCurrent: isCurrent,\n });\n return isCurrent() ? preparation : null;\n}\n\nexport async function verifyContainerGroupRewrapCurrent(\n state: ContainerContentsStoreState,\n containerId: string,\n groupId: string,\n accessLevel: ContainerContentsShareAccessLevel,\n expectedGroupHead: ReferencedPrincipalHead,\n expectedContainerId: string,\n expectedOrganizationId: string,\n isCurrent: ContainerWriteGuard = () => true,\n): Promise<boolean> {\n if (\n state.runtime.infra.dbStatus !== \"ready\" ||\n !state.snapshot.ready ||\n !state.runtime.auth.isAuthenticated ||\n !state.runtime.state.online\n ) {\n return false;\n }\n if (containerId !== expectedContainerId) {\n return false;\n }\n const containerState = state.containersById.get(expectedContainerId);\n if (!containerState) {\n return false;\n }\n\n const current = await containerStateHasCurrentGroupGrant({\n accessLevel,\n containerState,\n expectedContainerId,\n expectedGroupHead,\n expectedOrganizationId,\n groupId,\n resolveProjectionUserKey: state.resolveProjectionUserKey,\n runtime: state.runtime,\n stillCurrent: isCurrent,\n });\n return isCurrent() && current;\n}\n"]}
|