@seedprotocol/sdk 0.3.12 → 0.3.14

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 (243) hide show
  1. package/dist/bin.js +6 -8
  2. package/dist/bin.js.map +1 -1
  3. package/dist/main.js +3 -4
  4. package/dist/main.js.map +1 -1
  5. package/dist/node/db/node.app.db.config.ts +1 -4
  6. package/dist/scripts/bin.d.ts.map +1 -1
  7. package/dist/seedSchema/AppStateSchema.ts +2 -2
  8. package/dist/seedSchema/ConfigSchema.ts +15 -0
  9. package/dist/seedSchema/MetadataSchema.ts +1 -2
  10. package/dist/seedSchema/ModelSchema.ts +3 -3
  11. package/dist/seedSchema/SeedSchema.ts +1 -2
  12. package/dist/seedSchema/VersionSchema.ts +1 -2
  13. package/dist/seedSchema/index.ts +3 -4
  14. package/dist/src/Item/BaseItem.d.ts +1 -1
  15. package/dist/src/Item/BaseItem.d.ts.map +1 -1
  16. package/dist/src/Item/BaseItem.js.map +1 -1
  17. package/dist/src/ItemProperty/BaseItemProperty.d.ts +192 -55
  18. package/dist/src/ItemProperty/BaseItemProperty.d.ts.map +1 -1
  19. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts +1 -2
  20. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  21. package/dist/src/ItemProperty/service/actors/hydrateFromDb.js +3 -4
  22. package/dist/src/ItemProperty/service/actors/hydrateFromDb.js.map +1 -1
  23. package/dist/src/ItemProperty/service/actors/initialize.d.ts +1 -2
  24. package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -1
  25. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts +1 -2
  26. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -1
  27. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts +1 -2
  28. package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -1
  29. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts +2 -2
  30. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -1
  31. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts +2 -2
  32. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -1
  33. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts +2 -2
  34. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
  35. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js +3 -4
  36. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js.map +1 -1
  37. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts +2 -2
  38. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +1 -1
  39. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts +2 -2
  40. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +1 -1
  41. package/dist/src/ItemProperty/service/propertyMachine.d.ts +195 -60
  42. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  43. package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -1
  44. package/dist/src/browser/helpers/ArweaveClient.js +1 -0
  45. package/dist/src/browser/helpers/ArweaveClient.js.map +1 -1
  46. package/dist/src/browser/helpers/EasClient.d.ts.map +1 -1
  47. package/dist/src/browser/react/services.d.ts +1 -1
  48. package/dist/src/browser/react/services.js +3 -4
  49. package/dist/src/browser/react/services.js.map +1 -1
  50. package/dist/src/client/ClientManager.d.ts +14 -14
  51. package/dist/src/client/ClientManager.js +3 -4
  52. package/dist/src/client/ClientManager.js.map +1 -1
  53. package/dist/src/client/actors/initialize.d.ts +1 -1
  54. package/dist/src/client/actors/initialize.d.ts.map +1 -1
  55. package/dist/src/client/actors/initialize.js +15 -54
  56. package/dist/src/client/actors/initialize.js.map +1 -1
  57. package/dist/src/client/actors/saveAppState.js +3 -4
  58. package/dist/src/client/actors/saveAppState.js.map +1 -1
  59. package/dist/src/client/clientManagerMachine.d.ts +7 -7
  60. package/dist/src/client/index.d.ts +1 -1
  61. package/dist/src/client/index.d.ts.map +1 -1
  62. package/dist/src/db/Db/BaseDb.d.ts +1 -2
  63. package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
  64. package/dist/src/db/Db/BaseDb.js +0 -3
  65. package/dist/src/db/Db/BaseDb.js.map +1 -1
  66. package/dist/src/db/read/getExistingItem.js +3 -4
  67. package/dist/src/db/read/getExistingItem.js.map +1 -1
  68. package/dist/src/db/read/getItemData.js +3 -4
  69. package/dist/src/db/read/getItemData.js.map +1 -1
  70. package/dist/src/db/read/getItemProperties.js +3 -4
  71. package/dist/src/db/read/getItemProperties.js.map +1 -1
  72. package/dist/src/db/read/getItemProperty.js +3 -4
  73. package/dist/src/db/read/getItemProperty.js.map +1 -1
  74. package/dist/src/db/read/getItems.js +3 -4
  75. package/dist/src/db/read/getItems.js.map +1 -1
  76. package/dist/src/db/read/getMetadata.js +3 -4
  77. package/dist/src/db/read/getMetadata.js.map +1 -1
  78. package/dist/src/db/read/getModelSchemas.js +3 -4
  79. package/dist/src/db/read/getModelSchemas.js.map +1 -1
  80. package/dist/src/db/read/getModels.js +3 -4
  81. package/dist/src/db/read/getModels.js.map +1 -1
  82. package/dist/src/db/read/getPropertyData.js +3 -4
  83. package/dist/src/db/read/getPropertyData.js.map +1 -1
  84. package/dist/src/db/read/getPublishUploads.js +2 -1
  85. package/dist/src/db/read/getPublishUploads.js.map +1 -1
  86. package/dist/src/db/read/getRelationValueData.js +3 -4
  87. package/dist/src/db/read/getRelationValueData.js.map +1 -1
  88. package/dist/src/db/read/getSeedData.js +3 -4
  89. package/dist/src/db/read/getSeedData.js.map +1 -1
  90. package/dist/src/db/read/getStorageTransactionIdForSeedUid.js +3 -4
  91. package/dist/src/db/read/getStorageTransactionIdForSeedUid.js.map +1 -1
  92. package/dist/src/db/read/getVersionData.js +3 -4
  93. package/dist/src/db/read/getVersionData.js.map +1 -1
  94. package/dist/src/db/read/subqueries/metadataLatest.js +3 -4
  95. package/dist/src/db/read/subqueries/metadataLatest.js.map +1 -1
  96. package/dist/src/db/read/subqueries/versionData.js +3 -4
  97. package/dist/src/db/read/subqueries/versionData.js.map +1 -1
  98. package/dist/src/db/write/createMetadata.js +3 -4
  99. package/dist/src/db/write/createMetadata.js.map +1 -1
  100. package/dist/src/db/write/createSeed.js +3 -4
  101. package/dist/src/db/write/createSeed.js.map +1 -1
  102. package/dist/src/db/write/createSeeds.js +3 -4
  103. package/dist/src/db/write/createSeeds.js.map +1 -1
  104. package/dist/src/db/write/createVersion.js +3 -4
  105. package/dist/src/db/write/createVersion.js.map +1 -1
  106. package/dist/src/db/write/deleteItem.js +3 -4
  107. package/dist/src/db/write/deleteItem.js.map +1 -1
  108. package/dist/src/db/write/saveAppState.js +3 -4
  109. package/dist/src/db/write/saveAppState.js.map +1 -1
  110. package/dist/src/db/write/saveMetadata.js +3 -4
  111. package/dist/src/db/write/saveMetadata.js.map +1 -1
  112. package/dist/src/db/write/updateItemPropertyValue.js +3 -4
  113. package/dist/src/db/write/updateItemPropertyValue.js.map +1 -1
  114. package/dist/src/db/write/updateMetadata.js +3 -4
  115. package/dist/src/db/write/updateMetadata.js.map +1 -1
  116. package/dist/src/events/files/download.js +3 -4
  117. package/dist/src/events/files/download.js.map +1 -1
  118. package/dist/src/events/item/syncDbWithEas.js +3 -4
  119. package/dist/src/events/item/syncDbWithEas.js.map +1 -1
  120. package/dist/src/helpers/FileManager/BaseFileManager.d.ts +1 -4
  121. package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
  122. package/dist/src/helpers/FileManager/BaseFileManager.js +0 -9
  123. package/dist/src/helpers/FileManager/BaseFileManager.js.map +1 -1
  124. package/dist/src/helpers/crypto.d.ts +3 -0
  125. package/dist/src/helpers/crypto.d.ts.map +1 -0
  126. package/dist/src/helpers/crypto.js +9 -0
  127. package/dist/src/helpers/crypto.js.map +1 -0
  128. package/dist/src/helpers/db.js +3 -4
  129. package/dist/src/helpers/db.js.map +1 -1
  130. package/dist/src/helpers/environment.js +1 -6
  131. package/dist/src/helpers/environment.js.map +1 -1
  132. package/dist/src/helpers/index.d.ts +0 -10
  133. package/dist/src/helpers/index.d.ts.map +1 -1
  134. package/dist/src/helpers/index.js +1 -6
  135. package/dist/src/helpers/index.js.map +1 -1
  136. package/dist/src/interfaces/IItem.d.ts +1 -1
  137. package/dist/src/interfaces/IItem.d.ts.map +1 -1
  138. package/dist/src/node/PathResolver.d.ts +11 -2
  139. package/dist/src/node/PathResolver.d.ts.map +1 -1
  140. package/dist/src/node/PathResolver.js +5 -12
  141. package/dist/src/node/PathResolver.js.map +1 -1
  142. package/dist/src/node/codegen/drizzle.js +2 -36
  143. package/dist/src/node/codegen/drizzle.js.map +1 -1
  144. package/dist/src/node/db/Db.d.ts.map +1 -1
  145. package/dist/src/node/db/node.app.db.config.d.ts.map +1 -1
  146. package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -1
  147. package/dist/src/node/helpers/ArweaveClient.js +1 -0
  148. package/dist/src/node/helpers/ArweaveClient.js.map +1 -1
  149. package/dist/src/node/helpers/EasClient.d.ts.map +1 -1
  150. package/dist/src/node/helpers/EasClient.js +13 -0
  151. package/dist/src/node/helpers/EasClient.js.map +1 -0
  152. package/dist/src/node/helpers/FileManager.d.ts +0 -4
  153. package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
  154. package/dist/src/seedSchema/AppStateSchema.d.ts +1 -2
  155. package/dist/src/seedSchema/AppStateSchema.d.ts.map +1 -1
  156. package/dist/src/seedSchema/AppStateSchema.js.map +1 -1
  157. package/dist/src/seedSchema/ConfigSchema.d.ts +97 -0
  158. package/dist/src/seedSchema/ConfigSchema.d.ts.map +1 -0
  159. package/dist/src/seedSchema/ConfigSchema.js +18 -0
  160. package/dist/src/seedSchema/ConfigSchema.js.map +1 -0
  161. package/dist/src/seedSchema/MetadataSchema.d.ts +1 -2
  162. package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -1
  163. package/dist/src/seedSchema/MetadataSchema.js.map +1 -1
  164. package/dist/src/seedSchema/ModelSchema.d.ts +2 -3
  165. package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
  166. package/dist/src/seedSchema/ModelSchema.js.map +1 -1
  167. package/dist/src/seedSchema/SeedSchema.d.ts +1 -2
  168. package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
  169. package/dist/src/seedSchema/SeedSchema.js.map +1 -1
  170. package/dist/src/seedSchema/VersionSchema.d.ts +1 -2
  171. package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
  172. package/dist/src/seedSchema/VersionSchema.js.map +1 -1
  173. package/dist/src/seedSchema/index.d.ts +3 -4
  174. package/dist/src/seedSchema/index.d.ts.map +1 -1
  175. package/dist/src/services/allItems/actors/fetchRelatedItems.js +3 -4
  176. package/dist/src/services/allItems/actors/fetchRelatedItems.js.map +1 -1
  177. package/dist/src/services/allItems/actors/initialize.js +3 -4
  178. package/dist/src/services/allItems/actors/initialize.js.map +1 -1
  179. package/dist/src/services/db/actors/checkStatus.d.ts.map +1 -1
  180. package/dist/src/services/db/actors/checkStatus.js +3 -9
  181. package/dist/src/services/db/actors/checkStatus.js.map +1 -1
  182. package/dist/src/services/db/actors/migrate.d.ts.map +1 -1
  183. package/dist/src/services/db/actors/migrate.js +2 -9
  184. package/dist/src/services/db/actors/migrate.js.map +1 -1
  185. package/dist/src/services/db/actors/waitForFiles.d.ts.map +1 -1
  186. package/dist/src/services/db/actors/waitForFiles.js +1 -3
  187. package/dist/src/services/db/actors/waitForFiles.js.map +1 -1
  188. package/dist/src/services/db/dbMachine.d.ts.map +1 -1
  189. package/dist/src/services/db/dbMachine.js +0 -1
  190. package/dist/src/services/db/dbMachine.js.map +1 -1
  191. package/dist/src/services/global/actors/addModelsToDb.js +3 -4
  192. package/dist/src/services/global/actors/addModelsToDb.js.map +1 -1
  193. package/dist/src/services/global/actors/initialize.d.ts +1 -6
  194. package/dist/src/services/global/actors/initialize.d.ts.map +1 -1
  195. package/dist/src/services/global/actors/initialize.js +4 -6
  196. package/dist/src/services/global/actors/initialize.js.map +1 -1
  197. package/dist/src/services/global/globalMachine.d.ts +611 -80
  198. package/dist/src/services/global/globalMachine.d.ts.map +1 -1
  199. package/dist/src/services/internal/actors/loadAppDb.d.ts.map +1 -1
  200. package/dist/src/services/internal/actors/loadAppDb.js +1 -2
  201. package/dist/src/services/internal/actors/loadAppDb.js.map +1 -1
  202. package/dist/src/services/internal/actors/saveConfig.d.ts.map +1 -1
  203. package/dist/src/services/internal/actors/saveConfig.js +16 -5
  204. package/dist/src/services/internal/actors/saveConfig.js.map +1 -1
  205. package/dist/src/services/internal/actors/validateInput.d.ts +2 -9
  206. package/dist/src/services/internal/actors/validateInput.d.ts.map +1 -1
  207. package/dist/src/services/internal/actors/validateInput.js +1 -4
  208. package/dist/src/services/internal/actors/validateInput.js.map +1 -1
  209. package/dist/src/services/internal/internalMachine.d.ts +3 -33
  210. package/dist/src/services/internal/internalMachine.d.ts.map +1 -1
  211. package/dist/src/services/internal/internalMachine.js +5 -9
  212. package/dist/src/services/internal/internalMachine.js.map +1 -1
  213. package/dist/src/services/publish/actors/preparePublishRequestData.js +3 -4
  214. package/dist/src/services/publish/actors/preparePublishRequestData.js.map +1 -1
  215. package/dist/src/types/fileManager.d.ts +0 -13
  216. package/dist/src/types/fileManager.d.ts.map +1 -1
  217. package/dist/src/types/item.d.ts +8 -9
  218. package/dist/src/types/item.d.ts.map +1 -1
  219. package/dist/src/types/machines.d.ts.map +1 -1
  220. package/package.json +3 -12
  221. package/dist/addModel.js +0 -93
  222. package/dist/addModel.js.map +0 -1
  223. package/dist/protos/seed.proto +0 -97
  224. package/dist/rpcServer.js +0 -399
  225. package/dist/rpcServer.js.map +0 -1
  226. package/dist/scripts/addModel.d.ts +0 -3
  227. package/dist/scripts/addModel.d.ts.map +0 -1
  228. package/dist/scripts/rpcServer.cursor.d.ts +0 -2
  229. package/dist/scripts/rpcServer.cursor.d.ts.map +0 -1
  230. package/dist/scripts/rpcServer.d.ts +0 -9
  231. package/dist/scripts/rpcServer.d.ts.map +0 -1
  232. package/dist/scripts/vite.config.d.ts +0 -3
  233. package/dist/scripts/vite.config.d.ts.map +0 -1
  234. package/dist/src/node/Item/Item.js +0 -11
  235. package/dist/src/node/Item/Item.js.map +0 -1
  236. package/dist/src/node/ItemProperty/ItemProperty.js +0 -10
  237. package/dist/src/node/ItemProperty/ItemProperty.js.map +0 -1
  238. package/dist/src/node/db/Db.js +0 -72
  239. package/dist/src/node/db/Db.js.map +0 -1
  240. package/dist/src/node/helpers/FileManager.js +0 -67
  241. package/dist/src/node/helpers/FileManager.js.map +0 -1
  242. package/dist/src/seedSchema/PropertyUidSchema.js +0 -18
  243. package/dist/src/seedSchema/PropertyUidSchema.js.map +0 -1
