@seedprotocol/sdk 0.4.7 → 0.4.9

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 (966) hide show
  1. package/dist/ArweaveClient-DFqnm5Kj.js +202 -0
  2. package/dist/ArweaveClient-DFqnm5Kj.js.map +1 -0
  3. package/dist/ArweaveClient-sN5h2FvY.js +202 -0
  4. package/dist/ArweaveClient-sN5h2FvY.js.map +1 -0
  5. package/dist/Db-DIythELU.js +246 -0
  6. package/dist/Db-DIythELU.js.map +1 -0
  7. package/dist/Db-Dz17KxVs.js +1530 -0
  8. package/dist/Db-Dz17KxVs.js.map +1 -0
  9. package/dist/EasClient-BadfcFDk.js +29 -0
  10. package/dist/EasClient-BadfcFDk.js.map +1 -0
  11. package/dist/EasClient-DosbWaZN.js +29 -0
  12. package/dist/EasClient-DosbWaZN.js.map +1 -0
  13. package/dist/FileManager-BHuVNWT3.js +174 -0
  14. package/dist/FileManager-BHuVNWT3.js.map +1 -0
  15. package/dist/FileManager-Wthr5yHO.js +1142 -0
  16. package/dist/FileManager-Wthr5yHO.js.map +1 -0
  17. package/dist/ModelProperty-B9Z2DRxI.js +1731 -0
  18. package/dist/ModelProperty-B9Z2DRxI.js.map +1 -0
  19. package/dist/PathResolver-Cd1PZDLG.js +204 -0
  20. package/dist/PathResolver-Cd1PZDLG.js.map +1 -0
  21. package/dist/PathResolver-NEpTSgQK.js +78 -0
  22. package/dist/PathResolver-NEpTSgQK.js.map +1 -0
  23. package/dist/QueryClient-C9U8oZUe.js +34 -0
  24. package/dist/QueryClient-C9U8oZUe.js.map +1 -0
  25. package/dist/QueryClient-ndmA8MYL.js +47 -0
  26. package/dist/QueryClient-ndmA8MYL.js.map +1 -0
  27. package/dist/Schema-D1-HjT8z.js +6521 -0
  28. package/dist/Schema-D1-HjT8z.js.map +1 -0
  29. package/dist/SchemaValidationService-CIXKzSpb.js +654 -0
  30. package/dist/SchemaValidationService-CIXKzSpb.js.map +1 -0
  31. package/dist/cjs/ModelProperty-09hNvSBl.js +1725 -0
  32. package/dist/cjs/ModelProperty-09hNvSBl.js.map +1 -0
  33. package/dist/cjs/Schema-BcwvUABB.js +5967 -0
  34. package/dist/cjs/Schema-BcwvUABB.js.map +1 -0
  35. package/dist/cjs/SchemaValidationService-zty4nfCu.js +670 -0
  36. package/dist/cjs/SchemaValidationService-zty4nfCu.js.map +1 -0
  37. package/dist/cjs/getItem-Dlb5YSQn.js +55 -0
  38. package/dist/cjs/getItem-Dlb5YSQn.js.map +1 -0
  39. package/dist/cjs/getPublishPayload-BqL06sEI.js +520 -0
  40. package/dist/cjs/getPublishPayload-BqL06sEI.js.map +1 -0
  41. package/dist/cjs/getPublishUploads-oukGI2N6.js +282 -0
  42. package/dist/cjs/getPublishUploads-oukGI2N6.js.map +1 -0
  43. package/dist/cjs/getSegmentedItemProperties-JT984OOp.js +71 -0
  44. package/dist/cjs/getSegmentedItemProperties-JT984OOp.js.map +1 -0
  45. package/dist/cjs/index-BLETlVgA.js +17614 -0
  46. package/dist/cjs/index-BLETlVgA.js.map +1 -0
  47. package/dist/cjs/index-jubgGeM2.js +58 -0
  48. package/dist/cjs/index-jubgGeM2.js.map +1 -0
  49. package/dist/cjs/ownership-vfvyz3KJ.js +103 -0
  50. package/dist/cjs/ownership-vfvyz3KJ.js.map +1 -0
  51. package/dist/getItem-f9rNUz7I.js +38 -0
  52. package/dist/getItem-f9rNUz7I.js.map +1 -0
  53. package/dist/getPublishPayload-BBI_j9I2.js +503 -0
  54. package/dist/getPublishPayload-BBI_j9I2.js.map +1 -0
  55. package/dist/getPublishUploads-BFM94w5S.js +246 -0
  56. package/dist/getPublishUploads-BFM94w5S.js.map +1 -0
  57. package/dist/getSegmentedItemProperties-Di9vevKz.js +69 -0
  58. package/dist/getSegmentedItemProperties-Di9vevKz.js.map +1 -0
  59. package/dist/index-CSAVWKeA.js +18 -0
  60. package/dist/index-CSAVWKeA.js.map +1 -0
  61. package/dist/index-ajj6SHkh.js +23 -0
  62. package/dist/index-ajj6SHkh.js.map +1 -0
  63. package/dist/index-j8WN8W6V.js +16296 -0
  64. package/dist/index-j8WN8W6V.js.map +1 -0
  65. package/dist/main.cjs +1 -1
  66. package/dist/main.js +152 -534
  67. package/dist/main.js.map +1 -1
  68. package/dist/node.js +33 -15
  69. package/dist/node.js.map +1 -1
  70. package/dist/ownership-DLNI17NE.js +85 -0
  71. package/dist/ownership-DLNI17NE.js.map +1 -0
  72. package/dist/property-C6qoOzLG.js +264 -0
  73. package/dist/property-C6qoOzLG.js.map +1 -0
  74. package/dist/queries-jMaUn86w.js +16 -0
  75. package/dist/queries-jMaUn86w.js.map +1 -0
  76. package/dist/seedSchema/SEEDPROTOCOL_Seed_Protocol_v1.json +38 -1
  77. package/dist/src/Item/Item.d.ts +141 -0
  78. package/dist/src/Item/Item.d.ts.map +1 -0
  79. package/dist/src/Item/queries.d.ts.map +1 -0
  80. package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +1 -0
  81. package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +1 -0
  82. package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +1 -0
  83. package/dist/src/Item/service/actors/initialize.d.ts.map +1 -0
  84. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +1 -0
  85. package/dist/src/Item/service/actors/reload.d.ts.map +1 -0
  86. package/dist/src/Item/service/actors/runPublish.d.ts.map +1 -0
  87. package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +1 -0
  88. package/dist/src/Item/service/actors/waitForDb.d.ts.map +1 -0
  89. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -0
  90. package/dist/src/ItemProperty/ItemProperty.d.ts +126 -0
  91. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -0
  92. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -0
  93. package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -0
  94. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -0
  95. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -0
  96. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -0
  97. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -0
  98. package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts +7 -0
  99. package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +1 -0
  100. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts +5 -0
  101. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -0
  102. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts +5 -0
  103. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -0
  104. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -0
  105. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -0
  106. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +1 -0
  107. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +1 -0
  108. package/dist/src/ItemProperty/service/propertyMachine.d.ts +78 -0
  109. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -0
  110. package/dist/src/Model/Model.d.ts.map +1 -0
  111. package/dist/src/Model/index.d.ts.map +1 -0
  112. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -0
  113. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -0
  114. package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -0
  115. package/dist/src/Model/service/modelMachine.d.ts +222 -0
  116. package/dist/src/Model/service/modelMachine.d.ts.map +1 -0
  117. package/dist/src/ModelProperty/ModelProperty.d.ts +148 -0
  118. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -0
  119. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -0
  120. package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -0
  121. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -0
  122. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -0
  123. package/dist/src/Schema/Schema.d.ts.map +1 -0
  124. package/dist/src/Schema/errors.d.ts.map +1 -0
  125. package/dist/src/Schema/index.d.ts.map +1 -0
  126. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -0
  127. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -0
  128. package/dist/src/Schema/service/actors/createPropertyInstances.d.ts.map +1 -0
  129. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -0
  130. package/dist/src/Schema/service/actors/validateSchema.d.ts.map +1 -0
  131. package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +1 -0
  132. package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts.map +1 -0
  133. package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts.map +1 -0
  134. package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +1 -0
  135. package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts.map +1 -0
  136. package/dist/src/Schema/service/actors/writeModelsToDb.d.ts.map +1 -0
  137. package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts.map +1 -0
  138. package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts.map +1 -0
  139. package/dist/src/Schema/service/addModelsMachine.d.ts +123 -0
  140. package/dist/src/Schema/service/addModelsMachine.d.ts.map +1 -0
  141. package/dist/src/Schema/service/schemaMachine.d.ts +526 -0
  142. package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -0
  143. package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +1 -0
  144. package/dist/src/Schema/validation.d.ts.map +1 -0
  145. package/dist/src/browser/db/Db.d.ts.map +1 -0
  146. package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -0
  147. package/dist/src/browser/db/sqlWasmClient.d.ts.map +1 -0
  148. package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -0
  149. package/dist/src/browser/helpers/EasClient.d.ts.map +1 -0
  150. package/dist/src/browser/helpers/FileManager.d.ts +42 -0
  151. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -0
  152. package/dist/src/browser/helpers/PathResolver.d.ts.map +1 -0
  153. package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -0
  154. package/dist/src/browser/helpers/index.d.ts.map +1 -0
  155. package/dist/src/browser/index.d.ts.map +1 -0
  156. package/dist/src/browser/react/OPFSImage.d.ts.map +1 -0
  157. package/dist/src/browser/react/SeedImage.d.ts.map +1 -0
  158. package/dist/src/browser/react/SeedProvider.d.ts.map +1 -0
  159. package/dist/src/browser/react/client.d.ts.map +1 -0
  160. package/dist/src/browser/react/db.d.ts.map +1 -0
  161. package/dist/src/browser/react/index.d.ts +14 -0
  162. package/dist/src/browser/react/index.d.ts.map +1 -0
  163. package/dist/src/browser/react/item.d.ts.map +1 -0
  164. package/dist/src/browser/react/itemProperty.d.ts.map +1 -0
  165. package/dist/src/browser/react/liveQuery.d.ts.map +1 -0
  166. package/dist/src/browser/react/model.d.ts.map +1 -0
  167. package/dist/src/browser/react/modelProperty.d.ts.map +1 -0
  168. package/dist/src/browser/react/queryClient.d.ts.map +1 -0
  169. package/dist/src/browser/react/schema.d.ts.map +1 -0
  170. package/dist/src/browser/react/services.d.ts.map +1 -0
  171. package/dist/src/browser/react/trash.d.ts.map +1 -0
  172. package/dist/src/browser/react/useImageFiles.d.ts +19 -0
  173. package/dist/src/browser/react/useImageFiles.d.ts.map +1 -0
  174. package/dist/src/browser/seed.d.ts.map +1 -0
  175. package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -0
  176. package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -0
  177. package/dist/src/browser/workers/content-hash.d.ts.map +1 -0
  178. package/dist/src/browser/workers/dbWorker.d.ts.map +1 -0
  179. package/dist/src/browser/workers/filesDownload.d.ts.map +1 -0
  180. package/dist/src/browser/workers/imageResize.d.ts.map +1 -0
  181. package/dist/src/client/BaseClientManager.d.ts.map +1 -0
  182. package/dist/src/client/ClientManager.d.ts.map +1 -0
  183. package/dist/src/client/actions/setAddresses.d.ts.map +1 -0
  184. package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -0
  185. package/dist/src/client/actors/addModelsToStore.d.ts.map +1 -0
  186. package/dist/src/client/actors/dbInit.d.ts.map +1 -0
  187. package/dist/src/client/actors/fileSystemInit.d.ts.map +1 -0
  188. package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -0
  189. package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -0
  190. package/dist/src/client/actors/saveAppState.d.ts.map +1 -0
  191. package/dist/src/client/actors/saveConfig.d.ts.map +1 -0
  192. package/dist/src/client/clientManagerMachine.d.ts.map +1 -0
  193. package/dist/src/client/constants.d.ts.map +1 -0
  194. package/dist/src/client/index.d.ts.map +1 -0
  195. package/dist/src/db/Db/BaseDb.d.ts.map +1 -0
  196. package/dist/src/db/configs/dev.schema.config.d.ts.map +1 -0
  197. package/dist/src/db/read/getExistingItem.d.ts.map +1 -0
  198. package/dist/src/db/read/getItem.d.ts.map +1 -0
  199. package/dist/src/db/read/getItemData.d.ts.map +1 -0
  200. package/dist/src/db/read/getItemProperties.d.ts.map +1 -0
  201. package/dist/src/db/read/getItemProperty.d.ts.map +1 -0
  202. package/dist/src/db/read/getItems.d.ts.map +1 -0
  203. package/dist/src/db/read/getMetadata.d.ts.map +1 -0
  204. package/dist/src/db/read/getModelPropertiesData.d.ts.map +1 -0
  205. package/dist/src/db/read/getModelSchemas.d.ts.map +1 -0
  206. package/dist/src/db/read/getModels.d.ts.map +1 -0
  207. package/dist/src/db/read/getModelsData.d.ts.map +1 -0
  208. package/dist/src/db/read/getPropertyData.d.ts.map +1 -0
  209. package/dist/src/db/read/getPublishPayload.d.ts +36 -0
  210. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -0
  211. package/dist/src/db/read/getPublishUploads.d.ts +10 -0
  212. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -0
  213. package/dist/src/db/read/getRelatedItemsForPublish.d.ts +8 -0
  214. package/dist/src/db/read/getRelatedItemsForPublish.d.ts.map +1 -0
  215. package/dist/src/db/read/getRelationValueData.d.ts.map +1 -0
  216. package/dist/src/db/read/getSchemaUidForModel.d.ts +2 -0
  217. package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -0
  218. package/dist/src/db/read/getSeedData.d.ts.map +1 -0
  219. package/dist/src/db/read/getStorageTransactionIdForSeedUid.d.ts.map +1 -0
  220. package/dist/src/db/read/getVersionData.d.ts.map +1 -0
  221. package/dist/src/db/read/getVersionsForVersionUids.d.ts.map +1 -0
  222. package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -0
  223. package/dist/src/db/read/subqueries/versionData.d.ts.map +1 -0
  224. package/dist/src/db/write/createMetadata.d.ts.map +1 -0
  225. package/dist/src/db/write/createNewItem.d.ts.map +1 -0
  226. package/dist/src/db/write/createSeed.d.ts.map +1 -0
  227. package/dist/src/db/write/createSeeds.d.ts.map +1 -0
  228. package/dist/src/db/write/createVersion.d.ts.map +1 -0
  229. package/dist/src/db/write/deleteItem.d.ts.map +1 -0
  230. package/dist/src/db/write/recoverDeletedItem.d.ts.map +1 -0
  231. package/dist/src/db/write/saveAppState.d.ts.map +1 -0
  232. package/dist/src/db/write/saveMetadata.d.ts.map +1 -0
  233. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -0
  234. package/dist/src/db/write/updateMetadata.d.ts.map +1 -0
  235. package/dist/src/db/write/updateSeedUid.d.ts.map +1 -0
  236. package/dist/src/eas.d.ts +26 -0
  237. package/dist/src/eas.d.ts.map +1 -0
  238. package/dist/src/eslint-rules/align-imports.d.ts.map +1 -0
  239. package/dist/src/eventBus.d.ts.map +1 -0
  240. package/dist/src/events/files/download.d.ts.map +1 -0
  241. package/dist/src/events/files/index.d.ts.map +1 -0
  242. package/dist/src/events/index.d.ts.map +1 -0
  243. package/dist/src/events/item/index.d.ts.map +1 -0
  244. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -0
  245. package/dist/src/events/services/allItems.d.ts.map +1 -0
  246. package/dist/src/events/services/index.d.ts.map +1 -0
  247. package/dist/src/graphql/fragments/Attestation.d.ts.map +1 -0
  248. package/dist/src/graphql/fragments/Schema.d.ts.map +1 -0
  249. package/dist/src/graphql/fragments/index.d.ts.map +1 -0
  250. package/dist/src/graphql/gql/fragment-masking.d.ts.map +1 -0
  251. package/dist/src/graphql/gql/gql.d.ts.map +1 -0
  252. package/dist/src/graphql/gql/graphql.d.ts.map +1 -0
  253. package/dist/src/graphql/gql/index.d.ts.map +1 -0
  254. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -0
  255. package/dist/src/helpers/ArweaveClient/index.d.ts.map +1 -0
  256. package/dist/src/helpers/ArweaveClient/queries.d.ts.map +1 -0
  257. package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +1 -0
  258. package/dist/src/helpers/FileManager/BaseFileManager.d.ts +41 -0
  259. package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -0
  260. package/dist/src/helpers/PathResolver/BasePathResolver.d.ts.map +1 -0
  261. package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +1 -0
  262. package/dist/src/helpers/addresses.d.ts.map +1 -0
  263. package/dist/src/helpers/constants.d.ts +71 -0
  264. package/dist/src/helpers/constants.d.ts.map +1 -0
  265. package/dist/src/helpers/crypto.d.ts.map +1 -0
  266. package/dist/src/helpers/db.d.ts +143 -0
  267. package/dist/src/helpers/db.d.ts.map +1 -0
  268. package/dist/src/helpers/entity/entityCache.d.ts.map +1 -0
  269. package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -0
  270. package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -0
  271. package/dist/src/helpers/entity/entityFind.d.ts.map +1 -0
  272. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -0
  273. package/dist/src/helpers/entity/entityUnload.d.ts +54 -0
  274. package/dist/src/helpers/entity/entityUnload.d.ts.map +1 -0
  275. package/dist/src/helpers/entity/index.d.ts.map +1 -0
  276. package/dist/src/helpers/environment.d.ts.map +1 -0
  277. package/dist/src/helpers/file/download/actors.d.ts.map +1 -0
  278. package/dist/src/helpers/file/download/index.d.ts.map +1 -0
  279. package/dist/src/helpers/file/fetchAll/actors.d.ts.map +1 -0
  280. package/dist/src/helpers/file/fetchAll/index.d.ts.map +1 -0
  281. package/dist/src/helpers/file/queries.d.ts.map +1 -0
  282. package/dist/src/helpers/files.d.ts.map +1 -0
  283. package/dist/src/helpers/getSchemaForItemProperty.d.ts +15 -0
  284. package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +1 -0
  285. package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -0
  286. package/dist/src/helpers/image/queries.d.ts.map +1 -0
  287. package/dist/src/helpers/index.d.ts +30 -0
  288. package/dist/src/helpers/index.d.ts.map +1 -0
  289. package/dist/src/helpers/model.d.ts.map +1 -0
  290. package/dist/src/helpers/ownership.d.ts.map +1 -0
  291. package/dist/src/helpers/property/index.d.ts +304 -0
  292. package/dist/src/helpers/property/index.d.ts.map +1 -0
  293. package/dist/src/helpers/property.d.ts.map +1 -0
  294. package/dist/src/helpers/publishConfig.d.ts +18 -0
  295. package/dist/src/helpers/publishConfig.d.ts.map +1 -0
  296. package/dist/src/helpers/reactiveProxy.d.ts.map +1 -0
  297. package/dist/src/helpers/schema.d.ts.map +1 -0
  298. package/dist/src/helpers/updateMachineContext.d.ts.map +1 -0
  299. package/dist/src/helpers/updateSchema.d.ts +128 -0
  300. package/dist/src/helpers/updateSchema.d.ts.map +1 -0
  301. package/dist/src/helpers/waitForEntityIdle.d.ts.map +1 -0
  302. package/dist/src/imports/index.d.ts.map +1 -0
  303. package/dist/src/imports/json.d.ts.map +1 -0
  304. package/dist/src/imports/markdown.d.ts +40 -0
  305. package/dist/src/imports/markdown.d.ts.map +1 -0
  306. package/dist/src/index.d.ts +30 -0
  307. package/dist/src/index.d.ts.map +1 -0
  308. package/dist/src/interfaces/IDb.d.ts.map +1 -0
  309. package/dist/src/interfaces/IEasClient.d.ts.map +1 -0
  310. package/dist/src/interfaces/IItem.d.ts.map +1 -0
  311. package/dist/src/interfaces/IItemProperty.d.ts.map +1 -0
  312. package/dist/src/interfaces/IQueryClient.d.ts.map +1 -0
  313. package/dist/src/interfaces/index.d.ts.map +1 -0
  314. package/dist/src/node/codegen/drizzle.d.ts.map +1 -0
  315. package/dist/src/node/codegen/index.d.ts.map +1 -0
  316. package/dist/src/node/codegen/ts-to-proto.d.ts.map +1 -0
  317. package/dist/src/node/constants.d.ts.map +1 -0
  318. package/dist/src/node/db/Db.d.ts.map +1 -0
  319. package/dist/src/node/db/index.d.ts.map +1 -0
  320. package/dist/src/node/db/node.app.db.config.d.ts.map +1 -0
  321. package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -0
  322. package/dist/src/node/helpers/EasClient.d.ts.map +1 -0
  323. package/dist/src/node/helpers/FileManager.d.ts +27 -0
  324. package/dist/src/node/helpers/FileManager.d.ts.map +1 -0
  325. package/dist/src/node/helpers/PathResolver.d.ts.map +1 -0
  326. package/dist/src/node/helpers/QueryClient.d.ts.map +1 -0
  327. package/dist/src/node/helpers/index.d.ts.map +1 -0
  328. package/dist/src/node/helpers/scripts.d.ts.map +1 -0
  329. package/dist/src/node/index.d.ts.map +1 -0
  330. package/dist/src/node/seed.d.ts.map +1 -0
  331. package/dist/src/node/webpack/fs-proxy.d.ts.map +1 -0
  332. package/dist/src/node/webpack/index.d.ts.map +1 -0
  333. package/dist/src/seedSchema/AppStateSchema.d.ts.map +1 -0
  334. package/dist/src/seedSchema/ConfigSchema.d.ts.map +1 -0
  335. package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -0
  336. package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -0
  337. package/dist/src/seedSchema/ModelSchemaSchema.d.ts.map +1 -0
  338. package/dist/src/seedSchema/ModelUidSchema.d.ts.map +1 -0
  339. package/dist/src/seedSchema/PropertyUidSchema.d.ts.map +1 -0
  340. package/dist/src/seedSchema/SchemaSchema.d.ts.map +1 -0
  341. package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -0
  342. package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -0
  343. package/dist/src/seedSchema/index.d.ts.map +1 -0
  344. package/dist/src/services/events.d.ts.map +1 -0
  345. package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +1 -0
  346. package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +1 -0
  347. package/dist/src/services/publish/actors/upload.d.ts.map +1 -0
  348. package/dist/src/services/publish/actors/validateItemData.d.ts.map +1 -0
  349. package/dist/src/services/publish/publishMachine.d.ts.map +1 -0
  350. package/dist/src/services/write/actors/validateEntity.d.ts.map +1 -0
  351. package/dist/src/services/write/actors/writeToDatabase.d.ts.map +1 -0
  352. package/dist/src/services/write/writeProcessMachine.d.ts.map +1 -0
  353. package/dist/src/stores/eas.d.ts +20 -0
  354. package/dist/src/stores/eas.d.ts.map +1 -0
  355. package/dist/src/types/arweave.d.ts.map +1 -0
  356. package/dist/src/types/browser.d.ts.map +1 -0
  357. package/dist/src/types/db.d.ts.map +1 -0
  358. package/dist/src/types/fileManager.d.ts.map +1 -0
  359. package/dist/src/types/helpers.d.ts.map +1 -0
  360. package/dist/src/types/import.d.ts.map +1 -0
  361. package/dist/src/types/index.d.ts +66 -0
  362. package/dist/src/types/index.d.ts.map +1 -0
  363. package/dist/src/types/item.d.ts.map +1 -0
  364. package/dist/src/types/machines.d.ts +53 -0
  365. package/dist/src/types/machines.d.ts.map +1 -0
  366. package/dist/src/types/model.d.ts.map +1 -0
  367. package/dist/src/types/property.d.ts.map +1 -0
  368. package/dist/src/types/publish.d.ts.map +1 -0
  369. package/dist/src/types/seedProtocol.d.ts.map +1 -0
  370. package/dist/src/types/services.d.ts.map +1 -0
  371. package/dist/src/vite/easFix.d.ts.map +1 -0
  372. package/dist/src/vite/index.d.ts.map +1 -0
  373. package/dist/vite.cjs +0 -5
  374. package/dist/vite.cjs.map +1 -1
  375. package/dist/vite.js +0 -5
  376. package/dist/vite.js.map +1 -1
  377. package/package.json +18 -104
  378. package/README.md +0 -67
  379. package/dist/ArweaveClient-BdQaTOZ4.js +0 -202
  380. package/dist/ArweaveClient-BdQaTOZ4.js.map +0 -1
  381. package/dist/ArweaveClient-nrTU_rhU.js +0 -202
  382. package/dist/ArweaveClient-nrTU_rhU.js.map +0 -1
  383. package/dist/Db-CWKaeNQH.js +0 -246
  384. package/dist/Db-CWKaeNQH.js.map +0 -1
  385. package/dist/Db-Cq4q88X_.js +0 -1530
  386. package/dist/Db-Cq4q88X_.js.map +0 -1
  387. package/dist/EasClient-Du9_TULE.js +0 -29
  388. package/dist/EasClient-Du9_TULE.js.map +0 -1
  389. package/dist/EasClient-ZCIE6UQq.js +0 -29
  390. package/dist/EasClient-ZCIE6UQq.js.map +0 -1
  391. package/dist/FileManager-Cub9icdd.js +0 -1153
  392. package/dist/FileManager-Cub9icdd.js.map +0 -1
  393. package/dist/FileManager-HSFEess-.js +0 -165
  394. package/dist/FileManager-HSFEess-.js.map +0 -1
  395. package/dist/Item/Item.d.ts +0 -136
  396. package/dist/Item/Item.d.ts.map +0 -1
  397. package/dist/Item/queries.d.ts.map +0 -1
  398. package/dist/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
  399. package/dist/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
  400. package/dist/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
  401. package/dist/Item/service/actors/initialize.d.ts.map +0 -1
  402. package/dist/Item/service/actors/loadOrCreateItem.d.ts.map +0 -1
  403. package/dist/Item/service/actors/reload.d.ts.map +0 -1
  404. package/dist/Item/service/actors/runPublish.d.ts.map +0 -1
  405. package/dist/Item/service/actors/saveDataToDb.d.ts.map +0 -1
  406. package/dist/Item/service/actors/waitForDb.d.ts.map +0 -1
  407. package/dist/Item/service/itemMachineSingle.d.ts.map +0 -1
  408. package/dist/ItemProperty/ItemProperty.d.ts +0 -118
  409. package/dist/ItemProperty/ItemProperty.d.ts.map +0 -1
  410. package/dist/ItemProperty/service/actors/hydrateFromDb.d.ts.map +0 -1
  411. package/dist/ItemProperty/service/actors/initialize.d.ts.map +0 -1
  412. package/dist/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +0 -1
  413. package/dist/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +0 -1
  414. package/dist/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
  415. package/dist/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
  416. package/dist/ItemProperty/service/actors/saveValueToDb/index.d.ts +0 -5
  417. package/dist/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
  418. package/dist/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +0 -1
  419. package/dist/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
  420. package/dist/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +0 -1
  421. package/dist/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
  422. package/dist/ItemProperty/service/propertyMachine.d.ts +0 -68
  423. package/dist/ItemProperty/service/propertyMachine.d.ts.map +0 -1
  424. package/dist/Model/Model.d.ts.map +0 -1
  425. package/dist/Model/index.d.ts.map +0 -1
  426. package/dist/Model/service/actors/createModelProperties.d.ts.map +0 -1
  427. package/dist/Model/service/actors/loadOrCreateModel.d.ts.map +0 -1
  428. package/dist/Model/service/actors/validateModel.d.ts.map +0 -1
  429. package/dist/Model/service/modelMachine.d.ts +0 -222
  430. package/dist/Model/service/modelMachine.d.ts.map +0 -1
  431. package/dist/ModelProperty/ModelProperty.d.ts +0 -146
  432. package/dist/ModelProperty/ModelProperty.d.ts.map +0 -1
  433. package/dist/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +0 -1
  434. package/dist/ModelProperty/service/actors/saveToSchema.d.ts.map +0 -1
  435. package/dist/ModelProperty/service/actors/validateProperty.d.ts.map +0 -1
  436. package/dist/ModelProperty/service/modelPropertyMachine.d.ts.map +0 -1
  437. package/dist/ModelProperty-D4zaeIOT.js +0 -1784
  438. package/dist/ModelProperty-D4zaeIOT.js.map +0 -1
  439. package/dist/PathResolver-DVLBs_qi.js +0 -191
  440. package/dist/PathResolver-DVLBs_qi.js.map +0 -1
  441. package/dist/PathResolver-T1yEDECb.js +0 -78
  442. package/dist/PathResolver-T1yEDECb.js.map +0 -1
  443. package/dist/QueryClient-DcKDQuwz.js +0 -34
  444. package/dist/QueryClient-DcKDQuwz.js.map +0 -1
  445. package/dist/QueryClient-Vs9KN5kS.js +0 -47
  446. package/dist/QueryClient-Vs9KN5kS.js.map +0 -1
  447. package/dist/Schema/Schema.d.ts.map +0 -1
  448. package/dist/Schema/errors.d.ts.map +0 -1
  449. package/dist/Schema/index.d.ts.map +0 -1
  450. package/dist/Schema/service/actors/checkExistingSchema.d.ts.map +0 -1
  451. package/dist/Schema/service/actors/createModelInstances.d.ts.map +0 -1
  452. package/dist/Schema/service/actors/createPropertyInstances.d.ts.map +0 -1
  453. package/dist/Schema/service/actors/loadOrCreateSchema.d.ts.map +0 -1
  454. package/dist/Schema/service/actors/validateSchema.d.ts.map +0 -1
  455. package/dist/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +0 -1
  456. package/dist/Schema/service/actors/verifyModelsInDb.d.ts.map +0 -1
  457. package/dist/Schema/service/actors/verifyPropertiesInDb.d.ts.map +0 -1
  458. package/dist/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +0 -1
  459. package/dist/Schema/service/actors/verifySchemaInDb.d.ts.map +0 -1
  460. package/dist/Schema/service/actors/writeModelsToDb.d.ts.map +0 -1
  461. package/dist/Schema/service/actors/writePropertiesToDb.d.ts.map +0 -1
  462. package/dist/Schema/service/actors/writeSchemaToDb.d.ts.map +0 -1
  463. package/dist/Schema/service/addModelsMachine.d.ts +0 -123
  464. package/dist/Schema/service/addModelsMachine.d.ts.map +0 -1
  465. package/dist/Schema/service/schemaMachine.d.ts +0 -526
  466. package/dist/Schema/service/schemaMachine.d.ts.map +0 -1
  467. package/dist/Schema/service/validation/SchemaValidationService.d.ts.map +0 -1
  468. package/dist/Schema/validation.d.ts.map +0 -1
  469. package/dist/Schema-SbwqmoMM.js +0 -6593
  470. package/dist/Schema-SbwqmoMM.js.map +0 -1
  471. package/dist/SchemaValidationService-DHGIw4Nx.js +0 -563
  472. package/dist/SchemaValidationService-DHGIw4Nx.js.map +0 -1
  473. package/dist/browser/db/Db.d.ts.map +0 -1
  474. package/dist/browser/db/drizzleFiles.d.ts.map +0 -1
  475. package/dist/browser/db/sqlWasmClient.d.ts.map +0 -1
  476. package/dist/browser/helpers/ArweaveClient.d.ts.map +0 -1
  477. package/dist/browser/helpers/EasClient.d.ts.map +0 -1
  478. package/dist/browser/helpers/FileManager.d.ts +0 -41
  479. package/dist/browser/helpers/FileManager.d.ts.map +0 -1
  480. package/dist/browser/helpers/PathResolver.d.ts.map +0 -1
  481. package/dist/browser/helpers/QueryClient.d.ts.map +0 -1
  482. package/dist/browser/helpers/index.d.ts.map +0 -1
  483. package/dist/browser/index.d.ts.map +0 -1
  484. package/dist/browser/react/OPFSImage.d.ts.map +0 -1
  485. package/dist/browser/react/SeedImage.d.ts.map +0 -1
  486. package/dist/browser/react/SeedProvider.d.ts.map +0 -1
  487. package/dist/browser/react/client.d.ts.map +0 -1
  488. package/dist/browser/react/db.d.ts.map +0 -1
  489. package/dist/browser/react/index.d.ts +0 -13
  490. package/dist/browser/react/index.d.ts.map +0 -1
  491. package/dist/browser/react/item.d.ts.map +0 -1
  492. package/dist/browser/react/itemProperty.d.ts.map +0 -1
  493. package/dist/browser/react/liveQuery.d.ts.map +0 -1
  494. package/dist/browser/react/model.d.ts.map +0 -1
  495. package/dist/browser/react/modelProperty.d.ts.map +0 -1
  496. package/dist/browser/react/queryClient.d.ts.map +0 -1
  497. package/dist/browser/react/schema.d.ts.map +0 -1
  498. package/dist/browser/react/services.d.ts.map +0 -1
  499. package/dist/browser/react/trash.d.ts.map +0 -1
  500. package/dist/browser/seed.d.ts.map +0 -1
  501. package/dist/browser/workers/FileDownloader.d.ts.map +0 -1
  502. package/dist/browser/workers/ImageResizer.d.ts.map +0 -1
  503. package/dist/browser/workers/content-hash.d.ts.map +0 -1
  504. package/dist/browser/workers/dbWorker.d.ts.map +0 -1
  505. package/dist/browser/workers/filesDownload.d.ts.map +0 -1
  506. package/dist/browser/workers/imageResize.d.ts.map +0 -1
  507. package/dist/cjs/ModelProperty-DpjD0o0E.js +0 -1780
  508. package/dist/cjs/ModelProperty-DpjD0o0E.js.map +0 -1
  509. package/dist/cjs/Schema-DkSBMBwz.js +0 -6217
  510. package/dist/cjs/Schema-DkSBMBwz.js.map +0 -1
  511. package/dist/cjs/SchemaValidationService-O3FCMROl.js +0 -579
  512. package/dist/cjs/SchemaValidationService-O3FCMROl.js.map +0 -1
  513. package/dist/cjs/getItem-BeAVMk54.js +0 -55
  514. package/dist/cjs/getItem-BeAVMk54.js.map +0 -1
  515. package/dist/cjs/getPublishPayload-CoLriAMV.js +0 -340
  516. package/dist/cjs/getPublishPayload-CoLriAMV.js.map +0 -1
  517. package/dist/cjs/getPublishUploads-DDsT9zZ6.js +0 -229
  518. package/dist/cjs/getPublishUploads-DDsT9zZ6.js.map +0 -1
  519. package/dist/cjs/getSegmentedItemProperties-DGR0utR5.js +0 -61
  520. package/dist/cjs/getSegmentedItemProperties-DGR0utR5.js.map +0 -1
  521. package/dist/cjs/index-B95Ng80C.js +0 -16950
  522. package/dist/cjs/index-B95Ng80C.js.map +0 -1
  523. package/dist/cjs/index-CvcOtzbi.js +0 -57
  524. package/dist/cjs/index-CvcOtzbi.js.map +0 -1
  525. package/dist/cjs/ownership-Dm5ER1nI.js +0 -103
  526. package/dist/cjs/ownership-Dm5ER1nI.js.map +0 -1
  527. package/dist/client/BaseClientManager.d.ts.map +0 -1
  528. package/dist/client/ClientManager.d.ts.map +0 -1
  529. package/dist/client/actions/setAddresses.d.ts.map +0 -1
  530. package/dist/client/actors/addModelsToDb.d.ts.map +0 -1
  531. package/dist/client/actors/addModelsToStore.d.ts.map +0 -1
  532. package/dist/client/actors/dbInit.d.ts.map +0 -1
  533. package/dist/client/actors/fileSystemInit.d.ts.map +0 -1
  534. package/dist/client/actors/platformClassesInit.d.ts.map +0 -1
  535. package/dist/client/actors/processSchemaFiles.d.ts.map +0 -1
  536. package/dist/client/actors/saveAppState.d.ts.map +0 -1
  537. package/dist/client/actors/saveConfig.d.ts.map +0 -1
  538. package/dist/client/clientManagerMachine.d.ts.map +0 -1
  539. package/dist/client/constants.d.ts.map +0 -1
  540. package/dist/client/index.d.ts.map +0 -1
  541. package/dist/db/Db/BaseDb.d.ts.map +0 -1
  542. package/dist/db/configs/dev.schema.config.d.ts.map +0 -1
  543. package/dist/db/read/getExistingItem.d.ts.map +0 -1
  544. package/dist/db/read/getItem.d.ts.map +0 -1
  545. package/dist/db/read/getItemData.d.ts.map +0 -1
  546. package/dist/db/read/getItemProperties.d.ts.map +0 -1
  547. package/dist/db/read/getItemProperty.d.ts.map +0 -1
  548. package/dist/db/read/getItems.d.ts.map +0 -1
  549. package/dist/db/read/getMetadata.d.ts.map +0 -1
  550. package/dist/db/read/getModelPropertiesData.d.ts.map +0 -1
  551. package/dist/db/read/getModelSchemas.d.ts.map +0 -1
  552. package/dist/db/read/getModels.d.ts.map +0 -1
  553. package/dist/db/read/getModelsData.d.ts.map +0 -1
  554. package/dist/db/read/getPropertyData.d.ts.map +0 -1
  555. package/dist/db/read/getPublishPayload.d.ts +0 -23
  556. package/dist/db/read/getPublishPayload.d.ts.map +0 -1
  557. package/dist/db/read/getPublishUploads.d.ts +0 -10
  558. package/dist/db/read/getPublishUploads.d.ts.map +0 -1
  559. package/dist/db/read/getRelationValueData.d.ts.map +0 -1
  560. package/dist/db/read/getSchemaUidForModel.d.ts +0 -2
  561. package/dist/db/read/getSchemaUidForModel.d.ts.map +0 -1
  562. package/dist/db/read/getSeedData.d.ts.map +0 -1
  563. package/dist/db/read/getStorageTransactionIdForSeedUid.d.ts.map +0 -1
  564. package/dist/db/read/getVersionData.d.ts.map +0 -1
  565. package/dist/db/read/getVersionsForVersionUids.d.ts.map +0 -1
  566. package/dist/db/read/subqueries/metadataLatest.d.ts.map +0 -1
  567. package/dist/db/read/subqueries/versionData.d.ts.map +0 -1
  568. package/dist/db/write/createMetadata.d.ts.map +0 -1
  569. package/dist/db/write/createNewItem.d.ts.map +0 -1
  570. package/dist/db/write/createSeed.d.ts.map +0 -1
  571. package/dist/db/write/createSeeds.d.ts.map +0 -1
  572. package/dist/db/write/createVersion.d.ts.map +0 -1
  573. package/dist/db/write/deleteItem.d.ts.map +0 -1
  574. package/dist/db/write/recoverDeletedItem.d.ts.map +0 -1
  575. package/dist/db/write/saveAppState.d.ts.map +0 -1
  576. package/dist/db/write/saveMetadata.d.ts.map +0 -1
  577. package/dist/db/write/updateItemPropertyValue.d.ts.map +0 -1
  578. package/dist/db/write/updateMetadata.d.ts.map +0 -1
  579. package/dist/db/write/updateSeedUid.d.ts.map +0 -1
  580. package/dist/eas.d.ts +0 -26
  581. package/dist/eas.d.ts.map +0 -1
  582. package/dist/eslint-rules/align-imports.d.ts.map +0 -1
  583. package/dist/eventBus.d.ts.map +0 -1
  584. package/dist/events/files/download.d.ts.map +0 -1
  585. package/dist/events/files/index.d.ts.map +0 -1
  586. package/dist/events/index.d.ts.map +0 -1
  587. package/dist/events/item/index.d.ts.map +0 -1
  588. package/dist/events/item/syncDbWithEas.d.ts.map +0 -1
  589. package/dist/events/services/allItems.d.ts.map +0 -1
  590. package/dist/events/services/index.d.ts.map +0 -1
  591. package/dist/feed.d.ts +0 -2
  592. package/dist/feed.d.ts.map +0 -1
  593. package/dist/getItem-CqrJt-Ee.js +0 -38
  594. package/dist/getItem-CqrJt-Ee.js.map +0 -1
  595. package/dist/getPublishPayload-BRgULCf3.js +0 -324
  596. package/dist/getPublishPayload-BRgULCf3.js.map +0 -1
  597. package/dist/getPublishUploads-B0WArDfp.js +0 -193
  598. package/dist/getPublishUploads-B0WArDfp.js.map +0 -1
  599. package/dist/getSegmentedItemProperties-DZL9Ymd4.js +0 -59
  600. package/dist/getSegmentedItemProperties-DZL9Ymd4.js.map +0 -1
  601. package/dist/graphql/fragments/Attestation.d.ts.map +0 -1
  602. package/dist/graphql/fragments/Schema.d.ts.map +0 -1
  603. package/dist/graphql/fragments/index.d.ts.map +0 -1
  604. package/dist/graphql/gql/fragment-masking.d.ts.map +0 -1
  605. package/dist/graphql/gql/gql.d.ts.map +0 -1
  606. package/dist/graphql/gql/graphql.d.ts.map +0 -1
  607. package/dist/graphql/gql/index.d.ts.map +0 -1
  608. package/dist/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
  609. package/dist/helpers/ArweaveClient/index.d.ts.map +0 -1
  610. package/dist/helpers/ArweaveClient/queries.d.ts.map +0 -1
  611. package/dist/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
  612. package/dist/helpers/FileManager/BaseFileManager.d.ts +0 -29
  613. package/dist/helpers/FileManager/BaseFileManager.d.ts.map +0 -1
  614. package/dist/helpers/PathResolver/BasePathResolver.d.ts.map +0 -1
  615. package/dist/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
  616. package/dist/helpers/addresses.d.ts.map +0 -1
  617. package/dist/helpers/constants.d.ts +0 -67
  618. package/dist/helpers/constants.d.ts.map +0 -1
  619. package/dist/helpers/crypto.d.ts.map +0 -1
  620. package/dist/helpers/db.d.ts +0 -142
  621. package/dist/helpers/db.d.ts.map +0 -1
  622. package/dist/helpers/entity/entityCache.d.ts.map +0 -1
  623. package/dist/helpers/entity/entityCommon.d.ts.map +0 -1
  624. package/dist/helpers/entity/entityDestroy.d.ts.map +0 -1
  625. package/dist/helpers/entity/entityFind.d.ts.map +0 -1
  626. package/dist/helpers/entity/entityLiveQuery.d.ts.map +0 -1
  627. package/dist/helpers/entity/entityUnload.d.ts +0 -50
  628. package/dist/helpers/entity/entityUnload.d.ts.map +0 -1
  629. package/dist/helpers/entity/index.d.ts.map +0 -1
  630. package/dist/helpers/environment.d.ts.map +0 -1
  631. package/dist/helpers/file/download/actors.d.ts.map +0 -1
  632. package/dist/helpers/file/download/index.d.ts.map +0 -1
  633. package/dist/helpers/file/fetchAll/actors.d.ts.map +0 -1
  634. package/dist/helpers/file/fetchAll/index.d.ts.map +0 -1
  635. package/dist/helpers/file/queries.d.ts.map +0 -1
  636. package/dist/helpers/files.d.ts.map +0 -1
  637. package/dist/helpers/getSchemaForItemProperty.d.ts +0 -15
  638. package/dist/helpers/getSchemaForItemProperty.d.ts.map +0 -1
  639. package/dist/helpers/getSegmentedItemProperties.d.ts.map +0 -1
  640. package/dist/helpers/image/queries.d.ts.map +0 -1
  641. package/dist/helpers/index.d.ts +0 -29
  642. package/dist/helpers/index.d.ts.map +0 -1
  643. package/dist/helpers/model.d.ts.map +0 -1
  644. package/dist/helpers/ownership.d.ts.map +0 -1
  645. package/dist/helpers/property/index.d.ts +0 -298
  646. package/dist/helpers/property/index.d.ts.map +0 -1
  647. package/dist/helpers/property.d.ts.map +0 -1
  648. package/dist/helpers/reactiveProxy.d.ts.map +0 -1
  649. package/dist/helpers/schema.d.ts.map +0 -1
  650. package/dist/helpers/updateMachineContext.d.ts.map +0 -1
  651. package/dist/helpers/updateSchema.d.ts +0 -118
  652. package/dist/helpers/updateSchema.d.ts.map +0 -1
  653. package/dist/helpers/waitForEntityIdle.d.ts.map +0 -1
  654. package/dist/imports/index.d.ts.map +0 -1
  655. package/dist/imports/json.d.ts.map +0 -1
  656. package/dist/imports/markdown.d.ts +0 -38
  657. package/dist/imports/markdown.d.ts.map +0 -1
  658. package/dist/index-BIPPEMVY.js +0 -23
  659. package/dist/index-BIPPEMVY.js.map +0 -1
  660. package/dist/index-BnF3MRZ8.js +0 -18
  661. package/dist/index-BnF3MRZ8.js.map +0 -1
  662. package/dist/index-zsq08F5p.js +0 -15670
  663. package/dist/index-zsq08F5p.js.map +0 -1
  664. package/dist/index.d.ts +0 -22
  665. package/dist/index.d.ts.map +0 -1
  666. package/dist/interfaces/IDb.d.ts.map +0 -1
  667. package/dist/interfaces/IEasClient.d.ts.map +0 -1
  668. package/dist/interfaces/IItem.d.ts.map +0 -1
  669. package/dist/interfaces/IItemProperty.d.ts.map +0 -1
  670. package/dist/interfaces/IQueryClient.d.ts.map +0 -1
  671. package/dist/interfaces/index.d.ts.map +0 -1
  672. package/dist/node/codegen/drizzle.d.ts.map +0 -1
  673. package/dist/node/codegen/index.d.ts.map +0 -1
  674. package/dist/node/codegen/ts-to-proto.d.ts.map +0 -1
  675. package/dist/node/constants.d.ts.map +0 -1
  676. package/dist/node/db/Db.d.ts.map +0 -1
  677. package/dist/node/db/index.d.ts.map +0 -1
  678. package/dist/node/db/node.app.db.config.d.ts.map +0 -1
  679. package/dist/node/helpers/ArweaveClient.d.ts.map +0 -1
  680. package/dist/node/helpers/EasClient.d.ts.map +0 -1
  681. package/dist/node/helpers/FileManager.d.ts +0 -26
  682. package/dist/node/helpers/FileManager.d.ts.map +0 -1
  683. package/dist/node/helpers/PathResolver.d.ts.map +0 -1
  684. package/dist/node/helpers/QueryClient.d.ts.map +0 -1
  685. package/dist/node/helpers/index.d.ts.map +0 -1
  686. package/dist/node/helpers/scripts.d.ts.map +0 -1
  687. package/dist/node/index.d.ts.map +0 -1
  688. package/dist/node/seed.d.ts.map +0 -1
  689. package/dist/node/webpack/fs-proxy.d.ts.map +0 -1
  690. package/dist/node/webpack/index.d.ts.map +0 -1
  691. package/dist/ownership-CSsweVap.js +0 -85
  692. package/dist/ownership-CSsweVap.js.map +0 -1
  693. package/dist/property-Cqh_o0zx.js +0 -282
  694. package/dist/property-Cqh_o0zx.js.map +0 -1
  695. package/dist/queries-DSBgjcJJ.js +0 -16
  696. package/dist/queries-DSBgjcJJ.js.map +0 -1
  697. package/dist/seedSchema/AppStateSchema.d.ts.map +0 -1
  698. package/dist/seedSchema/ConfigSchema.d.ts.map +0 -1
  699. package/dist/seedSchema/MetadataSchema.d.ts.map +0 -1
  700. package/dist/seedSchema/ModelSchema.d.ts.map +0 -1
  701. package/dist/seedSchema/ModelSchemaSchema.d.ts.map +0 -1
  702. package/dist/seedSchema/ModelUidSchema.d.ts.map +0 -1
  703. package/dist/seedSchema/PropertyUidSchema.d.ts.map +0 -1
  704. package/dist/seedSchema/SchemaSchema.d.ts.map +0 -1
  705. package/dist/seedSchema/SeedSchema.d.ts.map +0 -1
  706. package/dist/seedSchema/VersionSchema.d.ts.map +0 -1
  707. package/dist/seedSchema/index.d.ts.map +0 -1
  708. package/dist/services/events.d.ts.map +0 -1
  709. package/dist/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
  710. package/dist/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
  711. package/dist/services/publish/actors/upload.d.ts.map +0 -1
  712. package/dist/services/publish/actors/validateItemData.d.ts.map +0 -1
  713. package/dist/services/publish/publishMachine.d.ts.map +0 -1
  714. package/dist/services/write/actors/validateEntity.d.ts.map +0 -1
  715. package/dist/services/write/actors/writeToDatabase.d.ts.map +0 -1
  716. package/dist/services/write/writeProcessMachine.d.ts.map +0 -1
  717. package/dist/stores/eas.d.ts +0 -14
  718. package/dist/stores/eas.d.ts.map +0 -1
  719. package/dist/types/arweave.d.ts.map +0 -1
  720. package/dist/types/browser.d.ts.map +0 -1
  721. package/dist/types/db.d.ts.map +0 -1
  722. package/dist/types/fileManager.d.ts.map +0 -1
  723. package/dist/types/helpers.d.ts.map +0 -1
  724. package/dist/types/import.d.ts.map +0 -1
  725. package/dist/types/index.d.ts +0 -64
  726. package/dist/types/index.d.ts.map +0 -1
  727. package/dist/types/item.d.ts.map +0 -1
  728. package/dist/types/machines.d.ts +0 -52
  729. package/dist/types/machines.d.ts.map +0 -1
  730. package/dist/types/model.d.ts.map +0 -1
  731. package/dist/types/property.d.ts.map +0 -1
  732. package/dist/types/publish.d.ts.map +0 -1
  733. package/dist/types/seedProtocol.d.ts.map +0 -1
  734. package/dist/types/services.d.ts.map +0 -1
  735. package/dist/vite/easFix.d.ts.map +0 -1
  736. package/dist/vite/index.d.ts.map +0 -1
  737. /package/dist/{Item → src/Item}/queries.d.ts +0 -0
  738. /package/dist/{Item → src/Item}/service/actors/fetchDataFromEas.d.ts +0 -0
  739. /package/dist/{Item → src/Item}/service/actors/hydrateExistingItem.d.ts +0 -0
  740. /package/dist/{Item → src/Item}/service/actors/hydrateNewItem.d.ts +0 -0
  741. /package/dist/{Item → src/Item}/service/actors/initialize.d.ts +0 -0
  742. /package/dist/{Item → src/Item}/service/actors/loadOrCreateItem.d.ts +0 -0
  743. /package/dist/{Item → src/Item}/service/actors/reload.d.ts +0 -0
  744. /package/dist/{Item → src/Item}/service/actors/runPublish.d.ts +0 -0
  745. /package/dist/{Item → src/Item}/service/actors/saveDataToDb.d.ts +0 -0
  746. /package/dist/{Item → src/Item}/service/actors/waitForDb.d.ts +0 -0
  747. /package/dist/{Item → src/Item}/service/itemMachineSingle.d.ts +0 -0
  748. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/hydrateFromDb.d.ts +0 -0
  749. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/initialize.d.ts +0 -0
  750. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/loadOrCreateProperty.d.ts +0 -0
  751. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/resolveRelatedValue.d.ts +0 -0
  752. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/resolveRemoteStorage.d.ts +0 -0
  753. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/analyzeInput.d.ts +0 -0
  754. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveImage.d.ts +0 -0
  755. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -0
  756. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveRelation.d.ts +0 -0
  757. /package/dist/{ItemProperty → src/ItemProperty}/service/actors/waitForDb.d.ts +0 -0
  758. /package/dist/{Model → src/Model}/Model.d.ts +0 -0
  759. /package/dist/{Model → src/Model}/index.d.ts +0 -0
  760. /package/dist/{Model → src/Model}/service/actors/createModelProperties.d.ts +0 -0
  761. /package/dist/{Model → src/Model}/service/actors/loadOrCreateModel.d.ts +0 -0
  762. /package/dist/{Model → src/Model}/service/actors/validateModel.d.ts +0 -0
  763. /package/dist/{ModelProperty → src/ModelProperty}/service/actors/compareAndMarkDraft.d.ts +0 -0
  764. /package/dist/{ModelProperty → src/ModelProperty}/service/actors/saveToSchema.d.ts +0 -0
  765. /package/dist/{ModelProperty → src/ModelProperty}/service/actors/validateProperty.d.ts +0 -0
  766. /package/dist/{ModelProperty → src/ModelProperty}/service/modelPropertyMachine.d.ts +0 -0
  767. /package/dist/{Schema → src/Schema}/Schema.d.ts +0 -0
  768. /package/dist/{Schema → src/Schema}/errors.d.ts +0 -0
  769. /package/dist/{Schema → src/Schema}/index.d.ts +0 -0
  770. /package/dist/{Schema → src/Schema}/service/actors/checkExistingSchema.d.ts +0 -0
  771. /package/dist/{Schema → src/Schema}/service/actors/createModelInstances.d.ts +0 -0
  772. /package/dist/{Schema → src/Schema}/service/actors/createPropertyInstances.d.ts +0 -0
  773. /package/dist/{Schema → src/Schema}/service/actors/loadOrCreateSchema.d.ts +0 -0
  774. /package/dist/{Schema → src/Schema}/service/actors/validateSchema.d.ts +0 -0
  775. /package/dist/{Schema → src/Schema}/service/actors/verifyModelInstancesInCache.d.ts +0 -0
  776. /package/dist/{Schema → src/Schema}/service/actors/verifyModelsInDb.d.ts +0 -0
  777. /package/dist/{Schema → src/Schema}/service/actors/verifyPropertiesInDb.d.ts +0 -0
  778. /package/dist/{Schema → src/Schema}/service/actors/verifyPropertyInstancesInCache.d.ts +0 -0
  779. /package/dist/{Schema → src/Schema}/service/actors/verifySchemaInDb.d.ts +0 -0
  780. /package/dist/{Schema → src/Schema}/service/actors/writeModelsToDb.d.ts +0 -0
  781. /package/dist/{Schema → src/Schema}/service/actors/writePropertiesToDb.d.ts +0 -0
  782. /package/dist/{Schema → src/Schema}/service/actors/writeSchemaToDb.d.ts +0 -0
  783. /package/dist/{Schema → src/Schema}/service/validation/SchemaValidationService.d.ts +0 -0
  784. /package/dist/{Schema → src/Schema}/validation.d.ts +0 -0
  785. /package/dist/{browser → src/browser}/db/Db.d.ts +0 -0
  786. /package/dist/{browser → src/browser}/db/drizzleFiles.d.ts +0 -0
  787. /package/dist/{browser → src/browser}/db/sqlWasmClient.d.ts +0 -0
  788. /package/dist/{browser → src/browser}/helpers/ArweaveClient.d.ts +0 -0
  789. /package/dist/{browser → src/browser}/helpers/EasClient.d.ts +0 -0
  790. /package/dist/{browser → src/browser}/helpers/PathResolver.d.ts +0 -0
  791. /package/dist/{browser → src/browser}/helpers/QueryClient.d.ts +0 -0
  792. /package/dist/{browser → src/browser}/helpers/index.d.ts +0 -0
  793. /package/dist/{browser → src/browser}/index.d.ts +0 -0
  794. /package/dist/{browser → src/browser}/react/OPFSImage.d.ts +0 -0
  795. /package/dist/{browser → src/browser}/react/SeedImage.d.ts +0 -0
  796. /package/dist/{browser → src/browser}/react/SeedProvider.d.ts +0 -0
  797. /package/dist/{browser → src/browser}/react/client.d.ts +0 -0
  798. /package/dist/{browser → src/browser}/react/db.d.ts +0 -0
  799. /package/dist/{browser → src/browser}/react/item.d.ts +0 -0
  800. /package/dist/{browser → src/browser}/react/itemProperty.d.ts +0 -0
  801. /package/dist/{browser → src/browser}/react/liveQuery.d.ts +0 -0
  802. /package/dist/{browser → src/browser}/react/model.d.ts +0 -0
  803. /package/dist/{browser → src/browser}/react/modelProperty.d.ts +0 -0
  804. /package/dist/{browser → src/browser}/react/queryClient.d.ts +0 -0
  805. /package/dist/{browser → src/browser}/react/schema.d.ts +0 -0
  806. /package/dist/{browser → src/browser}/react/services.d.ts +0 -0
  807. /package/dist/{browser → src/browser}/react/trash.d.ts +0 -0
  808. /package/dist/{browser → src/browser}/seed.d.ts +0 -0
  809. /package/dist/{browser → src/browser}/workers/FileDownloader.d.ts +0 -0
  810. /package/dist/{browser → src/browser}/workers/ImageResizer.d.ts +0 -0
  811. /package/dist/{browser → src/browser}/workers/content-hash.d.ts +0 -0
  812. /package/dist/{browser → src/browser}/workers/dbWorker.d.ts +0 -0
  813. /package/dist/{browser → src/browser}/workers/filesDownload.d.ts +0 -0
  814. /package/dist/{browser → src/browser}/workers/imageResize.d.ts +0 -0
  815. /package/dist/{client → src/client}/BaseClientManager.d.ts +0 -0
  816. /package/dist/{client → src/client}/ClientManager.d.ts +0 -0
  817. /package/dist/{client → src/client}/actions/setAddresses.d.ts +0 -0
  818. /package/dist/{client → src/client}/actors/addModelsToDb.d.ts +0 -0
  819. /package/dist/{client → src/client}/actors/addModelsToStore.d.ts +0 -0
  820. /package/dist/{client → src/client}/actors/dbInit.d.ts +0 -0
  821. /package/dist/{client → src/client}/actors/fileSystemInit.d.ts +0 -0
  822. /package/dist/{client → src/client}/actors/platformClassesInit.d.ts +0 -0
  823. /package/dist/{client → src/client}/actors/processSchemaFiles.d.ts +0 -0
  824. /package/dist/{client → src/client}/actors/saveAppState.d.ts +0 -0
  825. /package/dist/{client → src/client}/actors/saveConfig.d.ts +0 -0
  826. /package/dist/{client → src/client}/clientManagerMachine.d.ts +0 -0
  827. /package/dist/{client → src/client}/constants.d.ts +0 -0
  828. /package/dist/{client → src/client}/index.d.ts +0 -0
  829. /package/dist/{db → src/db}/Db/BaseDb.d.ts +0 -0
  830. /package/dist/{db → src/db}/configs/dev.schema.config.d.ts +0 -0
  831. /package/dist/{db → src/db}/read/getExistingItem.d.ts +0 -0
  832. /package/dist/{db → src/db}/read/getItem.d.ts +0 -0
  833. /package/dist/{db → src/db}/read/getItemData.d.ts +0 -0
  834. /package/dist/{db → src/db}/read/getItemProperties.d.ts +0 -0
  835. /package/dist/{db → src/db}/read/getItemProperty.d.ts +0 -0
  836. /package/dist/{db → src/db}/read/getItems.d.ts +0 -0
  837. /package/dist/{db → src/db}/read/getMetadata.d.ts +0 -0
  838. /package/dist/{db → src/db}/read/getModelPropertiesData.d.ts +0 -0
  839. /package/dist/{db → src/db}/read/getModelSchemas.d.ts +0 -0
  840. /package/dist/{db → src/db}/read/getModels.d.ts +0 -0
  841. /package/dist/{db → src/db}/read/getModelsData.d.ts +0 -0
  842. /package/dist/{db → src/db}/read/getPropertyData.d.ts +0 -0
  843. /package/dist/{db → src/db}/read/getRelationValueData.d.ts +0 -0
  844. /package/dist/{db → src/db}/read/getSeedData.d.ts +0 -0
  845. /package/dist/{db → src/db}/read/getStorageTransactionIdForSeedUid.d.ts +0 -0
  846. /package/dist/{db → src/db}/read/getVersionData.d.ts +0 -0
  847. /package/dist/{db → src/db}/read/getVersionsForVersionUids.d.ts +0 -0
  848. /package/dist/{db → src/db}/read/subqueries/metadataLatest.d.ts +0 -0
  849. /package/dist/{db → src/db}/read/subqueries/versionData.d.ts +0 -0
  850. /package/dist/{db → src/db}/write/createMetadata.d.ts +0 -0
  851. /package/dist/{db → src/db}/write/createNewItem.d.ts +0 -0
  852. /package/dist/{db → src/db}/write/createSeed.d.ts +0 -0
  853. /package/dist/{db → src/db}/write/createSeeds.d.ts +0 -0
  854. /package/dist/{db → src/db}/write/createVersion.d.ts +0 -0
  855. /package/dist/{db → src/db}/write/deleteItem.d.ts +0 -0
  856. /package/dist/{db → src/db}/write/recoverDeletedItem.d.ts +0 -0
  857. /package/dist/{db → src/db}/write/saveAppState.d.ts +0 -0
  858. /package/dist/{db → src/db}/write/saveMetadata.d.ts +0 -0
  859. /package/dist/{db → src/db}/write/updateItemPropertyValue.d.ts +0 -0
  860. /package/dist/{db → src/db}/write/updateMetadata.d.ts +0 -0
  861. /package/dist/{db → src/db}/write/updateSeedUid.d.ts +0 -0
  862. /package/dist/{eslint-rules → src/eslint-rules}/align-imports.d.ts +0 -0
  863. /package/dist/{eventBus.d.ts → src/eventBus.d.ts} +0 -0
  864. /package/dist/{events → src/events}/files/download.d.ts +0 -0
  865. /package/dist/{events → src/events}/files/index.d.ts +0 -0
  866. /package/dist/{events → src/events}/index.d.ts +0 -0
  867. /package/dist/{events → src/events}/item/index.d.ts +0 -0
  868. /package/dist/{events → src/events}/item/syncDbWithEas.d.ts +0 -0
  869. /package/dist/{events → src/events}/services/allItems.d.ts +0 -0
  870. /package/dist/{events → src/events}/services/index.d.ts +0 -0
  871. /package/dist/{graphql → src/graphql}/fragments/Attestation.d.ts +0 -0
  872. /package/dist/{graphql → src/graphql}/fragments/Schema.d.ts +0 -0
  873. /package/dist/{graphql → src/graphql}/fragments/index.d.ts +0 -0
  874. /package/dist/{graphql → src/graphql}/gql/fragment-masking.d.ts +0 -0
  875. /package/dist/{graphql → src/graphql}/gql/gql.d.ts +0 -0
  876. /package/dist/{graphql → src/graphql}/gql/graphql.d.ts +0 -0
  877. /package/dist/{graphql → src/graphql}/gql/index.d.ts +0 -0
  878. /package/dist/{helpers → src/helpers}/ArweaveClient/BaseArweaveClient.d.ts +0 -0
  879. /package/dist/{helpers → src/helpers}/ArweaveClient/index.d.ts +0 -0
  880. /package/dist/{helpers → src/helpers}/ArweaveClient/queries.d.ts +0 -0
  881. /package/dist/{helpers → src/helpers}/EasClient/BaseEasClient.d.ts +0 -0
  882. /package/dist/{helpers → src/helpers}/PathResolver/BasePathResolver.d.ts +0 -0
  883. /package/dist/{helpers → src/helpers}/QueryClient/BaseQueryClient.d.ts +0 -0
  884. /package/dist/{helpers → src/helpers}/addresses.d.ts +0 -0
  885. /package/dist/{helpers → src/helpers}/crypto.d.ts +0 -0
  886. /package/dist/{helpers → src/helpers}/entity/entityCache.d.ts +0 -0
  887. /package/dist/{helpers → src/helpers}/entity/entityCommon.d.ts +0 -0
  888. /package/dist/{helpers → src/helpers}/entity/entityDestroy.d.ts +0 -0
  889. /package/dist/{helpers → src/helpers}/entity/entityFind.d.ts +0 -0
  890. /package/dist/{helpers → src/helpers}/entity/entityLiveQuery.d.ts +0 -0
  891. /package/dist/{helpers → src/helpers}/entity/index.d.ts +0 -0
  892. /package/dist/{helpers → src/helpers}/environment.d.ts +0 -0
  893. /package/dist/{helpers → src/helpers}/file/download/actors.d.ts +0 -0
  894. /package/dist/{helpers → src/helpers}/file/download/index.d.ts +0 -0
  895. /package/dist/{helpers → src/helpers}/file/fetchAll/actors.d.ts +0 -0
  896. /package/dist/{helpers → src/helpers}/file/fetchAll/index.d.ts +0 -0
  897. /package/dist/{helpers → src/helpers}/file/queries.d.ts +0 -0
  898. /package/dist/{helpers → src/helpers}/files.d.ts +0 -0
  899. /package/dist/{helpers → src/helpers}/getSegmentedItemProperties.d.ts +0 -0
  900. /package/dist/{helpers → src/helpers}/image/queries.d.ts +0 -0
  901. /package/dist/{helpers → src/helpers}/model.d.ts +0 -0
  902. /package/dist/{helpers → src/helpers}/ownership.d.ts +0 -0
  903. /package/dist/{helpers → src/helpers}/property.d.ts +0 -0
  904. /package/dist/{helpers → src/helpers}/reactiveProxy.d.ts +0 -0
  905. /package/dist/{helpers → src/helpers}/schema.d.ts +0 -0
  906. /package/dist/{helpers → src/helpers}/updateMachineContext.d.ts +0 -0
  907. /package/dist/{helpers → src/helpers}/waitForEntityIdle.d.ts +0 -0
  908. /package/dist/{imports → src/imports}/index.d.ts +0 -0
  909. /package/dist/{imports → src/imports}/json.d.ts +0 -0
  910. /package/dist/{interfaces → src/interfaces}/IDb.d.ts +0 -0
  911. /package/dist/{interfaces → src/interfaces}/IEasClient.d.ts +0 -0
  912. /package/dist/{interfaces → src/interfaces}/IItem.d.ts +0 -0
  913. /package/dist/{interfaces → src/interfaces}/IItemProperty.d.ts +0 -0
  914. /package/dist/{interfaces → src/interfaces}/IQueryClient.d.ts +0 -0
  915. /package/dist/{interfaces → src/interfaces}/index.d.ts +0 -0
  916. /package/dist/{node → src/node}/codegen/drizzle.d.ts +0 -0
  917. /package/dist/{node → src/node}/codegen/index.d.ts +0 -0
  918. /package/dist/{node → src/node}/codegen/ts-to-proto.d.ts +0 -0
  919. /package/dist/{node → src/node}/constants.d.ts +0 -0
  920. /package/dist/{node → src/node}/db/Db.d.ts +0 -0
  921. /package/dist/{node → src/node}/db/index.d.ts +0 -0
  922. /package/dist/{node → src/node}/db/node.app.db.config.d.ts +0 -0
  923. /package/dist/{node → src/node}/helpers/ArweaveClient.d.ts +0 -0
  924. /package/dist/{node → src/node}/helpers/EasClient.d.ts +0 -0
  925. /package/dist/{node → src/node}/helpers/PathResolver.d.ts +0 -0
  926. /package/dist/{node → src/node}/helpers/QueryClient.d.ts +0 -0
  927. /package/dist/{node → src/node}/helpers/index.d.ts +0 -0
  928. /package/dist/{node → src/node}/helpers/scripts.d.ts +0 -0
  929. /package/dist/{node → src/node}/index.d.ts +0 -0
  930. /package/dist/{node → src/node}/seed.d.ts +0 -0
  931. /package/dist/{node → src/node}/webpack/fs-proxy.d.ts +0 -0
  932. /package/dist/{node → src/node}/webpack/index.d.ts +0 -0
  933. /package/dist/{seedSchema → src/seedSchema}/AppStateSchema.d.ts +0 -0
  934. /package/dist/{seedSchema → src/seedSchema}/ConfigSchema.d.ts +0 -0
  935. /package/dist/{seedSchema → src/seedSchema}/MetadataSchema.d.ts +0 -0
  936. /package/dist/{seedSchema → src/seedSchema}/ModelSchema.d.ts +0 -0
  937. /package/dist/{seedSchema → src/seedSchema}/ModelSchemaSchema.d.ts +0 -0
  938. /package/dist/{seedSchema → src/seedSchema}/ModelUidSchema.d.ts +0 -0
  939. /package/dist/{seedSchema → src/seedSchema}/PropertyUidSchema.d.ts +0 -0
  940. /package/dist/{seedSchema → src/seedSchema}/SchemaSchema.d.ts +0 -0
  941. /package/dist/{seedSchema → src/seedSchema}/SeedSchema.d.ts +0 -0
  942. /package/dist/{seedSchema → src/seedSchema}/VersionSchema.d.ts +0 -0
  943. /package/dist/{seedSchema → src/seedSchema}/index.d.ts +0 -0
  944. /package/dist/{services → src/services}/events.d.ts +0 -0
  945. /package/dist/{services → src/services}/publish/actors/createPublishAttempt.d.ts +0 -0
  946. /package/dist/{services → src/services}/publish/actors/preparePublishRequestData.d.ts +0 -0
  947. /package/dist/{services → src/services}/publish/actors/upload.d.ts +0 -0
  948. /package/dist/{services → src/services}/publish/actors/validateItemData.d.ts +0 -0
  949. /package/dist/{services → src/services}/publish/publishMachine.d.ts +0 -0
  950. /package/dist/{services → src/services}/write/actors/validateEntity.d.ts +0 -0
  951. /package/dist/{services → src/services}/write/actors/writeToDatabase.d.ts +0 -0
  952. /package/dist/{services → src/services}/write/writeProcessMachine.d.ts +0 -0
  953. /package/dist/{types → src/types}/arweave.d.ts +0 -0
  954. /package/dist/{types → src/types}/browser.d.ts +0 -0
  955. /package/dist/{types → src/types}/db.d.ts +0 -0
  956. /package/dist/{types → src/types}/fileManager.d.ts +0 -0
  957. /package/dist/{types → src/types}/helpers.d.ts +0 -0
  958. /package/dist/{types → src/types}/import.d.ts +0 -0
  959. /package/dist/{types → src/types}/item.d.ts +0 -0
  960. /package/dist/{types → src/types}/model.d.ts +0 -0
  961. /package/dist/{types → src/types}/property.d.ts +0 -0
  962. /package/dist/{types → src/types}/publish.d.ts +0 -0
  963. /package/dist/{types → src/types}/seedProtocol.d.ts +0 -0
  964. /package/dist/{types → src/types}/services.d.ts +0 -0
  965. /package/dist/{vite → src/vite}/easFix.d.ts +0 -0
  966. /package/dist/{vite → src/vite}/index.d.ts +0 -0
