@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DPp9rdRL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"property-DlKiAWt4.js","sources":["../../../src/helpers/property.ts"],"sourcesContent":["import { Static } from '@sinclair/typebox'\nimport { TProperty } from '@/Schema'\n// Dynamic import to break circular dependency: Model -> ... -> helpers/property -> Model\n// import { Model } from '@/Model/Model'\nimport pluralize from 'pluralize'\nimport { resolveStorageNameToSchemaName } from '@/helpers/metadataPropertyNames'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models as modelsTable, properties, PropertyType } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { modelPropertiesToObject } from '@/helpers/model'\n\n// Re-export everything from property/index.ts to make it available when importing from helpers/property\nexport * from './property/index'\n\n/**\n * Gets the propertyRecordSchema object for a given model and property name.\n * \n * The propertyRecordSchema is the property definition object that contains\n * information about the property's data type, storage configuration, and\n * relationship details (for Relation and List types).\n * \n * This function first checks the database for property definitions (which may\n * have been edited), then falls back to schema files. This ensures that\n * edited properties persist across page reloads.\n * \n * This function handles property names that end with 'Id' or 'Ids' by automatically\n * looking up the base property name in the schema (e.g., 'authorId' -> 'author',\n * 'tagIds' -> 'tags').\n * \n * @param modelName - The name of the model (e.g., 'Article', 'Author')\n * @param propertyName - The name of the property (e.g., 'title', 'author', 'authorId', 'tags', 'tagIds')\n * @returns The propertyRecordSchema object (TProperty with optional _propertyFileId) or undefined if not found\n * \n * @example\n * ```typescript\n * const schema = await getPropertySchema('Article', 'title')\n * // Returns: { dataType: 'Text', ... }\n * \n * const relationSchema = await getPropertySchema('Article', 'author')\n * // Returns: { dataType: 'Relation', ref: 'Author', ... }\n * \n * // Also works with Id/Ids suffixes\n * const relationSchemaById = await getPropertySchema('Article', 'authorId')\n * // Returns: { dataType: 'Relation', ref: 'Author', ... }\n * ```\n */\nexport const getPropertySchema = async (\n modelName: string,\n propertyName: string,\n): Promise<(Static<typeof TProperty> & { _propertyFileId?: string }) | undefined> => {\n // Dynamic import to break circular dependency\n const modelMod = await import('../Model/Model')\n const { Model } = modelMod\n const schemaMod = await import('../Schema/Schema')\n const { Schema } = schemaMod\n const model = await Model.getByNameAsync(modelName)\n\n if (!model) {\n return undefined\n }\n \n // Get the original schema from Schema instance context (has ref fields from schema file)\n // This is more reliable than modelPropertiesToObject which depends on ModelProperty instances\n let schema: { [propertyName: string]: any } = {}\n try {\n const schemaName = model.schemaName\n if (schemaName) {\n const schemaInstance = Schema.create(schemaName, {\n waitForReady: false,\n }) as import('@/Schema/Schema').Schema\n const schemaContext = schemaInstance.getService().getSnapshot().context\n if (schemaContext.models && schemaContext.models[modelName]) {\n // Get properties from Schema context (original schema file data)\n const modelDef = schemaContext.models[modelName]\n schema = modelDef.properties || {}\n }\n }\n } catch (error) {\n // Fall through to modelPropertiesToObject\n }\n \n // Fallback to modelPropertiesToObject if Schema context doesn't have the data\n if (Object.keys(schema).length === 0) {\n const properties = model.properties || []\n if (properties.length === 0) {\n return undefined\n }\n schema = modelPropertiesToObject(properties)\n }\n \n // Helper to resolve property name (handles Id/Ids suffixes)\n const resolvePropertyName = (propName: string): string | undefined => {\n // First, try direct lookup\n if (schema[propName]) {\n return propName\n }\n\n // List-of-relation storage name (e.g. authorIdentityIds) -> schema key (authors)\n const listSchemaKey = resolveStorageNameToSchemaName(schema, propName)\n if (listSchemaKey && schema[listSchemaKey]) {\n return listSchemaKey\n }\n\n // Handle properties ending with 'Id' or 'Ids'\n let propertyNameWithoutId: string | undefined\n \n if (propName.endsWith('Id')) {\n propertyNameWithoutId = propName.slice(0, -2)\n } else if (propName.endsWith('Ids')) {\n propertyNameWithoutId = propName.slice(0, -3)\n propertyNameWithoutId = pluralize(propertyNameWithoutId)\n }\n \n if (propertyNameWithoutId && schema[propertyNameWithoutId]) {\n return propertyNameWithoutId\n }\n \n return undefined\n }\n \n const resolvedPropertyName = resolvePropertyName(propertyName)\n if (!resolvedPropertyName) {\n return undefined\n }\n \n // Try to get property from database first (may have edited values)\n try {\n const db = BaseDb.getAppDb()\n if (db) {\n // Find the model in the database\n const modelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n \n if (modelRecords.length > 0) {\n const modelRecord = modelRecords[0]\n \n // Find the property in the database by name\n let propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.name, resolvedPropertyName),\n eq(properties.modelId, modelRecord.id!),\n ),\n )\n .limit(1)\n \n // If not found by name, check for renamed properties (orphaned DB properties)\n if (propertyRecords.length === 0) {\n // Get all properties for this model\n const allDbProperties = await db\n .select()\n .from(properties)\n .where(eq(properties.modelId, modelRecord.id!))\n \n // Get all schema property names to identify orphaned properties\n const schemaPropertyNames = new Set(Object.keys(schema))\n \n // Get the schema property definition to match characteristics\n const schemaPropertyDef = schema[resolvedPropertyName]\n \n if (schemaPropertyDef) {\n // Find orphaned properties (don't match any schema property name) that match characteristics\n const orphanedProperties = allDbProperties.filter((p: PropertyType) => \n !schemaPropertyNames.has(p.name) && // Doesn't match any schema property name\n p.dataType === schemaPropertyDef.dataType // Same dataType\n )\n \n // If there's exactly one orphaned property with matching characteristics, it's likely the renamed property\n // We can also match by refModelId if it's a relation\n if (orphanedProperties.length > 0) {\n let matchedProperty = orphanedProperties[0]\n \n // If it's a relation, try to match by refModelId\n if (schemaPropertyDef.ref) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaPropertyDef.ref))\n .limit(1)\n \n if (refModelRecords.length > 0) {\n const expectedRefModelId = refModelRecords[0].id\n const matchingByRef = orphanedProperties.find((p: PropertyType) => p.refModelId === expectedRefModelId)\n if (matchingByRef) {\n matchedProperty = matchingByRef\n }\n }\n } else {\n // For non-relation properties, prefer ones without refModelId\n const withoutRef = orphanedProperties.find((p: PropertyType) => p.refModelId === null)\n if (withoutRef) {\n matchedProperty = withoutRef\n }\n }\n \n propertyRecords = [matchedProperty]\n }\n }\n }\n \n if (propertyRecords.length > 0) {\n const propertyRecord = propertyRecords[0]\n \n // Get the base schema from file to merge with database values\n // Use the schema object created earlier, not model.schema (which doesn't exist)\n const schemaFromFile = schema[resolvedPropertyName]\n \n // Build property schema from database, merging with file schema for fields not in DB\n // Use the schema property name (resolvedPropertyName) even if DB has different name (renamed)\n const propertySchema: Static<typeof TProperty> & { _propertyFileId?: string; _dbId?: number } = {\n ...schemaFromFile, // Start with file schema (has all fields like storageType, etc.)\n id: propertyRecord.schemaFileId || propertyRecord.id?.toString(), // id should be schemaFileId (string), not database ID\n _dbId: propertyRecord.id, // Store database integer ID separately\n name: resolvedPropertyName, // Use schema name, not DB name (for renamed properties)\n dataType: propertyRecord.dataType as any,\n modelId: propertyRecord.modelId,\n modelName,\n refModelId: propertyRecord.refModelId || undefined,\n refValueType: (propertyRecord.refValueType as any) || undefined,\n required: (propertyRecord as { required?: boolean }).required ?? undefined,\n // Include schemaFileId from database as _propertyFileId for ModelProperty.create()\n _propertyFileId: propertyRecord.schemaFileId || undefined,\n }\n \n // If refModelId is set, try to get the refModelName\n if (propertyRecord.refModelId) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.id, propertyRecord.refModelId))\n .limit(1)\n \n if (refModelRecords.length > 0) {\n propertySchema.refModelName = refModelRecords[0].name\n propertySchema.ref = refModelRecords[0].name\n }\n } else if (schemaFromFile?.ref) {\n // If refModelId is not set but schema file has ref, resolve it from the database\n // This handles cases where the property was just created and refModelId hasn't been set yet\n propertySchema.ref = schemaFromFile.ref\n propertySchema.refModelName = schemaFromFile.ref\n \n // Try to resolve refModelId from the database using the model name\n try {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaFromFile.ref))\n .limit(1)\n \n if (refModelRecords.length > 0 && refModelRecords[0].id) {\n propertySchema.refModelId = refModelRecords[0].id\n }\n } catch (error) {\n // Ignore errors - model might not exist yet\n }\n }\n \n return propertySchema\n }\n }\n }\n } catch (error) {\n // Database not available or error - fall through to schema file lookup\n }\n \n // Fall back to schema file lookup\n const schemaFromFile = schema[resolvedPropertyName]\n if (schemaFromFile) {\n const propertySchema: Static<typeof TProperty> & { _propertyFileId?: string } = { ...schemaFromFile, name: resolvedPropertyName }\n \n // If schema file has id as a string (propertyFileId), set it as _propertyFileId\n // This handles cases where the property hasn't been saved to the database yet\n if (typeof schemaFromFile.id === 'string') {\n propertySchema._propertyFileId = schemaFromFile.id\n }\n \n // If the schema file has ref but no refModelId, try to resolve it from the database\n if (schemaFromFile.ref && !propertySchema.refModelId) {\n try {\n const db = BaseDb.getAppDb()\n if (db) {\n const refModelRecords = await db\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, schemaFromFile.ref))\n .limit(1)\n \n if (refModelRecords.length > 0 && refModelRecords[0].id) {\n propertySchema.refModelId = refModelRecords[0].id\n propertySchema.refModelName = schemaFromFile.ref\n }\n }\n } catch (error) {\n // Ignore errors - model might not exist yet or database not available\n }\n }\n \n return propertySchema\n }\n return undefined\n}\n"],"names":["modelPropertiesToObject","resolveStorageNameToSchemaName","BaseDb","modelsTable","eq","properties","and"],"mappings":"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"}
@@ -1,606 +0,0 @@
1
- 'use strict';
2
-
3
- var lodashEs = require('lodash-es');
4
- var query = require('@seedprotocol/query');
5
- var main_cjs = require('./index-CSNtEnbF.js');
6
- var drizzleOrm = require('drizzle-orm');
7
- var eas$1 = require('@seedprotocol/eas');
8
- var pluralize = require('pluralize');
9
- var eas = require('./eas-CMNppmGE.js');
10
- require('immer');
11
- require('reflect-metadata');
12
- require('xstate');
13
- require('drizzle-orm/sqlite-core');
14
- require('debug');
15
- require('@seedprotocol/arweave');
16
- require('@sinclair/typebox');
17
- require('drizzle-orm/casing');
18
- require('nanoid');
19
- require('nanoid-dictionary');
20
- require('rxjs');
21
- require('@noble/hashes/sha3');
22
- require('@noble/hashes/utils');
23
- require('fs/promises');
24
- require('fs');
25
- require('path');
26
- require('url');
27
- require('node:url');
28
- require('@libsql/client');
29
- require('drizzle-orm/libsql');
30
- require('drizzle-orm/libsql/migrator');
31
- require('js-yaml');
32
- require('child_process');
33
- require('@seedprotocol/arweave/node');
34
- require('@seedprotocol/eas/node');
35
-
36
- // Dynamic import to break circular dependency: Model -> BaseItem -> ... -> getModelSchemas -> Model
37
- // import { Model } from '@/Model/Model'
38
- const schemaStringToModelRecord = new Map();
39
- const getModelSchemas = async () => {
40
- // Dynamic import to break circular dependency
41
- const modelMod = await Promise.resolve().then(function () { return require('./index-CSNtEnbF.js'); }).then(function (n) { return n.Model$1; });
42
- const { Model } = modelMod;
43
- const allModels = await Model.all();
44
- const modelRecords = [];
45
- const appDb = main_cjs.BaseDb.getAppDb();
46
- for (const model of allModels) {
47
- const modelName = model.modelName;
48
- if (!modelName)
49
- continue;
50
- const foundModelQuery = await appDb
51
- .select({
52
- id: main_cjs.models.id,
53
- name: main_cjs.models.name,
54
- uid: main_cjs.modelUids.uid,
55
- })
56
- .from(main_cjs.models)
57
- .leftJoin(main_cjs.modelUids, drizzleOrm.eq(main_cjs.models.id, main_cjs.modelUids.modelId))
58
- .where(drizzleOrm.eq(main_cjs.models.name, modelName))
59
- .limit(1);
60
- if (!foundModelQuery[0]) {
61
- console.error(`[item/events] [syncDbWithEas] model ${modelName} not found in SDK DB`);
62
- continue;
63
- }
64
- const foundModel = {
65
- id: foundModelQuery[0].id,
66
- name: foundModelQuery[0].name,
67
- uid: foundModelQuery[0].uid,
68
- tableName: pluralize(foundModelQuery[0].name).toLowerCase(),
69
- };
70
- modelRecords.push(foundModel);
71
- if (modelName === 'Seed') {
72
- continue;
73
- }
74
- const schemaString = `bytes32 ${main_cjs.toSnakeCase(modelName)}`;
75
- schemaStringToModelRecord.set(schemaString, foundModel);
76
- }
77
- return {
78
- schemaStringToModelRecord,
79
- modelRecords,
80
- };
81
- };
82
-
83
- const createSeeds = async (newSeeds) => {
84
- const appDb = main_cjs.BaseDb.getAppDb();
85
- const values = newSeeds.map((row) => {
86
- const publisher = main_cjs.normalizePublisher(row.publisher);
87
- return {
88
- ...row,
89
- ...(publisher ? { publisher } : {}),
90
- };
91
- });
92
- const results = await appDb
93
- .insert(main_cjs.seeds)
94
- .values(values)
95
- .returning({ uid: main_cjs.seeds.uid });
96
- const newUids = results.reduce((acc, result) => {
97
- if (result.uid) {
98
- acc.push(result.uid);
99
- }
100
- return acc;
101
- }, []);
102
- return newUids;
103
- };
104
-
105
- /**
106
- * Sets revokedAt timestamp on a seed record after attestations have been revoked on EAS.
107
- */
108
- const updateSeedRevokedAt = async ({ seedLocalId, revokedAt, }) => {
109
- if (!seedLocalId) {
110
- return;
111
- }
112
- const appDb = main_cjs.BaseDb.getAppDb();
113
- await appDb
114
- .update(main_cjs.seeds)
115
- .set({
116
- revokedAt,
117
- updatedAt: Date.now(),
118
- })
119
- .where(drizzleOrm.eq(main_cjs.seeds.localId, seedLocalId));
120
- };
121
-
122
- const relationValuesToExclude = [
123
- '0x0000000000000000000000000000000000000000000000000000000000000020',
124
- ];
125
- const seedUidToLocalId = new Map();
126
- const seedUidToModelType = new Map();
127
- const relatedSeedUids = new Set();
128
- const versionUidToLocalId = new Map();
129
- const versionUidToSeedUid = new Map();
130
- const propertyUidToLocalId = new Map();
131
- const saveEasSeedsToDb = async ({ itemSeeds }) => {
132
- const appDb = main_cjs.BaseDb.getAppDb();
133
- const seedUids = itemSeeds.map((seed) => seed.id);
134
- const existingSeedRecordsRows = await appDb
135
- .select()
136
- .from(main_cjs.seeds)
137
- .where(drizzleOrm.inArray(main_cjs.seeds.uid, seedUids));
138
- const existingSeedUids = new Set();
139
- if (existingSeedRecordsRows && existingSeedRecordsRows.length > 0) {
140
- for (const row of existingSeedRecordsRows) {
141
- if (row.uid) {
142
- existingSeedUids.add(row.uid);
143
- if (row.localId) {
144
- seedUidToLocalId.set(row.uid, row.localId);
145
- }
146
- if (row.type) {
147
- seedUidToModelType.set(row.uid, row.type);
148
- }
149
- }
150
- }
151
- }
152
- const newSeeds = itemSeeds.filter((seed) => !existingSeedUids.has(seed.id));
153
- // Update existing seeds when attestations are revoked on EAS
154
- const seedByUid = new Map(itemSeeds.map((s) => [s.id, s]));
155
- for (const row of existingSeedRecordsRows) {
156
- if (!row.uid || !row.localId)
157
- continue;
158
- const attestation = seedByUid.get(row.uid);
159
- if (!attestation?.revoked)
160
- continue;
161
- if (row.revokedAt != null)
162
- continue;
163
- const revokedAt = attestation.revocationTime > 0
164
- ? attestation.revocationTime
165
- : Math.floor(Date.now() / 1000);
166
- await updateSeedRevokedAt({ seedLocalId: row.localId, revokedAt });
167
- }
168
- if (newSeeds.length === 0) {
169
- return { seedUidToLocalId, seedUids };
170
- }
171
- const newSeedsData = [];
172
- for (let i = 0; i < newSeeds.length; i++) {
173
- const seed = newSeeds[i];
174
- seedUidToModelType.set(seed.id, seed.schema.schemaNames[0].name);
175
- const seedLocalId = main_cjs.generateId();
176
- seedUidToLocalId.set(seed.id, seedLocalId);
177
- const attestationRaw = main_cjs.escapeSqliteString(JSON.stringify(seed));
178
- const revokedAt = seed.revoked && seed.revocationTime != null && seed.revocationTime > 0
179
- ? seed.revocationTime
180
- : seed.revoked
181
- ? Math.floor(Date.now() / 1000)
182
- : undefined;
183
- newSeedsData.push({
184
- localId: seedLocalId,
185
- uid: seed.id,
186
- schemaUid: seed.schemaId,
187
- type: seed.schema.schemaNames[0].name,
188
- publisher: seed.attester ? main_cjs.normalizeHexAddress(seed.attester) : seed.attester,
189
- createdAt: Date.now(),
190
- attestationCreatedAt: seed.timeCreated * 1000,
191
- attestationRaw,
192
- ...(revokedAt !== undefined && { revokedAt }),
193
- });
194
- seedUidToLocalId.set(seed.id, seedLocalId);
195
- }
196
- const newSeedUids = await createSeeds(newSeedsData);
197
- return { seedUids: newSeedUids };
198
- };
199
- const saveEasVersionsToDb = async ({ itemVersions }) => {
200
- const versionUids = itemVersions.map((version) => version.id);
201
- const appDb = main_cjs.BaseDb.getAppDb();
202
- const existingVersionRecordsRows = await appDb
203
- .select()
204
- .from(main_cjs.versions)
205
- .where(drizzleOrm.inArray(main_cjs.versions.uid, versionUids));
206
- const existingVersionUids = new Set();
207
- if (existingVersionRecordsRows && existingVersionRecordsRows.length > 0) {
208
- for (const row of existingVersionRecordsRows) {
209
- if (row.uid) {
210
- existingVersionUids.add(row.uid);
211
- if (row.localId) {
212
- versionUidToLocalId.set(row.uid, row.localId);
213
- }
214
- if (row.seedUid) {
215
- versionUidToSeedUid.set(row.uid, row.seedUid);
216
- }
217
- }
218
- }
219
- }
220
- const newVersions = itemVersions.filter((version) => !existingVersionUids.has(version.id));
221
- if (newVersions.length === 0) {
222
- return { versionUidToLocalId, versionUids };
223
- }
224
- let insertVersionsQuery = `INSERT INTO versions (local_id, uid, seed_uid, seed_local_id, seed_type, created_at,
225
- attestation_created_at,
226
- attestation_raw, publisher)
227
- VALUES `;
228
- for (let i = 0; i < newVersions.length; i++) {
229
- const version = newVersions[i];
230
- versionUidToSeedUid.set(version.id, version.refUID);
231
- const versionLocalId = main_cjs.generateId();
232
- versionUidToLocalId.set(version.id, versionLocalId);
233
- const seedUid = versionUidToSeedUid.get(version.id);
234
- const seedLocalId = seedUidToLocalId.get(seedUid);
235
- const seedType = seedUidToModelType.get(seedUid);
236
- const attestationRaw = main_cjs.escapeSqliteString(JSON.stringify(version));
237
- const publisher = main_cjs.escapeSqliteString(version.attester ? main_cjs.normalizeHexAddress(version.attester) : '');
238
- const valuesString = `('${versionLocalId}', '${version.id}', '${seedUid}', '${seedLocalId}', '${seedType}', ${Date.now()}, ${version.timeCreated * 1000}, '${attestationRaw}', '${publisher}')`;
239
- if (i < newVersions.length - 1) {
240
- insertVersionsQuery += valuesString + ', ';
241
- }
242
- if (i === newVersions.length - 1) {
243
- insertVersionsQuery += valuesString + ';';
244
- }
245
- versionUidToLocalId.set(version.id, versionLocalId);
246
- }
247
- await appDb.run(drizzleOrm.sql.raw(insertVersionsQuery));
248
- return { versionUids };
249
- };
250
- const createMetadataRecordsForStorageTransactionId = async (storageTransactionIdProperty, modelSchema) => {
251
- // Early return if modelSchema is not provided
252
- if (!modelSchema) {
253
- console.warn('[item/events] [syncDbWithEas] modelSchema is undefined for storageTransactionIdProperty: ', storageTransactionIdProperty.id);
254
- return;
255
- }
256
- // Validate and parse decodedDataJson
257
- const parsed = query.parseEasPropertyMetadata(storageTransactionIdProperty.decodedDataJson);
258
- if (!parsed.ok) {
259
- if (parsed.reason === 'empty') {
260
- console.warn('[item/events] [syncDbWithEas] empty decodedDataJson for storageTransactionIdProperty: ', storageTransactionIdProperty.id);
261
- }
262
- else if (parsed.reason === 'parse') {
263
- console.warn('[item/events] [syncDbWithEas] failed to parse decodedDataJson for storageTransactionIdProperty: ', storageTransactionIdProperty.id, parsed.error);
264
- }
265
- else {
266
- console.warn('[item/events] [syncDbWithEas] invalid decodedDataJson structure for storageTransactionIdProperty: ', storageTransactionIdProperty.id);
267
- }
268
- return;
269
- }
270
- const attestationData = parsed.metadata;
271
- lodashEs.camelCase(attestationData.name);
272
- const propertyValue = typeof attestationData.value === 'string'
273
- ? attestationData.value
274
- : JSON.stringify(attestationData.value);
275
- const itemStorageProperties = new Map();
276
- for (const [_propertyName, propertyDef] of Object.entries(modelSchema)) {
277
- if (propertyDef?.storageType && propertyDef.storageType === 'ItemStorage') {
278
- itemStorageProperties.set(_propertyName, propertyDef);
279
- }
280
- }
281
- if (itemStorageProperties.size === 0) {
282
- return;
283
- }
284
- const appDb = main_cjs.BaseDb.getAppDb();
285
- for (const [_propertyName, propertyDef] of itemStorageProperties.entries()) {
286
- const existingMetadataRecordRows = await appDb
287
- .select()
288
- .from(main_cjs.metadata)
289
- .where(drizzleOrm.and(drizzleOrm.eq(main_cjs.metadata.propertyName, _propertyName), drizzleOrm.eq(main_cjs.metadata.propertyValue, propertyValue), drizzleOrm.eq(main_cjs.metadata.versionUid, storageTransactionIdProperty.refUID)));
290
- if (existingMetadataRecordRows && existingMetadataRecordRows.length > 0) {
291
- continue;
292
- }
293
- const seedUid = versionUidToSeedUid.get(storageTransactionIdProperty.refUID);
294
- const seedLocalId = seedUidToLocalId.get(seedUid);
295
- const versionUid = storageTransactionIdProperty.refUID;
296
- const versionLocalId = versionUidToLocalId.get(versionUid);
297
- const modelType = seedUidToModelType.get(seedUid);
298
- const propertyId = modelType != null
299
- ? await main_cjs.getPropertyIdForModelAndName(modelType, _propertyName)
300
- : null;
301
- const propertyLocalId = main_cjs.generateId();
302
- await appDb.insert(main_cjs.metadata).values({
303
- localId: propertyLocalId,
304
- propertyId: propertyId ?? undefined,
305
- propertyName: _propertyName,
306
- propertyValue,
307
- localStorageDir: propertyDef.localStorageDir,
308
- seedLocalId,
309
- seedUid,
310
- versionLocalId,
311
- versionUid,
312
- refValueType: 'file',
313
- refResolvedValue: `${propertyValue}${propertyDef.filenameSuffix}`,
314
- modelType: seedUidToModelType.get(seedUid),
315
- createdAt: Date.now(),
316
- updatedAt: Date.now(),
317
- });
318
- }
319
- };
320
- /** Serialize property saves: concurrent `runSyncFromEas` used to hit `isSavingToDb` and return `{}` with no insert. */
321
- let saveEasPropertiesDbChain = Promise.resolve();
322
- const saveEasPropertiesToDbBody = async ({ itemProperties, itemSeeds, }) => {
323
- const propertyUids = itemProperties.map((property) => property.id);
324
- // Dynamic import to break circular dependency
325
- const modelMod = await Promise.resolve().then(function () { return require('./index-CSNtEnbF.js'); }).then(function (n) { return n.Model$1; });
326
- const { Model } = modelMod;
327
- const allModels = await Model.all();
328
- const models = Object.fromEntries(allModels.map(m => [m.modelName, m]));
329
- const appDb = main_cjs.BaseDb.getAppDb();
330
- const existingMetadataRecordsRows = await appDb
331
- .select()
332
- .from(main_cjs.metadata)
333
- .where(drizzleOrm.inArray(main_cjs.metadata.uid, propertyUids));
334
- const existingPropertyRecordsUids = new Set();
335
- if (existingMetadataRecordsRows && existingMetadataRecordsRows.length > 0) {
336
- for (const row of existingMetadataRecordsRows) {
337
- if (row.uid) {
338
- existingPropertyRecordsUids.add(row.uid);
339
- if (row.localId) {
340
- propertyUidToLocalId.set(row.uid, row.localId);
341
- }
342
- }
343
- }
344
- }
345
- const newProperties = itemProperties.filter((property) => !existingPropertyRecordsUids.has(property.id));
346
- if (newProperties.length === 0) {
347
- return { propertyUidToLocalId, propertyUids };
348
- }
349
- let insertPropertiesQuery = `INSERT INTO metadata (local_id, uid, schema_uid, property_id, property_name, property_value,
350
- eas_data_type, version_uid, version_local_id, seed_uid,
351
- seed_local_id, model_type, ref_value_type, ref_seed_type,
352
- ref_schema_uid,
353
- created_at, attestation_created_at, attestation_raw,
354
- local_storage_dir, ref_resolved_value, publisher)
355
- VALUES `;
356
- for (let i = 0; i < newProperties.length; i++) {
357
- const property = newProperties[i];
358
- const propertyLocalId = main_cjs.generateId();
359
- // Validate and parse decodedDataJson
360
- const parsed = query.parseEasPropertyMetadata(property.decodedDataJson);
361
- if (!parsed.ok) {
362
- if (parsed.reason === 'empty') {
363
- console.warn('[item/events] [syncDbWithEas] empty decodedDataJson for property: ', property.id);
364
- }
365
- else if (parsed.reason === 'parse') {
366
- console.warn('[item/events] [syncDbWithEas] failed to parse decodedDataJson for property: ', property.id, parsed.error);
367
- }
368
- else {
369
- console.warn('[item/events] [syncDbWithEas] invalid decodedDataJson structure for property: ', property.id);
370
- }
371
- continue;
372
- }
373
- const propertyMetadata = parsed.metadata;
374
- let propertyNameSnake = propertyMetadata.name;
375
- if (!propertyNameSnake) {
376
- console.warn('[item/events] [syncDbWithEas] no propertyName found for property: ', property);
377
- continue;
378
- }
379
- let isRelation = false;
380
- let refValueType;
381
- let refSeedType;
382
- let refSchemaUid;
383
- let isList = false;
384
- const schemaUid = property.schemaId;
385
- eas$1.setSchemaUidForSchemaDefinition({
386
- text: propertyNameSnake,
387
- schemaUid,
388
- });
389
- if ((propertyNameSnake.endsWith('_id') ||
390
- propertyNameSnake.endsWith('_ids')) &&
391
- propertyNameSnake !== 'storage_transaction_id' &&
392
- propertyNameSnake !== 'storage_provider_transaction_id') {
393
- isRelation = true;
394
- if (Array.isArray(propertyMetadata.value)) {
395
- isList = true;
396
- refValueType = 'list';
397
- const result = query.parseEasRelationPropertyName(propertyNameSnake);
398
- if (result) {
399
- propertyNameSnake = result.propertyName;
400
- refSeedType = result.modelName;
401
- }
402
- propertyMetadata.value.forEach((value) => {
403
- relatedSeedUids.add(value);
404
- });
405
- }
406
- if (!isList) {
407
- if (relationValuesToExclude.includes(propertyMetadata.value)) {
408
- continue;
409
- }
410
- relatedSeedUids.add(propertyMetadata.value);
411
- }
412
- }
413
- let propertyValue = propertyMetadata.value;
414
- if (typeof propertyValue !== 'string') {
415
- propertyValue = JSON.stringify(propertyValue);
416
- }
417
- if (isRelation && !isList) {
418
- const relatedSeed = itemSeeds.find((seed) => seed.id === propertyMetadata.value);
419
- if (relatedSeed && relatedSeed.schema && relatedSeed.schema.schemaNames) {
420
- refSeedType = relatedSeed.schema.schemaNames[0].name;
421
- refSchemaUid = relatedSeed.schemaId;
422
- }
423
- }
424
- if (isRelation && isList) {
425
- const relatedSeeds = itemSeeds.filter((seed) => propertyMetadata.value.includes(seed.id));
426
- if (relatedSeeds && relatedSeeds.length > 0) {
427
- refSeedType = relatedSeeds[0].schema.schemaNames[0].name;
428
- refSchemaUid = relatedSeeds[0].schemaId;
429
- }
430
- }
431
- const propertyName = lodashEs.camelCase(propertyNameSnake);
432
- propertyValue = main_cjs.escapeSqliteString(propertyValue);
433
- const easDataType = propertyMetadata.type;
434
- const versionUid = property.refUID;
435
- const versionLocalId = versionUidToLocalId.get(versionUid);
436
- const attestationCreatedAt = property.timeCreated * 1000;
437
- const attestationRaw = main_cjs.escapeSqliteString(JSON.stringify(property));
438
- const seedUid = versionUidToSeedUid.get(versionUid);
439
- const seedLocalId = seedUidToLocalId.get(seedUid);
440
- const modelType = seedUidToModelType.get(seedUid);
441
- const modelName = lodashEs.startCase(modelType);
442
- const model = models[modelName];
443
- const modelSchema = model?.properties ? main_cjs.modelPropertiesToObject(model.properties) : undefined;
444
- if (propertyNameSnake === 'storage_transaction_id') {
445
- await createMetadataRecordsForStorageTransactionId(property, modelSchema);
446
- }
447
- const propertyId = modelType != null
448
- ? await main_cjs.getPropertyIdForModelAndName(modelType, propertyName)
449
- : null;
450
- const propertyIdSql = propertyId != null ? String(propertyId) : 'NULL';
451
- const publisher = main_cjs.escapeSqliteString(property.attester ? main_cjs.normalizeHexAddress(property.attester) : '');
452
- const valuesString = `('${propertyLocalId}', '${property.id}',
453
- '${property.schemaId}', ${propertyIdSql}, '${propertyName}',
454
- '${propertyValue}', '${easDataType}', '${versionUid}',
455
- '${versionLocalId}', '${seedUid}', '${seedLocalId}',
456
- '${modelType}', ${refValueType ? `'${refValueType}'` : 'NULL'},
457
- ${refSeedType ? `'${refSeedType}'` : 'NULL'},
458
- ${refSchemaUid ? `'${refSchemaUid}'` : 'NULL'},
459
- ${Date.now()}, ${attestationCreatedAt}, '${attestationRaw}',
460
- ${'NULL'},
461
- ${'NULL'},
462
- '${publisher}')`;
463
- if (i < newProperties.length - 1) {
464
- insertPropertiesQuery += valuesString + ', ';
465
- }
466
- if (i === newProperties.length - 1) {
467
- insertPropertiesQuery += valuesString + ';';
468
- }
469
- propertyUidToLocalId.set(property.id, propertyLocalId);
470
- }
471
- if (insertPropertiesQuery.endsWith('VALUES ')) {
472
- return { propertyUids };
473
- }
474
- if (insertPropertiesQuery.endsWith(', ')) {
475
- insertPropertiesQuery = insertPropertiesQuery.slice(0, -2) + ';';
476
- }
477
- await appDb.run(drizzleOrm.sql.raw(insertPropertiesQuery));
478
- return { propertyUids };
479
- };
480
- const saveEasPropertiesToDb = (params) => {
481
- const next = saveEasPropertiesDbChain.then(() => saveEasPropertiesToDbBody(params));
482
- saveEasPropertiesDbChain = next.then(() => undefined, () => undefined);
483
- return next;
484
- };
485
- const getRelatedSeedsAndVersions = async () => {
486
- eas$1.BaseQueryClient.getQueryClient();
487
- const easClient = eas$1.BaseEasClient.getEasClient();
488
- const { itemSeeds } = await easClient.request(eas$1.GET_SEEDS, {
489
- where: {
490
- id: {
491
- in: Array.from(relatedSeedUids),
492
- },
493
- },
494
- });
495
- await saveEasSeedsToDb({ itemSeeds });
496
- const { itemVersions } = await easClient.request(eas$1.GET_VERSIONS, {
497
- where: {
498
- refUID: {
499
- in: Array.from(relatedSeedUids),
500
- },
501
- },
502
- });
503
- await saveEasVersionsToDb({ itemVersions });
504
- const relatedVersionUids = itemVersions.map((v) => v.id);
505
- const { itemProperties } = await easClient.request(eas$1.GET_PROPERTIES, {
506
- where: {
507
- refUID: {
508
- in: relatedVersionUids,
509
- },
510
- },
511
- });
512
- const canonicalRelatedProperties = eas$1.pickLatestPropertyAttestationsByRefAndSchema(itemProperties);
513
- await saveEasPropertiesToDb({
514
- itemProperties: canonicalRelatedProperties,
515
- itemSeeds,
516
- });
517
- };
518
- /**
519
- * Core sync logic: fetches item attestations from EAS for configured models and given addresses,
520
- * then saves seeds, versions, and properties to the local DB.
521
- * Uses owned + watched addresses from DB when addresses are not provided.
522
- */
523
- const runSyncFromEas = async (options) => {
524
- let addresses = options?.addresses ?? (await main_cjs.getAllAddressesFromDb());
525
- if (!addresses || addresses.length === 0) {
526
- return;
527
- }
528
- // Don't read the default chain while publish is about to configure another one.
529
- await main_cjs.waitForEasReadChain();
530
- // Never mix attestations from two chains in one local DB.
531
- await main_cjs.assertLocalDbChain();
532
- const appDb = main_cjs.BaseDb.getAppDb();
533
- const { schemaStringToModelRecord } = await getModelSchemas();
534
- const modelSchemas = await eas.getModelSchemasFromEas();
535
- const schemaUids = [];
536
- for (const modelSchema of modelSchemas) {
537
- const foundModel = schemaStringToModelRecord.get(modelSchema.schema);
538
- if (!foundModel) {
539
- // Skip schemas that don't have a corresponding model in the user's config
540
- // This can happen with "bytes32 image" if there's no Image model defined
541
- console.warn(`[item/events] [syncDbWithEas] Model not found for schema ${modelSchema.schema}, skipping`);
542
- continue;
543
- }
544
- try {
545
- await appDb
546
- .insert(main_cjs.modelUids)
547
- .values({
548
- modelId: foundModel.id,
549
- uid: modelSchema.id,
550
- })
551
- .onConflictDoNothing();
552
- }
553
- catch (err) {
554
- // Model may have been deleted by test teardown or another process; skip to avoid unhandled rejection
555
- const e = err;
556
- const code = e?.code ?? e?.rawCode ?? e?.cause?.code ?? e?.cause?.rawCode;
557
- if (code === 'SQLITE_CONSTRAINT_FOREIGNKEY' || code === 787) {
558
- continue;
559
- }
560
- throw err;
561
- }
562
- schemaUids.push(modelSchema.id);
563
- }
564
- // If no schemas were found, skip the rest of the sync process
565
- // This can happen when models exist but don't have schemas registered in EAS yet
566
- if (schemaUids.length === 0) {
567
- return;
568
- }
569
- const itemSeeds = await eas$1.getSeedsFromSchemaUids({
570
- schemaUids,
571
- addresses,
572
- excludeRevoked: false,
573
- });
574
- const { seedUids } = await saveEasSeedsToDb({
575
- itemSeeds,
576
- });
577
- const itemVersions = await eas$1.getItemVersionsFromEas({
578
- seedUids,
579
- excludeRevoked: false,
580
- });
581
- const { versionUids } = await saveEasVersionsToDb({
582
- itemVersions,
583
- });
584
- const rawProperties = await eas$1.getItemPropertiesFromEas({
585
- versionUids,
586
- excludeRevoked: false,
587
- });
588
- const itemProperties = eas$1.pickLatestPropertyAttestationsByRefAndSchema(rawProperties);
589
- await saveEasPropertiesToDb({
590
- itemProperties,
591
- itemSeeds,
592
- });
593
- await getRelatedSeedsAndVersions();
594
- main_cjs.scheduleBulkFilesDownloadFromEasSync(addresses);
595
- try {
596
- const itemMod = await Promise.resolve().then(function () { return require('./index-CSNtEnbF.js'); }).then(function (n) { return n.Item$1; });
597
- await itemMod.Item.rehydrateCachedItemsFromDbAfterEasSync();
598
- }
599
- catch (err) {
600
- console.warn('[item/events] [syncDbWithEas] rehydrateCachedItemsFromDbAfterEasSync:', err);
601
- }
602
- main_cjs.eventEmitter.emit(main_cjs.EAS_SEED_DATA_SYNCED_TO_DB_EVENT);
603
- };
604
-
605
- exports.runSyncFromEas = runSyncFromEas;
606
- //# sourceMappingURL=syncDbWithEas-C6n34o_Q.js.map