@seedprotocol/sdk 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/bin.js +11 -109
  2. package/dist/bin.js.map +1 -1
  3. package/dist/main.js +15 -23
  4. package/dist/main.js.map +1 -1
  5. package/dist/src/Item/BaseItem.js +309 -0
  6. package/dist/src/Item/BaseItem.js.map +1 -0
  7. package/dist/src/Item/index.js +4 -0
  8. package/dist/src/Item/index.js.map +1 -0
  9. package/dist/src/Item/queries.js +94 -0
  10. package/dist/src/Item/queries.js.map +1 -0
  11. package/dist/src/Item/service/actors/fetchDataFromEas.js +74 -0
  12. package/dist/src/Item/service/actors/fetchDataFromEas.js.map +1 -0
  13. package/dist/src/Item/service/actors/hydrateExistingItem.js +119 -0
  14. package/dist/src/Item/service/actors/hydrateExistingItem.js.map +1 -0
  15. package/dist/src/Item/service/actors/hydrateNewItem.js +28 -0
  16. package/dist/src/Item/service/actors/hydrateNewItem.js.map +1 -0
  17. package/dist/src/Item/service/actors/initialize.js +39 -0
  18. package/dist/src/Item/service/actors/initialize.js.map +1 -0
  19. package/dist/src/Item/service/actors/reload.js +26 -0
  20. package/dist/src/Item/service/actors/reload.js.map +1 -0
  21. package/dist/src/Item/service/actors/waitForDb.js +22 -0
  22. package/dist/src/Item/service/actors/waitForDb.js.map +1 -0
  23. package/dist/src/Item/service/itemMachineSingle.js +154 -0
  24. package/dist/src/Item/service/itemMachineSingle.js.map +1 -0
  25. package/dist/src/ItemProperty/BaseItemProperty.js +306 -0
  26. package/dist/src/ItemProperty/BaseItemProperty.js.map +1 -0
  27. package/dist/src/ItemProperty/service/actors/hydrateFromDb.js +196 -0
  28. package/dist/src/ItemProperty/service/actors/hydrateFromDb.js.map +1 -0
  29. package/dist/src/ItemProperty/service/actors/initialize.js +60 -0
  30. package/dist/src/ItemProperty/service/actors/initialize.js.map +1 -0
  31. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.js +317 -0
  32. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.js.map +1 -0
  33. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js +62 -0
  34. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js.map +1 -0
  35. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.js +100 -0
  36. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.js.map +1 -0
  37. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.js +178 -0
  38. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.js.map +1 -0
  39. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js +117 -0
  40. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js.map +1 -0
  41. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.js +81 -0
  42. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.js.map +1 -0
  43. package/dist/src/ItemProperty/service/actors/waitForDb.js +22 -0
  44. package/dist/src/ItemProperty/service/actors/waitForDb.js.map +1 -0
  45. package/dist/src/ItemProperty/service/propertyMachine.js +198 -0
  46. package/dist/src/ItemProperty/service/propertyMachine.js.map +1 -0
  47. package/dist/src/browser/Item/Item.js +11 -0
  48. package/dist/src/browser/Item/Item.js.map +1 -0
  49. package/dist/src/browser/Item/index.js +2 -0
  50. package/dist/src/browser/Item/index.js.map +1 -0
  51. package/dist/src/browser/ItemProperty/ItemProperty.js +11 -0
  52. package/dist/src/browser/ItemProperty/ItemProperty.js.map +1 -0
  53. package/dist/src/browser/db/Db.d.ts +10 -5
  54. package/dist/src/browser/db/Db.d.ts.map +1 -1
  55. package/dist/src/browser/db/Db.js +218 -0
  56. package/dist/src/browser/db/Db.js.map +1 -0
  57. package/dist/src/browser/db/sqlWasmClient.d.ts +0 -12
  58. package/dist/src/browser/db/sqlWasmClient.d.ts.map +1 -1
  59. package/dist/{ArweaveClient-2RMCxfNZ.js → src/browser/helpers/ArweaveClient.js} +3 -3
  60. package/dist/{ArweaveClient-COlwyYTF.js.map → src/browser/helpers/ArweaveClient.js.map} +1 -1
  61. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
  62. package/dist/src/browser/helpers/FileManager.js +308 -0
  63. package/dist/src/browser/helpers/FileManager.js.map +1 -0
  64. package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -1
  65. package/dist/{QueryClient-W4slRa7O.js → src/browser/helpers/QueryClient.js} +2 -5
  66. package/dist/src/browser/helpers/QueryClient.js.map +1 -0
  67. package/dist/src/browser/index.d.ts +2 -1
  68. package/dist/src/browser/index.d.ts.map +1 -1
  69. package/dist/src/browser/react/db.js +6 -0
  70. package/dist/src/browser/react/db.js.map +1 -0
  71. package/dist/src/browser/react/item.js +260 -0
  72. package/dist/src/browser/react/item.js.map +1 -0
  73. package/dist/src/browser/react/property.js +107 -0
  74. package/dist/src/browser/react/property.js.map +1 -0
  75. package/dist/src/browser/react/services.d.ts.map +1 -1
  76. package/dist/src/browser/react/services.js +299 -0
  77. package/dist/src/browser/react/services.js.map +1 -0
  78. package/dist/src/browser/react/trash.js +25 -0
  79. package/dist/src/browser/react/trash.js.map +1 -0
  80. package/dist/src/browser/workers/FileDownloader.js +49 -0
  81. package/dist/src/browser/workers/FileDownloader.js.map +1 -0
  82. package/dist/src/browser/workers/ImageResizer.js +62 -0
  83. package/dist/src/browser/workers/ImageResizer.js.map +1 -0
  84. package/dist/src/browser/workers/dbWorker.d.ts +1 -0
  85. package/dist/src/browser/workers/dbWorker.d.ts.map +1 -0
  86. package/dist/src/browser/workers/filesDownload.js +241 -0
  87. package/dist/src/browser/workers/filesDownload.js.map +1 -0
  88. package/dist/src/browser/workers/imageResize.js +379 -0
  89. package/dist/src/browser/workers/imageResize.js.map +1 -0
  90. package/dist/src/client/ClientManager.d.ts +18 -2
  91. package/dist/src/client/ClientManager.d.ts.map +1 -1
  92. package/dist/src/client/ClientManager.js +59 -0
  93. package/dist/src/client/ClientManager.js.map +1 -0
  94. package/dist/src/client/actions/setAddresses.js +19 -0
  95. package/dist/src/client/actions/setAddresses.js.map +1 -0
  96. package/dist/src/client/actors/initialize.d.ts.map +1 -1
  97. package/dist/src/client/actors/initialize.js +84 -0
  98. package/dist/src/client/actors/initialize.js.map +1 -0
  99. package/dist/src/client/actors/saveAppState.js +44 -0
  100. package/dist/src/client/actors/saveAppState.js.map +1 -0
  101. package/dist/src/client/clientManagerMachine.js +61 -0
  102. package/dist/src/client/clientManagerMachine.js.map +1 -0
  103. package/dist/src/db/Db/BaseDb.d.ts +1 -2
  104. package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
  105. package/dist/src/db/Db/BaseDb.js +22 -0
  106. package/dist/src/db/Db/BaseDb.js.map +1 -0
  107. package/dist/{seed.schema.config-DmTl3a9U.js → src/db/configs/seed.schema.config.js} +3 -24
  108. package/dist/src/db/configs/seed.schema.config.js.map +1 -0
  109. package/dist/src/db/read/getExistingItem.js +29 -0
  110. package/dist/src/db/read/getExistingItem.js.map +1 -0
  111. package/dist/src/db/read/getItem.js +26 -0
  112. package/dist/src/db/read/getItem.js.map +1 -0
  113. package/dist/src/db/read/getItemData.js +84 -0
  114. package/dist/src/db/read/getItemData.js.map +1 -0
  115. package/dist/src/db/read/getItemProperties.js +49 -0
  116. package/dist/src/db/read/getItemProperties.js.map +1 -0
  117. package/dist/src/db/read/getItemProperty.js +30 -0
  118. package/dist/src/db/read/getItemProperty.js.map +1 -0
  119. package/dist/src/db/read/getItems.js +49 -0
  120. package/dist/src/db/read/getItems.js.map +1 -0
  121. package/dist/src/db/read/getMetadata.js +32 -0
  122. package/dist/src/db/read/getMetadata.js.map +1 -0
  123. package/dist/src/db/read/getModelSchemas.js +69 -0
  124. package/dist/src/db/read/getModelSchemas.js.map +1 -0
  125. package/dist/src/db/read/getPropertyData.js +38 -0
  126. package/dist/src/db/read/getPropertyData.js.map +1 -0
  127. package/dist/src/db/read/getPublishPayload.js +213 -0
  128. package/dist/src/db/read/getPublishPayload.js.map +1 -0
  129. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  130. package/dist/src/db/read/getPublishUploads.js +134 -0
  131. package/dist/src/db/read/getPublishUploads.js.map +1 -0
  132. package/dist/src/db/read/getRelationValueData.js +30 -0
  133. package/dist/src/db/read/getRelationValueData.js.map +1 -0
  134. package/dist/src/db/read/getSchemaUidForModel.js +28 -0
  135. package/dist/src/db/read/getSchemaUidForModel.js.map +1 -0
  136. package/dist/src/db/read/getSeedData.js +28 -0
  137. package/dist/src/db/read/getSeedData.js.map +1 -0
  138. package/dist/src/db/read/getStorageTransactionIdForSeedUid.js +30 -0
  139. package/dist/src/db/read/getStorageTransactionIdForSeedUid.js.map +1 -0
  140. package/dist/src/db/read/getVersionData.js +33 -0
  141. package/dist/src/db/read/getVersionData.js.map +1 -0
  142. package/dist/src/db/read/subqueries/metadataLatest.js +35 -0
  143. package/dist/src/db/read/subqueries/metadataLatest.js.map +1 -0
  144. package/dist/src/db/read/subqueries/versionData.js +27 -0
  145. package/dist/src/db/read/subqueries/versionData.js.map +1 -0
  146. package/dist/src/db/write/createMetadata.js +63 -0
  147. package/dist/src/db/write/createMetadata.js.map +1 -0
  148. package/dist/src/db/write/createNewItem.js +38 -0
  149. package/dist/src/db/write/createNewItem.js.map +1 -0
  150. package/dist/src/db/write/createSeed.js +29 -0
  151. package/dist/src/db/write/createSeed.js.map +1 -0
  152. package/dist/src/db/write/createSeeds.js +25 -0
  153. package/dist/src/db/write/createSeeds.js.map +1 -0
  154. package/dist/src/db/write/createVersion.js +25 -0
  155. package/dist/src/db/write/createVersion.js.map +1 -0
  156. package/dist/src/db/write/deleteItem.js +21 -0
  157. package/dist/src/db/write/deleteItem.js.map +1 -0
  158. package/dist/src/db/write/saveAppState.js +26 -0
  159. package/dist/src/db/write/saveAppState.js.map +1 -0
  160. package/dist/src/db/write/saveMetadata.js +22 -0
  161. package/dist/src/db/write/saveMetadata.js.map +1 -0
  162. package/dist/src/db/write/updateItemPropertyValue.js +161 -0
  163. package/dist/src/db/write/updateItemPropertyValue.js.map +1 -0
  164. package/dist/src/db/write/updateMetadata.js +25 -0
  165. package/dist/src/db/write/updateMetadata.js.map +1 -0
  166. package/dist/src/eventBus.js +6 -0
  167. package/dist/src/eventBus.js.map +1 -0
  168. package/dist/src/events/files/download.js +161 -0
  169. package/dist/src/events/files/download.js.map +1 -0
  170. package/dist/src/events/files/index.d.ts.map +1 -1
  171. package/dist/src/events/files/index.js +61 -0
  172. package/dist/src/events/files/index.js.map +1 -0
  173. package/dist/src/events/index.js +28 -0
  174. package/dist/src/events/index.js.map +1 -0
  175. package/dist/src/events/item/index.js +28 -0
  176. package/dist/src/events/item/index.js.map +1 -0
  177. package/dist/src/events/item/publish.js +19 -0
  178. package/dist/src/events/item/publish.js.map +1 -0
  179. package/dist/src/events/item/syncDbWithEas.js +428 -0
  180. package/dist/src/events/item/syncDbWithEas.js.map +1 -0
  181. package/dist/src/events/services/allItems.js +20 -0
  182. package/dist/src/events/services/allItems.js.map +1 -0
  183. package/dist/src/events/services/index.js +9 -0
  184. package/dist/src/events/services/index.js.map +1 -0
  185. package/dist/src/graphql/gql/gql.js +38 -0
  186. package/dist/src/graphql/gql/gql.js.map +1 -0
  187. package/dist/src/graphql/gql/graphql.js +106 -0
  188. package/dist/src/graphql/gql/graphql.js.map +1 -0
  189. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.js +11 -0
  190. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.js.map +1 -0
  191. package/dist/src/helpers/ArweaveClient/index.js +45 -0
  192. package/dist/src/helpers/ArweaveClient/index.js.map +1 -0
  193. package/dist/src/helpers/ArweaveClient/queries.js +16 -0
  194. package/dist/src/helpers/ArweaveClient/queries.js.map +1 -0
  195. package/dist/src/helpers/EasClient/BaseEasClient.js +14 -0
  196. package/dist/src/helpers/EasClient/BaseEasClient.js.map +1 -0
  197. package/dist/src/helpers/FileManager/BaseFileManager.js +55 -0
  198. package/dist/src/helpers/FileManager/BaseFileManager.js.map +1 -0
  199. package/dist/src/helpers/QueryClient/BaseQueryClient.js +11 -0
  200. package/dist/src/helpers/QueryClient/BaseQueryClient.js.map +1 -0
  201. package/dist/src/helpers/constants.js +73 -0
  202. package/dist/src/helpers/constants.js.map +1 -0
  203. package/dist/src/helpers/db.js +43 -0
  204. package/dist/src/helpers/db.js.map +1 -0
  205. package/dist/src/helpers/environment.js +24 -0
  206. package/dist/src/helpers/environment.js.map +1 -0
  207. package/dist/src/helpers/getSchemaForItemProperty.js +51 -0
  208. package/dist/src/helpers/getSchemaForItemProperty.js.map +1 -0
  209. package/dist/src/helpers/getSegmentedItemProperties.js +50 -0
  210. package/dist/src/helpers/getSegmentedItemProperties.js.map +1 -0
  211. package/dist/src/helpers/index.js +101 -0
  212. package/dist/src/helpers/index.js.map +1 -0
  213. package/dist/src/helpers/updateMachineContext.js +20 -0
  214. package/dist/src/helpers/updateMachineContext.js.map +1 -0
  215. package/dist/src/interfaces/IDb.d.ts.map +1 -1
  216. package/dist/src/node/codegen/drizzle.js +58 -0
  217. package/dist/src/node/codegen/drizzle.js.map +1 -0
  218. package/dist/src/node/constants.js +29 -0
  219. package/dist/src/node/constants.js.map +1 -0
  220. package/dist/src/node/db/Db.d.ts +5 -6
  221. package/dist/src/node/db/Db.d.ts.map +1 -1
  222. package/dist/{ArweaveClient-COlwyYTF.js → src/node/helpers/ArweaveClient.js} +3 -3
  223. package/dist/{ArweaveClient-2RMCxfNZ.js.map → src/node/helpers/ArweaveClient.js.map} +1 -1
  224. package/dist/{EasClient-CFnb5g-r.js → src/node/helpers/EasClient.js} +3 -3
  225. package/dist/{EasClient-CFnb5g-r.js.map → src/node/helpers/EasClient.js.map} +1 -1
  226. package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
  227. package/dist/{QueryClient-ZUsZ1Qxq.js → src/node/helpers/QueryClient.js} +2 -4
  228. package/dist/{QueryClient-ZUsZ1Qxq.js.map → src/node/helpers/QueryClient.js.map} +1 -1
  229. package/dist/src/node/helpers/index.d.ts.map +1 -1
  230. package/dist/src/node/helpers/index.js +28 -0
  231. package/dist/src/node/helpers/index.js.map +1 -0
  232. package/dist/src/node/seed.d.ts +0 -6
  233. package/dist/src/node/seed.d.ts.map +1 -1
  234. package/dist/src/node/webpack/index.d.ts.map +1 -1
  235. package/dist/src/node/webpack/index.js +89 -0
  236. package/dist/src/node/webpack/index.js.map +1 -0
  237. package/dist/src/schema/file/queries.js +48 -0
  238. package/dist/src/schema/file/queries.js.map +1 -0
  239. package/dist/src/schema/model/index.js +44 -0
  240. package/dist/src/schema/model/index.js.map +1 -0
  241. package/dist/src/schema/property/index.js +82 -0
  242. package/dist/src/schema/property/index.js.map +1 -0
  243. package/dist/src/seedSchema/AppStateSchema.js +11 -0
  244. package/dist/src/seedSchema/AppStateSchema.js.map +1 -0
  245. package/dist/src/seedSchema/MetadataSchema.js +29 -0
  246. package/dist/src/seedSchema/MetadataSchema.js.map +1 -0
  247. package/dist/src/seedSchema/ModelSchema.js +33 -0
  248. package/dist/src/seedSchema/ModelSchema.js.map +1 -0
  249. package/dist/src/seedSchema/ModelUidSchema.js +18 -0
  250. package/dist/src/seedSchema/ModelUidSchema.js.map +1 -0
  251. package/dist/src/seedSchema/SeedSchema.js +16 -0
  252. package/dist/src/seedSchema/SeedSchema.js.map +1 -0
  253. package/dist/src/seedSchema/VersionSchema.js +17 -0
  254. package/dist/src/seedSchema/VersionSchema.js.map +1 -0
  255. package/dist/src/services/allItems/actors/fetchDbData.js +13 -0
  256. package/dist/src/services/allItems/actors/fetchDbData.js.map +1 -0
  257. package/dist/src/services/allItems/actors/fetchRelatedItems.js +137 -0
  258. package/dist/src/services/allItems/actors/fetchRelatedItems.js.map +1 -0
  259. package/dist/src/services/allItems/actors/fetchSeeds.js +31 -0
  260. package/dist/src/services/allItems/actors/fetchSeeds.js.map +1 -0
  261. package/dist/src/services/allItems/actors/fetchVersions.js +35 -0
  262. package/dist/src/services/allItems/actors/fetchVersions.js.map +1 -0
  263. package/dist/src/services/allItems/actors/initialize.js +144 -0
  264. package/dist/src/services/allItems/actors/initialize.js.map +1 -0
  265. package/dist/src/services/allItems/actors/processItems.js +55 -0
  266. package/dist/src/services/allItems/actors/processItems.js.map +1 -0
  267. package/dist/src/services/allItems/itemMachineAll.js +153 -0
  268. package/dist/src/services/allItems/itemMachineAll.js.map +1 -0
  269. package/dist/src/services/db/actors/checkStatus.d.ts.map +1 -1
  270. package/dist/src/services/db/actors/checkStatus.js +41 -0
  271. package/dist/src/services/db/actors/checkStatus.js.map +1 -0
  272. package/dist/src/services/db/actors/connectToDb.d.ts.map +1 -1
  273. package/dist/src/services/db/actors/connectToDb.js +31 -0
  274. package/dist/src/services/db/actors/connectToDb.js.map +1 -0
  275. package/dist/src/services/db/actors/migrate.js +40 -0
  276. package/dist/src/services/db/actors/migrate.js.map +1 -0
  277. package/dist/src/services/db/actors/validate.d.ts.map +1 -1
  278. package/dist/src/services/db/actors/validate.js +40 -0
  279. package/dist/src/services/db/actors/validate.js.map +1 -0
  280. package/dist/src/services/db/actors/waitForFiles.js +32 -0
  281. package/dist/src/services/db/actors/waitForFiles.js.map +1 -0
  282. package/dist/src/services/db/dbMachine.d.ts.map +1 -1
  283. package/dist/src/services/db/dbMachine.js +156 -0
  284. package/dist/src/services/db/dbMachine.js.map +1 -0
  285. package/dist/src/services/events.js +15 -0
  286. package/dist/src/services/events.js.map +1 -0
  287. package/dist/src/services/global/actors/addModelsToDb.js +115 -0
  288. package/dist/src/services/global/actors/addModelsToDb.js.map +1 -0
  289. package/dist/src/services/global/actors/getSchemaForModel.js +26 -0
  290. package/dist/src/services/global/actors/getSchemaForModel.js.map +1 -0
  291. package/dist/src/services/global/actors/initialize.d.ts.map +1 -1
  292. package/dist/src/services/global/actors/initialize.js +86 -0
  293. package/dist/src/services/global/actors/initialize.js.map +1 -0
  294. package/dist/src/services/global/actors/savePublishService.js +22 -0
  295. package/dist/src/services/global/actors/savePublishService.js.map +1 -0
  296. package/dist/src/services/global/globalMachine.d.ts +90 -90
  297. package/dist/src/services/global/globalMachine.d.ts.map +1 -1
  298. package/dist/src/services/global/globalMachine.js +246 -0
  299. package/dist/src/services/global/globalMachine.js.map +1 -0
  300. package/dist/src/services/internal/actors/configureFs.js +70 -0
  301. package/dist/src/services/internal/actors/configureFs.js.map +1 -0
  302. package/dist/src/services/internal/actors/loadAppDb.d.ts.map +1 -1
  303. package/dist/src/services/internal/actors/loadAppDb.js +22 -0
  304. package/dist/src/services/internal/actors/loadAppDb.js.map +1 -0
  305. package/dist/src/services/internal/actors/prepareDb.d.ts.map +1 -1
  306. package/dist/src/services/internal/actors/saveConfig.js +88 -0
  307. package/dist/src/services/internal/actors/saveConfig.js.map +1 -0
  308. package/dist/src/services/internal/actors/validateInput.js +34 -0
  309. package/dist/src/services/internal/actors/validateInput.js.map +1 -0
  310. package/dist/src/services/internal/actors/waitForFiles.js +33 -0
  311. package/dist/src/services/internal/actors/waitForFiles.js.map +1 -0
  312. package/dist/src/services/internal/constants.js +85 -0
  313. package/dist/src/services/internal/constants.js.map +1 -0
  314. package/dist/src/services/internal/helpers.js +171 -0
  315. package/dist/src/services/internal/helpers.js.map +1 -0
  316. package/dist/src/services/internal/internalMachine.d.ts +0 -10
  317. package/dist/src/services/internal/internalMachine.d.ts.map +1 -1
  318. package/dist/src/services/internal/internalMachine.js +188 -0
  319. package/dist/src/services/internal/internalMachine.js.map +1 -0
  320. package/dist/src/services/publish/actors/createPublishAttempt.js +14 -0
  321. package/dist/src/services/publish/actors/createPublishAttempt.js.map +1 -0
  322. package/dist/src/services/publish/actors/preparePublishRequestData.js +70 -0
  323. package/dist/src/services/publish/actors/preparePublishRequestData.js.map +1 -0
  324. package/dist/src/services/publish/actors/upload.js +55 -0
  325. package/dist/src/services/publish/actors/upload.js.map +1 -0
  326. package/dist/src/services/publish/actors/validateItemData.js +18 -0
  327. package/dist/src/services/publish/actors/validateItemData.js.map +1 -0
  328. package/dist/src/services/publish/publishMachine.js +71 -0
  329. package/dist/src/services/publish/publishMachine.js.map +1 -0
  330. package/dist/src/stores/eas.js +40 -0
  331. package/dist/src/stores/eas.js.map +1 -0
  332. package/dist/src/stores/modelClass.js +16 -0
  333. package/dist/src/stores/modelClass.js.map +1 -0
  334. package/dist/src/types/index.d.ts.map +1 -1
  335. package/package.json +7 -6
  336. package/dist/Db-CRWMiKY9.js +0 -384
  337. package/dist/Db-CRWMiKY9.js.map +0 -1
  338. package/dist/Db-G5dIgZv-.js +0 -81
  339. package/dist/Db-G5dIgZv-.js.map +0 -1
  340. package/dist/EasClient-CO5puCWa.js +0 -10
  341. package/dist/EasClient-CO5puCWa.js.map +0 -1
  342. package/dist/FileManager-BOixZyex.js +0 -50
  343. package/dist/FileManager-BOixZyex.js.map +0 -1
  344. package/dist/FileManager-gKGTTa4s.js +0 -1045
  345. package/dist/FileManager-gKGTTa4s.js.map +0 -1
  346. package/dist/Item-BD2_tuda.js +0 -34
  347. package/dist/Item-BD2_tuda.js.map +0 -1
  348. package/dist/ItemProperty-CjcrzEmg.js +0 -33
  349. package/dist/ItemProperty-CjcrzEmg.js.map +0 -1
  350. package/dist/QueryClient-W4slRa7O.js.map +0 -1
  351. package/dist/constants-C-6Pg8FW.js +0 -235
  352. package/dist/constants-C-6Pg8FW.js.map +0 -1
  353. package/dist/index-BxAVepOO.js +0 -25
  354. package/dist/index-BxAVepOO.js.map +0 -1
  355. package/dist/index-D-O-gmXo.js +0 -7930
  356. package/dist/index-D-O-gmXo.js.map +0 -1
  357. package/dist/seed.schema.config-DmTl3a9U.js.map +0 -1
  358. package/dist/src/browser/db/index.d.ts +0 -2
  359. package/dist/src/browser/db/index.d.ts.map +0 -1
  360. package/dist/src/db/Db/index.d.ts +0 -5
  361. package/dist/src/db/Db/index.d.ts.map +0 -1
  362. package/dist/src/helpers/EasClient/index.d.ts +0 -5
  363. package/dist/src/helpers/EasClient/index.d.ts.map +0 -1
  364. package/dist/src/helpers/FileManager/index.d.ts +0 -5
  365. package/dist/src/helpers/FileManager/index.d.ts.map +0 -1
  366. package/dist/src/helpers/QueryClient/index.d.ts +0 -5
  367. package/dist/src/helpers/QueryClient/index.d.ts.map +0 -1
  368. package/dist/src/node/index.d.ts +0 -2
  369. package/dist/src/node/index.d.ts.map +0 -1
  370. package/dist/src/services/global/index.d.ts +0 -2
  371. package/dist/src/services/global/index.d.ts.map +0 -1
