@seedprotocol/sdk 0.4.2 → 0.4.4

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 (1400) hide show
  1. package/dist/ArweaveClient-CczHvccG.js +202 -0
  2. package/dist/ArweaveClient-CczHvccG.js.map +1 -0
  3. package/dist/ArweaveClient-DkNLWiSZ.js +202 -0
  4. package/dist/ArweaveClient-DkNLWiSZ.js.map +1 -0
  5. package/dist/ClientManager-DoHUt8tU.js +15258 -0
  6. package/dist/ClientManager-DoHUt8tU.js.map +1 -0
  7. package/dist/Db-BzQR2KX9.js +343 -0
  8. package/dist/Db-BzQR2KX9.js.map +1 -0
  9. package/dist/Db-DJvjXVlp.js +1514 -0
  10. package/dist/Db-DJvjXVlp.js.map +1 -0
  11. package/dist/EasClient-CHQYmjj2.js +29 -0
  12. package/dist/EasClient-CHQYmjj2.js.map +1 -0
  13. package/dist/EasClient-CodrIgW-.js +29 -0
  14. package/dist/EasClient-CodrIgW-.js.map +1 -0
  15. package/dist/FileManager-BIVsDnMu.js +165 -0
  16. package/dist/FileManager-BIVsDnMu.js.map +1 -0
  17. package/dist/FileManager-BbvkZJCH.js +1152 -0
  18. package/dist/FileManager-BbvkZJCH.js.map +1 -0
  19. package/dist/Item/Item.d.ts +134 -0
  20. package/dist/Item/Item.d.ts.map +1 -0
  21. package/dist/Item/queries.d.ts.map +1 -0
  22. package/dist/Item/service/actors/fetchDataFromEas.d.ts +4 -0
  23. package/dist/Item/service/actors/fetchDataFromEas.d.ts.map +1 -0
  24. package/dist/Item/service/actors/hydrateExistingItem.d.ts.map +1 -0
  25. package/dist/Item/service/actors/hydrateNewItem.d.ts.map +1 -0
  26. package/dist/Item/service/actors/initialize.d.ts.map +1 -0
  27. package/dist/Item/service/actors/loadOrCreateItem.d.ts.map +1 -0
  28. package/dist/Item/service/actors/reload.d.ts.map +1 -0
  29. package/dist/Item/service/actors/runPublish.d.ts +5 -0
  30. package/dist/Item/service/actors/runPublish.d.ts.map +1 -0
  31. package/dist/Item/service/actors/saveDataToDb.d.ts +4 -0
  32. package/dist/Item/service/actors/saveDataToDb.d.ts.map +1 -0
  33. package/dist/Item/service/actors/waitForDb.d.ts.map +1 -0
  34. package/dist/Item/service/itemMachineSingle.d.ts +53 -0
  35. package/dist/Item/service/itemMachineSingle.d.ts.map +1 -0
  36. package/dist/ItemProperty/ItemProperty.d.ts +118 -0
  37. package/dist/ItemProperty/ItemProperty.d.ts.map +1 -0
  38. package/dist/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -0
  39. package/dist/ItemProperty/service/actors/initialize.d.ts.map +1 -0
  40. package/dist/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -0
  41. package/dist/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -0
  42. package/dist/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -0
  43. package/dist/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -0
  44. package/dist/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +1 -0
  45. package/dist/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -0
  46. package/dist/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -0
  47. package/dist/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +1 -0
  48. package/dist/ItemProperty/service/actors/waitForDb.d.ts.map +1 -0
  49. package/dist/ItemProperty/service/propertyMachine.d.ts +68 -0
  50. package/dist/ItemProperty/service/propertyMachine.d.ts.map +1 -0
  51. package/dist/Model/Model.d.ts +225 -0
  52. package/dist/Model/Model.d.ts.map +1 -0
  53. package/dist/Model/index.d.ts +26 -0
  54. package/dist/Model/index.d.ts.map +1 -0
  55. package/dist/Model/service/actors/createModelProperties.d.ts.map +1 -0
  56. package/dist/Model/service/actors/loadOrCreateModel.d.ts.map +1 -0
  57. package/dist/Model/service/actors/validateModel.d.ts.map +1 -0
  58. package/dist/Model/service/modelMachine.d.ts +222 -0
  59. package/dist/Model/service/modelMachine.d.ts.map +1 -0
  60. package/dist/ModelProperty/ModelProperty.d.ts +146 -0
  61. package/dist/ModelProperty/ModelProperty.d.ts.map +1 -0
  62. package/dist/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -0
  63. package/dist/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -0
  64. package/dist/ModelProperty/service/actors/validateProperty.d.ts.map +1 -0
  65. package/dist/ModelProperty/service/modelPropertyMachine.d.ts +197 -0
  66. package/dist/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -0
  67. package/dist/ModelProperty-gjcA83Mq.js +2485 -0
  68. package/dist/ModelProperty-gjcA83Mq.js.map +1 -0
  69. package/dist/PathResolver-9zAzPhee.js +191 -0
  70. package/dist/PathResolver-9zAzPhee.js.map +1 -0
  71. package/dist/PathResolver-kGzba-zC.js +78 -0
  72. package/dist/PathResolver-kGzba-zC.js.map +1 -0
  73. package/dist/QueryClient-C7ZkTT0z.js +47 -0
  74. package/dist/QueryClient-C7ZkTT0z.js.map +1 -0
  75. package/dist/QueryClient-CEtsek7Q.js +34 -0
  76. package/dist/QueryClient-CEtsek7Q.js.map +1 -0
  77. package/dist/Schema/Schema.d.ts +186 -0
  78. package/dist/Schema/Schema.d.ts.map +1 -0
  79. package/dist/Schema/errors.d.ts.map +1 -0
  80. package/dist/Schema/index.d.ts.map +1 -0
  81. package/dist/Schema/service/actors/checkExistingSchema.d.ts.map +1 -0
  82. package/dist/Schema/service/actors/createModelInstances.d.ts.map +1 -0
  83. package/dist/Schema/service/actors/createPropertyInstances.d.ts.map +1 -0
  84. package/dist/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -0
  85. package/dist/Schema/service/actors/validateSchema.d.ts.map +1 -0
  86. package/dist/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +1 -0
  87. package/dist/Schema/service/actors/verifyModelsInDb.d.ts.map +1 -0
  88. package/dist/Schema/service/actors/verifyPropertiesInDb.d.ts.map +1 -0
  89. package/dist/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +1 -0
  90. package/dist/Schema/service/actors/verifySchemaInDb.d.ts.map +1 -0
  91. package/dist/Schema/service/actors/writeModelsToDb.d.ts.map +1 -0
  92. package/dist/Schema/service/actors/writePropertiesToDb.d.ts.map +1 -0
  93. package/dist/Schema/service/actors/writeSchemaToDb.d.ts.map +1 -0
  94. package/dist/Schema/service/addModelsMachine.d.ts +123 -0
  95. package/dist/Schema/service/addModelsMachine.d.ts.map +1 -0
  96. package/dist/Schema/service/schemaMachine.d.ts +526 -0
  97. package/dist/Schema/service/schemaMachine.d.ts.map +1 -0
  98. package/dist/Schema/service/validation/SchemaValidationService.d.ts.map +1 -0
  99. package/dist/Schema/validation.d.ts.map +1 -0
  100. package/dist/Schema-ClTcpgbt.js +5856 -0
  101. package/dist/Schema-ClTcpgbt.js.map +1 -0
  102. package/dist/SchemaValidationService-BfoEiHNr.js +563 -0
  103. package/dist/SchemaValidationService-BfoEiHNr.js.map +1 -0
  104. package/dist/browser/db/Db.d.ts.map +1 -0
  105. package/dist/browser/db/drizzleFiles.d.ts.map +1 -0
  106. package/dist/browser/db/sqlWasmClient.d.ts.map +1 -0
  107. package/dist/browser/helpers/ArweaveClient.d.ts +31 -0
  108. package/dist/browser/helpers/ArweaveClient.d.ts.map +1 -0
  109. package/dist/browser/helpers/EasClient.d.ts.map +1 -0
  110. package/dist/browser/helpers/FileManager.d.ts.map +1 -0
  111. package/dist/browser/helpers/PathResolver.d.ts.map +1 -0
  112. package/dist/browser/helpers/QueryClient.d.ts.map +1 -0
  113. package/dist/browser/helpers/index.d.ts +4 -0
  114. package/dist/browser/helpers/index.d.ts.map +1 -0
  115. package/dist/browser/index.d.ts +4 -0
  116. package/dist/browser/index.d.ts.map +1 -0
  117. package/dist/browser/react/OPFSImage.d.ts.map +1 -0
  118. package/dist/browser/react/SeedImage.d.ts.map +1 -0
  119. package/dist/browser/react/SeedProvider.d.ts +30 -0
  120. package/dist/browser/react/SeedProvider.d.ts.map +1 -0
  121. package/dist/browser/react/client.d.ts.map +1 -0
  122. package/dist/browser/react/db.d.ts.map +1 -0
  123. package/dist/browser/react/index.d.ts +13 -0
  124. package/dist/browser/react/index.d.ts.map +1 -0
  125. package/dist/browser/react/item.d.ts +42 -0
  126. package/dist/browser/react/item.d.ts.map +1 -0
  127. package/dist/browser/react/itemProperty.d.ts +93 -0
  128. package/dist/browser/react/itemProperty.d.ts.map +1 -0
  129. package/dist/browser/react/liveQuery.d.ts.map +1 -0
  130. package/dist/browser/react/model.d.ts +48 -0
  131. package/dist/browser/react/model.d.ts.map +1 -0
  132. package/dist/browser/react/modelProperty.d.ts +82 -0
  133. package/dist/browser/react/modelProperty.d.ts.map +1 -0
  134. package/dist/browser/react/queryClient.d.ts +28 -0
  135. package/dist/browser/react/queryClient.d.ts.map +1 -0
  136. package/dist/browser/react/schema.d.ts +45 -0
  137. package/dist/browser/react/schema.d.ts.map +1 -0
  138. package/dist/browser/react/services.d.ts.map +1 -0
  139. package/dist/browser/react/trash.d.ts +9 -0
  140. package/dist/browser/react/trash.d.ts.map +1 -0
  141. package/dist/browser/seed.d.ts +21 -0
  142. package/dist/browser/seed.d.ts.map +1 -0
  143. package/dist/browser/workers/FileDownloader.d.ts.map +1 -0
  144. package/dist/browser/workers/ImageResizer.d.ts.map +1 -0
  145. package/dist/browser/workers/content-hash.d.ts.map +1 -0
  146. package/dist/browser/workers/dbWorker.d.ts.map +1 -0
  147. package/dist/browser/workers/filesDownload.d.ts.map +1 -0
  148. package/dist/browser/workers/imageResize.d.ts.map +1 -0
  149. package/dist/cjs/ModelProperty-BRKRREYP.js +2140 -0
  150. package/dist/cjs/ModelProperty-BRKRREYP.js.map +1 -0
  151. package/dist/cjs/Schema-CV9hMg8m.js +5873 -0
  152. package/dist/cjs/Schema-CV9hMg8m.js.map +1 -0
  153. package/dist/cjs/SchemaValidationService-DUtQUerg.js +579 -0
  154. package/dist/cjs/SchemaValidationService-DUtQUerg.js.map +1 -0
  155. package/dist/cjs/getItem-BThT-UOt.js +55 -0
  156. package/dist/cjs/getItem-BThT-UOt.js.map +1 -0
  157. package/dist/cjs/getPublishPayload-CKZ7rVbU.js +338 -0
  158. package/dist/cjs/getPublishPayload-CKZ7rVbU.js.map +1 -0
  159. package/dist/cjs/getPublishUploads-CuGIvV-Q.js +229 -0
  160. package/dist/cjs/getPublishUploads-CuGIvV-Q.js.map +1 -0
  161. package/dist/cjs/getSegmentedItemProperties-BCJXJlTR.js +61 -0
  162. package/dist/cjs/getSegmentedItemProperties-BCJXJlTR.js.map +1 -0
  163. package/dist/cjs/index-C3j3m34a.js +16642 -0
  164. package/dist/cjs/index-C3j3m34a.js.map +1 -0
  165. package/dist/cjs/index-CbTBDqTJ.js +57 -0
  166. package/dist/cjs/index-CbTBDqTJ.js.map +1 -0
  167. package/dist/client/BaseClientManager.d.ts.map +1 -0
  168. package/dist/client/ClientManager.d.ts.map +1 -0
  169. package/dist/client/actions/setAddresses.d.ts.map +1 -0
  170. package/dist/client/actors/addModelsToDb.d.ts.map +1 -0
  171. package/dist/client/actors/addModelsToStore.d.ts.map +1 -0
  172. package/dist/client/actors/dbInit.d.ts.map +1 -0
  173. package/dist/client/actors/fileSystemInit.d.ts.map +1 -0
  174. package/dist/client/actors/platformClassesInit.d.ts.map +1 -0
  175. package/dist/client/actors/processSchemaFiles.d.ts.map +1 -0
  176. package/dist/client/actors/saveAppState.d.ts.map +1 -0
  177. package/dist/client/actors/saveConfig.d.ts.map +1 -0
  178. package/dist/client/clientManagerMachine.d.ts.map +1 -0
  179. package/dist/client/constants.d.ts +89 -0
  180. package/dist/client/constants.d.ts.map +1 -0
  181. package/dist/client/index.d.ts.map +1 -0
  182. package/dist/db/Db/BaseDb.d.ts +42 -0
  183. package/dist/db/Db/BaseDb.d.ts.map +1 -0
  184. package/dist/db/configs/dev.schema.config.d.ts.map +1 -0
  185. package/dist/db/read/getExistingItem.d.ts +12 -0
  186. package/dist/db/read/getExistingItem.d.ts.map +1 -0
  187. package/dist/db/read/getItem.d.ts.map +1 -0
  188. package/dist/db/read/getItemData.d.ts.map +1 -0
  189. package/dist/db/read/getItemProperties.d.ts.map +1 -0
  190. package/dist/db/read/getItemProperty.d.ts.map +1 -0
  191. package/dist/db/read/getItems.d.ts.map +1 -0
  192. package/dist/db/read/getMetadata.d.ts.map +1 -0
  193. package/dist/db/read/getModelPropertiesData.d.ts +19 -0
  194. package/dist/db/read/getModelPropertiesData.d.ts.map +1 -0
  195. package/dist/db/read/getModelSchemas.d.ts.map +1 -0
  196. package/dist/db/read/getModels.d.ts.map +1 -0
  197. package/dist/db/read/getModelsData.d.ts +15 -0
  198. package/dist/db/read/getModelsData.d.ts.map +1 -0
  199. package/dist/db/read/getPropertyData.d.ts.map +1 -0
  200. package/dist/db/read/getPublishPayload.d.ts.map +1 -0
  201. package/dist/db/read/getPublishUploads.d.ts +10 -0
  202. package/dist/db/read/getPublishUploads.d.ts.map +1 -0
  203. package/dist/db/read/getRelationValueData.d.ts.map +1 -0
  204. package/dist/db/read/getSchemaUidForModel.d.ts.map +1 -0
  205. package/dist/db/read/getSeedData.d.ts.map +1 -0
  206. package/dist/db/read/getStorageTransactionIdForSeedUid.d.ts.map +1 -0
  207. package/dist/db/read/getVersionData.d.ts.map +1 -0
  208. package/dist/db/read/getVersionsForVersionUids.d.ts.map +1 -0
  209. package/dist/db/read/subqueries/metadataLatest.d.ts.map +1 -0
  210. package/dist/db/read/subqueries/versionData.d.ts.map +1 -0
  211. package/dist/db/write/createMetadata.d.ts.map +1 -0
  212. package/dist/db/write/createNewItem.d.ts.map +1 -0
  213. package/dist/db/write/createSeed.d.ts.map +1 -0
  214. package/dist/db/write/createSeeds.d.ts.map +1 -0
  215. package/dist/db/write/createVersion.d.ts.map +1 -0
  216. package/dist/db/write/deleteItem.d.ts.map +1 -0
  217. package/dist/db/write/recoverDeletedItem.d.ts.map +1 -0
  218. package/dist/db/write/saveAppState.d.ts.map +1 -0
  219. package/dist/db/write/saveMetadata.d.ts.map +1 -0
  220. package/dist/db/write/updateItemPropertyValue.d.ts +13 -0
  221. package/dist/db/write/updateItemPropertyValue.d.ts.map +1 -0
  222. package/dist/db/write/updateMetadata.d.ts.map +1 -0
  223. package/dist/db/write/updateSeedUid.d.ts +7 -0
  224. package/dist/db/write/updateSeedUid.d.ts.map +1 -0
  225. package/dist/eas.d.ts.map +1 -0
  226. package/dist/eslint-rules/align-imports.d.ts.map +1 -0
  227. package/dist/eventBus.d.ts.map +1 -0
  228. package/dist/events/files/download.d.ts +9 -0
  229. package/dist/events/files/download.d.ts.map +1 -0
  230. package/dist/events/files/index.d.ts.map +1 -0
  231. package/dist/events/index.d.ts.map +1 -0
  232. package/dist/events/item/index.d.ts +2 -0
  233. package/dist/events/item/index.d.ts.map +1 -0
  234. package/dist/events/item/syncDbWithEas.d.ts.map +1 -0
  235. package/dist/events/services/allItems.d.ts.map +1 -0
  236. package/dist/events/services/index.d.ts.map +1 -0
  237. package/dist/feed.d.ts.map +1 -0
  238. package/dist/getItem-BWPo8wd0.js +38 -0
  239. package/dist/getItem-BWPo8wd0.js.map +1 -0
  240. package/dist/getPublishPayload-Caw2laZM.js +322 -0
  241. package/dist/getPublishPayload-Caw2laZM.js.map +1 -0
  242. package/dist/getPublishUploads-MlyBuoXh.js +193 -0
  243. package/dist/getPublishUploads-MlyBuoXh.js.map +1 -0
  244. package/dist/getSegmentedItemProperties-COLLdDo4.js +59 -0
  245. package/dist/getSegmentedItemProperties-COLLdDo4.js.map +1 -0
  246. package/dist/graphql/fragments/Attestation.d.ts.map +1 -0
  247. package/dist/graphql/fragments/Schema.d.ts.map +1 -0
  248. package/dist/graphql/fragments/index.d.ts.map +1 -0
  249. package/dist/graphql/gql/fragment-masking.d.ts.map +1 -0
  250. package/dist/graphql/gql/gql.d.ts.map +1 -0
  251. package/dist/graphql/gql/graphql.d.ts.map +1 -0
  252. package/dist/graphql/gql/index.d.ts.map +1 -0
  253. package/dist/helpers/ArweaveClient/BaseArweaveClient.d.ts +71 -0
  254. package/dist/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -0
  255. package/dist/helpers/ArweaveClient/index.d.ts +30 -0
  256. package/dist/helpers/ArweaveClient/index.d.ts.map +1 -0
  257. package/dist/helpers/ArweaveClient/queries.d.ts +13 -0
  258. package/dist/helpers/ArweaveClient/queries.d.ts.map +1 -0
  259. package/dist/helpers/EasClient/BaseEasClient.d.ts +10 -0
  260. package/dist/helpers/EasClient/BaseEasClient.d.ts.map +1 -0
  261. package/dist/helpers/FileManager/BaseFileManager.d.ts.map +1 -0
  262. package/dist/helpers/PathResolver/BasePathResolver.d.ts.map +1 -0
  263. package/dist/helpers/QueryClient/BaseQueryClient.d.ts.map +1 -0
  264. package/dist/helpers/constants.d.ts +67 -0
  265. package/dist/helpers/constants.d.ts.map +1 -0
  266. package/dist/helpers/crypto.d.ts.map +1 -0
  267. package/dist/helpers/db.d.ts +131 -0
  268. package/dist/helpers/db.d.ts.map +1 -0
  269. package/dist/helpers/entity/entityCache.d.ts +49 -0
  270. package/dist/helpers/entity/entityCache.d.ts.map +1 -0
  271. package/dist/helpers/entity/entityCommon.d.ts +23 -0
  272. package/dist/helpers/entity/entityCommon.d.ts.map +1 -0
  273. package/dist/helpers/entity/entityDestroy.d.ts +41 -0
  274. package/dist/helpers/entity/entityDestroy.d.ts.map +1 -0
  275. package/dist/helpers/entity/entityFind.d.ts +52 -0
  276. package/dist/helpers/entity/entityFind.d.ts.map +1 -0
  277. package/dist/helpers/entity/entityLiveQuery.d.ts +68 -0
  278. package/dist/helpers/entity/entityLiveQuery.d.ts.map +1 -0
  279. package/dist/helpers/entity/entityUnload.d.ts +50 -0
  280. package/dist/helpers/entity/entityUnload.d.ts.map +1 -0
  281. package/dist/helpers/entity/index.d.ts +11 -0
  282. package/dist/helpers/entity/index.d.ts.map +1 -0
  283. package/dist/helpers/environment.d.ts.map +1 -0
  284. package/dist/helpers/file/download/actors.d.ts +17 -0
  285. package/dist/helpers/file/download/actors.d.ts.map +1 -0
  286. package/dist/helpers/file/download/index.d.ts +70 -0
  287. package/dist/helpers/file/download/index.d.ts.map +1 -0
  288. package/dist/helpers/file/fetchAll/actors.d.ts +16 -0
  289. package/dist/helpers/file/fetchAll/actors.d.ts.map +1 -0
  290. package/dist/helpers/file/fetchAll/index.d.ts +58 -0
  291. package/dist/helpers/file/fetchAll/index.d.ts.map +1 -0
  292. package/dist/helpers/file/queries.d.ts.map +1 -0
  293. package/dist/helpers/files.d.ts.map +1 -0
  294. package/dist/helpers/getSchemaForItemProperty.d.ts.map +1 -0
  295. package/dist/helpers/getSegmentedItemProperties.d.ts +10 -0
  296. package/dist/helpers/getSegmentedItemProperties.d.ts.map +1 -0
  297. package/dist/helpers/image/queries.d.ts.map +1 -0
  298. package/dist/helpers/index.d.ts +29 -0
  299. package/dist/helpers/index.d.ts.map +1 -0
  300. package/dist/helpers/model.d.ts.map +1 -0
  301. package/dist/helpers/property/index.d.ts +298 -0
  302. package/dist/helpers/property/index.d.ts.map +1 -0
  303. package/dist/helpers/property.d.ts.map +1 -0
  304. package/dist/helpers/reactiveProxy.d.ts.map +1 -0
  305. package/dist/helpers/schema.d.ts.map +1 -0
  306. package/dist/helpers/updateMachineContext.d.ts.map +1 -0
  307. package/dist/helpers/updateSchema.d.ts +118 -0
  308. package/dist/helpers/updateSchema.d.ts.map +1 -0
  309. package/dist/helpers/waitForEntityIdle.d.ts +16 -0
  310. package/dist/helpers/waitForEntityIdle.d.ts.map +1 -0
  311. package/dist/imports/index.d.ts +4 -0
  312. package/dist/imports/index.d.ts.map +1 -0
  313. package/dist/imports/json.d.ts.map +1 -0
  314. package/dist/imports/markdown.d.ts.map +1 -0
  315. package/dist/index-B9i_mXXp.js +18 -0
  316. package/dist/index-B9i_mXXp.js.map +1 -0
  317. package/dist/index-D2OGsG4v.js +23 -0
  318. package/dist/index-D2OGsG4v.js.map +1 -0
  319. package/dist/index.d.ts +22 -0
  320. package/dist/index.d.ts.map +1 -0
  321. package/dist/interfaces/IDb.d.ts.map +1 -0
  322. package/dist/interfaces/IEasClient.d.ts.map +1 -0
  323. package/dist/interfaces/IItem.d.ts +29 -0
  324. package/dist/interfaces/IItem.d.ts.map +1 -0
  325. package/dist/interfaces/IItemProperty.d.ts +36 -0
  326. package/dist/interfaces/IItemProperty.d.ts.map +1 -0
  327. package/dist/interfaces/IQueryClient.d.ts.map +1 -0
  328. package/dist/interfaces/index.d.ts.map +1 -0
  329. package/dist/main.cjs +75 -78
  330. package/dist/main.cjs.map +1 -1
  331. package/dist/main.js +2681 -32
  332. package/dist/main.js.map +1 -1
  333. package/dist/node/codegen/drizzle.d.ts.map +1 -0
  334. package/dist/node/codegen/index.d.ts.map +1 -0
  335. package/dist/node/codegen/ts-to-proto.d.ts.map +1 -0
  336. package/dist/node/constants.d.ts.map +1 -0
  337. package/dist/node/db/Db.d.ts.map +1 -0
  338. package/dist/node/db/index.d.ts.map +1 -0
  339. package/dist/node/db/node.app.db.config.d.ts.map +1 -0
  340. package/dist/node/helpers/ArweaveClient.d.ts +31 -0
  341. package/dist/node/helpers/ArweaveClient.d.ts.map +1 -0
  342. package/dist/node/helpers/EasClient.d.ts.map +1 -0
  343. package/dist/node/helpers/FileManager.d.ts.map +1 -0
  344. package/dist/node/helpers/PathResolver.d.ts.map +1 -0
  345. package/dist/node/helpers/QueryClient.d.ts.map +1 -0
  346. package/dist/node/helpers/index.d.ts.map +1 -0
  347. package/dist/node/helpers/scripts.d.ts.map +1 -0
  348. package/dist/node/index.d.ts +24 -0
  349. package/dist/node/index.d.ts.map +1 -0
  350. package/dist/node/seed.d.ts.map +1 -0
  351. package/dist/node/webpack/fs-proxy.d.ts.map +1 -0
  352. package/dist/node/webpack/index.d.ts.map +1 -0
  353. package/dist/node.js +524 -34
  354. package/dist/node.js.map +1 -1
  355. package/dist/property-fK7tSUDX.js +276 -0
  356. package/dist/property-fK7tSUDX.js.map +1 -0
  357. package/dist/queries-DGOk16cd.js +16 -0
  358. package/dist/queries-DGOk16cd.js.map +1 -0
  359. package/dist/seedSchema/AppStateSchema.d.ts.map +1 -0
  360. package/dist/seedSchema/ConfigSchema.d.ts.map +1 -0
  361. package/dist/seedSchema/MetadataSchema.d.ts.map +1 -0
  362. package/dist/seedSchema/ModelSchema.d.ts.map +1 -0
  363. package/dist/seedSchema/ModelSchemaSchema.d.ts.map +1 -0
  364. package/dist/seedSchema/ModelSchemaSchema.ts +2 -2
  365. package/dist/seedSchema/ModelUidSchema.d.ts.map +1 -0
  366. package/dist/seedSchema/ModelUidSchema.ts +2 -2
  367. package/dist/seedSchema/PropertyUidSchema.d.ts.map +1 -0
  368. package/dist/seedSchema/PropertyUidSchema.ts +1 -1
  369. package/dist/seedSchema/SchemaSchema.d.ts.map +1 -0
  370. package/dist/seedSchema/SeedSchema.d.ts.map +1 -0
  371. package/dist/seedSchema/VersionSchema.d.ts.map +1 -0
  372. package/dist/seedSchema/index.d.ts +11 -0
  373. package/dist/seedSchema/index.d.ts.map +1 -0
  374. package/dist/seedSchema/index.ts +10 -10
  375. package/dist/services/events.d.ts.map +1 -0
  376. package/dist/services/publish/actors/createPublishAttempt.d.ts.map +1 -0
  377. package/dist/services/publish/actors/preparePublishRequestData.d.ts.map +1 -0
  378. package/dist/services/publish/actors/upload.d.ts.map +1 -0
  379. package/dist/services/publish/actors/validateItemData.d.ts.map +1 -0
  380. package/dist/services/publish/publishMachine.d.ts.map +1 -0
  381. package/dist/services/write/actors/validateEntity.d.ts +6 -0
  382. package/dist/services/write/actors/validateEntity.d.ts.map +1 -0
  383. package/dist/services/write/actors/writeToDatabase.d.ts.map +1 -0
  384. package/dist/services/write/writeProcessMachine.d.ts +83 -0
  385. package/dist/services/write/writeProcessMachine.d.ts.map +1 -0
  386. package/dist/stores/eas.d.ts.map +1 -0
  387. package/dist/types/arweave.d.ts +56 -0
  388. package/dist/types/arweave.d.ts.map +1 -0
  389. package/dist/types/browser.d.ts.map +1 -0
  390. package/dist/types/db.d.ts.map +1 -0
  391. package/dist/types/fileManager.d.ts.map +1 -0
  392. package/dist/types/helpers.d.ts.map +1 -0
  393. package/dist/types/import.d.ts.map +1 -0
  394. package/dist/types/index.d.ts +54 -0
  395. package/dist/types/index.d.ts.map +1 -0
  396. package/dist/types/item.d.ts +84 -0
  397. package/dist/types/item.d.ts.map +1 -0
  398. package/dist/types/machines.d.ts.map +1 -0
  399. package/dist/types/model.d.ts.map +1 -0
  400. package/dist/types/property.d.ts +55 -0
  401. package/dist/types/property.d.ts.map +1 -0
  402. package/dist/types/publish.d.ts +9 -0
  403. package/dist/types/publish.d.ts.map +1 -0
  404. package/dist/types/seedProtocol.d.ts.map +1 -0
  405. package/dist/types/services.d.ts.map +1 -0
  406. package/dist/vite/easFix.d.ts +2 -0
  407. package/dist/vite/easFix.d.ts.map +1 -0
  408. package/dist/vite/index.d.ts +48 -0
  409. package/dist/vite/index.d.ts.map +1 -0
  410. package/dist/vite.cjs +217 -0
  411. package/dist/vite.cjs.map +1 -0
  412. package/dist/vite.js +215 -0
  413. package/dist/vite.js.map +1 -0
  414. package/package.json +26 -9
  415. package/dist/Item/Item.js +0 -954
  416. package/dist/Item/Item.js.map +0 -1
  417. package/dist/Item/queries.js +0 -66
  418. package/dist/Item/queries.js.map +0 -1
  419. package/dist/Item/service/actors/fetchDataFromEas.js +0 -94
  420. package/dist/Item/service/actors/fetchDataFromEas.js.map +0 -1
  421. package/dist/Item/service/actors/hydrateExistingItem.js +0 -124
  422. package/dist/Item/service/actors/hydrateExistingItem.js.map +0 -1
  423. package/dist/Item/service/actors/hydrateNewItem.js +0 -28
  424. package/dist/Item/service/actors/hydrateNewItem.js.map +0 -1
  425. package/dist/Item/service/actors/initialize.js +0 -50
  426. package/dist/Item/service/actors/initialize.js.map +0 -1
  427. package/dist/Item/service/actors/loadOrCreateItem.js +0 -210
  428. package/dist/Item/service/actors/loadOrCreateItem.js.map +0 -1
  429. package/dist/Item/service/actors/reload.js +0 -26
  430. package/dist/Item/service/actors/reload.js.map +0 -1
  431. package/dist/Item/service/actors/waitForDb.js +0 -22
  432. package/dist/Item/service/actors/waitForDb.js.map +0 -1
  433. package/dist/Item/service/itemMachineSingle.js +0 -211
  434. package/dist/Item/service/itemMachineSingle.js.map +0 -1
  435. package/dist/ItemProperty/ItemProperty.js +0 -613
  436. package/dist/ItemProperty/ItemProperty.js.map +0 -1
  437. package/dist/ItemProperty/service/actors/hydrateFromDb.js +0 -207
  438. package/dist/ItemProperty/service/actors/hydrateFromDb.js.map +0 -1
  439. package/dist/ItemProperty/service/actors/initialize.js +0 -74
  440. package/dist/ItemProperty/service/actors/initialize.js.map +0 -1
  441. package/dist/ItemProperty/service/actors/loadOrCreateProperty.js +0 -125
  442. package/dist/ItemProperty/service/actors/loadOrCreateProperty.js.map +0 -1
  443. package/dist/ItemProperty/service/actors/resolveRelatedValue.js +0 -321
  444. package/dist/ItemProperty/service/actors/resolveRelatedValue.js.map +0 -1
  445. package/dist/ItemProperty/service/actors/resolveRemoteStorage.js +0 -62
  446. package/dist/ItemProperty/service/actors/resolveRemoteStorage.js.map +0 -1
  447. package/dist/ItemProperty/service/actors/saveValueToDb/analyzeInput.js +0 -111
  448. package/dist/ItemProperty/service/actors/saveValueToDb/analyzeInput.js.map +0 -1
  449. package/dist/ItemProperty/service/actors/saveValueToDb/saveImage.js +0 -178
  450. package/dist/ItemProperty/service/actors/saveValueToDb/saveImage.js.map +0 -1
  451. package/dist/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js +0 -121
  452. package/dist/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js.map +0 -1
  453. package/dist/ItemProperty/service/actors/saveValueToDb/saveRelation.js +0 -85
  454. package/dist/ItemProperty/service/actors/saveValueToDb/saveRelation.js.map +0 -1
  455. package/dist/ItemProperty/service/actors/waitForDb.js +0 -22
  456. package/dist/ItemProperty/service/actors/waitForDb.js.map +0 -1
  457. package/dist/ItemProperty/service/propertyMachine.js +0 -233
  458. package/dist/ItemProperty/service/propertyMachine.js.map +0 -1
  459. package/dist/Model/Model.js +0 -1831
  460. package/dist/Model/Model.js.map +0 -1
  461. package/dist/Model/index.js +0 -8
  462. package/dist/Model/index.js.map +0 -1
  463. package/dist/Model/service/actors/createModelProperties.js +0 -102
  464. package/dist/Model/service/actors/createModelProperties.js.map +0 -1
  465. package/dist/Model/service/actors/loadOrCreateModel.js +0 -397
  466. package/dist/Model/service/actors/loadOrCreateModel.js.map +0 -1
  467. package/dist/Model/service/actors/validateModel.js +0 -123
  468. package/dist/Model/service/actors/validateModel.js.map +0 -1
  469. package/dist/Model/service/modelMachine.js +0 -385
  470. package/dist/Model/service/modelMachine.js.map +0 -1
  471. package/dist/ModelProperty/ModelProperty.js +0 -841
  472. package/dist/ModelProperty/ModelProperty.js.map +0 -1
  473. package/dist/ModelProperty/service/actors/compareAndMarkDraft.js +0 -119
  474. package/dist/ModelProperty/service/actors/compareAndMarkDraft.js.map +0 -1
  475. package/dist/ModelProperty/service/actors/saveToSchema.js +0 -108
  476. package/dist/ModelProperty/service/actors/saveToSchema.js.map +0 -1
  477. package/dist/ModelProperty/service/actors/validateProperty.js +0 -129
  478. package/dist/ModelProperty/service/actors/validateProperty.js.map +0 -1
  479. package/dist/ModelProperty/service/modelPropertyMachine.js +0 -275
  480. package/dist/ModelProperty/service/modelPropertyMachine.js.map +0 -1
  481. package/dist/Schema/Schema.js +0 -1732
  482. package/dist/Schema/Schema.js.map +0 -1
  483. package/dist/Schema/errors.js +0 -14
  484. package/dist/Schema/errors.js.map +0 -1
  485. package/dist/Schema/index.js +0 -7
  486. package/dist/Schema/index.js.map +0 -1
  487. package/dist/Schema/service/actors/checkExistingSchema.js +0 -454
  488. package/dist/Schema/service/actors/checkExistingSchema.js.map +0 -1
  489. package/dist/Schema/service/actors/createModelInstances.js +0 -71
  490. package/dist/Schema/service/actors/createModelInstances.js.map +0 -1
  491. package/dist/Schema/service/actors/createPropertyInstances.js +0 -86
  492. package/dist/Schema/service/actors/createPropertyInstances.js.map +0 -1
  493. package/dist/Schema/service/actors/loadOrCreateSchema.js +0 -1336
  494. package/dist/Schema/service/actors/loadOrCreateSchema.js.map +0 -1
  495. package/dist/Schema/service/actors/validateSchema.js +0 -65
  496. package/dist/Schema/service/actors/validateSchema.js.map +0 -1
  497. package/dist/Schema/service/actors/verifyModelInstancesInCache.js +0 -88
  498. package/dist/Schema/service/actors/verifyModelInstancesInCache.js.map +0 -1
  499. package/dist/Schema/service/actors/verifyModelsInDb.js +0 -107
  500. package/dist/Schema/service/actors/verifyModelsInDb.js.map +0 -1
  501. package/dist/Schema/service/actors/verifyPropertiesInDb.js +0 -131
  502. package/dist/Schema/service/actors/verifyPropertiesInDb.js.map +0 -1
  503. package/dist/Schema/service/actors/verifyPropertyInstancesInCache.js +0 -88
  504. package/dist/Schema/service/actors/verifyPropertyInstancesInCache.js.map +0 -1
  505. package/dist/Schema/service/actors/verifySchemaInDb.js +0 -85
  506. package/dist/Schema/service/actors/verifySchemaInDb.js.map +0 -1
  507. package/dist/Schema/service/actors/writeModelsToDb.js +0 -185
  508. package/dist/Schema/service/actors/writeModelsToDb.js.map +0 -1
  509. package/dist/Schema/service/actors/writePropertiesToDb.js +0 -69
  510. package/dist/Schema/service/actors/writePropertiesToDb.js.map +0 -1
  511. package/dist/Schema/service/actors/writeSchemaToDb.js +0 -137
  512. package/dist/Schema/service/actors/writeSchemaToDb.js.map +0 -1
  513. package/dist/Schema/service/addModelsMachine.js +0 -545
  514. package/dist/Schema/service/addModelsMachine.js.map +0 -1
  515. package/dist/Schema/service/schemaMachine.js +0 -667
  516. package/dist/Schema/service/schemaMachine.js.map +0 -1
  517. package/dist/Schema/service/validation/SchemaValidationService.js +0 -565
  518. package/dist/Schema/service/validation/SchemaValidationService.js.map +0 -1
  519. package/dist/Schema/validation.js +0 -15
  520. package/dist/Schema/validation.js.map +0 -1
  521. package/dist/browser/db/Db.js +0 -484
  522. package/dist/browser/db/Db.js.map +0 -1
  523. package/dist/browser/db/drizzleFiles.js +0 -1022
  524. package/dist/browser/db/drizzleFiles.js.map +0 -1
  525. package/dist/browser/helpers/ArweaveClient.js +0 -13
  526. package/dist/browser/helpers/ArweaveClient.js.map +0 -1
  527. package/dist/browser/helpers/EasClient.js +0 -16
  528. package/dist/browser/helpers/EasClient.js.map +0 -1
  529. package/dist/browser/helpers/FileManager.js +0 -415
  530. package/dist/browser/helpers/FileManager.js.map +0 -1
  531. package/dist/browser/helpers/PathResolver.js +0 -64
  532. package/dist/browser/helpers/PathResolver.js.map +0 -1
  533. package/dist/browser/helpers/QueryClient.js +0 -33
  534. package/dist/browser/helpers/QueryClient.js.map +0 -1
  535. package/dist/browser/react/client.js +0 -16
  536. package/dist/browser/react/client.js.map +0 -1
  537. package/dist/browser/react/db.js +0 -7
  538. package/dist/browser/react/db.js.map +0 -1
  539. package/dist/browser/react/item.js +0 -192
  540. package/dist/browser/react/item.js.map +0 -1
  541. package/dist/browser/react/itemProperty.js +0 -545
  542. package/dist/browser/react/itemProperty.js.map +0 -1
  543. package/dist/browser/react/liveQuery.js +0 -95
  544. package/dist/browser/react/liveQuery.js.map +0 -1
  545. package/dist/browser/react/model.js +0 -276
  546. package/dist/browser/react/model.js.map +0 -1
  547. package/dist/browser/react/modelProperty.js +0 -412
  548. package/dist/browser/react/modelProperty.js.map +0 -1
  549. package/dist/browser/react/schema.js +0 -387
  550. package/dist/browser/react/schema.js.map +0 -1
  551. package/dist/browser/react/services.js +0 -47
  552. package/dist/browser/react/services.js.map +0 -1
  553. package/dist/browser/react/trash.js +0 -25
  554. package/dist/browser/react/trash.js.map +0 -1
  555. package/dist/browser/workers/FileDownloader.js +0 -52
  556. package/dist/browser/workers/FileDownloader.js.map +0 -1
  557. package/dist/browser/workers/ImageResizer.js +0 -63
  558. package/dist/browser/workers/ImageResizer.js.map +0 -1
  559. package/dist/browser/workers/filesDownload.js +0 -245
  560. package/dist/browser/workers/filesDownload.js.map +0 -1
  561. package/dist/browser/workers/imageResize.js +0 -382
  562. package/dist/browser/workers/imageResize.js.map +0 -1
  563. package/dist/client/ClientManager.js +0 -177
  564. package/dist/client/ClientManager.js.map +0 -1
  565. package/dist/client/actors/addModelsToDb.js +0 -150
  566. package/dist/client/actors/addModelsToDb.js.map +0 -1
  567. package/dist/client/actors/addModelsToStore.js +0 -28
  568. package/dist/client/actors/addModelsToStore.js.map +0 -1
  569. package/dist/client/actors/dbInit.js +0 -38
  570. package/dist/client/actors/dbInit.js.map +0 -1
  571. package/dist/client/actors/fileSystemInit.js +0 -43
  572. package/dist/client/actors/fileSystemInit.js.map +0 -1
  573. package/dist/client/actors/platformClassesInit.js +0 -175
  574. package/dist/client/actors/platformClassesInit.js.map +0 -1
  575. package/dist/client/actors/processSchemaFiles.js +0 -169
  576. package/dist/client/actors/processSchemaFiles.js.map +0 -1
  577. package/dist/client/actors/saveAppState.js +0 -80
  578. package/dist/client/actors/saveAppState.js.map +0 -1
  579. package/dist/client/actors/saveConfig.js +0 -110
  580. package/dist/client/actors/saveConfig.js.map +0 -1
  581. package/dist/client/clientManagerMachine.js +0 -191
  582. package/dist/client/clientManagerMachine.js.map +0 -1
  583. package/dist/client/constants.js +0 -80
  584. package/dist/client/constants.js.map +0 -1
  585. package/dist/db/Db/BaseDb.js +0 -55
  586. package/dist/db/Db/BaseDb.js.map +0 -1
  587. package/dist/db/read/getExistingItem.js +0 -33
  588. package/dist/db/read/getExistingItem.js.map +0 -1
  589. package/dist/db/read/getItem.js +0 -26
  590. package/dist/db/read/getItem.js.map +0 -1
  591. package/dist/db/read/getItemData.js +0 -88
  592. package/dist/db/read/getItemData.js.map +0 -1
  593. package/dist/db/read/getItemProperties.js +0 -53
  594. package/dist/db/read/getItemProperties.js.map +0 -1
  595. package/dist/db/read/getItemProperty.js +0 -34
  596. package/dist/db/read/getItemProperty.js.map +0 -1
  597. package/dist/db/read/getItems.js +0 -53
  598. package/dist/db/read/getItems.js.map +0 -1
  599. package/dist/db/read/getMetadata.js +0 -36
  600. package/dist/db/read/getMetadata.js.map +0 -1
  601. package/dist/db/read/getModelSchemas.js +0 -63
  602. package/dist/db/read/getModelSchemas.js.map +0 -1
  603. package/dist/db/read/getPropertyData.js +0 -42
  604. package/dist/db/read/getPropertyData.js.map +0 -1
  605. package/dist/db/read/getPublishPayload.js +0 -294
  606. package/dist/db/read/getPublishPayload.js.map +0 -1
  607. package/dist/db/read/getPublishUploads.js +0 -166
  608. package/dist/db/read/getPublishUploads.js.map +0 -1
  609. package/dist/db/read/getRelationValueData.js +0 -34
  610. package/dist/db/read/getRelationValueData.js.map +0 -1
  611. package/dist/db/read/getSchemaUidForModel.js +0 -28
  612. package/dist/db/read/getSchemaUidForModel.js.map +0 -1
  613. package/dist/db/read/getSeedData.js +0 -32
  614. package/dist/db/read/getSeedData.js.map +0 -1
  615. package/dist/db/read/getStorageTransactionIdForSeedUid.js +0 -34
  616. package/dist/db/read/getStorageTransactionIdForSeedUid.js.map +0 -1
  617. package/dist/db/read/getVersionData.js +0 -37
  618. package/dist/db/read/getVersionData.js.map +0 -1
  619. package/dist/db/read/subqueries/metadataLatest.js +0 -39
  620. package/dist/db/read/subqueries/metadataLatest.js.map +0 -1
  621. package/dist/db/read/subqueries/versionData.js +0 -31
  622. package/dist/db/read/subqueries/versionData.js.map +0 -1
  623. package/dist/db/write/createMetadata.js +0 -94
  624. package/dist/db/write/createMetadata.js.map +0 -1
  625. package/dist/db/write/createNewItem.js +0 -43
  626. package/dist/db/write/createNewItem.js.map +0 -1
  627. package/dist/db/write/createSeed.js +0 -32
  628. package/dist/db/write/createSeed.js.map +0 -1
  629. package/dist/db/write/createSeeds.js +0 -29
  630. package/dist/db/write/createSeeds.js.map +0 -1
  631. package/dist/db/write/createVersion.js +0 -29
  632. package/dist/db/write/createVersion.js.map +0 -1
  633. package/dist/db/write/deleteItem.js +0 -25
  634. package/dist/db/write/deleteItem.js.map +0 -1
  635. package/dist/db/write/saveAppState.js +0 -30
  636. package/dist/db/write/saveAppState.js.map +0 -1
  637. package/dist/db/write/saveMetadata.js +0 -26
  638. package/dist/db/write/saveMetadata.js.map +0 -1
  639. package/dist/db/write/updateItemPropertyValue.js +0 -165
  640. package/dist/db/write/updateItemPropertyValue.js.map +0 -1
  641. package/dist/db/write/updateMetadata.js +0 -38
  642. package/dist/db/write/updateMetadata.js.map +0 -1
  643. package/dist/eas.js +0 -176
  644. package/dist/eas.js.map +0 -1
  645. package/dist/eventBus.js +0 -6
  646. package/dist/eventBus.js.map +0 -1
  647. package/dist/events/files/download.js +0 -191
  648. package/dist/events/files/download.js.map +0 -1
  649. package/dist/events/files/index.js +0 -23
  650. package/dist/events/files/index.js.map +0 -1
  651. package/dist/events/index.js +0 -28
  652. package/dist/events/index.js.map +0 -1
  653. package/dist/events/item/index.js +0 -28
  654. package/dist/events/item/index.js.map +0 -1
  655. package/dist/events/item/publish.js +0 -50
  656. package/dist/events/item/publish.js.map +0 -1
  657. package/dist/events/item/syncDbWithEas.js +0 -453
  658. package/dist/events/item/syncDbWithEas.js.map +0 -1
  659. package/dist/events/services/allItems.js +0 -10
  660. package/dist/events/services/allItems.js.map +0 -1
  661. package/dist/events/services/index.js +0 -9
  662. package/dist/events/services/index.js.map +0 -1
  663. package/dist/feed.js +0 -534
  664. package/dist/feed.js.map +0 -1
  665. package/dist/graphql/gql/gql.js +0 -27
  666. package/dist/graphql/gql/gql.js.map +0 -1
  667. package/dist/graphql/gql/graphql.js +0 -129
  668. package/dist/graphql/gql/graphql.js.map +0 -1
  669. package/dist/helpers/ArweaveClient/BaseArweaveClient.js +0 -11
  670. package/dist/helpers/ArweaveClient/BaseArweaveClient.js.map +0 -1
  671. package/dist/helpers/ArweaveClient/index.js +0 -61
  672. package/dist/helpers/ArweaveClient/index.js.map +0 -1
  673. package/dist/helpers/ArweaveClient/queries.js +0 -16
  674. package/dist/helpers/ArweaveClient/queries.js.map +0 -1
  675. package/dist/helpers/EasClient/BaseEasClient.js +0 -20
  676. package/dist/helpers/EasClient/BaseEasClient.js.map +0 -1
  677. package/dist/helpers/FileManager/BaseFileManager.js +0 -119
  678. package/dist/helpers/FileManager/BaseFileManager.js.map +0 -1
  679. package/dist/helpers/PathResolver/BasePathResolver.js +0 -20
  680. package/dist/helpers/PathResolver/BasePathResolver.js.map +0 -1
  681. package/dist/helpers/QueryClient/BaseQueryClient.js +0 -11
  682. package/dist/helpers/QueryClient/BaseQueryClient.js.map +0 -1
  683. package/dist/helpers/constants.js +0 -107
  684. package/dist/helpers/constants.js.map +0 -1
  685. package/dist/helpers/crypto.js +0 -9
  686. package/dist/helpers/crypto.js.map +0 -1
  687. package/dist/helpers/db.js +0 -1335
  688. package/dist/helpers/db.js.map +0 -1
  689. package/dist/helpers/environment.js +0 -14
  690. package/dist/helpers/environment.js.map +0 -1
  691. package/dist/helpers/file/queries.js +0 -15
  692. package/dist/helpers/file/queries.js.map +0 -1
  693. package/dist/helpers/getSchemaForItemProperty.js +0 -65
  694. package/dist/helpers/getSchemaForItemProperty.js.map +0 -1
  695. package/dist/helpers/getSegmentedItemProperties.js +0 -71
  696. package/dist/helpers/getSegmentedItemProperties.js.map +0 -1
  697. package/dist/helpers/index.js +0 -101
  698. package/dist/helpers/index.js.map +0 -1
  699. package/dist/helpers/model.js +0 -24
  700. package/dist/helpers/model.js.map +0 -1
  701. package/dist/helpers/property/index.js +0 -110
  702. package/dist/helpers/property/index.js.map +0 -1
  703. package/dist/helpers/property.js +0 -286
  704. package/dist/helpers/property.js.map +0 -1
  705. package/dist/helpers/reactiveProxy.js +0 -87
  706. package/dist/helpers/reactiveProxy.js.map +0 -1
  707. package/dist/helpers/schema.js +0 -473
  708. package/dist/helpers/schema.js.map +0 -1
  709. package/dist/helpers/updateMachineContext.js +0 -20
  710. package/dist/helpers/updateMachineContext.js.map +0 -1
  711. package/dist/helpers/updateSchema.js +0 -721
  712. package/dist/helpers/updateSchema.js.map +0 -1
  713. package/dist/imports/json.js +0 -1129
  714. package/dist/imports/json.js.map +0 -1
  715. package/dist/imports/markdown.js +0 -141
  716. package/dist/imports/markdown.js.map +0 -1
  717. package/dist/node/codegen/drizzle.js +0 -136
  718. package/dist/node/codegen/drizzle.js.map +0 -1
  719. package/dist/node/codegen/templates/header.njk +0 -10
  720. package/dist/node/codegen/templates/index.njk +0 -27
  721. package/dist/node/codegen/templates/model.njk +0 -18
  722. package/dist/node/codegen/templates/relations.njk +0 -13
  723. package/dist/node/codegen/templates/schema.njk +0 -11
  724. package/dist/node/codegen/templates/table.njk +0 -43
  725. package/dist/node/db/Db.js +0 -332
  726. package/dist/node/db/Db.js.map +0 -1
  727. package/dist/node/helpers/ArweaveClient.js +0 -13
  728. package/dist/node/helpers/ArweaveClient.js.map +0 -1
  729. package/dist/node/helpers/EasClient.js +0 -16
  730. package/dist/node/helpers/EasClient.js.map +0 -1
  731. package/dist/node/helpers/FileManager.js +0 -151
  732. package/dist/node/helpers/FileManager.js.map +0 -1
  733. package/dist/node/helpers/PathResolver.js +0 -182
  734. package/dist/node/helpers/PathResolver.js.map +0 -1
  735. package/dist/node/helpers/QueryClient.js +0 -20
  736. package/dist/node/helpers/QueryClient.js.map +0 -1
  737. package/dist/node/helpers/index.js +0 -62
  738. package/dist/node/helpers/index.js.map +0 -1
  739. package/dist/node/helpers/scripts.js +0 -121
  740. package/dist/node/helpers/scripts.js.map +0 -1
  741. package/dist/node/webpack/index.js +0 -96
  742. package/dist/node/webpack/index.js.map +0 -1
  743. package/dist/node_modules/.bun/events@3.3.0/node_modules/events/events.d.ts +0 -31
  744. package/dist/node_modules/.bun/events@3.3.0/node_modules/events/events.d.ts.map +0 -1
  745. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/dist/js-yaml.d.mts +0 -90
  746. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/dist/js-yaml.d.mts.map +0 -1
  747. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/index.d.ts +0 -28
  748. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/index.d.ts.map +0 -1
  749. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/common.d.ts +0 -7
  750. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/common.d.ts.map +0 -1
  751. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/dumper.d.ts +0 -2
  752. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/dumper.d.ts.map +0 -1
  753. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/exception.d.ts +0 -12
  754. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/exception.d.ts.map +0 -1
  755. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/loader.d.ts +0 -3
  756. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/loader.d.ts.map +0 -1
  757. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/core.d.ts +0 -3
  758. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/core.d.ts.map +0 -1
  759. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/default.d.ts +0 -3
  760. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/default.d.ts.map +0 -1
  761. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/failsafe.d.ts +0 -4
  762. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/failsafe.d.ts.map +0 -1
  763. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/json.d.ts +0 -3
  764. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema/json.d.ts.map +0 -1
  765. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema.d.ts +0 -7
  766. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/schema.d.ts.map +0 -1
  767. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/snippet.d.ts +0 -3
  768. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/snippet.d.ts.map +0 -1
  769. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/binary.d.ts +0 -4
  770. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/binary.d.ts.map +0 -1
  771. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/bool.d.ts +0 -4
  772. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/bool.d.ts.map +0 -1
  773. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/float.d.ts +0 -4
  774. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/float.d.ts.map +0 -1
  775. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/int.d.ts +0 -4
  776. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/int.d.ts.map +0 -1
  777. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/map.d.ts +0 -4
  778. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/map.d.ts.map +0 -1
  779. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/merge.d.ts +0 -4
  780. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/merge.d.ts.map +0 -1
  781. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/null.d.ts +0 -4
  782. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/null.d.ts.map +0 -1
  783. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/omap.d.ts +0 -4
  784. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/omap.d.ts.map +0 -1
  785. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/pairs.d.ts +0 -4
  786. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/pairs.d.ts.map +0 -1
  787. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/seq.d.ts +0 -4
  788. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/seq.d.ts.map +0 -1
  789. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/set.d.ts +0 -4
  790. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/set.d.ts.map +0 -1
  791. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/str.d.ts +0 -4
  792. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/str.d.ts.map +0 -1
  793. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/timestamp.d.ts +0 -4
  794. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type/timestamp.d.ts.map +0 -1
  795. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type.d.ts +0 -18
  796. package/dist/node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/lib/type.d.ts.map +0 -1
  797. package/dist/node_modules/.bun/process@0.11.10/node_modules/process/index.d.ts +0 -3
  798. package/dist/node_modules/.bun/process@0.11.10/node_modules/process/index.d.ts.map +0 -1
  799. package/dist/node_modules/.bun/punycode@1.4.1/node_modules/punycode/punycode.d.ts +0 -1
  800. package/dist/node_modules/.bun/punycode@1.4.1/node_modules/punycode/punycode.d.ts.map +0 -1
  801. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/add-abort-signal.d.ts +0 -3
  802. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/add-abort-signal.d.ts.map +0 -1
  803. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/buffer_list.d.ts +0 -19
  804. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/buffer_list.d.ts.map +0 -1
  805. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/compose.d.ts +0 -3
  806. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/compose.d.ts.map +0 -1
  807. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/destroy.d.ts +0 -6
  808. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/destroy.d.ts.map +0 -1
  809. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/duplex.d.ts +0 -12
  810. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/duplex.d.ts.map +0 -1
  811. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/duplexify.d.ts +0 -3
  812. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/duplexify.d.ts.map +0 -1
  813. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/end-of-stream.d.ts +0 -7
  814. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/end-of-stream.d.ts.map +0 -1
  815. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/from.d.ts +0 -3
  816. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/from.d.ts.map +0 -1
  817. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/legacy.d.ts +0 -7
  818. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/legacy.d.ts.map +0 -1
  819. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/operators.d.ts +0 -31
  820. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/operators.d.ts.map +0 -1
  821. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/passthrough.d.ts +0 -7
  822. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/passthrough.d.ts.map +0 -1
  823. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/pipeline.d.ts +0 -3
  824. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/pipeline.d.ts.map +0 -1
  825. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/readable.d.ts +0 -55
  826. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/readable.d.ts.map +0 -1
  827. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/state.d.ts +0 -4
  828. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/state.d.ts.map +0 -1
  829. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/transform.d.ts +0 -12
  830. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/transform.d.ts.map +0 -1
  831. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/utils.d.ts +0 -33
  832. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/utils.d.ts.map +0 -1
  833. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/writable.d.ts +0 -59
  834. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/streams/writable.d.ts.map +0 -1
  835. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/validators.d.ts +0 -199
  836. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/internal/validators.d.ts.map +0 -1
  837. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/errors.d.ts +0 -8
  838. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/errors.d.ts.map +0 -1
  839. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/index.d.ts +0 -2
  840. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/index.d.ts.map +0 -1
  841. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/primordials.d.ts +0 -51
  842. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/primordials.d.ts.map +0 -1
  843. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/util/inspect.d.ts +0 -3
  844. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/util/inspect.d.ts.map +0 -1
  845. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/util.d.ts +0 -22
  846. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/ours/util.d.ts.map +0 -1
  847. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/stream/promises.d.ts +0 -4
  848. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/stream/promises.d.ts.map +0 -1
  849. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/stream.d.ts +0 -3
  850. package/dist/node_modules/.bun/readable-stream@4.7.0/node_modules/readable-stream/lib/stream.d.ts.map +0 -1
  851. package/dist/node_modules/.bun/string_decoder@1.3.0/node_modules/string_decoder/lib/string_decoder.d.ts +0 -33
  852. package/dist/node_modules/.bun/string_decoder@1.3.0/node_modules/string_decoder/lib/string_decoder.d.ts.map +0 -1
  853. package/dist/node_modules/.bun/url@0.11.4/node_modules/url/url.d.ts +0 -26
  854. package/dist/node_modules/.bun/url@0.11.4/node_modules/url/url.d.ts.map +0 -1
  855. package/dist/scripts/build-with-tests.d.ts +0 -3
  856. package/dist/scripts/build-with-tests.d.ts.map +0 -1
  857. package/dist/scripts/rpcServer.cursor.d.ts +0 -2
  858. package/dist/scripts/rpcServer.cursor.d.ts.map +0 -1
  859. package/dist/scripts/rpcServer.d.ts +0 -3
  860. package/dist/scripts/rpcServer.d.ts.map +0 -1
  861. package/dist/scripts/sync-versions.d.ts +0 -7
  862. package/dist/scripts/sync-versions.d.ts.map +0 -1
  863. package/dist/scripts/track-drizzle-changes.d.ts +0 -13
  864. package/dist/scripts/track-drizzle-changes.d.ts.map +0 -1
  865. package/dist/scripts/vite.config.d.ts +0 -3
  866. package/dist/scripts/vite.config.d.ts.map +0 -1
  867. package/dist/seedSchema/AppStateSchema.js +0 -11
  868. package/dist/seedSchema/AppStateSchema.js.map +0 -1
  869. package/dist/seedSchema/ConfigSchema.js +0 -12
  870. package/dist/seedSchema/ConfigSchema.js.map +0 -1
  871. package/dist/seedSchema/MetadataSchema.js +0 -29
  872. package/dist/seedSchema/MetadataSchema.js.map +0 -1
  873. package/dist/seedSchema/ModelSchema.js +0 -40
  874. package/dist/seedSchema/ModelSchema.js.map +0 -1
  875. package/dist/seedSchema/ModelSchemaSchema.js +0 -12
  876. package/dist/seedSchema/ModelSchemaSchema.js.map +0 -1
  877. package/dist/seedSchema/ModelUidSchema.js +0 -18
  878. package/dist/seedSchema/ModelUidSchema.js.map +0 -1
  879. package/dist/seedSchema/PropertyUidSchema.js +0 -18
  880. package/dist/seedSchema/PropertyUidSchema.js.map +0 -1
  881. package/dist/seedSchema/SEEDPROTOCOL_Seed_Protocol_v1.json.js +0 -94
  882. package/dist/seedSchema/SEEDPROTOCOL_Seed_Protocol_v1.json.js.map +0 -1
  883. package/dist/seedSchema/SchemaSchema.js +0 -20
  884. package/dist/seedSchema/SchemaSchema.js.map +0 -1
  885. package/dist/seedSchema/SeedSchema.js +0 -16
  886. package/dist/seedSchema/SeedSchema.js.map +0 -1
  887. package/dist/seedSchema/VersionSchema.js +0 -17
  888. package/dist/seedSchema/VersionSchema.js.map +0 -1
  889. package/dist/seedSchema/index.js +0 -11
  890. package/dist/seedSchema/index.js.map +0 -1
  891. package/dist/services/events.js +0 -16
  892. package/dist/services/events.js.map +0 -1
  893. package/dist/services/publish/actors/createPublishAttempt.js +0 -14
  894. package/dist/services/publish/actors/createPublishAttempt.js.map +0 -1
  895. package/dist/services/publish/actors/preparePublishRequestData.js +0 -76
  896. package/dist/services/publish/actors/preparePublishRequestData.js.map +0 -1
  897. package/dist/services/publish/actors/upload.js +0 -61
  898. package/dist/services/publish/actors/upload.js.map +0 -1
  899. package/dist/services/publish/actors/validateItemData.js +0 -18
  900. package/dist/services/publish/actors/validateItemData.js.map +0 -1
  901. package/dist/services/publish/publishMachine.js +0 -71
  902. package/dist/services/publish/publishMachine.js.map +0 -1
  903. package/dist/services/write/actors/validateEntity.js +0 -145
  904. package/dist/services/write/actors/validateEntity.js.map +0 -1
  905. package/dist/services/write/actors/writeToDatabase.js +0 -91
  906. package/dist/services/write/actors/writeToDatabase.js.map +0 -1
  907. package/dist/services/write/writeProcessMachine.js +0 -233
  908. package/dist/services/write/writeProcessMachine.js.map +0 -1
  909. package/dist/src/Item/Item.d.ts +0 -94
  910. package/dist/src/Item/Item.d.ts.map +0 -1
  911. package/dist/src/Item/queries.d.ts.map +0 -1
  912. package/dist/src/Item/service/actors/fetchDataFromEas.d.ts +0 -2
  913. package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
  914. package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
  915. package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
  916. package/dist/src/Item/service/actors/initialize.d.ts.map +0 -1
  917. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +0 -1
  918. package/dist/src/Item/service/actors/reload.d.ts.map +0 -1
  919. package/dist/src/Item/service/actors/saveDataToDb.d.ts +0 -3
  920. package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +0 -1
  921. package/dist/src/Item/service/actors/waitForDb.d.ts.map +0 -1
  922. package/dist/src/Item/service/itemMachineSingle.d.ts +0 -2
  923. package/dist/src/Item/service/itemMachineSingle.d.ts.map +0 -1
  924. package/dist/src/ItemProperty/ItemProperty.d.ts +0 -67
  925. package/dist/src/ItemProperty/ItemProperty.d.ts.map +0 -1
  926. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +0 -1
  927. package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +0 -1
  928. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +0 -1
  929. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +0 -1
  930. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
  931. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
  932. package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
  933. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +0 -1
  934. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
  935. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +0 -1
  936. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
  937. package/dist/src/ItemProperty/service/propertyMachine.d.ts +0 -48
  938. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +0 -1
  939. package/dist/src/Model/Model.d.ts +0 -199
  940. package/dist/src/Model/Model.d.ts.map +0 -1
  941. package/dist/src/Model/index.d.ts +0 -26
  942. package/dist/src/Model/index.d.ts.map +0 -1
  943. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +0 -1
  944. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +0 -1
  945. package/dist/src/Model/service/actors/validateModel.d.ts.map +0 -1
  946. package/dist/src/Model/service/modelMachine.d.ts +0 -206
  947. package/dist/src/Model/service/modelMachine.d.ts.map +0 -1
  948. package/dist/src/ModelProperty/ModelProperty.d.ts +0 -112
  949. package/dist/src/ModelProperty/ModelProperty.d.ts.map +0 -1
  950. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +0 -1
  951. package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +0 -1
  952. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +0 -1
  953. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +0 -183
  954. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +0 -1
  955. package/dist/src/Schema/Schema.d.ts +0 -143
  956. package/dist/src/Schema/Schema.d.ts.map +0 -1
  957. package/dist/src/Schema/errors.d.ts.map +0 -1
  958. package/dist/src/Schema/index.d.ts.map +0 -1
  959. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +0 -1
  960. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +0 -1
  961. package/dist/src/Schema/service/actors/createPropertyInstances.d.ts.map +0 -1
  962. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +0 -1
  963. package/dist/src/Schema/service/actors/validateSchema.d.ts.map +0 -1
  964. package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +0 -1
  965. package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts.map +0 -1
  966. package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts.map +0 -1
  967. package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +0 -1
  968. package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts.map +0 -1
  969. package/dist/src/Schema/service/actors/writeModelsToDb.d.ts.map +0 -1
  970. package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts.map +0 -1
  971. package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts.map +0 -1
  972. package/dist/src/Schema/service/addModelsMachine.d.ts +0 -111
  973. package/dist/src/Schema/service/addModelsMachine.d.ts.map +0 -1
  974. package/dist/src/Schema/service/schemaMachine.d.ts +0 -494
  975. package/dist/src/Schema/service/schemaMachine.d.ts.map +0 -1
  976. package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +0 -1
  977. package/dist/src/Schema/validation.d.ts.map +0 -1
  978. package/dist/src/browser/db/Db.d.ts.map +0 -1
  979. package/dist/src/browser/db/drizzleFiles.d.ts.map +0 -1
  980. package/dist/src/browser/db/sqlWasmClient.d.ts.map +0 -1
  981. package/dist/src/browser/helpers/ArweaveClient.d.ts +0 -7
  982. package/dist/src/browser/helpers/ArweaveClient.d.ts.map +0 -1
  983. package/dist/src/browser/helpers/EasClient.d.ts.map +0 -1
  984. package/dist/src/browser/helpers/FileManager.d.ts.map +0 -1
  985. package/dist/src/browser/helpers/PathResolver.d.ts.map +0 -1
  986. package/dist/src/browser/helpers/QueryClient.d.ts.map +0 -1
  987. package/dist/src/browser/helpers/index.d.ts +0 -2
  988. package/dist/src/browser/helpers/index.d.ts.map +0 -1
  989. package/dist/src/browser/index.d.ts +0 -6
  990. package/dist/src/browser/index.d.ts.map +0 -1
  991. package/dist/src/browser/react/OPFSImage.d.ts.map +0 -1
  992. package/dist/src/browser/react/SeedImage.d.ts.map +0 -1
  993. package/dist/src/browser/react/client.d.ts.map +0 -1
  994. package/dist/src/browser/react/db.d.ts.map +0 -1
  995. package/dist/src/browser/react/index.d.ts +0 -10
  996. package/dist/src/browser/react/index.d.ts.map +0 -1
  997. package/dist/src/browser/react/item.d.ts +0 -41
  998. package/dist/src/browser/react/item.d.ts.map +0 -1
  999. package/dist/src/browser/react/itemProperty.d.ts +0 -57
  1000. package/dist/src/browser/react/itemProperty.d.ts.map +0 -1
  1001. package/dist/src/browser/react/liveQuery.d.ts.map +0 -1
  1002. package/dist/src/browser/react/model.d.ts +0 -34
  1003. package/dist/src/browser/react/model.d.ts.map +0 -1
  1004. package/dist/src/browser/react/modelProperty.d.ts +0 -59
  1005. package/dist/src/browser/react/modelProperty.d.ts.map +0 -1
  1006. package/dist/src/browser/react/schema.d.ts +0 -37
  1007. package/dist/src/browser/react/schema.d.ts.map +0 -1
  1008. package/dist/src/browser/react/services.d.ts.map +0 -1
  1009. package/dist/src/browser/react/trash.d.ts +0 -6
  1010. package/dist/src/browser/react/trash.d.ts.map +0 -1
  1011. package/dist/src/browser/seed.d.ts +0 -10
  1012. package/dist/src/browser/seed.d.ts.map +0 -1
  1013. package/dist/src/browser/workers/FileDownloader.d.ts.map +0 -1
  1014. package/dist/src/browser/workers/ImageResizer.d.ts.map +0 -1
  1015. package/dist/src/browser/workers/content-hash.d.ts.map +0 -1
  1016. package/dist/src/browser/workers/dbWorker.d.ts.map +0 -1
  1017. package/dist/src/browser/workers/filesDownload.d.ts.map +0 -1
  1018. package/dist/src/browser/workers/imageResize.d.ts.map +0 -1
  1019. package/dist/src/client/BaseClientManager.d.ts.map +0 -1
  1020. package/dist/src/client/ClientManager.d.ts.map +0 -1
  1021. package/dist/src/client/actions/setAddresses.d.ts.map +0 -1
  1022. package/dist/src/client/actors/addModelsToDb.d.ts.map +0 -1
  1023. package/dist/src/client/actors/addModelsToStore.d.ts.map +0 -1
  1024. package/dist/src/client/actors/dbInit.d.ts.map +0 -1
  1025. package/dist/src/client/actors/fileSystemInit.d.ts.map +0 -1
  1026. package/dist/src/client/actors/platformClassesInit.d.ts.map +0 -1
  1027. package/dist/src/client/actors/processSchemaFiles.d.ts.map +0 -1
  1028. package/dist/src/client/actors/saveAppState.d.ts.map +0 -1
  1029. package/dist/src/client/actors/saveConfig.d.ts.map +0 -1
  1030. package/dist/src/client/clientManagerMachine.d.ts.map +0 -1
  1031. package/dist/src/client/constants.d.ts +0 -79
  1032. package/dist/src/client/constants.d.ts.map +0 -1
  1033. package/dist/src/client/index.d.ts.map +0 -1
  1034. package/dist/src/db/Db/BaseDb.d.ts +0 -43
  1035. package/dist/src/db/Db/BaseDb.d.ts.map +0 -1
  1036. package/dist/src/db/configs/dev.schema.config.d.ts.map +0 -1
  1037. package/dist/src/db/read/getExistingItem.d.ts +0 -12
  1038. package/dist/src/db/read/getExistingItem.d.ts.map +0 -1
  1039. package/dist/src/db/read/getItem.d.ts.map +0 -1
  1040. package/dist/src/db/read/getItemData.d.ts.map +0 -1
  1041. package/dist/src/db/read/getItemProperties.d.ts.map +0 -1
  1042. package/dist/src/db/read/getItemProperty.d.ts.map +0 -1
  1043. package/dist/src/db/read/getItems.d.ts.map +0 -1
  1044. package/dist/src/db/read/getMetadata.d.ts.map +0 -1
  1045. package/dist/src/db/read/getModelSchemas.d.ts.map +0 -1
  1046. package/dist/src/db/read/getModels.d.ts.map +0 -1
  1047. package/dist/src/db/read/getPropertyData.d.ts.map +0 -1
  1048. package/dist/src/db/read/getPublishPayload.d.ts.map +0 -1
  1049. package/dist/src/db/read/getPublishUploads.d.ts +0 -16
  1050. package/dist/src/db/read/getPublishUploads.d.ts.map +0 -1
  1051. package/dist/src/db/read/getRelationValueData.d.ts.map +0 -1
  1052. package/dist/src/db/read/getSchemaUidForModel.d.ts.map +0 -1
  1053. package/dist/src/db/read/getSeedData.d.ts.map +0 -1
  1054. package/dist/src/db/read/getStorageTransactionIdForSeedUid.d.ts.map +0 -1
  1055. package/dist/src/db/read/getVersionData.d.ts.map +0 -1
  1056. package/dist/src/db/read/getVersionsForVersionUids.d.ts.map +0 -1
  1057. package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +0 -1
  1058. package/dist/src/db/read/subqueries/versionData.d.ts.map +0 -1
  1059. package/dist/src/db/write/createMetadata.d.ts.map +0 -1
  1060. package/dist/src/db/write/createNewItem.d.ts.map +0 -1
  1061. package/dist/src/db/write/createSeed.d.ts.map +0 -1
  1062. package/dist/src/db/write/createSeeds.d.ts.map +0 -1
  1063. package/dist/src/db/write/createVersion.d.ts.map +0 -1
  1064. package/dist/src/db/write/deleteItem.d.ts.map +0 -1
  1065. package/dist/src/db/write/recoverDeletedItem.d.ts.map +0 -1
  1066. package/dist/src/db/write/saveAppState.d.ts.map +0 -1
  1067. package/dist/src/db/write/saveMetadata.d.ts.map +0 -1
  1068. package/dist/src/db/write/updateItemPropertyValue.d.ts +0 -9
  1069. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +0 -1
  1070. package/dist/src/db/write/updateMetadata.d.ts.map +0 -1
  1071. package/dist/src/eas.d.ts.map +0 -1
  1072. package/dist/src/eslint-rules/align-imports.d.ts.map +0 -1
  1073. package/dist/src/eventBus.d.ts.map +0 -1
  1074. package/dist/src/events/files/download.d.ts +0 -6
  1075. package/dist/src/events/files/download.d.ts.map +0 -1
  1076. package/dist/src/events/files/index.d.ts.map +0 -1
  1077. package/dist/src/events/index.d.ts.map +0 -1
  1078. package/dist/src/events/item/create.d.ts +0 -2
  1079. package/dist/src/events/item/create.d.ts.map +0 -1
  1080. package/dist/src/events/item/index.d.ts +0 -3
  1081. package/dist/src/events/item/index.d.ts.map +0 -1
  1082. package/dist/src/events/item/publish.d.ts +0 -7
  1083. package/dist/src/events/item/publish.d.ts.map +0 -1
  1084. package/dist/src/events/item/request.d.ts +0 -2
  1085. package/dist/src/events/item/request.d.ts.map +0 -1
  1086. package/dist/src/events/item/requestAll.d.ts +0 -9
  1087. package/dist/src/events/item/requestAll.d.ts.map +0 -1
  1088. package/dist/src/events/item/syncDbWithEas.d.ts.map +0 -1
  1089. package/dist/src/events/services/allItems.d.ts.map +0 -1
  1090. package/dist/src/events/services/index.d.ts.map +0 -1
  1091. package/dist/src/feed.d.ts.map +0 -1
  1092. package/dist/src/graphql/fragments/Attestation.d.ts.map +0 -1
  1093. package/dist/src/graphql/fragments/Schema.d.ts.map +0 -1
  1094. package/dist/src/graphql/fragments/index.d.ts.map +0 -1
  1095. package/dist/src/graphql/gql/fragment-masking.d.ts.map +0 -1
  1096. package/dist/src/graphql/gql/gql.d.ts.map +0 -1
  1097. package/dist/src/graphql/gql/graphql.d.ts.map +0 -1
  1098. package/dist/src/graphql/gql/index.d.ts.map +0 -1
  1099. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts +0 -7
  1100. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
  1101. package/dist/src/helpers/ArweaveClient/index.d.ts +0 -9
  1102. package/dist/src/helpers/ArweaveClient/index.d.ts.map +0 -1
  1103. package/dist/src/helpers/ArweaveClient/queries.d.ts +0 -6
  1104. package/dist/src/helpers/ArweaveClient/queries.d.ts.map +0 -1
  1105. package/dist/src/helpers/EasClient/BaseEasClient.d.ts +0 -10
  1106. package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
  1107. package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +0 -1
  1108. package/dist/src/helpers/PathResolver/BasePathResolver.d.ts.map +0 -1
  1109. package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
  1110. package/dist/src/helpers/constants.d.ts +0 -58
  1111. package/dist/src/helpers/constants.d.ts.map +0 -1
  1112. package/dist/src/helpers/crypto.d.ts.map +0 -1
  1113. package/dist/src/helpers/db.d.ts +0 -119
  1114. package/dist/src/helpers/db.d.ts.map +0 -1
  1115. package/dist/src/helpers/environment.d.ts.map +0 -1
  1116. package/dist/src/helpers/file/download/actors.d.ts +0 -3
  1117. package/dist/src/helpers/file/download/actors.d.ts.map +0 -1
  1118. package/dist/src/helpers/file/download/index.d.ts +0 -2
  1119. package/dist/src/helpers/file/download/index.d.ts.map +0 -1
  1120. package/dist/src/helpers/file/fetchAll/actors.d.ts +0 -3
  1121. package/dist/src/helpers/file/fetchAll/actors.d.ts.map +0 -1
  1122. package/dist/src/helpers/file/fetchAll/index.d.ts +0 -2
  1123. package/dist/src/helpers/file/fetchAll/index.d.ts.map +0 -1
  1124. package/dist/src/helpers/file/queries.d.ts.map +0 -1
  1125. package/dist/src/helpers/files.d.ts.map +0 -1
  1126. package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +0 -1
  1127. package/dist/src/helpers/getSegmentedItemProperties.d.ts +0 -10
  1128. package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +0 -1
  1129. package/dist/src/helpers/image/queries.d.ts.map +0 -1
  1130. package/dist/src/helpers/index.d.ts +0 -27
  1131. package/dist/src/helpers/index.d.ts.map +0 -1
  1132. package/dist/src/helpers/model.d.ts.map +0 -1
  1133. package/dist/src/helpers/property/index.d.ts +0 -298
  1134. package/dist/src/helpers/property/index.d.ts.map +0 -1
  1135. package/dist/src/helpers/property.d.ts.map +0 -1
  1136. package/dist/src/helpers/reactiveProxy.d.ts.map +0 -1
  1137. package/dist/src/helpers/schema.d.ts.map +0 -1
  1138. package/dist/src/helpers/updateMachineContext.d.ts.map +0 -1
  1139. package/dist/src/helpers/updateSchema.d.ts +0 -109
  1140. package/dist/src/helpers/updateSchema.d.ts.map +0 -1
  1141. package/dist/src/imports/index.d.ts +0 -3
  1142. package/dist/src/imports/index.d.ts.map +0 -1
  1143. package/dist/src/imports/json.d.ts.map +0 -1
  1144. package/dist/src/imports/markdown.d.ts.map +0 -1
  1145. package/dist/src/index.d.ts +0 -25
  1146. package/dist/src/index.d.ts.map +0 -1
  1147. package/dist/src/interfaces/IDb.d.ts.map +0 -1
  1148. package/dist/src/interfaces/IEasClient.d.ts.map +0 -1
  1149. package/dist/src/interfaces/IItem.d.ts +0 -27
  1150. package/dist/src/interfaces/IItem.d.ts.map +0 -1
  1151. package/dist/src/interfaces/IItemProperty.d.ts +0 -32
  1152. package/dist/src/interfaces/IItemProperty.d.ts.map +0 -1
  1153. package/dist/src/interfaces/IQueryClient.d.ts.map +0 -1
  1154. package/dist/src/interfaces/index.d.ts.map +0 -1
  1155. package/dist/src/node/codegen/drizzle.d.ts.map +0 -1
  1156. package/dist/src/node/codegen/index.d.ts.map +0 -1
  1157. package/dist/src/node/codegen/ts-to-proto.d.ts.map +0 -1
  1158. package/dist/src/node/constants.d.ts.map +0 -1
  1159. package/dist/src/node/db/Db.d.ts.map +0 -1
  1160. package/dist/src/node/db/index.d.ts.map +0 -1
  1161. package/dist/src/node/db/node.app.db.config.d.ts.map +0 -1
  1162. package/dist/src/node/helpers/ArweaveClient.d.ts +0 -7
  1163. package/dist/src/node/helpers/ArweaveClient.d.ts.map +0 -1
  1164. package/dist/src/node/helpers/EasClient.d.ts.map +0 -1
  1165. package/dist/src/node/helpers/FileManager.d.ts.map +0 -1
  1166. package/dist/src/node/helpers/PathResolver.d.ts.map +0 -1
  1167. package/dist/src/node/helpers/QueryClient.d.ts.map +0 -1
  1168. package/dist/src/node/helpers/index.d.ts.map +0 -1
  1169. package/dist/src/node/helpers/scripts.d.ts.map +0 -1
  1170. package/dist/src/node/index.d.ts +0 -25
  1171. package/dist/src/node/index.d.ts.map +0 -1
  1172. package/dist/src/node/seed.d.ts.map +0 -1
  1173. package/dist/src/node/webpack/fs-proxy.d.ts.map +0 -1
  1174. package/dist/src/node/webpack/index.d.ts.map +0 -1
  1175. package/dist/src/seedSchema/AppStateSchema.d.ts.map +0 -1
  1176. package/dist/src/seedSchema/ConfigSchema.d.ts.map +0 -1
  1177. package/dist/src/seedSchema/MetadataSchema.d.ts.map +0 -1
  1178. package/dist/src/seedSchema/ModelSchema.d.ts.map +0 -1
  1179. package/dist/src/seedSchema/ModelSchemaSchema.d.ts.map +0 -1
  1180. package/dist/src/seedSchema/ModelUidSchema.d.ts.map +0 -1
  1181. package/dist/src/seedSchema/PropertyUidSchema.d.ts.map +0 -1
  1182. package/dist/src/seedSchema/SchemaSchema.d.ts.map +0 -1
  1183. package/dist/src/seedSchema/SeedSchema.d.ts.map +0 -1
  1184. package/dist/src/seedSchema/VersionSchema.d.ts.map +0 -1
  1185. package/dist/src/seedSchema/index.d.ts +0 -11
  1186. package/dist/src/seedSchema/index.d.ts.map +0 -1
  1187. package/dist/src/services/events.d.ts.map +0 -1
  1188. package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
  1189. package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
  1190. package/dist/src/services/publish/actors/upload.d.ts.map +0 -1
  1191. package/dist/src/services/publish/actors/validateItemData.d.ts.map +0 -1
  1192. package/dist/src/services/publish/publishMachine.d.ts.map +0 -1
  1193. package/dist/src/services/write/actors/validateEntity.d.ts +0 -12
  1194. package/dist/src/services/write/actors/validateEntity.d.ts.map +0 -1
  1195. package/dist/src/services/write/actors/writeToDatabase.d.ts.map +0 -1
  1196. package/dist/src/services/write/writeProcessMachine.d.ts +0 -84
  1197. package/dist/src/services/write/writeProcessMachine.d.ts.map +0 -1
  1198. package/dist/src/stores/eas.d.ts.map +0 -1
  1199. package/dist/src/types/browser.d.ts.map +0 -1
  1200. package/dist/src/types/db.d.ts.map +0 -1
  1201. package/dist/src/types/fileManager.d.ts.map +0 -1
  1202. package/dist/src/types/helpers.d.ts.map +0 -1
  1203. package/dist/src/types/import.d.ts.map +0 -1
  1204. package/dist/src/types/index.d.ts +0 -43
  1205. package/dist/src/types/index.d.ts.map +0 -1
  1206. package/dist/src/types/item.d.ts +0 -68
  1207. package/dist/src/types/item.d.ts.map +0 -1
  1208. package/dist/src/types/machines.d.ts.map +0 -1
  1209. package/dist/src/types/model.d.ts.map +0 -1
  1210. package/dist/src/types/property.d.ts +0 -49
  1211. package/dist/src/types/property.d.ts.map +0 -1
  1212. package/dist/src/types/seedProtocol.d.ts.map +0 -1
  1213. package/dist/src/types/services.d.ts.map +0 -1
  1214. package/dist/src/vite/index.d.ts +0 -47
  1215. package/dist/src/vite/index.d.ts.map +0 -1
  1216. package/dist/stores/eas.js +0 -23
  1217. package/dist/stores/eas.js.map +0 -1
  1218. package/dist/vite/index.js +0 -568
  1219. package/dist/vite/index.js.map +0 -1
  1220. /package/dist/{src/Item → Item}/queries.d.ts +0 -0
  1221. /package/dist/{src/Item → Item}/service/actors/hydrateExistingItem.d.ts +0 -0
  1222. /package/dist/{src/Item → Item}/service/actors/hydrateNewItem.d.ts +0 -0
  1223. /package/dist/{src/Item → Item}/service/actors/initialize.d.ts +0 -0
  1224. /package/dist/{src/Item → Item}/service/actors/loadOrCreateItem.d.ts +0 -0
  1225. /package/dist/{src/Item → Item}/service/actors/reload.d.ts +0 -0
  1226. /package/dist/{src/Item → Item}/service/actors/waitForDb.d.ts +0 -0
  1227. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/hydrateFromDb.d.ts +0 -0
  1228. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/initialize.d.ts +0 -0
  1229. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/loadOrCreateProperty.d.ts +0 -0
  1230. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/resolveRelatedValue.d.ts +0 -0
  1231. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/resolveRemoteStorage.d.ts +0 -0
  1232. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/saveValueToDb/analyzeInput.d.ts +0 -0
  1233. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/saveValueToDb/index.d.ts +0 -0
  1234. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/saveValueToDb/saveImage.d.ts +0 -0
  1235. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -0
  1236. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/saveValueToDb/saveRelation.d.ts +0 -0
  1237. /package/dist/{src/ItemProperty → ItemProperty}/service/actors/waitForDb.d.ts +0 -0
  1238. /package/dist/{src/Model → Model}/service/actors/createModelProperties.d.ts +0 -0
  1239. /package/dist/{src/Model → Model}/service/actors/loadOrCreateModel.d.ts +0 -0
  1240. /package/dist/{src/Model → Model}/service/actors/validateModel.d.ts +0 -0
  1241. /package/dist/{src/ModelProperty → ModelProperty}/service/actors/compareAndMarkDraft.d.ts +0 -0
  1242. /package/dist/{src/ModelProperty → ModelProperty}/service/actors/saveToSchema.d.ts +0 -0
  1243. /package/dist/{src/ModelProperty → ModelProperty}/service/actors/validateProperty.d.ts +0 -0
  1244. /package/dist/{src/Schema → Schema}/errors.d.ts +0 -0
  1245. /package/dist/{src/Schema → Schema}/index.d.ts +0 -0
  1246. /package/dist/{src/Schema → Schema}/service/actors/checkExistingSchema.d.ts +0 -0
  1247. /package/dist/{src/Schema → Schema}/service/actors/createModelInstances.d.ts +0 -0
  1248. /package/dist/{src/Schema → Schema}/service/actors/createPropertyInstances.d.ts +0 -0
  1249. /package/dist/{src/Schema → Schema}/service/actors/loadOrCreateSchema.d.ts +0 -0
  1250. /package/dist/{src/Schema → Schema}/service/actors/validateSchema.d.ts +0 -0
  1251. /package/dist/{src/Schema → Schema}/service/actors/verifyModelInstancesInCache.d.ts +0 -0
  1252. /package/dist/{src/Schema → Schema}/service/actors/verifyModelsInDb.d.ts +0 -0
  1253. /package/dist/{src/Schema → Schema}/service/actors/verifyPropertiesInDb.d.ts +0 -0
  1254. /package/dist/{src/Schema → Schema}/service/actors/verifyPropertyInstancesInCache.d.ts +0 -0
  1255. /package/dist/{src/Schema → Schema}/service/actors/verifySchemaInDb.d.ts +0 -0
  1256. /package/dist/{src/Schema → Schema}/service/actors/writeModelsToDb.d.ts +0 -0
  1257. /package/dist/{src/Schema → Schema}/service/actors/writePropertiesToDb.d.ts +0 -0
  1258. /package/dist/{src/Schema → Schema}/service/actors/writeSchemaToDb.d.ts +0 -0
  1259. /package/dist/{src/Schema → Schema}/service/validation/SchemaValidationService.d.ts +0 -0
  1260. /package/dist/{src/Schema → Schema}/validation.d.ts +0 -0
  1261. /package/dist/{src/browser → browser}/db/Db.d.ts +0 -0
  1262. /package/dist/{src/browser → browser}/db/drizzleFiles.d.ts +0 -0
  1263. /package/dist/{src/browser → browser}/db/sqlWasmClient.d.ts +0 -0
  1264. /package/dist/{src/browser → browser}/helpers/EasClient.d.ts +0 -0
  1265. /package/dist/{src/browser → browser}/helpers/FileManager.d.ts +0 -0
  1266. /package/dist/{src/browser → browser}/helpers/PathResolver.d.ts +0 -0
  1267. /package/dist/{src/browser → browser}/helpers/QueryClient.d.ts +0 -0
  1268. /package/dist/{src/browser → browser}/react/OPFSImage.d.ts +0 -0
  1269. /package/dist/{src/browser → browser}/react/SeedImage.d.ts +0 -0
  1270. /package/dist/{src/browser → browser}/react/client.d.ts +0 -0
  1271. /package/dist/{src/browser → browser}/react/db.d.ts +0 -0
  1272. /package/dist/{src/browser → browser}/react/liveQuery.d.ts +0 -0
  1273. /package/dist/{src/browser → browser}/react/services.d.ts +0 -0
  1274. /package/dist/{src/browser → browser}/workers/FileDownloader.d.ts +0 -0
  1275. /package/dist/{src/browser → browser}/workers/ImageResizer.d.ts +0 -0
  1276. /package/dist/{src/browser → browser}/workers/content-hash.d.ts +0 -0
  1277. /package/dist/{src/browser → browser}/workers/dbWorker.d.ts +0 -0
  1278. /package/dist/{src/browser → browser}/workers/filesDownload.d.ts +0 -0
  1279. /package/dist/{src/browser → browser}/workers/imageResize.d.ts +0 -0
  1280. /package/dist/{src/client → client}/BaseClientManager.d.ts +0 -0
  1281. /package/dist/{src/client → client}/ClientManager.d.ts +0 -0
  1282. /package/dist/{src/client → client}/actions/setAddresses.d.ts +0 -0
  1283. /package/dist/{src/client → client}/actors/addModelsToDb.d.ts +0 -0
  1284. /package/dist/{src/client → client}/actors/addModelsToStore.d.ts +0 -0
  1285. /package/dist/{src/client → client}/actors/dbInit.d.ts +0 -0
  1286. /package/dist/{src/client → client}/actors/fileSystemInit.d.ts +0 -0
  1287. /package/dist/{src/client → client}/actors/platformClassesInit.d.ts +0 -0
  1288. /package/dist/{src/client → client}/actors/processSchemaFiles.d.ts +0 -0
  1289. /package/dist/{src/client → client}/actors/saveAppState.d.ts +0 -0
  1290. /package/dist/{src/client → client}/actors/saveConfig.d.ts +0 -0
  1291. /package/dist/{src/client → client}/clientManagerMachine.d.ts +0 -0
  1292. /package/dist/{src/client → client}/index.d.ts +0 -0
  1293. /package/dist/{src/db → db}/configs/dev.schema.config.d.ts +0 -0
  1294. /package/dist/{src/db → db}/read/getItem.d.ts +0 -0
  1295. /package/dist/{src/db → db}/read/getItemData.d.ts +0 -0
  1296. /package/dist/{src/db → db}/read/getItemProperties.d.ts +0 -0
  1297. /package/dist/{src/db → db}/read/getItemProperty.d.ts +0 -0
  1298. /package/dist/{src/db → db}/read/getItems.d.ts +0 -0
  1299. /package/dist/{src/db → db}/read/getMetadata.d.ts +0 -0
  1300. /package/dist/{src/db → db}/read/getModelSchemas.d.ts +0 -0
  1301. /package/dist/{src/db → db}/read/getModels.d.ts +0 -0
  1302. /package/dist/{src/db → db}/read/getPropertyData.d.ts +0 -0
  1303. /package/dist/{src/db → db}/read/getPublishPayload.d.ts +0 -0
  1304. /package/dist/{src/db → db}/read/getRelationValueData.d.ts +0 -0
  1305. /package/dist/{src/db → db}/read/getSchemaUidForModel.d.ts +0 -0
  1306. /package/dist/{src/db → db}/read/getSeedData.d.ts +0 -0
  1307. /package/dist/{src/db → db}/read/getStorageTransactionIdForSeedUid.d.ts +0 -0
  1308. /package/dist/{src/db → db}/read/getVersionData.d.ts +0 -0
  1309. /package/dist/{src/db → db}/read/getVersionsForVersionUids.d.ts +0 -0
  1310. /package/dist/{src/db → db}/read/subqueries/metadataLatest.d.ts +0 -0
  1311. /package/dist/{src/db → db}/read/subqueries/versionData.d.ts +0 -0
  1312. /package/dist/{src/db → db}/write/createMetadata.d.ts +0 -0
  1313. /package/dist/{src/db → db}/write/createNewItem.d.ts +0 -0
  1314. /package/dist/{src/db → db}/write/createSeed.d.ts +0 -0
  1315. /package/dist/{src/db → db}/write/createSeeds.d.ts +0 -0
  1316. /package/dist/{src/db → db}/write/createVersion.d.ts +0 -0
  1317. /package/dist/{src/db → db}/write/deleteItem.d.ts +0 -0
  1318. /package/dist/{src/db → db}/write/recoverDeletedItem.d.ts +0 -0
  1319. /package/dist/{src/db → db}/write/saveAppState.d.ts +0 -0
  1320. /package/dist/{src/db → db}/write/saveMetadata.d.ts +0 -0
  1321. /package/dist/{src/db → db}/write/updateMetadata.d.ts +0 -0
  1322. /package/dist/{src/eas.d.ts → eas.d.ts} +0 -0
  1323. /package/dist/{src/eslint-rules → eslint-rules}/align-imports.d.ts +0 -0
  1324. /package/dist/{src/eventBus.d.ts → eventBus.d.ts} +0 -0
  1325. /package/dist/{src/events → events}/files/index.d.ts +0 -0
  1326. /package/dist/{src/events → events}/index.d.ts +0 -0
  1327. /package/dist/{src/events → events}/item/syncDbWithEas.d.ts +0 -0
  1328. /package/dist/{src/events → events}/services/allItems.d.ts +0 -0
  1329. /package/dist/{src/events → events}/services/index.d.ts +0 -0
  1330. /package/dist/{src/feed.d.ts → feed.d.ts} +0 -0
  1331. /package/dist/{src/graphql → graphql}/fragments/Attestation.d.ts +0 -0
  1332. /package/dist/{src/graphql → graphql}/fragments/Schema.d.ts +0 -0
  1333. /package/dist/{src/graphql → graphql}/fragments/index.d.ts +0 -0
  1334. /package/dist/{src/graphql → graphql}/gql/fragment-masking.d.ts +0 -0
  1335. /package/dist/{src/graphql → graphql}/gql/gql.d.ts +0 -0
  1336. /package/dist/{src/graphql → graphql}/gql/graphql.d.ts +0 -0
  1337. /package/dist/{src/graphql → graphql}/gql/index.d.ts +0 -0
  1338. /package/dist/{src/helpers → helpers}/FileManager/BaseFileManager.d.ts +0 -0
  1339. /package/dist/{src/helpers → helpers}/PathResolver/BasePathResolver.d.ts +0 -0
  1340. /package/dist/{src/helpers → helpers}/QueryClient/BaseQueryClient.d.ts +0 -0
  1341. /package/dist/{src/helpers → helpers}/crypto.d.ts +0 -0
  1342. /package/dist/{src/helpers → helpers}/environment.d.ts +0 -0
  1343. /package/dist/{src/helpers → helpers}/file/queries.d.ts +0 -0
  1344. /package/dist/{src/helpers → helpers}/files.d.ts +0 -0
  1345. /package/dist/{src/helpers → helpers}/getSchemaForItemProperty.d.ts +0 -0
  1346. /package/dist/{src/helpers → helpers}/image/queries.d.ts +0 -0
  1347. /package/dist/{src/helpers → helpers}/model.d.ts +0 -0
  1348. /package/dist/{src/helpers → helpers}/property.d.ts +0 -0
  1349. /package/dist/{src/helpers → helpers}/reactiveProxy.d.ts +0 -0
  1350. /package/dist/{src/helpers → helpers}/schema.d.ts +0 -0
  1351. /package/dist/{src/helpers → helpers}/updateMachineContext.d.ts +0 -0
  1352. /package/dist/{src/imports → imports}/json.d.ts +0 -0
  1353. /package/dist/{src/imports → imports}/markdown.d.ts +0 -0
  1354. /package/dist/{src/interfaces → interfaces}/IDb.d.ts +0 -0
  1355. /package/dist/{src/interfaces → interfaces}/IEasClient.d.ts +0 -0
  1356. /package/dist/{src/interfaces → interfaces}/IQueryClient.d.ts +0 -0
  1357. /package/dist/{src/interfaces → interfaces}/index.d.ts +0 -0
  1358. /package/dist/{src/node → node}/codegen/drizzle.d.ts +0 -0
  1359. /package/dist/{src/node → node}/codegen/index.d.ts +0 -0
  1360. /package/dist/{src/node → node}/codegen/ts-to-proto.d.ts +0 -0
  1361. /package/dist/{src/node → node}/constants.d.ts +0 -0
  1362. /package/dist/{src/node → node}/db/Db.d.ts +0 -0
  1363. /package/dist/{src/node → node}/db/index.d.ts +0 -0
  1364. /package/dist/{src/node → node}/db/node.app.db.config.d.ts +0 -0
  1365. /package/dist/{src/node → node}/helpers/EasClient.d.ts +0 -0
  1366. /package/dist/{src/node → node}/helpers/FileManager.d.ts +0 -0
  1367. /package/dist/{src/node → node}/helpers/PathResolver.d.ts +0 -0
  1368. /package/dist/{src/node → node}/helpers/QueryClient.d.ts +0 -0
  1369. /package/dist/{src/node → node}/helpers/index.d.ts +0 -0
  1370. /package/dist/{src/node → node}/helpers/scripts.d.ts +0 -0
  1371. /package/dist/{src/node → node}/seed.d.ts +0 -0
  1372. /package/dist/{src/node → node}/webpack/fs-proxy.d.ts +0 -0
  1373. /package/dist/{src/node → node}/webpack/index.d.ts +0 -0
  1374. /package/dist/{src/seedSchema → seedSchema}/AppStateSchema.d.ts +0 -0
  1375. /package/dist/{src/seedSchema → seedSchema}/ConfigSchema.d.ts +0 -0
  1376. /package/dist/{src/seedSchema → seedSchema}/MetadataSchema.d.ts +0 -0
  1377. /package/dist/{src/seedSchema → seedSchema}/ModelSchema.d.ts +0 -0
  1378. /package/dist/{src/seedSchema → seedSchema}/ModelSchemaSchema.d.ts +0 -0
  1379. /package/dist/{src/seedSchema → seedSchema}/ModelUidSchema.d.ts +0 -0
  1380. /package/dist/{src/seedSchema → seedSchema}/PropertyUidSchema.d.ts +0 -0
  1381. /package/dist/{src/seedSchema → seedSchema}/SchemaSchema.d.ts +0 -0
  1382. /package/dist/{src/seedSchema → seedSchema}/SeedSchema.d.ts +0 -0
  1383. /package/dist/{src/seedSchema → seedSchema}/VersionSchema.d.ts +0 -0
  1384. /package/dist/{src/services → services}/events.d.ts +0 -0
  1385. /package/dist/{src/services → services}/publish/actors/createPublishAttempt.d.ts +0 -0
  1386. /package/dist/{src/services → services}/publish/actors/preparePublishRequestData.d.ts +0 -0
  1387. /package/dist/{src/services → services}/publish/actors/upload.d.ts +0 -0
  1388. /package/dist/{src/services → services}/publish/actors/validateItemData.d.ts +0 -0
  1389. /package/dist/{src/services → services}/publish/publishMachine.d.ts +0 -0
  1390. /package/dist/{src/services → services}/write/actors/writeToDatabase.d.ts +0 -0
  1391. /package/dist/{src/stores → stores}/eas.d.ts +0 -0
  1392. /package/dist/{src/types → types}/browser.d.ts +0 -0
  1393. /package/dist/{src/types → types}/db.d.ts +0 -0
  1394. /package/dist/{src/types → types}/fileManager.d.ts +0 -0
  1395. /package/dist/{src/types → types}/helpers.d.ts +0 -0
  1396. /package/dist/{src/types → types}/import.d.ts +0 -0
  1397. /package/dist/{src/types → types}/machines.d.ts +0 -0
  1398. /package/dist/{src/types → types}/model.d.ts +0 -0
  1399. /package/dist/{src/types → types}/seedProtocol.d.ts +0 -0
  1400. /package/dist/{src/types → types}/services.d.ts +0 -0
