@seedprotocol/sdk 0.6.10 → 0.7.0

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 (382) hide show
  1. package/dist/{BasePathResolver-B6CKqoKw.js → BasePathResolver-ndE8XTpw.js} +36 -2
  2. package/dist/BasePathResolver-ndE8XTpw.js.map +1 -0
  3. package/dist/ClientManager-DLleL_2e.js +4763 -0
  4. package/dist/ClientManager-DLleL_2e.js.map +1 -0
  5. package/dist/{ClientManager-ChcmUL47.js → Item-zBFWQDU9.js} +1119 -5893
  6. package/dist/Item-zBFWQDU9.js.map +1 -0
  7. package/dist/{ModelProperty-D79uV42p.js → ModelProperty-lth9L37R.js} +289 -101
  8. package/dist/ModelProperty-lth9L37R.js.map +1 -0
  9. package/dist/{Schema-a8uO-hIZ.js → Schema-DOhlrQ-N.js} +94 -864
  10. package/dist/Schema-DOhlrQ-N.js.map +1 -0
  11. package/dist/{SchemaValidationService-Y49vqast.js → SchemaValidationService-DDKr5piy.js} +26 -18
  12. package/dist/SchemaValidationService-DDKr5piy.js.map +1 -0
  13. package/dist/{backfillMetadataPropertyIds-CBsf7LnU.js → backfillMetadataPropertyIds-fG3ujaSh.js} +11 -6
  14. package/dist/backfillMetadataPropertyIds-fG3ujaSh.js.map +1 -0
  15. package/dist/cjs/{ModelProperty-D9FGaGuE.js → ModelProperty-BEsIHAjk.js} +260 -81
  16. package/dist/cjs/ModelProperty-BEsIHAjk.js.map +1 -0
  17. package/dist/cjs/{Schema-BiJIPLEL.js → Schema-qEp5mH1N.js} +66 -847
  18. package/dist/cjs/Schema-qEp5mH1N.js.map +1 -0
  19. package/dist/cjs/{SchemaValidationService-DtYs_CNY.js → SchemaValidationService-CWEnZmOH.js} +18 -11
  20. package/dist/cjs/SchemaValidationService-CWEnZmOH.js.map +1 -0
  21. package/dist/cjs/{backfillMetadataPropertyIds-2XaN3b9S.js → backfillMetadataPropertyIds-tw8JGMT0.js} +8 -3
  22. package/dist/cjs/backfillMetadataPropertyIds-tw8JGMT0.js.map +1 -0
  23. package/dist/cjs/{eas-CMNppmGE.js → eas-CLiV2Hmn.js} +4 -4
  24. package/dist/cjs/{eas-CMNppmGE.js.map → eas-CLiV2Hmn.js.map} +1 -1
  25. package/dist/cjs/{getItem-B6jEINjW.js → getItem-DSRtx_68.js} +2 -2
  26. package/dist/cjs/{getItem-B6jEINjW.js.map → getItem-DSRtx_68.js.map} +1 -1
  27. package/dist/cjs/getLatestVersionRow-DVizNNoI.js +59 -0
  28. package/dist/cjs/getLatestVersionRow-DVizNNoI.js.map +1 -0
  29. package/dist/cjs/{getPublishPayload-D5DhLGvN.js → getPublishPayload-D5-dYtNq.js} +249 -60
  30. package/dist/cjs/getPublishPayload-D5-dYtNq.js.map +1 -0
  31. package/dist/cjs/{getPublishUploads-DMhCCKYF.js → getPublishUploads-B5Lq6q-_.js} +20 -13
  32. package/dist/cjs/getPublishUploads-B5Lq6q-_.js.map +1 -0
  33. package/dist/cjs/{getSegmentedItemProperties-CU8rtBAo.js → getSegmentedItemProperties-giHO7R3d.js} +10 -11
  34. package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js.map +1 -0
  35. package/dist/cjs/{index-DPp9rdRL.js → index-B3UDbm1C.js} +3 -3
  36. package/dist/cjs/index-B3UDbm1C.js.map +1 -0
  37. package/dist/cjs/{index-CSNtEnbF.js → index-C66AfYDG.js} +2510 -1694
  38. package/dist/cjs/index-C66AfYDG.js.map +1 -0
  39. package/dist/cjs/{property-DlKiAWt4.js → property-BVJIP7SX.js} +40 -35
  40. package/dist/cjs/property-BVJIP7SX.js.map +1 -0
  41. package/dist/cjs/resetAmbiguousLegacyItemData-BaZqUui9.js +116 -0
  42. package/dist/cjs/resetAmbiguousLegacyItemData-BaZqUui9.js.map +1 -0
  43. package/dist/cjs/resolveModelForSyncedSeed-CC6dQctx.js +49 -0
  44. package/dist/cjs/resolveModelForSyncedSeed-CC6dQctx.js.map +1 -0
  45. package/dist/cjs/syncDbWithEas-Dk96sAG-.js +873 -0
  46. package/dist/cjs/syncDbWithEas-Dk96sAG-.js.map +1 -0
  47. package/dist/{configurePlatform-CE0Vew17.js → configurePlatform-BMoPG9vY.js} +4 -4
  48. package/dist/{configurePlatform-CE0Vew17.js.map → configurePlatform-BMoPG9vY.js.map} +1 -1
  49. package/dist/db/drizzle/0015_add_model_file_id_to_seeds.sql +11 -0
  50. package/dist/db/drizzle/0016_add_revoked_at_to_metadata.sql +1 -0
  51. package/dist/db/drizzle/0017_add_revoked_at_to_versions.sql +1 -0
  52. package/dist/db/drizzle/0018_add_storage_settings_to_properties.sql +53 -0
  53. package/dist/db/drizzle/0019_add_derived_from_uid_to_metadata.sql +35 -0
  54. package/dist/db/drizzle/meta/0011_snapshot.json +1182 -0
  55. package/dist/db/drizzle/meta/0012_snapshot.json +1244 -0
  56. package/dist/db/drizzle/meta/0013_snapshot.json +63 -1
  57. package/dist/db/drizzle/meta/0014_snapshot.json +62 -0
  58. package/dist/db/drizzle/meta/0015_snapshot.json +1338 -0
  59. package/dist/db/drizzle/meta/0016_snapshot.json +1345 -0
  60. package/dist/db/drizzle/meta/0017_snapshot.json +1352 -0
  61. package/dist/db/drizzle/meta/0018_snapshot.json +1373 -0
  62. package/dist/db/drizzle/meta/0019_snapshot.json +1380 -0
  63. package/dist/db/drizzle/meta/_journal.json +35 -0
  64. package/dist/{db-WbrzEf7c.js → db-BJZN0a0a.js} +546 -106
  65. package/dist/db-BJZN0a0a.js.map +1 -0
  66. package/dist/{eas-CfYCu4IX.js → eas-B0hsMLqt.js} +7 -7
  67. package/dist/eas-B0hsMLqt.js.map +1 -0
  68. package/dist/errors-CrBxGWah.js +17 -0
  69. package/dist/errors-CrBxGWah.js.map +1 -0
  70. package/dist/{getItem-Br-bGNFO.js → getItem-DEh4WfHG.js} +8 -10
  71. package/dist/{getItem-Br-bGNFO.js.map → getItem-DEh4WfHG.js.map} +1 -1
  72. package/dist/getLatestVersionRow-Brrl1AnW.js +46 -0
  73. package/dist/getLatestVersionRow-Brrl1AnW.js.map +1 -0
  74. package/dist/{getPublishPayload-BIrTVUxb.js → getPublishPayload-H032DHC7.js} +263 -75
  75. package/dist/getPublishPayload-H032DHC7.js.map +1 -0
  76. package/dist/{getPublishUploads-C6cDeZdz.js → getPublishUploads-CR66RlGJ.js} +25 -17
  77. package/dist/{getPublishUploads-C6cDeZdz.js.map → getPublishUploads-CR66RlGJ.js.map} +1 -1
  78. package/dist/{getSegmentedItemProperties-BmKE71vU.js → getSegmentedItemProperties-C2EJ2G0N.js} +13 -14
  79. package/dist/getSegmentedItemProperties-C2EJ2G0N.js.map +1 -0
  80. package/dist/{index-ClSv5pTA.js → index-6bJuv5Tt.js} +12 -11
  81. package/dist/index-6bJuv5Tt.js.map +1 -0
  82. package/dist/{index-Djd3667v.js → index-B0LgJblD.js} +2 -2
  83. package/dist/index-B0LgJblD.js.map +1 -0
  84. package/dist/{index-HRHkbVQd.js → index-DtfjeuxC.js} +417 -174
  85. package/dist/index-DtfjeuxC.js.map +1 -0
  86. package/dist/index.browser-CNrqhvEA.js +4139 -0
  87. package/dist/index.browser-CNrqhvEA.js.map +1 -0
  88. package/dist/{index.node-DBtQkEfz.js → index.node-DrHiTuOr.js} +9 -4
  89. package/dist/index.node-DrHiTuOr.js.map +1 -0
  90. package/dist/main.cjs +1 -1
  91. package/dist/main.js +771 -521
  92. package/dist/main.js.map +1 -1
  93. package/dist/node.js +19 -15
  94. package/dist/node.js.map +1 -1
  95. package/dist/platform.browser.js +18 -3719
  96. package/dist/platform.browser.js.map +1 -1
  97. package/dist/platform.node.js +3 -3
  98. package/dist/{property-CQjuZ4JW.js → property-D2Nnsmm1.js} +53 -48
  99. package/dist/property-D2Nnsmm1.js.map +1 -0
  100. package/dist/resetAmbiguousLegacyItemData-BqbHNUYk.js +88 -0
  101. package/dist/resetAmbiguousLegacyItemData-BqbHNUYk.js.map +1 -0
  102. package/dist/resolveModelForSyncedSeed-DQK6JfXS.js +46 -0
  103. package/dist/resolveModelForSyncedSeed-DQK6JfXS.js.map +1 -0
  104. package/dist/seedSchema/MetadataSchema.ts +9 -0
  105. package/dist/seedSchema/ModelSchema.ts +5 -0
  106. package/dist/seedSchema/SeedSchema.ts +3 -0
  107. package/dist/seedSchema/VersionSchema.ts +5 -0
  108. package/dist/src/Item/Item.d.ts +10 -0
  109. package/dist/src/Item/Item.d.ts.map +1 -1
  110. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +1 -1
  111. package/dist/src/Item/service/actors/waitForDb.d.ts.map +1 -1
  112. package/dist/src/Item/service/itemMachineSingle.d.ts +3 -29
  113. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
  114. package/dist/src/ItemProperty/ItemProperty.d.ts +3 -4
  115. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  116. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  117. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
  118. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -1
  119. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -1
  120. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -1
  121. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
  122. package/dist/src/ItemProperty/service/propertyMachine.d.ts +4 -9
  123. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  124. package/dist/src/Model/Model.d.ts +37 -0
  125. package/dist/src/Model/Model.d.ts.map +1 -1
  126. package/dist/src/Model/errors.d.ts +10 -0
  127. package/dist/src/Model/errors.d.ts.map +1 -0
  128. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
  129. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
  130. package/dist/src/Model/service/modelMachine.d.ts +0 -8
  131. package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
  132. package/dist/src/ModelProperty/ModelProperty.d.ts +33 -1
  133. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  134. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  135. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +2 -9
  136. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
  137. package/dist/src/Schema/Schema.d.ts +1 -2
  138. package/dist/src/Schema/Schema.d.ts.map +1 -1
  139. package/dist/src/Schema/service/schemaMachine.d.ts +1 -217
  140. package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -1
  141. package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +1 -1
  142. package/dist/src/browser/db/Db.d.ts +3 -0
  143. package/dist/src/browser/db/Db.d.ts.map +1 -1
  144. package/dist/src/browser/db/drizzleFiles.d.ts +7 -2
  145. package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -1
  146. package/dist/src/browser/db/embeddedMigrations.d.ts +11 -2
  147. package/dist/src/browser/db/embeddedMigrations.d.ts.map +1 -1
  148. package/dist/src/browser/db/sqliteBusyRetry.d.ts +14 -0
  149. package/dist/src/browser/db/sqliteBusyRetry.d.ts.map +1 -0
  150. package/dist/src/browser/helpers/FileManager.d.ts +1 -0
  151. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
  152. package/dist/src/browser/helpers/QueryClient.d.ts +1 -0
  153. package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -1
  154. package/dist/src/browser/helpers/opfsErrors.d.ts +2 -0
  155. package/dist/src/browser/helpers/opfsErrors.d.ts.map +1 -0
  156. package/dist/src/browser/helpers/tolerantWebAccess.d.ts +47 -0
  157. package/dist/src/browser/helpers/tolerantWebAccess.d.ts.map +1 -0
  158. package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -1
  159. package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -1
  160. package/dist/src/browser/workers/filesDownload.d.ts.map +1 -1
  161. package/dist/src/browser/workers/imageResize.d.ts.map +1 -1
  162. package/dist/src/client/ClientManager.d.ts.map +1 -1
  163. package/dist/src/client/actors/addModelsToDb.d.ts +14 -0
  164. package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -1
  165. package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
  166. package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
  167. package/dist/src/client/actors/saveConfig.d.ts +11 -0
  168. package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
  169. package/dist/src/client/constants.d.ts +0 -8
  170. package/dist/src/client/constants.d.ts.map +1 -1
  171. package/dist/src/db/backfillMetadataPropertyIds.d.ts.map +1 -1
  172. package/dist/src/db/configs/{dev.schema.config.d.ts → migrations.config.d.ts} +1 -1
  173. package/dist/src/db/configs/migrations.config.d.ts.map +1 -0
  174. package/dist/src/db/read/batchLatestPublishedVersionBySeedLocalIds.d.ts +1 -1
  175. package/dist/src/db/read/batchLatestPublishedVersionBySeedLocalIds.d.ts.map +1 -1
  176. package/dist/src/db/read/getItemData.d.ts.map +1 -1
  177. package/dist/src/db/read/getItemProperties.d.ts.map +1 -1
  178. package/dist/src/db/read/getItems.d.ts +7 -2
  179. package/dist/src/db/read/getItems.d.ts.map +1 -1
  180. package/dist/src/db/read/getLatestPublishedVersionRow.d.ts +2 -1
  181. package/dist/src/db/read/getLatestPublishedVersionRow.d.ts.map +1 -1
  182. package/dist/src/db/read/getLatestVersionRow.d.ts +13 -0
  183. package/dist/src/db/read/getLatestVersionRow.d.ts.map +1 -0
  184. package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
  185. package/dist/src/db/read/getPropertyData.d.ts.map +1 -1
  186. package/dist/src/db/read/getPublishPayload.d.ts +9 -11
  187. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  188. package/dist/src/db/read/getPublishPendingDiff.d.ts +2 -1
  189. package/dist/src/db/read/getPublishPendingDiff.d.ts.map +1 -1
  190. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  191. package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -1
  192. package/dist/src/db/read/getSeedPublishState.d.ts +8 -2
  193. package/dist/src/db/read/getSeedPublishState.d.ts.map +1 -1
  194. package/dist/src/db/read/isSeedRevoked.d.ts +7 -0
  195. package/dist/src/db/read/isSeedRevoked.d.ts.map +1 -0
  196. package/dist/src/db/read/publishErrors.d.ts +37 -0
  197. package/dist/src/db/read/publishErrors.d.ts.map +1 -0
  198. package/dist/src/db/read/resolveModelForSyncedSeed.d.ts +39 -0
  199. package/dist/src/db/read/resolveModelForSyncedSeed.d.ts.map +1 -0
  200. package/dist/src/db/read/resolveModelRecord.d.ts +69 -0
  201. package/dist/src/db/read/resolveModelRecord.d.ts.map +1 -0
  202. package/dist/src/db/read/resolveRelatedSeedRef.d.ts +34 -0
  203. package/dist/src/db/read/resolveRelatedSeedRef.d.ts.map +1 -0
  204. package/dist/src/db/read/subqueries/liveVersion.d.ts +12 -0
  205. package/dist/src/db/read/subqueries/liveVersion.d.ts.map +1 -0
  206. package/dist/src/db/read/subqueries/metadataLatest.d.ts +4 -0
  207. package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -1
  208. package/dist/src/db/read/subqueries/versionData.d.ts +7 -2
  209. package/dist/src/db/read/subqueries/versionData.d.ts.map +1 -1
  210. package/dist/src/db/read/summarizePublishWork.d.ts +10 -2
  211. package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
  212. package/dist/src/db/resetAmbiguousLegacyItemData.d.ts +17 -0
  213. package/dist/src/db/resetAmbiguousLegacyItemData.d.ts.map +1 -0
  214. package/dist/src/db/sqlParamBatches.d.ts +27 -0
  215. package/dist/src/db/sqlParamBatches.d.ts.map +1 -0
  216. package/dist/src/db/write/addExcludedTransactions.d.ts +7 -0
  217. package/dist/src/db/write/addExcludedTransactions.d.ts.map +1 -0
  218. package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts +6 -0
  219. package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts.map +1 -1
  220. package/dist/src/db/write/createMetadata.d.ts +2 -0
  221. package/dist/src/db/write/createMetadata.d.ts.map +1 -1
  222. package/dist/src/db/write/createNewItem.d.ts +3 -1
  223. package/dist/src/db/write/createNewItem.d.ts.map +1 -1
  224. package/dist/src/db/write/createSeed.d.ts +2 -1
  225. package/dist/src/db/write/createSeed.d.ts.map +1 -1
  226. package/dist/src/db/write/createSeeds.d.ts +1 -1
  227. package/dist/src/db/write/createSeeds.d.ts.map +1 -1
  228. package/dist/src/db/write/linkModelToSchema.d.ts +12 -0
  229. package/dist/src/db/write/linkModelToSchema.d.ts.map +1 -0
  230. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
  231. package/dist/src/db/write/updateMetadata.d.ts.map +1 -1
  232. package/dist/src/db/write/updateSeedRevokedAt.d.ts +11 -1
  233. package/dist/src/db/write/updateSeedRevokedAt.d.ts.map +1 -1
  234. package/dist/src/db/write/updateSeedUid.d.ts.map +1 -1
  235. package/dist/src/db/write/updateVersionUid.d.ts +2 -1
  236. package/dist/src/db/write/updateVersionUid.d.ts.map +1 -1
  237. package/dist/src/events/files/download.d.ts.map +1 -1
  238. package/dist/src/events/item/easSyncManager.d.ts +2 -0
  239. package/dist/src/events/item/easSyncManager.d.ts.map +1 -1
  240. package/dist/src/events/item/index.d.ts.map +1 -1
  241. package/dist/src/events/item/syncDbWithEas.d.ts +16 -0
  242. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
  243. package/dist/src/helpers/FileManager/BaseFileManager.d.ts +1 -0
  244. package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
  245. package/dist/src/helpers/FileManager/IFileManager.d.ts +5 -0
  246. package/dist/src/helpers/FileManager/IFileManager.d.ts.map +1 -1
  247. package/dist/src/helpers/FileManager/errors.d.ts +10 -0
  248. package/dist/src/helpers/FileManager/errors.d.ts.map +1 -0
  249. package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts +21 -3
  250. package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts.map +1 -1
  251. package/dist/src/helpers/constants.d.ts +9 -0
  252. package/dist/src/helpers/constants.d.ts.map +1 -1
  253. package/dist/src/helpers/crypto.d.ts +5 -0
  254. package/dist/src/helpers/crypto.d.ts.map +1 -1
  255. package/dist/src/helpers/db.d.ts +25 -5
  256. package/dist/src/helpers/db.d.ts.map +1 -1
  257. package/dist/src/helpers/easPropertyCanonical.d.ts +1 -1
  258. package/dist/src/helpers/easPropertyCanonical.d.ts.map +1 -1
  259. package/dist/src/helpers/entity/entityCommon.d.ts +10 -0
  260. package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -1
  261. package/dist/src/helpers/entity/entityDestroy.d.ts +1 -1
  262. package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -1
  263. package/dist/src/helpers/entity/entityLiveQuery.d.ts +5 -0
  264. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
  265. package/dist/src/helpers/file/fetchAll/actors.d.ts.map +1 -1
  266. package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -1
  267. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +6 -0
  268. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
  269. package/dist/src/helpers/isPublishedMetadataRow.d.ts +10 -0
  270. package/dist/src/helpers/isPublishedMetadataRow.d.ts.map +1 -0
  271. package/dist/src/helpers/ownership.d.ts.map +1 -1
  272. package/dist/src/helpers/property.d.ts +6 -1
  273. package/dist/src/helpers/property.d.ts.map +1 -1
  274. package/dist/src/helpers/schema.d.ts +14 -4
  275. package/dist/src/helpers/schema.d.ts.map +1 -1
  276. package/dist/src/helpers/tabCoordinator.d.ts +45 -0
  277. package/dist/src/helpers/tabCoordinator.d.ts.map +1 -0
  278. package/dist/src/helpers/tabEvents.d.ts +27 -0
  279. package/dist/src/helpers/tabEvents.d.ts.map +1 -0
  280. package/dist/src/helpers/tabLocks.d.ts +28 -0
  281. package/dist/src/helpers/tabLocks.d.ts.map +1 -0
  282. package/dist/src/helpers/updateSchema.d.ts.map +1 -1
  283. package/dist/src/imports/json.d.ts.map +1 -1
  284. package/dist/src/imports/markdown.d.ts.map +1 -1
  285. package/dist/src/index.d.ts +11 -2
  286. package/dist/src/index.d.ts.map +1 -1
  287. package/dist/src/node/db/Db.d.ts.map +1 -1
  288. package/dist/src/node/helpers/FileManager.d.ts +2 -0
  289. package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
  290. package/dist/src/query/createLocalQueryDataSource.d.ts +4 -0
  291. package/dist/src/query/createLocalQueryDataSource.d.ts.map +1 -1
  292. package/dist/src/seedSchema/MetadataSchema.d.ts +36 -0
  293. package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -1
  294. package/dist/src/seedSchema/ModelSchema.d.ts +57 -0
  295. package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
  296. package/dist/src/seedSchema/SeedSchema.d.ts +19 -0
  297. package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
  298. package/dist/src/seedSchema/VersionSchema.d.ts +17 -0
  299. package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
  300. package/dist/src/services/write/actors/writeToDatabase.d.ts +5 -0
  301. package/dist/src/services/write/actors/writeToDatabase.d.ts.map +1 -1
  302. package/dist/src/services/write/writeProcessMachine.d.ts.map +1 -1
  303. package/dist/src/stores/eas.d.ts +1 -1
  304. package/dist/src/stores/eas.d.ts.map +1 -1
  305. package/dist/src/types/index.d.ts +7 -0
  306. package/dist/src/types/index.d.ts.map +1 -1
  307. package/dist/src/types/item.d.ts +12 -3
  308. package/dist/src/types/item.d.ts.map +1 -1
  309. package/dist/src/types/property.d.ts +3 -2
  310. package/dist/src/types/property.d.ts.map +1 -1
  311. package/dist/syncDbWithEas-LRKr_NZF.js +855 -0
  312. package/dist/syncDbWithEas-LRKr_NZF.js.map +1 -0
  313. package/dist/{index-280bL-n4.js → tabEvents-DYI2GU7i.js} +231 -68
  314. package/dist/tabEvents-DYI2GU7i.js.map +1 -0
  315. package/dist/tolerantWebAccess-CzOBz5M6.js +160 -0
  316. package/dist/tolerantWebAccess-CzOBz5M6.js.map +1 -0
  317. package/dist/updateSeedRevokedAt-B58ORbY3.js +32 -0
  318. package/dist/updateSeedRevokedAt-B58ORbY3.js.map +1 -0
  319. package/package.json +5 -5
  320. package/dist/BasePathResolver-B6CKqoKw.js.map +0 -1
  321. package/dist/ClientManager-ChcmUL47.js.map +0 -1
  322. package/dist/ModelProperty-D79uV42p.js.map +0 -1
  323. package/dist/Schema-a8uO-hIZ.js.map +0 -1
  324. package/dist/SchemaValidationService-Y49vqast.js.map +0 -1
  325. package/dist/backfillMetadataPropertyIds-CBsf7LnU.js.map +0 -1
  326. package/dist/cjs/ModelProperty-D9FGaGuE.js.map +0 -1
  327. package/dist/cjs/Schema-BiJIPLEL.js.map +0 -1
  328. package/dist/cjs/SchemaValidationService-DtYs_CNY.js.map +0 -1
  329. package/dist/cjs/backfillMetadataPropertyIds-2XaN3b9S.js.map +0 -1
  330. package/dist/cjs/getPublishPayload-D5DhLGvN.js.map +0 -1
  331. package/dist/cjs/getPublishUploads-DMhCCKYF.js.map +0 -1
  332. package/dist/cjs/getSegmentedItemProperties-CU8rtBAo.js.map +0 -1
  333. package/dist/cjs/index-CSNtEnbF.js.map +0 -1
  334. package/dist/cjs/index-DPp9rdRL.js.map +0 -1
  335. package/dist/cjs/property-DlKiAWt4.js.map +0 -1
  336. package/dist/cjs/syncDbWithEas-C6n34o_Q.js +0 -606
  337. package/dist/cjs/syncDbWithEas-C6n34o_Q.js.map +0 -1
  338. package/dist/db-WbrzEf7c.js.map +0 -1
  339. package/dist/eas-CfYCu4IX.js.map +0 -1
  340. package/dist/getPublishPayload-BIrTVUxb.js.map +0 -1
  341. package/dist/getSegmentedItemProperties-BmKE71vU.js.map +0 -1
  342. package/dist/index-280bL-n4.js.map +0 -1
  343. package/dist/index-ClSv5pTA.js.map +0 -1
  344. package/dist/index-Djd3667v.js.map +0 -1
  345. package/dist/index-HRHkbVQd.js.map +0 -1
  346. package/dist/index.node-DBtQkEfz.js.map +0 -1
  347. package/dist/property-CQjuZ4JW.js.map +0 -1
  348. package/dist/src/Item/service/actors/fetchDataFromEas.d.ts +0 -4
  349. package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
  350. package/dist/src/Item/service/actors/hydrateExistingItem.d.ts +0 -4
  351. package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
  352. package/dist/src/Item/service/actors/hydrateNewItem.d.ts +0 -4
  353. package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
  354. package/dist/src/Item/service/actors/initialize.d.ts +0 -4
  355. package/dist/src/Item/service/actors/initialize.d.ts.map +0 -1
  356. package/dist/src/Item/service/actors/reload.d.ts +0 -5
  357. package/dist/src/Item/service/actors/reload.d.ts.map +0 -1
  358. package/dist/src/Item/service/actors/saveDataToDb.d.ts +0 -4
  359. package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +0 -1
  360. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts +0 -5
  361. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
  362. package/dist/src/Schema/service/addModelsMachine.d.ts +0 -123
  363. package/dist/src/Schema/service/addModelsMachine.d.ts.map +0 -1
  364. package/dist/src/db/configs/dev.schema.config.d.ts.map +0 -1
  365. package/dist/src/helpers/file/download/actors.d.ts +0 -17
  366. package/dist/src/helpers/file/download/actors.d.ts.map +0 -1
  367. package/dist/src/helpers/file/download/index.d.ts +0 -70
  368. package/dist/src/helpers/file/download/index.d.ts.map +0 -1
  369. package/dist/src/services/publish/actors/createPublishAttempt.d.ts +0 -4
  370. package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
  371. package/dist/src/services/publish/actors/preparePublishRequestData.d.ts +0 -4
  372. package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
  373. package/dist/src/services/publish/actors/upload.d.ts +0 -4
  374. package/dist/src/services/publish/actors/upload.d.ts.map +0 -1
  375. package/dist/src/services/publish/actors/validateItemData.d.ts +0 -4
  376. package/dist/src/services/publish/actors/validateItemData.d.ts.map +0 -1
  377. package/dist/src/services/publish/publishMachine.d.ts +0 -32
  378. package/dist/src/services/publish/publishMachine.d.ts.map +0 -1
  379. package/dist/syncDbWithEas-CuARXfyN.js +0 -598
  380. package/dist/syncDbWithEas-CuARXfyN.js.map +0 -1
  381. package/dist/updateSeedRevokedAt-CBcLfHWs.js +0 -22
  382. package/dist/updateSeedRevokedAt-CBcLfHWs.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import debug from 'debug';