@@ -0,0 +1,178 @@
1
+ import { fromCallback } from 'xstate';
2
+ import { createSeed } from '../../../../db/write/createSeed.js';
3
+ import { getMimeType, getDataTypeFromString } from '../../../../helpers/index.js';
4
+ import { createVersion } from '../../../../db/write/createVersion.js';
5
+ import { createMetadata } from '../../../../db/write/createMetadata.js';
6
+ import { updateItemPropertyValue } from '../../../../db/write/updateItemPropertyValue.js';
7
+ import { getSchemaUidForModel } from '../../../../db/read/getSchemaUidForModel.js';
8
+ import { BaseFileManager } from '../../../../helpers/FileManager/BaseFileManager.js';
9
+ import { eventEmitter } from '../../../../eventBus.js';
10
+ import { ImageSize } from '../../../../helpers/constants.js';
11
+
12
+ const readFileAsArrayBuffer = async (file) => {
13
+ return new Promise((resolve) => {
14
+ const reader = new FileReader();
15
+ reader.onload = async (e) => {
16
+ const arrayBuffer = e.target.result;
17
+ resolve(arrayBuffer);
18
+ };
19
+ reader.readAsArrayBuffer(file);
20
+ });
21
+ };
22
+ const fetchImage = async (url) => {
23
+ const response = await fetch(url);
24
+ const mimeType = response.headers.get('Content-Type');
25
+ const imageBuffer = await response.arrayBuffer();
26
+ const bytes = new Uint8Array(imageBuffer);
27
+ const binaryString = bytes.reduce((acc, byte) => acc + String.fromCharCode(byte), '');
28
+ let base64 = btoa(binaryString);
29
+ if (mimeType) {
30
+ base64 = `data:${mimeType};base64,${base64}`;
31
+ }
32
+ return base64;
33
+ };
34
+ let imageSchemaUid;
35
+ const saveImageSrc = fromCallback(({ sendBack, input: { context, event } }) => {
36
+ const { localId, propertyName: propertyNameRaw, propertyValue: existingValue, propertyRecordSchema, modelName, seedLocalId, seedUid, versionLocalId, versionUid, } = context;
37
+ let { schemaUid } = context;
38
+ let newValue;
39
+ if (event) {
40
+ newValue = event.newValue;
41
+ }
42
+ if (existingValue === newValue) {
43
+ sendBack({ type: 'saveValueToDbSuccess' });
44
+ return;
45
+ }
46
+ const _saveImageSrc = async () => {
47
+ let propertyName = propertyNameRaw;
48
+ if (!propertyNameRaw.endsWith('Id')) {
49
+ propertyName = `${propertyName}Id`;
50
+ }
51
+ let newValueType;
52
+ let fileData;
53
+ let mimeType;
54
+ let fileName;
55
+ if (!imageSchemaUid) {
56
+ imageSchemaUid = await getSchemaUidForModel('Image');
57
+ }
58
+ if (typeof newValue === 'string') {
59
+ newValueType = getDataTypeFromString(newValue);
60
+ }
61
+ if (newValueType === 'imageBase64') {
62
+ mimeType = getMimeType(newValue);
63
+ const base64Data = newValue.split(',')[1]; // Strip the Base64 prefix
64
+ const binaryString = atob(base64Data);
65
+ const binaryLength = binaryString.length;
66
+ const binaryArray = new Uint8Array(binaryLength);
67
+ for (let i = 0; i < binaryLength; i++) {
68
+ binaryArray[i] = binaryString.charCodeAt(i);
69
+ }
70
+ fileData = binaryArray.buffer;
71
+ }
72
+ if (newValueType === 'url') {
73
+ fileData = await fetchImage(newValue);
74
+ }
75
+ if (newValue instanceof File) {
76
+ fileName = newValue.name;
77
+ mimeType = newValue.type;
78
+ fileData = await readFileAsArrayBuffer(newValue);
79
+ }
80
+ if (!fileData) {
81
+ throw new Error('No file data found');
82
+ }
83
+ const newImageSeedLocalId = await createSeed({
84
+ type: 'image',
85
+ });
86
+ if (!fileName) {
87
+ fileName = newImageSeedLocalId;
88
+ if (mimeType) {
89
+ fileName += `.${mimeType.split('/')[1]}`;
90
+ }
91
+ }
92
+ const filePath = `/files/images/${fileName}`;
93
+ await createVersion({
94
+ seedLocalId: newImageSeedLocalId,
95
+ seedType: 'image',
96
+ });
97
+ if (fileData instanceof ArrayBuffer) {
98
+ try {
99
+ await BaseFileManager.saveFile(filePath, new Uint8Array(fileData));
100
+ }
101
+ catch (e) {
102
+ const fs = await BaseFileManager.getFs();
103
+ fs.writeFileSync(filePath, new Uint8Array(fileData));
104
+ eventEmitter.emit('file-saved', filePath);
105
+ }
106
+ }
107
+ if (typeof fileData === 'string') {
108
+ try {
109
+ await BaseFileManager.saveFile(filePath, fileData);
110
+ }
111
+ catch (e) {
112
+ const fs = await BaseFileManager.getFs();
113
+ fs.writeFileSync(filePath, fileData);
114
+ eventEmitter.emit('file-saved', filePath);
115
+ }
116
+ }
117
+ await BaseFileManager.resizeImage({ filePath, width: ImageSize.EXTRA_SMALL, height: ImageSize.EXTRA_SMALL });
118
+ await BaseFileManager.resizeImage({ filePath, width: ImageSize.SMALL, height: ImageSize.SMALL });
119
+ await BaseFileManager.resizeImage({ filePath, width: ImageSize.MEDIUM, height: ImageSize.MEDIUM });
120
+ await BaseFileManager.resizeImage({ filePath, width: ImageSize.LARGE, height: ImageSize.LARGE });
121
+ await BaseFileManager.resizeImage({ filePath, width: ImageSize.EXTRA_LARGE, height: ImageSize.EXTRA_LARGE });
122
+ const refResolvedDisplayValue = await BaseFileManager.getContentUrlFromPath(filePath);
123
+ let newLocalId;
124
+ if (!localId) {
125
+ const result = await createMetadata({
126
+ propertyName,
127
+ propertyValue: newImageSeedLocalId,
128
+ seedLocalId,
129
+ seedUid,
130
+ versionLocalId,
131
+ versionUid,
132
+ modelName,
133
+ schemaUid,
134
+ refSeedType: 'image',
135
+ refModelUid: imageSchemaUid,
136
+ refSchemaUid: imageSchemaUid,
137
+ refResolvedDisplayValue,
138
+ refResolvedValue: fileName,
139
+ localStorageDir: '/images',
140
+ easDataType: 'bytes32',
141
+ }, propertyRecordSchema);
142
+ newLocalId = result[0].localId;
143
+ }
144
+ if (localId) {
145
+ await updateItemPropertyValue({
146
+ localId: localId,
147
+ propertyName: propertyNameRaw,
148
+ newValue: newImageSeedLocalId,
149
+ seedLocalId,
150
+ versionLocalId,
151
+ modelName,
152
+ schemaUid,
153
+ refSeedType: 'image',
154
+ refResolvedDisplayValue,
155
+ refResolvedValue: fileName,
156
+ localStorageDir: '/images'});
157
+ }
158
+ sendBack({
159
+ type: 'updateContext',
160
+ localId: newLocalId || localId,
161
+ propertyValue: newImageSeedLocalId,
162
+ refSeedType: 'image',
163
+ refSchemaUid: imageSchemaUid,
164
+ renderValue: refResolvedDisplayValue,
165
+ refResolvedDisplayValue,
166
+ refResolvedValue: fileName,
167
+ localStorageDir: '/images',
168
+ easDataType: 'bytes32',
169
+ schemaUid,
170
+ });
171
+ };
172
+ _saveImageSrc().then(() => {
173
+ sendBack({ type: 'saveImageSrcSuccess' });
174
+ });
175
+ });
176
+
177
+ export { saveImageSrc };
178
+ //# sourceMappingURL=saveImageSrc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveImageSrc.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { createSeed } from '@/db/write/createSeed'\nimport { getDataTypeFromString, getMimeType } from '@/helpers'\nimport { createVersion } from '@/db/write/createVersion'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { updateItemPropertyValue } from '@/db/write/updateItemPropertyValue'\nimport { getSchemaUidForModel } from '@/db/read/getSchemaUidForModel'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nimport { eventEmitter } from '@/eventBus'\nimport { ImageSize } from '@/helpers/constants'\n\n\nconst readFileAsArrayBuffer = async (file: File): Promise<ArrayBuffer> => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.onload = async (e) => {\n const arrayBuffer = e.target.result as ArrayBuffer\n\n resolve(arrayBuffer)\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n\nconst fetchImage = async (url: string) => {\n const response = await fetch(url)\n const mimeType = response.headers.get('Content-Type')\n const imageBuffer = await response.arrayBuffer()\n const bytes = new Uint8Array(imageBuffer)\n\n const binaryString = bytes.reduce(\n (acc, byte) => acc + String.fromCharCode(byte),\n '',\n )\n\n let base64 = btoa(binaryString)\n\n if (mimeType) {\n base64 = `data:${mimeType};base64,${base64}`\n }\n\n return base64\n}\n\nlet imageSchemaUid: string | undefined\n\nexport const saveImageSrc = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n propertyValue: existingValue,\n propertyRecordSchema,\n modelName,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n } = context\n\n let { schemaUid } = context\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveImageSrc = async (): Promise<void> => {\n let propertyName = propertyNameRaw\n\n if (!propertyNameRaw.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n let fileData: string | ArrayBuffer | undefined\n let mimeType\n let fileName\n\n if (!imageSchemaUid) {\n imageSchemaUid = await getSchemaUidForModel('Image')\n }\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValueType === 'imageBase64') {\n mimeType = getMimeType(newValue as string)\n const base64Data = (newValue as string).split(',')[1] // Strip the Base64 prefix\n const binaryString = atob(base64Data)\n\n const binaryLength = binaryString.length\n const binaryArray = new Uint8Array(binaryLength)\n for (let i = 0; i < binaryLength; i++) {\n binaryArray[i] = binaryString.charCodeAt(i)\n }\n fileData = binaryArray.buffer\n }\n\n if (newValueType === 'url') {\n fileData = await fetchImage(newValue as string)\n }\n\n if (newValue instanceof File) {\n fileName = newValue.name\n mimeType = newValue.type\n fileData = await readFileAsArrayBuffer(newValue)\n }\n\n if (!fileData) {\n throw new Error('No file data found')\n }\n\n const newImageSeedLocalId = await createSeed({\n type: 'image',\n })\n\n if (!fileName) {\n fileName = newImageSeedLocalId\n if (mimeType) {\n fileName += `.${mimeType.split('/')[1]}`\n }\n }\n\n const filePath = `/files/images/${fileName}`\n\n const imageVersionLocalId = await createVersion({\n seedLocalId: newImageSeedLocalId,\n seedType: 'image',\n })\n\n if (fileData instanceof ArrayBuffer) {\n try {\n await BaseFileManager.saveFile(filePath, new Uint8Array(fileData))\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, new Uint8Array(fileData))\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n if (typeof fileData === 'string') {\n try {\n await BaseFileManager.saveFile(filePath, fileData)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, fileData)\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_SMALL, height: ImageSize.EXTRA_SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.SMALL, height: ImageSize.SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.MEDIUM, height: ImageSize.MEDIUM})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.LARGE, height: ImageSize.LARGE})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_LARGE, height: ImageSize.EXTRA_LARGE})\n\n const refResolvedDisplayValue = await BaseFileManager.getContentUrlFromPath(filePath)\n\n let newLocalId\n\n if (!localId) {\n const result = await createMetadata(\n {\n propertyName,\n propertyValue: newImageSeedLocalId,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n },\n propertyRecordSchema,\n )\n\n newLocalId = result[0].localId\n }\n\n if (localId) {\n await updateItemPropertyValue({\n localId: localId,\n propertyName: propertyNameRaw,\n newValue: newImageSeedLocalId,\n seedLocalId,\n versionLocalId,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n })\n }\n\n sendBack({\n type: 'updateContext',\n localId: newLocalId || localId,\n propertyValue: newImageSeedLocalId,\n refSeedType: 'image',\n refSchemaUid: imageSchemaUid,\n renderValue: refResolvedDisplayValue,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n schemaUid,\n })\n }\n\n _saveImageSrc().then(() => {\n sendBack({ type: 'saveImageSrcSuccess' })\n })\n})\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { fromCallback } from 'xstate';
2
+ import { BaseDb } from '../../../../db/Db/BaseDb.js';
3
+ import { getItemPropertyData } from '../../../../db/read/getItemProperty.js';
4
+ import { getItemData } from '../../../../db/read/getItemData.js';
5
+ import { eq, and } from 'drizzle-orm';
6
+ import '../../../../seedSchema/SeedSchema.js';
7
+ import '../../../../seedSchema/VersionSchema.js';
8
+ import { metadata } from '../../../../seedSchema/MetadataSchema.js';
9
+ import '../../../../seedSchema/AppStateSchema.js';
10
+ import '../../../../seedSchema/ModelSchema.js';
11
+ import '../../../../seedSchema/ModelUidSchema.js';
12
+ import { createMetadata } from '../../../../db/write/createMetadata.js';
13
+ import { BaseFileManager } from '../../../../helpers/FileManager/BaseFileManager.js';
14
+
15
+ const saveItemStorage = fromCallback(({ sendBack, input: { context, event } }) => {
16
+ const { localId, seedLocalId, seedUid, propertyName, propertyRecordSchema, modelName, propertyValue: existingValue, } = context;
17
+ if (!propertyRecordSchema) {
18
+ throw new Error('Missing propertyRecordSchema');
19
+ }
20
+ let newValue;
21
+ if (event) {
22
+ newValue = event.newValue;
23
+ }
24
+ if (existingValue === newValue) {
25
+ sendBack({ type: 'saveValueToDbSuccess' });
26
+ return;
27
+ }
28
+ const _saveItemStorage = async () => {
29
+ // Save value to file
30
+ const appDb = BaseDb.getAppDb();
31
+ let propertyData;
32
+ if (localId) {
33
+ propertyData = await getItemPropertyData({
34
+ localId,
35
+ });
36
+ }
37
+ if (!localId && seedLocalId) {
38
+ const itemData = await getItemData({
39
+ seedLocalId,
40
+ });
41
+ if (itemData) {
42
+ const whereClauses = [
43
+ eq(metadata.propertyName, propertyName),
44
+ eq(metadata.seedLocalId, seedLocalId),
45
+ ];
46
+ if (itemData.latestVersionLocalId) {
47
+ whereClauses.push(eq(metadata.versionLocalId, itemData.latestVersionLocalId));
48
+ }
49
+ const queryRows = await appDb
50
+ .select()
51
+ .from(metadata)
52
+ .where(and(...whereClauses));
53
+ if (queryRows && queryRows.length) {
54
+ propertyData = queryRows[0];
55
+ }
56
+ if (!propertyData && newValue) {
57
+ const filename = `${seedUid || seedLocalId}${propertyRecordSchema.filenameSuffix}`;
58
+ const writeToPath = `/files/${propertyRecordSchema.localStorageDir}/${filename}`;
59
+ await BaseFileManager.saveFile(writeToPath, newValue);
60
+ const propertyDataRows = await createMetadata({
61
+ propertyName,
62
+ propertyValue: filename,
63
+ modelType: modelName.toLowerCase(),
64
+ seedLocalId,
65
+ seedUid,
66
+ versionLocalId: itemData.latestVersionLocalId,
67
+ versionUid: itemData.latestVersionUid,
68
+ localStorageDir: propertyRecordSchema.localStorageDir,
69
+ refValueType: 'file',
70
+ }, propertyRecordSchema);
71
+ propertyData = propertyDataRows[0];
72
+ }
73
+ // propertyData = {
74
+ // propertyName,
75
+ // seedLocalId,
76
+ // seedUid,
77
+ // versionLocalId: itemData.latestVersionLocalId,
78
+ // versionUid: itemData.latestVersionUid,
79
+ // schemaUid: itemData.schemaUid,
80
+ // }
81
+ }
82
+ }
83
+ const localStorageDir = propertyRecordSchema.localStorageDir || propertyData.localStorageDir;
84
+ const fileName = propertyData.refResolvedValue ||
85
+ `${propertyData.seedUid || propertyData.seedLocalId}${propertyRecordSchema.filenameSuffix}`;
86
+ if (!localStorageDir || !fileName) {
87
+ throw new Error(`Missing localStorageDir: ${localStorageDir} or fileName: ${fileName}`);
88
+ }
89
+ const filePath = `/files/${localStorageDir}/${fileName}`;
90
+ try {
91
+ await BaseFileManager.saveFile(filePath, newValue);
92
+ }
93
+ catch (error) {
94
+ const fs = await BaseFileManager.getFs();
95
+ fs.writeFileSync(filePath, newValue);
96
+ }
97
+ await appDb
98
+ .update(metadata)
99
+ .set({
100
+ refResolvedValue: fileName,
101
+ })
102
+ .where(eq(metadata.localId, propertyData.localId));
103
+ sendBack({
104
+ type: 'updateContext',
105
+ renderValue: newValue,
106
+ });
107
+ return true;
108
+ };
109
+ _saveItemStorage().then((success) => {
110
+ if (success) {
111
+ sendBack({ type: 'saveItemStorageSuccess' });
112
+ }
113
+ });
114
+ });
115
+
116
+ export { saveItemStorage };
117
+ //# sourceMappingURL=saveItemStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveItemStorage.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getItemPropertyData } from '@/db/read/getItemProperty'\nimport { getItemData } from '@/db/read/getItemData'\nimport { and, eq } from 'drizzle-orm'\nimport { metadata } from '@/seedSchema'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nexport const saveItemStorage = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n seedLocalId,\n seedUid,\n propertyName,\n propertyRecordSchema,\n modelName,\n propertyValue: existingValue,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveItemStorage = async (): Promise<boolean> => {\n // Save value to file\n const appDb = BaseDb.getAppDb()\n let propertyData\n\n if (localId) {\n propertyData = await getItemPropertyData({\n localId,\n })\n }\n\n if (!localId && seedLocalId) {\n const itemData = await getItemData({\n seedLocalId,\n })\n if (itemData) {\n const whereClauses = [\n eq(metadata.propertyName, propertyName),\n eq(metadata.seedLocalId, seedLocalId),\n ]\n\n if (itemData.latestVersionLocalId) {\n whereClauses.push(\n eq(metadata.versionLocalId, itemData.latestVersionLocalId),\n )\n }\n\n const queryRows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n\n if (queryRows && queryRows.length) {\n propertyData = queryRows[0]\n }\n\n if (!propertyData && newValue) {\n\n const filename = `${seedUid || seedLocalId}${propertyRecordSchema.filenameSuffix}`\n const writeToPath = `/files/${propertyRecordSchema.localStorageDir}/${filename}`\n await BaseFileManager.saveFile(writeToPath, newValue as string | Blob | ArrayBuffer)\n\n const propertyDataRows = await createMetadata(\n {\n propertyName,\n propertyValue: filename,\n modelType: modelName.toLowerCase(),\n seedLocalId,\n seedUid,\n versionLocalId: itemData.latestVersionLocalId,\n versionUid: itemData.latestVersionUid,\n localStorageDir: propertyRecordSchema.localStorageDir,\n refValueType: 'file',\n },\n propertyRecordSchema,\n )\n\n propertyData = propertyDataRows[0]\n }\n\n // propertyData = {\n // propertyName,\n // seedLocalId,\n // seedUid,\n // versionLocalId: itemData.latestVersionLocalId,\n // versionUid: itemData.latestVersionUid,\n // schemaUid: itemData.schemaUid,\n // }\n }\n }\n\n const localStorageDir =\n propertyRecordSchema.localStorageDir || propertyData.localStorageDir\n const fileName =\n propertyData.refResolvedValue ||\n `${propertyData.seedUid || propertyData.seedLocalId}${propertyRecordSchema.filenameSuffix}`\n\n if (!localStorageDir || !fileName) {\n throw new Error(\n `Missing localStorageDir: ${localStorageDir} or fileName: ${fileName}`,\n )\n }\n\n const filePath = `/files/${localStorageDir}/${fileName}`\n try {\n await BaseFileManager.saveFile(filePath, newValue as string | Blob | ArrayBuffer)\n } catch (error) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, newValue)\n }\n\n await appDb\n .update(metadata)\n .set({\n refResolvedValue: fileName,\n })\n .where(eq(metadata.localId, propertyData.localId))\n\n sendBack({\n type: 'updateContext',\n renderValue: newValue,\n })\n\n return true\n }\n\n _saveItemStorage().then((success) => {\n if (success) {\n sendBack({ type: 'saveItemStorageSuccess' })\n }\n })\n})\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { fromCallback } from 'xstate';
2
+ import { getDataTypeFromString } from '../../../../helpers/index.js';
3
+
4
+ const saveRelation = fromCallback(({ sendBack, input: { context, event } }) => {
5
+ const { localId, propertyName: propertyNameRaw, versionLocalId, seedUid, seedLocalId, propertyValue: existingValue, propertyRecordSchema, } = context;
6
+ if (!propertyRecordSchema) {
7
+ throw new Error('Missing propertyRecordSchema');
8
+ }
9
+ let newValue;
10
+ if (event) {
11
+ newValue = event.newValue;
12
+ }
13
+ const _saveRelation = async () => {
14
+ let propertyName = propertyNameRaw;
15
+ if (!propertyName.endsWith('Id')) {
16
+ propertyName = `${propertyName}Id`;
17
+ }
18
+ let newValueType;
19
+ if (typeof newValue === 'string') {
20
+ newValueType = getDataTypeFromString(newValue);
21
+ }
22
+ if (newValue instanceof File) {
23
+ newValueType = 'file';
24
+ }
25
+ if (propertyRecordSchema.dataType === 'ImageSrc') {
26
+ sendBack({
27
+ type: 'saveImageSrc',
28
+ newValue,
29
+ newValueType,
30
+ });
31
+ return false;
32
+ }
33
+ return true;
34
+ // let fileType
35
+ //
36
+ // const dirs = await fs.promises.readdir('/files')
37
+ //
38
+ // for (const dir of dirs) {
39
+ // const files = await fs.promises.readdir(`/files/${dir}`)
40
+ // if (newValue && files.includes(newValue as string)) {
41
+ // fileType = dir
42
+ // break
43
+ // }
44
+ // }
45
+ //
46
+ // if (newValue && fileType === 'images') {
47
+ // const filePath = `/files/images/${newValue}`
48
+ // refResolvedDisplayValue = await getContentUrlFromPath(filePath)
49
+ // refSeedType = 'image'
50
+ // newValue = await createSeed({
51
+ // type: refSeedType,
52
+ // })
53
+ // await createVersion({
54
+ // seedLocalId,
55
+ // seedUid,
56
+ // seedType: refSeedType,
57
+ // })
58
+ // }
59
+ //
60
+ // await updateItemPropertyValue({
61
+ // propertyLocalId: localId,
62
+ // propertyName,
63
+ // newValue,
64
+ // seedLocalId,
65
+ // refSeedType,
66
+ // refResolvedValue,
67
+ // refResolvedDisplayValue,
68
+ // versionLocalId,
69
+ // modelName: itemModelName,
70
+ // schemaUid,
71
+ // })
72
+ };
73
+ _saveRelation().then((isDone) => {
74
+ if (isDone) {
75
+ sendBack({ type: 'saveRelationSuccess' });
76
+ }
77
+ });
78
+ });
79
+
80
+ export { saveRelation };
81
+ //# sourceMappingURL=saveRelation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveRelation.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveRelation.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { getDataTypeFromString } from '@/helpers'\n\nexport const saveRelation = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n versionLocalId,\n seedUid,\n seedLocalId,\n propertyValue: existingValue,\n propertyRecordSchema,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n const _saveRelation = async (): Promise<boolean> => {\n let refResolvedDisplayValue\n let refSeedType\n let propertyName = propertyNameRaw\n let versionLocalIdToSave = versionLocalId\n\n const refResolvedValue = newValue\n\n if (!propertyName.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValue instanceof File) {\n newValueType = 'file'\n }\n\n if (propertyRecordSchema.dataType === 'ImageSrc') {\n sendBack({\n type: 'saveImageSrc',\n newValue,\n newValueType,\n })\n return false\n }\n\n return true\n\n // let fileType\n //\n // const dirs = await fs.promises.readdir('/files')\n //\n // for (const dir of dirs) {\n // const files = await fs.promises.readdir(`/files/${dir}`)\n // if (newValue && files.includes(newValue as string)) {\n // fileType = dir\n // break\n // }\n // }\n //\n // if (newValue && fileType === 'images') {\n // const filePath = `/files/images/${newValue}`\n // refResolvedDisplayValue = await getContentUrlFromPath(filePath)\n // refSeedType = 'image'\n // newValue = await createSeed({\n // type: refSeedType,\n // })\n // await createVersion({\n // seedLocalId,\n // seedUid,\n // seedType: refSeedType,\n // })\n // }\n //\n // await updateItemPropertyValue({\n // propertyLocalId: localId,\n // propertyName,\n // newValue,\n // seedLocalId,\n // refSeedType,\n // refResolvedValue,\n // refResolvedDisplayValue,\n // versionLocalId,\n // modelName: itemModelName,\n // schemaUid,\n // })\n }\n\n _saveRelation().then((isDone) => {\n if (isDone) {\n sendBack({ type: 'saveRelationSuccess' })\n }\n })\n})\n"],"names":[],"mappings":";;;AASa,MAAA,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;IAC5C,MAAM,EACJ,OAAO,EACP,YAAY,EAAE,eAAe,EAC7B,cAAc,EACd,OAAO,EACP,WAAW,EACX,aAAa,EAAE,aAAa,EAC5B,oBAAoB,GACrB,GAAG,OAAO;IAEX,IAAI,CAAC,oBAAoB,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGjD,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,MAAM,aAAa,GAAG,YAA6B;QAGjD,IAAI,YAAY,GAAG,eAAe;QAKlC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI;;AAGpC,QAAA,IAAI,YAAY;AAEhB,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAGhD,QAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;YAC5B,YAAY,GAAG,MAAM;;AAGvB,QAAA,IAAI,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChD,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;gBACpB,QAAQ;gBACR,YAAY;AACb,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCb,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;QAC9B,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;AAE7C,KAAC,CAAC;AACJ,CAAC;;;;"}
@@ -0,0 +1,22 @@
1
+ import { fromCallback } from 'xstate';
2
+ import { BaseDb } from '../../../db/Db/BaseDb.js';
3
+ import debug from 'debug';
4
+
5
+ debug('seedSdk:ItemProperty:service:actors:waitForDb');
6
+ const waitForDb = fromCallback(({ sendBack }) => {
7
+ const _waitForDb = new Promise((resolve) => {
8
+ const interval = setInterval(() => {
9
+ const appDb = BaseDb.getAppDb();
10
+ if (appDb) {
11
+ clearInterval(interval);
12
+ resolve();
13
+ }
14
+ }, 100);
15
+ });
16
+ _waitForDb.then(() => {
17
+ sendBack({ type: 'waitForDbSuccess' });
18
+ });
19
+ });
20
+
21
+ export { waitForDb };
22
+ //# sourceMappingURL=waitForDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForDb.js","sources":["../../../../../../src/ItemProperty/service/actors/waitForDb.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PropertyMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:ItemProperty:service:actors:waitForDb')\n\nexport const waitForDb = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext>\n>(({ sendBack }) => {\n const _waitForDb = new Promise<void>((resolve) => {\n const interval = setInterval(() => {\n const appDb = BaseDb.getAppDb()\n if (appDb) {\n clearInterval(interval)\n resolve()\n }\n }, 100)\n })\n\n _waitForDb.then(() => {\n sendBack({ type: 'waitForDbSuccess' })\n })\n})\n"],"names":[],"mappings":";;;;AAKe,KAAK,CAAC,+CAA+C;AAEvD,MAAA,SAAS,GAAG,YAAY,CAGnC,CAAC,EAAE,QAAQ,EAAE,KAAI;IACjB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAC/C,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;YAC/B,IAAI,KAAK,EAAE;gBACT,aAAa,CAAC,QAAQ,CAAC;AACvB,gBAAA,OAAO,EAAE;;SAEZ,EAAE,GAAG,CAAC;AACT,KAAC,CAAC;AAEF,IAAA,UAAU,CAAC,IAAI,CAAC,MAAK;AACnB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACxC,KAAC,CAAC;AACJ,CAAC;;;;"}
@@ -0,0 +1,198 @@
1
+ import { setup, assign } from 'xstate';
2
+ import { resolveRemoteStorage } from './actors/resolveRemoteStorage.js';
3
+ import { waitForDb } from './actors/waitForDb.js';
4
+ import { initialize } from './actors/initialize.js';
5
+ import { resolveRelatedValue } from './actors/resolveRelatedValue.js';
6
+ import { hydrateFromDb } from './actors/hydrateFromDb.js';
7
+ import { analyzeInput } from './actors/saveValueToDb/analyzeInput.js';
8
+ import { saveImageSrc } from './actors/saveValueToDb/saveImageSrc.js';
9
+ import { saveRelation } from './actors/saveValueToDb/saveRelation.js';
10
+ import { saveItemStorage } from './actors/saveValueToDb/saveItemStorage.js';
11
+
12
+ // import { updateMachineContext } from '@/helpers'
13
+ const propertyMachine = setup({
14
+ types: {
15
+ context: {},
16
+ input: {},
17
+ },
18
+ // actions: {
19
+ // updateContext: updateMachineContext,
20
+ // },
21
+ actors: {
22
+ waitForDb,
23
+ hydrateFromDb,
24
+ initialize,
25
+ resolveRelatedValue,
26
+ resolveRemoteStorage,
27
+ analyzeInput,
28
+ saveImageSrc,
29
+ saveRelation,
30
+ saveItemStorage,
31
+ },
32
+ }).createMachine({
33
+ id: 'itemProperty',
34
+ initial: 'waitingForDb',
35
+ context: ({ input }) => input,
36
+ on: {
37
+ // reload: '.hydratingFromDb',
38
+ save: {
39
+ actions: assign({
40
+ isSaving: true,
41
+ }),
42
+ target: '.saving',
43
+ },
44
+ updateContext: {
45
+ actions: assign(({ context, event }) => {
46
+ const newContext = Object.assign({}, context);
47
+ for (let i = 0; i < Object.keys(event).length; i++) {
48
+ const key = Object.keys(event)[i];
49
+ if (key === 'type') {
50
+ continue;
51
+ }
52
+ newContext[key] = event[key];
53
+ }
54
+ return newContext;
55
+ }),
56
+ },
57
+ },
58
+ states: {
59
+ idle: {},
60
+ waitingForDb: {
61
+ on: {
62
+ waitForDbSuccess: {
63
+ target: 'hydratingFromDb',
64
+ actions: assign({
65
+ isDbReady: true,
66
+ }),
67
+ },
68
+ },
69
+ invoke: {
70
+ src: 'waitForDb',
71
+ input: ({ context }) => ({ context }),
72
+ },
73
+ },
74
+ hydratingFromDb: {
75
+ on: {
76
+ hydrateFromDbSuccess: 'initializing',
77
+ },
78
+ invoke: {
79
+ src: 'hydrateFromDb',
80
+ input: ({ context }) => ({ context }),
81
+ },
82
+ },
83
+ initializing: {
84
+ on: {
85
+ initializeSuccess: 'idle',
86
+ isRelatedProperty: {
87
+ target: 'resolvingRelatedValue',
88
+ },
89
+ hasRemoteBackup: {
90
+ target: 'resolvingRemoteStorage',
91
+ },
92
+ },
93
+ invoke: {
94
+ src: 'initialize',
95
+ input: ({ context, event }) => ({ context, event }),
96
+ },
97
+ },
98
+ resolvingRelatedValue: {
99
+ on: {
100
+ resolvingRelatedValueSuccess: {
101
+ target: 'idle',
102
+ actions: assign({
103
+ refResolvedDisplayValue: ({ event }) => event.refResolvedDisplayValue,
104
+ refResolvedValue: ({ event }) => event.refResolvedValue,
105
+ }),
106
+ },
107
+ resolvingRelatedValueDone: {
108
+ target: 'idle',
109
+ },
110
+ },
111
+ invoke: {
112
+ src: 'resolveRelatedValue',
113
+ input: ({ context }) => ({ context }),
114
+ },
115
+ },
116
+ resolvingRemoteStorage: {
117
+ on: {
118
+ resolveRemoteStorageSuccess: {
119
+ target: 'idle',
120
+ },
121
+ },
122
+ invoke: {
123
+ src: 'resolveRemoteStorage',
124
+ input: ({ context }) => ({ context }),
125
+ },
126
+ },
127
+ saving: {
128
+ initial: 'analyzingInput',
129
+ states: {
130
+ analyzingInput: {
131
+ on: {
132
+ saveValueToDbSuccess: {
133
+ target: 'doneSaving',
134
+ },
135
+ saveImageSrc: 'savingImageSrc',
136
+ saveRelation: 'savingRelation',
137
+ saveItemStorage: 'savingItemStorage',
138
+ },
139
+ invoke: {
140
+ src: 'analyzeInput',
141
+ input: ({ context, event }) => ({ context, event }),
142
+ },
143
+ },
144
+ savingImageSrc: {
145
+ on: {
146
+ saveImageSrcSuccess: 'doneSaving',
147
+ },
148
+ invoke: {
149
+ src: 'saveImageSrc',
150
+ input: ({ context, event }) => ({ context, event }),
151
+ },
152
+ },
153
+ savingRelation: {
154
+ on: {
155
+ saveRelationSuccess: 'doneSaving',
156
+ },
157
+ invoke: {
158
+ src: 'saveRelation',
159
+ input: ({ context, event }) => ({ context, event }),
160
+ },
161
+ },
162
+ savingItemStorage: {
163
+ on: {
164
+ saveItemStorageSuccess: 'doneSaving',
165
+ },
166
+ invoke: {
167
+ src: 'saveItemStorage',
168
+ input: ({ context, event }) => ({ context, event }),
169
+ },
170
+ },
171
+ doneSaving: {
172
+ type: 'final',
173
+ },
174
+ },
175
+ onDone: {
176
+ target: 'idle',
177
+ actions: assign(({ context }) => {
178
+ return {
179
+ isSaving: false,
180
+ };
181
+ }),
182
+ },
183
+ },
184
+ },
185
+ // conflict: {
186
+ // on: {
187
+ // resolveConflict: {
188
+ // target: 'saving',
189
+ // actions: assign({
190
+ // data: ({ context, event }) => event.output,
191
+ // }),
192
+ // },
193
+ // },
194
+ // },
195
+ });
196
+
197
+ export { propertyMachine };
198
+ //# sourceMappingURL=propertyMachine.js.map