package/dist/main.js CHANGED
@@ -1,36 +1,2685 @@
1
1
  import 'reflect-metadata';
2
- import './Model/index.js';
3
- export { ModelPropertyDataTypes } from './helpers/property/index.js';
4
- export { getPropertySchema } from './helpers/property.js';
5
- import './Schema/validation.js';
6
- export { Item } from './Item/Item.js';
7
- export { ItemProperty } from './ItemProperty/ItemProperty.js';
8
- export { ModelProperty } from './ModelProperty/ModelProperty.js';
9
- export { Schema } from './Schema/Schema.js';
10
- export { Model } from './Model/Model.js';
11
- export { useCreateItem, useItem, useItems } from './browser/react/item.js';
12
- export { useItemProperties, useItemProperty } from './browser/react/itemProperty.js';
13
- import './browser/react/services.js';
14
- import './browser/react/db.js';
15
- export { useAllSchemaVersions, useCreateSchema, useSchema, useSchemas } from './browser/react/schema.js';
16
- export { useModelProperties, useModelProperty } from './browser/react/modelProperty.js';
17
- export { useDeleteItem } from './browser/react/trash.js';
18
- export { useModel, useModels } from './browser/react/model.js';
19
- import 'react';
20
- import './client/constants.js';
21
- export { ClientManager as client } from './client/ClientManager.js';
22
- import '@xstate/react';
23
- export { getArweaveUrlForTransaction } from './helpers/index.js';
24
- export { getItemPropertiesFromEas, getItemVersionsFromEas, getModelSchemasFromEas, getSchemaUidBySchemaName, getSeedsBySchemaName, getSeedsFromSchemaUids } from './eas.js';
25
- export { SeedModels } from './helpers/constants.js';
26
- export { getFeedItemsBySchemaName } from './feed.js';
27
- export { createSchema, getSchemaNameFromId, listCompleteSchemaFiles as listSchemas, readSchema } from './helpers/schema.js';
28
- export { deleteModelFromSchema, deletePropertyFromModel, renameModelProperty, updateModelProperties } from './helpers/updateSchema.js';
2
+ import { am as getClient, an as ClientManagerState, p as BaseDb, a0 as Item, X as seeds, ao as getVersionData, ap as createNewItem, C as metadata, a4 as ItemProperty, W as schemas, aq as loadAllSchemasFromDb, M as Model, q as models, G as modelSchemas, r as properties, a5 as eventEmitter, x as BaseEasClient, ar as getSeedsBySchemaName, as as GET_SEEDS, at as getItemVersionsFromEas, au as getItemPropertiesFromEas, z as BaseArweaveClient, av as setSchemaUidForSchemaDefinition, aw as parseEasRelationPropertyName } from './ClientManager-DoHUt8tU.js';
3
+ export { s as FileManager, a as ModelPropertyDataTypes, aA as SeedModels, a6 as client, aC as createSchema, aB as getArweaveUrlForTransaction, ax as getModelSchemasFromEas, aF as getSchemaNameFromId, ay as getSchemaUidBySchemaName, az as getSeedsFromSchemaUids, a9 as importJsonSchema, aE as listSchemas, ab as readJsonImportFile, aD as readSchema, ac as transformImportToSchemaFile, ah as waitForEntityIdle } from './ClientManager-DoHUt8tU.js';
4
+ import { g as getPropertySchema } from './property-fK7tSUDX.js';
5
+ import { M as ModelProperty } from './ModelProperty-gjcA83Mq.js';
6
+ export { a as deleteModelFromSchema, d as deletePropertyFromModel, r as renameModelProperty, u as updateModelProperties } from './ModelProperty-gjcA83Mq.js';
7
+ import { Schema } from './Schema-ClTcpgbt.js';
8
+ import React, { useState, useRef, useMemo, useEffect, useCallback } from 'react';
9
+ import { flushSync } from 'react-dom';
10
+ import { orderBy, startCase } from 'lodash-es';
11
+ import debug from 'debug';
12
+ import { useSelector } from '@xstate/react';
13
+ import { eq, or, isNotNull, isNull, and, gt, desc } from 'drizzle-orm';
14
+ import { useQueryClient, useQuery, QueryClient as QueryClient$1, QueryClientProvider } from '@tanstack/react-query';
15
+ import 'pluralize';
29
16
  import 'js-yaml';
