@seedprotocol/sdk 0.7.7 → 0.7.8-next.1066.gac32194

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 (302) hide show
  1. package/dist/{ClientManager-2GtDWHq6.js → ClientManager-Dcju5x4k.js} +835 -80
  2. package/dist/ClientManager-Dcju5x4k.js.map +1 -0
  3. package/dist/{Item-D6j0IvBP.js → Item-DZfNz7xl.js} +2145 -1354
  4. package/dist/Item-DZfNz7xl.js.map +1 -0
  5. package/dist/{ModelProperty-B52C3CQ2.js → ModelProperty-sMGL-_LK.js} +51 -52
  6. package/dist/ModelProperty-sMGL-_LK.js.map +1 -0
  7. package/dist/{Schema-O1QLoXv6.js → Schema-D-TczaIj.js} +106 -91
  8. package/dist/Schema-D-TczaIj.js.map +1 -0
  9. package/dist/{SchemaValidationService-BxCbfDaI.js → SchemaValidationService-NYTtSCxd.js} +6 -6
  10. package/dist/{SchemaValidationService-BxCbfDaI.js.map → SchemaValidationService-NYTtSCxd.js.map} +1 -1
  11. package/dist/{backfillMetadataPropertyIds-CzSbuucw.js → backfillMetadataPropertyIds-DEvD0OAT.js} +3 -3
  12. package/dist/{backfillMetadataPropertyIds-CzSbuucw.js.map → backfillMetadataPropertyIds-DEvD0OAT.js.map} +1 -1
  13. package/dist/{configurePlatform-Bbpw_R4y.js → configurePlatform-CtA7fydC.js} +2 -2
  14. package/dist/{configurePlatform-Bbpw_R4y.js.map → configurePlatform-CtA7fydC.js.map} +1 -1
  15. package/dist/db/drizzle/0020_add_pending_writes.sql +24 -0
  16. package/dist/db/drizzle/0021_add_pending_write_error_name.sql +1 -0
  17. package/dist/db/drizzle/meta/0020_snapshot.json +1542 -0
  18. package/dist/db/drizzle/meta/0021_snapshot.json +1549 -0
  19. package/dist/db/drizzle/meta/_journal.json +14 -0
  20. package/dist/{detachRowsBeforeDelete-D1TyEMco.js → detachRowsBeforeDelete-CLbBbpX4.js} +2 -2
  21. package/dist/{detachRowsBeforeDelete-D1TyEMco.js.map → detachRowsBeforeDelete-CLbBbpX4.js.map} +1 -1
  22. package/dist/dist/{ClientManager-2GtDWHq6.d.ts → ClientManager-Dcju5x4k.d.ts} +393 -292
  23. package/dist/dist/ClientManager-Dcju5x4k.d.ts.map +1 -0
  24. package/dist/dist/{Item-D6j0IvBP.d.ts → Item-DZfNz7xl.d.ts} +456 -266
  25. package/dist/dist/Item-DZfNz7xl.d.ts.map +1 -0
  26. package/dist/dist/{ModelProperty-B52C3CQ2.d.ts → ModelProperty-sMGL-_LK.d.ts} +1 -1
  27. package/dist/dist/{ModelProperty-B52C3CQ2.d.ts.map → ModelProperty-sMGL-_LK.d.ts.map} +1 -1
  28. package/dist/dist/{Schema-O1QLoXv6.d.ts → Schema-D-TczaIj.d.ts} +11 -4
  29. package/dist/dist/Schema-D-TczaIj.d.ts.map +1 -0
  30. package/dist/dist/{SchemaValidationService-BxCbfDaI.d.ts → SchemaValidationService-NYTtSCxd.d.ts} +1 -1
  31. package/dist/dist/{SchemaValidationService-BxCbfDaI.d.ts.map → SchemaValidationService-NYTtSCxd.d.ts.map} +1 -1
  32. package/dist/dist/{backfillMetadataPropertyIds-CzSbuucw.d.ts → backfillMetadataPropertyIds-DEvD0OAT.d.ts} +1 -1
  33. package/dist/dist/backfillMetadataPropertyIds-DEvD0OAT.d.ts.map +1 -0
  34. package/dist/dist/{configurePlatform-Bbpw_R4y.d.ts → configurePlatform-CtA7fydC.d.ts} +1 -1
  35. package/dist/dist/configurePlatform-CtA7fydC.d.ts.map +1 -0
  36. package/dist/dist/{detachRowsBeforeDelete-D1TyEMco.d.ts → detachRowsBeforeDelete-CLbBbpX4.d.ts} +1 -1
  37. package/dist/dist/detachRowsBeforeDelete-CLbBbpX4.d.ts.map +1 -0
  38. package/dist/dist/{eas-DOdj-EMK.d.ts → eas-CcpQiXum.d.ts} +1 -1
  39. package/dist/dist/eas-CcpQiXum.d.ts.map +1 -0
  40. package/dist/dist/{errors-KM-yq2MD.d.ts → errors-BGk_IJO5.d.ts} +39 -24
  41. package/dist/dist/errors-BGk_IJO5.d.ts.map +1 -0
  42. package/dist/dist/{getItem-Bh0zv-o1.d.ts → getItem-CHSX3aMm.d.ts} +1 -1
  43. package/dist/dist/getItem-CHSX3aMm.d.ts.map +1 -0
  44. package/dist/dist/{getPublishPayload-oH8wJhnH.d.ts → getPublishPayload-DMd4oLir.d.ts} +1 -1
  45. package/dist/dist/getPublishPayload-DMd4oLir.d.ts.map +1 -0
  46. package/dist/dist/{getPublishUploads-Cex-NBe6.d.ts → getPublishUploads-C9FnRG9c.d.ts} +1 -1
  47. package/dist/dist/{getPublishUploads-Cex-NBe6.d.ts.map → getPublishUploads-C9FnRG9c.d.ts.map} +1 -1
  48. package/dist/dist/{index-BbFwftAv.d.ts → index-C--KAWoe.d.ts} +378 -1
  49. package/dist/dist/{index-BbFwftAv.d.ts.map → index-C--KAWoe.d.ts.map} +1 -1
  50. package/dist/dist/{index-DpgQMIRq.d.ts → index-CI0NFf4B.d.ts} +836 -426
  51. package/dist/dist/index-CI0NFf4B.d.ts.map +1 -0
  52. package/dist/dist/{index-BAao3_Po.d.ts → index-Ccmd9_KY.d.ts} +5 -5
  53. package/dist/dist/index-Ccmd9_KY.d.ts.map +1 -0
  54. package/dist/dist/index-l3b6p1Ih.d.ts +14 -0
  55. package/dist/dist/index-l3b6p1Ih.d.ts.map +1 -0
  56. package/dist/dist/{index.browser-nndbVM7z.d.ts → index.browser-kY8M-xUA.d.ts} +2892 -1754
  57. package/dist/dist/{index.browser-nndbVM7z.d.ts.map → index.browser-kY8M-xUA.d.ts.map} +1 -1
  58. package/dist/dist/{index.node-BUfx-JaP.d.ts → index.node-Ba2KbmOq.d.ts} +4125 -2613
  59. package/dist/dist/{index.node-BUfx-JaP.d.ts.map → index.node-Ba2KbmOq.d.ts.map} +1 -1
  60. package/dist/dist/platform.browser.d.ts +2 -2
  61. package/dist/dist/platform.node.d.ts +2 -2
  62. package/dist/dist/{property-BDBvImLs.d.ts → property-CO7pKTWK.d.ts} +3 -3
  63. package/dist/dist/property-CO7pKTWK.d.ts.map +1 -0
  64. package/dist/dist/{propertyValidationRules-BlfLn4rP.d.ts → propertyValidationRules-D5HZy0Bq.d.ts} +1 -1
  65. package/dist/dist/propertyValidationRules-D5HZy0Bq.d.ts.map +1 -0
  66. package/dist/dist/{publishDraftGraph-CLO85LLz.d.ts → publishDraftGraph-B5KPqtbg.d.ts} +1 -1
  67. package/dist/dist/{publishDraftGraph-CLO85LLz.d.ts.map → publishDraftGraph-B5KPqtbg.d.ts.map} +1 -1
  68. package/dist/dist/{resetAmbiguousLegacyItemData-Cy8ik7xk.d.ts → resetAmbiguousLegacyItemData-77CZ8HT7.d.ts} +1 -1
  69. package/dist/dist/resetAmbiguousLegacyItemData-77CZ8HT7.d.ts.map +1 -0
  70. package/dist/dist/{resolveModelForSyncedSeed-DFr4COc4.d.ts → resolveModelForSyncedSeed-DHOq_FGs.d.ts} +1 -1
  71. package/dist/dist/resolveModelForSyncedSeed-DHOq_FGs.d.ts.map +1 -0
  72. package/dist/dist/{syncDbWithEas-CAOlw3i-.d.ts → syncDbWithEas-BZ6AI-IC.d.ts} +1 -1
  73. package/dist/dist/syncDbWithEas-BZ6AI-IC.d.ts.map +1 -0
  74. package/dist/dist/{tabEvents-DksXwk3X.d.ts → tabEvents-CIlzHSKZ.d.ts} +35 -18
  75. package/dist/dist/tabEvents-CIlzHSKZ.d.ts.map +1 -0
  76. package/dist/dist/{tolerantWebAccess-CEIjFGf0.d.ts → tolerantWebAccess-BwJ8bElF.d.ts} +1 -1
  77. package/dist/dist/{tolerantWebAccess-CEIjFGf0.d.ts.map → tolerantWebAccess-BwJ8bElF.d.ts.map} +1 -1
  78. package/dist/dist/{updateSeedRevokedAt-Cjr35YjE.d.ts → updateSeedRevokedAt-ClxMSXcB.d.ts} +1 -1
  79. package/dist/dist/updateSeedRevokedAt-ClxMSXcB.d.ts.map +1 -0
  80. package/dist/{eas-DOdj-EMK.js → eas-CcpQiXum.js} +4 -4
  81. package/dist/{eas-DOdj-EMK.js.map → eas-CcpQiXum.js.map} +1 -1
  82. package/dist/{errors-KM-yq2MD.js → errors-BGk_IJO5.js} +222 -275
  83. package/dist/errors-BGk_IJO5.js.map +1 -0
  84. package/dist/{getItem-Bh0zv-o1.js → getItem-CHSX3aMm.js} +5 -5
  85. package/dist/{getItem-Bh0zv-o1.js.map → getItem-CHSX3aMm.js.map} +1 -1
  86. package/dist/{getPublishPayload-oH8wJhnH.js → getPublishPayload-DMd4oLir.js} +18 -15
  87. package/dist/getPublishPayload-DMd4oLir.js.map +1 -0
  88. package/dist/{getPublishUploads-Cex-NBe6.js → getPublishUploads-C9FnRG9c.js} +9 -6
  89. package/dist/getPublishUploads-C9FnRG9c.js.map +1 -0
  90. package/dist/{index-BbFwftAv.js → index-C--KAWoe.js} +3 -2
  91. package/dist/index-C--KAWoe.js.map +1 -0
  92. package/dist/{index-DpgQMIRq.js → index-CI0NFf4B.js} +132 -9
  93. package/dist/index-CI0NFf4B.js.map +1 -0
  94. package/dist/{index-BAao3_Po.js → index-Ccmd9_KY.js} +8 -8
  95. package/dist/index-Ccmd9_KY.js.map +1 -0
  96. package/dist/index-l3b6p1Ih.js +28 -0
  97. package/dist/index-l3b6p1Ih.js.map +1 -0
  98. package/dist/{index.browser-nndbVM7z.js → index.browser-kY8M-xUA.js} +284 -73
  99. package/dist/index.browser-kY8M-xUA.js.map +1 -0
  100. package/dist/{index.node-BUfx-JaP.js → index.node-Ba2KbmOq.js} +93 -6
  101. package/dist/index.node-Ba2KbmOq.js.map +1 -0
  102. package/dist/main.js +84 -26
  103. package/dist/main.js.map +1 -1
  104. package/dist/node.js +11 -11
  105. package/dist/platform.browser.js +5 -5
  106. package/dist/platform.node.js +4 -4
  107. package/dist/{property-BDBvImLs.js → property-CO7pKTWK.js} +9 -11
  108. package/dist/property-CO7pKTWK.js.map +1 -0
  109. package/dist/{propertyValidationRules-BlfLn4rP.js → propertyValidationRules-D5HZy0Bq.js} +10 -10
  110. package/dist/{propertyValidationRules-BlfLn4rP.js.map → propertyValidationRules-D5HZy0Bq.js.map} +1 -1
  111. package/dist/{publishDraftGraph-CLO85LLz.js → publishDraftGraph-B5KPqtbg.js} +6 -6
  112. package/dist/{publishDraftGraph-CLO85LLz.js.map → publishDraftGraph-B5KPqtbg.js.map} +1 -1
  113. package/dist/{resetAmbiguousLegacyItemData-Cy8ik7xk.js → resetAmbiguousLegacyItemData-77CZ8HT7.js} +2 -2
  114. package/dist/{resetAmbiguousLegacyItemData-Cy8ik7xk.js.map → resetAmbiguousLegacyItemData-77CZ8HT7.js.map} +1 -1
  115. package/dist/{resolveModelForSyncedSeed-DFr4COc4.js → resolveModelForSyncedSeed-DHOq_FGs.js} +2 -2
  116. package/dist/{resolveModelForSyncedSeed-DFr4COc4.js.map → resolveModelForSyncedSeed-DHOq_FGs.js.map} +1 -1
  117. package/dist/seedSchema/PendingWriteSchema.ts +57 -0
  118. package/dist/seedSchema/index.ts +1 -0
  119. package/dist/src/Item/Item.d.ts +38 -7
  120. package/dist/src/Item/Item.d.ts.map +1 -1
  121. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
  122. package/dist/src/ItemProperty/ItemProperty.d.ts +66 -9
  123. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  124. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  125. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
  126. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -1
  127. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -1
  128. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -1
  129. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -1
  130. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts +5 -0
  131. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
  132. package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts +22 -0
  133. package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts.map +1 -0
  134. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  135. package/dist/src/Model/Model.d.ts +50 -9
  136. package/dist/src/Model/Model.d.ts.map +1 -1
  137. package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
  138. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  139. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  140. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
  141. package/dist/src/Schema/Schema.d.ts +22 -3
  142. package/dist/src/Schema/Schema.d.ts.map +1 -1
  143. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -1
  144. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -1
  145. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
  146. package/dist/src/browser/db/Db.d.ts +7 -0
  147. package/dist/src/browser/db/Db.d.ts.map +1 -1
  148. package/dist/src/browser/db/drizzleFiles.d.ts +4 -2
  149. package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -1
  150. package/dist/src/browser/db/sqliteBusyRetry.d.ts.map +1 -1
  151. package/dist/src/browser/helpers/EasClient.d.ts +1 -1
  152. package/dist/src/browser/helpers/EasClient.d.ts.map +1 -1
  153. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
  154. package/dist/src/client/ClientManager.d.ts +13 -0
  155. package/dist/src/client/ClientManager.d.ts.map +1 -1
  156. package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
  157. package/dist/src/client/addressesPersisted.d.ts +10 -0
  158. package/dist/src/client/addressesPersisted.d.ts.map +1 -0
  159. package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
  160. package/dist/src/db/Db/BaseDb.d.ts +10 -0
  161. package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
  162. package/dist/src/db/read/getItemProperties.d.ts.map +1 -1
  163. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  164. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  165. package/dist/src/db/read/getSeedData.d.ts +4 -1
  166. package/dist/src/db/read/getSeedData.d.ts.map +1 -1
  167. package/dist/src/db/read/getSeedPublisher.d.ts +4 -1
  168. package/dist/src/db/read/getSeedPublisher.d.ts.map +1 -1
  169. package/dist/src/db/read/getVersionData.d.ts +4 -1
  170. package/dist/src/db/read/getVersionData.d.ts.map +1 -1
  171. package/dist/src/db/write/claimUnpublishedDrafts.d.ts +6 -0
  172. package/dist/src/db/write/claimUnpublishedDrafts.d.ts.map +1 -1
  173. package/dist/src/db/write/createMetadata.d.ts +13 -0
  174. package/dist/src/db/write/createMetadata.d.ts.map +1 -1
  175. package/dist/src/db/write/createNewItem.d.ts +5 -0
  176. package/dist/src/db/write/createNewItem.d.ts.map +1 -1
  177. package/dist/src/db/write/createSeed.d.ts +20 -1
  178. package/dist/src/db/write/createSeed.d.ts.map +1 -1
  179. package/dist/src/db/write/createVersion.d.ts +5 -1
  180. package/dist/src/db/write/createVersion.d.ts.map +1 -1
  181. package/dist/src/db/write/removeLocalCopiesForAddresses.d.ts +9 -2
  182. package/dist/src/db/write/removeLocalCopiesForAddresses.d.ts.map +1 -1
  183. package/dist/src/db/write/updateItemPropertyValue.d.ts +9 -1
  184. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
  185. package/dist/src/db/write/updateMetadata.d.ts +8 -1
  186. package/dist/src/db/write/updateMetadata.d.ts.map +1 -1
  187. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
  188. package/dist/src/helpers/db.d.ts +4 -2
  189. package/dist/src/helpers/db.d.ts.map +1 -1
  190. package/dist/src/helpers/entity/entityCache.d.ts +2 -42
  191. package/dist/src/helpers/entity/entityCache.d.ts.map +1 -1
  192. package/dist/src/helpers/entity/entityCommon.d.ts +9 -0
  193. package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -1
  194. package/dist/src/helpers/entity/entityDestroy.d.ts +13 -7
  195. package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -1
  196. package/dist/src/helpers/entity/entityLiveQuery.d.ts +3 -2
  197. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
  198. package/dist/src/helpers/entity/entityState.d.ts +28 -0
  199. package/dist/src/helpers/entity/entityState.d.ts.map +1 -0
  200. package/dist/src/helpers/entity/entityUnload.d.ts +3 -2
  201. package/dist/src/helpers/entity/entityUnload.d.ts.map +1 -1
  202. package/dist/src/helpers/entity/index.d.ts +1 -0
  203. package/dist/src/helpers/entity/index.d.ts.map +1 -1
  204. package/dist/src/helpers/itemStorageFile.d.ts +7 -0
  205. package/dist/src/helpers/itemStorageFile.d.ts.map +1 -1
  206. package/dist/src/helpers/metadataPropertyNames.d.ts +6 -0
  207. package/dist/src/helpers/metadataPropertyNames.d.ts.map +1 -1
  208. package/dist/src/helpers/property.d.ts.map +1 -1
  209. package/dist/src/helpers/propertySchemaUid.d.ts +13 -0
  210. package/dist/src/helpers/propertySchemaUid.d.ts.map +1 -0
  211. package/dist/src/helpers/propertyWriteTickets.d.ts +11 -0
  212. package/dist/src/helpers/propertyWriteTickets.d.ts.map +1 -0
  213. package/dist/src/helpers/reactiveProxy.d.ts +18 -0
  214. package/dist/src/helpers/reactiveProxy.d.ts.map +1 -1
  215. package/dist/src/helpers/sessionObjectUrls.d.ts +4 -0
  216. package/dist/src/helpers/sessionObjectUrls.d.ts.map +1 -0
  217. package/dist/src/helpers/tabCoordinator.d.ts +9 -0
  218. package/dist/src/helpers/tabCoordinator.d.ts.map +1 -1
  219. package/dist/src/helpers/tabLocks.d.ts +11 -0
  220. package/dist/src/helpers/tabLocks.d.ts.map +1 -1
  221. package/dist/src/helpers/timing.d.ts +10 -0
  222. package/dist/src/helpers/timing.d.ts.map +1 -0
  223. package/dist/src/imports/json.d.ts.map +1 -1
  224. package/dist/src/index.d.ts +1 -0
  225. package/dist/src/index.d.ts.map +1 -1
  226. package/dist/src/interfaces/IDb.d.ts +2 -0
  227. package/dist/src/interfaces/IDb.d.ts.map +1 -1
  228. package/dist/src/interfaces/IItem.d.ts +1 -0
  229. package/dist/src/interfaces/IItem.d.ts.map +1 -1
  230. package/dist/src/interfaces/IItemProperty.d.ts +5 -0
  231. package/dist/src/interfaces/IItemProperty.d.ts.map +1 -1
  232. package/dist/src/node/db/Db.d.ts +3 -0
  233. package/dist/src/node/db/Db.d.ts.map +1 -1
  234. package/dist/src/node/db/singleConnectionTransactions.d.ts +22 -0
  235. package/dist/src/node/db/singleConnectionTransactions.d.ts.map +1 -0
  236. package/dist/src/outbox/conflicts.d.ts +60 -0
  237. package/dist/src/outbox/conflicts.d.ts.map +1 -0
  238. package/dist/src/outbox/index.d.ts +9 -0
  239. package/dist/src/outbox/index.d.ts.map +1 -0
  240. package/dist/src/outbox/itemAppliers.d.ts +153 -0
  241. package/dist/src/outbox/itemAppliers.d.ts.map +1 -0
  242. package/dist/src/outbox/outbox.d.ts +143 -0
  243. package/dist/src/outbox/outbox.d.ts.map +1 -0
  244. package/dist/src/outbox/pendingValues.d.ts +27 -0
  245. package/dist/src/outbox/pendingValues.d.ts.map +1 -0
  246. package/dist/src/seedSchema/PendingWriteSchema.d.ts +385 -0
  247. package/dist/src/seedSchema/PendingWriteSchema.d.ts.map +1 -0
  248. package/dist/src/seedSchema/index.d.ts +1 -0
  249. package/dist/src/seedSchema/index.d.ts.map +1 -1
  250. package/dist/src/types/property.d.ts +5 -0
  251. package/dist/src/types/property.d.ts.map +1 -1
  252. package/dist/{syncDbWithEas-CAOlw3i-.js → syncDbWithEas-BZ6AI-IC.js} +25 -20
  253. package/dist/syncDbWithEas-BZ6AI-IC.js.map +1 -0
  254. package/dist/{tabEvents-DksXwk3X.js → tabEvents-CIlzHSKZ.js} +56 -25
  255. package/dist/tabEvents-CIlzHSKZ.js.map +1 -0
  256. package/dist/{tolerantWebAccess-CEIjFGf0.js → tolerantWebAccess-BwJ8bElF.js} +6 -6
  257. package/dist/{tolerantWebAccess-CEIjFGf0.js.map → tolerantWebAccess-BwJ8bElF.js.map} +1 -1
  258. package/dist/{updateSeedRevokedAt-Cjr35YjE.js → updateSeedRevokedAt-ClxMSXcB.js} +3 -3
  259. package/dist/{updateSeedRevokedAt-Cjr35YjE.js.map → updateSeedRevokedAt-ClxMSXcB.js.map} +1 -1
  260. package/package.json +7 -7
  261. package/dist/ClientManager-2GtDWHq6.js.map +0 -1
  262. package/dist/Item-D6j0IvBP.js.map +0 -1
  263. package/dist/ModelProperty-B52C3CQ2.js.map +0 -1
  264. package/dist/Schema-O1QLoXv6.js.map +0 -1
  265. package/dist/discardNewDraft-hiVaUVjV.js +0 -78
  266. package/dist/discardNewDraft-hiVaUVjV.js.map +0 -1
  267. package/dist/dist/ClientManager-2GtDWHq6.d.ts.map +0 -1
  268. package/dist/dist/Item-D6j0IvBP.d.ts.map +0 -1
  269. package/dist/dist/Schema-O1QLoXv6.d.ts.map +0 -1
  270. package/dist/dist/backfillMetadataPropertyIds-CzSbuucw.d.ts.map +0 -1
  271. package/dist/dist/configurePlatform-Bbpw_R4y.d.ts.map +0 -1
  272. package/dist/dist/detachRowsBeforeDelete-D1TyEMco.d.ts.map +0 -1
  273. package/dist/dist/discardNewDraft-hiVaUVjV.d.ts +0 -8
  274. package/dist/dist/discardNewDraft-hiVaUVjV.d.ts.map +0 -1
  275. package/dist/dist/eas-DOdj-EMK.d.ts.map +0 -1
  276. package/dist/dist/errors-KM-yq2MD.d.ts.map +0 -1
  277. package/dist/dist/getItem-Bh0zv-o1.d.ts.map +0 -1
  278. package/dist/dist/getPublishPayload-oH8wJhnH.d.ts.map +0 -1
  279. package/dist/dist/index-BAao3_Po.d.ts.map +0 -1
  280. package/dist/dist/index-DpgQMIRq.d.ts.map +0 -1
  281. package/dist/dist/property-BDBvImLs.d.ts.map +0 -1
  282. package/dist/dist/propertyValidationRules-BlfLn4rP.d.ts.map +0 -1
  283. package/dist/dist/resetAmbiguousLegacyItemData-Cy8ik7xk.d.ts.map +0 -1
  284. package/dist/dist/resolveModelForSyncedSeed-DFr4COc4.d.ts.map +0 -1
  285. package/dist/dist/syncDbWithEas-CAOlw3i-.d.ts.map +0 -1
  286. package/dist/dist/tabEvents-DksXwk3X.d.ts.map +0 -1
  287. package/dist/dist/updateSeedRevokedAt-Cjr35YjE.d.ts.map +0 -1
  288. package/dist/errors-KM-yq2MD.js.map +0 -1
  289. package/dist/getPublishPayload-oH8wJhnH.js.map +0 -1
  290. package/dist/getPublishUploads-Cex-NBe6.js.map +0 -1
  291. package/dist/index-BAao3_Po.js.map +0 -1
  292. package/dist/index-BbFwftAv.js.map +0 -1
  293. package/dist/index-DpgQMIRq.js.map +0 -1
  294. package/dist/index.browser-nndbVM7z.js.map +0 -1
  295. package/dist/index.node-BUfx-JaP.js.map +0 -1
  296. package/dist/property-BDBvImLs.js.map +0 -1
  297. package/dist/src/db/write/discardNewDraft.d.ts +0 -8
  298. package/dist/src/db/write/discardNewDraft.d.ts.map +0 -1
  299. package/dist/src/helpers/propertyWriteQueue.d.ts +0 -15
  300. package/dist/src/helpers/propertyWriteQueue.d.ts.map +0 -1
  301. package/dist/syncDbWithEas-CAOlw3i-.js.map +0 -1
  302. package/dist/tabEvents-DksXwk3X.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ import { BaseDb } from '../db/Db/BaseDb';