@@ -1,12 +1,11 @@
1
1
  import { fromCallback } from 'xstate';
2
2
  import { GET_SEED_IDS, GET_VERSIONS, GET_ALL_PROPERTIES_FOR_ALL_VERSIONS } from '../../../Item/queries.js';
3
- import '../../../seedSchema/AppStateSchema.js';
3
+ import '../../../seedSchema/SeedSchema.js';
4
+ import '../../../seedSchema/VersionSchema.js';
4
5
  import '../../../seedSchema/MetadataSchema.js';
6
+ import '../../../seedSchema/AppStateSchema.js';
5
7
  import { models } from '../../../seedSchema/ModelSchema.js';
6
8
  import { modelUids } from '../../../seedSchema/ModelUidSchema.js';
7
- import '../../../seedSchema/PropertyUidSchema.js';
8
- import '../../../seedSchema/SeedSchema.js';
9
- import '../../../seedSchema/VersionSchema.js';
10
9
  import { getAddressesFromDb } from '../../../helpers/db.js';
11
10
  import { eq } from 'drizzle-orm';
12
11
  import { BaseDb } from '../../../db/Db/BaseDb.js';
@@ -1 +1 @@
1
- {"version":3,"file":"fetchRelatedItems.js","sources":["../../../../../../src/services/allItems/actors/fetchRelatedItems.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport {\n GET_ALL_PROPERTIES_FOR_ALL_VERSIONS,\n GET_SEED_IDS,\n GET_VERSIONS,\n} from '@/Item/queries'\nimport {\n models as modelsTable,\n modelUids,\n PropertyType,\n} from '@/seedSchema'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport {\n AllItemsMachineContext,\n FromCallbackInput,\n ModelClassType,\n} from '@/types'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eq } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\nexport const fetchRelatedItems = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { ModelClass, modelName } = context\n\n const appDb = BaseDb.getAppDb()\n\n const relatedProperties = new Map<string, PropertyType>()\n const relatedVersionsBySeedUid = new Map<string, Attestation[]>()\n const schemaUidsByModelName = new Map<string, string>()\n const mostRecentVersionsBySeedUid = new Map<string, Attestation>()\n const mostRecentPropertiesBySeedUid = new Map<string, Attestation[]>()\n const seedUidsByMostRecentVersionUid = new Map<string, string>()\n\n const _fetchRelatedItems = async () => {\n // Get related properties\n for (const [propertyName, propertyDef] of Object.entries(\n (ModelClass as ModelClassType).schema,\n )) {\n if (propertyDef && propertyDef.ref && propertyDef.refModelId) {\n relatedProperties.set(propertyName, propertyDef)\n }\n }\n\n const addresses = await getAddressesFromDb(appDb)\n\n // Get the models they point to from sdkConfigDb\n for (const [propertyName, propertyDef] of relatedProperties.entries()) {\n const relatedModelQuery = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.id, propertyDef.refModelId))\n .limit(1)\n\n if (relatedModelQuery && relatedModelQuery.length > 0) {\n const relatedModel = relatedModelQuery[0]\n const relatedModelUid = relatedModel.uid\n // Exclude the current model's schemaUid since we already have its versions\n if (relatedModelUid && relatedModelUid !== ModelClass.schemaUid) {\n schemaUidsByModelName.set(relatedModel.name, relatedModelUid)\n }\n }\n }\n\n const queryKey = [`getRelatedSeedIds${modelName}`]\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemSeedIds: relatedSeedIdAttestations } =\n await queryClient.fetchQuery({\n queryKey,\n queryFn: async () =>\n easClient.request(GET_SEED_IDS, {\n where: {\n schema: {\n is: {\n id: {\n in: Array.from(schemaUidsByModelName.values()),\n },\n },\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n const relatedSeedIds = relatedSeedIdAttestations.map((seed) => seed.id)\n\n const { itemVersions: relatedVersions } = await queryClient.fetchQuery({\n queryKey: [`getRelatedVersions${modelName}`],\n queryFn: async () =>\n easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: relatedSeedIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n // Index versions by seedUid\n for (const version of relatedVersions) {\n const existingVersionsForSeedUid =\n relatedVersionsBySeedUid.get(version.refUID) || []\n existingVersionsForSeedUid.push(version)\n relatedVersionsBySeedUid.set(version.refUID, existingVersionsForSeedUid)\n }\n\n // Sort the indexed versions by timeCreated and index the most recent\n for (const [\n seedUid,\n versionsForSeed,\n ] of relatedVersionsBySeedUid.entries()) {\n const versionsForSeedSorted = versionsForSeed.sort(\n (a: Attestation, b: Attestation) => {\n return a.timeCreated - b.timeCreated\n },\n )\n relatedVersionsBySeedUid.set(seedUid, versionsForSeedSorted)\n mostRecentVersionsBySeedUid.set(seedUid, versionsForSeedSorted[0])\n seedUidsByMostRecentVersionUid.set(versionsForSeedSorted[0].id, seedUid)\n }\n\n // Extract the ids of the most recent versions\n const mostRecentVersionIds = Array.from(\n mostRecentVersionsBySeedUid.values(),\n ).map((version) => version.id)\n\n const { allProperties } = await queryClient.fetchQuery({\n queryKey: [`getAllProperties${modelName}`],\n queryFn: async () =>\n easClient.request(GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, {\n where: {\n refUID: {\n in: mostRecentVersionIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n for (const propertyAttestation of allProperties) {\n const seedUidForProperty = seedUidsByMostRecentVersionUid.get(\n propertyAttestation.refUID,\n )\n const existingPropertiesForSeedUid =\n mostRecentPropertiesBySeedUid.get(seedUidForProperty!) || []\n existingPropertiesForSeedUid.push(propertyAttestation)\n mostRecentPropertiesBySeedUid.set(\n seedUidForProperty!,\n existingPropertiesForSeedUid,\n )\n }\n }\n\n _fetchRelatedItems().then(() => {\n sendBack({\n type: 'fetchRelatedItemsSuccess',\n mostRecentPropertiesBySeedUid,\n relatedVersionsBySeedUid,\n relatedProperties,\n schemaUidsByModelName,\n })\n return\n })\n})\n"],"names":["modelsTable"],"mappings":"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"}
1
+ {"version":3,"file":"fetchRelatedItems.js","sources":["../../../../../../src/services/allItems/actors/fetchRelatedItems.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport {\n GET_ALL_PROPERTIES_FOR_ALL_VERSIONS,\n GET_SEED_IDS,\n GET_VERSIONS,\n} from '@/Item/queries'\nimport {\n models as modelsTable,\n modelUids,\n PropertyType,\n} from '@/seedSchema'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport {\n AllItemsMachineContext,\n FromCallbackInput,\n ModelClassType,\n} from '@/types'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eq } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\nexport const fetchRelatedItems = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { ModelClass, modelName } = context\n\n const appDb = BaseDb.getAppDb()\n\n const relatedProperties = new Map<string, PropertyType>()\n const relatedVersionsBySeedUid = new Map<string, Attestation[]>()\n const schemaUidsByModelName = new Map<string, string>()\n const mostRecentVersionsBySeedUid = new Map<string, Attestation>()\n const mostRecentPropertiesBySeedUid = new Map<string, Attestation[]>()\n const seedUidsByMostRecentVersionUid = new Map<string, string>()\n\n const _fetchRelatedItems = async () => {\n // Get related properties\n for (const [propertyName, propertyDef] of Object.entries(\n (ModelClass as ModelClassType).schema,\n )) {\n if (propertyDef && propertyDef.ref && propertyDef.refModelId) {\n relatedProperties.set(propertyName, propertyDef)\n }\n }\n\n const addresses = await getAddressesFromDb(appDb)\n\n // Get the models they point to from sdkConfigDb\n for (const [propertyName, propertyDef] of relatedProperties.entries()) {\n const relatedModelQuery = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.id, propertyDef.refModelId))\n .limit(1)\n\n if (relatedModelQuery && relatedModelQuery.length > 0) {\n const relatedModel = relatedModelQuery[0]\n const relatedModelUid = relatedModel.uid\n // Exclude the current model's schemaUid since we already have its versions\n if (relatedModelUid && relatedModelUid !== ModelClass.schemaUid) {\n schemaUidsByModelName.set(relatedModel.name, relatedModelUid)\n }\n }\n }\n\n const queryKey = [`getRelatedSeedIds${modelName}`]\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemSeedIds: relatedSeedIdAttestations } =\n await queryClient.fetchQuery({\n queryKey,\n queryFn: async () =>\n easClient.request(GET_SEED_IDS, {\n where: {\n schema: {\n is: {\n id: {\n in: Array.from(schemaUidsByModelName.values()),\n },\n },\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n const relatedSeedIds = relatedSeedIdAttestations.map((seed) => seed.id)\n\n const { itemVersions: relatedVersions } = await queryClient.fetchQuery({\n queryKey: [`getRelatedVersions${modelName}`],\n queryFn: async () =>\n easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: relatedSeedIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n // Index versions by seedUid\n for (const version of relatedVersions) {\n const existingVersionsForSeedUid =\n relatedVersionsBySeedUid.get(version.refUID) || []\n existingVersionsForSeedUid.push(version)\n relatedVersionsBySeedUid.set(version.refUID, existingVersionsForSeedUid)\n }\n\n // Sort the indexed versions by timeCreated and index the most recent\n for (const [\n seedUid,\n versionsForSeed,\n ] of relatedVersionsBySeedUid.entries()) {\n const versionsForSeedSorted = versionsForSeed.sort(\n (a: Attestation, b: Attestation) => {\n return a.timeCreated - b.timeCreated\n },\n )\n relatedVersionsBySeedUid.set(seedUid, versionsForSeedSorted)\n mostRecentVersionsBySeedUid.set(seedUid, versionsForSeedSorted[0])\n seedUidsByMostRecentVersionUid.set(versionsForSeedSorted[0].id, seedUid)\n }\n\n // Extract the ids of the most recent versions\n const mostRecentVersionIds = Array.from(\n mostRecentVersionsBySeedUid.values(),\n ).map((version) => version.id)\n\n const { allProperties } = await queryClient.fetchQuery({\n queryKey: [`getAllProperties${modelName}`],\n queryFn: async () =>\n easClient.request(GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, {\n where: {\n refUID: {\n in: mostRecentVersionIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n for (const propertyAttestation of allProperties) {\n const seedUidForProperty = seedUidsByMostRecentVersionUid.get(\n propertyAttestation.refUID,\n )\n const existingPropertiesForSeedUid =\n mostRecentPropertiesBySeedUid.get(seedUidForProperty!) || []\n existingPropertiesForSeedUid.push(propertyAttestation)\n mostRecentPropertiesBySeedUid.set(\n seedUidForProperty!,\n existingPropertiesForSeedUid,\n )\n }\n }\n\n _fetchRelatedItems().then(() => {\n sendBack({\n type: 'fetchRelatedItemsSuccess',\n mostRecentPropertiesBySeedUid,\n relatedVersionsBySeedUid,\n relatedProperties,\n schemaUidsByModelName,\n })\n return\n })\n})\n"],"names":["modelsTable"],"mappings":"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"}
@@ -4,13 +4,12 @@ import pluralize from 'pluralize';
4
4
  import { BaseEasClient } from '../../../helpers/EasClient/BaseEasClient.js';