2
- import { a as BaseDb, b as metadata, B as BaseFileManager, c as appState, C as ImageSize } from './BasePathResolver-B6CKqoKw.js';
2
+ import { B as BaseDb, b as metadata, a as BaseFileManager, c as appState, D as ImageSize, E as EAS_SEED_DATA_SYNCED_TO_DB_EVENT } from './BasePathResolver-ndE8XTpw.js';
3
3
  import { isEasAttestationExplorerUrl, BaseArweaveClient, ensureReadGatewaySelected, getArweaveReadBaseUrls } from '@seedprotocol/arweave';
4
4
  import { BaseQueryClient, BaseEasClient, GET_FILES_METADATA } from '@seedprotocol/eas';
5
5
  import { waitFor } from 'xstate';
6
6
  import 'pluralize';
7
- import { p as getAllAddressesFromDb } from './db-WbrzEf7c.js';
7
+ import { t as getAllAddressesFromDb, o as eventEmitter } from './db-BJZN0a0a.js';
8
8
  import { and, eq, or, isNotNull } from 'drizzle-orm';
9
9
  import 'nanoid';
10
10
  import 'nanoid-dictionary';
@@ -97,7 +97,7 @@ const getStorageTransactionIdForSeedUid = async (seedUid) => {
97
97
  return results[0].storageTransactionId;
98
98
  };