2
+ import { type NewSeedFields } from '../db/write/createSeed';
3
+ import { type MetadataType } from '../seedSchema';
4
+ import type { PropertyType } from '../types';
5
+ import { type OutboxOp } from './outbox';
6
+ /**
7
+ * A plain value (Text, Number, Boolean, Date, List, a Relation's seed id) for one item property,
8
+ * as `updateItemPropertyValue` takes it: the value already in its stored string form, and the
9
+ * schema uid already resolved (applying runs in a transaction and mustn't wait on EAS).
10
+ */
11
+ export type SetPropertyValueOp = {
12
+ newValue: string | null;
13
+ /** The property's metadata row the edit was made against, if it had one. */
14
+ localId?: string | null;
15
+ versionLocalId?: string | null;
16
+ versionUid?: string | null;
17
+ modelName?: string | null;
18
+ schemaUid?: string | null;
19
+ dataType?: string;
20
+ refValueType?: string;
21
+ };
22
+ /** The row a `set` op wrote (updateItemPropertyValue's result). */
23
+ export type SetPropertyValueResult = {
24
+ localId: string;
25
+ uid: string | null;
26
+ schemaUid: string;
27
+ } | null;
28
+ /**
29
+ * An Html, File or Image value: a new storage seed whose file is already written (named after the
30
+ * seed, so nothing else uses it), and the property row that points at it. Applying it creates the
31
+ * storage seed and its version and writes the row, all in the op's transaction.
32
+ */
33
+ export type StorageValueOp = {
34
+ storageSeed: {
35
+ /** Chosen when the file was written, so the file could be named after it. */
36
+ localId: string;
37
+ type: 'html' | 'file' | 'image';
38
+ modelFileId: string;
39
+ fields: NewSeedFields;
40
+ };
41
+ /** The file written for this value, deleted if the op never applies. Absent for a reference to a file that was already there. */
42
+ ownedFilePath?: string;
43
+ /** The row when the property has none yet (createMetadata). */
44
+ create: {
45
+ values: Partial<MetadataType> & {
46
+ modelName?: string;
47
+ };
48
+ propertyRecordSchema?: PropertyType;
49
+ };
50
+ /** The update when it has one (updateItemPropertyValue); its `localId` is filled in when applied. */
51
+ update: Record<string, unknown>;
52
+ };
53
+ /**
54
+ * Writes a storage value's rows on `db`. The property's row is looked up here, on `db`, rather than
55
+ * taken from the edit: two quick edits of a property that had no row would otherwise both create one.
56
+ */
57
+ export declare function applyStorageValue(seedLocalId: string, propertyName: string, value: StorageValueOp, db: ReturnType<typeof BaseDb.getAppDb>): Promise<SetPropertyValueResult>;
58
+ /**
59
+ * An ItemStorage value: content kept in the item's own file (`<seedId><extension>`), written to a
60
+ * staging file first. Applying it moves the staged file into place and points the property's
61
+ * local draft row at it (a new draft when there is none), under the file's lock.
62
+ */
63
+ export type ItemStorageValueOp = {
64
+ itemStorage: {
65
+ stagedPath: string;
66
+ seedUid?: string | null;
67
+ versionLocalId?: string | null;
68
+ versionUid?: string | null;
69
+ modelType?: string | null;
70
+ propertyRecordSchema: PropertyType;
71
+ };
72
+ };
73
+ /** The row an ItemStorage op wrote, and where its file is. */
74
+ export type ItemStorageValueResult = NonNullable<SetPropertyValueResult> & {
75
+ fileName: string;
76
+ localStorageDir: string;
77
+ };
78
+ /**
79
+ * Writes an ItemStorage value on `db`: the edit goes into the property's current local draft, or a
80
+ * new one when there is none or a published row is newer (readers show the newest row). A synced
81
+ * or derived row is published content and is never written to.
82
+ */
83
+ export declare function applyItemStorageValue(seedLocalId: string, propertyName: string, op: ItemStorageValueOp, db: ReturnType<typeof BaseDb.getAppDb>): Promise<ItemStorageValueResult>;
84
+ /**
85
+ * A new item (Item.create): its seed, its first version and a row per property, applied in one
86
+ * transaction, so a failure leaves nothing. The seed's local id is the op's `seedLocalId`.
87
+ * ItemStorage initial values are staged files, moved into the item's files when applied.
88
+ */
89
+ export type CreateItemOp = {
90
+ modelName: string;
91
+ seed: {
92
+ type: string;
93
+ modelFileId?: string;
94
+ fields: NewSeedFields;
95
+ };
96
+ rows: Array<{
97
+ propertyName: string;
98
+ propertyValue?: unknown;
99
+ /** EAS schema uid, resolved before the transaction. */
100
+ schemaUid?: string;
101
+ propertyRecordSchema?: PropertyType;
102
+ /** An ItemStorage initial value: its staged file, moved to the item's file. */
103
+ itemStorage?: {
104
+ stagedPath: string;
105
+ fileName: string;
106
+ localStorageDir: string;
107
+ };
108
+ }>;
109
+ };
110
+ export type CreateItemResult = {
111
+ seedLocalId: string;
112
+ versionLocalId: string;
113
+ };
114
+ /** Writes a new item's rows on `db` (see CreateItemOp). */
115
+ export declare function applyCreateItem(seedLocalId: string, value: CreateItemOp, db: ReturnType<typeof BaseDb.getAppDb>): Promise<CreateItemResult>;
116
+ /**
117
+ * Removes an item: `discard` hard-deletes a draft Item.create made and couldn't finish (the seed,
118
+ * its versions and rows, the storage seeds its rows point at), `item` soft-deletes the seed
119
+ * (Item.destroy), `property` deletes a property's rows (ItemProperty.destroy).
120
+ */
121
+ export type DeleteOp = {
122
+ mode: 'discard';
123
+ } | {
124
+ mode: 'item';
125
+ } | {
126
+ mode: 'property';
127
+ propertyNames: string[];
128
+ }
129
+ /** The properties' local draft rows only, so their newest attested rows show again. */
130
+ | {
131
+ mode: 'drafts';
132
+ propertyNames: string[];
133
+ };
134
+ /** Files a discarded draft's rows named, deleted once the op applied. */
135
+ export type DeleteResult = {
136
+ filePaths: string[];
137
+ };
138
+ export declare function applyDelete(op: Pick<OutboxOp, 'opId' | 'seedLocalId'>, value: DeleteOp, db: ReturnType<typeof BaseDb.getAppDb>): Promise<DeleteResult>;
139
+ /** Deletes files after the op that removed their rows applied; best-effort. */
140
+ export declare function deleteFiles(filePaths: string[]): Promise<void>;
141
+ /** A Relation value names a local seed that doesn't exist. */
142
+ export declare class RelationTargetError extends Error {
143
+ readonly targets: string[];
144
+ constructor(targets: string[]);
145
+ }
146
+ /**
147
+ * Rethrows a failed item op's error as its caller expects it: OwnershipError when the drainer
148
+ * refused the op for ownership, else the OutboxOpFailedError as is.
149
+ */
150
+ export declare function throwItemWriteError(error: unknown): never;
151
+ /** Registers the item appliers and starts draining. Safe to call more than once. */
152
+ export declare function startItemOutbox(): void;
153
+ //# sourceMappingURL=itemAppliers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemAppliers.d.ts","sourceRoot":"","sources":["../../../src/outbox/itemAppliers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import { BaseDb } from '../db/Db/BaseDb';
2
+ import { type PendingWriteType } from '../seedSchema/PendingWriteSchema';
3
+ export type OutboxOpKind = 'create' | 'set' | 'delete' | 'storage';
4
+ export type OutboxOpStatus = 'pending' | 'applied' | 'superseded' | 'failed';
5
+ export type OutboxOp = PendingWriteType;
6
+ export type AppendOutboxOpInput = {
7
+ seedLocalId: string;
8
+ /** Null for ops on the seed itself. */
9
+ propertyName?: string | null;
10
+ kind: OutboxOpKind;
11
+ /** Stored as JSON. */
12
+ value?: unknown;
13
+ /** A staged file the value was written to (`storage` ops). */
14
+ valueRef?: string | null;
15
+ /** The stored metadata row the edit was made against. */
16
+ baseRowId?: string | null;
17
+ baseUid?: string | null;
18
+ /** Ops sharing a group id apply in one transaction. */
19
+ groupId?: string | null;
20
+ };
21
+ /** Applies ops of one kind. Registered by the code that defines the kind. */
22
+ export type OutboxApplier<Prepared = unknown> = {
23
+ /**
24
+ * Runs before the transaction, for lookups that may call EAS or the app. Must not write.
25
+ */
26
+ prepare?: (op: OutboxOp) => Promise<Prepared>;
27
+ /**
28
+ * Writes the op on `tx`, inside the transaction that marks it applied. Must read and write only
29
+ * through `tx` (see BaseDb.transaction). Errors fail the op, except busy database or file errors
30
+ * and OutboxOpRetryableError, which are retried. What it returns is stored as the op's `result`
31
+ * (JSON).
32
+ */
33
+ apply: (op: OutboxOp, tx: ReturnType<typeof BaseDb.getAppDb>, prepared: Prepared) => Promise<unknown>;
34
+ /**
35
+ * Wraps the op's transaction, for locks that must be taken before it: an ItemStorage file's
36
+ * lock, whose other writers take it before touching the database. Calls `run` once, or throws
37
+ * OutboxOpDeferredError without calling it when the lock is held, so the drainer isn't kept
38
+ * waiting while other ops could apply.
39
+ */
40
+ around?: <T>(op: OutboxOp, run: () => Promise<T>) => Promise<T>;
41
+ /**
42
+ * Cleans up after an op that will never apply (superseded or failed): a file written for it,
43
+ * say. Runs after the op is settled; errors are logged and ignored.
44
+ */
45
+ discard?: (op: OutboxOp) => Promise<void>;
46
+ };
47
+ /** A failure worth retrying (a file the browser had locked, say). Other errors fail the op at once. */
48
+ export declare class OutboxOpRetryableError extends Error {
49
+ constructor(message: string, options?: {
50
+ cause?: unknown;
51
+ });
52
+ }
53
+ /**
54
+ * An op that can't apply yet for a reason that will pass without counting as a failure: an applier's
55
+ * `around` found a lock held. The drainer sets the op (and its property's queue) aside for
56
+ * OUTBOX_DEFER_MS and goes on with other ops; its attempts aren't counted.
57
+ */
58
+ export declare class OutboxOpDeferredError extends Error {
59
+ constructor(message: string);
60
+ }
61
+ /** How long a deferred op waits before the drainer tries it again. */
62
+ export declare const OUTBOX_DEFER_MS = 50;
63
+ /** An op that can never apply (a broken rule, an item the client doesn't own). Not retried. */
64
+ export declare class OutboxOpRejectedError extends Error {
65
+ constructor(message: string, options?: {
66
+ cause?: unknown;
67
+ });
68
+ }
69
+ /** Rejects `waitForOutboxOp` for an op that failed, or that a failed op superseded. */
70
+ export declare class OutboxOpFailedError extends Error {
71
+ readonly opId: string;
72
+ /** The name of the error that failed the op, when it was recorded. */
73
+ readonly errorName: string | null;
74
+ readonly code = "OUTBOX_OP_FAILED";
75
+ constructor(opId: string, message: string,
76
+ /** The name of the error that failed the op, when it was recorded. */
77
+ errorName?: string | null);
78
+ }
79
+ /** Waits before each retry of an op that failed with a retryable error; the last is reused. */
80
+ export declare const OUTBOX_RETRY_DELAYS_MS: number[];
81
+ /** Attempts before a retryable error fails the op. */
82
+ export declare const OUTBOX_MAX_ATTEMPTS = 8;
83
+ /** Applied and superseded ops are kept this long, then pruned. */
84
+ export declare const OUTBOX_PRUNE_AFTER_MS: number;
85
+ /** Failed ops are kept longer, so a refused write can still be looked into. */
86
+ export declare const OUTBOX_PRUNE_FAILED_AFTER_MS: number;
87
+ /** Registers the applier for one op kind; returns a function that removes it. */
88
+ export declare function registerOutboxApplier<Prepared>(kind: OutboxOpKind, applier: OutboxApplier<Prepared>): () => void;
89
+ /**
90
+ * Appends one op, or several that apply together (they share a new group id unless they carry
91
+ * one), and tells the leader to drain. Returns the op ids in order.
92
+ */
93
+ export declare function appendOutboxOps(inputs: AppendOutboxOpInput[]): Promise<string[]>;
94
+ /** Appends one op; see appendOutboxOps. */
95
+ export declare function appendOutboxOp(input: AppendOutboxOpInput): Promise<string>;
96
+ /**
97
+ * Appends one op and waits until it settles: its applier's result once applied, or `superseded`
98
+ * when a newer op of its property replaced it. Rejects with OutboxOpFailedError when it fails.
99
+ */
100
+ export declare function appendOutboxOpAndWait<Result = unknown>(input: AppendOutboxOpInput): Promise<{
101
+ superseded: false;
102
+ result: Result | undefined;
103
+ } | {
104
+ superseded: true;
105
+ }>;
106
+ /** An op's stored value, decoded. */
107
+ export declare function outboxOpValue<T = unknown>(op: Pick<OutboxOp, 'value'>): T | undefined;
108
+ /** What an applied op's applier returned, decoded. */
109
+ export declare function outboxOpResult<T = unknown>(op: Pick<OutboxOp, 'result'>): T | undefined;
110
+ /**
111
+ * Starts draining in this tab once it is the leader, resuming ops left pending (a reload, a closed
112
+ * leader tab), and listens for other tabs' nudges and settled ops. Safe to call more than once.
113
+ */
114
+ export declare function startOutbox(): void;
115
+ /**
116
+ * Deletes settled ops older than their retention: applied and superseded ops after
117
+ * OUTBOX_PRUNE_AFTER_MS, failed ones after OUTBOX_PRUNE_FAILED_AFTER_MS. An applied op with an
118
+ * unresolved conflict stays until the conflict is resolved. Pending ops are never pruned. The
119
+ * leader runs it after a drain, at most hourly. Returns how many ops it deleted.
120
+ */
121
+ export declare function pruneOutbox(now?: number): Promise<number>;
122
+ /**
123
+ * Applies every pending op that is due, in order. Exported for tests and for code that must see
124
+ * the outbox applied before it continues; normally the leader drains on its own.
125
+ */
126
+ export declare function drainOutbox(): Promise<void>;
127
+ /**
128
+ * Resolves once the op is applied, or superseded by a newer op that applied; rejects with
129
+ * OutboxOpFailedError when it, or the op that superseded it, failed.
130
+ */
131
+ export declare function waitForOutboxOp(opId: string): Promise<void>;
132
+ /**
133
+ * Resolves once every op pending when it was called has settled (applied, superseded or failed),
134
+ * so a reader of `metadata` sees every edit made before. Publish waits on this before it reads.
135
+ */
136
+ export declare function waitForPendingOutboxOps(): Promise<void>;
137
+ /** The status of each op, by id; ops not found are left out. */
138
+ export declare function getOutboxOps(opIds: string[]): Promise<OutboxOp[]>;
139
+ /** Tests only: stops automatic drains (drainOutbox still runs) until unpaused. */
140
+ export declare function pauseOutboxDrainForTests(pause: boolean): void;
141
+ /** Tests only: resolves when no drain is running. */
142
+ export declare function outboxIdleForTests(): Promise<void>;
143
+ //# sourceMappingURL=outbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../../src/outbox/outbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { MetadataType } from '../seedSchema';
2
+ /**
3
+ * What a property's row will hold once its pending value ops apply (ADR 0019's read overlay): the
4
+ * newest pending `set` or `storage` op's fields. A reader puts these over the stored row, so a value
5
+ * assigned before a reload, or in another tab, shows while its op waits.
6
+ */
7
+ export type PendingPropertyRow = Partial<Pick<MetadataType, 'propertyValue' | 'refSeedType' | 'refResolvedValue' | 'refResolvedDisplayValue' | 'localStorageDir'>> & {
8
+ /** An ItemStorage value's staged file, which holds the content until the op moves it into place. */
9
+ stagedPath?: string;
10
+ };
11
+ /** Html, Image, File and Relation rows are stored as `<name>Id`; match either spelling. */
12
+ export declare const propertyNameVariants: (name: string) => string[];
13
+ /**
14
+ * The pending row of each of the seed's properties that has a pending value op, keyed by the op's
15
+ * property name. Only `propertyNames` (either spelling) when given.
16
+ */
17
+ export declare function getPendingPropertyRows(seedLocalId: string | null | undefined, propertyNames?: string[]): Promise<Map<string, PendingPropertyRow>>;
18
+ /** One property's pending row (see getPendingPropertyRows); undefined when it has none. */
19
+ export declare function getPendingPropertyRow(seedLocalId: string | null | undefined, propertyName: string | null | undefined): Promise<PendingPropertyRow | undefined>;
20
+ /**
21
+ * The value an item property will have once its pending `set` ops apply, in its stored string form.
22
+ * Undefined when its newest pending value op is not a `set`, or it has none.
23
+ */
24
+ export declare function getPendingSetValue(seedLocalId: string | null | undefined, propertyName: string | null | undefined): Promise<string | null | undefined>;
25
+ /** Puts a pending row's fields over a stored row (not `stagedPath`, which isn't a column). */
26
+ export declare function applyPendingRow<Row extends Partial<MetadataType>>(row: Row, pending: PendingPropertyRow): Row;
27
+ //# sourceMappingURL=pendingValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingValues.d.ts","sourceRoot":"","sources":["../../../src/outbox/pendingValues.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,IAAI,CACF,YAAY,EACZ,eAAe,GAAG,aAAa,GAAG,kBAAkB,GAAG,yBAAyB,GAAG,iBAAiB,CACrG,CACF,GAAG;IACF,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAuBD,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAAM,EACa,CAAA;AAEvE;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAyB1C;AAED,2FAA2F;AAC3F,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAQzC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAIpC;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,GAAG,SAAS,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAG7G"}