@seedprotocol/sdk 0.6.9 → 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
@@ -0,0 +1,160 @@
1
+ import { Inode, constants } from '@zenfs/core';
2
+ import { join } from '@zenfs/core/path';
3
+ import { WebAccess, WebAccessFS } from '@zenfs/dom';
4
+ import debug from 'debug';
5
+ import { i as isSkippableOpfsEntryError } from './index.browser-CNrqhvEA.js';
6
+ import './BasePathResolver-ndE8XTpw.js';
7
+ import 'drizzle-orm/sqlite-core';
8
+ import 'drizzle-orm';
9
+ import '@seedprotocol/arweave';
10
+ import './tabEvents-DYI2GU7i.js';
11
+ import '@seedprotocol/eas';
12
+ import 'xstate';
13
+ import 'pluralize';
14
+ import './db-BJZN0a0a.js';
15
+ import 'drizzle-orm/casing';
16
+ import 'lodash-es';
17
+ import '@sinclair/typebox';
18
+ import 'nanoid';
19
+ import 'nanoid-dictionary';
20
+ import '@seedprotocol/query';
21
+ import './errors-CrBxGWah.js';
22
+ import 'drizzle-orm/sqlite-proxy';
23
+ import '@noble/hashes/sha256';
24
+ import '@noble/hashes/utils';
25
+ import './index-B0LgJblD.js';
26
+ import 'sqlocal/drizzle';
27
+ import 'rxjs';
28
+ import 'graphql-request';
29
+ import 'arweave';
30
+ import '@tanstack/react-query';
31
+
32
+ const logger = debug('seedSdk:browser:helpers:tolerantWebAccess');
33
+ /**
34
+ * WebAccessFS mounts by walking all of OPFS and reading every file's size, and one unreadable
35
+ * entry fails the whole mount. This variant skips such entries instead. A skipped file is still
36
+ * listed by readdir, and WebAccessFS.stat() indexes it lazily on first use, once it is readable.
37
+ *
38
+ * Overrides @zenfs/dom 1.2.9 / @zenfs/core 2.5.6 internals (`_loadHandles`, `_loadMetadata`,
39
+ * `crossCopy`, `_handles`, `_sync`, `index`); both packages are pinned to exact versions, and
40
+ * tolerantWebAccess.test.ts covers the coupling.
41
+ */
42
+ class TolerantWebAccessFS extends WebAccessFS {
43
+ async _loadHandles(path, handle) {
44
+ try {
45
+ for await (const [key, child] of handle.entries()) {
46
+ const p = join(path, key);
47
+ this._handles.set(p, child);
48
+ if (child.kind == 'directory')
49
+ await this._loadHandles(p, child);
50
+ }
51
+ }
52
+ catch (error) {
53
+ // An unreadable root means nothing was walked; let initializeFileSystem retry the mount.
54
+ if (!isSkippableOpfsEntryError(error) || path == '/')
55
+ throw error;
56
+ // The directory went away (or became unreadable) mid-walk: forget it and anything under it.
57
+ logger(`skipping directory ${path}: ${error.name}`);
58
+ for (const p of [...this._handles.keys()]) {
59
+ if (p == path || p.startsWith(path + '/'))
60
+ this._handles.delete(p);
61
+ }
62
+ }
63
+ }
64
+ async _loadMetadata(metadataPath) {
65
+ if (metadataPath)
66
+ return super._loadMetadata(metadataPath);
67
+ this._handles.set('/', this.root);
68
+ await this._loadHandles('/', this.root);
69
+ for (const [path, handle] of [...this._handles]) {
70
+ if (handle.kind == 'directory') {
71
+ this.index.set(path, new Inode({ mode: 0o777 | constants.S_IFDIR, size: 0 }));
72
+ continue;
73
+ }
74
+ try {
75
+ const { lastModified, size } = await handle.getFile();
76
+ this.index.set(path, new Inode({ mode: 0o644 | constants.S_IFREG, size, mtimeMs: lastModified }));
77
+ }
78
+ catch (error) {
79
+ if (!isSkippableOpfsEntryError(error))
80
+ throw error;
81
+ logger(`skipping file ${path}: ${error.name}`);
82
+ // A removed file's handle would keep resolving to nothing; a locked one is still valid.
83
+ if (error.name == 'NotFoundError')
84
+ this._handles.delete(path);
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * Forgets what the mount cached for `path` (size, handle, contents) and reads it again from OPFS.
90
+ * For files written outside this ZenFS instance: by another tab, or by a worker writing to OPFS
91
+ * directly. A file that's gone stays forgotten. The in-memory copy is only refreshed when its
92
+ * directory is already cached; async reads re-index the file either way (WebAccessFS.stat).
93
+ */
94
+ async invalidate(path) {
95
+ if (path == '/')
96
+ return;
97
+ this.index.delete(path);
98
+ this._handles.delete(path);
99
+ try {
100
+ this._sync.unlinkSync(path);
101
+ }
102
+ catch {
103
+ // Not cached.
104
+ }
105
+ await this.crossCopy(path);
106
+ }
107
+ /**
108
+ * The Async mixin's ready() then copies every file's contents into an in-memory cache, a second
109
+ * walk that reads the same busy entries. Skip those too; the root still fails the mount.
110
+ */
111
+ async crossCopy(path) {
112
+ const crossCopy = WebAccessFS.prototype.crossCopy;
113
+ if (path == '/')
114
+ return crossCopy.call(this, path);
115
+ try {
116
+ await crossCopy.call(this, path);
117
+ }
118
+ catch (error) {
119
+ if (!isSkippableOpfsEntryError(error) && !isErrnoChangedEntry(error))
120
+ throw error;
121
+ logger(`not caching ${path}: ${error.name}`);
122
+ // Drop a half-copied entry so the cache doesn't serve an empty file in its place.
123
+ try {
124
+ this._sync.unlinkSync(path);
125
+ }
126
+ catch {
127
+ try {
128
+ this._sync.rmdirSync(path);
129
+ }
130
+ catch {
131
+ // Nothing was copied.
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * ZenFS converts most DOMExceptions to errno errors: an entry removed mid-walk becomes ENOENT, and
139
+ * a file whose size changed since _loadMetadata (SQLite writing in another tab) fails read() with
140
+ * an EIO size mismatch.
141
+ */
142
+ function isErrnoChangedEntry(error) {
143
+ const { code, message } = (error ?? {});
144
+ if (code === 'ENOENT')
145
+ return true;
146
+ return code === 'EIO' && typeof message === 'string' && message.includes('mismatch in file data size');
147
+ }
148
+ /** Drop-in for `WebAccess` in `configureSingle({ backend, handle })`. */
149
+ const TolerantWebAccess = {
150
+ ...WebAccess,
151
+ name: 'TolerantWebAccess',
152
+ async create(options) {
153
+ const fs = new TolerantWebAccessFS(options.handle, options.disableHandleCache);
154
+ await fs._loadMetadata(options.metadata);
155
+ return fs;
156
+ },
157
+ };
158
+
159
+ export { TolerantWebAccess, TolerantWebAccessFS };
160
+ //# sourceMappingURL=tolerantWebAccess-CzOBz5M6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tolerantWebAccess-CzOBz5M6.js","sources":["../../src/browser/helpers/tolerantWebAccess.ts"],"sourcesContent":["import { constants, Inode } from '@zenfs/core'\nimport { join } from '@zenfs/core/path'\nimport { WebAccess, WebAccessFS } from '@zenfs/dom'\nimport type { WebAccessOptions } from '@zenfs/dom'\nimport debug from 'debug'\nimport { isSkippableOpfsEntryError } from './opfsErrors'\n\nconst logger = debug('seedSdk:browser:helpers:tolerantWebAccess')\n\n/**\n * WebAccessFS mounts by walking all of OPFS and reading every file's size, and one unreadable\n * entry fails the whole mount. This variant skips such entries instead. A skipped file is still\n * listed by readdir, and WebAccessFS.stat() indexes it lazily on first use, once it is readable.\n *\n * Overrides @zenfs/dom 1.2.9 / @zenfs/core 2.5.6 internals (`_loadHandles`, `_loadMetadata`,\n * `crossCopy`, `_handles`, `_sync`, `index`); both packages are pinned to exact versions, and\n * tolerantWebAccess.test.ts covers the coupling.\n */\nexport class TolerantWebAccessFS extends WebAccessFS {\n async _loadHandles(path: string, handle: FileSystemDirectoryHandle): Promise<void> {\n try {\n for await (const [key, child] of (handle as any).entries() as AsyncIterable<[string, FileSystemHandle]>) {\n const p = join(path, key)\n this._handles.set(p, child)\n if (child.kind == 'directory') await this._loadHandles(p, child as FileSystemDirectoryHandle)\n }\n } catch (error) {\n // An unreadable root means nothing was walked; let initializeFileSystem retry the mount.\n if (!isSkippableOpfsEntryError(error) || path == '/') throw error\n // The directory went away (or became unreadable) mid-walk: forget it and anything under it.\n logger(`skipping directory ${path}: ${(error as DOMException).name}`)\n for (const p of [...this._handles.keys()]) {\n if (p == path || p.startsWith(path + '/')) this._handles.delete(p)\n }\n }\n }\n\n async _loadMetadata(metadataPath?: string): Promise<void> {\n if (metadataPath) return super._loadMetadata(metadataPath)\n\n this._handles.set('/', this.root)\n await this._loadHandles('/', this.root)\n\n for (const [path, handle] of [...this._handles]) {\n if (handle.kind == 'directory') {\n this.index.set(path, new Inode({ mode: 0o777 | constants.S_IFDIR, size: 0 }))\n continue\n }\n try {\n const { lastModified, size } = await (handle as FileSystemFileHandle).getFile()\n this.index.set(path, new Inode({ mode: 0o644 | constants.S_IFREG, size, mtimeMs: lastModified }))\n } catch (error) {\n if (!isSkippableOpfsEntryError(error)) throw error\n logger(`skipping file ${path}: ${(error as DOMException).name}`)\n // A removed file's handle would keep resolving to nothing; a locked one is still valid.\n if ((error as DOMException).name == 'NotFoundError') this._handles.delete(path)\n }\n }\n }\n\n /**\n * Forgets what the mount cached for `path` (size, handle, contents) and reads it again from OPFS.\n * For files written outside this ZenFS instance: by another tab, or by a worker writing to OPFS\n * directly. A file that's gone stays forgotten. The in-memory copy is only refreshed when its\n * directory is already cached; async reads re-index the file either way (WebAccessFS.stat).\n */\n async invalidate(path: string): Promise<void> {\n if (path == '/') return\n this.index.delete(path)\n this._handles.delete(path)\n try {\n this._sync.unlinkSync(path)\n } catch {\n // Not cached.\n }\n await this.crossCopy(path)\n }\n\n /**\n * The Async mixin's ready() then copies every file's contents into an in-memory cache, a second\n * walk that reads the same busy entries. Skip those too; the root still fails the mount.\n */\n async crossCopy(path: string): Promise<void> {\n const crossCopy = (WebAccessFS.prototype as unknown as AsyncCrossCopy).crossCopy\n if (path == '/') return crossCopy.call(this, path)\n try {\n await crossCopy.call(this, path)\n } catch (error) {\n if (!isSkippableOpfsEntryError(error) && !isErrnoChangedEntry(error)) throw error\n logger(`not caching ${path}: ${(error as Error).name}`)\n // Drop a half-copied entry so the cache doesn't serve an empty file in its place.\n try {\n this._sync.unlinkSync(path)\n } catch {\n try {\n this._sync.rmdirSync(path)\n } catch {\n // Nothing was copied.\n }\n }\n }\n }\n}\n\ntype AsyncCrossCopy = { crossCopy(this: TolerantWebAccessFS, path: string): Promise<void> }\n\n/**\n * ZenFS converts most DOMExceptions to errno errors: an entry removed mid-walk becomes ENOENT, and\n * a file whose size changed since _loadMetadata (SQLite writing in another tab) fails read() with\n * an EIO size mismatch.\n */\nfunction isErrnoChangedEntry(error: unknown): boolean {\n const { code, message } = (error ?? {}) as { code?: unknown; message?: unknown }\n if (code === 'ENOENT') return true\n return code === 'EIO' && typeof message === 'string' && message.includes('mismatch in file data size')\n}\n\n/** Drop-in for `WebAccess` in `configureSingle({ backend, handle })`. */\nexport const TolerantWebAccess = {\n ...WebAccess,\n name: 'TolerantWebAccess',\n async create(options: WebAccessOptions): Promise<WebAccessFS> {\n const fs = new TolerantWebAccessFS(options.handle, options.disableHandleCache)\n await fs._loadMetadata(options.metadata)\n return fs\n },\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,MAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAEjE;;;;;;;;AAQG;AACG,MAAO,mBAAoB,SAAQ,WAAW,CAAA;AAClD,IAAA,MAAM,YAAY,CAAC,IAAY,EAAE,MAAiC,EAAA;AAChE,QAAA,IAAI;AACF,YAAA,WAAW,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAK,MAAc,CAAC,OAAO,EAA+C,EAAE;gBACvG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;AAC3B,gBAAA,IAAI,KAAK,CAAC,IAAI,IAAI,WAAW;oBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAkC,CAAC;YAC/F;QACF;QAAE,OAAO,KAAK,EAAE;;YAEd,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG;AAAE,gBAAA,MAAM,KAAK;;YAEjE,MAAM,CAAC,sBAAsB,IAAI,CAAA,EAAA,EAAM,KAAsB,CAAC,IAAI,CAAA,CAAE,CAAC;AACrE,YAAA,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE;gBACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;AAAE,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE;QACF;IACF;IAEA,MAAM,aAAa,CAAC,YAAqB,EAAA;AACvC,QAAA,IAAI,YAAY;AAAE,YAAA,OAAO,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;QAE1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;AAEvC,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC/C,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE;gBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7E;YACF;AACA,YAAA,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAO,MAA+B,CAAC,OAAO,EAAE;gBAC/E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;YACnG;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAAE,oBAAA,MAAM,KAAK;gBAClD,MAAM,CAAC,iBAAiB,IAAI,CAAA,EAAA,EAAM,KAAsB,CAAC,IAAI,CAAA,CAAE,CAAC;;AAEhE,gBAAA,IAAK,KAAsB,CAAC,IAAI,IAAI,eAAe;AAAE,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACjF;QACF;IACF;AAEA;;;;;AAKG;IACH,MAAM,UAAU,CAAC,IAAY,EAAA;QAC3B,IAAI,IAAI,IAAI,GAAG;YAAE;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B;AAAE,QAAA,MAAM;;QAER;AACA,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,IAAY,EAAA;AAC1B,QAAA,MAAM,SAAS,GAAI,WAAW,CAAC,SAAuC,CAAC,SAAS;QAChF,IAAI,IAAI,IAAI,GAAG;YAAE,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAClD,QAAA,IAAI;YACF,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAClC;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAAE,gBAAA,MAAM,KAAK;YACjF,MAAM,CAAC,eAAe,IAAI,CAAA,EAAA,EAAM,KAAe,CAAC,IAAI,CAAA,CAAE,CAAC;;AAEvD,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B;AAAE,YAAA,MAAM;AACN,gBAAA,IAAI;AACF,oBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC5B;AAAE,gBAAA,MAAM;;gBAER;YACF;QACF;IACF;AACD;AAID;;;;AAIG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAA;IACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAA0C;IAChF,IAAI,IAAI,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI;AAClC,IAAA,OAAO,IAAI,KAAK,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC;AACxG;AAEA;AACO,MAAM,iBAAiB,GAAG;AAC/B,IAAA,GAAG,SAAS;AACZ,IAAA,IAAI,EAAE,mBAAmB;IACzB,MAAM,MAAM,CAAC,OAAyB,EAAA;AACpC,QAAA,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC;QAC9E,MAAM,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,QAAA,OAAO,EAAE;IACX,CAAC;;;"}
@@ -0,0 +1,32 @@
1
+ import { B as BaseDb, r as seeds, b as metadata, v as versions } from './BasePathResolver-ndE8XTpw.js';
2
+ import { eq, and, or, inArray, isNull } from 'drizzle-orm';
3
+ import { w as writeInBatches } from './Item-zBFWQDU9.js';
4
+
5
+ /**
6
+ * Sets revokedAt timestamp on a seed record after attestations have been revoked on EAS.
7
+ */
8
+ const updateSeedRevokedAt = async ({ seedLocalId, revokedAt, metadataUids, versionUids, }) => {
9
+ if (!seedLocalId) {
10
+ return;
11
+ }
12
+ const appDb = BaseDb.getAppDb();
13
+ await appDb
14
+ .update(seeds)
15
+ .set({
16
+ revokedAt,
17
+ updatedAt: Date.now(),
18
+ })
19
+ .where(eq(seeds.localId, seedLocalId));
20
+ // An item can have many property attestations; each list binds once per uid (twice for metadata).
21
+ await writeInBatches(metadataUids ?? [], (chunk) => appDb
22
+ .update(metadata)
23
+ .set({ revokedAt, updatedAt: Date.now() })
24
+ .where(and(or(inArray(metadata.uid, chunk), inArray(metadata.derivedFromUid, chunk)), isNull(metadata.revokedAt))));
25
+ await writeInBatches(versionUids ?? [], (chunk) => appDb
26
+ .update(versions)
27
+ .set({ revokedAt, updatedAt: Date.now() })
28
+ .where(and(inArray(versions.uid, chunk), isNull(versions.revokedAt))));
29
+ };
30
+
31
+ export { updateSeedRevokedAt as u };
32
+ //# sourceMappingURL=updateSeedRevokedAt-B58ORbY3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateSeedRevokedAt-B58ORbY3.js","sources":["../../src/db/write/updateSeedRevokedAt.ts"],"sourcesContent":["import { BaseDb } from '@/db/Db/BaseDb'\nimport { metadata, seeds, versions } from '@/seedSchema'\nimport { and, eq, inArray, isNull, or } from 'drizzle-orm'\nimport { writeInBatches } from '@/db/sqlParamBatches'\n\ntype UpdateSeedRevokedAtProps = {\n seedLocalId: string\n /** Unix seconds. */\n revokedAt: number\n /**\n * Property attestation UIDs revoked along with the seed. Their metadata rows get the same\n * `revoked_at` (unless they already have one), so they read as revoked before the next sync.\n * Rows sync derived from them (ItemStorage rows whose `derived_from_uid` is one of these) are\n * stamped the same way.\n */\n metadataUids?: string[]\n /** Version attestation UIDs revoked along with the seed; their rows are stamped the same way. */\n versionUids?: string[]\n}\n\n/**\n * Sets revokedAt timestamp on a seed record after attestations have been revoked on EAS.\n */\nexport const updateSeedRevokedAt = async ({\n seedLocalId,\n revokedAt,\n metadataUids,\n versionUids,\n}: UpdateSeedRevokedAtProps): Promise<void> => {\n if (!seedLocalId) {\n return\n }\n\n const appDb = BaseDb.getAppDb()\n\n await appDb\n .update(seeds)\n .set({\n revokedAt,\n updatedAt: Date.now(),\n })\n .where(eq(seeds.localId, seedLocalId))\n\n // An item can have many property attestations; each list binds once per uid (twice for metadata).\n await writeInBatches(metadataUids ?? [], (chunk) =>\n appDb\n .update(metadata)\n .set({ revokedAt, updatedAt: Date.now() })\n .where(\n and(\n or(inArray(metadata.uid, chunk), inArray(metadata.derivedFromUid, chunk)),\n isNull(metadata.revokedAt),\n ),\n ),\n )\n\n await writeInBatches(versionUids ?? [], (chunk) =>\n appDb\n .update(versions)\n .set({ revokedAt, updatedAt: Date.now() })\n .where(and(inArray(versions.uid, chunk), isNull(versions.revokedAt))),\n )\n}\n"],"names":[],"mappings":";;;;AAoBA;;AAEG;AACI,MAAM,mBAAmB,GAAG,OAAO,EACxC,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,GACc,KAAmB;IAC5C,IAAI,CAAC,WAAW,EAAE;QAChB;IACF;AAEA,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM;SACH,MAAM,CAAC,KAAK;AACZ,SAAA,GAAG,CAAC;QACH,SAAS;AACT,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB;SACA,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;IAGxC,MAAM,cAAc,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,KAAK,KAC7C;SACG,MAAM,CAAC,QAAQ;SACf,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;AACxC,SAAA,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EACzE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC3B,CACF,CACJ;IAED,MAAM,cAAc,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,KAAK,KAC5C;SACG,MAAM,CAAC,QAAQ;SACf,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;SACxC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CACxE;AACH;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedprotocol/sdk",
3
- "version": "0.6.9",
3
+ "version": "0.7.0",
4
4
  "description": "Official TypeScript SDK for Seed Protocol — local-first ORM with SQLite/OPFS, syncing via Ethereum Attestation Service (EAS) and Arweave.",
5
5
  "keywords": [
6
6
  "seed-protocol",
@@ -75,10 +75,10 @@
75
75
  "dependencies": {
76
76
  "@ethereum-attestation-service/eas-sdk": "^2.9.0",
77
77
  "@libsql/client": "^0.15.15",
78
- "@seedprotocol/arweave": "0.6.9",
79
- "@seedprotocol/eas": "0.6.9",
80
- "@seedprotocol/query": "0.6.9",
81
- "@seedprotocol/vite": "0.6.9",
78
+ "@seedprotocol/arweave": "0.7.0",
79
+ "@seedprotocol/eas": "0.7.0",
80
+ "@seedprotocol/query": "0.7.0",
81
+ "@seedprotocol/vite": "0.7.0",
82
82
  "@sinclair/typebox": "^0.34.45",
83
83
  "@sqlite.org/sqlite-wasm": "^3.51.1-build2",
84
84
  "arweave": "^1.15.5",
@@ -1 +0,0 @@
1
- {"version":3,"file":"BasePathResolver-B6CKqoKw.js","sources":["../../src/db/Db/BaseDb.ts","../../src/seedSchema/ModelSchema.ts","../../src/helpers/FileManager/BaseFileManager.ts","../../src/seedSchema/SeedSchema.ts","../../src/seedSchema/VersionSchema.ts","../../src/seedSchema/MetadataSchema.ts","../../src/seedSchema/AppStateSchema.ts","../../src/seedSchema/ModelUidSchema.ts","../../src/seedSchema/PropertyUidSchema.ts","../../src/seedSchema/ConfigSchema.ts","../../src/seedSchema/SchemaSchema.ts","../../src/seedSchema/ModelSchemaSchema.ts","../../src/seedSchema/PublishProcessSchema.ts","../../src/seedSchema/UploadProcessSchema.ts","../../src/seedSchema/ArweaveL1FinalizeSchema.ts","../../src/seedSchema/EasSyncProcessSchema.ts","../../src/seedSchema/HtmlEmbeddedImageCoPublishSchema.ts","../../src/helpers/constants.ts","../../src/testing/platformTestHandle.ts","../../src/helpers/PathResolver/BasePathResolver.ts"],"sourcesContent":["import type { IDb } from '@/interfaces/IDb'\nimport { Observable } from 'rxjs'\n\nexport abstract class BaseDb {\n static filesDir: string | undefined\n private static _impl: IDb | null = null\n\n static configure(impl: IDb): void {\n if (!impl) {\n throw new Error(\n 'Cannot configure Db with undefined or null. Ensure the platform-specific Db is properly created.',\n )\n }\n BaseDb._impl = impl\n }\n\n private static requireImpl(): IDb {\n if (!BaseDb._impl) {\n throw new Error(\n 'Db not configured. Call BaseDb.configure() during platform init.',\n )\n }\n return BaseDb._impl\n }\n\n static getAppDb(): any {\n return BaseDb.requireImpl().getAppDb()\n }\n\n static prepareDb(filesDir: string, config?: any): Promise<any> {\n return BaseDb.requireImpl().prepareDb(filesDir, config)\n }\n\n static isAppDbReady(): boolean {\n if (!BaseDb._impl) {\n return false\n }\n return BaseDb._impl.isAppDbReady()\n }\n\n static connectToDb(pathToDir: string): Promise<unknown> {\n return BaseDb.requireImpl().connectToDb(pathToDir)\n }\n\n static async migrate(pathToDbDir: string, dbName: string, dbId: string): Promise<void> {\n return BaseDb.requireImpl().migrate(pathToDbDir, dbName, dbId)\n }\n\n /**\n * Execute a reactive query that emits new results whenever the underlying data changes.\n *\n * Supports two usage patterns:\n * 1. SQL tag function: liveQuery((sql) => sql`SELECT * FROM models`)\n * 2. Drizzle query builder (browser only): liveQuery(db.select().from(models))\n */\n static liveQuery<T>(query: ((sql: any) => any) | any): Observable<T[]> {\n return BaseDb.requireImpl().liveQuery<T>(query)\n }\n}\n","import { integer, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core'\nimport { relations } from 'drizzle-orm'\nimport { InferInsertModel, InferSelectModel } from 'drizzle-orm'\n\n\nexport const models = sqliteTable(\n 'models',\n {\n id: integer('id').primaryKey({ autoIncrement: true }),\n name: text('name').notNull(),\n schemaFileId: text('schema_file_id'), // ID from JSON file for change tracking - must be unique\n isEdited: integer('is_edited', { mode: 'boolean' }), // true if model has been edited locally, false if matches schema file\n },\n (table) => {\n return {\n uniqueSchemaFileId: unique('unique_schema_file_id').on(table.schemaFileId),\n }\n }\n)\n\nexport const modelsRelations = relations(models, ({ many }) => ({\n properties: many(properties),\n}))\n\nexport type NewModelRecord = typeof models.$inferInsert\nexport type ModelRecordType = typeof models.$inferSelect\n\nexport const properties = sqliteTable(\n 'properties',\n {\n id: integer('id').primaryKey({ autoIncrement: true }),\n name: text('name').notNull(),\n dataType: text('data_type').notNull(),\n modelId: integer('model_id')\n .notNull()\n .references(() => models.id),\n refModelId: integer('ref_model_id').references(() => models.id),\n refValueType: text('ref_value_type'),\n schemaFileId: text('schema_file_id'), // ID from JSON file for change tracking\n isEdited: integer('is_edited', { mode: 'boolean' }), // true if property has been edited locally, false if matches schema file\n required: integer('required', { mode: 'boolean' }), // true if relation/image property is required (publish fails when related item not found)\n },\n (table) => {\n return {\n uniqueNameModelId: unique('unique_name_model_id').on(\n table.name,\n table.modelId,\n ),\n uniqueSchemaFileId: unique('unique_property_schema_file_id').on(table.schemaFileId),\n }\n },\n)\n\nexport const propertiesRelations = relations(properties, ({ one }) => ({\n model: one(models),\n refModel: one(models),\n}))\n\nexport type NewPropertyRecord = InferInsertModel<typeof properties>\nexport type PropertyType = InferSelectModel<typeof properties>\n","import type {\n DownloadAllFilesParams,\n DownloadSingleFileParams,\n IFileManager,\n ResizeAllImagesParams,\n ResizeImageParams,\n} from './IFileManager'\n\nexport abstract class BaseFileManager {\n private static fileSystemInitialized = false\n private static initializing = false\n private static workingDir: string | undefined\n private static _impl: IFileManager | null = null\n private static initializePromise: Promise<void> | null = null\n\n static configure(impl: IFileManager): void {\n if (!impl) {\n throw new Error(\n 'Cannot configure FileManager with undefined or null. Ensure the platform-specific FileManager is properly created.',\n )\n }\n BaseFileManager._impl = impl\n }\n\n private static requireImpl(): IFileManager {\n if (!BaseFileManager._impl) {\n throw new Error(\n 'FileManager not configured. Call BaseFileManager.configure() during platform init.',\n )\n }\n return BaseFileManager._impl\n }\n\n /**\n * Clears FS init flags so a later call can retry. Used after a failed init\n * and by tests. Does not unmount or delete any files.\n */\n static resetInitializationState(): void {\n this.fileSystemInitialized = false\n this.initializing = false\n this.initializePromise = null\n this.workingDir = undefined\n }\n\n static initializeFileSystem(workingDir?: string): Promise<void> {\n if (this.fileSystemInitialized) {\n return Promise.resolve()\n }\n if (this.initializePromise) {\n return this.initializePromise\n }\n\n this.initializing = true\n const pending = this.runInitializeFileSystem(workingDir).finally(() => {\n this.initializing = false\n if (this.initializePromise === pending) {\n this.initializePromise = null\n }\n })\n this.initializePromise = pending\n return pending\n }\n\n private static async runInitializeFileSystem(workingDir?: string): Promise<void> {\n await BaseFileManager.requireImpl().initializeFileSystem(workingDir)\n this.fileSystemInitialized = true\n this.workingDir = workingDir\n }\n\n static getWorkingDir(): string {\n if (!this.workingDir) {\n throw new Error('Working directory is not set')\n }\n return this.workingDir\n }\n\n /**\n * Build a path under the configured files root (e.g. /app-files).\n * Use this instead of hardcoding /files/ for images, html, json, etc.\n * @param subpaths - path segments to join (e.g. 'images', fileName)\n * @returns full path like /app-files/images/egg.jpg\n */\n static getFilesPath(...subpaths: string[]): string {\n const root = this.getWorkingDir().replace(/\\/$/, '')\n const parts = [root, ...subpaths].filter(Boolean)\n return parts.join('/').replace(/\\/+/g, '/')\n }\n\n static getContentUrlFromPath(path: string): Promise<string | undefined> {\n return BaseFileManager.requireImpl().getContentUrlFromPath(path)\n }\n\n static downloadAllFiles({\n transactionIds,\n arweaveHost,\n arweaveBaseUrls,\n excludedTransactions,\n }: DownloadAllFilesParams): Promise<void> {\n return BaseFileManager.requireImpl().downloadAllFiles({\n transactionIds,\n arweaveHost,\n arweaveBaseUrls,\n excludedTransactions,\n })\n }\n\n static downloadFileByTransactionId({\n transactionId,\n arweaveHost,\n arweaveBaseUrls,\n excludedTransactions,\n }: DownloadSingleFileParams): Promise<void> {\n return BaseFileManager.requireImpl().downloadAllFiles({\n transactionIds: [transactionId],\n arweaveHost,\n arweaveBaseUrls,\n excludedTransactions,\n })\n }\n\n static resizeImage({ filePath, width, height }: ResizeImageParams): Promise<void> {\n return BaseFileManager.requireImpl().resizeImage({ filePath, width, height })\n }\n\n static resizeAllImages({ width, height }: ResizeAllImagesParams): Promise<void> {\n return BaseFileManager.requireImpl().resizeAllImages({ width, height })\n }\n\n static pathExists(filePath: string): Promise<boolean> {\n return BaseFileManager.requireImpl().pathExists(filePath)\n }\n\n /** File size in bytes, or null if the path does not exist / cannot be stated. */\n static getFileSize(filePath: string): Promise<number | null> {\n return BaseFileManager.requireImpl().getFileSize(filePath)\n }\n\n /**\n * Returns a list of filenames in the given directory (e.g. 'images', 'files').\n */\n static listFiles(dir: string): Promise<string[]> {\n return BaseFileManager.requireImpl().listFiles(dir)\n }\n\n /**\n * Returns a list of image filenames in the images folder (originals only, excludes size subdirs).\n * Use this to get all stored images without traversing 480/760/1024/1440/1920 subdirectories.\n */\n static listImageFiles(): Promise<string[]> {\n return this.listFiles('images')\n }\n\n static createDirIfNotExists(filePath: string): Promise<void> {\n return BaseFileManager.requireImpl().createDirIfNotExists(filePath)\n }\n\n static async waitForFile(filePath: string): Promise<boolean> {\n return BaseFileManager.requireImpl().waitForFile(filePath)\n }\n\n static async waitForFileWithContent(\n filePath: string,\n interval?: number,\n timeout?: number,\n ): Promise<boolean> {\n return BaseFileManager.requireImpl().waitForFileWithContent(filePath, interval, timeout)\n }\n\n static async saveFile(filePath: string, content: string | Blob | ArrayBuffer): Promise<void> {\n return BaseFileManager.requireImpl().saveFile(filePath, content)\n }\n\n static saveFileSync(filePath: string, content: string | Blob | ArrayBuffer): void {\n return BaseFileManager.requireImpl().saveFileSync(filePath, content)\n }\n\n static async readFile(filePath: string): Promise<File> {\n return BaseFileManager.requireImpl().readFile(filePath)\n }\n\n static readFileSync(filePath: string): File {\n return BaseFileManager.requireImpl().readFileSync(filePath)\n }\n\n static async readFileAsBuffer(filePath: string): Promise<Buffer | Blob> {\n return BaseFileManager.requireImpl().readFileAsBuffer(filePath)\n }\n\n static async readFileAsString(filePath: string): Promise<string> {\n return BaseFileManager.requireImpl().readFileAsString(filePath)\n }\n\n static async getFs(): Promise<any> {\n return BaseFileManager.requireImpl().getFs()\n }\n\n static getFsSync(): any {\n return BaseFileManager.requireImpl().getFsSync()\n }\n\n static getPathModule(): any {\n return BaseFileManager.requireImpl().getPathModule()\n }\n\n static getParentDirPath(filePath: string): string {\n return BaseFileManager.requireImpl().getParentDirPath(filePath)\n }\n\n static getFilenameFromPath(filePath: string): string {\n return BaseFileManager.requireImpl().getFilenameFromPath(filePath)\n }\n}\n","import { InferSelectModel } from 'drizzle-orm'\nimport { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const seeds = sqliteTable(\n 'seeds',\n {\n localId: text('local_id').unique(),\n uid: text('uid'),\n schemaUid: text('schema_uid'),\n type: text('type'),\n publisher: text('publisher'),\n attestationRaw: text('attestation_raw'),\n attestationCreatedAt: int('attestation_created_at'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n _markedForDeletion: int('_marked_for_deletion'),\n revokedAt: int('revoked_at'),\n },\n // {\n // triggers: [\n // sql<string>`CREATE TRIGGER IF NOT EXISTS seeds_created_at_trigger\n // BEFORE INSERT\n // ON seeds\n // FOR EACH ROW\n // BEGIN\n // SELECT strftime('%s', 'now') * 1000 INTO NEW.created_at;\n // END;`,\n // ],\n // },\n)\n\nexport type SeedType = InferSelectModel<typeof seeds>\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\n\nexport const versions = sqliteTable('versions', {\n localId: text('local_id').unique(),\n uid: text('uid'),\n seedLocalId: text('seed_local_id'),\n seedUid: text('seed_uid'),\n seedType: text('seed_type'),\n note: text('note'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n attestationCreatedAt: int('attestation_created_at'),\n attestationRaw: text('attestation_raw'),\n publisher: text('publisher'),\n})\n\nexport type VersionsType = InferSelectModel<typeof versions>\n","import { int, integer, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\nimport { properties } from './ModelSchema'\n\nexport const metadata = sqliteTable('metadata', {\n localId: text('local_id').unique(),\n uid: text('uid'),\n propertyId: integer('property_id').references(() => properties.id),\n propertyName: text('property_name'),\n propertyValue: text('property_value'),\n schemaUid: text('schema_uid'),\n modelType: text('model_type'),\n seedLocalId: text('seed_local_id'),\n seedUid: text('seed_uid'),\n versionLocalId: text('version_local_id'),\n versionUid: text('version_uid'),\n easDataType: text('eas_data_type'),\n refValueType: text('ref_value_type'),\n refModelUid: text('ref_schema_uid'),\n refSeedType: text('ref_seed_type'),\n refResolvedValue: text('ref_resolved_value'),\n refResolvedDisplayValue: text('ref_resolved_display_value'),\n localStorageDir: text('local_storage_dir'),\n attestationRaw: text('attestation_raw'),\n attestationCreatedAt: int('attestation_created_at'),\n contentHash: text('content_hash'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n publisher: text('publisher'),\n})\n\nexport type MetadataType = InferSelectModel<typeof metadata>\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\nexport const appState = sqliteTable('appState', {\n key: text('key').unique(),\n value: text('value'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type appStateType = InferSelectModel<typeof appState>\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { relations } from 'drizzle-orm'\nimport { models } from './ModelSchema'\n\nexport const modelUids = sqliteTable('model_uids', {\n id: int('id').primaryKey({ autoIncrement: true }),\n uid: text('uid').notNull(),\n modelId: int('model_id')\n .notNull()\n .unique()\n .references(() => models.id),\n})\n\nexport const modelRelations = relations(modelUids, ({ one }) => ({\n model: one(models),\n}))\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { relations } from 'drizzle-orm'\nimport { properties } from './ModelSchema'\n\nexport const propertyUids = sqliteTable('property_uids', {\n id: int('id').primaryKey({ autoIncrement: true }),\n uid: text('uid').notNull(),\n propertyId: int('property_id')\n .notNull()\n .unique()\n .references(() => properties.id),\n})\n\nexport const propertyUidRelations = relations(propertyUids, ({ one }) => ({\n property: one(properties),\n}))\n","import { integer, sqliteTable, text, blob, } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\n\nexport const config = sqliteTable(\n 'config',\n {\n id: integer('id').primaryKey({ autoIncrement: true }),\n key: text('key').notNull(),\n text: text('text'),\n json: text('json'),\n blob: blob('blob'),\n }\n)\n\nexport type configType = InferSelectModel<typeof config>","import { InferSelectModel, } from 'drizzle-orm'\nimport { int, sqliteTable, text, integer, unique } from 'drizzle-orm/sqlite-core'\n\n\nexport const schemas = sqliteTable(\n 'schemas',\n {\n id: integer('id').primaryKey({ autoIncrement: true }),\n name: text('name').notNull(),\n version: integer('version').notNull(),\n schemaFileId: text('schema_file_id'), // ID from JSON file for change tracking - must be unique\n schemaData: text('schema_data'), // Full JSON schema content (SchemaFileFormat as JSON string)\n isDraft: integer('is_draft', { mode: 'boolean' }), // true if schema is in draft/editing state, false if published to file\n isEdited: integer('is_edited', { mode: 'boolean' }), // true if schema has been edited locally, false if matches schema file\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n },\n (table) => {\n return {\n uniqueSchemaFileId: unique('unique_schema_schema_file_id').on(table.schemaFileId),\n }\n }\n)\n\nexport type SchemaType = InferSelectModel<typeof schemas>","import { integer, sqliteTable } from 'drizzle-orm/sqlite-core';\nimport { InferSelectModel } from 'drizzle-orm';\nimport { schemas } from './SchemaSchema';\nimport { models } from './ModelSchema';\n\nexport const modelSchemas = sqliteTable('model_schemas', {\n id: integer('id').primaryKey({ autoIncrement: true }),\n modelId: integer('model_id').references(() => models.id),\n schemaId: integer('schema_id').references(() => schemas.id),\n})\n\nexport type ModelSchemaType = InferSelectModel<typeof modelSchemas>","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\n\nexport const publishProcesses = sqliteTable('publish_processes', {\n id: int('id').primaryKey({ autoIncrement: true }),\n seedLocalId: text('seed_local_id').notNull(),\n modelName: text('model_name').notNull(),\n schemaId: text('schema_id'),\n status: text('status').notNull(), // 'in_progress' | 'completed' | 'failed' | 'interrupted'\n startedAt: int('started_at').notNull(),\n completedAt: int('completed_at'),\n errorMessage: text('error_message'),\n errorStep: text('error_step'),\n errorDetails: text('error_details'),\n errorCode: text('error_code'), // e.g. ManagedAccountPublishError.code\n persistedSnapshot: text('persisted_snapshot').notNull(),\n seedId: text('seed_id'),\n existingSeedUid: text('existing_seed_uid'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type PublishProcessType = InferSelectModel<typeof publishProcesses>\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\n\nexport const uploadProcesses = sqliteTable('upload_processes', {\n id: int('id').primaryKey({ autoIncrement: true }),\n reimbursementConfirmed: int('reimbursement_confirmed').notNull(), // 0 or 1 for boolean\n reimbursementTransactionId: text('reimbursement_transaction_id'),\n transactionKeys: text('transaction_keys'),\n persistedSnapshot: text('persisted_snapshot').notNull(), // JSON string\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type UploadProcessType = InferSelectModel<typeof uploadProcesses>\n","import { int, sqliteTable, text, uniqueIndex } from 'drizzle-orm/sqlite-core'\nimport { InferSelectModel } from 'drizzle-orm'\n\n/** Background job: resolve L1 tx id and wait for L1 confirmation after bundler publish. */\nexport const arweaveL1FinalizeJobs = sqliteTable(\n 'arweave_l1_finalize_jobs',\n {\n id: int('id').primaryKey({ autoIncrement: true }),\n seedLocalId: text('seed_local_id').notNull(),\n dataItemId: text('data_item_id').notNull(),\n /** L1 bundle / anchor transaction id from gateway GraphQL `bundledIn.id`. */\n l1TransactionId: text('l1_transaction_id'),\n bundleId: text('bundle_id'),\n versionLocalId: text('version_local_id'),\n itemPropertyName: text('item_property_name'),\n /** `pending_l1` | `confirmed` | `failed` */\n phase: text('phase').notNull(),\n statusJson: text('status_json'),\n errorMessage: text('error_message'),\n createdAt: int('created_at').notNull(),\n updatedAt: int('updated_at').notNull(),\n },\n (table) => ({\n dataItemIdUnique: uniqueIndex('arweave_l1_finalize_jobs_data_item_id_unique').on(table.dataItemId),\n }),\n)\n\nexport type ArweaveL1FinalizeJobType = InferSelectModel<typeof arweaveL1FinalizeJobs>\n","import { InferSelectModel } from 'drizzle-orm'\nimport { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const easSyncProcesses = sqliteTable('eas_sync_processes', {\n id: int('id').primaryKey({ autoIncrement: true }),\n status: text('status').notNull(), // 'in_progress' | 'completed' | 'failed'\n startedAt: int('started_at').notNull(),\n completedAt: int('completed_at'),\n requestPayload: text('request_payload').notNull(),\n errorMessage: text('error_message'),\n errorDetails: text('error_details'),\n persistedSnapshot: text('persisted_snapshot').notNull(),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type EasSyncProcessType = InferSelectModel<typeof easSyncProcesses>\n","import { int, sqliteTable, text, uniqueIndex } from 'drizzle-orm/sqlite-core'\n\n/**\n * Links Image seeds materialized from Html `data:image/*` URIs to the parent Item seed for co-publish.\n * Rows are removed after a successful publish (see clearHtmlEmbeddedImageCoPublishRows).\n */\nexport const htmlEmbeddedImageCoPublish = sqliteTable(\n 'html_embedded_image_co_publish',\n {\n id: int('id').primaryKey({ autoIncrement: true }),\n parentSeedLocalId: text('parent_seed_local_id').notNull(),\n htmlSeedLocalId: text('html_seed_local_id').notNull(),\n imageSeedLocalId: text('image_seed_local_id').notNull(),\n /** Stable dedup key (e.g. sha256 of data URI or normalized URI string). */\n stableKey: text('stable_key').notNull(),\n createdAt: int('created_at').notNull(),\n },\n (t) => [\n uniqueIndex('html_embed_co_pub_parent_html_stable').on(\n t.parentSeedLocalId,\n t.htmlSeedLocalId,\n t.stableKey,\n ),\n ],\n)\n","import type { AttestationRequestData } from '@ethereum-attestation-service/eas-sdk'\n\n// Top-level re-export (not mid-file import + export): Rollup with\n// external `@seedprotocol/arweave` otherwise emits a side-effect-only import\n// and an unbound Object.freeze namespace when this module is dynamically imported.\nexport {\n DEFAULT_ARWEAVE_HOST,\n DEFAULT_SEED_FEED_HYPER_KEY,\n DEFAULT_SEED_GATEWAY_HYPER_KEY,\n DEFAULT_GATEWAY_SIDECAR_HOST,\n DEFAULT_GATEWAY_SIDECAR_PORT,\n DEFAULT_ARWEAVE_GRAPHQL_URL,\n DEFAULT_ARWEAVE_GATEWAYS,\n getDefaultArweaveReadGatewayHostsOrdered,\n getArweaveReadGatewayHostsForPrimary,\n mergePrimaryHostWithDefaults,\n resolveArweaveHostFromEnv,\n isKnownArweaveGatewayHostname,\n} from '@seedprotocol/arweave'\n\n// Define zero constants ourselves since they're not exported from eas-sdk in newer versions\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'\nexport const ZERO_BYTES = '0x'\nexport const ZERO_BYTES32 = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\n\n// Primary config file name for Seed Protocol SDK\nexport const SEED_CONFIG_FILE = 'seed.config.ts'\n// Fallback config file names (in order of preference)\nexport const SEED_CONFIG_FALLBACKS = ['seed.schema.ts', 'schema.ts']\n// Legacy constant for backward compatibility\nexport const SCHEMA_TS = SEED_CONFIG_FILE\n\nexport const INTERNAL_DATA_TYPES = {\n Text: {\n eas: 'string',\n },\n Number: {\n eas: 'uint8',\n },\n Image: {\n eas: 'bytes32',\n },\n Relation: {\n eas: 'bytes32',\n },\n List: {\n eas: 'bytes32[]',\n },\n File: {\n eas: 'bytes32',\n },\n Json: {\n eas: 'bytes32',\n },\n Blob: {\n eas: 'bytes32',\n },\n Boolean: {\n eas: 'bool',\n },\n Date: {\n eas: 'uint256',\n },\n Html: {\n eas: 'bytes32',\n },\n}\n\n/** Full property names ending in `Id` that must not be stripped to a “base” name for `allProperties` keys. */\nexport const PROPERTY_NAMES_EXEMPT_FROM_ID_SUFFIX_STRIP = new Set<string>(['storageTransactionId'])\n\nexport const INTERNAL_PROPERTY_NAMES = [\n 'localId',\n 'uid',\n 'seedLocalId',\n 'seedUid',\n 'schemaUid',\n 'attestationCreatedAt',\n 'attestationRaw',\n 'createdAt',\n 'updatedAt',\n 'lastVersionPublishedAt',\n 'latestVersionLocalId',\n 'latestVersionUid',\n 'lastLocalUpdateAt',\n 'modelName',\n 'refSeedType',\n 'refValueType',\n 'refResolvedValue',\n 'refResolvedDisplayValue',\n 'type',\n // Image\n 'src',\n 'alt',\n //\n 'versionLocalId',\n 'versionsCount',\n 'versionUid',\n '_markedForDeletion',\n // SDK-internal: wallet address of attester; never publish as property attestation\n 'publisher',\n // SDK-internal: Unix timestamp when attestations were revoked; never a schema field\n 'revokedAt',\n]\n\n/** Schema definition of the Version attestation (zero resolver, revocable). */\nexport const VERSION_SCHEMA_DEF = 'bytes32 version'\n\n/**\n * UID of {@link VERSION_SCHEMA_DEF}. Schema UIDs hash the definition, resolver and revocable flag,\n * so this is the same on every chain; the schema must still be registered on each one.\n */\nexport const VERSION_SCHEMA_UID =\n '0x13c0fd59d69dbce40501a41f8b37768d26dd2e2bb0cad64615334d84f7b9bdf6'\n\n/** @deprecated The UID is chain-independent. Use {@link VERSION_SCHEMA_UID}. */\nexport const VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA = VERSION_SCHEMA_UID\n\nexport const defaultAttestationData: AttestationRequestData = {\n recipient: ZERO_ADDRESS,\n revocable: true,\n value: BigInt(0),\n refUID: ZERO_BYTES32,\n expirationTime: BigInt(0),\n data: ZERO_BYTES,\n}\n\nexport enum ImageSize {\n EXTRA_SMALL = 480,\n SMALL = 760,\n MEDIUM = 1024,\n LARGE = 1440,\n EXTRA_LARGE = 1920,\n}\n\nexport const CLIENT_NOT_INITIALIZED = 'ClientManager is not initialized. Please call init() first.'\n\nexport const INIT_SCRIPT_SUCCESS_MESSAGE = '[Seed Protocol] Finished running init script'\n\nexport enum SeedModels {\n Seed = 'Seed',\n Metadata = 'Metadata',\n Version = 'Version',\n}\n\n// Internal SDK schema that should not be created in app's files directory\nexport const SEED_PROTOCOL_SCHEMA_NAME = 'Seed Protocol'\nexport const INTERNAL_SCHEMA_IDS = ['SEEDPROTOCOL'] as const\n\n/** Fired after `syncDbWithEas` persists EAS seeds/versions/metadata to SQLite (see `Item.rehydrateCachedItemsFromDbAfterEasSync`). */\nexport const EAS_SEED_DATA_SYNCED_TO_DB_EVENT = 'easSeedDataSyncedToDb' as const\n\n/**\n * Check if a schema is an internal SDK schema that should not be created in app files\n */\nexport function isInternalSchema(schemaName: string, schemaId?: string): boolean {\n return schemaName === SEED_PROTOCOL_SCHEMA_NAME || \n (schemaId !== undefined && INTERNAL_SCHEMA_IDS.includes(schemaId as any))\n}\n","export type PlatformTestHandle = {\n restore(): void\n}\n\n/**\n * Save/restore helper for swapping a single facade implementation in tests.\n */\nexport function createFacadeTestHandle<T>(\n getImpl: () => T | null,\n setImpl: (impl: T | null) => void,\n next: T,\n): PlatformTestHandle {\n const previous = getImpl()\n setImpl(next)\n return {\n restore() {\n setImpl(previous)\n },\n }\n}\n","import type { IPathResolver } from './IPathResolver'\nimport {\n createFacadeTestHandle,\n type PlatformTestHandle,\n} from '@/testing/platformTestHandle'\n\nexport abstract class BasePathResolver {\n private static _impl: IPathResolver | null = null\n\n static configure(impl: IPathResolver): void {\n if (!impl) {\n throw new Error(\n 'Cannot configure PathResolver with undefined or null. Ensure the platform-specific PathResolver is properly created.',\n )\n }\n BasePathResolver._impl = impl\n }\n\n static createForTesting(impl: IPathResolver): PlatformTestHandle {\n return createFacadeTestHandle(\n () => BasePathResolver._impl,\n (next) => {\n BasePathResolver._impl = next\n },\n impl,\n )\n }\n\n private static requireImpl(): IPathResolver {\n if (!BasePathResolver._impl) {\n throw new Error(\n 'PathResolver not configured. Please ensure the platform-specific PathResolver is registered. For Node.js, import from @seedprotocol/sdk/node. For browser, the SDK should auto-initialize.',\n )\n }\n return BasePathResolver._impl\n }\n\n /**\n * @deprecated Prefer static facade methods (e.g. BasePathResolver.getDotSeedDir()).\n */\n static getInstance(): IPathResolver {\n return BasePathResolver.requireImpl()\n }\n\n static getRootWithNodeModules(): string {\n return BasePathResolver.requireImpl().getRootWithNodeModules()\n }\n\n static getSdkRootDir(): string {\n return BasePathResolver.requireImpl().getSdkRootDir()\n }\n\n static getNodeModulesDir(): string {\n return BasePathResolver.requireImpl().getNodeModulesDir()\n }\n\n static getDotSeedDir(schemaFileDir?: string): string {\n return BasePathResolver.requireImpl().getDotSeedDir(schemaFileDir)\n }\n\n static findConfigFile(searchDir?: string): string | null {\n return BasePathResolver.requireImpl().findConfigFile(searchDir)\n }\n\n static getAppPaths(schemaFileDir?: string | undefined) {\n return BasePathResolver.requireImpl().getAppPaths(schemaFileDir)\n }\n}\n"],"names":[],"mappings":"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"}