99
99
 
100
- const logger$3 = debug('seedSdk:helpers:mediaRef');
100
+ const logger$5 = debug('seedSdk:helpers:mediaRef');
101
101
  /** Typical Arweave transaction id: 43 URL-safe base64 characters. */
102
102
  const ARWEAVE_TX_ID = /^[a-zA-Z0-9_-]{43}$/;
103
103
  function trimOrEmpty(raw) {
@@ -183,7 +183,7 @@ async function tryLocalBlobUrlFromTxId(txId) {
183
183
  const imageFilePath = BaseFileManager.getFilesPath('images', txId);
184
184
  const fileExists = await BaseFileManager.pathExists(imageFilePath);
185
185
  if (!fileExists) {
186
- logger$3(`[tryLocalBlobUrlFromTxId] ${imageFilePath} does not exist`);
186
+ logger$5(`[tryLocalBlobUrlFromTxId] ${imageFilePath} does not exist`);
187
187
  return undefined;
188
188
  }
189
189
  const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
@@ -331,58 +331,6 @@ function normalizeFeedItemFields(item, manifest) {
331
331
  return out;
332
332
  }
333
333
 
334
- class SeedEventEmitter {
335
- constructor() {
336
- this.listeners = new Map();
337
- }
338
- on(event, listener) {
339
- const set = this.listeners.get(event) ?? new Set();
340
- set.add(listener);
341
- this.listeners.set(event, set);
342
- return this;
343
- }
344
- addListener(event, listener) {
345
- return this.on(event, listener);
346
- }
347
- once(event, listener) {
348
- const wrapped = (...args) => {
349
- this.off(event, wrapped);
350
- listener(...args);
351
- };
352
- return this.on(event, wrapped);
353
- }
354
- off(event, listener) {
355
- const set = this.listeners.get(event);
356
- if (!set)
357
- return this;
358
- set.delete(listener);
359
- if (set.size === 0)
360
- this.listeners.delete(event);
361
- return this;
362
- }
363
- removeListener(event, listener) {
364
- return this.off(event, listener);
365
- }
366
- removeAllListeners(event) {
367
- if (typeof event === 'undefined') {
368
- this.listeners.clear();
369
- return this;
370
- }
371
- this.listeners.delete(event);
372
- return this;
373
- }
374
- emit(event, ...args) {
375
- const set = this.listeners.get(event);
376
- if (!set || set.size === 0)
377
- return false;
378
- for (const listener of [...set]) {
379
- listener(...args);
380
- }
381
- return true;
382
- }
383
- }
384
- const eventEmitter = new SeedEventEmitter();
385
-
386
334
  const getMetadata = async (props) => {
387
335
  const appDb = BaseDb.getAppDb();
388
336
  let storageTransactionId;
@@ -461,7 +409,7 @@ const supportsOpfsFileDownloads = () => {
461
409
  return isBrowser() || isElectronRenderer();
462
410
  };
463
411
 
464
- const logger$2 = debug('seedSdk:files:download');
412
+ const logger$4 = debug('seedSdk:files:download');
465
413
  const AUTO_BULK_DOWNLOAD_THROTTLE_MS = 10000;
466
414
  /** Avoid refetch-on-every-call: transient empty indexer responses were overwriting good cache (see trailing throttle ~10s after success). */
467
415
  const GET_FILES_METADATA_STALE_MS = 120000;
@@ -471,14 +419,14 @@ const lazyDownloadInFlightByTransactionId = new Map();
471
419
  const syncDbFiles = async (endpoints) => {
472
420
  // TODO: Implement syncDbFiles functionality if needed
473
421
  // This was previously in @/services/internal/helpers
474
- logger$2('[download] syncDbFiles called but not yet implemented');
422
+ logger$4('[download] syncDbFiles called but not yet implemented');
475
423
  return Promise.resolve();
476
424
  };
477
425
  const getAppDbReady = async () => {
478
426
  if (!BaseDb.isAppDbReady()) {
479
427
  // Wait for ClientManager to be ready (DB_INIT state or later)
480
- const _mod_0 = await import('./ClientManager-ChcmUL47.js');
481
- const _ns_0 = _mod_0.ap;
428
+ const _mod_0 = await import('./ClientManager-DLleL_2e.js');
429
+ const _ns_0 = _mod_0.H;
482
430
  const clientManagerMod = _ns_0;
483
431
  const { getClient } = clientManagerMod;
484
432
  const clientManager = getClient();
@@ -659,7 +607,7 @@ const downloadTransactionIds = async (rawTransactionIds, options) => {
659
607
  transactionIdsToDownload.push(transactionId);
660
608
  }
661
609
  catch (error) {
662
- logger$2(error);
610
+ logger$4(error);
663
611
  }
664
612
  }
665
613
  if (transactionIdsToDownload.length === 0) {
@@ -796,7 +744,7 @@ const downloadTransactionIdWithDedupe = async (transactionId) => {
796
744
  };
797
745
  const scheduleBulkFilesDownloadFromEasSyncThrottled = throttle((addressesHint) => {
798
746
  void downloadAllFilesBinaryRequestHandler(addressesHint).catch((error) => {
799
- logger$2('[scheduleBulkFilesDownloadFromEasSync] failed', error);
747
+ logger$4('[scheduleBulkFilesDownloadFromEasSync] failed', error);
800
748
  });
801
749
  }, AUTO_BULK_DOWNLOAD_THROTTLE_MS, { leading: true, trailing: false });
802
750
  const scheduleBulkFilesDownloadFromEasSync = (addressesHint) => {
@@ -814,7 +762,7 @@ var download = /*#__PURE__*/Object.freeze({
814
762
  scheduleBulkFilesDownloadFromEasSync: scheduleBulkFilesDownloadFromEasSync
815
763
  });
816
764
 
817
- const logger$1 = debug('seedSdk:helpers:ensureImageLocal');
765
+ const logger$3 = debug('seedSdk:helpers:ensureImageLocal');
818
766
  /** Arweave transaction ids are 43 chars in the URL-safe base64 alphabet. */
819
767
  const ARWEAVE_TX_ID_RE = /^[a-z0-9_-]{43}$/i;
820
768
  const IMAGE_SIZES = [
@@ -983,7 +931,7 @@ const runEnsureImageLocal = async (params) => {
983
931
  };
984
932
  }
985
933
  catch (error) {
986
- logger$1('ensureImageLocal failed', error);
934
+ logger$3('ensureImageLocal failed', error);
987
935
  return { status: 'failed' };
988
936
  }
989
937
  };
@@ -1023,7 +971,7 @@ const ensureImageLocal = async (params) => {
1023
971
  return inFlight;
1024
972
  };
1025
973
 
1026
- const logger = debug('seedSdk:shared:helpers');
974
+ const logger$2 = debug('seedSdk:shared:helpers');
1027
975
  const toSnakeCase = (str) => {
1028
976
  return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
1029
977
  };
@@ -1080,7 +1028,7 @@ const convertTxIdToImage = async (txId) => {
1080
1028
  const imageFilePath = BaseFileManager.getFilesPath('images', txId);
1081
1029
  const fileExists = await BaseFileManager.pathExists(imageFilePath);
1082
1030
  if (!fileExists) {
1083
- logger(`[ItemView] [updateImage] ${imageFilePath} does not exist`);
1031
+ logger$2(`[ItemView] [updateImage] ${imageFilePath} does not exist`);
1084
1032
  return;
1085
1033
  }
1086
1034
  const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
@@ -1118,5 +1066,220 @@ const getArweaveUrlForTransaction = (storageTransactionId) => {
1118
1066
  return BaseArweaveClient.getRawUrl(storageTransactionId);
1119
1067
  };
1120
1068
 
1121
- export { isStorageSeedRef as a, getArweaveUrlForTransaction as b, classifyMediaRef as c, closestImageSize as d, eventEmitter as e, ensureImageLocal as f, getCorrectId as g, getFeedItemStringField as h, isPublishedSeedRef as i, normalizeArweaveTxIdForEnsure as j, normalizeFeedItemFields as k, resolveMediaRef as l, getStorageTransactionIdForSeedUid as m, normalizeRelationPropertyValue as n, convertTxIdToImage as o, downloadTransactionIdWithDedupe as p, getDataTypeFromString as q, resolveSeedIdsFromRefString as r, scheduleBulkFilesDownloadFromEasSync as s, toSnakeCase as t, getMimeType as u, isNode as v, isBrowser as w, downloadAllFilesRequestHandler as x, downloadAllFilesBinaryRequestHandler as y, download as z };
1122
- //# sourceMappingURL=index-280bL-n4.js.map
1069
+ /** Emitted by the client manager after `app_state.addresses` is written (post-`setAddresses`). */
1070
+ const ADDRESSES_PERSISTED_EVENT = 'addresses.persisted';
1071
+ /** Emitted after hard-deleting local on-chain seed copies for publisher addresses. */
1072
+ const LOCAL_COPIES_REMOVED_EVENT = 'localCopies.removed';
1073
+ function parseAddressesPersistedPayload(value) {
1074
+ if (!value || typeof value !== 'object') {
1075
+ return { owned: [], watched: [] };
1076
+ }
1077
+ const v = value;
1078
+ const owned = Array.isArray(v.owned)
1079
+ ? v.owned.filter((a) => typeof a === 'string')
1080
+ : [];
1081
+ const watched = Array.isArray(v.watched)
1082
+ ? v.watched.filter((a) => typeof a === 'string')
1083
+ : [];
1084
+ return { owned, watched };
1085
+ }
1086
+
1087
+ /**
1088
+ * Cross-tab exclusive sections, using the Web Locks API. All tabs of an origin share one SQLite
1089
+ * database and OPFS tree; the browser releases a tab's locks when it closes or crashes, so a lock
1090
+ * can't go stale. See docs/MULTI_TAB.md.
1091
+ *
1092
+ * Where Web Locks are missing, `fn` runs directly. (Node has them too, scoped to the process.)
1093
+ * Not re-entrant: requesting a name the caller already holds waits forever, so take each lock
1094
+ * only at the outermost call site.
1095
+ */
1096
+ /** Long enough for a slow init in another tab; short enough that a hung tab doesn't block forever. */
1097
+ const TAB_LOCK_WAIT_TIMEOUT_MS = 60000;
1098
+ function seedDbLockName(scope, filesDir) {
1099
+ return `seed:${scope}:${filesDir}/db/seed.db`;
1100
+ }
1101
+ /** `withTabLock` on the database under `filesDir`; runs `fn` directly when there's no `filesDir` yet. */
1102
+ function withSeedDbLock(scope, filesDir, fn) {
1103
+ return filesDir ? withTabLock(seedDbLockName(scope, filesDir), fn) : fn();
1104
+ }
1105
+ class TabLockTimeoutError extends Error {
1106
+ constructor(lockName, timeoutMs) {
1107
+ super(`Timed out after ${timeoutMs}ms waiting for another tab to release "${lockName}".`);
1108
+ this.lockName = lockName;
1109
+ this.code = 'TAB_LOCK_TIMEOUT';
1110
+ this.name = 'TabLockTimeoutError';
1111
+ }
1112
+ }
1113
+ async function withTabLock(name, fn, { timeoutMs = TAB_LOCK_WAIT_TIMEOUT_MS } = {}) {
1114
+ const locks = typeof navigator !== 'undefined' ? navigator.locks : undefined;
1115
+ if (!locks)
1116
+ return fn();
1117
+ try {
1118
+ // The timeout bounds the wait only; once granted, fn runs to completion. Infinity waits for as
1119
+ // long as the holder runs (it can't outlive its tab).
1120
+ const signal = Number.isFinite(timeoutMs) ? AbortSignal.timeout(timeoutMs) : undefined;
1121
+ return await locks.request(name, { mode: 'exclusive', signal }, fn);
1122
+ }
1123
+ catch (error) {
1124
+ if (error?.name === 'TimeoutError') {
1125
+ throw new TabLockTimeoutError(name, timeoutMs);
1126
+ }
1127
+ throw error;
1128
+ }
1129
+ }
1130
+
1131
+ const logger$1 = debug('seedSdk:helpers:tabCoordinator');
1132
+ let state;
1133
+ let leader = false;
1134
+ let leaderWaiters = [];
1135
+ const messageHandlers = new Set();
1136
+ /** Starts once per page; later calls (re-init) keep the first database. */
1137
+ function startTabCoordination({ filesDir, mode = 'coordinate' }) {
1138
+ if (state)
1139
+ return;
1140
+ const locks = typeof navigator !== 'undefined' ? navigator.locks : undefined;
1141
+ const dbKey = `${filesDir}/db/seed.db`;
1142
+ const coordinating = mode === 'coordinate' && isBrowser() && !!locks && typeof BroadcastChannel !== 'undefined';
1143
+ state = { dbKey, coordinating };
1144
+ if (!coordinating) {
1145
+ becomeLeader();
1146
+ return;
1147
+ }
1148
+ const channel = new BroadcastChannel(`seed:tabs:${dbKey}`);
1149
+ channel.onmessage = (event) => {
1150
+ for (const handler of messageHandlers)
1151
+ handler(event.data);
1152
+ };
1153
+ state.channel = channel;
1154
+ const current = state;
1155
+ void locks.request(`seed:leader:${dbKey}`, () => {
1156
+ // Reset (tests) before the grant: hand the lock straight back.
1157
+ if (state !== current)
1158
+ return undefined;
1159
+ becomeLeader();
1160
+ // Held until the tab closes (or a test resets coordination).
1161
+ return new Promise((release) => {
1162
+ current.releaseLeadership = release;
1163
+ });
1164
+ });
1165
+ }
1166
+ function becomeLeader() {
1167
+ if (leader)
1168
+ return;
1169
+ leader = true;
1170
+ logger$1(`this tab leads ${state?.dbKey}`);
1171
+ const waiters = leaderWaiters;
1172
+ leaderWaiters = [];
1173
+ for (const resolve of waiters)
1174
+ resolve();
1175
+ }
1176
+ function isLeaderTab() {
1177
+ return !state || leader;
1178
+ }
1179
+ /** Resolves when this tab leads (at once if it already does). */
1180
+ function whenLeaderTab() {
1181
+ if (isLeaderTab())
1182
+ return Promise.resolve();
1183
+ return new Promise((resolve) => leaderWaiters.push(resolve));
1184
+ }
1185
+ /** Sends to the other tabs of this database; a no-op when not coordinating. */
1186
+ function postTabMessage(message) {
1187
+ state?.channel?.postMessage(message);
1188
+ }
1189
+ function onTabMessage(handler) {
1190
+ messageHandlers.add(handler);
1191
+ return () => messageHandlers.delete(handler);
1192
+ }
1193
+ /** `withTabLock` named for this database (`seed:<scope>:<db>`); runs `fn` directly before init. */
1194
+ function withDbTabLock(scope, fn, options) {
1195
+ return state ? withTabLock(`seed:${scope}:${state.dbKey}`, fn, options) : fn();
1196
+ }
1197
+
1198
+ const logger = debug('seedSdk:helpers:tabEvents');
1199
+ /**
1200
+ * Keeps other tabs current (docs/MULTI_TAB.md). The event bus is per tab, so events that mean "the
1201
+ * shared database or OPFS changed" are also posted to the other tabs, which refresh their caches
1202
+ * and emit the same event locally. Events are posted only where they originate, so a relayed event
1203
+ * is never relayed again.
1204
+ */
1205
+ /** Emitted with the changed paths when files change outside this tab's file-system cache. */
1206
+ const FILES_CHANGED_EVENT = 'fs.files.changed';
1207
+ /** Emits on this tab's event bus and in every other tab of this database. */
1208
+ function emitAcrossTabs(name, payload) {
1209
+ if (payload === undefined) {
1210
+ eventEmitter.emit(name);
1211
+ }
1212
+ else {
1213
+ eventEmitter.emit(name, payload);
1214
+ }
1215
+ postTabMessage({ type: 'event', name, payload });
1216
+ }
1217
+ /**
1218
+ * A file saved through this tab's file system: emits `file-saved` here (as before) and tells other
1219
+ * tabs, whose caches don't see it.
1220
+ */
1221
+ function notifyFileSaved(filePath) {
1222
+ eventEmitter.emit('file-saved', filePath);
1223
+ postTabMessage({ type: 'files-changed', paths: [filePath] });
1224
+ }
1225
+ /**
1226
+ * Files written straight to OPFS by a worker: refreshes this tab's file-system cache, emits
1227
+ * FILES_CHANGED_EVENT, and tells other tabs to do the same.
1228
+ */
1229
+ async function notifyFilesWrittenOutsideCache(paths) {
1230
+ if (paths.length === 0)
1231
+ return;
1232
+ await BaseFileManager.invalidateCachedPaths(paths);
1233
+ eventEmitter.emit(FILES_CHANGED_EVENT, paths);
1234
+ postTabMessage({ type: 'files-changed', paths });
1235
+ }
1236
+ /** Refreshes this tab's in-memory state for an event another tab emitted, before re-emitting it. */
1237
+ async function catchUpOn(name, payload) {
1238
+ if (name === EAS_SEED_DATA_SYNCED_TO_DB_EVENT) {
1239
+ const _mod_1 = await import('./Item-zBFWQDU9.js');
1240
+ const _ns_1 = _mod_1.Z;
1241
+ const { Item } = _ns_1;
1242
+ await Item.rehydrateCachedItemsFromDbAfterEasSync();
1243
+ }
1244
+ else if (name === LOCAL_COPIES_REMOVED_EVENT) {
1245
+ const { removedSeedLocalIds = [], removedSeedUids = [] } = (payload ?? {});
1246
+ const _mod_2 = await import('./Item-zBFWQDU9.js');
1247
+ const _ns_2 = _mod_2.Z;
1248
+ const { Item } = _ns_2;
1249
+ Item.dropCachedInstancesForSeedIds([...removedSeedLocalIds, ...removedSeedUids]);
1250
+ }
1251
+ }
1252
+ const RELAYED_EVENTS = new Set([
1253
+ EAS_SEED_DATA_SYNCED_TO_DB_EVENT,
1254
+ ADDRESSES_PERSISTED_EVENT,
1255
+ LOCAL_COPIES_REMOVED_EVENT,
1256
+ ]);
1257
+ let listening = false;
1258
+ /** Applies other tabs' events and file changes in this tab. */
1259
+ function listenForOtherTabsEvents() {
1260
+ if (listening)
1261
+ return;
1262
+ listening = true;
1263
+ onTabMessage((message) => {
1264
+ if (message.type === 'event' && RELAYED_EVENTS.has(message.name)) {
1265
+ void catchUpOn(message.name, message.payload)
1266
+ .catch((error) => logger(`catching up on ${message.name} failed`, error))
1267
+ .then(() => {
1268
+ if (message.payload === undefined) {
1269
+ eventEmitter.emit(message.name);
1270
+ }
1271
+ else {
1272
+ eventEmitter.emit(message.name, message.payload);
1273
+ }
1274
+ });
1275
+ }
1276
+ else if (message.type === 'files-changed') {
1277
+ void BaseFileManager.invalidateCachedPaths(message.paths)
1278
+ .catch((error) => logger('refreshing changed files failed', error))
1279
+ .then(() => eventEmitter.emit(FILES_CHANGED_EVENT, message.paths));
1280
+ }
1281
+ });
1282
+ }
1283
+
1284
+ export { ADDRESSES_PERSISTED_EVENT as A, isBrowser as B, startTabCoordination as C, downloadAllFilesRequestHandler as D, downloadAllFilesBinaryRequestHandler as E, FILES_CHANGED_EVENT as F, getStorageTransactionIdForSeedUid as G, convertTxIdToImage as H, downloadTransactionIdWithDedupe as I, getDataTypeFromString as J, getMimeType as K, LOCAL_COPIES_REMOVED_EVENT as L, notifyFileSaved as M, download as N, TabLockTimeoutError as T, isStorageSeedRef as a, getArweaveUrlForTransaction as b, classifyMediaRef as c, closestImageSize as d, emitAcrossTabs as e, ensureImageLocal as f, getCorrectId as g, getFeedItemStringField as h, isPublishedSeedRef as i, isLeaderTab as j, normalizeArweaveTxIdForEnsure as k, normalizeFeedItemFields as l, resolveMediaRef as m, normalizeRelationPropertyValue as n, withDbTabLock as o, parseAddressesPersistedPayload as p, notifyFilesWrittenOutsideCache as q, resolveSeedIdsFromRefString as r, scheduleBulkFilesDownloadFromEasSync as s, toSnakeCase as t, withSeedDbLock as u, postTabMessage as v, whenLeaderTab as w, onTabMessage as x, listenForOtherTabsEvents as y, isNode as z };
1285
+ //# sourceMappingURL=tabEvents-DYI2GU7i.js.map