30
17
  import 'fs';
31
- import './helpers/db.js';
32
- export { importJsonSchema, readJsonImportFile, transformImportToSchemaFile } from './imports/json.js';
33
- export { seedVitePlugin } from './vite/index.js';
34
- export { BaseFileManager as FileManager } from './helpers/FileManager/BaseFileManager.js';
35
- export { BaseEasClient as EasClient } from './helpers/EasClient/BaseEasClient.js';
18
+ import 'xstate';
19
+ import 'rxjs';
20
+ import 'drizzle-orm/casing';
21
+ import '@sinclair/typebox';
22
+ import 'arweave';
23
+ import 'eventemitter3';
24
+ import 'drizzle-orm/sqlite-core';
25
+ import 'nanoid';
26
+ import 'nanoid-dictionary';
27
+ import 'ethers';
28
+ import './SchemaValidationService-BfoEiHNr.js';
29
+ import '@sinclair/typebox/value';
30
+
31
+ const useIsClientReady = () => {
32
+ const client = getClient();
33
+ const clientService = client.getService();
34
+ const isClientReady = useSelector(clientService, (snapshot) => {
35
+ return snapshot.value === ClientManagerState.IDLE;
36
+ });
37
+ // GlobalState removed - check ClientManager state directly
38
+ return isClientReady;
39
+ };
40
+
41
+ /**
42
+ * Hook to execute a reactive query that emits new results whenever the underlying data changes.
43
+ *
44
+ * Supports two usage patterns:
45
+ * 1. SQL tag function: useLiveQuery((sql) => sql`SELECT * FROM models`)
46
+ * 2. Drizzle query builder: useLiveQuery(db.select().from(models))
47
+ *
48
+ * @param query - SQL query function or Drizzle query builder, or null/undefined to disable the query
49
+ * @returns Array of query results, or undefined if not yet loaded
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * // Using SQL tag function
54
+ * const models = useLiveQuery<ModelRow>(
55
+ * (sql) => sql`SELECT * FROM models WHERE schema_file_id = ${schemaId}`
56
+ * )
57
+ *
58
+ * // Using Drizzle query builder
59
+ * import { models } from '@/seedSchema'
60
+ * import { eq } from 'drizzle-orm'
61
+ *
62
+ * const appDb = BaseDb.getAppDb()
63
+ * const models = useLiveQuery<ModelRow>(
64
+ * appDb.select().from(models).where(eq(models.schemaFileId, schemaId))
65
+ * )
66
+ * ```
67
+ */
68
+ function useLiveQuery(query) {
69
+ const [data, setData] = useState(undefined);
70
+ const subscriptionRef = useRef(null);
71
+ const previousDataRef = useRef(undefined);
72
+ const isClientReady = useIsClientReady();
73
+ // Create Observable outside useEffect so it's stable and distinctUntilChanged can work
74
+ // Only recreate when query or isClientReady changes
75
+ const observable = useMemo(() => {
76
+ if (!isClientReady || !query) {
77
+ return null;
78
+ }
79
+ try {
80
+ return BaseDb.liveQuery(query);
81
+ }
82
+ catch (error) {
83
+ console.error('[useLiveQuery] Failed to create live query:', error);
84
+ return null;
85
+ }
86
+ }, [query, isClientReady]);
87
+ useEffect(() => {
88
+ // Cleanup previous subscription if it exists
89
+ if (subscriptionRef.current) {
90
+ subscriptionRef.current.unsubscribe();
91
+ subscriptionRef.current = null;
92
+ }
93
+ // Don't subscribe if observable is null
94
+ if (!observable) {
95
+ return;
96
+ }
97
+ const subscription = observable.subscribe({
98
+ next: (results) => {
99
+ const prev = previousDataRef.current;
100
+ const prevJson = prev ? JSON.stringify(prev) : 'undefined';
101
+ const currJson = results ? JSON.stringify(results) : 'undefined';
102
+ const isSameValue = prevJson === currJson;
103
+ // Defensive check: don't update state if values are the same
104
+ // This should be handled by distinctUntilChanged, but adding as safety
105
+ // (especially important for Drizzle query builders which may not work with distinctUntilChanged)
106
+ if (isSameValue && prev !== undefined) {
107
+ return;
108
+ }
109
+ previousDataRef.current = results;
110
+ setData(results);
111
+ },
112
+ error: (err) => {
113
+ console.error('[useLiveQuery] Error:', err);
114
+ // Don't set data to undefined on error - keep last known good state
115
+ // This prevents UI flickering on transient errors
116
+ },
117
+ });
118
+ subscriptionRef.current = subscription;
119
+ // Cleanup on unmount or observable change
120
+ return () => {
121
+ if (subscriptionRef.current) {
122
+ subscriptionRef.current.unsubscribe();
123
+ subscriptionRef.current = null;
124
+ }
125
+ };
126
+ }, [observable]); // Only re-subscribe when observable changes
127
+ return data;
128
+ }
129
+
130
+ const logger$2 = debug('seedSdk:react:item');
131
+ const useItem = ({ modelName, seedLocalId, seedUid }) => {
132
+ const [item, setItem] = useState();
133
+ const [isLoading, setIsLoading] = useState(!!(seedLocalId || seedUid));
134
+ const [error, setError] = useState(null);
135
+ const subscriptionRef = useRef(undefined);
136
+ const hasSeenIdleRef = useRef(false);
137
+ const isClientReady = useIsClientReady();
138
+ const modelNameRef = useRef(modelName);
139
+ const seedLocalIdRef = useRef(seedLocalId);
140
+ const seedUidRef = useRef(seedUid);
141
+ // Determine if we should be loading based on parameters - use useMemo to stabilize
142
+ // Use refs to check current values to avoid dependency issues
143
+ const shouldLoad = useMemo(() => {
144
+ if (!isClientReady)
145
+ return false;
146
+ return !!(seedLocalIdRef.current || seedUidRef.current);
147
+ }, [isClientReady, seedLocalId, seedUid]);
148
+ const loadItem = useCallback(async () => {
149
+ // Check shouldLoad inside the function to avoid recreating the callback
150
+ const currentShouldLoad = !!(isClientReady && (seedLocalIdRef.current || seedUidRef.current));
151
+ if (!currentShouldLoad) {
152
+ setItem(undefined);
153
+ setIsLoading(false);
154
+ setError(null);
155
+ return;
156
+ }
157
+ try {
158
+ // Don't set isLoading here - let the subscription effect handle it
159
+ // This avoids race conditions where isLoading is set to true but then
160
+ // the subscription effect hasn't run yet to set it to false
161
+ setError(null);
162
+ const foundItem = await Item.find({
163
+ modelName: modelNameRef.current,
164
+ seedLocalId: seedLocalIdRef.current,
165
+ seedUid: seedUidRef.current,
166
+ });
167
+ if (!foundItem) {
168
+ logger$2('[useItem] [loadItem] no item found', modelNameRef.current, seedLocalIdRef.current);
169
+ // Don't clear item if we already have one for the same request (e.g. duplicate loadItem from effect re-run)
170
+ setItem((prev) => {
171
+ if (!prev)
172
+ return undefined;
173
+ const match = (prev.seedLocalId && prev.seedLocalId === seedLocalIdRef.current) ||
174
+ (prev.seedUid && prev.seedUid === seedUidRef.current);
175
+ return match ? prev : undefined;
176
+ });
177
+ setIsLoading(false);
178
+ setError(null);
179
+ return;
180
+ }
181
+ // Item.find() now waits for idle by default, so the item should be ready
182
+ setItem(foundItem);
183
+ setIsLoading(false); // Item is ready since find() waited for idle
184
+ setError(null);
185
+ }
186
+ catch (error) {
187
+ logger$2('[useItem] Error loading item:', error);
188
+ setItem(undefined);
189
+ setIsLoading(false);
190
+ setError(error);
191
+ }
192
+ }, [isClientReady]);
193
+ useEffect(() => {
194
+ modelNameRef.current = modelName;
195
+ seedLocalIdRef.current = seedLocalId;
196
+ seedUidRef.current = seedUid;
197
+ }, [modelName, seedLocalId, seedUid]);
198
+ // Fetch/refetch when parameters change or client becomes ready
199
+ useEffect(() => {
200
+ // Only clear item if we don't have parameters to load
201
+ // Don't clear if shouldLoad is false but we have an item - it might just be a timing issue
202
+ if (!shouldLoad) {
203
+ // Only clear if we actually don't have parameters (not just client not ready)
204
+ if (!seedLocalId && !seedUid) {
205
+ setItem(undefined);
206
+ setIsLoading(false);
207
+ setError(null);
208
+ }
209
+ return;
210
+ }
211
+ loadItem();
212
+ }, [shouldLoad, loadItem, seedLocalId, seedUid]);
213
+ // Subscribe to service changes when item is available
214
+ useEffect(() => {
215
+ if (!item) {
216
+ // Clean up subscription if item is not available
217
+ subscriptionRef.current?.unsubscribe();
218
+ subscriptionRef.current = undefined;
219
+ hasSeenIdleRef.current = false;
220
+ return;
221
+ }
222
+ // Clean up previous subscription
223
+ subscriptionRef.current?.unsubscribe();
224
+ hasSeenIdleRef.current = false;
225
+ // Subscribe to service changes. Only set isLoading to true after we've seen idle at least
226
+ // once, so we don't overwrite the ready state that loadItem() just set (find() waits for idle).
227
+ const service = item.getService();
228
+ const subscription = service.subscribe((snapshot) => {
229
+ // Update loading state based on service state changes
230
+ if (snapshot && typeof snapshot === 'object' && 'value' in snapshot) {
231
+ const isIdle = snapshot.value === 'idle';
232
+ if (isIdle) {
233
+ hasSeenIdleRef.current = true;
234
+ setIsLoading(false);
235
+ setError(null);
236
+ }
237
+ else if (snapshot.value === 'error') {
238
+ setError(new Error('Item service error'));
239
+ setIsLoading(false);
240
+ }
241
+ else {
242
+ // Only show loading if we've already seen idle (real transition to loading)
243
+ if (hasSeenIdleRef.current) {
244
+ setIsLoading(true);
245
+ }
246
+ }
247
+ }
248
+ });
249
+ subscriptionRef.current = subscription;
250
+ return () => {
251
+ subscriptionRef.current?.unsubscribe();
252
+ subscriptionRef.current = undefined;
253
+ };
254
+ }, [item]);
255
+ return {
256
+ item,
257
+ isLoading,
258
+ error,
259
+ };
260
+ };
261
+ const getItemsQueryKey = (modelName, deleted) => ['seed', 'items', modelName ?? null, deleted ?? false];
262
+ const useItems = ({ modelName, deleted = false }) => {
263
+ const isClientReady = useIsClientReady();
264
+ const queryClient = useQueryClient();
265
+ const previousSeedsTableDataRef = useRef(undefined);
266
+ const itemsRef = useRef([]);
267
+ const lastFetchedIdsRef = useRef(new Set());
268
+ const queryKey = useMemo(() => getItemsQueryKey(modelName, deleted), [modelName, deleted]);
269
+ const { data: items = [], isLoading, error: queryError, } = useQuery({
270
+ queryKey,
271
+ queryFn: () => Item.all(modelName, deleted, { waitForReady: true }),
272
+ enabled: isClientReady,
273
+ });
274
+ itemsRef.current = items;
275
+ // Watch the seeds table for changes
276
+ const db = isClientReady ? BaseDb.getAppDb() : null;
277
+ const seedsQuery = useMemo(() => {
278
+ if (!db)
279
+ return null;
280
+ const conditions = [];
281
+ if (modelName) {
282
+ conditions.push(eq(seeds.type, modelName.toLowerCase()));
283
+ }
284
+ if (deleted) {
285
+ conditions.push(or(isNotNull(seeds._markedForDeletion), eq(seeds._markedForDeletion, 1)));
286
+ }
287
+ else {
288
+ conditions.push(or(isNull(seeds._markedForDeletion), eq(seeds._markedForDeletion, 0)));
289
+ }
290
+ const versionData = getVersionData();
291
+ return db
292
+ .with(versionData)
293
+ .select({
294
+ localId: seeds.localId,
295
+ uid: seeds.uid,
296
+ type: seeds.type,
297
+ schemaUid: seeds.schemaUid,
298
+ createdAt: seeds.createdAt,
299
+ attestationCreatedAt: seeds.attestationCreatedAt,
300
+ _markedForDeletion: seeds._markedForDeletion,
301
+ })
302
+ .from(seeds)
303
+ .leftJoin(versionData, eq(seeds.localId, versionData.seedLocalId))
304
+ .where(and(gt(versionData.versionsCount, 0), ...conditions))
305
+ .groupBy(seeds.localId);
306
+ }, [db, isClientReady, modelName, deleted]);
307
+ const seedsTableData = useLiveQuery(seedsQuery);
308
+ // Invalidate when table data actually changes so useQuery refetches
309
+ useEffect(() => {
310
+ if (!isClientReady || !seedsTableData)
311
+ return;
312
+ const tableDataItemsSet = new Set();
313
+ for (const dbSeed of seedsTableData) {
314
+ const key = dbSeed.localId || dbSeed.uid;
315
+ if (key)
316
+ tableDataItemsSet.add(key);
317
+ }
318
+ const currentItemsSet = new Set();
319
+ for (const item of itemsRef.current) {
320
+ const key = item.seedLocalId || item.seedUid;
321
+ if (key)
322
+ currentItemsSet.add(key);
323
+ }
324
+ if (tableDataItemsSet.size === 0 && currentItemsSet.size > 0)
325
+ return;
326
+ const lastFetched = lastFetchedIdsRef.current;
327
+ if (lastFetched.size === tableDataItemsSet.size &&
328
+ [...lastFetched].every((id) => tableDataItemsSet.has(id))) {
329
+ return;
330
+ }
331
+ previousSeedsTableDataRef.current = seedsTableData;
332
+ const setsAreEqual = currentItemsSet.size === tableDataItemsSet.size &&
333
+ [...currentItemsSet].every((id) => tableDataItemsSet.has(id));
334
+ if (setsAreEqual) {
335
+ lastFetchedIdsRef.current = new Set(tableDataItemsSet);
336
+ return;
337
+ }
338
+ lastFetchedIdsRef.current = new Set(tableDataItemsSet);
339
+ queryClient.invalidateQueries({ queryKey });
340
+ }, [isClientReady, seedsTableData, queryClient, queryKey]);
341
+ return {
342
+ items: orderBy(items, [
343
+ (item) => item.lastVersionPublishedAt ||
344
+ item.attestationCreatedAt ||
345
+ item.createdAt,
346
+ ], ['desc']),
347
+ isLoading,
348
+ error: queryError,
349
+ };
350
+ };
351
+ const useCreateItem = () => {
352
+ const [isLoading, setIsLoading] = useState(false);
353
+ const [error, setError] = useState(null);
354
+ const resetError = useCallback(() => setError(null), []);
355
+ const createItem = useCallback(async (modelName, itemData) => {
356
+ if (isLoading) {
357
+ logger$2('[useCreateItem] [createItem] already creating item, skipping');
358
+ return undefined;
359
+ }
360
+ setError(null);
361
+ // Flush loading=true synchronously so the UI (and tests) can observe it before async work runs.
362
+ flushSync(() => setIsLoading(true));
363
+ try {
364
+ const data = itemData ?? {};
365
+ const { seedLocalId } = await createNewItem({ modelName, ...data });
366
+ const newItem = await Item.find({ modelName, seedLocalId });
367
+ return (newItem ?? undefined);
368
+ }
369
+ catch (err) {
370
+ logger$2('[useCreateItem] Error creating item:', err);
371
+ setError(err instanceof Error ? err : new Error(String(err)));
372
+ return undefined;
373
+ }
374
+ finally {
375
+ // Defer clearing loading so React can commit the loading=true render first.
376
+ // Otherwise the test (or UI) may never observe isLoading true (same continuation batching).
377
+ queueMicrotask(() => setIsLoading(false));
378
+ }
379
+ }, [isLoading]);
380
+ return {
381
+ createItem,
382
+ isLoading,
383
+ error,
384
+ resetError,
385
+ };
386
+ };
387
+ const usePublishItem = () => {
388
+ const [publishingItem, setPublishingItem] = useState(null);
389
+ const [isLoading, setIsLoading] = useState(false);
390
+ const [error, setError] = useState(null);
391
+ const subscriptionRef = useRef(undefined);
392
+ const resetError = useCallback(() => setError(null), []);
393
+ const publishItem = useCallback((item) => {
394
+ if (!item)
395
+ return;
396
+ setPublishingItem(item);
397
+ setError(null);
398
+ item.publish().catch(() => {
399
+ // Error is surfaced via service state subscription; avoid unhandled rejection
400
+ });
401
+ }, []);
402
+ useEffect(() => {
403
+ if (!publishingItem) {
404
+ subscriptionRef.current?.unsubscribe();
405
+ subscriptionRef.current = undefined;
406
+ setIsLoading(false);
407
+ return;
408
+ }
409
+ subscriptionRef.current?.unsubscribe();
410
+ const service = publishingItem.getService();
411
+ const subscription = service.subscribe((snapshot) => {
412
+ const value = snapshot?.value;
413
+ const ctx = snapshot?.context;
414
+ setIsLoading(value === 'publishing');
415
+ const publishError = ctx?._publishError;
416
+ setError(publishError ? new Error(publishError.message) : null);
417
+ });
418
+ subscriptionRef.current = subscription;
419
+ const snap = service.getSnapshot();
420
+ setIsLoading(snap?.value === 'publishing');
421
+ const ctx = snap?.context;
422
+ const publishError = ctx?._publishError;
423
+ setError(publishError ? new Error(publishError.message) : null);
424
+ return () => {
425
+ subscriptionRef.current?.unsubscribe();
426
+ subscriptionRef.current = undefined;
427
+ };
428
+ }, [publishingItem]);
429
+ return {
430
+ publishItem,
431
+ isLoading,
432
+ error,
433
+ resetError,
434
+ };
435
+ };
436
+
437
+ const logger$1 = debug('seedSdk:react:property');
438
+ const propertiesLogger = debug('seedSdk:react:itemProperties');
439
+ function useItemProperty(arg1, arg2) {
440
+ const isClientReady = useIsClientReady();
441
+ const [property, setProperty] = useState(undefined);
442
+ const [isLoading, setIsLoading] = useState(false);
443
+ const [error, setError] = useState(null);
444
+ const subscriptionRef = useRef(undefined);
445
+ const [, setVersion] = useState(0); // Version counter to force re-renders
446
+ // Extract primitives so useMemo/useCallback deps are stable when caller passes inline objects
447
+ // Support object form with itemId: useItemProperty({ itemId, propertyName })
448
+ const arg1IsObject = typeof arg1 === 'object' && arg1 != null;
449
+ const obj = arg1IsObject ? arg1 : null;
450
+ const itemIdFromObj = obj != null ? obj.itemId : undefined;
451
+ const seedLocalId = obj != null ? obj.seedLocalId : undefined;
452
+ const seedUid = obj != null ? obj.seedUid : undefined;
453
+ const propertyNameFromObj = obj != null ? obj.propertyName : undefined;
454
+ const itemId = typeof arg1 === 'string' ? arg1 : (itemIdFromObj !== undefined && itemIdFromObj !== '' ? itemIdFromObj : undefined);
455
+ const propertyNameFromArgs = typeof arg1 === 'string' ? arg2 : undefined;
456
+ const propertyName = propertyNameFromObj ?? propertyNameFromArgs;
457
+ // Determine which lookup mode we're in based on arguments (deps are primitives to avoid infinite loop)
458
+ // Unify itemId and identifiers: when itemId is provided (string or object form), use it as seedLocalId so we hit the same code path
459
+ const lookupMode = useMemo(() => {
460
+ const resolvedSeedLocalId = (itemId !== undefined && itemId !== '') ? itemId : seedLocalId;
461
+ const resolvedSeedUid = (itemId !== undefined && itemId !== '') ? undefined : seedUid;
462
+ if ((resolvedSeedLocalId != null || resolvedSeedUid != null) && propertyName != null && propertyName !== '') {
463
+ return {
464
+ type: 'identifiers',
465
+ seedLocalId: resolvedSeedLocalId ?? undefined,
466
+ seedUid: resolvedSeedUid,
467
+ propertyName,
468
+ };
469
+ }
470
+ return null;
471
+ }, [itemId, propertyName, seedLocalId, seedUid]);
472
+ // Determine initial loading state
473
+ useMemo(() => {
474
+ if (!lookupMode)
475
+ return false;
476
+ return !!((lookupMode.seedLocalId || lookupMode.seedUid) &&
477
+ lookupMode.propertyName);
478
+ }, [lookupMode]);
479
+ // Determine if we should be loading based on parameters
480
+ const shouldLoad = useMemo(() => {
481
+ if (!isClientReady)
482
+ return false;
483
+ if (!lookupMode)
484
+ return false;
485
+ return !!((lookupMode.seedLocalId || lookupMode.seedUid) &&
486
+ lookupMode.propertyName);
487
+ }, [isClientReady, lookupMode]);
488
+ const updateItemProperty = useCallback(async () => {
489
+ if (!isClientReady || !lookupMode) {
490
+ setProperty(undefined);
491
+ setIsLoading(false);
492
+ setError(null);
493
+ return;
494
+ }
495
+ try {
496
+ setIsLoading(true);
497
+ setError(null);
498
+ const seedLocalId = lookupMode.seedLocalId;
499
+ const seedUid = lookupMode.seedUid;
500
+ if (!seedLocalId && !seedUid) {
501
+ setProperty(undefined);
502
+ setIsLoading(false);
503
+ setError(null);
504
+ return;
505
+ }
506
+ const foundProperty = await ItemProperty.find({
507
+ propertyName: lookupMode.propertyName,
508
+ seedLocalId,
509
+ seedUid,
510
+ });
511
+ if (!foundProperty) {
512
+ logger$1(`[useItemProperty] [updateItemProperty] no property found for Item.${seedLocalId || seedUid}.${lookupMode.propertyName}`);
513
+ setProperty(undefined);
514
+ setIsLoading(false);
515
+ setError(null);
516
+ return;
517
+ }
518
+ // ItemProperty.find() now waits for idle by default, so the property should be ready
519
+ setProperty(foundProperty);
520
+ setIsLoading(false); // Property is ready since find() waited for idle
521
+ setError(null);
522
+ }
523
+ catch (error) {
524
+ logger$1('[useItemProperty] Error updating item property:', error);
525
+ setProperty(undefined);
526
+ setIsLoading(false);
527
+ setError(error);
528
+ }
529
+ }, [isClientReady, lookupMode]);
530
+ // Fetch/refetch when lookup parameters change or client becomes ready.
531
+ // Skip refetch when we already have the property for this lookup (avoids setting loading true
532
+ // again when effect re-runs e.g. from Strict Mode or updateItemProperty identity change).
533
+ // Match by the active identifier only: when looking up by seedLocalId both must match;
534
+ // when looking up by seedUid both must match. Do not use (seedUid === undefined) as a match
535
+ // when seedLocalIds differ, which would incorrectly skip refetch after seedLocalId change.
536
+ useEffect(() => {
537
+ if (!shouldLoad) {
538
+ setProperty(undefined);
539
+ setIsLoading(false);
540
+ setError(null);
541
+ return;
542
+ }
543
+ const alreadyHavePropertyGuard = property &&
544
+ lookupMode &&
545
+ property.propertyName === lookupMode.propertyName &&
546
+ ((lookupMode.seedLocalId != null && property.seedLocalId === lookupMode.seedLocalId) ||
547
+ (lookupMode.seedUid != null && property.seedUid === lookupMode.seedUid));
548
+ if (alreadyHavePropertyGuard)
549
+ return;
550
+ updateItemProperty();
551
+ }, [shouldLoad, updateItemProperty, property, lookupMode]);
552
+ // Subscribe to service changes when property is available
553
+ useEffect(() => {
554
+ if (!property) {
555
+ // Clean up subscription if property is not available
556
+ subscriptionRef.current?.unsubscribe();
557
+ subscriptionRef.current = undefined;
558
+ return;
559
+ }
560
+ // Clean up previous subscription
561
+ subscriptionRef.current?.unsubscribe();
562
+ // Subscribe to service changes. Only set isLoading to false when idle; never set to true
563
+ // here so we never overwrite the loaded state when the machine emits any non-idle state
564
+ // (e.g. loading, initializing, resolvingRelatedValue) after the initial fetch.
565
+ const subscription = property.getService().subscribe((snapshot) => {
566
+ if (snapshot && typeof snapshot === 'object' && 'value' in snapshot && snapshot.value === 'idle') {
567
+ setIsLoading(false);
568
+ setError(null);
569
+ }
570
+ // Force re-render by incrementing version counter
571
+ setVersion(prev => prev + 1);
572
+ });
573
+ subscriptionRef.current = subscription;
574
+ return () => {
575
+ subscriptionRef.current?.unsubscribe();
576
+ subscriptionRef.current = undefined;
577
+ };
578
+ }, [property]);
579
+ return {
580
+ property,
581
+ isLoading,
582
+ error,
583
+ };
584
+ }
585
+ /** Fetches item properties list for useQuery (shared with useItemProperties). */
586
+ async function fetchItemPropertiesList(seedLocalId, seedUid) {
587
+ if (!seedLocalId && !seedUid)
588
+ return [];
589
+ const db = BaseDb.getAppDb();
590
+ if (!db)
591
+ return [];
592
+ const baseList = await ItemProperty.all({ seedLocalId: seedLocalId ?? undefined, seedUid: seedUid ?? undefined }, { waitForReady: true });
593
+ const _itemProperties = [...baseList];
594
+ const propertiesWithMetadata = new Set();
595
+ for (const p of baseList) {
596
+ if (p.propertyName)
597
+ propertiesWithMetadata.add(p.propertyName);
598
+ }
599
+ let modelName;
600
+ if (baseList.length > 0) {
601
+ const first = baseList[0];
602
+ modelName = first.modelName ?? first.modelType;
603
+ if (modelName && typeof modelName === 'string')
604
+ modelName = startCase(modelName);
605
+ }
606
+ if (!modelName) {
607
+ const seedRecords = await db
608
+ .select({ type: seeds.type })
609
+ .from(seeds)
610
+ .where(seedUid ? eq(seeds.uid, seedUid) : eq(seeds.localId, seedLocalId))
611
+ .limit(1);
612
+ if (seedRecords.length > 0 && seedRecords[0].type) {
613
+ modelName = startCase(seedRecords[0].type);
614
+ }
615
+ }
616
+ const modelProperties = [];
617
+ if (modelName) {
618
+ try {
619
+ const { Model } = await import('./ClientManager-DoHUt8tU.js').then(function (n) { return n.aX; });
620
+ const model = await Model.getByNameAsync(modelName);
621
+ if (model?.properties) {
622
+ for (const modelProperty of model.properties) {
623
+ if (modelProperty.name)
624
+ modelProperties.push(modelProperty.name);
625
+ }
626
+ }
627
+ }
628
+ catch (error) {
629
+ propertiesLogger(`[useItemProperties] Error getting ModelProperties for ${modelName}:`, error);
630
+ }
631
+ }
632
+ if (modelName && modelProperties.length > 0) {
633
+ const resolvedSeedLocalId = baseList.length > 0 ? (baseList[0].seedLocalId ?? seedLocalId) : seedLocalId;
634
+ const resolvedSeedUid = baseList.length > 0 ? (baseList[0].seedUid ?? seedUid) : seedUid;
635
+ for (const propertyName of modelProperties) {
636
+ if (propertiesWithMetadata.has(propertyName))
637
+ continue;
638
+ try {
639
+ const itemProperty = ItemProperty.create({
640
+ propertyName,
641
+ modelName,
642
+ seedLocalId: resolvedSeedLocalId || undefined,
643
+ seedUid: resolvedSeedUid || undefined,
644
+ propertyValue: null,
645
+ }, { waitForReady: false });
646
+ if (itemProperty)
647
+ _itemProperties.push(itemProperty);
648
+ }
649
+ catch (error) {
650
+ logger$1(`[useItemProperties] Error creating ItemProperty for missing property ${propertyName}:`, error);
651
+ }
652
+ }
653
+ }
654
+ if (seedLocalId || seedUid) {
655
+ const seedRecords = await db
656
+ .select({ createdAt: seeds.createdAt })
657
+ .from(seeds)
658
+ .where(seedUid ? eq(seeds.uid, seedUid) : eq(seeds.localId, seedLocalId))
659
+ .limit(1);
660
+ if (seedRecords.length > 0 && seedRecords[0].createdAt) {
661
+ const createdAtPropertyName = 'createdAt';
662
+ const hasCreatedAtProperty = _itemProperties.some((p) => p.propertyName === createdAtPropertyName);
663
+ if (!hasCreatedAtProperty && modelName) {
664
+ try {
665
+ const resolvedSeedLocalId = baseList.length > 0 ? (baseList[0].seedLocalId ?? seedLocalId) : seedLocalId;
666
+ const resolvedSeedUid = baseList.length > 0 ? (baseList[0].seedUid ?? seedUid) : seedUid;
667
+ const createdAtProperty = ItemProperty.create({
668
+ propertyName: createdAtPropertyName,
669
+ modelName,
670
+ seedLocalId: resolvedSeedLocalId || undefined,
671
+ seedUid: resolvedSeedUid || undefined,
672
+ propertyValue: seedRecords[0].createdAt.toString(),
673
+ }, { waitForReady: false });
674
+ if (createdAtProperty)
675
+ _itemProperties.push(createdAtProperty);
676
+ }
677
+ catch (error) {
678
+ logger$1(`[useItemProperties] Error creating createdAt ItemProperty:`, error);
679
+ }
680
+ }
681
+ }
682
+ }
683
+ return _itemProperties;
684
+ }
685
+ function useItemProperties(arg1) {
686
+ const isClientReady = useIsClientReady();
687
+ const queryClient = useQueryClient();
688
+ const previousTableDataRef = useRef(undefined);
689
+ // Determine which lookup mode we're in based on arguments
690
+ const lookupMode = useMemo(() => {
691
+ if (typeof arg1 === 'string') {
692
+ // String argument: itemId (assumed to be seedLocalId)
693
+ return { type: 'itemId', itemId: arg1 };
694
+ }
695
+ else if (typeof arg1 === 'object') {
696
+ // Object argument: { seedLocalId/seedUid }
697
+ return {
698
+ type: 'identifiers',
699
+ seedLocalId: arg1.seedLocalId,
700
+ seedUid: arg1.seedUid,
701
+ };
702
+ }
703
+ else {
704
+ return null;
705
+ }
706
+ }, [arg1]);
707
+ // Determine seedLocalId and seedUid for query
708
+ const seedLocalId = useMemo(() => {
709
+ if (!lookupMode)
710
+ return undefined;
711
+ if (lookupMode.type === 'itemId') {
712
+ return lookupMode.itemId;
713
+ }
714
+ else {
715
+ return lookupMode.seedLocalId;
716
+ }
717
+ }, [lookupMode]);
718
+ const seedUid = useMemo(() => {
719
+ if (!lookupMode || lookupMode.type === 'itemId')
720
+ return undefined;
721
+ return lookupMode.seedUid;
722
+ }, [lookupMode]);
723
+ const canonicalItemKey = seedLocalId ?? seedUid ?? '';
724
+ const itemPropertiesQueryKey = useMemo(() => ['seed', 'itemProperties', canonicalItemKey], [canonicalItemKey]);
725
+ const { data: properties = [], isLoading, error: queryError, } = useQuery({
726
+ queryKey: itemPropertiesQueryKey,
727
+ queryFn: () => fetchItemPropertiesList(seedLocalId, seedUid),
728
+ enabled: isClientReady && !!canonicalItemKey,
729
+ });
730
+ // Watch the metadata table for changes
731
+ // Query metadata table directly and filter for latest records in JavaScript
732
+ // This is simpler and works better with useLiveQuery than CTEs
733
+ // Get db inside useMemo to avoid recreating query on each render
734
+ // Drizzle query builders are new objects each time, but useMemo will only recreate
735
+ // when dependencies change, which is what we want for reactive queries
736
+ const propertiesQuery = useMemo(() => {
737
+ if (!isClientReady || (!seedLocalId && !seedUid)) {
738
+ propertiesLogger('[useItemProperties] Query: returning null (not ready or no identifiers)');
739
+ return null;
740
+ }
741
+ const db = BaseDb.getAppDb();
742
+ if (!db) {
743
+ propertiesLogger('[useItemProperties] Query: returning null (no db)');
744
+ return null;
745
+ }
746
+ propertiesLogger(`[useItemProperties] Query: creating query for seedLocalId=${seedLocalId}, seedUid=${seedUid}`);
747
+ // Query metadata table directly - we'll filter for latest records in JavaScript
748
+ const query = seedUid
749
+ ? db
750
+ .select({
751
+ propertyName: metadata.propertyName,
752
+ propertyValue: metadata.propertyValue,
753
+ seedLocalId: metadata.seedLocalId,
754
+ seedUid: metadata.seedUid,
755
+ modelType: metadata.modelType,
756
+ schemaUid: metadata.schemaUid,
757
+ createdAt: metadata.createdAt,
758
+ attestationCreatedAt: metadata.attestationCreatedAt,
759
+ })
760
+ .from(metadata)
761
+ .where(and(eq(metadata.seedUid, seedUid), isNotNull(metadata.propertyName)))
762
+ : seedLocalId
763
+ ? db
764
+ .select({
765
+ propertyName: metadata.propertyName,
766
+ propertyValue: metadata.propertyValue,
767
+ seedLocalId: metadata.seedLocalId,
768
+ seedUid: metadata.seedUid,
769
+ modelType: metadata.modelType,
770
+ schemaUid: metadata.schemaUid,
771
+ createdAt: metadata.createdAt,
772
+ attestationCreatedAt: metadata.attestationCreatedAt,
773
+ })
774
+ .from(metadata)
775
+ .where(and(eq(metadata.seedLocalId, seedLocalId), isNotNull(metadata.propertyName)))
776
+ : null;
777
+ propertiesLogger(`[useItemProperties] Query: created query object`, { queryType: seedUid ? 'seedUid' : 'seedLocalId' });
778
+ return query;
779
+ }, [isClientReady, seedLocalId, seedUid]);
780
+ const rawPropertiesTableData = useLiveQuery(propertiesQuery);
781
+ // Filter for latest records (one per propertyName) in JavaScript
782
+ const propertiesTableData = useMemo(() => {
783
+ if (!rawPropertiesTableData || rawPropertiesTableData.length === 0) {
784
+ return [];
785
+ }
786
+ // Group by propertyName and keep only the latest record for each
787
+ const latestByProperty = new Map();
788
+ for (const record of rawPropertiesTableData) {
789
+ if (!record.propertyName)
790
+ continue;
791
+ const existing = latestByProperty.get(record.propertyName);
792
+ if (!existing) {
793
+ latestByProperty.set(record.propertyName, record);
794
+ }
795
+ else {
796
+ // Compare timestamps to find the latest
797
+ const existingTime = existing.attestationCreatedAt || existing.createdAt || 0;
798
+ const currentTime = record.attestationCreatedAt || record.createdAt || 0;
799
+ if (currentTime > existingTime) {
800
+ latestByProperty.set(record.propertyName, record);
801
+ }
802
+ }
803
+ }
804
+ return Array.from(latestByProperty.values());
805
+ }, [rawPropertiesTableData]);
806
+ // Invalidate when metadata table data actually changes so useQuery refetches
807
+ useEffect(() => {
808
+ if (!isClientReady || (!seedLocalId && !seedUid) || propertiesTableData === undefined)
809
+ return;
810
+ // Include propertyValue so value-only changes produce a different string and trigger invalidation
811
+ const tableDataString = JSON.stringify(propertiesTableData
812
+ .map((p) => ({
813
+ propertyName: p.propertyName,
814
+ propertyValue: p.propertyValue,
815
+ seedLocalId: p.seedLocalId,
816
+ seedUid: p.seedUid,
817
+ }))
818
+ .sort((a, b) => (a.propertyName || '').localeCompare(b.propertyName || '')));
819
+ if (previousTableDataRef.current === tableDataString)
820
+ return;
821
+ previousTableDataRef.current = tableDataString;
822
+ // Invalidate when metadata table data changed (new/updated/removed props or value changes)
823
+ // so useQuery refetches and UI shows latest values.
824
+ if (propertiesTableData.length > 0) {
825
+ queryClient.invalidateQueries({ queryKey: itemPropertiesQueryKey });
826
+ }
827
+ }, [isClientReady, propertiesTableData, properties, seedLocalId, seedUid, queryClient, itemPropertiesQueryKey]);
828
+ useEffect(() => {
829
+ previousTableDataRef.current = undefined;
830
+ }, [seedLocalId, seedUid]);
831
+ return {
832
+ properties,
833
+ isLoading,
834
+ error: queryError,
835
+ };
836
+ }
837
+ /**
838
+ * Hook to create an ItemProperty with loading and error state.
839
+ * create(props) creates a new property instance for an item; provide seedLocalId or seedUid, propertyName, and modelName.
840
+ */
841
+ const useCreateItemProperty = () => {
842
+ const subscriptionRef = useRef(undefined);
843
+ const [isLoading, setIsLoading] = useState(false);
844
+ const [error, setError] = useState(null);
845
+ const resetError = useCallback(() => setError(null), []);
846
+ const create = useCallback((props) => {
847
+ if (!props.propertyName || (!props.seedLocalId && !props.seedUid) || !props.modelName) {
848
+ const err = new Error('seedLocalId or seedUid, propertyName, and modelName are required');
849
+ setError(err);
850
+ return undefined;
851
+ }
852
+ setError(null);
853
+ setIsLoading(true);
854
+ subscriptionRef.current?.unsubscribe();
855
+ subscriptionRef.current = undefined;
856
+ const instance = ItemProperty.create(props, { waitForReady: false });
857
+ if (!instance) {
858
+ setError(new Error('Failed to create item property'));
859
+ setIsLoading(false);
860
+ return undefined;
861
+ }
862
+ const subscription = instance.getService().subscribe((snapshot) => {
863
+ if (snapshot?.value === 'error') {
864
+ const err = snapshot.context?._loadingError?.error ?? new Error('Failed to create item property');
865
+ setError(err instanceof Error ? err : new Error(String(err)));
866
+ setIsLoading(false);
867
+ }
868
+ if (snapshot?.value === 'idle') {
869
+ setError(null);
870
+ setIsLoading(false);
871
+ }
872
+ });
873
+ subscriptionRef.current = subscription;
874
+ return instance;
875
+ }, []);
876
+ useEffect(() => {
877
+ return () => {
878
+ subscriptionRef.current?.unsubscribe();
879
+ subscriptionRef.current = undefined;
880
+ };
881
+ }, []);
882
+ return {
883
+ create,
884
+ isLoading,
885
+ error,
886
+ resetError,
887
+ };
888
+ };
889
+ const useDestroyItemProperty = () => {
890
+ const [currentInstance, setCurrentInstance] = useState(null);
891
+ const [destroyState, setDestroyState] = useState({
892
+ isLoading: false,
893
+ error: null,
894
+ });
895
+ useEffect(() => {
896
+ if (!currentInstance) {
897
+ setDestroyState({ isLoading: false, error: null });
898
+ return;
899
+ }
900
+ const service = currentInstance.getService();
901
+ const update = () => {
902
+ const snap = service.getSnapshot();
903
+ const ctx = snap.context;
904
+ setDestroyState({
905
+ isLoading: !!ctx._destroyInProgress,
906
+ error: ctx._destroyError ? new Error(ctx._destroyError.message) : null,
907
+ });
908
+ };
909
+ update();
910
+ const sub = service.subscribe(update);
911
+ return () => sub.unsubscribe();
912
+ }, [currentInstance]);
913
+ const destroy = useCallback(async (itemProperty) => {
914
+ if (!itemProperty)
915
+ return;
916
+ setCurrentInstance(itemProperty);
917
+ await itemProperty.destroy();
918
+ }, []);
919
+ const resetError = useCallback(() => {
920
+ if (currentInstance) {
921
+ currentInstance.getService().send({ type: 'clearDestroyError' });
922
+ }
923
+ }, [currentInstance]);
924
+ return {
925
+ destroy,
926
+ isLoading: destroyState.isLoading,
927
+ error: destroyState.error,
928
+ resetError,
929
+ };
930
+ };
931
+
932
+ debug('seedSdk:react:services');
933
+
934
+ debug('seedSdk:react:db');
935
+
936
+ const logger = debug('seedSdk:react:schema');
937
+ /**
938
+ * Hook to get a Schema class instance (with setters) that is reactive
939
+ * This allows you to edit schema properties directly like: schema.name = 'New name'
940
+ * The schema instance uses a Proxy to ensure React re-renders when properties change
941
+ * @param schemaIdentifier - The name of the schema or the schema file ID
942
+ * - If a name is provided, retrieves the latest version with that name
943
+ * - If an ID is provided, retrieves the specific schema by ID
944
+ * @returns Object with schema instance
945
+ */
946
+ const useSchema = (schemaIdentifier) => {
947
+ const [schema, setSchema] = useState(null);
948
+ const [isLoading, setIsLoading] = useState(schemaIdentifier ? true : false);
949
+ const [error, setError] = useState(null);
950
+ const subscriptionRef = useRef(null);
951
+ const isClientReady = useIsClientReady();
952
+ const loadSchema = useCallback((identifier) => {
953
+ setIsLoading(true);
954
+ setError(null);
955
+ try {
956
+ const schemaInstance = Schema.create(identifier, {
957
+ waitForReady: false,
958
+ });
959
+ setSchema(schemaInstance);
960
+ const service = schemaInstance.getService();
961
+ const initialSnapshot = service.getSnapshot();
962
+ // Set initial loading state based on whether status is 'idle'
963
+ const isIdle = initialSnapshot.value === 'idle';
964
+ if (isIdle) {
965
+ flushSync(() => setIsLoading(false));
966
+ setError(null);
967
+ }
968
+ else {
969
+ setIsLoading(true);
970
+ }
971
+ // Subscribe to all status changes and update isLoading based on whether status is 'idle'
972
+ subscriptionRef.current = service.subscribe((snapshot) => {
973
+ const isIdle = snapshot.value === 'idle';
974
+ if (isIdle) {
975
+ flushSync(() => setIsLoading(false));
976
+ setError(null);
977
+ }
978
+ else {
979
+ setIsLoading(true);
980
+ }
981
+ });
982
+ }
983
+ catch (error) {
984
+ logger('[useSchema] Error creating schema:', error);
985
+ setError(error);
986
+ setSchema(null);
987
+ setIsLoading(false);
988
+ return null;
989
+ }
990
+ }, []);
991
+ useEffect(() => {
992
+ // Clean up previous subscription before starting a new load
993
+ if (subscriptionRef.current) {
994
+ subscriptionRef.current.unsubscribe();
995
+ subscriptionRef.current = null;
996
+ }
997
+ if (!isClientReady) {
998
+ setSchema(null);
999
+ setError(null);
1000
+ setIsLoading(false);
1001
+ return;
1002
+ }
1003
+ if (!schemaIdentifier) {
1004
+ setSchema(null);
1005
+ setError(null);
1006
+ setIsLoading(false);
1007
+ return;
1008
+ }
1009
+ loadSchema(schemaIdentifier);
1010
+ // Cleanup function to unsubscribe when effect re-runs or component unmounts
1011
+ return () => {
1012
+ if (subscriptionRef.current) {
1013
+ subscriptionRef.current.unsubscribe();
1014
+ subscriptionRef.current = null;
1015
+ }
1016
+ };
1017
+ }, [schemaIdentifier, isClientReady, loadSchema]);
1018
+ return {
1019
+ schema,
1020
+ isLoading,
1021
+ error,
1022
+ };
1023
+ };
1024
+ const SEED_SCHEMAS_QUERY_KEY = ['seed', 'schemas'];
1025
+ const useSchemas = () => {
1026
+ const isClientReady = useIsClientReady();
1027
+ const queryClient = useQueryClient();
1028
+ const previousSchemasTableDataRef = useRef(undefined);
1029
+ const schemasRef = useRef([]);
1030
+ const { data: schemas$1 = [], isLoading, error: queryError, } = useQuery({
1031
+ queryKey: SEED_SCHEMAS_QUERY_KEY,
1032
+ queryFn: () => Schema.all({ waitForReady: true }),
1033
+ enabled: isClientReady,
1034
+ });
1035
+ schemasRef.current = schemas$1;
1036
+ // Watch the schemas table for changes and invalidate so useQuery refetches
1037
+ const db = isClientReady ? BaseDb.getAppDb() : null;
1038
+ const schemasQuery = useMemo(() => {
1039
+ if (!db)
1040
+ return null;
1041
+ return db.select().from(schemas).orderBy(schemas.name, desc(schemas.version));
1042
+ }, [db, isClientReady]);
1043
+ const schemasTableData = useLiveQuery(schemasQuery);
1044
+ useEffect(() => {
1045
+ if (!isClientReady || !schemasTableData) {
1046
+ return;
1047
+ }
1048
+ const prevData = previousSchemasTableDataRef.current;
1049
+ const prevDataJson = prevData ? JSON.stringify(prevData) : 'undefined';
1050
+ const currDataJson = schemasTableData ? JSON.stringify(schemasTableData) : 'undefined';
1051
+ if (prevDataJson === currDataJson && prevData !== undefined) {
1052
+ return;
1053
+ }
1054
+ previousSchemasTableDataRef.current = schemasTableData;
1055
+ const currentSchemasSet = new Set();
1056
+ for (const schema of schemasRef.current) {
1057
+ const schemaFileId = schema.id || schema.schemaFileId;
1058
+ if (schemaFileId) {
1059
+ currentSchemasSet.add(schemaFileId);
1060
+ }
1061
+ else {
1062
+ const name = schema.metadata?.name;
1063
+ const version = schema.version;
1064
+ if (name && version !== undefined) {
1065
+ currentSchemasSet.add(`${name}:${version}`);
1066
+ }
1067
+ }
1068
+ }
1069
+ const tableDataSchemasSet = new Set();
1070
+ for (const dbSchema of schemasTableData) {
1071
+ if (dbSchema.name === 'Seed Protocol')
1072
+ continue;
1073
+ if (dbSchema.schemaFileId) {
1074
+ tableDataSchemasSet.add(dbSchema.schemaFileId);
1075
+ }
1076
+ else if (dbSchema.name != null && dbSchema.version !== undefined) {
1077
+ tableDataSchemasSet.add(`${dbSchema.name}:${dbSchema.version}`);
1078
+ }
1079
+ }
1080
+ const setsAreEqual = currentSchemasSet.size === tableDataSchemasSet.size &&
1081
+ [...currentSchemasSet].every((id) => tableDataSchemasSet.has(id));
1082
+ if (!setsAreEqual) {
1083
+ queryClient.invalidateQueries({ queryKey: SEED_SCHEMAS_QUERY_KEY });
1084
+ }
1085
+ }, [isClientReady, schemasTableData, queryClient]);
1086
+ return {
1087
+ schemas: schemas$1,
1088
+ isLoading,
1089
+ error: queryError,
1090
+ };
1091
+ };
1092
+ const useCreateSchema = () => {
1093
+ const subscriptionRef = useRef(null);
1094
+ const [isLoading, setIsLoading] = useState(false);
1095
+ const [error, setError] = useState(null);
1096
+ const resetError = useCallback(() => setError(null), []);
1097
+ const createSchema = useCallback((schemaName) => {
1098
+ setError(null);
1099
+ setIsLoading(true);
1100
+ subscriptionRef.current?.unsubscribe();
1101
+ subscriptionRef.current = null;
1102
+ const schema = Schema.create(schemaName, {
1103
+ waitForReady: false,
1104
+ });
1105
+ const subscription = schema.getService().subscribe((snapshot) => {
1106
+ if (snapshot.value === 'error') {
1107
+ const err = snapshot.context._loadingError?.error;
1108
+ setError(err instanceof Error ? err : new Error('Failed to create schema'));
1109
+ setIsLoading(false);
1110
+ }
1111
+ if (snapshot.value === 'idle') {
1112
+ setError(null);
1113
+ setIsLoading(false);
1114
+ }
1115
+ });
1116
+ subscriptionRef.current = subscription;
1117
+ return schema;
1118
+ }, []);
1119
+ useEffect(() => {
1120
+ return () => {
1121
+ subscriptionRef.current?.unsubscribe();
1122
+ subscriptionRef.current = null;
1123
+ };
1124
+ }, []);
1125
+ return {
1126
+ createSchema,
1127
+ isLoading,
1128
+ error,
1129
+ resetError,
1130
+ };
1131
+ };
1132
+ const useDestroySchema = () => {
1133
+ const [currentInstance, setCurrentInstance] = useState(null);
1134
+ const [destroyState, setDestroyState] = useState({
1135
+ isLoading: false,
1136
+ error: null,
1137
+ });
1138
+ useEffect(() => {
1139
+ if (!currentInstance) {
1140
+ setDestroyState({ isLoading: false, error: null });
1141
+ return;
1142
+ }
1143
+ const service = currentInstance.getService();
1144
+ const update = () => {
1145
+ const snap = service.getSnapshot();
1146
+ const ctx = snap.context;
1147
+ setDestroyState({
1148
+ isLoading: !!ctx._destroyInProgress,
1149
+ error: ctx._destroyError ? new Error(ctx._destroyError.message) : null,
1150
+ });
1151
+ };
1152
+ update();
1153
+ const sub = service.subscribe(update);
1154
+ return () => sub.unsubscribe();
1155
+ }, [currentInstance]);
1156
+ const destroy = useCallback(async (schema) => {
1157
+ if (!schema)
1158
+ return;
1159
+ setCurrentInstance(schema);
1160
+ await schema.destroy();
1161
+ }, []);
1162
+ const resetError = useCallback(() => {
1163
+ if (currentInstance) {
1164
+ currentInstance.getService().send({ type: 'clearDestroyError' });
1165
+ }
1166
+ }, [currentInstance]);
1167
+ return {
1168
+ destroy,
1169
+ isLoading: destroyState.isLoading,
1170
+ error: destroyState.error,
1171
+ resetError,
1172
+ };
1173
+ };
1174
+ const useAllSchemaVersions = () => {
1175
+ const [schemaInstances, setSchemaInstances] = useState();
1176
+ const schemaInstancesRef = useRef(new Map());
1177
+ const isClientReady = useIsClientReady();
1178
+ const fetchSchemas = useCallback(async () => {
1179
+ if (!isClientReady) {
1180
+ return;
1181
+ }
1182
+ try {
1183
+ // Use DB-first approach: load all schemas from database
1184
+ // This will also import any missing schemas from files
1185
+ const allSchemasData = await loadAllSchemasFromDb();
1186
+ // Extract unique schema names
1187
+ const schemaNames = new Set();
1188
+ for (const schemaData of allSchemasData) {
1189
+ const schemaName = schemaData.schema.metadata?.name;
1190
+ if (schemaName) {
1191
+ schemaNames.add(schemaName);
1192
+ }
1193
+ }
1194
+ // Create/update Schema instances
1195
+ const currentInstances = new Map();
1196
+ for (const schemaName of schemaNames) {
1197
+ // Reuse existing instance if it exists
1198
+ if (schemaInstancesRef.current.has(schemaName)) {
1199
+ const existingInstance = schemaInstancesRef.current.get(schemaName);
1200
+ currentInstances.set(schemaName, existingInstance);
1201
+ }
1202
+ else {
1203
+ // Create new instance
1204
+ const schema = Schema.create(schemaName, {
1205
+ waitForReady: false,
1206
+ });
1207
+ currentInstances.set(schemaName, schema);
1208
+ }
1209
+ }
1210
+ // Cleanup instances that are no longer needed
1211
+ for (const [name, instance] of schemaInstancesRef.current.entries()) {
1212
+ if (!schemaNames.has(name)) {
1213
+ instance.unload();
1214
+ }
1215
+ }
1216
+ // Update ref and state
1217
+ schemaInstancesRef.current = currentInstances;
1218
+ setSchemaInstances(Array.from(currentInstances.values()));
1219
+ }
1220
+ catch (error) {
1221
+ logger('Error fetching all schema versions from database:', error);
1222
+ setSchemaInstances(null);
1223
+ }
1224
+ }, [isClientReady]);
1225
+ useEffect(() => {
1226
+ if (!isClientReady) {
1227
+ return;
1228
+ }
1229
+ fetchSchemas();
1230
+ }, [isClientReady, fetchSchemas]);
1231
+ // Cleanup on unmount
1232
+ useEffect(() => {
1233
+ return () => {
1234
+ schemaInstancesRef.current.forEach((instance) => {
1235
+ instance.unload();
1236
+ });
1237
+ schemaInstancesRef.current.clear();
1238
+ };
1239
+ }, []);
1240
+ return schemaInstances;
1241
+ };
1242
+
1243
+ /**
1244
+ * Hook to get all Model instances for a specific schema
1245
+ * Uses useLiveQuery to watch for changes in the models table and automatically
1246
+ * updates the returned Model instances when changes occur.
1247
+ * @param schemaId - The schema ID (schema file ID) or schema name to get models from
1248
+ * @returns Array of Model instances belonging to the schema
1249
+ */
1250
+ const getModelsQueryKey = (schemaId) => ['seed', 'models', schemaId];
1251
+ // Last-known-good models per schemaId so we never flash [] after remount or refetch race (survives component unmount).
1252
+ const lastModelsBySchemaId = new Map();
1253
+ const useModels = (schemaId) => {
1254
+ const isClientReady = useIsClientReady();
1255
+ const queryClient = useQueryClient();
1256
+ const modelsRef = useRef([]);
1257
+ const queryKey = useMemo(() => getModelsQueryKey(schemaId), [schemaId]);
1258
+ const { data: models$1 = [], isLoading, error: queryError, } = useQuery({
1259
+ queryKey,
1260
+ queryFn: async () => {
1261
+ // Capture previous data before any async work so we don't overwrite good cache with [].
1262
+ const prev = queryClient.getQueryData(queryKey);
1263
+ // Use waitForReady: false so we return models as soon as they exist; waitForReady: true
1264
+ // filters to only idle models and can return [] while a model is in creatingProperties.
1265
+ const next = await Model.all(schemaId, { waitForReady: false });
1266
+ // getModelsData can intermittently return [] after returning data; keep prev to avoid overwrite.
1267
+ if (Array.isArray(prev) && prev.length > 0 && Array.isArray(next) && next.length === 0) {
1268
+ return [...prev];
1269
+ }
1270
+ // If this refetch returned [], avoid overwriting non-empty cache (e.g. race where another refetch already wrote data).
1271
+ if (Array.isArray(next) && next.length === 0) {
1272
+ const current = queryClient.getQueryData(queryKey);
1273
+ if (Array.isArray(current) && current.length > 0) {
1274
+ return [...current];
1275
+ }
1276
+ }
1277
+ return next;
1278
+ },
1279
+ enabled: isClientReady && !!schemaId,
1280
+ });
1281
+ // Never expose [] when we previously had models (avoids flash from refetch races, remounts, or intermittent getModelsData returning []).
1282
+ // When schemaId is null/undefined, always show [] — do not use fallback from a previous schema.
1283
+ const schemaIdKey = schemaId && typeof schemaId === 'string' ? schemaId : '';
1284
+ if (models$1.length > 0) {
1285
+ lastModelsBySchemaId.set(schemaIdKey, models$1);
1286
+ }
1287
+ const fallback = modelsRef.current.length > 0 ? modelsRef.current : lastModelsBySchemaId.get(schemaIdKey);
1288
+ const displayModels = !schemaId
1289
+ ? models$1
1290
+ : models$1.length > 0
1291
+ ? models$1
1292
+ : fallback?.length
1293
+ ? fallback
1294
+ : models$1;
1295
+ modelsRef.current = displayModels;
1296
+ // When a model is created, writeModelToDb posts to this channel; live query over join often doesn't re-run
1297
+ useEffect(() => {
1298
+ if (!schemaId || typeof BroadcastChannel === 'undefined')
1299
+ return;
1300
+ const ch = new BroadcastChannel('seed-models-invalidate');
1301
+ const onMessage = (event) => {
1302
+ const { schemaName, schemaFileId } = event.data || {};
1303
+ if (schemaId === schemaName || schemaId === schemaFileId) {
1304
+ queryClient.invalidateQueries({ queryKey });
1305
+ queryClient.refetchQueries({ queryKey });
1306
+ }
1307
+ };
1308
+ ch.addEventListener('message', onMessage);
1309
+ return () => {
1310
+ ch.removeEventListener('message', onMessage);
1311
+ ch.close();
1312
+ };
1313
+ }, [schemaId, queryClient, queryKey]);
1314
+ // Stabilize query reference: only recreate when (schemaId, isClientReady) change, not when db reference changes.
1315
+ // This keeps the same liveQuery observable/subscription alive so effects can deliver updates when a new model is added.
1316
+ const stableModelsQueryKeyRef = useRef(null);
1317
+ const stableModelsQueryRef = useRef(null);
1318
+ function buildModelsQuery() {
1319
+ const currentDb = BaseDb.getAppDb();
1320
+ if (!currentDb || !schemaId)
1321
+ return null;
1322
+ return currentDb
1323
+ .select({
1324
+ modelFileId: models.schemaFileId,
1325
+ modelName: models.name,
1326
+ })
1327
+ .from(schemas)
1328
+ .innerJoin(modelSchemas, eq(schemas.id, modelSchemas.schemaId))
1329
+ .innerJoin(models, eq(modelSchemas.modelId, models.id))
1330
+ .where(or(eq(schemas.schemaFileId, schemaId), eq(schemas.name, schemaId)));
1331
+ }
1332
+ const modelsQuery = useMemo(() => {
1333
+ if (!schemaId || !isClientReady)
1334
+ return null;
1335
+ const key = { schemaId, ready: isClientReady };
1336
+ const prevKey = stableModelsQueryKeyRef.current;
1337
+ if (prevKey &&
1338
+ prevKey.schemaId === key.schemaId &&
1339
+ prevKey.ready === key.ready &&
1340
+ stableModelsQueryRef.current !== null) {
1341
+ return stableModelsQueryRef.current;
1342
+ }
1343
+ const q = buildModelsQuery();
1344
+ if (!q)
1345
+ return null;
1346
+ stableModelsQueryKeyRef.current = key;
1347
+ stableModelsQueryRef.current = q;
1348
+ return q;
1349
+ }, [schemaId, isClientReady]);
1350
+ const modelsTableData = useLiveQuery(modelsQuery);
1351
+ useEffect(() => {
1352
+ if (!isClientReady || !modelsTableData || !schemaId)
1353
+ return;
1354
+ const currentModelsSet = new Set();
1355
+ for (const model of modelsRef.current) {
1356
+ const modelFileId = model.id || model.modelFileId;
1357
+ if (modelFileId)
1358
+ currentModelsSet.add(modelFileId);
1359
+ else if (model.modelName)
1360
+ currentModelsSet.add(model.modelName);
1361
+ }
1362
+ const tableDataModelsSet = new Set();
1363
+ for (const dbModel of modelsTableData) {
1364
+ if (dbModel.modelFileId)
1365
+ tableDataModelsSet.add(dbModel.modelFileId);
1366
+ else if (dbModel.modelName)
1367
+ tableDataModelsSet.add(dbModel.modelName);
1368
+ }
1369
+ const setsAreEqual = currentModelsSet.size === tableDataModelsSet.size &&
1370
+ [...currentModelsSet].every((id) => tableDataModelsSet.has(id));
1371
+ // Only invalidate when the table has rows we might be missing (live query saw new data).
1372
+ // Do NOT invalidate when we have more than the table: the live query may not have updated
1373
+ // yet (e.g. join over model_schemas), and refetching would overwrite cache with [].
1374
+ const tableHasNewRows = tableDataModelsSet.size > 0 &&
1375
+ [...tableDataModelsSet].some((id) => !currentModelsSet.has(id));
1376
+ if (!setsAreEqual && tableHasNewRows) {
1377
+ queryClient.invalidateQueries({ queryKey });
1378
+ }
1379
+ }, [isClientReady, modelsTableData, schemaId, queryClient, queryKey]);
1380
+ return {
1381
+ models: displayModels,
1382
+ isLoading,
1383
+ error: queryError,
1384
+ };
1385
+ };
1386
+ /**
1387
+ * Hook to get a specific Model instance
1388
+ * Can be called in two ways:
1389
+ * 1. With schemaId and modelName: useModel(schemaId, modelName)
1390
+ * 2. With modelId: useModel(modelId)
1391
+ *
1392
+ * @param schemaIdOrModelId - The schema ID (schema file ID) OR the model ID (modelFileId)
1393
+ * @param modelName - The name of the model to retrieve (required if first param is schemaId)
1394
+ * @returns Object with model, isLoading, and error
1395
+ */
1396
+ const useModel = (schemaIdOrModelId, modelName) => {
1397
+ const isClientReady = useIsClientReady();
1398
+ const [model, setModel] = useState(undefined);
1399
+ const [isLoading, setIsLoading] = useState(false);
1400
+ const [error, setError] = useState(null);
1401
+ const subscriptionRef = useRef(undefined);
1402
+ const [, setVersion] = useState(0); // Version counter to force re-renders
1403
+ // If modelName is provided, treat first param as schemaId
1404
+ // Otherwise, treat first param as modelId
1405
+ const isModelIdLookup = modelName === undefined || modelName === null;
1406
+ // Determine initial loading state
1407
+ useMemo(() => {
1408
+ if (!isClientReady)
1409
+ return false;
1410
+ if (isModelIdLookup) {
1411
+ return !!schemaIdOrModelId;
1412
+ }
1413
+ else {
1414
+ return !!(schemaIdOrModelId && modelName);
1415
+ }
1416
+ }, [isClientReady, isModelIdLookup, schemaIdOrModelId, modelName]);
1417
+ // Lookup model by ID if needed
1418
+ useEffect(() => {
1419
+ if (!isClientReady || !isModelIdLookup || !schemaIdOrModelId) {
1420
+ setModel(undefined);
1421
+ setIsLoading(false);
1422
+ setError(null);
1423
+ return;
1424
+ }
1425
+ const lookupModelById = async () => {
1426
+ try {
1427
+ setIsLoading(true);
1428
+ setError(null);
1429
+ // Use Model.createById which handles cache + DB lookup
1430
+ const foundModel = await Model.createById(schemaIdOrModelId);
1431
+ setModel(foundModel || undefined);
1432
+ setIsLoading(false);
1433
+ setError(null);
1434
+ }
1435
+ catch (error) {
1436
+ console.error('[useModel] Error looking up model by ID:', error);
1437
+ setModel(undefined);
1438
+ setIsLoading(false);
1439
+ setError(error);
1440
+ }
1441
+ };
1442
+ lookupModelById();
1443
+ }, [isClientReady, isModelIdLookup, schemaIdOrModelId]);
1444
+ // Subscribe to service changes when model is available (for modelId lookup)
1445
+ useEffect(() => {
1446
+ if (!isModelIdLookup || !model) {
1447
+ // Clean up subscription if model is not available
1448
+ subscriptionRef.current?.unsubscribe();
1449
+ subscriptionRef.current = undefined;
1450
+ return;
1451
+ }
1452
+ // Clean up previous subscription
1453
+ subscriptionRef.current?.unsubscribe();
1454
+ // Subscribe to service changes
1455
+ const subscription = model.getService().subscribe((snapshot) => {
1456
+ // Force re-render by incrementing version counter
1457
+ setVersion(prev => prev + 1);
1458
+ });
1459
+ subscriptionRef.current = subscription;
1460
+ return () => {
1461
+ subscriptionRef.current?.unsubscribe();
1462
+ subscriptionRef.current = undefined;
1463
+ };
1464
+ }, [isModelIdLookup, model]);
1465
+ // If doing modelId lookup, return the model directly
1466
+ if (isModelIdLookup) {
1467
+ return {
1468
+ model,
1469
+ isLoading,
1470
+ error,
1471
+ };
1472
+ }
1473
+ // Otherwise, use schemaId + modelName lookup via useModels
1474
+ const { models: modelsList, isLoading: modelsLoading, error: modelsError } = useModels(schemaIdOrModelId);
1475
+ const foundModel = useMemo(() => {
1476
+ if (!modelName) {
1477
+ return undefined;
1478
+ }
1479
+ // Try both modelName property and name getter for compatibility
1480
+ return modelsList.find((m) => {
1481
+ const mName = m.modelName ?? m.name;
1482
+ return mName === modelName;
1483
+ });
1484
+ }, [modelsList, modelName]);
1485
+ // Subscribe to service changes when model is available (for schemaId + modelName lookup)
1486
+ useEffect(() => {
1487
+ if (isModelIdLookup || !foundModel) {
1488
+ // Clean up subscription if model is not available
1489
+ subscriptionRef.current?.unsubscribe();
1490
+ subscriptionRef.current = undefined;
1491
+ return;
1492
+ }
1493
+ // Clean up previous subscription
1494
+ subscriptionRef.current?.unsubscribe();
1495
+ // Subscribe to service changes
1496
+ const subscription = foundModel.getService().subscribe((snapshot) => {
1497
+ // Force re-render by incrementing version counter
1498
+ setVersion(prev => prev + 1);
1499
+ });
1500
+ subscriptionRef.current = subscription;
1501
+ return () => {
1502
+ subscriptionRef.current?.unsubscribe();
1503
+ subscriptionRef.current = undefined;
1504
+ };
1505
+ }, [isModelIdLookup, foundModel]);
1506
+ // For schemaId + modelName lookup, derive loading/error from useModels
1507
+ return {
1508
+ model: foundModel,
1509
+ isLoading: modelsLoading,
1510
+ error: modelsError,
1511
+ };
1512
+ };
1513
+ const useCreateModel = () => {
1514
+ const subscriptionRef = useRef(undefined);
1515
+ const [isLoading, setIsLoading] = useState(false);
1516
+ const [error, setError] = useState(null);
1517
+ const resetError = useCallback(() => setError(null), []);
1518
+ const create = useCallback((schemaName, modelName, options) => {
1519
+ setError(null);
1520
+ setIsLoading(true);
1521
+ subscriptionRef.current?.unsubscribe();
1522
+ subscriptionRef.current = undefined;
1523
+ const model = Model.create(modelName, schemaName, {
1524
+ ...options,
1525
+ waitForReady: false,
1526
+ });
1527
+ const subscription = model.getService().subscribe((snapshot) => {
1528
+ if (snapshot.value === 'error') {
1529
+ setError(snapshot.context._loadingError?.error ??
1530
+ new Error('Failed to create model'));
1531
+ setIsLoading(false);
1532
+ }
1533
+ if (snapshot.value === 'idle') {
1534
+ setError(null);
1535
+ setIsLoading(false);
1536
+ }
1537
+ });
1538
+ subscriptionRef.current = subscription;
1539
+ return model;
1540
+ }, []);
1541
+ useEffect(() => {
1542
+ return () => {
1543
+ subscriptionRef.current?.unsubscribe();
1544
+ subscriptionRef.current = undefined;
1545
+ };
1546
+ }, []);
1547
+ return {
1548
+ create,
1549
+ isLoading,
1550
+ error,
1551
+ resetError,
1552
+ };
1553
+ };
1554
+ const useDestroyModel = () => {
1555
+ const [currentInstance, setCurrentInstance] = useState(null);
1556
+ const [destroyState, setDestroyState] = useState({
1557
+ isLoading: false,
1558
+ error: null,
1559
+ });
1560
+ useEffect(() => {
1561
+ if (!currentInstance) {
1562
+ setDestroyState({ isLoading: false, error: null });
1563
+ return;
1564
+ }
1565
+ const service = currentInstance.getService();
1566
+ const update = () => {
1567
+ const snap = service.getSnapshot();
1568
+ const ctx = snap.context;
1569
+ setDestroyState({
1570
+ isLoading: !!ctx._destroyInProgress,
1571
+ error: ctx._destroyError ? new Error(ctx._destroyError.message) : null,
1572
+ });
1573
+ };
1574
+ update();
1575
+ const sub = service.subscribe(update);
1576
+ return () => sub.unsubscribe();
1577
+ }, [currentInstance]);
1578
+ const destroy = useCallback(async (model) => {
1579
+ if (!model)
1580
+ return;
1581
+ setCurrentInstance(model);
1582
+ await model.destroy();
1583
+ }, []);
1584
+ const resetError = useCallback(() => {
1585
+ if (currentInstance) {
1586
+ currentInstance.getService().send({ type: 'clearDestroyError' });
1587
+ }
1588
+ }, [currentInstance]);
1589
+ return {
1590
+ destroy,
1591
+ isLoading: destroyState.isLoading,
1592
+ error: destroyState.error,
1593
+ resetError,
1594
+ };
1595
+ };
1596
+
1597
+ debug('seedSdk:browser:react:modelProperty');
1598
+ /**
1599
+ * Hook to get all ModelProperty instances for a specific model
1600
+ * Can be called in two ways:
1601
+ * 1. With schemaId and modelName: useModelProperties(schemaId, modelName)
1602
+ * 2. With modelId: useModelProperties(modelId)
1603
+ *
1604
+ * Uses useLiveQuery to watch for changes in the properties table and automatically
1605
+ * updates the returned ModelProperty instances when changes occur.
1606
+ *
1607
+ * @param schemaIdOrModelId - The schema ID (schema file ID) OR the model ID (modelFileId)
1608
+ * @param modelName - The name of the model to get properties from (required if first param is schemaId)
1609
+ * @returns Object with modelProperties array, isLoading, and error
1610
+ */
1611
+ const useModelProperties = (schemaIdOrModelId, modelName) => {
1612
+ // Use useModel to handle both lookup patterns (by ID or by schemaId + modelName)
1613
+ const { model } = useModel(schemaIdOrModelId, modelName);
1614
+ // Determine the modelName for use in getPropertySchema
1615
+ useMemo(() => {
1616
+ if (!model)
1617
+ return undefined;
1618
+ try {
1619
+ return model.modelName ?? model.name;
1620
+ }
1621
+ catch {
1622
+ return undefined;
1623
+ }
1624
+ }, [model]);
1625
+ const isClientReady = useIsClientReady();
1626
+ const queryClient = useQueryClient();
1627
+ // Get _dbId (database ID) from model context
1628
+ const dbModelId = useMemo(() => {
1629
+ if (!model)
1630
+ return null;
1631
+ try {
1632
+ const context = model._getSnapshotContext();
1633
+ return context._dbId;
1634
+ }
1635
+ catch {
1636
+ return null;
1637
+ }
1638
+ }, [model]);
1639
+ const modelId = model?.id;
1640
+ const modelPropertiesQueryKey = useMemo(() => ['seed', 'modelProperties', modelId ?? ''], [modelId]);
1641
+ const { data: modelProperties = [], isLoading, error: queryError, } = useQuery({
1642
+ queryKey: modelPropertiesQueryKey,
1643
+ queryFn: () => ModelProperty.all(modelId, { waitForReady: true }),
1644
+ enabled: isClientReady && !!modelId,
1645
+ });
1646
+ const db = isClientReady ? BaseDb.getAppDb() : null;
1647
+ const propertiesQuery = useMemo(() => {
1648
+ if (!db || !dbModelId)
1649
+ return null;
1650
+ return db
1651
+ .select({
1652
+ id: properties.id,
1653
+ name: properties.name,
1654
+ dataType: properties.dataType,
1655
+ schemaFileId: properties.schemaFileId,
1656
+ })
1657
+ .from(properties)
1658
+ .where(eq(properties.modelId, dbModelId));
1659
+ }, [db, isClientReady, dbModelId]);
1660
+ const propertiesTableData = useLiveQuery(propertiesQuery);
1661
+ const modelPropertiesRef = useRef([]);
1662
+ modelPropertiesRef.current = modelProperties;
1663
+ // Fallback: when we have modelId but query returned [] (e.g. properties not in DB yet or
1664
+ // propertiesTableData is undefined because model._dbId isn't set yet), schedule refetches
1665
+ // so we pick up properties after they're written.
1666
+ useEffect(() => {
1667
+ if (!modelId || modelProperties.length > 0 || !queryClient || !modelPropertiesQueryKey)
1668
+ return;
1669
+ const delays = [400, 1200, 2500];
1670
+ const timers = delays.map((ms) => setTimeout(() => {
1671
+ queryClient.invalidateQueries({ queryKey: modelPropertiesQueryKey });
1672
+ }, ms));
1673
+ return () => timers.forEach((t) => clearTimeout(t));
1674
+ }, [modelId, modelProperties.length, queryClient, modelPropertiesQueryKey]);
1675
+ useEffect(() => {
1676
+ if (!isClientReady || !model?.id || !propertiesTableData || !modelPropertiesQueryKey)
1677
+ return;
1678
+ const currentPropertiesSet = new Set();
1679
+ for (const prop of modelPropertiesRef.current) {
1680
+ const context = prop._getSnapshotContext();
1681
+ const propertyFileId = context?.id;
1682
+ if (propertyFileId)
1683
+ currentPropertiesSet.add(propertyFileId);
1684
+ else if (prop.name)
1685
+ currentPropertiesSet.add(prop.name);
1686
+ }
1687
+ const tableDataPropertiesSet = new Set();
1688
+ for (const dbProperty of propertiesTableData) {
1689
+ if (dbProperty.schemaFileId)
1690
+ tableDataPropertiesSet.add(dbProperty.schemaFileId);
1691
+ else if (dbProperty.name)
1692
+ tableDataPropertiesSet.add(dbProperty.name);
1693
+ }
1694
+ const setsAreEqual = currentPropertiesSet.size === tableDataPropertiesSet.size &&
1695
+ (currentPropertiesSet.size === 0 ||
1696
+ [...currentPropertiesSet].every((id) => tableDataPropertiesSet.has(id)));
1697
+ // Invalidate when cached list is out of sync with the table: either we have stale cached data
1698
+ // (currentPropertiesSet.size > 0) or the table has new rows we don't have yet (tableDataPropertiesSet.size > 0).
1699
+ // The latter handles the case where the initial query returned [] before properties were written.
1700
+ const shouldInvalidate = !setsAreEqual && (currentPropertiesSet.size > 0 || tableDataPropertiesSet.size > 0);
1701
+ if (shouldInvalidate) {
1702
+ queryClient.invalidateQueries({ queryKey: modelPropertiesQueryKey });
1703
+ }
1704
+ }, [isClientReady, propertiesTableData, model?.id, queryClient, modelPropertiesQueryKey]);
1705
+ return {
1706
+ modelProperties,
1707
+ isLoading,
1708
+ error: queryError,
1709
+ };
1710
+ };
1711
+ /**
1712
+ * Helper function to get property schema by modelFileId and propertyName
1713
+ */
1714
+ const getPropertySchemaByModelFileId = async (modelFileId, propertyName) => {
1715
+ // Get model by modelFileId
1716
+ const model = await Model.createById(modelFileId);
1717
+ if (!model) {
1718
+ return undefined;
1719
+ }
1720
+ // Get modelName from model
1721
+ const modelName = model.modelName ?? model.name;
1722
+ if (!modelName) {
1723
+ return undefined;
1724
+ }
1725
+ // Use existing getPropertySchema function
1726
+ return getPropertySchema(modelName, propertyName);
1727
+ };
1728
+ function useModelProperty(arg1, arg2, arg3) {
1729
+ // Determine initial loading state - start loading if we have valid parameters
1730
+ const initialLoadingState = useMemo(() => {
1731
+ if (arg3 !== undefined && arg3 !== null) {
1732
+ // Three arguments: schemaId, modelName, propertyName
1733
+ return !!(arg1 && arg2 && arg3);
1734
+ }
1735
+ else if (arg2 !== undefined && arg2 !== null) {
1736
+ // Two arguments: modelFileId, propertyName
1737
+ return !!(arg1 && arg2);
1738
+ }
1739
+ else {
1740
+ // One argument: propertyFileId
1741
+ return !!arg1;
1742
+ }
1743
+ }, [arg1, arg2, arg3]);
1744
+ const [modelProperty, setModelProperty] = useState(undefined);
1745
+ const [isLoading, setIsLoading] = useState(initialLoadingState);
1746
+ const [error, setError] = useState(null);
1747
+ const subscriptionRef = useRef(undefined);
1748
+ const isClientReady = useIsClientReady();
1749
+ // Determine which lookup mode we're in based on arguments
1750
+ const lookupMode = useMemo(() => {
1751
+ if (arg3 !== undefined && arg3 !== null) {
1752
+ // Three arguments: schemaId, modelName, propertyName
1753
+ return { type: 'schemaId', schemaId: arg1, modelName: arg2, propertyName: arg3 };
1754
+ }
1755
+ else if (arg2 !== undefined && arg2 !== null) {
1756
+ // Two arguments: modelFileId, propertyName
1757
+ return { type: 'modelFileId', modelFileId: arg1, propertyName: arg2 };
1758
+ }
1759
+ else {
1760
+ // One argument: propertyFileId
1761
+ return { type: 'propertyFileId', propertyFileId: arg1 };
1762
+ }
1763
+ }, [arg1, arg2, arg3]);
1764
+ // Determine if we should be loading based on parameters
1765
+ const shouldLoad = useMemo(() => {
1766
+ if (!isClientReady)
1767
+ return false;
1768
+ if (lookupMode.type === 'propertyFileId') {
1769
+ return !!lookupMode.propertyFileId;
1770
+ }
1771
+ else if (lookupMode.type === 'modelFileId') {
1772
+ return !!(lookupMode.modelFileId && lookupMode.propertyName);
1773
+ }
1774
+ else {
1775
+ return !!(lookupMode.schemaId && lookupMode.modelName && lookupMode.propertyName);
1776
+ }
1777
+ }, [isClientReady, lookupMode]);
1778
+ const updateModelProperty = useCallback(async () => {
1779
+ if (!isClientReady) {
1780
+ setModelProperty(undefined);
1781
+ setIsLoading(false);
1782
+ setError(null);
1783
+ return;
1784
+ }
1785
+ let propertyData;
1786
+ let resolvedModelName;
1787
+ try {
1788
+ setIsLoading(true);
1789
+ setError(null);
1790
+ if (lookupMode.type === 'propertyFileId') {
1791
+ if (!lookupMode.propertyFileId) {
1792
+ setModelProperty(undefined);
1793
+ setIsLoading(false);
1794
+ setError(null);
1795
+ return;
1796
+ }
1797
+ // Use ModelProperty.createById for propertyFileId lookup
1798
+ const foundProperty = await ModelProperty.createById(lookupMode.propertyFileId);
1799
+ if (foundProperty) {
1800
+ setModelProperty(foundProperty);
1801
+ setIsLoading(false);
1802
+ setError(null);
1803
+ }
1804
+ else {
1805
+ setModelProperty(undefined);
1806
+ setIsLoading(false);
1807
+ setError(null);
1808
+ }
1809
+ return;
1810
+ }
1811
+ else if (lookupMode.type === 'modelFileId') {
1812
+ if (!lookupMode.modelFileId || !lookupMode.propertyName) {
1813
+ setModelProperty(undefined);
1814
+ setIsLoading(false);
1815
+ setError(null);
1816
+ return;
1817
+ }
1818
+ // Get property schema by modelFileId and propertyName
1819
+ // This function already gets the model and resolves modelName
1820
+ propertyData = await getPropertySchemaByModelFileId(lookupMode.modelFileId, lookupMode.propertyName);
1821
+ // Get modelName from model (needed for ModelProperty.create)
1822
+ const model = await Model.createById(lookupMode.modelFileId);
1823
+ resolvedModelName = model?.modelName ?? model?.name;
1824
+ }
1825
+ else {
1826
+ // lookupMode.type === 'schemaId'
1827
+ if (!lookupMode.schemaId || !lookupMode.modelName || !lookupMode.propertyName) {
1828
+ setModelProperty(undefined);
1829
+ setIsLoading(false);
1830
+ setError(null);
1831
+ return;
1832
+ }
1833
+ // Use existing getPropertySchema for schemaId + modelName + propertyName
1834
+ propertyData = await getPropertySchema(lookupMode.modelName, lookupMode.propertyName);
1835
+ resolvedModelName = lookupMode.modelName;
1836
+ }
1837
+ if (propertyData && resolvedModelName) {
1838
+ const createdProperty = ModelProperty.create({ ...propertyData, modelName: resolvedModelName }, { waitForReady: false });
1839
+ const resolvedProperty = createdProperty instanceof Promise ? await createdProperty : createdProperty;
1840
+ flushSync(() => {
1841
+ setModelProperty(resolvedProperty);
1842
+ setIsLoading(false);
1843
+ setError(null);
1844
+ });
1845
+ }
1846
+ else {
1847
+ setModelProperty(undefined);
1848
+ setIsLoading(false);
1849
+ setError(null);
1850
+ }
1851
+ }
1852
+ catch (error) {
1853
+ console.error('[useModelProperty] Error updating model property:', error);
1854
+ setModelProperty(undefined);
1855
+ setIsLoading(false);
1856
+ setError(error);
1857
+ }
1858
+ }, [isClientReady, lookupMode.type, lookupMode.propertyFileId, lookupMode.modelFileId, lookupMode.propertyName, lookupMode.schemaId, lookupMode.modelName]);
1859
+ // Fetch/refetch when lookup parameters change or client becomes ready
1860
+ useEffect(() => {
1861
+ if (!shouldLoad) {
1862
+ setModelProperty(undefined);
1863
+ setIsLoading(false);
1864
+ setError(null);
1865
+ return;
1866
+ }
1867
+ updateModelProperty();
1868
+ }, [shouldLoad, updateModelProperty]);
1869
+ // Subscribe to service changes when modelProperty is available.
1870
+ // Skip subscription for schemaId/modelFileId lookups where we created the instance locally—
1871
+ // refetching on every snapshot would set loading and can race with the initial render.
1872
+ const shouldSubscribe = lookupMode.type === 'propertyFileId';
1873
+ useEffect(() => {
1874
+ if (!modelProperty || !shouldSubscribe) {
1875
+ return;
1876
+ }
1877
+ // Clean up previous subscription
1878
+ subscriptionRef.current?.unsubscribe();
1879
+ // Subscribe to service changes
1880
+ const subscription = modelProperty.getService().subscribe((snapshot) => {
1881
+ updateModelProperty();
1882
+ });
1883
+ subscriptionRef.current = subscription;
1884
+ return () => {
1885
+ subscriptionRef.current?.unsubscribe();
1886
+ subscriptionRef.current = undefined;
1887
+ };
1888
+ }, [modelProperty, updateModelProperty, shouldSubscribe]);
1889
+ return {
1890
+ modelProperty,
1891
+ isLoading,
1892
+ error,
1893
+ };
1894
+ }
1895
+ /**
1896
+ * Hook to create a ModelProperty with loading and error state.
1897
+ * create(schemaId, modelName, property) creates a new property on the model.
1898
+ */
1899
+ const useCreateModelProperty = () => {
1900
+ const subscriptionRef = useRef(undefined);
1901
+ const [isLoading, setIsLoading] = useState(false);
1902
+ const [error, setError] = useState(null);
1903
+ const resetError = useCallback(() => setError(null), []);
1904
+ const create = useCallback((_schemaId, modelName, property) => {
1905
+ setError(null);
1906
+ setIsLoading(true);
1907
+ subscriptionRef.current?.unsubscribe();
1908
+ subscriptionRef.current = undefined;
1909
+ if (!modelName || !property.name || !property.dataType) {
1910
+ const err = new Error('modelName, property name and dataType are required');
1911
+ setError(err);
1912
+ setIsLoading(false);
1913
+ throw err;
1914
+ }
1915
+ const created = ModelProperty.create({ ...property, modelName }, { waitForReady: false });
1916
+ const subscription = created.getService().subscribe((snapshot) => {
1917
+ if (snapshot.value === 'error') {
1918
+ const err = snapshot.context._loadingError?.error ?? new Error('Failed to create model property');
1919
+ setError(err instanceof Error ? err : new Error(String(err)));
1920
+ setIsLoading(false);
1921
+ }
1922
+ if (snapshot.value === 'idle') {
1923
+ setError(null);
1924
+ setIsLoading(false);
1925
+ }
1926
+ });
1927
+ subscriptionRef.current = subscription;
1928
+ return created;
1929
+ }, []);
1930
+ useEffect(() => {
1931
+ return () => {
1932
+ subscriptionRef.current?.unsubscribe();
1933
+ subscriptionRef.current = undefined;
1934
+ };
1935
+ }, []);
1936
+ return {
1937
+ create,
1938
+ isLoading,
1939
+ error,
1940
+ resetError,
1941
+ };
1942
+ };
1943
+ const useDestroyModelProperty = () => {
1944
+ const [currentInstance, setCurrentInstance] = useState(null);
1945
+ const [destroyState, setDestroyState] = useState({
1946
+ isLoading: false,
1947
+ error: null,
1948
+ });
1949
+ useEffect(() => {
1950
+ if (!currentInstance) {
1951
+ setDestroyState({ isLoading: false, error: null });
1952
+ return;
1953
+ }
1954
+ const service = currentInstance.getService();
1955
+ const update = () => {
1956
+ const snap = service.getSnapshot();
1957
+ const ctx = snap.context;
1958
+ setDestroyState({
1959
+ isLoading: !!ctx._destroyInProgress,
1960
+ error: ctx._destroyError ? new Error(ctx._destroyError.message) : null,
1961
+ });
1962
+ };
1963
+ update();
1964
+ const sub = service.subscribe(update);
1965
+ return () => sub.unsubscribe();
1966
+ }, [currentInstance]);
1967
+ const destroy = useCallback(async (modelProperty) => {
1968
+ if (!modelProperty)
1969
+ return;
1970
+ setCurrentInstance(modelProperty);
1971
+ await modelProperty.destroy();
1972
+ }, []);
1973
+ const resetError = useCallback(() => {
1974
+ if (currentInstance) {
1975
+ currentInstance.getService().send({ type: 'clearDestroyError' });
1976
+ }
1977
+ }, [currentInstance]);
1978
+ return {
1979
+ destroy,
1980
+ isLoading: destroyState.isLoading,
1981
+ error: destroyState.error,
1982
+ resetError,
1983
+ };
1984
+ };
1985
+
1986
+ const useDeleteItem = () => {
1987
+ const [currentInstance, setCurrentInstance] = useState(null);
1988
+ const [destroyState, setDestroyState] = useState({
1989
+ isLoading: false,
1990
+ error: null,
1991
+ });
1992
+ useEffect(() => {
1993
+ if (!currentInstance) {
1994
+ setDestroyState({ isLoading: false, error: null });
1995
+ return;
1996
+ }
1997
+ const service = currentInstance.getService();
1998
+ const update = () => {
1999
+ const snap = service.getSnapshot();
2000
+ const ctx = snap.context;
2001
+ setDestroyState({
2002
+ isLoading: !!ctx._destroyInProgress,
2003
+ error: ctx._destroyError ? new Error(ctx._destroyError.message) : null,
2004
+ });
2005
+ };
2006
+ update();
2007
+ const sub = service.subscribe(update);
2008
+ return () => sub.unsubscribe();
2009
+ }, [currentInstance]);
2010
+ const destroy = useCallback(async (item) => {
2011
+ if (!item)
2012
+ return;
2013
+ setCurrentInstance(item);
2014
+ await item.destroy();
2015
+ }, []);
2016
+ const resetError = useCallback(() => {
2017
+ if (currentInstance) {
2018
+ currentInstance.getService().send({ type: 'clearDestroyError' });
2019
+ }
2020
+ }, [currentInstance]);
2021
+ return {
2022
+ deleteItem: destroy,
2023
+ isLoading: destroyState.isLoading,
2024
+ error: destroyState.error,
2025
+ resetError,
2026
+ };
2027
+ };
2028
+
2029
+ const SEED_QUERY_DEFAULT_OPTIONS = {
2030
+ queries: {
2031
+ networkMode: 'offlineFirst',
2032
+ gcTime: 1000 * 60 * 60 * 24, // 24 hours
2033
+ staleTime: 1000 * 60, // 1 minute - list data can be slightly stale
2034
+ },
2035
+ };
2036
+ /**
2037
+ * Returns the default options used by Seed for list-query caching.
2038
+ * Use this when building your own QueryClient so Seed hooks get consistent behavior.
2039
+ */
2040
+ function getSeedQueryDefaultOptions() {
2041
+ return { ...SEED_QUERY_DEFAULT_OPTIONS };
2042
+ }
2043
+ /**
2044
+ * Merges Seed's default query options with your existing default options.
2045
+ * Your options take precedence over Seed's. Use when constructing your own QueryClient:
2046
+ *
2047
+ * @example
2048
+ * ```ts
2049
+ * const client = new QueryClient({
2050
+ * defaultOptions: mergeSeedQueryDefaults({
2051
+ * queries: { gcTime: 1000 * 60 * 60 },
2052
+ * }),
2053
+ * })
2054
+ * ```
2055
+ */
2056
+ function mergeSeedQueryDefaults(userOptions) {
2057
+ const seed = getSeedQueryDefaultOptions();
2058
+ if (!userOptions)
2059
+ return seed;
2060
+ return {
2061
+ queries: {
2062
+ ...seed.queries,
2063
+ ...(userOptions.queries ?? {}),
2064
+ },
2065
+ mutations: {
2066
+ ...(seed.mutations ?? {}),
2067
+ ...(userOptions.mutations ?? {}),
2068
+ },
2069
+ };
2070
+ }
2071
+ /**
2072
+ * Creates a QueryClient configured with Seed's default options.
2073
+ * Use this when you want to provide your own QueryClientProvider but still use Seed's defaults.
2074
+ *
2075
+ * @param overrides - Optional config to merge with Seed defaults (e.g. defaultOptions, logger).
2076
+ */
2077
+ function createSeedQueryClient(overrides) {
2078
+ const defaults = getSeedQueryDefaultOptions();
2079
+ const { defaultOptions: userDefaultOptions, ...restOverrides } = overrides ?? {};
2080
+ return new QueryClient$1({
2081
+ ...restOverrides,
2082
+ defaultOptions: userDefaultOptions
2083
+ ? mergeSeedQueryDefaults(userDefaultOptions)
2084
+ : defaults,
2085
+ });
2086
+ }
2087
+
2088
+ /** Module-level ref so invalidateItemPropertiesForItem works when test and app share the same bundle but not the same window (e.g. iframe). */
2089
+ let invalidateItemPropertiesRef = null;
2090
+ /**
2091
+ * Invalidates and refetches the item-properties query for an item.
2092
+ * Call this after updating an ItemProperty (e.g. after save()) so useItemProperties
2093
+ * refetches and the UI updates. Returns a Promise that resolves when the refetch has completed (if available).
2094
+ */
2095
+ function invalidateItemPropertiesForItem(canonicalId) {
2096
+ const p1 = invalidateItemPropertiesRef?.(canonicalId);
2097
+ if (typeof window !== 'undefined' && window.__SEED_INVALIDATE_ITEM_PROPERTIES__) {
2098
+ window.__SEED_INVALIDATE_ITEM_PROPERTIES__(canonicalId);
2099
+ }
2100
+ return Promise.resolve(p1).then(() => { });
2101
+ }
2102
+ function SeedProviderEventSubscriber({ queryClient }) {
2103
+ useEffect(() => {
2104
+ const invalidate = (canonicalId) => {
2105
+ const key = ['seed', 'itemProperties', canonicalId];
2106
+ queryClient.invalidateQueries({ queryKey: key });
2107
+ return queryClient.refetchQueries({ queryKey: key });
2108
+ };
2109
+ invalidateItemPropertiesRef = invalidate;
2110
+ if (typeof window !== 'undefined') {
2111
+ window.__SEED_INVALIDATE_ITEM_PROPERTIES__ = invalidate;
2112
+ }
2113
+ const handler = (payload) => {
2114
+ const canonicalId = payload?.seedLocalId ?? payload?.seedUid;
2115
+ if (canonicalId) {
2116
+ invalidate(canonicalId);
2117
+ }
2118
+ };
2119
+ eventEmitter.on('itemProperty.saved', handler);
2120
+ return () => {
2121
+ eventEmitter.off('itemProperty.saved', handler);
2122
+ invalidateItemPropertiesRef = null;
2123
+ if (typeof window !== 'undefined') {
2124
+ window.__SEED_INVALIDATE_ITEM_PROPERTIES__ = null;
2125
+ }
2126
+ };
2127
+ }, [queryClient]);
2128
+ return null;
2129
+ }
2130
+ /**
2131
+ * Provider that supplies a React Query client to Seed list hooks (useSchemas, useItems, useModels, etc.)
2132
+ * so results are cached and shared across components. Wrap your app (or the subtree that uses Seed hooks)
2133
+ * after calling client.init().
2134
+ *
2135
+ * - No props: uses an internal QueryClient with Seed defaults.
2136
+ * - queryClient prop: use your own client (e.g. merge getSeedQueryDefaultOptions when creating it).
2137
+ */
2138
+ function SeedProvider({ children, queryClient: queryClientProp, queryClientRef }) {
2139
+ const queryClient = useMemo(() => queryClientProp ?? createSeedQueryClient(), [queryClientProp]);
2140
+ if (queryClientRef) {
2141
+ queryClientRef.current = queryClient;
2142
+ if (typeof window !== 'undefined') {
2143
+ const w = window;
2144
+ w.__TEST_SEED_QUERY_CLIENT__ = queryClient;
2145
+ try {
2146
+ if (window.parent && window.parent !== window)
2147
+ window.parent.__TEST_SEED_QUERY_CLIENT__ = queryClient;
2148
+ }
2149
+ catch {
2150
+ // cross-origin frame, ignore
2151
+ }
2152
+ }
2153
+ }
2154
+ return (React.createElement(QueryClientProvider, { client: queryClient },
2155
+ React.createElement(SeedProviderEventSubscriber, { queryClient: queryClient }),
2156
+ children));
2157
+ }
2158
+
2159
+ debug('seedSdk:feed');
2160
+ const relationValuesToExclude = [
2161
+ '0x0000000000000000000000000000000000000000000000000000000000000020',
2162
+ ];
2163
+ // Helper to convert snake_case to camelCase
2164
+ const toCamelCase = (str) => {
2165
+ return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
2166
+ };
2167
+ // Helper to format timestamp as RFC 822 date string for RSS pubDate
2168
+ const formatRfc822Date = (timestamp) => {
2169
+ const date = new Date(timestamp * 1000); // Convert from seconds to milliseconds
2170
+ const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
2171
+ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
2172
+ const day = days[date.getUTCDay()];
2173
+ const month = months[date.getUTCMonth()];
2174
+ const year = date.getUTCFullYear();
2175
+ const dayNum = date.getUTCDate().toString().padStart(2, '0');
2176
+ const hours = date.getUTCHours().toString().padStart(2, '0');
2177
+ const minutes = date.getUTCMinutes().toString().padStart(2, '0');
2178
+ const seconds = date.getUTCSeconds().toString().padStart(2, '0');
2179
+ return `${day}, ${dayNum} ${month} ${year} ${hours}:${minutes}:${seconds} GMT`;
2180
+ };
2181
+ // Helper to set default values for feed items
2182
+ const setFeedItemDefaults = (item, seedUid, schemaName) => {
2183
+ // Set default title if not present (check both snake_case and camelCase)
2184
+ if (!item.title && !item.Title) {
2185
+ item.title = seedUid;
2186
+ item.Title = seedUid; // Also set camelCase version
2187
+ }
2188
+ else if (item.title && !item.Title) {
2189
+ item.Title = item.title;
2190
+ }
2191
+ else if (item.Title && !item.title) {
2192
+ item.title = item.Title;
2193
+ }
2194
+ // Set default link/guid using seedUid or storage_transaction_id
2195
+ // Handle empty strings, null, and undefined - check both formats
2196
+ const storageTransactionIdSnake = item.storage_transaction_id &&
2197
+ typeof item.storage_transaction_id === 'string' &&
2198
+ item.storage_transaction_id.trim() !== '' &&
2199
+ item.storage_transaction_id !== 'undefined' &&
2200
+ item.storage_transaction_id !== seedUid // Don't use seedUid as transaction ID
2201
+ ? item.storage_transaction_id.trim()
2202
+ : null;
2203
+ const storageTransactionIdCamel = item.storageTransactionId &&
2204
+ typeof item.storageTransactionId === 'string' &&
2205
+ item.storageTransactionId.trim() !== '' &&
2206
+ item.storageTransactionId !== 'undefined' &&
2207
+ item.storageTransactionId !== seedUid // Don't use seedUid as transaction ID
2208
+ ? item.storageTransactionId.trim()
2209
+ : null;
2210
+ const storageTransactionId = storageTransactionIdSnake || storageTransactionIdCamel;
2211
+ console.log('[feed] [setFeedItemDefaults] Setting defaults for item:', {
2212
+ seedUid,
2213
+ schemaName,
2214
+ hasStorageTransactionIdSnake: !!storageTransactionIdSnake,
2215
+ hasStorageTransactionIdCamel: !!storageTransactionIdCamel,
2216
+ storageTransactionIdSnakeValue: item.storage_transaction_id,
2217
+ storageTransactionIdCamelValue: item.storageTransactionId,
2218
+ storageTransactionId,
2219
+ itemKeys: Object.keys(item),
2220
+ });
2221
+ // If there's a valid storageTransactionId (not seedUid), use Arweave URL for the link
2222
+ // Otherwise, build URL based on schema name (e.g., /images/ for image schema, /posts/ for post schema)
2223
+ let defaultLink;
2224
+ if (storageTransactionId && storageTransactionId !== seedUid && storageTransactionId.length > 0) {
2225
+ try {
2226
+ defaultLink = BaseArweaveClient.getRawUrl(storageTransactionId);
2227
+ console.log('[feed] [setFeedItemDefaults] Using Arweave URL for storageTransactionId:', defaultLink);
2228
+ }
2229
+ catch (error) {
2230
+ console.error('[feed] [setFeedItemDefaults] Error generating Arweave URL:', error);
2231
+ // Fallback to default link format
2232
+ const basePath = schemaName === 'image' ? 'images' : schemaName === 'post' ? 'posts' : schemaName.toLowerCase() + 's';
2233
+ const baseUrl = 'https://seedprotocol.io';
2234
+ defaultLink = `${baseUrl}/${basePath}/${seedUid || 'unknown'}`;
2235
+ }
2236
+ }
2237
+ else {
2238
+ const basePath = schemaName === 'image' ? 'images' : schemaName === 'post' ? 'posts' : schemaName.toLowerCase() + 's';
2239
+ const baseUrl = 'https://seedprotocol.io';
2240
+ // Ensure seedUid is valid, use 'unknown' as fallback to prevent 'undefined' in URLs
2241
+ const validSeedUid = seedUid && typeof seedUid === 'string' && seedUid.trim() !== '' ? seedUid : 'unknown';
2242
+ defaultLink = `${baseUrl}/${basePath}/${validSeedUid}`;
2243
+ console.log('[feed] [setFeedItemDefaults] Using default link format:', defaultLink, { seedUid, validSeedUid });
2244
+ }
2245
+ // Always ensure link is set (override if undefined, null, empty, or the string "undefined")
2246
+ const currentLink = item.link || item.Link;
2247
+ if (!currentLink || currentLink === 'undefined' || (typeof currentLink === 'string' && currentLink.trim() === '')) {
2248
+ item.link = defaultLink;
2249
+ item.Link = defaultLink;
2250
+ console.log('[feed] [setFeedItemDefaults] Set link to:', defaultLink);
2251
+ }
2252
+ else {
2253
+ // Ensure both formats are set
2254
+ if (!item.link || item.link === 'undefined') {
2255
+ item.link = currentLink;
2256
+ }
2257
+ if (!item.Link || item.Link === 'undefined') {
2258
+ item.Link = currentLink;
2259
+ }
2260
+ }
2261
+ // Always ensure guid is set (use link if available, otherwise default)
2262
+ const currentGuid = item.guid || item.Guid;
2263
+ if (!currentGuid || currentGuid === 'undefined' || (typeof currentGuid === 'string' && currentGuid.trim() === '')) {
2264
+ item.guid = item.link || defaultLink;
2265
+ item.Guid = item.guid;
2266
+ console.log('[feed] [setFeedItemDefaults] Set guid to:', item.guid);
2267
+ }
2268
+ else {
2269
+ // Ensure both formats are set
2270
+ if (!item.guid || item.guid === 'undefined') {
2271
+ item.guid = currentGuid;
2272
+ }
2273
+ if (!item.Guid || item.Guid === 'undefined') {
2274
+ item.Guid = currentGuid;
2275
+ }
2276
+ }
2277
+ // Set pubDate from timeCreated if available
2278
+ if (item.timeCreated && !item.pubDate && !item.PubDate) {
2279
+ const pubDate = formatRfc822Date(item.timeCreated);
2280
+ item.pubDate = pubDate;
2281
+ item.PubDate = pubDate;
2282
+ }
2283
+ else if (item.pubDate && !item.PubDate) {
2284
+ item.PubDate = item.pubDate;
2285
+ }
2286
+ else if (item.PubDate && !item.pubDate) {
2287
+ item.pubDate = item.PubDate;
2288
+ }
2289
+ // Ensure seedUid is always present
2290
+ if (!item.seedUid && !item.SeedUid) {
2291
+ item.seedUid = seedUid;
2292
+ item.SeedUid = seedUid;
2293
+ }
2294
+ else if (item.seedUid && !item.SeedUid) {
2295
+ item.SeedUid = item.seedUid;
2296
+ }
2297
+ else if (item.SeedUid && !item.seedUid) {
2298
+ item.seedUid = item.SeedUid;
2299
+ }
2300
+ // Note: We don't set storageTransactionId to seedUid as a fallback anymore
2301
+ // because seedUid is not a valid Arweave transaction ID. If storageTransactionId
2302
+ // doesn't exist, we'll use the default link format with seedUid instead.
2303
+ };
2304
+ const seedUidToModelType = new Map();
2305
+ const relatedSeedUids = new Set();
2306
+ const versionUidToSeedUid = new Map();
2307
+ const assembledFeedItems = new Map();
2308
+ const versionsBySeedUid = new Map();
2309
+ const latestVersionUidsBySeedUid = new Map();
2310
+ const processItemProperty = async (property, itemSeeds) => {
2311
+ console.log('[feed] [processItemProperty] Starting to process property:', {
2312
+ propertyId: property.id,
2313
+ refUID: property.refUID,
2314
+ schemaId: property.schemaId,
2315
+ });
2316
+ let metadata;
2317
+ try {
2318
+ metadata = JSON.parse(property.decodedDataJson)[0].value;
2319
+ }
2320
+ catch (error) {
2321
+ console.error('[feed] [processItemProperty] Error parsing metadata:', error);
2322
+ return;
2323
+ }
2324
+ let propertyNameSnake = metadata.name;
2325
+ if (!propertyNameSnake) {
2326
+ console.log('[feed] [processItemProperty] WARNING: no propertyName found for property:', {
2327
+ propertyId: property.id,
2328
+ property,
2329
+ });
2330
+ console.warn('[item/events] [syncDbWithEas] no propertyName found for property: ', property);
2331
+ return;
2332
+ }
2333
+ console.log('[feed] [processItemProperty] Processing property:', {
2334
+ propertyNameSnake,
2335
+ propertyId: property.id,
2336
+ });
2337
+ let isRelation = false;
2338
+ let refSeedType;
2339
+ let refSchemaUid;
2340
+ let isList = false;
2341
+ const schemaUid = property.schemaId;
2342
+ console.log('[feed] [processItemProperty] Setting schema UID for schema definition:', {
2343
+ propertyNameSnake,
2344
+ schemaUid,
2345
+ });
2346
+ setSchemaUidForSchemaDefinition({
2347
+ text: propertyNameSnake,
2348
+ schemaUid,
2349
+ });
2350
+ if ((propertyNameSnake.endsWith('_id') ||
2351
+ propertyNameSnake.endsWith('_ids')) &&
2352
+ propertyNameSnake !== 'storage_transaction_id' &&
2353
+ propertyNameSnake !== 'storage_provider_transaction_id') {
2354
+ isRelation = true;
2355
+ console.log('[feed] [processItemProperty] Detected relation property:', {
2356
+ propertyNameSnake,
2357
+ metadataValue: metadata.value,
2358
+ });
2359
+ if (Array.isArray(metadata.value)) {
2360
+ isList = true;
2361
+ console.log('[feed] [processItemProperty] Detected list relation:', {
2362
+ propertyNameSnake,
2363
+ listLength: metadata.value.length,
2364
+ values: metadata.value,
2365
+ });
2366
+ const result = parseEasRelationPropertyName(propertyNameSnake);
2367
+ console.log('[feed] [processItemProperty] Parsed relation property name:', {
2368
+ result,
2369
+ originalPropertyName: propertyNameSnake,
2370
+ });
2371
+ if (result) {
2372
+ propertyNameSnake = result.propertyName;
2373
+ refSeedType = result.modelName;
2374
+ console.log('[feed] [processItemProperty] Updated property name and seed type:', {
2375
+ newPropertyName: propertyNameSnake,
2376
+ refSeedType,
2377
+ });
2378
+ }
2379
+ metadata.value.forEach((value) => {
2380
+ relatedSeedUids.add(value);
2381
+ console.log('[feed] [processItemProperty] Added related seed UID to set:', {
2382
+ relatedSeedUid: value,
2383
+ totalRelatedSeeds: relatedSeedUids.size,
2384
+ });
2385
+ });
2386
+ }
2387
+ if (!isList) {
2388
+ if (relationValuesToExclude.includes(metadata.value)) {
2389
+ console.log('[feed] [processItemProperty] Excluding relation value:', {
2390
+ propertyNameSnake,
2391
+ excludedValue: metadata.value,
2392
+ });
2393
+ return;
2394
+ }
2395
+ relatedSeedUids.add(metadata.value);
2396
+ console.log('[feed] [processItemProperty] Added single related seed UID:', {
2397
+ relatedSeedUid: metadata.value,
2398
+ totalRelatedSeeds: relatedSeedUids.size,
2399
+ });
2400
+ }
2401
+ }
2402
+ let propertyValue = metadata.value;
2403
+ if (typeof propertyValue !== 'string') {
2404
+ console.log('[feed] [processItemProperty] Converting property value to string:', {
2405
+ propertyNameSnake,
2406
+ originalType: typeof propertyValue,
2407
+ originalValue: propertyValue,
2408
+ });
2409
+ propertyValue = JSON.stringify(propertyValue);
2410
+ }
2411
+ console.log('[feed] [processItemProperty] Final property value:', {
2412
+ propertyNameSnake,
2413
+ propertyValue,
2414
+ isRelation,
2415
+ isList,
2416
+ });
2417
+ if (isRelation && !isList) {
2418
+ console.log('[feed] [processItemProperty] Processing single relation:', {
2419
+ propertyNameSnake,
2420
+ relationValue: metadata.value,
2421
+ itemSeedsCount: itemSeeds.length,
2422
+ });
2423
+ const relatedSeed = itemSeeds.find((seed) => seed.id === metadata.value);
2424
+ if (relatedSeed && relatedSeed.schema && relatedSeed.schema.schemaNames) {
2425
+ refSeedType = relatedSeed.schema.schemaNames[0].name;
2426
+ refSchemaUid = relatedSeed.schemaId;
2427
+ console.log('[feed] [processItemProperty] Found related seed for single relation:', {
2428
+ propertyNameSnake,
2429
+ refSeedType,
2430
+ refSchemaUid,
2431
+ relatedSeedId: relatedSeed.id,
2432
+ });
2433
+ }
2434
+ else {
2435
+ console.log('[feed] [processItemProperty] No related seed found for single relation:', {
2436
+ propertyNameSnake,
2437
+ relationValue: metadata.value,
2438
+ });
2439
+ }
2440
+ }
2441
+ if (isRelation && isList) {
2442
+ console.log('[feed] [processItemProperty] Processing list relation:', {
2443
+ propertyNameSnake,
2444
+ relationValues: metadata.value,
2445
+ itemSeedsCount: itemSeeds.length,
2446
+ });
2447
+ const relatedSeeds = itemSeeds.filter((seed) => metadata.value.includes(seed.id));
2448
+ console.log('[feed] [processItemProperty] Filtered related seeds for list:', {
2449
+ propertyNameSnake,
2450
+ foundSeedsCount: relatedSeeds.length,
2451
+ foundSeedIds: relatedSeeds.map((s) => s.id),
2452
+ });
2453
+ if (relatedSeeds && relatedSeeds.length > 0) {
2454
+ refSeedType = relatedSeeds[0].schema.schemaNames[0].name;
2455
+ refSchemaUid = relatedSeeds[0].schemaId;
2456
+ console.log('[feed] [processItemProperty] Set ref seed type and schema UID from list relation:', {
2457
+ propertyNameSnake,
2458
+ refSeedType,
2459
+ refSchemaUid,
2460
+ });
2461
+ }
2462
+ else {
2463
+ console.log('[feed] [processItemProperty] No related seeds found for list relation:', {
2464
+ propertyNameSnake,
2465
+ });
2466
+ }
2467
+ }
2468
+ console.log('[feed] [processItemProperty] Looking up seed UID for property:', {
2469
+ propertyRefUID: property.refUID,
2470
+ versionUidToSeedUidSize: versionUidToSeedUid.size,
2471
+ });
2472
+ const seedUidForProperty = versionUidToSeedUid.get(property.refUID);
2473
+ if (!seedUidForProperty) {
2474
+ console.log('[feed] [processItemProperty] WARNING: no seedUid found for property:', {
2475
+ propertyRefUID: property.refUID,
2476
+ propertyId: property.id,
2477
+ property,
2478
+ });
2479
+ console.warn('no seedUid found for property: ', property);
2480
+ return;
2481
+ }
2482
+ console.log('[feed] [processItemProperty] Found seed UID for property:', {
2483
+ seedUidForProperty,
2484
+ propertyNameSnake,
2485
+ });
2486
+ let existingFeedItem = assembledFeedItems.get(seedUidForProperty) || {};
2487
+ const existingKeys = Object.keys(existingFeedItem);
2488
+ // Store property in snake_case (original format)
2489
+ existingFeedItem[propertyNameSnake] = propertyValue;
2490
+ // Also store in camelCase for easier access by external consumers (e.g., RSS generators)
2491
+ const propertyNameCamel = toCamelCase(propertyNameSnake);
2492
+ if (propertyNameCamel !== propertyNameSnake) {
2493
+ existingFeedItem[propertyNameCamel] = propertyValue;
2494
+ }
2495
+ assembledFeedItems.set(seedUidForProperty, existingFeedItem);
2496
+ console.log('[feed] [processItemProperty] Updated assembled feed item:', {
2497
+ seedUidForProperty,
2498
+ propertyNameSnake,
2499
+ propertyValue,
2500
+ existingKeysCount: existingKeys.length,
2501
+ newKeysCount: Object.keys(existingFeedItem).length,
2502
+ totalAssembledItems: assembledFeedItems.size,
2503
+ });
2504
+ };
2505
+ const processSeeds = async (seeds) => {
2506
+ console.log('[feed] [processSeeds] Starting to process seeds:', {
2507
+ seedsCount: seeds.length,
2508
+ seedIds: seeds.map((s) => s.id),
2509
+ });
2510
+ const seedUids = seeds.map((seed) => seed.id);
2511
+ for (let i = 0; i < seeds.length; i++) {
2512
+ const seed = seeds[i];
2513
+ seedUids.push(seed.id);
2514
+ const modelType = seed.schema.schemaNames[0].name;
2515
+ seedUidToModelType.set(seed.id, modelType);
2516
+ // Initialize feed item with seed metadata
2517
+ if (!assembledFeedItems.has(seed.id)) {
2518
+ assembledFeedItems.set(seed.id, {
2519
+ seedUid: seed.id,
2520
+ timeCreated: seed.timeCreated,
2521
+ });
2522
+ console.log('[feed] [processSeeds] Initialized feed item for seed:', {
2523
+ seedId: seed.id,
2524
+ modelType,
2525
+ });
2526
+ }
2527
+ console.log('[feed] [processSeeds] Processing seed:', {
2528
+ index: i,
2529
+ seedId: seed.id,
2530
+ modelType,
2531
+ totalSeedsProcessed: i + 1,
2532
+ });
2533
+ }
2534
+ console.log('[feed] [processSeeds] Completed seed mapping:', {
2535
+ totalSeeds: seeds.length,
2536
+ seedUidToModelTypeSize: seedUidToModelType.size,
2537
+ seedUids,
2538
+ });
2539
+ console.log('[feed] [processSeeds] Fetching item versions from EAS:', {
2540
+ seedUidsCount: seedUids.length,
2541
+ seedUids,
2542
+ });
2543
+ const itemVersions = await getItemVersionsFromEas({ seedUids });
2544
+ console.log('[feed] [processSeeds] Received item versions from EAS:', {
2545
+ itemVersionsCount: itemVersions.length,
2546
+ versionIds: itemVersions.map((v) => v.id),
2547
+ });
2548
+ for (let i = 0; i < itemVersions.length; i++) {
2549
+ const itemVersion = itemVersions[i];
2550
+ const seedUid = itemVersion.refUID;
2551
+ versionUidToSeedUid.set(itemVersion.id, seedUid);
2552
+ const existingVersions = versionsBySeedUid.get(seedUid) || [];
2553
+ versionsBySeedUid.set(seedUid, [...existingVersions, itemVersion]);
2554
+ console.log('[feed] [processSeeds] Processed item version:', {
2555
+ index: i,
2556
+ versionId: itemVersion.id,
2557
+ seedUid,
2558
+ timeCreated: itemVersion.timeCreated,
2559
+ versionsForSeedCount: existingVersions.length + 1,
2560
+ });
2561
+ }
2562
+ console.log('[feed] [processSeeds] Completed version mapping:', {
2563
+ totalVersions: itemVersions.length,
2564
+ versionUidToSeedUidSize: versionUidToSeedUid.size,
2565
+ versionsBySeedUidSize: versionsBySeedUid.size,
2566
+ uniqueSeedsWithVersions: Array.from(versionsBySeedUid.keys()),
2567
+ });
2568
+ // Get latest version for each seed and then use those to get the properties
2569
+ console.log('[feed] [processSeeds] Determining latest versions for each seed');
2570
+ const latestVersionUids = [];
2571
+ for (const [seedUid, versions] of versionsBySeedUid.entries()) {
2572
+ console.log('[feed] [processSeeds] Processing versions for seed:', {
2573
+ seedUid,
2574
+ versionsCount: versions.length,
2575
+ versionIds: versions.map((v) => v.id),
2576
+ timeCreateds: versions.map((v) => v.timeCreated),
2577
+ });
2578
+ // Sort versions by timeCreated in descending order (most recent first)
2579
+ const sortedVersions = [...versions].sort((a, b) => b.timeCreated - a.timeCreated);
2580
+ console.log('[feed] [processSeeds] Sorted versions:', {
2581
+ seedUid,
2582
+ sortedVersionIds: sortedVersions.map((v) => v.id),
2583
+ sortedTimeCreateds: sortedVersions.map((v) => v.timeCreated),
2584
+ });
2585
+ // Get the most recent version for this seedUid
2586
+ if (sortedVersions.length > 0) {
2587
+ const latestVersion = sortedVersions[0];
2588
+ latestVersionUids.push(latestVersion.id);
2589
+ latestVersionUidsBySeedUid.set(seedUid, latestVersion.id);
2590
+ console.log('[feed] [processSeeds] Set latest version for seed:', {
2591
+ seedUid,
2592
+ latestVersionId: latestVersion.id,
2593
+ latestTimeCreated: latestVersion.timeCreated,
2594
+ });
2595
+ }
2596
+ else {
2597
+ console.log('[feed] [processSeeds] WARNING: No versions found for seed:', {
2598
+ seedUid,
2599
+ });
2600
+ }
2601
+ }
2602
+ console.log('[feed] [processSeeds] Completed latest version determination:', {
2603
+ latestVersionUidsCount: latestVersionUids.length,
2604
+ latestVersionUids,
2605
+ latestVersionUidsBySeedUidSize: latestVersionUidsBySeedUid.size,
2606
+ });
2607
+ console.log('[feed] [processSeeds] Fetching item properties from EAS:', {
2608
+ latestVersionUidsCount: latestVersionUids.length,
2609
+ latestVersionUids,
2610
+ });
2611
+ const itemProperties = await getItemPropertiesFromEas({ versionUids: latestVersionUids });
2612
+ console.log('[feed] [processSeeds] Received item properties from EAS:', {
2613
+ itemPropertiesCount: itemProperties.length,
2614
+ propertyIds: itemProperties.map((p) => p.id),
2615
+ });
2616
+ for (let i = 0; i < itemProperties.length; i++) {
2617
+ console.log('[feed] [processSeeds] Processing item property:', {
2618
+ index: i,
2619
+ propertyId: itemProperties[i].id,
2620
+ totalProperties: itemProperties.length,
2621
+ });
2622
+ await processItemProperty(itemProperties[i], seeds);
2623
+ }
2624
+ console.log('[feed] [processSeeds] Completed processing all seeds:', {
2625
+ seedsCount: seeds.length,
2626
+ itemVersionsCount: itemVersions.length,
2627
+ itemPropertiesCount: itemProperties.length,
2628
+ assembledFeedItemsSize: assembledFeedItems.size,
2629
+ });
2630
+ };
2631
+ const getFeedItemsBySchemaName = async (schemaName) => {
2632
+ console.log('[feed] [getFeedItemsBySchemaName] Starting feed retrieval:', {
2633
+ schemaName,
2634
+ currentAssembledItemsSize: assembledFeedItems.size,
2635
+ currentRelatedSeedUidsSize: relatedSeedUids.size,
2636
+ });
2637
+ const easClient = BaseEasClient.getEasClient();
2638
+ console.log('[feed] [getFeedItemsBySchemaName] Retrieved EAS client');
2639
+ console.log('[feed] [getFeedItemsBySchemaName] Fetching seeds by schema name:', {
2640
+ schemaName,
2641
+ });
2642
+ const seeds = await getSeedsBySchemaName(schemaName);
2643
+ console.log('[feed] [getFeedItemsBySchemaName] Received seeds:', {
2644
+ seedsCount: seeds.length,
2645
+ seedIds: seeds.map((s) => s.id),
2646
+ });
2647
+ await processSeeds(seeds);
2648
+ const relatedSeedUidsArray = Array.from(relatedSeedUids);
2649
+ console.log('[feed] [getFeedItemsBySchemaName] Fetching related seeds:', {
2650
+ relatedSeedUidsCount: relatedSeedUidsArray.length,
2651
+ relatedSeedUids: relatedSeedUidsArray,
2652
+ });
2653
+ const { itemSeeds: relatedSeeds } = await easClient.request(GET_SEEDS, {
2654
+ where: {
2655
+ id: {
2656
+ in: relatedSeedUidsArray,
2657
+ },
2658
+ },
2659
+ });
2660
+ console.log('[feed] [getFeedItemsBySchemaName] Received related seeds:', {
2661
+ relatedSeedsCount: relatedSeeds.length,
2662
+ relatedSeedIds: relatedSeeds.map((s) => s.id),
2663
+ });
2664
+ await processSeeds(relatedSeeds);
2665
+ // Filter feed items to only include items matching the requested schema name
2666
+ // and apply default values for required RSS fields
2667
+ const feedItems = Array.from(assembledFeedItems.entries())
2668
+ .filter(([seedUid]) => seedUidToModelType.get(seedUid) === schemaName)
2669
+ .map(([seedUid, item]) => {
2670
+ // Apply defaults for required RSS feed fields
2671
+ setFeedItemDefaults(item, seedUid, schemaName);
2672
+ return item;
2673
+ });
2674
+ console.log('[feed] [getFeedItemsBySchemaName] Completed feed retrieval:', {
2675
+ schemaName,
2676
+ feedItemsCount: feedItems.length,
2677
+ assembledFeedItemsSize: assembledFeedItems.size,
2678
+ filteredFeedItemsCount: feedItems.length,
2679
+ feedItemKeys: feedItems.map((item) => Object.keys(item)),
2680
+ });
2681
+ return feedItems;
2682
+ };
2683
+
2684
+ export { BaseEasClient as EasClient, Item, ItemProperty, Model, ModelProperty, Schema, SeedProvider, createSeedQueryClient, getFeedItemsBySchemaName, getItemPropertiesFromEas, getItemVersionsFromEas, getPropertySchema, getSeedQueryDefaultOptions, getSeedsBySchemaName, invalidateItemPropertiesForItem, mergeSeedQueryDefaults, useAllSchemaVersions, useCreateItem, useCreateItemProperty, useCreateModel, useCreateModelProperty, useCreateSchema, useDeleteItem, useDestroyItemProperty, useDestroyModel, useDestroyModelProperty, useDestroySchema, useItem, useItemProperties, useItemProperty, useItems, useModel, useModelProperties, useModelProperty, useModels, usePublishItem, useSchema, useSchemas };
36
2685
  //# sourceMappingURL=main.js.map