5
5
  import { BaseQueryClient } from '../../../helpers/QueryClient/BaseQueryClient.js';
6
6
  import { toSnakeCase } from '../../../helpers/index.js';
7
- import '../../../seedSchema/AppStateSchema.js';
7
+ import '../../../seedSchema/SeedSchema.js';
8
+ import '../../../seedSchema/VersionSchema.js';
8
9
  import '../../../seedSchema/MetadataSchema.js';
10
+ import '../../../seedSchema/AppStateSchema.js';
9
11
  import { models } from '../../../seedSchema/ModelSchema.js';
10
12
  import { modelUids } from '../../../seedSchema/ModelUidSchema.js';
11
- import '../../../seedSchema/PropertyUidSchema.js';
12
- import '../../../seedSchema/SeedSchema.js';
13
- import '../../../seedSchema/VersionSchema.js';
14
13
  import { eq } from 'drizzle-orm';
15
14
  import { getAddressesFromDb } from '../../../helpers/db.js';
16
15
  import { eventEmitter } from '../../../eventBus.js';
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sources":["../../../../../../src/services/allItems/actors/initialize.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { GET_SCHEMAS } from '@/Item/queries'\nimport pluralize from 'pluralize'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\nimport { toSnakeCase } from '@/helpers'\nimport {\n models as modelsTable,\n modelUids,\n properties,\n} from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { SchemaWhereInput } from '@/graphql/gql/graphql'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eventEmitter } from '@/eventBus'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\n\n\ntype Times = {\n initialize?: {\n start: number | null\n end: number | null\n }\n fetchDbData?: {\n start: number | null\n end: number | null\n }\n fetchSeeds?: {\n start: number | null\n end: number | null\n }\n fetchVersions?: {\n start: number | null\n end: number | null\n }\n fetchRelatedItems?: {\n start: number | null\n end: number | null\n }\n processItems?: {\n start: number | null\n end: number | null\n }\n}\n\ntype InternalDataType = keyof typeof INTERNAL_DATA_TYPES;\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { modelName, modelAddedToDb, ModelClass, times } = context\n\n const newTimes: Times = {\n initialize: {\n start: Date.now(),\n end: null,\n },\n }\n\n let modelNameLowercase: string | undefined\n let modelNamePlural: string | undefined\n let queryVariables: Record<string, unknown> | undefined\n let appDb\n\n const _initialize = async () => {\n appDb = BaseDb.getAppDb()\n\n // const rows = await getItemsDataFromDb(modelName)\n //\n // if (rows && rows.length > 0) {\n // for (const itemData of rows) {\n // const {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // } = itemData\n //\n // eventEmitter.emit('item.create.request', {\n // itemData: {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // },\n // ModelClass,\n // })\n // }\n // }\n\n modelNameLowercase = modelName.toLowerCase()\n modelNamePlural = pluralize(modelNameLowercase!)\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const modelSchemas = await queryClient.fetchQuery({\n queryKey: [`getSchemas${modelName}`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n equals: `bytes32 ${toSnakeCase(modelName)}`,\n },\n },\n }),\n })\n\n if (\n !modelSchemas ||\n !modelSchemas.schemas ||\n modelSchemas.schemas.length === 0\n ) {\n throw new Error(`No schema found for ${modelName}`)\n }\n\n const modelSchema = modelSchemas.schemas[0]\n\n if (!modelSchema.id) {\n throw new Error(\n `No schema ID found for schema ${JSON.stringify(modelSchema)}`,\n )\n }\n\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n const foundModel = foundModels[0]\n\n if (!foundModel) {\n sendBack({ type: 'modelNotFound', modelName })\n return\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId: foundModel.id,\n uid: modelSchema.id,\n })\n .onConflictDoNothing()\n\n const addresses = await getAddressesFromDb()\n\n queryVariables = {\n where: {\n attester: {\n in: addresses,\n },\n schemaId: {\n equals: modelSchema.id,\n },\n decodedDataJson: {\n contains: modelSchema.id,\n },\n },\n }\n }\n\n const initializeHandler = () => {\n _initialize().then(() => {\n sendBack({\n type: 'initializeSuccess',\n modelName,\n modelNameLowercase,\n modelNamePlural,\n queryVariables,\n })\n newTimes!.initialize!.end = Date.now()\n sendBack({ type: 'updateTimes', times: newTimes })\n })\n }\n\n if (modelAddedToDb) {\n initializeHandler()\n }\n\n const dbReadyHandler = (event) => {\n initializeHandler()\n }\n\n eventEmitter.addListener('allDbsLoaded', dbReadyHandler)\n\n return () => {\n eventEmitter.removeListener('allDbsLoaded', dbReadyHandler)\n }\n})\n"],"names":["modelsTable"],"mappings":"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"}
1
+ {"version":3,"file":"initialize.js","sources":["../../../../../../src/services/allItems/actors/initialize.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { GET_SCHEMAS } from '@/Item/queries'\nimport pluralize from 'pluralize'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\nimport { toSnakeCase } from '@/helpers'\nimport {\n models as modelsTable,\n modelUids,\n properties,\n} from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { SchemaWhereInput } from '@/graphql/gql/graphql'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eventEmitter } from '@/eventBus'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\n\n\ntype Times = {\n initialize?: {\n start: number | null\n end: number | null\n }\n fetchDbData?: {\n start: number | null\n end: number | null\n }\n fetchSeeds?: {\n start: number | null\n end: number | null\n }\n fetchVersions?: {\n start: number | null\n end: number | null\n }\n fetchRelatedItems?: {\n start: number | null\n end: number | null\n }\n processItems?: {\n start: number | null\n end: number | null\n }\n}\n\ntype InternalDataType = keyof typeof INTERNAL_DATA_TYPES;\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { modelName, modelAddedToDb, ModelClass, times } = context\n\n const newTimes: Times = {\n initialize: {\n start: Date.now(),\n end: null,\n },\n }\n\n let modelNameLowercase: string | undefined\n let modelNamePlural: string | undefined\n let queryVariables: Record<string, unknown> | undefined\n let appDb\n\n const _initialize = async () => {\n appDb = BaseDb.getAppDb()\n\n // const rows = await getItemsDataFromDb(modelName)\n //\n // if (rows && rows.length > 0) {\n // for (const itemData of rows) {\n // const {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // } = itemData\n //\n // eventEmitter.emit('item.create.request', {\n // itemData: {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // },\n // ModelClass,\n // })\n // }\n // }\n\n modelNameLowercase = modelName.toLowerCase()\n modelNamePlural = pluralize(modelNameLowercase!)\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const modelSchemas = await queryClient.fetchQuery({\n queryKey: [`getSchemas${modelName}`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n equals: `bytes32 ${toSnakeCase(modelName)}`,\n },\n },\n }),\n })\n\n if (\n !modelSchemas ||\n !modelSchemas.schemas ||\n modelSchemas.schemas.length === 0\n ) {\n throw new Error(`No schema found for ${modelName}`)\n }\n\n const modelSchema = modelSchemas.schemas[0]\n\n if (!modelSchema.id) {\n throw new Error(\n `No schema ID found for schema ${JSON.stringify(modelSchema)}`,\n )\n }\n\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n const foundModel = foundModels[0]\n\n if (!foundModel) {\n sendBack({ type: 'modelNotFound', modelName })\n return\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId: foundModel.id,\n uid: modelSchema.id,\n })\n .onConflictDoNothing()\n\n const addresses = await getAddressesFromDb()\n\n queryVariables = {\n where: {\n attester: {\n in: addresses,\n },\n schemaId: {\n equals: modelSchema.id,\n },\n decodedDataJson: {\n contains: modelSchema.id,\n },\n },\n }\n }\n\n const initializeHandler = () => {\n _initialize().then(() => {\n sendBack({\n type: 'initializeSuccess',\n modelName,\n modelNameLowercase,\n modelNamePlural,\n queryVariables,\n })\n newTimes!.initialize!.end = Date.now()\n sendBack({ type: 'updateTimes', times: newTimes })\n })\n }\n\n if (modelAddedToDb) {\n initializeHandler()\n }\n\n const dbReadyHandler = (event) => {\n initializeHandler()\n }\n\n eventEmitter.addListener('allDbsLoaded', dbReadyHandler)\n\n return () => {\n eventEmitter.removeListener('allDbsLoaded', dbReadyHandler)\n }\n})\n"],"names":["modelsTable"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkStatus.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/checkStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAc7D,eAAO,MAAM,WAAW,oGA6CtB,CAAA"}
1
+ {"version":3,"file":"checkStatus.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/checkStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAa7D,eAAO,MAAM,WAAW,oGAsCtB,CAAA"}
@@ -2,6 +2,7 @@ import { fromCallback } from 'xstate';
2
2
  import { BROWSER_FS_TOP_DIR, DB_CHECK_STATUS_UPDATE_PATHS, DB_CHECK_STATUS_EXISTS, DB_CHECK_STATUS_DOES_NOT_EXIST } from '../../internal/constants.js';
3
3
  import debug from 'debug';
4
4
  import { isBrowser } from '../../../helpers/environment.js';
5
+ import '../../../helpers/index.js';
5
6
  import { BaseFileManager } from '../../../helpers/FileManager/BaseFileManager.js';
6
7
 
7
8
  const logger = debug('seedSdk:services:db:actors:checkStatus');
@@ -21,15 +22,8 @@ const checkStatus = fromCallback(({ sendBack, input: { context, event, } }) => {
21
22
  pathToDbDir,
22
23
  });
23
24
  const _checkStatus = async () => {
24
- logger('_checkStatus pathToDb', pathToDb);
25
- const { rootWithNodeModules } = BaseFileManager.getAppPaths();
26
- const absolutePathToDb = BaseFileManager.joinPaths(rootWithNodeModules, pathToDb);
27
- logger('absolutePathToDb', absolutePathToDb);
28
- // const {} = BaseFileManager.getAppPaths()
29
- const exists = await BaseFileManager.pathExists(absolutePathToDb);
30
- logger('pathToDb exists', exists);
31
- const existsSync = BaseFileManager.pathExistsSync(absolutePathToDb);
32
- logger('pathToDb existsSync', existsSync);
25
+ logger('[db/actors] _checkStatus pathToDb', pathToDb);
26
+ const exists = await BaseFileManager.pathExists(pathToDb);
33
27
  if (exists) {
34
28
  sendBack({
35
29
  type: DB_CHECK_STATUS_EXISTS,
@@ -1 +1 @@
1
- {"version":3,"file":"checkStatus.js","sources":["../../../../../../src/services/db/actors/checkStatus.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n DB_CHECK_STATUS_DOES_NOT_EXIST,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nimport { getFileInfo } from '@/helpers'\n\nconst logger = debug('seedSdk:services:db:actors:checkStatus')\n\nexport const checkStatus = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context, event, } }) => {\n const { dbName, } = context\n let { pathToDir, } = context\n\n\n logger('[db/actors] checkStatus context', context)\n if (isBrowser()) {\n pathToDir = BROWSER_FS_TOP_DIR\n }\n const pathToDbDir = `${pathToDir}/db`\n const pathToDb = `${pathToDbDir}/${dbName}.sqlite3`\n\n sendBack({\n type: DB_CHECK_STATUS_UPDATE_PATHS,\n pathToDb,\n pathToDir,\n pathToDbDir,\n })\n\n const _checkStatus = async (): Promise<void> => {\n logger('_checkStatus pathToDb', pathToDb)\n const {rootWithNodeModules} = BaseFileManager.getAppPaths()\n const absolutePathToDb = BaseFileManager.joinPaths(rootWithNodeModules, pathToDb)\n logger('absolutePathToDb', absolutePathToDb)\n // const {} = BaseFileManager.getAppPaths()\n const exists = await BaseFileManager.pathExists(absolutePathToDb)\n logger('pathToDb exists', exists)\n const existsSync = BaseFileManager.pathExistsSync(absolutePathToDb,)\n logger('pathToDb existsSync', existsSync)\n if (exists) {\n sendBack({\n type: DB_CHECK_STATUS_EXISTS,\n })\n return\n }\n \n sendBack({ type: DB_CHECK_STATUS_DOES_NOT_EXIST })\n }\n\n _checkStatus().then(() => {\n return\n })\n})\n"],"names":[],"mappings":";;;;;;AAaA,MAAM,MAAM,GAAG,KAAK,CAAC,wCAAwC,CAAC;AAEjD,MAAA,WAAW,GAAG,YAAY,CAGrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAI;AAC7C,IAAA,MAAM,EAAE,MAAM,GAAG,GAAG,OAAO;AAC3B,IAAA,IAAI,EAAE,SAAS,GAAG,GAAG,OAAO;AAG5B,IAAA,MAAM,CAAC,iCAAiC,EAAE,OAAO,CAAC;IAClD,IAAI,SAAS,EAAE,EAAE;QACf,SAAS,GAAG,kBAAkB;;AAEhC,IAAA,MAAM,WAAW,GAAG,CAAG,EAAA,SAAS,KAAK;AACrC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,MAAM,UAAU;AAEnD,IAAA,QAAQ,CAAC;AACP,QAAA,IAAI,EAAE,4BAA4B;QAClC,QAAQ;QACR,SAAS;QACT,WAAW;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,YAA0B;AAC7C,QAAA,MAAM,CAAC,uBAAuB,EAAE,QAAQ,CAAC;QACzC,MAAM,EAAC,mBAAmB,EAAC,GAAG,eAAe,CAAC,WAAW,EAAE;QAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC;AACjF,QAAA,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;;QAE5C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC;AACjE,QAAA,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,gBAAgB,CAAE;AACpE,QAAA,MAAM,CAAC,qBAAqB,EAAE,UAAU,CAAC;QACzC,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,sBAAsB;AAC7B,aAAA,CAAC;YACF;;AAGF,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;AACpD,KAAC;AAED,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAK;QACvB;AACF,KAAC,CAAC;AACJ,CAAC;;;;"}
1
+ {"version":3,"file":"checkStatus.js","sources":["../../../../../../src/services/db/actors/checkStatus.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n DB_CHECK_STATUS_DOES_NOT_EXIST,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers'\n\nconst logger = debug('seedSdk:services:db:actors:checkStatus')\n\nexport const checkStatus = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context, event, } }) => {\n const { dbName, } = context\n let { pathToDir, } = context\n\n\n logger('[db/actors] checkStatus context', context)\n if (isBrowser()) {\n pathToDir = BROWSER_FS_TOP_DIR\n }\n const pathToDbDir = `${pathToDir}/db`\n const pathToDb = `${pathToDbDir}/${dbName}.sqlite3`\n\n sendBack({\n type: DB_CHECK_STATUS_UPDATE_PATHS,\n pathToDb,\n pathToDir,\n pathToDbDir,\n })\n\n const _checkStatus = async (): Promise<void> => {\n logger('[db/actors] _checkStatus pathToDb', pathToDb)\n const exists = await BaseFileManager.pathExists(pathToDb)\n if (exists) {\n sendBack({\n type: DB_CHECK_STATUS_EXISTS,\n })\n return\n }\n \n sendBack({ type: DB_CHECK_STATUS_DOES_NOT_EXIST })\n }\n\n _checkStatus().then(() => {\n return\n })\n})\n"],"names":[],"mappings":";;;;;;;AAYA,MAAM,MAAM,GAAG,KAAK,CAAC,wCAAwC,CAAC;AAEjD,MAAA,WAAW,GAAG,YAAY,CAGrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAI;AAC7C,IAAA,MAAM,EAAE,MAAM,GAAG,GAAG,OAAO;AAC3B,IAAA,IAAI,EAAE,SAAS,GAAG,GAAG,OAAO;AAG5B,IAAA,MAAM,CAAC,iCAAiC,EAAE,OAAO,CAAC;IAClD,IAAI,SAAS,EAAE,EAAE;QACf,SAAS,GAAG,kBAAkB;;AAEhC,IAAA,MAAM,WAAW,GAAG,CAAG,EAAA,SAAS,KAAK;AACrC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,MAAM,UAAU;AAEnD,IAAA,QAAQ,CAAC;AACP,QAAA,IAAI,EAAE,4BAA4B;QAClC,QAAQ;QACR,SAAS;QACT,WAAW;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,YAA0B;AAC7C,QAAA,MAAM,CAAC,mCAAmC,EAAE,QAAQ,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzD,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,sBAAsB;AAC7B,aAAA,CAAC;YACF;;AAGF,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;AACpD,KAAC;AAED,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAK;QACvB;AACF,KAAC,CAAC;AACJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAc/E,eAAO,MAAM,OAAO,oGA+ClB,CAAA"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAc/E,eAAO,MAAM,OAAO,oGAwClB,CAAA"}
@@ -11,21 +11,14 @@ const migrate = fromCallback(({ sendBack, input: { context } }) => {
11
11
  logger('[db/actors] migrate context', context);
12
12
  let journalExists = false;
13
13
  const _checkForFiles = async () => {
14
- const journalRelativePath = `${pathToDbDir}/meta/_journal.json`;
15
- const { rootWithNodeModules } = BaseFileManager.getAppPaths();
16
- const journalPath = BaseFileManager.joinPaths(rootWithNodeModules, journalRelativePath);
14
+ const journalPath = `/${pathToDbDir}/meta/_journal.json`;
17
15
  journalExists = await BaseFileManager.pathExists(journalPath);
18
16
  if (!journalExists && isBrowser()) {
19
17
  await BaseFileManager.waitForFile(journalPath);
20
18
  }
21
19
  };
22
20
  const _migrate = async () => {
23
- if (!pathToDbDir) {
24
- throw new Error('pathToDbDir is not defined');
25
- }
26
- const { rootWithNodeModules } = BaseFileManager.getAppPaths();
27
- const absolutePathToDbDir = BaseFileManager.joinPaths(rootWithNodeModules, pathToDbDir);
28
- await BaseDb.migrate(absolutePathToDbDir, dbName);
21
+ await BaseDb.migrate(pathToDbDir, dbName, dbId);
29
22
  };
30
23
  _checkForFiles()
31
24
  .then(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sources":["../../../../../../src/services/db/actors/migrate.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput, SqliteWasmResult } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_MIGRATING_SUCCESS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nconst logger = debug('seedSdk:services:db:actors:migrate')\n\n\n\nexport const migrate = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n const { pathToDbDir, dbId, dbName } = context\n\n logger('[db/actors] migrate context', context)\n\n let journalExists = false\n\n\n const _checkForFiles = async (): Promise<void> => {\n const journalRelativePath = `${pathToDbDir}/meta/_journal.json`\n const {rootWithNodeModules} = BaseFileManager.getAppPaths()\n const journalPath = BaseFileManager.joinPaths(rootWithNodeModules, journalRelativePath)\n\n journalExists = await BaseFileManager.pathExists(journalPath)\n\n if (!journalExists && isBrowser()) {\n await BaseFileManager.waitForFile(journalPath,)\n }\n }\n\n const _migrate = async (): Promise<void> => {\n if (!pathToDbDir) {\n throw new Error('pathToDbDir is not defined')\n }\n const {rootWithNodeModules} = BaseFileManager.getAppPaths()\n const absolutePathToDbDir = BaseFileManager.joinPaths(rootWithNodeModules, pathToDbDir)\n await BaseDb.migrate(absolutePathToDbDir, dbName,)\n }\n\n _checkForFiles()\n .then(() => {\n if (!isBrowser()) {\n return _migrate()\n }\n if (journalExists) {\n return _migrate()\n }\n })\n .then(() => {\n logger('sending db migrating success')\n sendBack({ type: DB_MIGRATING_SUCCESS, dbName })\n })\n\n return () => { }\n})\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,MAAM,GAAG,KAAK,CAAC,oCAAoC,CAAC;AAI7C,MAAA,OAAO,GAAG,YAAY,CAGjC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;AAE7C,IAAA,MAAM,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAE9C,IAAI,aAAa,GAAG,KAAK;AAGzB,IAAA,MAAM,cAAc,GAAG,YAA0B;AAC/C,QAAA,MAAM,mBAAmB,GAAG,CAAG,EAAA,WAAW,qBAAqB;QAC/D,MAAM,EAAC,mBAAmB,EAAC,GAAG,eAAe,CAAC,WAAW,EAAE;QAC3D,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;QAEvF,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;AAE7D,QAAA,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,EAAE;AACjC,YAAA,MAAM,eAAe,CAAC,WAAW,CAAC,WAAW,CAAE;;AAEnD,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,YAA0B;QACzC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;;QAE/C,MAAM,EAAC,mBAAmB,EAAC,GAAG,eAAe,CAAC,WAAW,EAAE;QAC3D,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,WAAW,CAAC;QACvF,MAAM,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAE;AACpD,KAAC;AAED,IAAA,cAAc;SACX,IAAI,CAAC,MAAK;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;YAChB,OAAO,QAAQ,EAAE;;QAEnB,IAAI,aAAa,EAAE;YACjB,OAAO,QAAQ,EAAE;;AAErB,KAAC;SACA,IAAI,CAAC,MAAK;QACT,MAAM,CAAC,8BAA8B,CAAC;QACtC,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;AAClD,KAAC,CAAC;AAEJ,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC;;;;"}
1
+ {"version":3,"file":"migrate.js","sources":["../../../../../../src/services/db/actors/migrate.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput, SqliteWasmResult } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_MIGRATING_SUCCESS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nconst logger = debug('seedSdk:services:db:actors:migrate')\n\n\n\nexport const migrate = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n const { pathToDbDir, dbId, dbName } = context\n\n logger('[db/actors] migrate context', context)\n\n let journalExists = false\n\n\n const _checkForFiles = async (): Promise<void> => {\n const journalPath = `/${pathToDbDir}/meta/_journal.json`\n\n journalExists = await BaseFileManager.pathExists(journalPath)\n\n if (!journalExists && isBrowser()) {\n await BaseFileManager.waitForFile(journalPath,)\n }\n }\n\n const _migrate = async (): Promise<void> => {\n await BaseDb.migrate(pathToDbDir, dbName, dbId)\n }\n\n _checkForFiles()\n .then(() => {\n if (!isBrowser()) {\n return _migrate()\n }\n if (journalExists) {\n return _migrate()\n }\n })\n .then(() => {\n logger('sending db migrating success')\n sendBack({ type: DB_MIGRATING_SUCCESS, dbName })\n })\n\n return () => { }\n})\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,MAAM,GAAG,KAAK,CAAC,oCAAoC,CAAC;AAI7C,MAAA,OAAO,GAAG,YAAY,CAGjC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;AAE7C,IAAA,MAAM,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAE9C,IAAI,aAAa,GAAG,KAAK;AAGzB,IAAA,MAAM,cAAc,GAAG,YAA0B;AAC/C,QAAA,MAAM,WAAW,GAAG,CAAI,CAAA,EAAA,WAAW,qBAAqB;QAExD,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;AAE7D,QAAA,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,EAAE;AACjC,YAAA,MAAM,eAAe,CAAC,WAAW,CAAC,WAAW,CAAE;;AAEnD,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,YAA0B;QACzC,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC;AACjD,KAAC;AAED,IAAA,cAAc;SACX,IAAI,CAAC,MAAK;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;YAChB,OAAO,QAAQ,EAAE;;QAEnB,IAAI,aAAa,EAAE;YACjB,OAAO,QAAQ,EAAE;;AAErB,KAAC;SACA,IAAI,CAAC,MAAK;QACT,MAAM,CAAC,8BAA8B,CAAC;QACtC,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;AAClD,KAAC,CAAC;AAEJ,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"waitForFiles.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/waitForFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAO7D,eAAO,MAAM,YAAY,oGAgCvB,CAAA"}
1
+ {"version":3,"file":"waitForFiles.d.ts","sourceRoot":"","sources":["../../../../../src/services/db/actors/waitForFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAO7D,eAAO,MAAM,YAAY,oGA8BvB,CAAA"}
@@ -4,16 +4,14 @@ import debug from 'debug';
4
4
  import { isBrowser } from '../../../helpers/environment.js';
5
5
  import { BaseFileManager } from '../../../helpers/FileManager/BaseFileManager.js';
6
6
 
7
- const logger = debug('seedSdk:services:db:actors:waitForFiles');
7
+ debug('seedSdk:services:db:actors:waitForFiles');
8
8
  const waitForFiles = fromCallback(({ sendBack, input: { context } }) => {
9
9
  if (!isBrowser()) {
10
- logger('waitForFiles is only available in browser');
11
10
  sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED });
12
11
  return;
13
12
  }
14
13
  const { pathToDbDir } = context;
15
14
  const _waitForFiles = async () => {
16
- logger('starting _waitForFiles');
17
15
  return new Promise((resolve) => {
18
16
  const interval = setInterval(async () => {
19
17
  const journalExists = await BaseFileManager.pathExists(`${pathToDbDir}/meta/_journal.json`);
@@ -1 +1 @@
1
- {"version":3,"file":"waitForFiles.js","sources":["../../../../../../src/services/db/actors/waitForFiles.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport { DB_WAITING_FOR_FILES_RECEIVED } from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nconst logger = debug('seedSdk:services:db:actors:waitForFiles')\n\nexport const waitForFiles = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n\n if (!isBrowser()) {\n logger('waitForFiles is only available in browser')\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n }\n\n const { pathToDbDir } = context\n\n const _waitForFiles = async (): Promise<void> => {\n logger('starting _waitForFiles')\n return new Promise((resolve) => {\n const interval = setInterval(async () => {\n const journalExists = await BaseFileManager.pathExists(\n `${pathToDbDir}/meta/_journal.json`,\n )\n if (journalExists) {\n clearInterval(interval)\n resolve()\n }\n }, 1000)\n })\n }\n\n _waitForFiles().then(() => {\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n })\n})\n"],"names":[],"mappings":";;;;;;AAMA,MAAM,MAAM,GAAG,KAAK,CAAC,yCAAyC,CAAC;AAElD,MAAA,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AAErC,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB,MAAM,CAAC,2CAA2C,CAAC;AACnD,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;;AAGF,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;AAE/B,IAAA,MAAM,aAAa,GAAG,YAA0B;QAC9C,MAAM,CAAC,wBAAwB,CAAC;AAChC,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAW;gBACtC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CACpD,CAAG,EAAA,WAAW,CAAqB,mBAAA,CAAA,CACpC;gBACD,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,IAAI,CAAC;AACV,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;AACF,KAAC,CAAC;AACJ,CAAC;;;;"}
1
+ {"version":3,"file":"waitForFiles.js","sources":["../../../../../../src/services/db/actors/waitForFiles.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport { DB_WAITING_FOR_FILES_RECEIVED } from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nconst logger = debug('seedSdk:services:db:actors:waitForFiles')\n\nexport const waitForFiles = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n\n if (!isBrowser()) {\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n }\n\n const { pathToDbDir } = context\n\n const _waitForFiles = async (): Promise<void> => {\n return new Promise((resolve) => {\n const interval = setInterval(async () => {\n const journalExists = await BaseFileManager.pathExists(\n `${pathToDbDir}/meta/_journal.json`,\n )\n if (journalExists) {\n clearInterval(interval)\n resolve()\n }\n }, 1000)\n })\n }\n\n _waitForFiles().then(() => {\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n })\n})\n"],"names":[],"mappings":";;;;;;AAMe,KAAK,CAAC,yCAAyC;AAEjD,MAAA,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AAErC,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;;AAGF,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;AAE/B,IAAA,MAAM,aAAa,GAAG,YAA0B;AAC9C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAW;gBACtC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CACpD,CAAG,EAAA,WAAW,CAAqB,mBAAA,CAAA,CACpC;gBACD,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,IAAI,CAAC;AACV,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;AACF,KAAC,CAAC;AACJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dbMachine.d.ts","sourceRoot":"","sources":["../../../../src/services/db/dbMachine.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAiB1C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JA8Ib,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"dbMachine.d.ts","sourceRoot":"","sources":["../../../../src/services/db/dbMachine.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAiB1C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JA6Ib,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -27,7 +27,6 @@ const dbMachine = setup({
27
27
  context: ({ input }) => input,
28
28
  on: {
29
29
  [DB_WAITING_FOR_FILES_RECEIVED]: {
30
- target: `.${CHECKING_STATUS}`,
31
30
  actions: assign({
32
31
  hasFiles: ({ event }) => {
33
32
  logger('[db/machine] DB_WAITING_FOR_FILES_RECEIVED event:', event);
@@ -1 +1 @@
1
- {"version":3,"file":"dbMachine.js","sources":["../../../../../src/services/db/dbMachine.ts"],"sourcesContent":["import { assign, setup } from 'xstate'\nimport {\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n DB_CREATING_SUCCESS,\n DB_MIGRATING_SUCCESS,\n DB_MIGRATING_WAIT,\n DB_VALIDATING_SUCCESS,\n DB_VALIDATING_WAIT,\n DB_WAITING_FOR_FILES_RECEIVED,\n DbState,\n MachineIds,\n} from '../internal/constants'\nimport debug from 'debug'\nimport { DbServiceContext } from '@/types'\nimport { checkStatus } from '@/services/db/actors/checkStatus'\nimport { connectToDb } from '@/services/db/actors/connectToDb'\nimport { validate } from '@/services/db/actors/validate'\nimport { migrate } from '@/services/db/actors/migrate'\nimport { waitForFiles } from './actors/waitForFiles'\n\nconst logger = debug('seedSdk:services:db:machine')\n\nconst {\n CHECKING_STATUS,\n VALIDATING,\n WAITING_FOR_FILES,\n CONNECTING_TO_DB,\n MIGRATING,\n} = DbState\n\nconst dbMachine = setup({\n types: {\n context: {} as Partial<DbServiceContext>,\n input: {} as Partial<DbServiceContext> | undefined,\n },\n actors: {\n checkStatus,\n validate,\n connectToDb,\n migrate,\n waitForFiles,\n },\n}).createMachine({\n id: MachineIds.DB,\n initial: CHECKING_STATUS,\n context: ({ input }) => input as DbServiceContext,\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n target: `.${CHECKING_STATUS}`,\n actions: assign({\n hasFiles: ({ event }) => {\n logger('[db/machine] DB_WAITING_FOR_FILES_RECEIVED event:', event)\n return true\n },\n }),\n },\n updateHasFiles: {\n target: `.${CHECKING_STATUS}`,\n actions: assign({\n hasFiles: ({ context, event }) => {\n logger('[db/machine] updateHasFiles event:', event)\n logger('[db/machine] updateHasFiles context:', context)\n return event.hasFiles\n },\n }),\n },\n },\n states: {\n idle: {\n on: {\n start: CHECKING_STATUS,\n },\n meta: {\n displayText: 'DB starting ...',\n percentComplete: 0,\n },\n },\n [CHECKING_STATUS]: {\n on: {\n [DB_CHECK_STATUS_UPDATE_PATHS]: {\n actions: assign({\n pathToDb: ({ event }) => event.pathToDb,\n pathToDir: ({ event }) => event.pathToDir,\n pathToDbDir: ({ event }) => event.pathToDbDir,\n }),\n },\n [DB_CHECK_STATUS_EXISTS]: CONNECTING_TO_DB,\n },\n invoke: {\n src: 'checkStatus',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Checking DB status',\n percentComplete: 60,\n },\n },\n [CONNECTING_TO_DB]: {\n on: {\n [DB_CREATING_SUCCESS]: {\n target: VALIDATING,\n actions: assign({\n dbId: ({ event }) => event.dbId,\n }),\n },\n },\n invoke: {\n src: 'connectToDb',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Connecting to local DB',\n percentComplete: 70,\n },\n },\n [VALIDATING]: {\n on: {\n [DB_VALIDATING_SUCCESS]: {\n target: MIGRATING,\n },\n [DB_VALIDATING_WAIT]: {\n target: WAITING_FOR_FILES,\n },\n },\n invoke: {\n src: 'validate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Validating DB',\n percentComplete: 80,\n },\n },\n [WAITING_FOR_FILES]: {\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n target: MIGRATING,\n actions: assign({\n hasFiles: true,\n }),\n },\n [DB_MIGRATING_SUCCESS]: 'ready',\n },\n invoke: {\n src: 'waitForFiles',\n input: ({ context }) => ({ context }),\n },\n },\n [MIGRATING]: {\n on: {\n [DB_MIGRATING_WAIT]: WAITING_FOR_FILES,\n [DB_MIGRATING_SUCCESS]: {\n target: 'ready',\n },\n },\n invoke: {\n src: 'migrate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Migrating DB',\n percentComplete: 90,\n },\n },\n ready: {\n target: 'idle',\n meta: {\n displayText: 'Wrapping up the db ...',\n percentComplete: 100,\n },\n },\n },\n})\n\nexport { dbMachine }\n"],"names":[],"mappings":";;;;;;;;;AAqBA,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC;AAEnD,MAAM,EACJ,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,GAAG,OAAO;AAEL,MAAA,SAAS,GAAG,KAAK,CAAC;AACtB,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA+B;AACxC,QAAA,KAAK,EAAE,EAA2C;AACnD,KAAA;AACD,IAAA,MAAM,EAAE;QACN,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;QACP,YAAY;AACb,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,EAAE;AACjB,IAAA,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAyB;AACjD,IAAA,EAAE,EAAE;QACF,CAAC,6BAA6B,GAAG;YAC/B,MAAM,EAAE,CAAI,CAAA,EAAA,eAAe,CAAE,CAAA;YAC7B,OAAO,EAAE,MAAM,CAAC;AACd,gBAAA,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAI;AACtB,oBAAA,MAAM,CAAC,mDAAmD,EAAE,KAAK,CAAC;AAClE,oBAAA,OAAO,IAAI;iBACZ;aACF,CAAC;AACH,SAAA;AACD,QAAA,cAAc,EAAE;YACd,MAAM,EAAE,CAAI,CAAA,EAAA,eAAe,CAAE,CAAA;YAC7B,OAAO,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAA,MAAM,CAAC,oCAAoC,EAAE,KAAK,CAAC;AACnD,oBAAA,MAAM,CAAC,sCAAsC,EAAE,OAAO,CAAC;oBACvD,OAAO,KAAK,CAAC,QAAQ;iBACtB;aACF,CAAC;AACH,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE;AACF,gBAAA,KAAK,EAAE,eAAe;AACvB,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,eAAe,EAAE,CAAC;AACnB,aAAA;AACF,SAAA;QACD,CAAC,eAAe,GAAG;AACjB,YAAA,EAAE,EAAE;gBACF,CAAC,4BAA4B,GAAG;oBAC9B,OAAO,EAAE,MAAM,CAAC;wBACd,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ;wBACvC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,WAAW;qBAC9C,CAAC;AACH,iBAAA;gBACD,CAAC,sBAAsB,GAAG,gBAAgB;AAC3C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,aAAa;AAClB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;QACD,CAAC,gBAAgB,GAAG;AAClB,YAAA,EAAE,EAAE;gBACF,CAAC,mBAAmB,GAAG;AACrB,oBAAA,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,MAAM,CAAC;wBACd,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,IAAI;qBAChC,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,aAAa;AAClB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;QACD,CAAC,UAAU,GAAG;AACZ,YAAA,EAAE,EAAE;gBACF,CAAC,qBAAqB,GAAG;AACvB,oBAAA,MAAM,EAAE,SAAS;AAClB,iBAAA;gBACD,CAAC,kBAAkB,GAAG;AACpB,oBAAA,MAAM,EAAE,iBAAiB;AAC1B,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;QACD,CAAC,iBAAiB,GAAG;AACnB,YAAA,EAAE,EAAE;gBACF,CAAC,6BAA6B,GAAG;AAC/B,oBAAA,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,MAAM,CAAC;AACd,wBAAA,QAAQ,EAAE,IAAI;qBACf,CAAC;AACH,iBAAA;gBACD,CAAC,oBAAoB,GAAG,OAAO;AAChC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,cAAc;AACnB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,SAAS,GAAG;AACX,YAAA,EAAE,EAAE;gBACF,CAAC,iBAAiB,GAAG,iBAAiB;gBACtC,CAAC,oBAAoB,GAAG;AACtB,oBAAA,MAAM,EAAE,OAAO;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,eAAe,EAAE,GAAG;AACrB,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"dbMachine.js","sources":["../../../../../src/services/db/dbMachine.ts"],"sourcesContent":["import { assign, setup } from 'xstate'\nimport {\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n DB_CREATING_SUCCESS,\n DB_MIGRATING_SUCCESS,\n DB_MIGRATING_WAIT,\n DB_VALIDATING_SUCCESS,\n DB_VALIDATING_WAIT,\n DB_WAITING_FOR_FILES_RECEIVED,\n DbState,\n MachineIds,\n} from '../internal/constants'\nimport debug from 'debug'\nimport { DbServiceContext } from '@/types'\nimport { checkStatus } from '@/services/db/actors/checkStatus'\nimport { connectToDb } from '@/services/db/actors/connectToDb'\nimport { validate } from '@/services/db/actors/validate'\nimport { migrate } from '@/services/db/actors/migrate'\nimport { waitForFiles } from './actors/waitForFiles'\n\nconst logger = debug('seedSdk:services:db:machine')\n\nconst {\n CHECKING_STATUS,\n VALIDATING,\n WAITING_FOR_FILES,\n CONNECTING_TO_DB,\n MIGRATING,\n} = DbState\n\nconst dbMachine = setup({\n types: {\n context: {} as Partial<DbServiceContext>,\n input: {} as Partial<DbServiceContext> | undefined,\n },\n actors: {\n checkStatus,\n validate,\n connectToDb,\n migrate,\n waitForFiles,\n },\n}).createMachine({\n id: MachineIds.DB,\n initial: CHECKING_STATUS,\n context: ({ input }) => input as DbServiceContext,\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n actions: assign({\n hasFiles: ({ event }) => {\n logger('[db/machine] DB_WAITING_FOR_FILES_RECEIVED event:', event)\n return true\n },\n }),\n },\n updateHasFiles: {\n target: `.${CHECKING_STATUS}`,\n actions: assign({\n hasFiles: ({ context, event }) => {\n logger('[db/machine] updateHasFiles event:', event)\n logger('[db/machine] updateHasFiles context:', context)\n return event.hasFiles\n },\n }),\n },\n },\n states: {\n idle: {\n on: {\n start: CHECKING_STATUS,\n },\n meta: {\n displayText: 'DB starting ...',\n percentComplete: 0,\n },\n },\n [CHECKING_STATUS]: {\n on: {\n [DB_CHECK_STATUS_UPDATE_PATHS]: {\n actions: assign({\n pathToDb: ({ event }) => event.pathToDb,\n pathToDir: ({ event }) => event.pathToDir,\n pathToDbDir: ({ event }) => event.pathToDbDir,\n }),\n },\n [DB_CHECK_STATUS_EXISTS]: CONNECTING_TO_DB,\n },\n invoke: {\n src: 'checkStatus',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Checking DB status',\n percentComplete: 60,\n },\n },\n [CONNECTING_TO_DB]: {\n on: {\n [DB_CREATING_SUCCESS]: {\n target: VALIDATING,\n actions: assign({\n dbId: ({ event }) => event.dbId,\n }),\n },\n },\n invoke: {\n src: 'connectToDb',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Connecting to local DB',\n percentComplete: 70,\n },\n },\n [VALIDATING]: {\n on: {\n [DB_VALIDATING_SUCCESS]: {\n target: MIGRATING,\n },\n [DB_VALIDATING_WAIT]: {\n target: WAITING_FOR_FILES,\n },\n },\n invoke: {\n src: 'validate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Validating DB',\n percentComplete: 80,\n },\n },\n [WAITING_FOR_FILES]: {\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n target: MIGRATING,\n actions: assign({\n hasFiles: true,\n }),\n },\n [DB_MIGRATING_SUCCESS]: 'ready',\n },\n invoke: {\n src: 'waitForFiles',\n input: ({ context }) => ({ context }),\n },\n },\n [MIGRATING]: {\n on: {\n [DB_MIGRATING_WAIT]: WAITING_FOR_FILES,\n [DB_MIGRATING_SUCCESS]: {\n target: 'ready',\n },\n },\n invoke: {\n src: 'migrate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Migrating DB',\n percentComplete: 90,\n },\n },\n ready: {\n target: 'idle',\n meta: {\n displayText: 'Wrapping up the db ...',\n percentComplete: 100,\n },\n },\n },\n})\n\nexport { dbMachine }\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { fromCallback } from 'xstate';
2
- import '../../../seedSchema/AppStateSchema.js';
2
+ import '../../../seedSchema/SeedSchema.js';
3
+ import '../../../seedSchema/VersionSchema.js';
3
4
  import '../../../seedSchema/MetadataSchema.js';
5
+ import '../../../seedSchema/AppStateSchema.js';
4
6
  import { models } from '../../../seedSchema/ModelSchema.js';
5
7
  import { modelUids } from '../../../seedSchema/ModelUidSchema.js';
6
- import '../../../seedSchema/PropertyUidSchema.js';
7
- import '../../../seedSchema/SeedSchema.js';
8
- import '../../../seedSchema/VersionSchema.js';
9
8
  import { eq } from 'drizzle-orm';
10
9
  import { toSnakeCase } from '../../../helpers/index.js';
11
10
  import { BaseDb } from '../../../db/Db/BaseDb.js';
@@ -1 +1 @@
1
- {"version":3,"file":"addModelsToDb.js","sources":["../../../../../../src/services/global/actors/addModelsToDb.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { models as modelsTable, modelUids } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { toSnakeCase, BaseEasClient, BaseQueryClient } from '@/helpers'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { GLOBAL_ADDING_MODELS_TO_DB_SUCCESS } from '@/services/internal/constants'\nimport { eventEmitter } from '@/eventBus'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport debug from 'debug'\nimport { GET_SCHEMAS } from '@/Item/queries'\n\nconst logger = debug('seedSdk:services:global:actors:addModelsToDb')\n\nexport const addModelsToDb = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { models } = context\n\n const _addModelsToDb = async () => {\n const appDb = BaseDb.getAppDb()\n\n if (!models) {\n return\n }\n\n const { models: SeedModels } = await import(\n '@/db/configs/seed.schema.config'\n )\n\n const allModels = {\n ...SeedModels,\n ...models,\n }\n\n let hasModelsInDb = false\n const schemaDefsByModelName = new Map<\n string,\n {\n dbId: number\n schemaDef: string\n }\n >()\n\n for (const [modelName, _] of Object.entries(allModels)) {\n logger(\n '[helpers/db] [addModelsToInternalDb] starting modelName:',\n modelName,\n )\n\n let foundModel\n\n const foundModelsQuery = await appDb\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, modelName))\n\n if (!foundModelsQuery || foundModelsQuery.length === 0) {\n await appDb.insert(modelsTable).values({\n name: modelName,\n })\n\n logger('[global/actors] [addModelsToDb] inserted model:', modelName)\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n foundModel = foundModels[0]\n }\n\n if (foundModelsQuery && foundModelsQuery.length > 0) {\n foundModel = foundModelsQuery[0]\n }\n\n if (!foundModel) {\n hasModelsInDb = false\n break\n }\n\n schemaDefsByModelName.set(modelName, {\n dbId: foundModel.id,\n schemaDef: `bytes32 ${toSnakeCase(modelName)}`,\n })\n }\n\n if (!hasModelsInDb) {\n return false\n }\n\n const schemaDefs = Array.from(schemaDefsByModelName.values()).map(\n ({ schemaDef }) => schemaDef,\n )\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { schemas } = await queryClient.fetchQuery({\n queryKey: [`getSchemasVersion`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n in: schemaDefs,\n },\n },\n }),\n })\n\n if (!schemas || schemas.length === 0) {\n throw new Error(`No schemas found`)\n }\n\n for (const schema of schemas) {\n const modelId = Array.from(schemaDefsByModelName.values()).find(\n ({ schemaDef }) => schemaDef === schema.schema,\n )?.dbId\n\n if (!modelId) {\n throw new Error(`No modelId found for schema ${schema.schema}`)\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId,\n uid: schema.id,\n })\n .onConflictDoNothing()\n }\n }\n\n _addModelsToDb().then((hasModelsInDb) => {\n sendBack({ type: GLOBAL_ADDING_MODELS_TO_DB_SUCCESS })\n if (hasModelsInDb) {\n }\n for (const [modelName, model] of Object.entries(models)) {\n const service = context[`${modelName}Service`]\n service.send({ type: 'modelsFound' })\n }\n eventEmitter.emit('syncDbWithEas')\n return\n })\n\n return () => { }\n})\n"],"names":["models","modelsTable"],"mappings":"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"}
1
+ {"version":3,"file":"addModelsToDb.js","sources":["../../../../../../src/services/global/actors/addModelsToDb.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { models as modelsTable, modelUids } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { toSnakeCase, BaseEasClient, BaseQueryClient } from '@/helpers'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { GLOBAL_ADDING_MODELS_TO_DB_SUCCESS } from '@/services/internal/constants'\nimport { eventEmitter } from '@/eventBus'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport debug from 'debug'\nimport { GET_SCHEMAS } from '@/Item/queries'\n\nconst logger = debug('seedSdk:services:global:actors:addModelsToDb')\n\nexport const addModelsToDb = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { models } = context\n\n const _addModelsToDb = async () => {\n const appDb = BaseDb.getAppDb()\n\n if (!models) {\n return\n }\n\n const { models: SeedModels } = await import(\n '@/db/configs/seed.schema.config'\n )\n\n const allModels = {\n ...SeedModels,\n ...models,\n }\n\n let hasModelsInDb = false\n const schemaDefsByModelName = new Map<\n string,\n {\n dbId: number\n schemaDef: string\n }\n >()\n\n for (const [modelName, _] of Object.entries(allModels)) {\n logger(\n '[helpers/db] [addModelsToInternalDb] starting modelName:',\n modelName,\n )\n\n let foundModel\n\n const foundModelsQuery = await appDb\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, modelName))\n\n if (!foundModelsQuery || foundModelsQuery.length === 0) {\n await appDb.insert(modelsTable).values({\n name: modelName,\n })\n\n logger('[global/actors] [addModelsToDb] inserted model:', modelName)\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n foundModel = foundModels[0]\n }\n\n if (foundModelsQuery && foundModelsQuery.length > 0) {\n foundModel = foundModelsQuery[0]\n }\n\n if (!foundModel) {\n hasModelsInDb = false\n break\n }\n\n schemaDefsByModelName.set(modelName, {\n dbId: foundModel.id,\n schemaDef: `bytes32 ${toSnakeCase(modelName)}`,\n })\n }\n\n if (!hasModelsInDb) {\n return false\n }\n\n const schemaDefs = Array.from(schemaDefsByModelName.values()).map(\n ({ schemaDef }) => schemaDef,\n )\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { schemas } = await queryClient.fetchQuery({\n queryKey: [`getSchemasVersion`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n in: schemaDefs,\n },\n },\n }),\n })\n\n if (!schemas || schemas.length === 0) {\n throw new Error(`No schemas found`)\n }\n\n for (const schema of schemas) {\n const modelId = Array.from(schemaDefsByModelName.values()).find(\n ({ schemaDef }) => schemaDef === schema.schema,\n )?.dbId\n\n if (!modelId) {\n throw new Error(`No modelId found for schema ${schema.schema}`)\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId,\n uid: schema.id,\n })\n .onConflictDoNothing()\n }\n }\n\n _addModelsToDb().then((hasModelsInDb) => {\n sendBack({ type: GLOBAL_ADDING_MODELS_TO_DB_SUCCESS })\n if (hasModelsInDb) {\n }\n for (const [modelName, model] of Object.entries(models)) {\n const service = context[`${modelName}Service`]\n service.send({ type: 'modelsFound' })\n }\n eventEmitter.emit('syncDbWithEas')\n return\n })\n\n return () => { }\n})\n"],"names":["models","modelsTable"],"mappings":"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"}
@@ -1,9 +1,4 @@
1
1
  import { EventObject } from 'xstate';
2
2
  import { FromCallbackInput, GlobalMachineContext } from '@/types';
3
- type InitializeEvent = {
4
- type: 'initialize';
5
- addresses: string[];
6
- };
7
- export declare const initialize: import("xstate").CallbackActorLogic<InitializeEvent, FromCallbackInput<GlobalMachineContext, InitializeEvent>, EventObject>;
8
- export {};
3
+ export declare const initialize: import("xstate").CallbackActorLogic<EventObject, FromCallbackInput<GlobalMachineContext, EventObject>, EventObject>;
9
4
  //# sourceMappingURL=initialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../src/services/global/actors/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqD,MAAM,QAAQ,CAAA;AAQvF,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAQjE,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,UAAU,6HA0FrB,CAAA"}
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../src/services/global/actors/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuC,MAAM,QAAQ,CAAA;AAQzE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAQjE,eAAO,MAAM,UAAU,qHAyFrB,CAAA"}
@@ -3,20 +3,18 @@ import { getEnvironment } from '../../../helpers/environment.js';
3
3
  import { GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY, GLOBAL_INITIALIZING_SEND_CONFIG, GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES } from '../../internal/constants.js';
4
4
  import debug from 'debug';
5
5
  import { BaseDb } from '../../../db/Db/BaseDb.js';
6
- import { appState } from '../../../seedSchema/AppStateSchema.js';
6
+ import '../../../seedSchema/SeedSchema.js';
7
+ import '../../../seedSchema/VersionSchema.js';
7
8
  import '../../../seedSchema/MetadataSchema.js';
9
+ import { appState } from '../../../seedSchema/AppStateSchema.js';
8
10
  import '../../../seedSchema/ModelSchema.js';
9
11
  import '../../../seedSchema/ModelUidSchema.js';
10
- import '../../../seedSchema/PropertyUidSchema.js';
11
- import '../../../seedSchema/SeedSchema.js';
12
- import '../../../seedSchema/VersionSchema.js';
13
12
  import { like } from 'drizzle-orm';
14
13
  import { fetchSchemaUids } from '../../../stores/eas.js';
15
14
 
16
15
  const logger = debug('seedSdk:services:global:actors:initialize');
17
16
  const initialize = fromCallback(({ sendBack, input: { event, context } }) => {
18
- const { internalService, models, endpoints, arweaveDomain, } = context;
19
- const { addresses } = event;
17
+ const { internalService, models, endpoints, arweaveDomain, addresses, } = context;
20
18
  if (!internalService) {
21
19
  throw new Error('internalService is required');
22
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sources":["../../../../../../src/services/global/actors/initialize.ts"],"sourcesContent":["import { EventObject, fromCallback, SnapshotFrom, Subscription, waitFor } from 'xstate'\nimport { getEnvironment } from '@/helpers/environment'\nimport {\n GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY,\n GLOBAL_INITIALIZING_SEND_CONFIG,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { appState } from '@/seedSchema'\nimport { like } from 'drizzle-orm'\nimport { fetchSchemaUids } from '@/stores/eas'\n\nconst logger = debug('seedSdk:services:global:actors:initialize')\n\ntype InitializeEvent = {\n type: 'initialize'\n addresses: string[]\n}\n\nexport const initialize = fromCallback<\n InitializeEvent,\n FromCallbackInput<GlobalMachineContext, InitializeEvent>\n>(({ sendBack, input: { event, context } }) => {\n const { internalService, models, endpoints, arweaveDomain, } = context\n const { addresses } = event!\n\n if (!internalService) {\n throw new Error('internalService is required')\n }\n\n if (!models) {\n throw new Error('models is required')\n }\n\n const environment = getEnvironment()\n let easSubscription: Subscription | undefined\n\n const _initInternal = async (): Promise<void> => {\n internalService.send({\n type: 'init',\n endpoints,\n addresses,\n arweaveDomain,\n })\n await waitFor(internalService, (snapshot: SnapshotFrom<typeof internalService>) => {\n logger('snapshot.value:', snapshot.value)\n return snapshot.value === 'ready'\n })\n logger('[sdk] [internal] sending init')\n }\n\n const _initAllItemsServices = async (): Promise<void> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select()\n .from(appState)\n .where(like(appState.key, 'snapshot__%'))\n\n const payloadObj: {\n create: Record<string, any>,\n restore: Record<string, any>,\n } = {\n create: {},\n restore: {},\n }\n\n const modelNamesRestored: string[] = []\n\n if (rows && rows.length > 0) {\n for (const row of rows) {\n const modelName = row.key.replace('snapshot__', '')\n payloadObj.restore[modelName] = JSON.parse(row.value)\n modelNamesRestored.push(modelName)\n }\n }\n for (const [modelName, ModelClass] of Object.entries(models)) {\n if (!modelNamesRestored.includes(modelName)) {\n payloadObj.create[modelName] = ModelClass\n }\n }\n sendBack({\n type: GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n ...payloadObj,\n })\n }\n\n const _initEas = async (): Promise<void> => {\n await fetchSchemaUids()\n }\n\n _initInternal()\n .then(() => {\n return _initAllItemsServices()\n })\n .then(() => {\n return _initEas()\n })\n .then(() => {\n logger('[global/actors] Internal initialized')\n sendBack({ type: GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY })\n })\n\n\n sendBack({ type: GLOBAL_INITIALIZING_SEND_CONFIG, environment })\n\n return () => {\n easSubscription?.unsubscribe()\n }\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initialize.js","sources":["../../../../../../src/services/global/actors/initialize.ts"],"sourcesContent":["import { EventObject, fromCallback, Subscription, waitFor } from 'xstate'\nimport { getEnvironment } from '@/helpers/environment'\nimport {\n GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY,\n GLOBAL_INITIALIZING_SEND_CONFIG,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { appState } from '@/seedSchema'\nimport { like } from 'drizzle-orm'\nimport { fetchSchemaUids } from '@/stores/eas'\n\nconst logger = debug('seedSdk:services:global:actors:initialize')\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext, EventObject>\n>(({ sendBack, input: { event, context } }) => {\n const { internalService, models, endpoints, arweaveDomain, addresses, } = context\n\n if (!internalService) {\n throw new Error('internalService is required')\n }\n\n if (!models) {\n throw new Error('models is required')\n }\n\n const environment = getEnvironment()\n let easSubscription: Subscription | undefined\n\n const _initInternal = async (): Promise<void> => {\n internalService.send({\n type: 'init',\n endpoints,\n addresses,\n arweaveDomain,\n })\n await waitFor(internalService, (snapshot) => {\n logger('snapshot.value:', snapshot.value)\n return snapshot.value === 'ready'\n })\n logger('[sdk] [internal] sending init')\n }\n\n const _initAllItemsServices = async (): Promise<void> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select()\n .from(appState)\n .where(like(appState.key, 'snapshot__%'))\n\n const payloadObj: {\n create: Record<string, any>,\n restore: Record<string, any>,\n } = {\n create: {},\n restore: {},\n }\n\n const modelNamesRestored: string[] = []\n\n if (rows && rows.length > 0) {\n for (const row of rows) {\n const modelName = row.key.replace('snapshot__', '')\n payloadObj.restore[modelName] = JSON.parse(row.value)\n modelNamesRestored.push(modelName)\n }\n }\n for (const [modelName, ModelClass] of Object.entries(models)) {\n if (!modelNamesRestored.includes(modelName)) {\n payloadObj.create[modelName] = ModelClass\n }\n }\n sendBack({\n type: GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n ...payloadObj,\n })\n }\n\n const _initEas = async (): Promise<void> => {\n await fetchSchemaUids()\n }\n\n _initInternal()\n .then(() => {\n return _initAllItemsServices()\n })\n .then(() => {\n return _initEas()\n })\n .then(() => {\n logger('[global/actors] Internal initialized')\n sendBack({ type: GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY })\n })\n\n\n sendBack({ type: GLOBAL_INITIALIZING_SEND_CONFIG, environment })\n\n return () => {\n easSubscription?.unsubscribe()\n }\n})\n"],"names":[],"mappings":"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"}