@@ -0,0 +1,1731 @@
1
+ import { fromCallback, setup, assign, createActor } from 'xstate';
2
+ import 'reflect-metadata';
3
+ import { j as BaseDb, af as writeProcessMachine, u as models, v as properties, M as Model, r as modelPropertiesToObject, a0 as schemas, U as modelSchemas, n as normalizeDataType, ag as generateId, ah as waitForEntityIdle, ai as createReactiveProxy, aj as findEntity, C as BaseFileManager, ak as forceRemoveFromCaches, al as runDestroyLifecycle, am as getModelIdByFileId, an as getModelId } from './index-j8WN8W6V.js';
4
+ import 'pluralize';
5
+ import { eq, and } from 'drizzle-orm';
6
+ import debug from 'debug';
7
+ import { S as Schema } from './Schema-D1-HjT8z.js';
8
+ import 'drizzle-orm/sqlite-core';
9
+ import 'nanoid';
10
+ import 'nanoid-dictionary';
11
+ import 'ethers';
12
+ import 'rxjs';
13
+ import 'lodash-es';
14
+ import 'drizzle-orm/casing';
15
+ import 'eventemitter3';
16
+ import 'arweave';
17
+ import '@sinclair/typebox';
18
+ import './SchemaValidationService-CIXKzSpb.js';
19
+ import '@sinclair/typebox/value';
20
+
21
+ const logger$3 = debug('seedSdk:modelProperty:actors:saveToSchema');
22
+ /**
23
+ * Get schema name from model
24
+ * This function finds which schema contains the given model
25
+ * Exported so it can be reused by ModelProperty for setting schema name
26
+ */
27
+ async function getSchemaNameFromModel(modelName) {
28
+ // Get the latest schema files and find which one contains this model
29
+ const _mod_0 = await import('./index-j8WN8W6V.js');
30
+ const _ns_0 = _mod_0.aZ;
31
+ const schemaHelpersMod = _ns_0;
32
+ const { listLatestSchemaFiles } = schemaHelpersMod;
33
+ const latestSchemas = await listLatestSchemaFiles();
34
+ for (const schema of latestSchemas) {
35
+ try {
36
+ const _mod_1 = await import('./index-j8WN8W6V.js');
37
+ const _ns_1 = _mod_1.aX;
38
+ const fileManagerMod = _ns_1;
39
+ const { BaseFileManager } = fileManagerMod;
40
+ const content = await BaseFileManager.readFileAsString(schema.filePath);
41
+ const schemaFile = JSON.parse(content);
42
+ if (schemaFile.models && schemaFile.models[modelName]) {
43
+ return schema.name;
44
+ }
45
+ }
46
+ catch (error) {
47
+ logger$3('Error reading schema file:', error);
48
+ continue;
49
+ }
50
+ }
51
+ return undefined;
52
+ }
53
+ const saveToSchema = fromCallback(({ sendBack, input: { context } }) => {
54
+ const _saveToSchema = async () => {
55
+ // Use dynamic import to break circular dependency
56
+ const validationServiceMod = await import('./SchemaValidationService-CIXKzSpb.js');
57
+ const { SchemaValidationService } = validationServiceMod;
58
+ const validationService = new SchemaValidationService();
59
+ // Validate property structure before saving
60
+ const validationResult = validationService.validatePropertyStructure(context);
61
+ if (!validationResult.isValid) {
62
+ throw new Error(`Property validation failed: ${validationResult.errors.map(e => e.message).join(', ')}`);
63
+ }
64
+ // Validate required fields
65
+ if (!context.name) {
66
+ throw new Error('Property name is required');
67
+ }
68
+ if (!context.dataType) {
69
+ throw new Error('Data type is required');
70
+ }
71
+ if (!context.modelName) {
72
+ throw new Error(`Model not found for modelId: ${context.modelId}`);
73
+ }
74
+ // Persist to database only - schema file is updated only when user calls Schema.saveNewVersion()
75
+ const _mod_2 = await import('./index-j8WN8W6V.js');
76
+ const _ns_2 = _mod_2.aY;
77
+ const dbMod = _ns_2;
78
+ const { savePropertyToDb } = dbMod;
79
+ await savePropertyToDb(context);
80
+ // Mark schema as draft so user knows to save
81
+ const schemaName = context._schemaName ?? (await getSchemaNameFromModel(context.modelName));
82
+ if (schemaName) {
83
+ const _mod_3 = await import('./Schema-D1-HjT8z.js');
84
+ const _ns_3 = _mod_3.b;
85
+ const schemaMod = _ns_3;
86
+ const { Schema } = schemaMod;
87
+ const schema = Schema.create(schemaName, { waitForReady: false });
88
+ schema.getService().send({
89
+ type: 'markAsDraft',
90
+ propertyKey: `${context.modelName}:${context.name}`,
91
+ });
92
+ }
93
+ logger$3(`Successfully saved property ${context.modelName}:${context.name} to database`);
94
+ };
95
+ _saveToSchema().then(() => {
96
+ sendBack({ type: 'saveToSchemaSuccess' });
97
+ }).catch((error) => {
98
+ logger$3('Error saving to schema:', error);
99
+ sendBack({ type: 'saveToSchemaError', error });
100
+ });
101
+ return () => {
102
+ // Cleanup function (optional)
103
+ };
104
+ });
105
+
106
+ const logger$2 = debug('seedSdk:modelProperty:actors:compareAndMarkDraft');
107
+ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
108
+ const _compareAndMarkDraft = async () => {
109
+ // Fill modelName/dataType from _originalValues when missing, then from DB by schemaFileId
110
+ let fullContext = {
111
+ ...context,
112
+ modelName: context.modelName ?? context._originalValues?.modelName,
113
+ dataType: context.dataType ?? context._originalValues?.dataType,
114
+ };
115
+ const schemaFileIdForResolve = fullContext._propertyFileId || (typeof fullContext.id === 'string' ? fullContext.id : undefined);
116
+ if (schemaFileIdForResolve && (fullContext.modelName === undefined || fullContext.dataType === undefined)) {
117
+ try {
118
+ const _mod_4 = await import('./index-j8WN8W6V.js');
119
+ const _ns_4 = _mod_4.aY;
120
+ const dbMod = _ns_4;
121
+ const { getPropertyModelNameAndDataType, getModelNameByModelId } = dbMod;
122
+ let fromDb;
123
+ for (let attempt = 0; attempt < 6; attempt++) {
124
+ fromDb = await getPropertyModelNameAndDataType(schemaFileIdForResolve);
125
+ if (fromDb)
126
+ break;
127
+ if (attempt < 5)
128
+ await new Promise((r) => setTimeout(r, 40));
129
+ }
130
+ if (fromDb) {
131
+ fullContext = {
132
+ ...fullContext,
133
+ modelName: fullContext.modelName ?? fromDb.modelName,
134
+ dataType: fullContext.dataType ?? fromDb.dataType,
135
+ };
136
+ }
137
+ if (fullContext.modelName === undefined && schemaFileIdForResolve) {
138
+ const mod = await Promise.resolve().then(function () { return ModelProperty$1; });
139
+ const ModelProperty = mod?.ModelProperty ?? mod?.default;
140
+ const pendingModelId = ModelProperty?.getPendingModelId?.(schemaFileIdForResolve);
141
+ if (pendingModelId != null) {
142
+ const modelName = await getModelNameByModelId(pendingModelId);
143
+ if (modelName) {
144
+ fullContext = { ...fullContext, modelName };
145
+ }
146
+ }
147
+ }
148
+ }
149
+ catch {
150
+ // ignore
151
+ }
152
+ }
153
+ const schemaFileId = fullContext._propertyFileId || (typeof fullContext.id === 'string' ? fullContext.id : undefined);
154
+ // If _originalValues is not set, we still need to save to database if the property exists
155
+ // This handles the case where the name is changed before _originalValues is initialized
156
+ if (!fullContext._originalValues) {
157
+ logger$2('No original values to compare against');
158
+ logger$2(`[compareAndMarkDraft] Context: modelName=${fullContext.modelName}, name=${fullContext.name}, id=${fullContext.id}, _propertyFileId=${fullContext._propertyFileId}`);
159
+ // If we have a name and modelName, try to save to database anyway
160
+ // This ensures name changes are persisted even if _originalValues isn't initialized yet
161
+ // We need either schemaFileId (id or _propertyFileId) to find the property in the database
162
+ if (fullContext.modelName && fullContext.name && schemaFileId) {
163
+ logger$2(`[compareAndMarkDraft] _originalValues not set, but saving to database anyway for property ${context.modelName}:${context.name} (schemaFileId: ${schemaFileId})`);
164
+ try {
165
+ const _mod_5 = await import('./index-j8WN8W6V.js');
166
+ const _ns_5 = _mod_5.aY;
167
+ const dbMod = _ns_5;
168
+ const { savePropertyToDb } = dbMod;
169
+ // Ensure _propertyFileId is set for savePropertyToDb to find the property
170
+ const contextWithFileId = {
171
+ ...fullContext,
172
+ _propertyFileId: schemaFileId,
173
+ };
174
+ await savePropertyToDb(contextWithFileId);
175
+ logger$2(`[compareAndMarkDraft] Successfully saved property ${fullContext.modelName}:${fullContext.name} to database (no _originalValues)`);
176
+ }
177
+ catch (error) {
178
+ logger$2(`[compareAndMarkDraft] Error saving property to database (no _originalValues): ${error}`);
179
+ // Don't throw - this is a best-effort save, but log the error for debugging
180
+ console.error(`[compareAndMarkDraft] Failed to save property ${fullContext.modelName}:${fullContext.name}:`, error);
181
+ }
182
+ }
183
+ else {
184
+ logger$2(`[compareAndMarkDraft] Cannot save property ${fullContext.modelName}:${fullContext.name} - missing required fields (schemaFileId: ${schemaFileId})`);
185
+ }
186
+ return;
187
+ }
188
+ logger$2(`[compareAndMarkDraft] Comparing: context.name=${fullContext.name}, _originalValues.name=${fullContext._originalValues?.name}`);
189
+ // Compare current values with original
190
+ // Only compare property fields, not internal fields
191
+ const propertyFields = ['name', 'dataType', 'ref', 'refModelName', 'refModelId', 'refValueType', 'storageType', 'localStorageDir', 'filenameSuffix', 'modelName', 'modelId'];
192
+ const hasChanges = propertyFields.some(key => {
193
+ const currentValue = fullContext[key];
194
+ const originalValue = fullContext._originalValues?.[key];
195
+ // Handle name changes specifically
196
+ if (key === 'name') {
197
+ const nameChanged = currentValue !== originalValue;
198
+ if (nameChanged) {
199
+ logger$2(`[compareAndMarkDraft] Name change detected: "${originalValue}" -> "${currentValue}"`);
200
+ }
201
+ return nameChanged;
202
+ }
203
+ // Handle ref fields - compare by name
204
+ if (key === 'ref' || key === 'refModelName') {
205
+ const currentRef = fullContext.refModelName || fullContext.ref;
206
+ const originalRef = fullContext._originalValues?.refModelName || fullContext._originalValues?.ref;
207
+ // Both undefined/null means no ref, so they're the same
208
+ if (!currentRef && !originalRef)
209
+ return false;
210
+ return currentRef !== originalRef;
211
+ }
212
+ // For other fields, compare values (handling undefined/null)
213
+ if (currentValue === undefined && originalValue === undefined)
214
+ return false;
215
+ if (currentValue === null && originalValue === null)
216
+ return false;
217
+ if (currentValue === undefined && originalValue === null)
218
+ return false;
219
+ if (currentValue === null && originalValue === undefined)
220
+ return false;
221
+ return currentValue !== originalValue;
222
+ });
223
+ if (hasChanges) {
224
+ logger$2(`Property ${fullContext.modelName}:${fullContext.name} has changes, marking as edited`);
225
+ logger$2(`[compareAndMarkDraft] Context when saving: id=${fullContext.id}, _propertyFileId=${fullContext._propertyFileId}, name=${fullContext.name}, _originalValues.name=${fullContext._originalValues?.name}`);
226
+ // Use dynamic import to break circular dependency
227
+ const _mod_6 = await import('./index-j8WN8W6V.js');
228
+ const _ns_6 = _mod_6.aY;
229
+ const dbMod = _ns_6;
230
+ const { savePropertyToDb } = dbMod;
231
+ // Save to database (but not JSON file) - always save to DB when there are changes
232
+ try {
233
+ await savePropertyToDb(fullContext);
234
+ logger$2(`[compareAndMarkDraft] Successfully saved property ${fullContext.modelName}:${fullContext.name} to database`);
235
+ }
236
+ catch (error) {
237
+ logger$2(`[compareAndMarkDraft] Error saving property to database: ${error}`);
238
+ throw error;
239
+ }
240
+ // Mark schema as draft if schema name is available
241
+ if (fullContext._schemaName) {
242
+ // Get the Schema instance and mark it as draft
243
+ const _mod_7 = await import('./Schema-D1-HjT8z.js');
244
+ const _ns_7 = _mod_7.b;
245
+ const schemaMod = _ns_7;
246
+ const { Schema } = schemaMod;
247
+ const schema = Schema.create(fullContext._schemaName, {
248
+ waitForReady: false,
249
+ });
250
+ // Send event to Schema machine to mark as draft
251
+ schema.getService().send({
252
+ type: 'markAsDraft',
253
+ propertyKey: `${fullContext.modelName}:${fullContext.name}`,
254
+ });
255
+ }
256
+ }
257
+ else {
258
+ // No changes - clear edited flag in database and context
259
+ logger$2(`Property ${fullContext.modelName}:${fullContext.name} has no changes`);
260
+ // Clear isEdited flag in database
261
+ try {
262
+ const _mod_8 = await import('./index-ajj6SHkh.js');
263
+ const _ns_8 = _mod_8.s;
264
+ const seedSchemaMod = _ns_8;
265
+ const { properties: propertiesTable, models: modelsTable } = seedSchemaMod;
266
+ const drizzleMod = await import('drizzle-orm');
267
+ const { eq, and } = drizzleMod;
268
+ const db = BaseDb.getAppDb();
269
+ if (db && fullContext.modelName && fullContext.name) {
270
+ // Find model by name
271
+ const modelRecords = await db
272
+ .select({ id: modelsTable.id })
273
+ .from(modelsTable)
274
+ .where(eq(modelsTable.name, fullContext.modelName))
275
+ .limit(1);
276
+ if (modelRecords.length > 0) {
277
+ // Find property by name and modelId
278
+ const propertyRecords = await db
279
+ .select({ id: propertiesTable.id })
280
+ .from(propertiesTable)
281
+ .where(and(eq(propertiesTable.name, fullContext.name), eq(propertiesTable.modelId, modelRecords[0].id)))
282
+ .limit(1);
283
+ if (propertyRecords.length > 0) {
284
+ // Clear isEdited flag in database
285
+ await db
286
+ .update(propertiesTable)
287
+ .set({ isEdited: false })
288
+ .where(eq(propertiesTable.id, propertyRecords[0].id));
289
+ logger$2(`Cleared isEdited flag in database for property ${fullContext.modelName}:${fullContext.name}`);
290
+ }
291
+ }
292
+ }
293
+ }
294
+ catch (error) {
295
+ logger$2(`Error clearing isEdited flag in database: ${error}`);
296
+ }
297
+ sendBack({
298
+ type: 'clearEdited',
299
+ });
300
+ }
301
+ };
302
+ _compareAndMarkDraft().then(() => {
303
+ sendBack({ type: 'compareAndMarkDraftSuccess' });
304
+ }).catch((error) => {
305
+ logger$2('Error comparing and marking draft:', error);
306
+ sendBack({ type: 'compareAndMarkDraftError', error });
307
+ });
308
+ return () => {
309
+ // Cleanup function (optional)
310
+ };
311
+ });
312
+
313
+ const logger$1 = debug('seedSdk:modelProperty:actors:validateProperty');
314
+ const validateProperty = fromCallback(({ sendBack, input: { context } }) => {
315
+ const _validateProperty = async () => {
316
+ // Use full context for validation: fill modelName/dataType from _originalValues when missing, then
317
+ // from DB by schemaFileId (context.id) so just-created renames don't fail structure validation.
318
+ let fullContext = {
319
+ ...context,
320
+ modelName: context.modelName ?? context._originalValues?.modelName,
321
+ dataType: context.dataType ?? context._originalValues?.dataType,
322
+ };
323
+ const schemaFileId = typeof context.id === 'string' ? context.id : undefined;
324
+ if (schemaFileId && (fullContext.modelName === undefined || fullContext.dataType === undefined)) {
325
+ // Brief wait so trackPendingWrite from ModelProperty.create() has time to run (it's in setTimeout(0))
326
+ await new Promise((r) => setTimeout(r, 60));
327
+ try {
328
+ const _mod_9 = await import('./index-j8WN8W6V.js');
329
+ const _ns_9 = _mod_9.aY;
330
+ const dbMod = _ns_9;
331
+ const { getPropertyModelNameAndDataType, getModelNameByModelId } = dbMod;
332
+ // Try pending write first (property row may not exist yet)
333
+ if (fullContext.modelName === undefined && schemaFileId) {
334
+ const mod = await Promise.resolve().then(function () { return ModelProperty$1; });
335
+ const ModelProperty = mod?.ModelProperty ?? mod?.default;
336
+ const pendingModelId = ModelProperty?.getPendingModelId?.(schemaFileId);
337
+ if (pendingModelId != null) {
338
+ const modelName = await getModelNameByModelId(pendingModelId);
339
+ if (modelName) {
340
+ fullContext = { ...fullContext, modelName };
341
+ }
342
+ }
343
+ }
344
+ // Then DB property lookup with retry (catches row after initial write)
345
+ let fromDb;
346
+ for (let attempt = 0; attempt < 6; attempt++) {
347
+ fromDb = await getPropertyModelNameAndDataType(schemaFileId);
348
+ if (fromDb)
349
+ break;
350
+ if (attempt < 5)
351
+ await new Promise((r) => setTimeout(r, 40));
352
+ }
353
+ if (fromDb) {
354
+ fullContext = {
355
+ ...fullContext,
356
+ modelName: fullContext.modelName ?? fromDb.modelName,
357
+ dataType: fullContext.dataType ?? fromDb.dataType,
358
+ };
359
+ }
360
+ // If still no modelName, try pending write again (may have been set during retries)
361
+ if (fullContext.modelName === undefined && schemaFileId) {
362
+ const mod = await Promise.resolve().then(function () { return ModelProperty$1; });
363
+ const ModelProperty = mod?.ModelProperty ?? mod?.default;
364
+ const pendingModelId = ModelProperty?.getPendingModelId?.(schemaFileId);
365
+ if (pendingModelId != null) {
366
+ const modelName = await getModelNameByModelId(pendingModelId);
367
+ if (modelName) {
368
+ fullContext = { ...fullContext, modelName };
369
+ }
370
+ }
371
+ }
372
+ }
373
+ catch {
374
+ // ignore
375
+ }
376
+ }
377
+ // Last resort for structure validation: TProperty requires dataType; allow name+id to pass if we have schemaFileId
378
+ if (fullContext.dataType === undefined && (fullContext.modelName !== undefined || schemaFileId)) {
379
+ fullContext = { ...fullContext, dataType: (fullContext.dataType ?? context._originalValues?.dataType) || 'Text' };
380
+ }
381
+ // Use dynamic imports to break circular dependencies
382
+ const validationServiceMod = await import('./SchemaValidationService-CIXKzSpb.js');
383
+ const { SchemaValidationService } = validationServiceMod;
384
+ const validationService = new SchemaValidationService();
385
+ const _mod_10 = await import('./Schema-D1-HjT8z.js');
386
+ const _ns_10 = _mod_10.b;
387
+ const schemaMod = _ns_10;
388
+ const { Schema } = schemaMod;
389
+ // Validate property structure
390
+ const structureResult = validationService.validatePropertyStructure(fullContext);
391
+ if (!structureResult.isValid) {
392
+ sendBack({ type: 'validationError', errors: structureResult.errors });
393
+ return;
394
+ }
395
+ // If we have schema name and model name, validate against schema
396
+ if (fullContext._schemaName && fullContext.modelName) {
397
+ try {
398
+ const schema = Schema.create(fullContext._schemaName, {
399
+ waitForReady: false,
400
+ });
401
+ const schemaSnapshot = schema.getService().getSnapshot();
402
+ const schemaStatus = schemaSnapshot.value;
403
+ // Only validate against schema if it's loaded (in idle state)
404
+ // If still loading, skip schema validation and only do structure validation
405
+ if (schemaStatus === 'idle') {
406
+ const schemaContext = schemaSnapshot.context;
407
+ // Check if models are actually loaded
408
+ if (schemaContext.models && Object.keys(schemaContext.models).length > 0) {
409
+ // If property name has changed, validate against the original name (from schema file)
410
+ // This handles the case where a property is renamed - the schema file still has the old name
411
+ const propertyNameToValidate = fullContext._originalValues?.name && fullContext._originalValues.name !== fullContext.name
412
+ ? fullContext._originalValues.name
413
+ : fullContext.name || '';
414
+ const schemaResult = validationService.validateProperty(schemaContext, fullContext.modelName, propertyNameToValidate, fullContext);
415
+ if (!schemaResult.isValid) {
416
+ // If property was renamed, some validation errors are expected (like property_not_found, missing_type)
417
+ // Only fail if it's a critical error that's not related to the rename
418
+ const isRenamed = fullContext._originalValues?.name && fullContext._originalValues.name !== fullContext.name;
419
+ const criticalErrors = schemaResult.errors.filter(err => {
420
+ // Allow property_not_found and missing_type errors when property is renamed
421
+ if (isRenamed && (err.code === 'property_not_found' || err.code === 'missing_type')) {
422
+ return false; // Not critical
423
+ }
424
+ // For non-renamed properties, only allow property_not_found if we're validating with the same name
425
+ if (err.code === 'property_not_found' && propertyNameToValidate === fullContext.name) {
426
+ return false; // Not critical
427
+ }
428
+ return true; // Critical error
429
+ });
430
+ if (criticalErrors.length > 0) {
431
+ sendBack({ type: 'validationError', errors: criticalErrors });
432
+ return;
433
+ }
434
+ // Continue with validation - rename-related errors are acceptable
435
+ }
436
+ }
437
+ else {
438
+ logger$1('Schema models not loaded yet, skipping schema validation');
439
+ // Continue with structure validation only
440
+ }
441
+ }
442
+ else {
443
+ logger$1(`Schema is in ${schemaStatus} state, skipping schema validation`);
444
+ // Continue with structure validation only
445
+ }
446
+ }
447
+ catch (error) {
448
+ logger$1('Error validating property against schema:', error);
449
+ // Continue with structure validation only
450
+ }
451
+ }
452
+ // All validations passed
453
+ sendBack({ type: 'validationSuccess', errors: [] });
454
+ };
455
+ _validateProperty().catch((error) => {
456
+ logger$1('Error in validateProperty:', error);
457
+ sendBack({
458
+ type: 'validationError',
459
+ errors: [{
460
+ field: 'property',
461
+ message: error instanceof Error ? error.message : 'Unknown validation error',
462
+ code: 'validation_exception',
463
+ severity: 'error',
464
+ }],
465
+ });
466
+ });
467
+ return () => {
468
+ // Cleanup function (optional)
469
+ };
470
+ });
471
+
472
+ const modelPropertyMachine = setup({
473
+ types: {
474
+ context: {},
475
+ input: {},
476
+ events: {},
477
+ },
478
+ actors: {
479
+ saveToSchema,
480
+ compareAndMarkDraft,
481
+ validateProperty,
482
+ writeProcessMachine,
483
+ },
484
+ guards: {
485
+ isPropertyValid: ({ context }) => {
486
+ const valid = !context._validationErrors || context._validationErrors.length === 0;
487
+ return valid;
488
+ },
489
+ hasValidationErrors: ({ context }) => {
490
+ return !!context._validationErrors && context._validationErrors.length > 0;
491
+ },
492
+ },
493
+ actions: {
494
+ assignValidationErrors: assign(({ context, event }) => {
495
+ if (event.type === 'validationError') {
496
+ return {
497
+ ...context,
498
+ _validationErrors: event.errors,
499
+ };
500
+ }
501
+ return context;
502
+ }),
503
+ },
504
+ }).createMachine({
505
+ id: 'modelProperty',
506
+ initial: 'idle',
507
+ context: ({ input }) => {
508
+ const context = input;
509
+ return context;
510
+ },
511
+ on: {
512
+ updateContext: {
513
+ actions: assign(({ context, event }) => {
514
+ const newContext = Object.assign({}, context);
515
+ // Check if this is only updating internal fields
516
+ const onlyInternalFields = Object.keys(event).every((key) => {
517
+ return key === 'type' || key.startsWith('_');
518
+ });
519
+ // Update the context with new values
520
+ for (let i = 0; i < Object.keys(event).length; i++) {
521
+ const key = Object.keys(event)[i];
522
+ if (key === 'type') {
523
+ continue;
524
+ }
525
+ let value = event[key];
526
+ // Convert null to undefined for optional fields (TypeBox validation expects undefined, not null)
527
+ // This is especially important for refValueType, refModelId, etc.
528
+ if (value === null && (key === 'refValueType' || key === 'refModelId' || key === 'ref' || key === 'refModelName')) {
529
+ value = undefined;
530
+ }
531
+ newContext[key] = value;
532
+ }
533
+ // Preserve modelName and dataType from context or _originalValues so validation and savePropertyToDb
534
+ // never run with missing required/needed fields (e.g. when a just-created property is renamed before
535
+ // the full context is available from the creator).
536
+ if (newContext.modelName === undefined && context._originalValues?.modelName !== undefined) {
537
+ newContext.modelName = context._originalValues.modelName;
538
+ }
539
+ if (newContext.dataType === undefined && context._originalValues?.dataType !== undefined) {
540
+ newContext.dataType = context._originalValues.dataType;
541
+ }
542
+ // Compare with original values and set _isEdited flag (only for non-internal updates)
543
+ if (!onlyInternalFields && context._originalValues) {
544
+ const hasChanges = Object.keys(event).some((key) => {
545
+ if (key === 'type' || key.startsWith('_'))
546
+ return false;
547
+ return newContext[key] !== context._originalValues?.[key];
548
+ });
549
+ newContext._isEdited = hasChanges;
550
+ }
551
+ // Clear validation errors on context update (will be re-validated if needed)
552
+ newContext._validationErrors = undefined;
553
+ // Convert null to undefined for optional fields (TypeBox validation expects undefined, not null)
554
+ // This is especially important for refValueType, refModelId, etc.
555
+ const optionalFields = ['refValueType', 'refModelId', 'ref', 'refModelName'];
556
+ for (const field of optionalFields) {
557
+ if (newContext[field] === null) {
558
+ newContext[field] = undefined;
559
+ }
560
+ }
561
+ return newContext;
562
+ }),
563
+ // Only trigger validation and compareAndMarkDraft if we're updating non-internal fields
564
+ guard: ({ event }) => {
565
+ const shouldTransition = !Object.keys(event).every((key) => {
566
+ return key === 'type' || key.startsWith('_');
567
+ });
568
+ return shouldTransition;
569
+ },
570
+ target: '.validating',
571
+ },
572
+ validateProperty: {
573
+ target: '.validating',
574
+ },
575
+ validationSuccess: {
576
+ actions: assign(({ context, event }) => ({
577
+ ...context,
578
+ _validationErrors: [],
579
+ })),
580
+ },
581
+ validationError: {
582
+ actions: 'assignValidationErrors',
583
+ // Note: State-specific transitions are handled in child states
584
+ // This root handler ensures errors are always assigned to context
585
+ },
586
+ initializeOriginalValues: {
587
+ actions: assign(({ context, event }) => ({
588
+ ...context,
589
+ _originalValues: event.originalValues,
590
+ _schemaName: event.schemaName,
591
+ _isEdited: event.isEdited ?? false,
592
+ _validationErrors: undefined,
593
+ })),
594
+ },
595
+ clearEdited: {
596
+ actions: assign(({ context }) => ({
597
+ ...context,
598
+ _isEdited: false,
599
+ _originalValues: { ...context },
600
+ })),
601
+ },
602
+ setSchemaName: {
603
+ actions: assign(({ context, event }) => ({
604
+ ...context,
605
+ _schemaName: event.schemaName,
606
+ })),
607
+ },
608
+ destroyStarted: {
609
+ actions: assign({ _destroyInProgress: true, _destroyError: null }),
610
+ },
611
+ destroyDone: {
612
+ actions: assign({ _destroyInProgress: false }),
613
+ },
614
+ destroyError: {
615
+ actions: assign(({ event }) => ({
616
+ _destroyInProgress: false,
617
+ _destroyError: event.error instanceof Error
618
+ ? { message: event.error.message, name: event.error.name }
619
+ : { message: String(event.error) },
620
+ })),
621
+ },
622
+ clearDestroyError: {
623
+ actions: assign({ _destroyError: null }),
624
+ },
625
+ },
626
+ states: {
627
+ idle: {
628
+ on: {
629
+ saveToSchema: { target: 'saveToSchema' },
630
+ validateProperty: {
631
+ target: 'validating',
632
+ },
633
+ requestWrite: {
634
+ actions: ({ context, event }) => {
635
+ if (context.writeProcess) {
636
+ context.writeProcess.send({
637
+ type: 'startWrite',
638
+ data: event.data,
639
+ });
640
+ }
641
+ },
642
+ },
643
+ },
644
+ entry: assign({
645
+ writeProcess: ({ spawn, context }) => {
646
+ // Spawn writeProcess if we have id (schemaFileId)
647
+ // New properties will have id generated
648
+ const entityId = context.id;
649
+ if (!context.writeProcess && entityId) {
650
+ return spawn(writeProcessMachine, {
651
+ input: {
652
+ entityType: 'modelProperty',
653
+ entityId: String(entityId),
654
+ entityData: context,
655
+ },
656
+ });
657
+ }
658
+ return context.writeProcess;
659
+ },
660
+ }),
661
+ },
662
+ validating: {
663
+ on: {
664
+ saveToSchema: { target: 'saveToSchema' },
665
+ validationSuccess: {
666
+ target: 'compareAndMarkDraft',
667
+ actions: assign(({ context }) => ({
668
+ ...context,
669
+ _validationErrors: [],
670
+ })),
671
+ },
672
+ // validationError: Uses root handler for assignment, but needs state-specific transition
673
+ validationError: {
674
+ target: 'idle',
675
+ actions: 'assignValidationErrors',
676
+ },
677
+ },
678
+ invoke: {
679
+ src: 'validateProperty',
680
+ input: ({ context }) => ({ context }),
681
+ },
682
+ },
683
+ compareAndMarkDraft: {
684
+ on: {
685
+ saveToSchema: { target: 'saveToSchema' },
686
+ compareAndMarkDraftSuccess: {
687
+ target: 'idle',
688
+ },
689
+ compareAndMarkDraftError: {
690
+ target: 'idle',
691
+ },
692
+ },
693
+ invoke: {
694
+ src: 'compareAndMarkDraft',
695
+ input: ({ context }) => ({ context }),
696
+ },
697
+ },
698
+ saveToSchema: {
699
+ always: {
700
+ guard: 'isPropertyValid',
701
+ target: '.saving',
702
+ },
703
+ initial: 'saving',
704
+ on: {
705
+ // Apply updateContext but do not re-invoke saveToSchema actor (avoids infinite loop).
706
+ // Context is updated; in-flight save completes with original context.
707
+ updateContext: [
708
+ {
709
+ guard: ({ context, event }) => {
710
+ const onlyInternal = Object.keys(event).every((k) => k === 'type' || k.startsWith('_'));
711
+ return !onlyInternal && event.name !== undefined && event.name !== context.name;
712
+ },
713
+ actions: assign(({ context, event }) => {
714
+ const newContext = Object.assign({}, context);
715
+ const onlyInternalFields = Object.keys(event).every((key) => key === 'type' || key.startsWith('_'));
716
+ for (const key of Object.keys(event)) {
717
+ if (key === 'type')
718
+ continue;
719
+ let value = event[key];
720
+ if (value === null && ['refValueType', 'refModelId', 'ref', 'refModelName'].includes(key))
721
+ value = undefined;
722
+ newContext[key] = value;
723
+ }
724
+ if (newContext.modelName === undefined && context._originalValues?.modelName !== undefined) {
725
+ newContext.modelName = context._originalValues.modelName;
726
+ }
727
+ if (newContext.dataType === undefined && context._originalValues?.dataType !== undefined) {
728
+ newContext.dataType = context._originalValues.dataType;
729
+ }
730
+ if (!onlyInternalFields && context._originalValues) {
731
+ const hasChanges = Object.keys(event).some((key) => {
732
+ if (key === 'type' || key.startsWith('_'))
733
+ return false;
734
+ return newContext[key] !== context._originalValues?.[key];
735
+ });
736
+ newContext._isEdited = hasChanges;
737
+ }
738
+ newContext._validationErrors = undefined;
739
+ return newContext;
740
+ }),
741
+ },
742
+ {
743
+ actions: assign(({ context, event }) => {
744
+ const newContext = Object.assign({}, context);
745
+ const onlyInternalFields = Object.keys(event).every((key) => key === 'type' || key.startsWith('_'));
746
+ for (const key of Object.keys(event)) {
747
+ if (key === 'type')
748
+ continue;
749
+ let value = event[key];
750
+ if (value === null && ['refValueType', 'refModelId', 'ref', 'refModelName'].includes(key))
751
+ value = undefined;
752
+ newContext[key] = value;
753
+ }
754
+ if (newContext.modelName === undefined && context._originalValues?.modelName !== undefined) {
755
+ newContext.modelName = context._originalValues.modelName;
756
+ }
757
+ if (newContext.dataType === undefined && context._originalValues?.dataType !== undefined) {
758
+ newContext.dataType = context._originalValues.dataType;
759
+ }
760
+ if (!onlyInternalFields && context._originalValues) {
761
+ const hasChanges = Object.keys(event).some((key) => {
762
+ if (key === 'type' || key.startsWith('_'))
763
+ return false;
764
+ return newContext[key] !== context._originalValues?.[key];
765
+ });
766
+ newContext._isEdited = hasChanges;
767
+ }
768
+ newContext._validationErrors = undefined;
769
+ return newContext;
770
+ }),
771
+ },
772
+ ],
773
+ // validationError: Uses root handler for assignment, but needs state-specific transition
774
+ validationError: {
775
+ target: 'idle',
776
+ actions: 'assignValidationErrors',
777
+ },
778
+ },
779
+ states: {
780
+ saving: {
781
+ on: {
782
+ saveToSchemaSuccess: {
783
+ target: '#modelProperty.idle',
784
+ },
785
+ saveToSchemaError: {
786
+ target: '#modelProperty.idle',
787
+ },
788
+ },
789
+ invoke: {
790
+ src: 'saveToSchema',
791
+ input: ({ context }) => ({ context }),
792
+ },
793
+ },
794
+ },
795
+ },
796
+ },
797
+ });
798
+
799
+ /**
800
+ * Returns property rows for a model identified by modelFileId (model's schemaFileId).
801
+ * Resolves modelFileId -> modelId via models table, then selects all properties where modelId = ?.
802
+ * Each row includes schemaFileId for use with ModelProperty.createById(schemaFileId).
803
+ */
804
+ const getModelPropertiesData = async (modelFileId) => {
805
+ const appDb = BaseDb.getAppDb();
806
+ if (!appDb || !modelFileId) {
807
+ return [];
808
+ }
809
+ const modelRows = await appDb
810
+ .select({ id: models.id })
811
+ .from(models)
812
+ .where(eq(models.schemaFileId, modelFileId))
813
+ .limit(1);
814
+ if (modelRows.length === 0) {
815
+ return [];
816
+ }
817
+ const modelId = modelRows[0].id;
818
+ const rows = await appDb
819
+ .select()
820
+ .from(properties)
821
+ .where(eq(properties.modelId, modelId));
822
+ return rows;
823
+ };
824
+
825
+ const logger = debug('seedSdk:modelProperty:ModelProperty');
826
+ // Define the property keys from TProperty
827
+ const TPropertyKeys = [
828
+ 'id',
829
+ 'name',
830
+ 'dataType',
831
+ 'ref',
832
+ 'modelId',
833
+ 'refModelId',
834
+ 'refValueType',
835
+ 'storageType',
836
+ 'localStorageDir',
837
+ 'filenameSuffix',
838
+ 'modelName',
839
+ 'refModelName',
840
+ ];
841
+ class ModelProperty {
842
+ constructor(property) {
843
+ // id is now the schemaFileId (string), _dbId is the database integer ID
844
+ // Preserve _propertyFileId if it exists in the property object (from getPropertySchema)
845
+ // Convert null to undefined for optional fields (TypeBox validation expects undefined, not null)
846
+ const serviceInput = {
847
+ ...property,
848
+ _propertyFileId: property._propertyFileId || property.id,
849
+ refValueType: property.refValueType ?? undefined,
850
+ refModelId: property.refModelId ?? undefined,
851
+ ref: property.ref ?? undefined,
852
+ refModelName: property.refModelName ?? undefined,
853
+ };
854
+ this._service = createActor(modelPropertyMachine, {
855
+ input: serviceInput,
856
+ });
857
+ this._service.start();
858
+ // Initialize original values from the input property
859
+ this._initializeOriginalValues(property);
860
+ // Note: Property getters/setters are now handled by the Proxy in create()
861
+ }
862
+ /**
863
+ * Initialize original values and schema name for tracking changes
864
+ * This is called asynchronously after construction
865
+ * If the property was loaded from the database and differs from the schema file,
866
+ * it will be marked as edited.
867
+ */
868
+ _initializeOriginalValues(property) {
869
+ // Resolve refModelId if ref/refModelName is provided but refModelId is missing
870
+ const refModelName = property.refModelName || property.ref;
871
+ if (refModelName && !property.refModelId) {
872
+ // Resolve refModelId asynchronously and update context
873
+ this._resolveRefModelId(refModelName).then((refModelId) => {
874
+ if (refModelId) {
875
+ // Update the context with the resolved refModelId
876
+ this._service.send({
877
+ type: 'updateContext',
878
+ refModelId,
879
+ });
880
+ }
881
+ }).catch(() => {
882
+ // Ignore errors - model might not exist yet
883
+ });
884
+ }
885
+ // Get schema file values to use as "original" values
886
+ // This allows us to detect if the property was edited (DB value differs from schema file)
887
+ this._getSchemaFileValues(property).then((schemaFileValues) => {
888
+ // Use schema file values as original (not the current property values)
889
+ // This way, if current values differ from schema file, _isEdited will be true
890
+ const originalValues = schemaFileValues || {};
891
+ // Compare current property values with schema file values to determine if edited
892
+ // Only compare schema-relevant fields, not database-specific fields like id, modelId
893
+ let isEdited = false;
894
+ if (schemaFileValues) {
895
+ // Fields that are schema-relevant and should be compared
896
+ const schemaRelevantFields = [
897
+ 'dataType',
898
+ 'ref',
899
+ 'refModelName',
900
+ 'refValueType',
901
+ 'storageType',
902
+ 'localStorageDir',
903
+ 'filenameSuffix',
904
+ ];
905
+ // Check if any schema-relevant field differs between current property and schema file
906
+ isEdited = schemaRelevantFields.some((key) => {
907
+ const currentValue = property[key];
908
+ const originalValue = schemaFileValues[key];
909
+ // Handle ref fields - compare by name
910
+ if (key === 'ref' || key === 'refModelName') {
911
+ const currentRef = property.refModelName || property.ref;
912
+ const originalRef = schemaFileValues.refModelName || schemaFileValues.ref;
913
+ // Both undefined/null means no ref, so they're the same
914
+ if (!currentRef && !originalRef)
915
+ return false;
916
+ return currentRef !== originalRef;
917
+ }
918
+ // For other fields, compare values (handling undefined/null)
919
+ if (currentValue === undefined && originalValue === undefined)
920
+ return false;
921
+ if (currentValue === null && originalValue === null)
922
+ return false;
923
+ if (currentValue === undefined && originalValue === null)
924
+ return false;
925
+ if (currentValue === null && originalValue === undefined)
926
+ return false;
927
+ return currentValue !== originalValue;
928
+ });
929
+ }
930
+ else {
931
+ // No schema file values found - this is a runtime-created property
932
+ // Use current property as original, but mark as edited since it hasn't been exported to file
933
+ TPropertyKeys.forEach((key) => {
934
+ if (property[key] !== undefined) {
935
+ originalValues[key] = property[key];
936
+ }
937
+ });
938
+ // For runtime-created properties, set isEdited = true initially
939
+ isEdited = true;
940
+ }
941
+ // Initialize with original values, including isEdited flag
942
+ // Load isEdited from database if property exists in DB (async, fire-and-forget)
943
+ this._loadIsEditedFromDb(property, isEdited).then((isEditedFromDb) => {
944
+ this._service.send({
945
+ type: 'initializeOriginalValues',
946
+ originalValues,
947
+ schemaName: undefined, // Will be set later if needed
948
+ isEdited: isEditedFromDb,
949
+ });
950
+ }).catch(() => {
951
+ // If we can't load from DB, use computed isEdited value
952
+ this._service.send({
953
+ type: 'initializeOriginalValues',
954
+ originalValues,
955
+ schemaName: undefined, // Will be set later if needed
956
+ isEdited,
957
+ });
958
+ });
959
+ }).catch(() => {
960
+ // If we can't get schema file values, use current property as original
961
+ const originalValues = {};
962
+ TPropertyKeys.forEach((key) => {
963
+ if (property[key] !== undefined) {
964
+ originalValues[key] = property[key];
965
+ }
966
+ });
967
+ this._service.send({
968
+ type: 'initializeOriginalValues',
969
+ originalValues,
970
+ schemaName: undefined,
971
+ });
972
+ });
973
+ // Get schema name from model asynchronously (fire-and-forget)
974
+ if (property.modelName) {
975
+ this._setSchemaName(property.modelName).catch(() => {
976
+ // If we can't get schema name, that's okay - it will be set later if needed
977
+ });
978
+ }
979
+ }
980
+ /**
981
+ * Load isEdited flag from database if property exists in DB
982
+ * @param property - The property data
983
+ * @param fallbackIsEdited - Fallback value if property doesn't exist in DB
984
+ * @returns The isEdited flag from database or fallback value
985
+ */
986
+ async _loadIsEditedFromDb(property, fallbackIsEdited) {
987
+ if (!property.modelName || !property.name) {
988
+ return fallbackIsEdited;
989
+ }
990
+ try {
991
+ const db = BaseDb.getAppDb();
992
+ if (!db) {
993
+ return fallbackIsEdited;
994
+ }
995
+ // Find model by name
996
+ const modelRecords = await db
997
+ .select({ id: models.id })
998
+ .from(models)
999
+ .where(eq(models.name, property.modelName))
1000
+ .limit(1);
1001
+ if (modelRecords.length === 0) {
1002
+ return fallbackIsEdited;
1003
+ }
1004
+ // Find property by name and modelId
1005
+ const propertyRecords = await db
1006
+ .select({ isEdited: properties.isEdited })
1007
+ .from(properties)
1008
+ .where(and(eq(properties.name, property.name), eq(properties.modelId, modelRecords[0].id)))
1009
+ .limit(1);
1010
+ if (propertyRecords.length > 0) {
1011
+ return propertyRecords[0].isEdited ?? false;
1012
+ }
1013
+ }
1014
+ catch (error) {
1015
+ // Ignore errors - use fallback value
1016
+ }
1017
+ return fallbackIsEdited;
1018
+ }
1019
+ /**
1020
+ * Resolve refModelId from refModelName by querying the database
1021
+ * @param refModelName - The name of the referenced model
1022
+ * @returns The database ID of the referenced model, or undefined if not found
1023
+ */
1024
+ async _resolveRefModelId(refModelName) {
1025
+ if (!refModelName) {
1026
+ return undefined;
1027
+ }
1028
+ try {
1029
+ const db = BaseDb.getAppDb();
1030
+ if (!db) {
1031
+ return undefined;
1032
+ }
1033
+ const refModelRecords = await db
1034
+ .select()
1035
+ .from(models)
1036
+ .where(eq(models.name, refModelName))
1037
+ .limit(1);
1038
+ if (refModelRecords.length > 0 && refModelRecords[0].id) {
1039
+ return refModelRecords[0].id;
1040
+ }
1041
+ }
1042
+ catch (error) {
1043
+ // Ignore errors - model might not exist yet or database not available
1044
+ logger(`Error resolving refModelId for model "${refModelName}":`, error);
1045
+ }
1046
+ return undefined;
1047
+ }
1048
+ /**
1049
+ * Get schema file values for this property to use as "original" values
1050
+ * This allows comparison with database values to detect edits
1051
+ */
1052
+ async _getSchemaFileValues(property) {
1053
+ if (!property.modelName || !property.name) {
1054
+ return undefined;
1055
+ }
1056
+ try {
1057
+ const model = await Model.getByNameAsync(property.modelName);
1058
+ if (!model || !model.properties || model.properties.length === 0) {
1059
+ return undefined;
1060
+ }
1061
+ const schema = modelPropertiesToObject(model.properties);
1062
+ // Get the schema file value for this property
1063
+ const schemaFileValue = schema[property.name];
1064
+ if (!schemaFileValue) {
1065
+ return undefined;
1066
+ }
1067
+ // Return schema file values as original values
1068
+ const originalValues = {
1069
+ name: property.name,
1070
+ modelName: property.modelName,
1071
+ dataType: schemaFileValue.dataType,
1072
+ storageType: schemaFileValue.storageType,
1073
+ localStorageDir: schemaFileValue.localStorageDir,
1074
+ filenameSuffix: schemaFileValue.filenameSuffix,
1075
+ };
1076
+ // Handle ref fields
1077
+ if (schemaFileValue.ref) {
1078
+ originalValues.ref = schemaFileValue.ref;
1079
+ originalValues.refModelName = schemaFileValue.ref;
1080
+ // Try to get refModelId from database
1081
+ const refModelId = await this._resolveRefModelId(schemaFileValue.ref);
1082
+ if (refModelId) {
1083
+ originalValues.refModelId = refModelId;
1084
+ }
1085
+ }
1086
+ if (schemaFileValue.refValueType) {
1087
+ originalValues.refValueType = schemaFileValue.refValueType;
1088
+ }
1089
+ return originalValues;
1090
+ }
1091
+ catch (error) {
1092
+ return undefined;
1093
+ }
1094
+ }
1095
+ /**
1096
+ * Set the schema name for this property by looking it up from the model
1097
+ * Tries database first (more reliable), then falls back to schema files
1098
+ */
1099
+ async _setSchemaName(modelName) {
1100
+ try {
1101
+ let schemaName;
1102
+ // Try to get schema name from database first (more reliable)
1103
+ if (this.modelId) {
1104
+ try {
1105
+ const db = BaseDb.getAppDb();
1106
+ if (db) {
1107
+ const modelSchemaRecords = await db
1108
+ .select({
1109
+ schemaName: schemas.name,
1110
+ })
1111
+ .from(modelSchemas)
1112
+ .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))
1113
+ .innerJoin(models, eq(modelSchemas.modelId, models.id))
1114
+ .where(eq(models.id, this.modelId))
1115
+ .limit(1);
1116
+ if (modelSchemaRecords.length > 0) {
1117
+ schemaName = modelSchemaRecords[0].schemaName;
1118
+ }
1119
+ }
1120
+ }
1121
+ catch (error) {
1122
+ // Database lookup failed, continue to file-based lookup
1123
+ }
1124
+ }
1125
+ // Fall back to schema file lookup if database didn't work
1126
+ if (!schemaName) {
1127
+ schemaName = await getSchemaNameFromModel(modelName);
1128
+ }
1129
+ if (schemaName) {
1130
+ // Update the context with the schema name using dedicated event
1131
+ this._service.send({
1132
+ type: 'setSchemaName',
1133
+ schemaName,
1134
+ });
1135
+ }
1136
+ }
1137
+ catch (error) {
1138
+ // If we can't get schema name, that's okay - it will be set later if needed
1139
+ }
1140
+ }
1141
+ /**
1142
+ * Manually set the schema name for this property
1143
+ * Useful when you know the schema name from context (e.g., when working with Schema instances)
1144
+ */
1145
+ setSchemaName(schemaName) {
1146
+ this._service.send({
1147
+ type: 'setSchemaName',
1148
+ schemaName,
1149
+ });
1150
+ }
1151
+ static create(property, options) {
1152
+ if (!property) {
1153
+ throw new Error('Property is required');
1154
+ }
1155
+ const waitForReady = options?.waitForReady !== false;
1156
+ const readyTimeout = options?.readyTimeout ?? 5000;
1157
+ const schemaName = options?.schemaName;
1158
+ // Handle 'type' field from JSON schema format - convert to 'dataType'
1159
+ // Normalize to PascalCase so lowercase values from JSON (e.g. 'text') work
1160
+ const propertyWithId = { ...property };
1161
+ const rawType = propertyWithId.dataType ?? propertyWithId.type;
1162
+ if (rawType) {
1163
+ propertyWithId.dataType = normalizeDataType(rawType);
1164
+ }
1165
+ // Ensure id (schemaFileId) is set correctly
1166
+ // Priority: _propertyFileId > id (if string) > generate new
1167
+ // If id is a number (old format), use _propertyFileId instead
1168
+ if (typeof propertyWithId.id === 'number') {
1169
+ // id is a database integer ID, not schemaFileId - use _propertyFileId if available
1170
+ if (propertyWithId._propertyFileId) {
1171
+ propertyWithId.id = propertyWithId._propertyFileId;
1172
+ }
1173
+ else {
1174
+ // Fallback: generate new schemaFileId (shouldn't happen, but safety)
1175
+ propertyWithId.id = generateId();
1176
+ logger(`ModelProperty.create: id was a number, generated new schemaFileId "${propertyWithId.id}" for property "${property.name}"`);
1177
+ }
1178
+ }
1179
+ else if (!propertyWithId.id && propertyWithId._propertyFileId) {
1180
+ // id is not set but _propertyFileId is available - use it
1181
+ propertyWithId.id = propertyWithId._propertyFileId;
1182
+ }
1183
+ else if (!propertyWithId.id) {
1184
+ // Generate id (schemaFileId) if not provided (for new properties)
1185
+ // This ensures new properties can trigger write process
1186
+ propertyWithId.id = generateId();
1187
+ logger(`ModelProperty.create: Generated new id (schemaFileId) "${propertyWithId.id}" for property "${property.name}"`);
1188
+ }
1189
+ // Create cache key from modelName and name, or use id
1190
+ const cacheKey = propertyWithId.modelName && propertyWithId.name
1191
+ ? `${propertyWithId.modelName}:${propertyWithId.name}`
1192
+ : propertyWithId.id
1193
+ ? `id:${propertyWithId.id}`
1194
+ : propertyWithId.name || 'unnamed';
1195
+ // Check if instance exists in cache
1196
+ if (this.instanceCache.has(cacheKey)) {
1197
+ const { instance, refCount } = this.instanceCache.get(cacheKey);
1198
+ const cachedContext = instance._getSnapshotContext();
1199
+ // Update cached instance if new property data has fields that the cached instance doesn't have
1200
+ // This handles cases where the property was created without ref initially, but now we have ref from schema
1201
+ const needsUpdate = {};
1202
+ if (propertyWithId.ref && !cachedContext.ref) {
1203
+ needsUpdate.ref = propertyWithId.ref;
1204
+ }
1205
+ if (propertyWithId.refModelName && !cachedContext.refModelName) {
1206
+ needsUpdate.refModelName = propertyWithId.refModelName;
1207
+ }
1208
+ if (propertyWithId.refModelId && !cachedContext.refModelId) {
1209
+ needsUpdate.refModelId = propertyWithId.refModelId;
1210
+ }
1211
+ if (Object.keys(needsUpdate).length > 0) {
1212
+ instance._service.send({
1213
+ type: 'updateContext',
1214
+ ...needsUpdate,
1215
+ });
1216
+ }
1217
+ this.instanceCache.set(cacheKey, {
1218
+ instance,
1219
+ refCount: refCount + 1,
1220
+ });
1221
+ if (!waitForReady)
1222
+ return instance;
1223
+ return waitForEntityIdle(instance, { timeout: readyTimeout }).then(() => instance);
1224
+ }
1225
+ const newInstance = new this(propertyWithId);
1226
+ // Set schema name before async operations so getModelId can resolve the correct model
1227
+ if (schemaName) {
1228
+ newInstance._service.send({
1229
+ type: 'setSchemaName',
1230
+ schemaName,
1231
+ });
1232
+ }
1233
+ // Wrap instance in Proxy for reactive property access
1234
+ const proxiedInstance = createReactiveProxy({
1235
+ instance: newInstance,
1236
+ service: newInstance._service,
1237
+ trackedProperties: TPropertyKeys,
1238
+ getContext: (instance) => {
1239
+ const context = instance._getSnapshotContext();
1240
+ return context;
1241
+ },
1242
+ sendUpdate: (instance, prop, value) => {
1243
+ const currentContext = instance._getSnapshotContext();
1244
+ if (currentContext[prop] === value)
1245
+ return; // No-op, avoid triggering machine
1246
+ instance._service.send({
1247
+ type: 'updateContext',
1248
+ [prop]: value,
1249
+ });
1250
+ },
1251
+ });
1252
+ this.instanceCache.set(cacheKey, {
1253
+ instance: proxiedInstance,
1254
+ refCount: 1,
1255
+ });
1256
+ // Trigger write process if property has modelId (or modelName) and id (schemaFileId)
1257
+ // Wait for service to be ready (idle state) and have writeProcess spawned
1258
+ const propertyFileId = propertyWithId.id; // id is now the schemaFileId (string)
1259
+ const hasModelId = propertyWithId.modelId || propertyWithId.modelName;
1260
+ if (hasModelId && propertyFileId) {
1261
+ // Wait for writeProcess to be spawned (it's spawned in idle state entry action)
1262
+ // Retry a few times if writeProcess isn't available yet
1263
+ let retries = 0;
1264
+ const maxRetries = 10;
1265
+ const checkAndSend = async () => {
1266
+ const service = proxiedInstance.getService();
1267
+ const snapshot = service.getSnapshot();
1268
+ if (snapshot.value === 'idle' && snapshot.context.writeProcess) {
1269
+ const writeProcess = snapshot.context.writeProcess;
1270
+ // Resolve dbModelId - convert from string (modelFileId) to number (database ID) if needed
1271
+ let resolvedModelId = undefined;
1272
+ if (propertyWithId.modelId) {
1273
+ if (typeof propertyWithId.modelId === 'number') {
1274
+ resolvedModelId = propertyWithId.modelId;
1275
+ }
1276
+ else if (typeof propertyWithId.modelId === 'string') {
1277
+ // modelId is a string (modelFileId), need to convert to database ID
1278
+ try {
1279
+ resolvedModelId = await getModelIdByFileId(propertyWithId.modelId);
1280
+ logger(`Converted modelFileId "${propertyWithId.modelId}" to database modelId: ${resolvedModelId}`);
1281
+ }
1282
+ catch (error) {
1283
+ logger(`Failed to convert modelFileId "${propertyWithId.modelId}" to database ID: ${error}`);
1284
+ console.error(`[ModelProperty.create] Failed to convert modelFileId: ${error}`);
1285
+ }
1286
+ }
1287
+ }
1288
+ // If we still don't have a modelId, try to resolve it from modelName
1289
+ if (!resolvedModelId && propertyWithId.modelName) {
1290
+ try {
1291
+ // Get schemaName from context if available
1292
+ const schemaName = snapshot.context._schemaName;
1293
+ resolvedModelId = await getModelId(propertyWithId.modelName, schemaName);
1294
+ logger(`Resolved modelId for model "${propertyWithId.modelName}": ${resolvedModelId}`);
1295
+ }
1296
+ catch (error) {
1297
+ logger(`Failed to resolve modelId for model "${propertyWithId.modelName}": ${error}`);
1298
+ console.error(`[ModelProperty.create] Failed to resolve modelId: ${error}`);
1299
+ }
1300
+ }
1301
+ if (!resolvedModelId) {
1302
+ logger(`ERROR: Cannot write property "${property.name}" - no modelId available`);
1303
+ console.error(`[ModelProperty.create] ERROR: Cannot write property "${property.name}" - no modelId available. modelId: ${propertyWithId.modelId}, modelName: ${propertyWithId.modelName}`);
1304
+ // Don't clear pending write here - it might resolve later
1305
+ return;
1306
+ }
1307
+ // Track pending write now that we have the resolved modelId
1308
+ this.trackPendingWrite(propertyFileId, resolvedModelId);
1309
+ logger(`Triggering write process for property "${property.name}" (modelId: ${resolvedModelId}, propertyFileId: ${propertyFileId})`);
1310
+ // Check current write state
1311
+ const currentWriteState = writeProcess.getSnapshot();
1312
+ if (currentWriteState.value === 'success') {
1313
+ // Write already succeeded, clear pending write immediately
1314
+ this.clearPendingWrite(propertyFileId, 'success');
1315
+ }
1316
+ else {
1317
+ // Set up subscription to catch future state changes
1318
+ const writeSubscription = writeProcess.subscribe((writeSnapshot) => {
1319
+ if (writeSnapshot.value === 'success') {
1320
+ writeSubscription.unsubscribe();
1321
+ logger(`[writeProcess subscription] Write succeeded for property "${property.name}" (propertyFileId: ${propertyFileId})`);
1322
+ // Clear pending write on success
1323
+ this.clearPendingWrite(propertyFileId, 'success');
1324
+ }
1325
+ else if (writeSnapshot.value === 'error') {
1326
+ writeSubscription.unsubscribe();
1327
+ const errorContext = writeSnapshot.context;
1328
+ logger(`Write process failed for property "${property.name}" (propertyFileId: ${propertyFileId}): ${errorContext.error?.message || 'Unknown error'}`);
1329
+ logger(`Write process error details:`, errorContext.error);
1330
+ // Mark pending write as error
1331
+ this.clearPendingWrite(propertyFileId, 'error');
1332
+ }
1333
+ });
1334
+ }
1335
+ const propertyData = {
1336
+ modelId: resolvedModelId,
1337
+ name: property.name,
1338
+ dataType: property.dataType,
1339
+ refModelId: property.refModelId,
1340
+ refValueType: property.refValueType,
1341
+ storageType: property.storageType,
1342
+ localStorageDir: property.localStorageDir,
1343
+ filenameSuffix: property.filenameSuffix,
1344
+ };
1345
+ service.send({
1346
+ type: 'requestWrite',
1347
+ data: propertyData,
1348
+ });
1349
+ }
1350
+ else if (retries < maxRetries) {
1351
+ retries++;
1352
+ setTimeout(checkAndSend, 50); // Retry after 50ms
1353
+ }
1354
+ else {
1355
+ logger(`ERROR: writeProcess not available after ${maxRetries} retries for property "${property.name}" (propertyFileId: ${propertyFileId})`);
1356
+ console.error(`[ModelProperty.create] ERROR: writeProcess not available after ${maxRetries} retries for property "${property.name}" (propertyFileId: ${propertyFileId})`);
1357
+ // Mark as error if we couldn't even start the write process
1358
+ this.clearPendingWrite(propertyFileId, 'error');
1359
+ }
1360
+ };
1361
+ // Start checking after a short delay to allow state machine to initialize
1362
+ setTimeout(checkAndSend, 0);
1363
+ }
1364
+ if (!waitForReady)
1365
+ return proxiedInstance;
1366
+ return waitForEntityIdle(proxiedInstance, { timeout: readyTimeout }).then(() => proxiedInstance);
1367
+ }
1368
+ /**
1369
+ * Get ModelProperty instance by propertyFileId from static cache
1370
+ */
1371
+ static getById(propertyFileId) {
1372
+ if (!propertyFileId)
1373
+ return undefined;
1374
+ // Search through cache to find by propertyFileId
1375
+ // Cache key might be "modelName:propertyName" or "id:propertyId"
1376
+ for (const [cacheKey, { instance }] of this.instanceCache.entries()) {
1377
+ const context = instance._getSnapshotContext();
1378
+ // id is now the schemaFileId (string)
1379
+ if (context.id === propertyFileId) {
1380
+ return instance;
1381
+ }
1382
+ }
1383
+ return undefined;
1384
+ }
1385
+ /**
1386
+ * Create or get ModelProperty instance by propertyFileId
1387
+ * Queries the database to find the property if not cached
1388
+ */
1389
+ static async createById(propertyFileId) {
1390
+ if (!propertyFileId) {
1391
+ return undefined;
1392
+ }
1393
+ // First, check if we have an instance cached
1394
+ const cachedInstance = this.getById(propertyFileId);
1395
+ if (cachedInstance) {
1396
+ return cachedInstance;
1397
+ }
1398
+ // Query database to get property data from ID
1399
+ const db = BaseDb.getAppDb();
1400
+ if (!db) {
1401
+ return undefined;
1402
+ }
1403
+ await db
1404
+ .select()
1405
+ .from(properties)
1406
+ .limit(100);
1407
+ const propertyRecords = await db
1408
+ .select()
1409
+ .from(properties)
1410
+ .where(eq(properties.schemaFileId, propertyFileId))
1411
+ .limit(1);
1412
+ if (propertyRecords.length === 0) {
1413
+ return undefined;
1414
+ }
1415
+ const propertyRecord = propertyRecords[0];
1416
+ // Get model name
1417
+ const modelRecords = await db
1418
+ .select({ name: models.name })
1419
+ .from(models)
1420
+ .where(eq(models.id, propertyRecord.modelId))
1421
+ .limit(1);
1422
+ if (modelRecords.length === 0) {
1423
+ return undefined;
1424
+ }
1425
+ const modelName = modelRecords[0].name;
1426
+ // Build property data
1427
+ // id is now the schemaFileId (string), _dbId is the database integer ID
1428
+ const propertyData = {
1429
+ id: propertyFileId, // schemaFileId (string) - public ID
1430
+ _dbId: propertyRecord.id ?? undefined, // Database integer ID - internal only
1431
+ name: propertyRecord.name,
1432
+ dataType: propertyRecord.dataType,
1433
+ modelId: propertyRecord.modelId,
1434
+ modelName,
1435
+ refModelId: propertyRecord.refModelId || undefined,
1436
+ refValueType: propertyRecord.refValueType ? propertyRecord.refValueType : undefined,
1437
+ };
1438
+ // Load isEdited from database
1439
+ const isEditedFromDb = propertyRecord.isEdited ?? false;
1440
+ // Get ref model name if applicable
1441
+ if (propertyRecord.refModelId) {
1442
+ const refModelRecords = await db
1443
+ .select({ name: models.name })
1444
+ .from(models)
1445
+ .where(eq(models.id, propertyRecord.refModelId))
1446
+ .limit(1);
1447
+ if (refModelRecords.length > 0) {
1448
+ propertyData.refModelName = refModelRecords[0].name;
1449
+ propertyData.ref = refModelRecords[0].name;
1450
+ }
1451
+ }
1452
+ // Create ModelProperty instance (sync for createById so we can send updateContext)
1453
+ const instance = this.create(propertyData, { waitForReady: false });
1454
+ // Set isEdited from database after creation
1455
+ if (isEditedFromDb) {
1456
+ instance._service.send({
1457
+ type: 'updateContext',
1458
+ _isEdited: true,
1459
+ });
1460
+ }
1461
+ return instance;
1462
+ }
1463
+ /**
1464
+ * Find ModelProperty instance by propertyFileId
1465
+ * Waits for the property to be fully loaded (idle state) by default
1466
+ * @param options - Find options including propertyFileId and wait configuration
1467
+ * @returns ModelProperty instance if found, undefined otherwise
1468
+ */
1469
+ static async find({ propertyFileId, waitForReady = true, readyTimeout = 5000, }) {
1470
+ if (!propertyFileId) {
1471
+ return undefined;
1472
+ }
1473
+ return await findEntity({
1474
+ getById: (id) => ModelProperty.getById(id),
1475
+ createById: (id) => ModelProperty.createById(id),
1476
+ }, { id: propertyFileId }, {
1477
+ waitForReady,
1478
+ readyTimeout,
1479
+ });
1480
+ }
1481
+ /**
1482
+ * Get all ModelProperty instances for a model.
1483
+ * Loads property rows from DB for the given modelFileId, creates instances via createById, optionally waits for idle.
1484
+ */
1485
+ static async all(modelFileId, options) {
1486
+ const { waitForReady = false, readyTimeout = 5000 } = options ?? {};
1487
+ if (!modelFileId) {
1488
+ return [];
1489
+ }
1490
+ const rows = await getModelPropertiesData(modelFileId);
1491
+ const instances = [];
1492
+ for (const row of rows) {
1493
+ if (row.schemaFileId) {
1494
+ const instance = await this.createById(row.schemaFileId);
1495
+ if (instance) {
1496
+ instances.push(instance);
1497
+ }
1498
+ }
1499
+ }
1500
+ if (waitForReady && instances.length > 0) {
1501
+ await Promise.all(instances.map((p) => waitForEntityIdle(p, {
1502
+ timeout: readyTimeout,
1503
+ })));
1504
+ }
1505
+ return instances;
1506
+ }
1507
+ /**
1508
+ * Track a pending write for a property
1509
+ */
1510
+ static trackPendingWrite(propertyFileId, modelId) {
1511
+ this.pendingWrites.set(propertyFileId, {
1512
+ propertyFileId,
1513
+ modelId,
1514
+ status: 'pending',
1515
+ timestamp: Date.now(),
1516
+ });
1517
+ }
1518
+ /**
1519
+ * Clear or update pending write status
1520
+ */
1521
+ static clearPendingWrite(propertyFileId, status = 'success') {
1522
+ const write = this.pendingWrites.get(propertyFileId);
1523
+ if (write) {
1524
+ if (status === 'success') {
1525
+ // Remove successful writes from pendingWrites
1526
+ this.pendingWrites.delete(propertyFileId);
1527
+ logger(`Cleared pending write for property "${propertyFileId}" (status: success)`);
1528
+ }
1529
+ else {
1530
+ // Update status to error but keep in map (for debugging/retry purposes)
1531
+ write.status = 'error';
1532
+ this.pendingWrites.set(propertyFileId, write);
1533
+ logger(`Marked pending write as error for property "${propertyFileId}"`);
1534
+ }
1535
+ }
1536
+ }
1537
+ /**
1538
+ * Get all pending property IDs for a model
1539
+ */
1540
+ static getPendingPropertyIds(modelId) {
1541
+ return Array.from(this.pendingWrites.entries())
1542
+ .filter(([_, write]) => write.modelId === modelId && write.status !== 'error')
1543
+ .map(([propertyFileId]) => propertyFileId);
1544
+ }
1545
+ /**
1546
+ * Get modelId for a property that has a pending write (row may not be in DB yet).
1547
+ * Used to resolve modelName when validating a just-created property rename.
1548
+ */
1549
+ static getPendingModelId(propertyFileId) {
1550
+ return this.pendingWrites.get(propertyFileId)?.modelId;
1551
+ }
1552
+ getService() {
1553
+ return this._service;
1554
+ }
1555
+ _getSnapshot() {
1556
+ return this._service.getSnapshot();
1557
+ }
1558
+ _getSnapshotContext() {
1559
+ return this._getSnapshot().context;
1560
+ }
1561
+ get path() {
1562
+ const workingDir = BaseFileManager.getWorkingDir();
1563
+ if (!this.localStorageDir || !this.name || !this.filenameSuffix) {
1564
+ return undefined;
1565
+ }
1566
+ return `${workingDir}/${this.localStorageDir}/${this.name}${this.filenameSuffix || ''}`;
1567
+ }
1568
+ get status() {
1569
+ return this._getSnapshot().value;
1570
+ }
1571
+ get isEdited() {
1572
+ const context = this._getSnapshotContext();
1573
+ // First check in-memory state
1574
+ if (context._isEdited !== undefined) {
1575
+ return context._isEdited;
1576
+ }
1577
+ // Fall back to reading from database if we have _dbId
1578
+ if (context._dbId) {
1579
+ // Load from database asynchronously (fire-and-forget for now)
1580
+ // For synchronous getter, we'll need to cache it or make it async
1581
+ // For now, return false if not in context
1582
+ return false;
1583
+ }
1584
+ return false;
1585
+ }
1586
+ get validationErrors() {
1587
+ return this._getSnapshotContext()._validationErrors || [];
1588
+ }
1589
+ get isValid() {
1590
+ const errors = this.validationErrors;
1591
+ return errors.length === 0;
1592
+ }
1593
+ /**
1594
+ * Validate the property
1595
+ * @returns Validation result
1596
+ */
1597
+ async validate() {
1598
+ return new Promise((resolve) => {
1599
+ let resolved = false;
1600
+ const subscription = this._service.subscribe((snapshot) => {
1601
+ const state = snapshot.value;
1602
+ // Wait for validation to complete (idle state after validating)
1603
+ if (state === 'idle' && !resolved) {
1604
+ resolved = true;
1605
+ subscription.unsubscribe();
1606
+ const errors = snapshot.context._validationErrors || [];
1607
+ resolve({
1608
+ isValid: errors.length === 0,
1609
+ errors,
1610
+ });
1611
+ }
1612
+ });
1613
+ this._service.send({ type: 'validateProperty' });
1614
+ // Timeout fallback
1615
+ setTimeout(() => {
1616
+ if (!resolved) {
1617
+ resolved = true;
1618
+ subscription.unsubscribe();
1619
+ const errors = this._getSnapshotContext()._validationErrors || [];
1620
+ resolve({
1621
+ isValid: errors.length === 0,
1622
+ errors,
1623
+ });
1624
+ }
1625
+ }, 5000);
1626
+ });
1627
+ }
1628
+ save() {
1629
+ const snapshot = this._service.getSnapshot();
1630
+ const isAlreadySaving = typeof snapshot.value === 'object' && snapshot.value !== null && 'saveToSchema' in snapshot.value;
1631
+ if (isAlreadySaving) {
1632
+ return;
1633
+ }
1634
+ const context = snapshot.context;
1635
+ if (!context._isEdited)
1636
+ return; // No changes to persist
1637
+ // Validation will happen automatically in the machine before saving
1638
+ this._service.send({
1639
+ type: 'saveToSchema',
1640
+ });
1641
+ }
1642
+ /**
1643
+ * Reload property from database
1644
+ * This refreshes the actor context with the latest data from the database
1645
+ * Note: ModelProperty doesn't have a dedicated load actor, so this will
1646
+ * re-initialize from the current property data
1647
+ */
1648
+ async reload() {
1649
+ // ModelProperty doesn't have a separate load mechanism
1650
+ // It's loaded as part of the Model/Schema
1651
+ // This method is provided for API consistency
1652
+ // To actually reload, you'd need to reload the parent Model or Schema
1653
+ logger('ModelProperty.reload() called - ModelProperty is loaded as part of Model/Schema. Reload the parent Model or Schema instead.');
1654
+ // No-op for now, but could be enhanced to reload from DB if needed
1655
+ }
1656
+ unload() {
1657
+ // ModelProperty doesn't have liveQuery subscriptions or complex cache management
1658
+ // Just stop the service
1659
+ try {
1660
+ this._service.stop();
1661
+ }
1662
+ catch (error) {
1663
+ // Service might already be stopped
1664
+ }
1665
+ }
1666
+ /**
1667
+ * Destroy the model property: remove from caches, delete from database, update Schema context, stop service.
1668
+ */
1669
+ async destroy() {
1670
+ const context = this._getSnapshotContext();
1671
+ const cacheKey = context.modelName && context.name
1672
+ ? `${context.modelName}:${context.name}`
1673
+ : (context.id ?? '');
1674
+ if (!cacheKey)
1675
+ return;
1676
+ forceRemoveFromCaches(this, {
1677
+ getCacheKeys: () => [cacheKey],
1678
+ caches: [ModelProperty.instanceCache],
1679
+ });
1680
+ await runDestroyLifecycle(this, {
1681
+ getService: (instance) => instance._service,
1682
+ doDestroy: async () => {
1683
+ const db = BaseDb.getAppDb();
1684
+ const schemaName = context._schemaName;
1685
+ const modelName = context.modelName;
1686
+ const propertyName = context.name;
1687
+ if (!modelName || !propertyName)
1688
+ return;
1689
+ if (db && schemaName) {
1690
+ const propertyRecords = await db
1691
+ .select({ propertyId: properties.id })
1692
+ .from(properties)
1693
+ .innerJoin(models, eq(properties.modelId, models.id))
1694
+ .innerJoin(modelSchemas, eq(models.id, modelSchemas.modelId))
1695
+ .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))
1696
+ .where(and(eq(schemas.name, schemaName), eq(models.name, modelName), eq(properties.name, propertyName)))
1697
+ .limit(1);
1698
+ if (propertyRecords.length > 0 && propertyRecords[0].propertyId != null) {
1699
+ await db
1700
+ .delete(properties)
1701
+ .where(eq(properties.id, propertyRecords[0].propertyId));
1702
+ }
1703
+ }
1704
+ if (schemaName) {
1705
+ const schema = Schema.create(schemaName, { waitForReady: false });
1706
+ const snapshot = schema.getService().getSnapshot();
1707
+ const schemaContext = snapshot.context;
1708
+ if (schemaContext.models?.[modelName]?.properties?.[propertyName]) {
1709
+ const updatedModels = { ...schemaContext.models };
1710
+ const updatedProperties = { ...updatedModels[modelName].properties };
1711
+ delete updatedProperties[propertyName];
1712
+ updatedModels[modelName] = { ...updatedModels[modelName], properties: updatedProperties };
1713
+ schema.getService().send({ type: 'updateContext', models: updatedModels });
1714
+ schema.getService().send({ type: 'markAsDraft', propertyKey: `property:${modelName}:${propertyName}` });
1715
+ }
1716
+ }
1717
+ },
1718
+ });
1719
+ }
1720
+ }
1721
+ ModelProperty.instanceCache = new Map();
1722
+ // Pending writes tracking
1723
+ ModelProperty.pendingWrites = new Map();
1724
+
1725
+ var ModelProperty$1 = /*#__PURE__*/Object.freeze({
1726
+ __proto__: null,
1727
+ ModelProperty: ModelProperty
1728
+ });
1729
+
1730
+ export { ModelProperty };
1731
+ //# sourceMappingURL=ModelProperty-B9Z2DRxI.js.map