@tearleads/client-sdk 0.1.82 → 0.1.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/data/documents/documentSync.js.map +1 -1
  2. package/data/documents/shared/crypto.js.map +1 -1
  3. package/data/documents/shared/types.d.ts +1 -1
  4. package/data/documents/shared/types.js.map +1 -1
  5. package/data/persistence/container-contents/containerContentsPersistence.js +2 -2
  6. package/data/persistence/container-contents/containerContentsPersistence.js.map +1 -1
  7. package/data/persistence/container-contents/containerContentsPersistenceTypes.d.ts +1 -1
  8. package/data/persistence/container-contents/containerContentsPersistenceTypes.js.map +1 -1
  9. package/data/persistence/container-contents/containerDeletionPersistence.js +1 -1
  10. package/data/persistence/container-contents/containerDeletionPersistence.js.map +1 -1
  11. package/data/persistence/container-contents/containerDocumentReassignment.js +7 -9
  12. package/data/persistence/container-contents/containerDocumentReassignment.js.map +1 -1
  13. package/data/persistence/container-contents/containerMetadataMutationPersistence.js +3 -3
  14. package/data/persistence/container-contents/containerMetadataMutationPersistence.js.map +1 -1
  15. package/data/persistence/container-contents/containerMetadataPullContinuationPersistence.js +1 -1
  16. package/data/persistence/container-contents/containerMetadataPullContinuationPersistence.js.map +1 -1
  17. package/data/persistence/container-contents/containerMetadataRows.js +4 -20
  18. package/data/persistence/container-contents/containerMetadataRows.js.map +1 -1
  19. package/data/persistence/container-contents/containerPendingUpdatePersistence.js +2 -2
  20. package/data/persistence/container-contents/containerPendingUpdatePersistence.js.map +1 -1
  21. package/data/persistence/container-contents/containerRebindPersistence.js +4 -17
  22. package/data/persistence/container-contents/containerRebindPersistence.js.map +1 -1
  23. package/data/persistence/container-contents/containerReconcilePersistence.js +1 -1
  24. package/data/persistence/container-contents/containerReconcilePersistence.js.map +1 -1
  25. package/data/persistence/container-contents/containerRemovalWork.js +1 -1
  26. package/data/persistence/container-contents/containerRemovalWork.js.map +1 -1
  27. package/data/persistence/container-contents/containerStructuralRepair.js +5 -11
  28. package/data/persistence/container-contents/containerStructuralRepair.js.map +1 -1
  29. package/data/persistence/container-contents/documentContainerProjectionPersistence.js +34 -9
  30. package/data/persistence/container-contents/documentContainerProjectionPersistence.js.map +1 -1
  31. package/data/persistence/container-contents/dormantContainerMetadata.js +4 -14
  32. package/data/persistence/container-contents/dormantContainerMetadata.js.map +1 -1
  33. package/data/persistence/documents/documentDiscoveryEvidencePersistence.js +5 -9
  34. package/data/persistence/documents/documentDiscoveryEvidencePersistence.js.map +1 -1
  35. package/data/persistence/documents/documentDiscoveryReset.d.ts +6 -0
  36. package/data/persistence/documents/documentProjectionContainers.js +28 -0
  37. package/data/persistence/documents/documentProjectionContainers.js.map +1 -0
  38. package/data/persistence/documents/documentsPersistence.js +5 -9
  39. package/data/persistence/documents/documentsPersistence.js.map +1 -1
  40. package/data/persistence/documents/internal/containerDocumentTombstones.js +4 -11
  41. package/data/persistence/documents/internal/containerDocumentTombstones.js.map +1 -1
  42. package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js +1 -1
  43. package/data/persistence/documents/internal/createDocumentWithHistoryCheckpoint.js.map +1 -1
  44. package/data/persistence/documents/internal/discardDocument.js +2 -2
  45. package/data/persistence/documents/internal/discardDocument.js.map +1 -1
  46. package/data/persistence/documents/internal/documentDeletionPersistence.js +8 -22
  47. package/data/persistence/documents/internal/documentDeletionPersistence.js.map +1 -1
  48. package/data/persistence/documents/internal/documentMutationPersistence.js +3 -3
  49. package/data/persistence/documents/internal/documentMutationPersistence.js.map +1 -1
  50. package/data/persistence/documents/internal/documentPullContinuationPersistence.js +1 -1
  51. package/data/persistence/documents/internal/documentPullContinuationPersistence.js.map +1 -1
  52. package/data/persistence/documents/internal/documentRecordIdentity.js.map +1 -1
  53. package/data/persistence/documents/internal/documentRows.js.map +1 -1
  54. package/data/persistence/documents/internal/ensureDocumentsSchema.js +1 -1
  55. package/data/persistence/documents/internal/ensureDocumentsSchema.js.map +1 -1
  56. package/data/persistence/documents/internal/orphanSideRows.js +1 -1
  57. package/data/persistence/documents/internal/orphanSideRows.js.map +1 -1
  58. package/data/persistence/documents/internal/rowQueryPersistence.js +1 -1
  59. package/data/persistence/documents/internal/rowQueryPersistence.js.map +1 -1
  60. package/data/persistence/documents/internal/syncQueuePersistence.js +2 -2
  61. package/data/persistence/documents/internal/syncQueuePersistence.js.map +1 -1
  62. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentHistoryPersistence.d.ts +1 -1
  63. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentHistoryPersistence.js +5 -5
  64. package/data/persistence/documents/records/documentHistoryPersistence.js.map +1 -0
  65. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentPendingUpdatePersistence.d.ts +2 -2
  66. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentPendingUpdatePersistence.js +2 -2
  67. package/data/persistence/documents/records/documentPendingUpdatePersistence.js.map +1 -0
  68. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentPersistenceTypes.d.ts +2 -2
  69. package/data/persistence/documents/records/documentPersistenceTypes.js.map +1 -0
  70. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentRecordPersistence.d.ts +1 -1
  71. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentRecordPersistence.js +4 -4
  72. package/data/persistence/documents/records/documentRecordPersistence.js.map +1 -0
  73. package/data/persistence/documents/records/documentRowsInTransaction.js +68 -0
  74. package/data/persistence/documents/records/documentRowsInTransaction.js.map +1 -0
  75. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentSyncFailurePersistence.d.ts +2 -2
  76. package/data/{sqlite/documentPersistence → persistence/documents/records}/documentSyncFailurePersistence.js +3 -3
  77. package/data/persistence/documents/records/documentSyncFailurePersistence.js.map +1 -0
  78. package/data/{sqlite/documentPersistence → persistence/documents/records}/index.d.ts +2 -2
  79. package/data/{sqlite/documentPersistence → persistence/documents/records}/index.js +4 -4
  80. package/data/persistence/documents/records/index.js.map +1 -0
  81. package/data/persistence/documents/types.d.ts +2 -2
  82. package/data/persistence/documents/types.js.map +1 -1
  83. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.d.ts +2 -0
  84. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js +9 -0
  85. package/data/persistence/keyingCheckpoints/documentPurgeCheckpointPersistence.js.map +1 -1
  86. package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js +9 -0
  87. package/data/persistence/keyingCheckpoints/keyingCheckpointPersistence.js.map +1 -1
  88. package/data/persistence/principalPolicy/principalPolicyPersistence.js +3 -9
  89. package/data/persistence/principalPolicy/principalPolicyPersistence.js.map +1 -1
  90. package/{workflows/sync/remoteResetPrincipalScope.d.ts → data/persistence/principalPolicy/principalPolicyRemoteReset.d.ts} +1 -1
  91. package/{workflows/sync/remoteResetPrincipalScope.js → data/persistence/principalPolicy/principalPolicyRemoteReset.js} +16 -13
  92. package/data/persistence/principalPolicy/principalPolicyRemoteReset.js.map +1 -0
  93. package/data/persistence/verifiedManifestBundlePersistence.d.ts +2 -0
  94. package/data/persistence/verifiedManifestBundlePersistence.js +7 -0
  95. package/data/persistence/verifiedManifestBundlePersistence.js.map +1 -1
  96. package/data/sqlite/{documentPersistence/documentOrphanBlobReclaims.js → schema/documentOrphanBlobReclaimSchema.js} +1 -1
  97. package/data/sqlite/schema/documentOrphanBlobReclaimSchema.js.map +1 -0
  98. package/data/sqlite/schema/index.js +1 -1
  99. package/data/sqlite/schema/index.js.map +1 -1
  100. package/data/sqlite/sqliteBindBudget.js +12 -0
  101. package/data/sqlite/sqliteBindBudget.js.map +1 -1
  102. package/package.json +1 -1
  103. package/workflows/container-contents/container-state/create/createIntentSeed.js.map +1 -1
  104. package/workflows/container-contents/container-state/create/createWithMetadataPlan.js.map +1 -1
  105. package/workflows/container-contents/container-state/types.js.map +1 -1
  106. package/workflows/container-contents/metadata/index.js.map +1 -1
  107. package/workflows/container-contents/metadata/metadataEvents.d.ts +1 -1
  108. package/workflows/container-contents/metadata/metadataEvents.js.map +1 -1
  109. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js +1 -1
  110. package/workflows/container-contents/metadata/metadataIncomingUpdateIsolation.js.map +1 -1
  111. package/workflows/container-contents/metadata/metadataRemoteSync.d.ts +1 -1
  112. package/workflows/container-contents/metadata/metadataRemoteSync.js.map +1 -1
  113. package/workflows/container-contents/pendingWrites/index.js +1 -1
  114. package/workflows/container-contents/pendingWrites/index.js.map +1 -1
  115. package/workflows/container-contents/recovery/accessRestoration.js +1 -1
  116. package/workflows/container-contents/recovery/accessRestoration.js.map +1 -1
  117. package/workflows/container-contents/remoteReset/containerRemoteReset.d.ts +185 -0
  118. package/workflows/container-contents/remoteReset/containerRemoteReset.js +174 -0
  119. package/workflows/container-contents/remoteReset/containerRemoteReset.js.map +1 -0
  120. package/workflows/container-contents/remoteReset/remoteResetCursorScope.d.ts +14 -0
  121. package/workflows/{sync → container-contents/remoteReset}/remoteResetCursorScope.js +2 -2
  122. package/workflows/container-contents/remoteReset/remoteResetCursorScope.js.map +1 -0
  123. package/workflows/documents/create/documentCreationPersistence.js.map +1 -1
  124. package/workflows/documents/create/index.d.ts +1 -1
  125. package/workflows/documents/create/index.js.map +1 -1
  126. package/workflows/documents/documentMutationCommit.d.ts +1 -1
  127. package/workflows/documents/documentMutationCommit.js.map +1 -1
  128. package/workflows/documents/index.d.ts +2 -2
  129. package/workflows/documents/index.js +2 -2
  130. package/workflows/documents/index.js.map +1 -1
  131. package/workflows/documents/remoteReset/documentRemoteReset.d.ts +56 -0
  132. package/workflows/documents/remoteReset/documentRemoteReset.js +135 -0
  133. package/workflows/documents/remoteReset/documentRemoteReset.js.map +1 -0
  134. package/workflows/{sync → documents/remoteReset}/remoteResetAttachments.js +3 -3
  135. package/workflows/documents/remoteReset/remoteResetAttachments.js.map +1 -0
  136. package/workflows/{sync → documents/remoteReset}/remoteResetPlans.d.ts +1 -1
  137. package/workflows/{sync → documents/remoteReset}/remoteResetPlans.js +7 -7
  138. package/workflows/documents/remoteReset/remoteResetPlans.js.map +1 -0
  139. package/workflows/documents/sync/index.js.map +1 -1
  140. package/workflows/documents/sync/initialSync.d.ts +1 -1
  141. package/workflows/documents/sync/initialSync.js.map +1 -1
  142. package/workflows/documents/sync/readOnlySync.d.ts +1 -1
  143. package/workflows/documents/sync/readOnlySync.js.map +1 -1
  144. package/workflows/documents/sync/syncAttemptPlanning.js.map +1 -1
  145. package/workflows/documents/sync/syncAttemptState.d.ts +1 -1
  146. package/workflows/documents/sync/syncAttemptState.js.map +1 -1
  147. package/workflows/documents/sync/syncResponseResult.js.map +1 -1
  148. package/workflows/documents/sync/syncSubmittedResult.js.map +1 -1
  149. package/workflows/documents/syncFailures/index.js.map +1 -1
  150. package/workflows/documents/syncPlan/syncContentKeys.d.ts +1 -1
  151. package/workflows/documents/syncPlan/syncContentKeys.js.map +1 -1
  152. package/workflows/documents/syncPlan/syncPlanMaterial.js.map +1 -1
  153. package/workflows/documents/syncPlan/syncPlanRequestBounds.js.map +1 -1
  154. package/workflows/documents/syncRekeys/syncContainerRekeys.js.map +1 -1
  155. package/workflows/documents/syncRekeys/syncRecoveryRekey.d.ts +1 -1
  156. package/workflows/documents/syncRekeys/syncRecoveryRekey.js +1 -1
  157. package/workflows/documents/syncRekeys/syncRecoveryRekey.js.map +1 -1
  158. package/workflows/organizations/readModel/listLocalOrganizations.js +1 -1
  159. package/workflows/organizations/readModel/listLocalOrganizations.js.map +1 -1
  160. package/workflows/organizations/readModel/organizationRemoteReset.js +25 -0
  161. package/workflows/organizations/readModel/organizationRemoteReset.js.map +1 -0
  162. package/workflows/registration/persistRegistrationBootstrap.d.ts +1 -1
  163. package/workflows/registration/persistRegistrationBootstrap.js.map +1 -1
  164. package/workflows/sync/remoteReset.js +60 -229
  165. package/workflows/sync/remoteReset.js.map +1 -1
  166. package/workflows/sync/remoteResetScope.d.ts +7 -10
  167. package/workflows/sync/remoteResetScope.js +26 -108
  168. package/workflows/sync/remoteResetScope.js.map +1 -1
  169. package/data/sqlite/documentPersistence/documentHistoryPersistence.js.map +0 -1
  170. package/data/sqlite/documentPersistence/documentOrphanBlobReclaims.js.map +0 -1
  171. package/data/sqlite/documentPersistence/documentPendingUpdatePersistence.js.map +0 -1
  172. package/data/sqlite/documentPersistence/documentPersistenceTypes.js.map +0 -1
  173. package/data/sqlite/documentPersistence/documentRecordPersistence.js.map +0 -1
  174. package/data/sqlite/documentPersistence/documentSyncFailurePersistence.js.map +0 -1
  175. package/data/sqlite/documentPersistence/index.js.map +0 -1
  176. package/workflows/sync/remoteResetAttachments.js.map +0 -1
  177. package/workflows/sync/remoteResetBatches.js +0 -13
  178. package/workflows/sync/remoteResetBatches.js.map +0 -1
  179. package/workflows/sync/remoteResetCursorScope.js.map +0 -1
  180. package/workflows/sync/remoteResetPlans.js.map +0 -1
  181. package/workflows/sync/remoteResetPrincipalScope.js.map +0 -1
  182. /package/data/{sqlite/documentPersistence → persistence/documents/records}/documentPersistenceTypes.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"remoteResetPrincipalScope.js","sourceRoot":"","sources":["remoteResetPrincipalScope.ts"],"names":[],"mappings":"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","sourcesContent":["import { and, eq, or } from \"drizzle-orm\";\nimport {\n principalPolicies,\n principalPolicyBundleHistory,\n principalPolicyBundleReferences,\n principalPolicyCheckpoints,\n principalPolicyOrganizations,\n} from \"../../data/sqlite/schema\";\nimport {\n principalHistoryEntries,\n principalHistoryNodes,\n principalHistoryPrefixes,\n} from \"../../data/sqlite/schema/principalHistoryEvidenceSchema\";\nimport {\n principalHistoryNodeReferences,\n principalHistoryRootOwners,\n} from \"../../data/sqlite/schema/principalHistoryNodeRetentionSchema\";\nimport { principalKeyEnvelopeArchive } from \"../../data/sqlite/schema/principalHistoryRetentionSchema\";\nimport { principalHistoryStages } from \"../../data/sqlite/schema/principalHistoryStageSchema\";\nimport type { ClientSQLiteTransactionScope } from \"../../data/sqlite/sqlitePersistenceRuntime\";\nimport { remoteResetBatches } from \"./remoteResetBatches\";\n\nexport interface RemoteResetPrincipalKey {\n readonly principalId: string;\n readonly principalType: \"group\" | \"organization\";\n}\n\ninterface PrincipalRow {\n readonly id: string;\n readonly type: string;\n}\n\n/** Current cache writes atomically pin ownership; reset never backfills it. */\nexport async function loadRemoteResetPrincipalScope(\n tx: ClientSQLiteTransactionScope,\n organizationId: string,\n): Promise<{\n readonly policyRows: readonly PrincipalRow[];\n readonly principalKeys: readonly RemoteResetPrincipalKey[];\n}> {\n const [policyRows, retainedRows, ownershipRows] = await Promise.all([\n tx\n .select({\n id: principalPolicies.principalId,\n type: principalPolicies.principalType,\n })\n .from(principalPolicies),\n Promise.all(\n [\n principalPolicyBundleHistory,\n principalPolicyBundleReferences,\n principalPolicyCheckpoints,\n ].map((table) =>\n tx\n .selectDistinct({ id: table.principalId, type: table.principalType })\n .from(table),\n ),\n ),\n tx\n .select({\n organizationId: principalPolicyOrganizations.organizationId,\n principalId: principalPolicyOrganizations.principalId,\n principalType: principalPolicyOrganizations.principalType,\n })\n .from(principalPolicyOrganizations),\n ]);\n const owners = new Map(\n ownershipRows.map((row) => [\n `${row.principalType}\\0${row.principalId}`,\n row.organizationId,\n ]),\n );\n for (const row of [...policyRows, ...retainedRows.flat()]) {\n const owner = owners.get(`${row.type}\\0${row.id}`);\n if (row.type === \"group\" && !owner) {\n throw new Error(\n \"Unowned group policy cache requires a local database reset before organization purge\",\n );\n }\n if (row.type !== \"group\" && row.type !== \"organization\") {\n throw new Error(\"Principal policy cache has an invalid principal type\");\n }\n if (\n row.type === \"organization\" &&\n owner !== undefined &&\n owner !== row.id\n ) {\n throw new Error(\n \"Organization policy cache ownership does not match its identity\",\n );\n }\n }\n const keys = new Map<string, RemoteResetPrincipalKey>();\n keys.set(`organization\\0${organizationId}`, {\n principalId: organizationId,\n principalType: \"organization\",\n });\n for (const row of ownershipRows) {\n if (row.principalType !== \"group\" && row.principalType !== \"organization\") {\n throw new Error(\n \"Principal policy cache ownership has an invalid principal type\",\n );\n }\n if (!row.organizationId) {\n throw new Error(\n \"Principal policy cache ownership requires a local database reset\",\n );\n }\n if (row.organizationId !== organizationId) continue;\n keys.set(`${row.principalType}\\0${row.principalId}`, {\n principalId: row.principalId,\n principalType: row.principalType,\n });\n }\n return { policyRows, principalKeys: [...keys.values()] };\n}\n\n// Trust checkpoints and their ownership survive reset. Clearing cached bundles\n// must not turn a previously observed principal or object into first sight.\nexport async function clearRemoteResetPrincipalRows(input: {\n organizationId: string;\n snapshot: { principalKeys: readonly RemoteResetPrincipalKey[] };\n tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n for (const table of [\n principalHistoryNodeReferences,\n principalHistoryRootOwners,\n principalHistoryEntries,\n principalHistoryNodes,\n principalHistoryPrefixes,\n principalKeyEnvelopeArchive,\n ])\n await input.tx\n .delete(table)\n .where(eq(table.organizationId, input.organizationId))\n .run();\n await input.tx\n .delete(principalHistoryStages)\n .where(eq(principalHistoryStages.organizationId, input.organizationId))\n .run();\n for (const principalBatch of remoteResetBatches(\n input.snapshot.principalKeys,\n )) {\n for (const table of [\n principalPolicies,\n principalPolicyBundleHistory,\n principalPolicyBundleReferences,\n ] as const) {\n await input.tx\n .delete(table)\n .where(\n or(\n ...principalBatch.map((principal) =>\n and(\n eq(table.principalType, principal.principalType),\n eq(table.principalId, principal.principalId),\n ),\n ),\n ),\n )\n .run();\n }\n }\n}\n"]}