@seedprotocol/sdk 0.3.2 → 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.
- package/dist/bin.js +28 -126
- package/dist/bin.js.map +1 -1
- package/dist/main.js +15 -24
- package/dist/main.js.map +1 -1
- package/dist/src/Item/BaseItem.js +309 -0
- package/dist/src/Item/BaseItem.js.map +1 -0
- package/dist/src/Item/index.js +4 -0
- package/dist/src/Item/index.js.map +1 -0
- package/dist/src/Item/queries.js +94 -0
- package/dist/src/Item/queries.js.map +1 -0
- package/dist/src/Item/service/actors/fetchDataFromEas.js +74 -0
- package/dist/src/Item/service/actors/fetchDataFromEas.js.map +1 -0
- package/dist/src/Item/service/actors/hydrateExistingItem.js +119 -0
- package/dist/src/Item/service/actors/hydrateExistingItem.js.map +1 -0
- package/dist/src/Item/service/actors/hydrateNewItem.js +28 -0
- package/dist/src/Item/service/actors/hydrateNewItem.js.map +1 -0
- package/dist/src/Item/service/actors/initialize.js +39 -0
- package/dist/src/Item/service/actors/initialize.js.map +1 -0
- package/dist/src/Item/service/actors/reload.js +26 -0
- package/dist/src/Item/service/actors/reload.js.map +1 -0
- package/dist/src/Item/service/actors/waitForDb.js +22 -0
- package/dist/src/Item/service/actors/waitForDb.js.map +1 -0
- package/dist/src/Item/service/itemMachineSingle.js +154 -0
- package/dist/src/Item/service/itemMachineSingle.js.map +1 -0
- package/dist/src/ItemProperty/BaseItemProperty.d.ts.map +1 -1
- package/dist/src/ItemProperty/BaseItemProperty.js +306 -0
- package/dist/src/ItemProperty/BaseItemProperty.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.js +196 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/initialize.js +60 -0
- package/dist/src/ItemProperty/service/actors/initialize.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/resolveRelatedValue.js +317 -0
- package/dist/src/ItemProperty/service/actors/resolveRelatedValue.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js +62 -0
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.js +100 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.js +178 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js +117 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.js +81 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.js.map +1 -0
- package/dist/src/ItemProperty/service/actors/waitForDb.js +22 -0
- package/dist/src/ItemProperty/service/actors/waitForDb.js.map +1 -0
- package/dist/src/ItemProperty/service/propertyMachine.js +198 -0
- package/dist/src/ItemProperty/service/propertyMachine.js.map +1 -0
- package/dist/src/browser/Item/Item.js +11 -0
- package/dist/src/browser/Item/Item.js.map +1 -0
- package/dist/src/browser/Item/index.js +2 -0
- package/dist/src/browser/Item/index.js.map +1 -0
- package/dist/src/browser/ItemProperty/ItemProperty.js +11 -0
- package/dist/src/browser/ItemProperty/ItemProperty.js.map +1 -0
- package/dist/src/browser/db/Db.d.ts +10 -5
- package/dist/src/browser/db/Db.d.ts.map +1 -1
- package/dist/src/browser/db/Db.js +218 -0
- package/dist/src/browser/db/Db.js.map +1 -0
- package/dist/src/browser/db/sqlWasmClient.d.ts +0 -12
- package/dist/src/browser/db/sqlWasmClient.d.ts.map +1 -1
- package/dist/{ArweaveClient-C0g0es2v.js → src/browser/helpers/ArweaveClient.js} +3 -3
- package/dist/{ArweaveClient-C0g0es2v.js.map → src/browser/helpers/ArweaveClient.js.map} +1 -1
- package/dist/src/browser/helpers/FileManager.d.ts +2 -0
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/browser/helpers/FileManager.js +308 -0
- package/dist/src/browser/helpers/FileManager.js.map +1 -0
- package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -1
- package/dist/{QueryClient-hzOtFe99.js → src/browser/helpers/QueryClient.js} +2 -5
- package/dist/src/browser/helpers/QueryClient.js.map +1 -0
- package/dist/src/browser/index.d.ts +2 -1
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/react/db.js +6 -0
- package/dist/src/browser/react/db.js.map +1 -0
- package/dist/src/browser/react/item.js +260 -0
- package/dist/src/browser/react/item.js.map +1 -0
- package/dist/src/browser/react/property.js +107 -0
- package/dist/src/browser/react/property.js.map +1 -0
- package/dist/src/browser/react/services.d.ts.map +1 -1
- package/dist/src/browser/react/services.js +299 -0
- package/dist/src/browser/react/services.js.map +1 -0
- package/dist/src/browser/react/trash.js +25 -0
- package/dist/src/browser/react/trash.js.map +1 -0
- package/dist/src/browser/workers/FileDownloader.js +49 -0
- package/dist/src/browser/workers/FileDownloader.js.map +1 -0
- package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -1
- package/dist/src/browser/workers/ImageResizer.js +62 -0
- package/dist/src/browser/workers/ImageResizer.js.map +1 -0
- package/dist/src/browser/workers/dbWorker.d.ts +1 -0
- package/dist/src/browser/workers/dbWorker.d.ts.map +1 -0
- package/dist/src/browser/workers/filesDownload.js +241 -0
- package/dist/src/browser/workers/filesDownload.js.map +1 -0
- package/dist/src/browser/workers/imageResize.js +379 -0
- package/dist/src/browser/workers/imageResize.js.map +1 -0
- package/dist/src/client/ClientManager.d.ts +12 -12
- package/dist/src/client/ClientManager.d.ts.map +1 -1
- package/dist/src/client/ClientManager.js +59 -0
- package/dist/src/client/ClientManager.js.map +1 -0
- package/dist/src/client/actions/setAddresses.js +19 -0
- package/dist/src/client/actions/setAddresses.js.map +1 -0
- package/dist/src/client/actors/initialize.d.ts.map +1 -1
- package/dist/src/client/actors/initialize.js +84 -0
- package/dist/src/client/actors/initialize.js.map +1 -0
- package/dist/src/client/actors/saveAppState.js +44 -0
- package/dist/src/client/actors/saveAppState.js.map +1 -0
- package/dist/src/client/clientManagerMachine.js +61 -0
- package/dist/src/client/clientManagerMachine.js.map +1 -0
- package/dist/src/db/Db/BaseDb.d.ts +1 -2
- package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
- package/dist/src/db/Db/BaseDb.js +22 -0
- package/dist/src/db/Db/BaseDb.js.map +1 -0
- package/dist/{seed.schema.config-DzDX8e7g.js → src/db/configs/seed.schema.config.js} +3 -25
- package/dist/src/db/configs/seed.schema.config.js.map +1 -0
- package/dist/src/db/read/getExistingItem.js +29 -0
- package/dist/src/db/read/getExistingItem.js.map +1 -0
- package/dist/src/db/read/getItem.js +26 -0
- package/dist/src/db/read/getItem.js.map +1 -0
- package/dist/src/db/read/getItemData.js +84 -0
- package/dist/src/db/read/getItemData.js.map +1 -0
- package/dist/src/db/read/getItemProperties.js +49 -0
- package/dist/src/db/read/getItemProperties.js.map +1 -0
- package/dist/src/db/read/getItemProperty.js +30 -0
- package/dist/src/db/read/getItemProperty.js.map +1 -0
- package/dist/src/db/read/getItems.js +49 -0
- package/dist/src/db/read/getItems.js.map +1 -0
- package/dist/src/db/read/getMetadata.js +32 -0
- package/dist/src/db/read/getMetadata.js.map +1 -0
- package/dist/src/db/read/getModelSchemas.js +69 -0
- package/dist/src/db/read/getModelSchemas.js.map +1 -0
- package/dist/src/db/read/getPropertyData.js +38 -0
- package/dist/src/db/read/getPropertyData.js.map +1 -0
- package/dist/src/db/read/getPublishPayload.js +213 -0
- package/dist/src/db/read/getPublishPayload.js.map +1 -0
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
- package/dist/src/db/read/getPublishUploads.js +134 -0
- package/dist/src/db/read/getPublishUploads.js.map +1 -0
- package/dist/src/db/read/getRelationValueData.js +30 -0
- package/dist/src/db/read/getRelationValueData.js.map +1 -0
- package/dist/src/db/read/getSchemaUidForModel.js +28 -0
- package/dist/src/db/read/getSchemaUidForModel.js.map +1 -0
- package/dist/src/db/read/getSeedData.js +28 -0
- package/dist/src/db/read/getSeedData.js.map +1 -0
- package/dist/src/db/read/getStorageTransactionIdForSeedUid.js +30 -0
- package/dist/src/db/read/getStorageTransactionIdForSeedUid.js.map +1 -0
- package/dist/src/db/read/getVersionData.js +33 -0
- package/dist/src/db/read/getVersionData.js.map +1 -0
- package/dist/src/db/read/subqueries/metadataLatest.js +35 -0
- package/dist/src/db/read/subqueries/metadataLatest.js.map +1 -0
- package/dist/src/db/read/subqueries/versionData.js +27 -0
- package/dist/src/db/read/subqueries/versionData.js.map +1 -0
- package/dist/src/db/write/createMetadata.d.ts.map +1 -1
- package/dist/src/db/write/createMetadata.js +63 -0
- package/dist/src/db/write/createMetadata.js.map +1 -0
- package/dist/src/db/write/createNewItem.js +38 -0
- package/dist/src/db/write/createNewItem.js.map +1 -0
- package/dist/src/db/write/createSeed.js +29 -0
- package/dist/src/db/write/createSeed.js.map +1 -0
- package/dist/src/db/write/createSeeds.js +25 -0
- package/dist/src/db/write/createSeeds.js.map +1 -0
- package/dist/src/db/write/createVersion.js +25 -0
- package/dist/src/db/write/createVersion.js.map +1 -0
- package/dist/src/db/write/deleteItem.js +21 -0
- package/dist/src/db/write/deleteItem.js.map +1 -0
- package/dist/src/db/write/saveAppState.js +26 -0
- package/dist/src/db/write/saveAppState.js.map +1 -0
- package/dist/src/db/write/saveMetadata.js +22 -0
- package/dist/src/db/write/saveMetadata.js.map +1 -0
- package/dist/src/db/write/updateItemPropertyValue.js +161 -0
- package/dist/src/db/write/updateItemPropertyValue.js.map +1 -0
- package/dist/src/db/write/updateMetadata.js +25 -0
- package/dist/src/db/write/updateMetadata.js.map +1 -0
- package/dist/src/eventBus.js +6 -0
- package/dist/src/eventBus.js.map +1 -0
- package/dist/src/events/files/download.js +161 -0
- package/dist/src/events/files/download.js.map +1 -0
- package/dist/src/events/files/index.d.ts.map +1 -1
- package/dist/src/events/files/index.js +61 -0
- package/dist/src/events/files/index.js.map +1 -0
- package/dist/src/events/index.js +28 -0
- package/dist/src/events/index.js.map +1 -0
- package/dist/src/events/item/index.js +28 -0
- package/dist/src/events/item/index.js.map +1 -0
- package/dist/src/events/item/publish.js +19 -0
- package/dist/src/events/item/publish.js.map +1 -0
- package/dist/src/events/item/syncDbWithEas.js +428 -0
- package/dist/src/events/item/syncDbWithEas.js.map +1 -0
- package/dist/src/events/services/allItems.js +20 -0
- package/dist/src/events/services/allItems.js.map +1 -0
- package/dist/src/events/services/index.js +9 -0
- package/dist/src/events/services/index.js.map +1 -0
- package/dist/src/graphql/gql/gql.js +38 -0
- package/dist/src/graphql/gql/gql.js.map +1 -0
- package/dist/src/graphql/gql/graphql.js +106 -0
- package/dist/src/graphql/gql/graphql.js.map +1 -0
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.js +11 -0
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.js.map +1 -0
- package/dist/src/helpers/ArweaveClient/index.js +45 -0
- package/dist/src/helpers/ArweaveClient/index.js.map +1 -0
- package/dist/src/helpers/ArweaveClient/queries.js +16 -0
- package/dist/src/helpers/ArweaveClient/queries.js.map +1 -0
- package/dist/src/helpers/EasClient/BaseEasClient.js +14 -0
- package/dist/src/helpers/EasClient/BaseEasClient.js.map +1 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +3 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/BaseFileManager.js +55 -0
- package/dist/src/helpers/FileManager/BaseFileManager.js.map +1 -0
- package/dist/src/helpers/QueryClient/BaseQueryClient.js +11 -0
- package/dist/src/helpers/QueryClient/BaseQueryClient.js.map +1 -0
- package/dist/src/helpers/constants.js +73 -0
- package/dist/src/helpers/constants.js.map +1 -0
- package/dist/src/helpers/db.js +43 -0
- package/dist/src/helpers/db.js.map +1 -0
- package/dist/src/helpers/environment.js +24 -0
- package/dist/src/helpers/environment.js.map +1 -0
- package/dist/src/helpers/files.d.ts.map +1 -1
- package/dist/src/helpers/getSchemaForItemProperty.js +51 -0
- package/dist/src/helpers/getSchemaForItemProperty.js.map +1 -0
- package/dist/src/helpers/getSegmentedItemProperties.js +50 -0
- package/dist/src/helpers/getSegmentedItemProperties.js.map +1 -0
- package/dist/src/helpers/index.d.ts.map +1 -1
- package/dist/src/helpers/index.js +101 -0
- package/dist/src/helpers/index.js.map +1 -0
- package/dist/src/helpers/updateMachineContext.js +20 -0
- package/dist/src/helpers/updateMachineContext.js.map +1 -0
- package/dist/src/index.d.ts +1 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interfaces/IDb.d.ts.map +1 -1
- package/dist/src/node/codegen/drizzle.d.ts.map +1 -1
- package/dist/src/node/codegen/drizzle.js +58 -0
- package/dist/src/node/codegen/drizzle.js.map +1 -0
- package/dist/src/node/constants.js +29 -0
- package/dist/src/node/constants.js.map +1 -0
- package/dist/src/node/db/Db.d.ts +5 -6
- package/dist/src/node/db/Db.d.ts.map +1 -1
- package/dist/{ArweaveClient-CzkBgiZY.js → src/node/helpers/ArweaveClient.js} +3 -3
- package/dist/{ArweaveClient-CzkBgiZY.js.map → src/node/helpers/ArweaveClient.js.map} +1 -1
- package/dist/{EasClient-DQ93i2ci.js → src/node/helpers/EasClient.js} +3 -3
- package/dist/{EasClient-DQ93i2ci.js.map → src/node/helpers/EasClient.js.map} +1 -1
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
- package/dist/{QueryClient-Bmnv_moN.js → src/node/helpers/QueryClient.js} +2 -4
- package/dist/{QueryClient-Bmnv_moN.js.map → src/node/helpers/QueryClient.js.map} +1 -1
- package/dist/src/node/helpers/index.d.ts.map +1 -1
- package/dist/src/node/helpers/index.js +28 -0
- package/dist/src/node/helpers/index.js.map +1 -0
- package/dist/src/node/seed.d.ts +0 -6
- package/dist/src/node/seed.d.ts.map +1 -1
- package/dist/src/node/webpack/index.d.ts.map +1 -1
- package/dist/src/node/webpack/index.js +89 -0
- package/dist/src/node/webpack/index.js.map +1 -0
- package/dist/src/schema/file/fetchAll/actors.d.ts.map +1 -1
- package/dist/src/schema/file/queries.js +48 -0
- package/dist/src/schema/file/queries.js.map +1 -0
- package/dist/src/schema/model/index.js +44 -0
- package/dist/src/schema/model/index.js.map +1 -0
- package/dist/src/schema/property/index.js +82 -0
- package/dist/src/schema/property/index.js.map +1 -0
- package/dist/src/seedSchema/AppStateSchema.js +11 -0
- package/dist/src/seedSchema/AppStateSchema.js.map +1 -0
- package/dist/src/seedSchema/MetadataSchema.js +29 -0
- package/dist/src/seedSchema/MetadataSchema.js.map +1 -0
- package/dist/src/seedSchema/ModelSchema.js +33 -0
- package/dist/src/seedSchema/ModelSchema.js.map +1 -0
- package/dist/src/seedSchema/ModelUidSchema.js +18 -0
- package/dist/src/seedSchema/ModelUidSchema.js.map +1 -0
- package/dist/src/seedSchema/SeedSchema.js +16 -0
- package/dist/src/seedSchema/SeedSchema.js.map +1 -0
- package/dist/src/seedSchema/VersionSchema.js +17 -0
- package/dist/src/seedSchema/VersionSchema.js.map +1 -0
- package/dist/src/services/allItems/actors/fetchDbData.js +13 -0
- package/dist/src/services/allItems/actors/fetchDbData.js.map +1 -0
- package/dist/src/services/allItems/actors/fetchRelatedItems.js +137 -0
- package/dist/src/services/allItems/actors/fetchRelatedItems.js.map +1 -0
- package/dist/src/services/allItems/actors/fetchSeeds.js +31 -0
- package/dist/src/services/allItems/actors/fetchSeeds.js.map +1 -0
- package/dist/src/services/allItems/actors/fetchVersions.js +35 -0
- package/dist/src/services/allItems/actors/fetchVersions.js.map +1 -0
- package/dist/src/services/allItems/actors/initialize.js +144 -0
- package/dist/src/services/allItems/actors/initialize.js.map +1 -0
- package/dist/src/services/allItems/actors/processItems.js +55 -0
- package/dist/src/services/allItems/actors/processItems.js.map +1 -0
- package/dist/src/services/allItems/itemMachineAll.js +153 -0
- package/dist/src/services/allItems/itemMachineAll.js.map +1 -0
- package/dist/src/services/db/actors/checkStatus.d.ts.map +1 -1
- package/dist/src/services/db/actors/checkStatus.js +41 -0
- package/dist/src/services/db/actors/checkStatus.js.map +1 -0
- package/dist/src/services/db/actors/connectToDb.d.ts.map +1 -1
- package/dist/src/services/db/actors/connectToDb.js +31 -0
- package/dist/src/services/db/actors/connectToDb.js.map +1 -0
- package/dist/src/services/db/actors/migrate.d.ts.map +1 -1
- package/dist/src/services/db/actors/migrate.js +40 -0
- package/dist/src/services/db/actors/migrate.js.map +1 -0
- package/dist/src/services/db/actors/validate.d.ts.map +1 -1
- package/dist/src/services/db/actors/validate.js +40 -0
- package/dist/src/services/db/actors/validate.js.map +1 -0
- package/dist/src/services/db/actors/waitForFiles.d.ts.map +1 -1
- package/dist/src/services/db/actors/waitForFiles.js +32 -0
- package/dist/src/services/db/actors/waitForFiles.js.map +1 -0
- package/dist/src/services/db/dbMachine.d.ts.map +1 -1
- package/dist/src/services/db/dbMachine.js +156 -0
- package/dist/src/services/db/dbMachine.js.map +1 -0
- package/dist/src/services/events.js +15 -0
- package/dist/src/services/events.js.map +1 -0
- package/dist/src/services/global/actors/addModelsToDb.js +115 -0
- package/dist/src/services/global/actors/addModelsToDb.js.map +1 -0
- package/dist/src/services/global/actors/getSchemaForModel.js +26 -0
- package/dist/src/services/global/actors/getSchemaForModel.js.map +1 -0
- package/dist/src/services/global/actors/initialize.d.ts.map +1 -1
- package/dist/src/services/global/actors/initialize.js +86 -0
- package/dist/src/services/global/actors/initialize.js.map +1 -0
- package/dist/src/services/global/actors/savePublishService.js +22 -0
- package/dist/src/services/global/actors/savePublishService.js.map +1 -0
- package/dist/src/services/global/globalMachine.d.ts +90 -90
- package/dist/src/services/global/globalMachine.d.ts.map +1 -1
- package/dist/src/services/global/globalMachine.js +246 -0
- package/dist/src/services/global/globalMachine.js.map +1 -0
- package/dist/src/services/internal/actors/configureFs.d.ts.map +1 -1
- package/dist/src/services/internal/actors/configureFs.js +70 -0
- package/dist/src/services/internal/actors/configureFs.js.map +1 -0
- package/dist/src/services/internal/actors/loadAppDb.d.ts.map +1 -1
- package/dist/src/services/internal/actors/loadAppDb.js +22 -0
- package/dist/src/services/internal/actors/loadAppDb.js.map +1 -0
- package/dist/src/services/internal/actors/prepareDb.d.ts.map +1 -1
- package/dist/src/services/internal/actors/saveConfig.js +88 -0
- package/dist/src/services/internal/actors/saveConfig.js.map +1 -0
- package/dist/src/services/internal/actors/validateInput.js +34 -0
- package/dist/src/services/internal/actors/validateInput.js.map +1 -0
- package/dist/src/services/internal/actors/waitForFiles.js +33 -0
- package/dist/src/services/internal/actors/waitForFiles.js.map +1 -0
- package/dist/src/services/internal/constants.js +85 -0
- package/dist/src/services/internal/constants.js.map +1 -0
- package/dist/src/services/internal/helpers.d.ts.map +1 -1
- package/dist/src/services/internal/helpers.js +171 -0
- package/dist/src/services/internal/helpers.js.map +1 -0
- package/dist/src/services/internal/internalMachine.d.ts +0 -10
- package/dist/src/services/internal/internalMachine.d.ts.map +1 -1
- package/dist/src/services/internal/internalMachine.js +188 -0
- package/dist/src/services/internal/internalMachine.js.map +1 -0
- package/dist/src/services/publish/actors/createPublishAttempt.js +14 -0
- package/dist/src/services/publish/actors/createPublishAttempt.js.map +1 -0
- package/dist/src/services/publish/actors/preparePublishRequestData.js +70 -0
- package/dist/src/services/publish/actors/preparePublishRequestData.js.map +1 -0
- package/dist/src/services/publish/actors/upload.js +55 -0
- package/dist/src/services/publish/actors/upload.js.map +1 -0
- package/dist/src/services/publish/actors/validateItemData.js +18 -0
- package/dist/src/services/publish/actors/validateItemData.js.map +1 -0
- package/dist/src/services/publish/publishMachine.js +71 -0
- package/dist/src/services/publish/publishMachine.js.map +1 -0
- package/dist/src/stores/eas.js +40 -0
- package/dist/src/stores/eas.js.map +1 -0
- package/dist/src/stores/modelClass.js +16 -0
- package/dist/src/stores/modelClass.js.map +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +7 -6
- package/dist/Db-Bn2_MKKq.js +0 -82
- package/dist/Db-Bn2_MKKq.js.map +0 -1
- package/dist/Db-DL9szGvt.js +0 -385
- package/dist/Db-DL9szGvt.js.map +0 -1
- package/dist/EasClient-B9a3NsTi.js +0 -10
- package/dist/EasClient-B9a3NsTi.js.map +0 -1
- package/dist/FileManager-Gci1k5HJ.js +0 -50
- package/dist/FileManager-Gci1k5HJ.js.map +0 -1
- package/dist/Item-CUQ8wILT.js +0 -35
- package/dist/Item-CUQ8wILT.js.map +0 -1
- package/dist/ItemProperty-DjGDsSEN.js +0 -34
- package/dist/ItemProperty-DjGDsSEN.js.map +0 -1
- package/dist/QueryClient-hzOtFe99.js.map +0 -1
- package/dist/constants-Bhl5dZpN.js +0 -227
- package/dist/constants-Bhl5dZpN.js.map +0 -1
- package/dist/index-DJjmh3u9.js +0 -8934
- package/dist/index-DJjmh3u9.js.map +0 -1
- package/dist/index-DtB4Tlwd.js +0 -26
- package/dist/index-DtB4Tlwd.js.map +0 -1
- package/dist/seed.schema.config-DzDX8e7g.js.map +0 -1
- package/dist/src/browser/db/index.d.ts +0 -2
- package/dist/src/browser/db/index.d.ts.map +0 -1
- package/dist/src/db/Db/index.d.ts +0 -5
- package/dist/src/db/Db/index.d.ts.map +0 -1
- package/dist/src/helpers/EasClient/index.d.ts +0 -5
- package/dist/src/helpers/EasClient/index.d.ts.map +0 -1
- package/dist/src/helpers/FileManager/index.d.ts +0 -5
- package/dist/src/helpers/FileManager/index.d.ts.map +0 -1
- package/dist/src/helpers/QueryClient/index.d.ts +0 -5
- package/dist/src/helpers/QueryClient/index.d.ts.map +0 -1
- package/dist/src/node/index.d.ts +0 -2
- package/dist/src/node/index.d.ts.map +0 -1
- package/dist/src/services/global/index.d.ts +0 -2
- package/dist/src/services/global/index.d.ts.map +0 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { createActor, waitFor } from 'xstate';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { immerable } from 'immer';
|
|
4
|
+
import { getModel } from '../stores/modelClass.js';
|
|
5
|
+
import { propertyMachine } from './service/propertyMachine.js';
|
|
6
|
+
import { internalPropertyNames } from '../helpers/constants.js';
|
|
7
|
+
import debug from 'debug';
|
|
8
|
+
import pluralize from 'pluralize';
|
|
9
|
+
import { getPropertyData } from '../db/read/getPropertyData.js';
|
|
10
|
+
import { getCorrectId } from '../helpers/index.js';
|
|
11
|
+
import { BaseFileManager } from '../helpers/FileManager/BaseFileManager.js';
|
|
12
|
+
|
|
13
|
+
var _a;
|
|
14
|
+
const logger = debug('seedSdk:property:class');
|
|
15
|
+
class BaseItemProperty {
|
|
16
|
+
constructor(initialValues) {
|
|
17
|
+
this._isRelation = false;
|
|
18
|
+
this._isList = false;
|
|
19
|
+
this[_a] = true;
|
|
20
|
+
const { modelName, propertyName, propertyValue, seedLocalId, seedUid, versionLocalId, versionUid, storageTransactionId, schemaUid } = initialValues;
|
|
21
|
+
if (!modelName) {
|
|
22
|
+
throw new Error('Model name is required');
|
|
23
|
+
}
|
|
24
|
+
const ModelClass = getModel(modelName);
|
|
25
|
+
if (!ModelClass) {
|
|
26
|
+
throw new Error(`Model ${modelName} not found`);
|
|
27
|
+
}
|
|
28
|
+
if (!propertyName) {
|
|
29
|
+
throw new Error(`Property name not provided`);
|
|
30
|
+
}
|
|
31
|
+
const serviceInput = {
|
|
32
|
+
propertyValue,
|
|
33
|
+
propertyName,
|
|
34
|
+
seedLocalId,
|
|
35
|
+
seedUid,
|
|
36
|
+
versionLocalId,
|
|
37
|
+
versionUid,
|
|
38
|
+
modelName: modelName,
|
|
39
|
+
storageTransactionId,
|
|
40
|
+
propertyRecordSchema: ModelClass.schema[propertyName],
|
|
41
|
+
schemaUid,
|
|
42
|
+
};
|
|
43
|
+
if (!internalPropertyNames.includes(propertyName)) {
|
|
44
|
+
let propertyNameWithoutId;
|
|
45
|
+
const propertyRecordSchema = ModelClass.schema[propertyName];
|
|
46
|
+
if (propertyRecordSchema) {
|
|
47
|
+
this._dataType = propertyRecordSchema.dataType;
|
|
48
|
+
serviceInput.propertyRecordSchema = propertyRecordSchema;
|
|
49
|
+
if (propertyRecordSchema.dataType === 'Relation') {
|
|
50
|
+
this._isRelation = true;
|
|
51
|
+
}
|
|
52
|
+
if (propertyRecordSchema.dataType === 'List' &&
|
|
53
|
+
propertyRecordSchema.ref) {
|
|
54
|
+
this._isList = true;
|
|
55
|
+
this._isRelation = true;
|
|
56
|
+
if (propertyValue) {
|
|
57
|
+
try {
|
|
58
|
+
serviceInput.propertyValue = JSON.parse(propertyValue);
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
logger('List property value is not JSON', e);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const propertyNameSingular = pluralize(propertyName, 1);
|
|
65
|
+
this._alias = propertyName;
|
|
66
|
+
serviceInput.propertyName = `${propertyNameSingular}${propertyRecordSchema.ref}Ids`;
|
|
67
|
+
}
|
|
68
|
+
if (!this._alias && propertyNameWithoutId) ;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
serviceInput.isRelation = this._isRelation;
|
|
72
|
+
this._subject = new BehaviorSubject(propertyValue);
|
|
73
|
+
this._service = createActor(propertyMachine, {
|
|
74
|
+
input: serviceInput,
|
|
75
|
+
});
|
|
76
|
+
this._subscription = this._service.subscribe(async (snapshot) => {
|
|
77
|
+
if (!snapshot || !snapshot.context) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const { context } = snapshot;
|
|
81
|
+
const { propertyRecordSchema } = context;
|
|
82
|
+
if (context.seedLocalId) {
|
|
83
|
+
const cacheKey = BaseItemProperty.cacheKey(context.seedLocalId, context.propertyName);
|
|
84
|
+
if (!BaseItemProperty.instanceCache.has(cacheKey)) {
|
|
85
|
+
BaseItemProperty.instanceCache.set(cacheKey, {
|
|
86
|
+
instance: this,
|
|
87
|
+
refCount: 1,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
let renderValue;
|
|
92
|
+
if (propertyRecordSchema &&
|
|
93
|
+
propertyRecordSchema.storageType &&
|
|
94
|
+
propertyRecordSchema.storageType === 'ItemStorage' &&
|
|
95
|
+
context.refResolvedValue &&
|
|
96
|
+
context.localStorageDir) {
|
|
97
|
+
const filePath = `/files/${context.localStorageDir}/${context.refResolvedValue}`;
|
|
98
|
+
try {
|
|
99
|
+
const exists = await BaseFileManager.pathExists(filePath);
|
|
100
|
+
if (exists) {
|
|
101
|
+
renderValue = await BaseFileManager.readFileAsString(filePath);
|
|
102
|
+
}
|
|
103
|
+
if (!exists) {
|
|
104
|
+
renderValue = 'No file found';
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
logger(`[ItemProperty] [${context.seedLocalId}] [${context.propertyName}] [storageType] error`, e);
|
|
109
|
+
renderValue = 'No file found';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (!renderValue) {
|
|
113
|
+
renderValue = context.renderValue || context.propertyValue;
|
|
114
|
+
}
|
|
115
|
+
let transformedPropertyName = propertyName;
|
|
116
|
+
const skipTransform = internalPropertyNames.includes(propertyName) || !!this._alias;
|
|
117
|
+
if (!skipTransform && transformedPropertyName.endsWith('Id')) {
|
|
118
|
+
transformedPropertyName = transformedPropertyName.slice(0, -2);
|
|
119
|
+
}
|
|
120
|
+
if (!skipTransform && transformedPropertyName.endsWith('Ids')) {
|
|
121
|
+
transformedPropertyName = transformedPropertyName.slice(0, -3);
|
|
122
|
+
}
|
|
123
|
+
if (skipTransform && this._alias) {
|
|
124
|
+
transformedPropertyName = this._alias;
|
|
125
|
+
}
|
|
126
|
+
if (skipTransform && !this._alias) ;
|
|
127
|
+
if (this._subject.value === renderValue) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
this._subject.next(renderValue);
|
|
131
|
+
// TODO: Maybe have this only update the property?
|
|
132
|
+
// if (context.seedLocalId || context.seedUid) {
|
|
133
|
+
// eventEmitter.emit(`property.${context.seedUid || context.seedLocalId}.${propertyName}.update`)
|
|
134
|
+
// }
|
|
135
|
+
// if (context.seedUid) {
|
|
136
|
+
// eventEmitter.emit(`item.${modelName}.${context.seedUid}.update`)
|
|
137
|
+
// }
|
|
138
|
+
});
|
|
139
|
+
this._service.start();
|
|
140
|
+
}
|
|
141
|
+
static setPlatformClass(platformClass) {
|
|
142
|
+
this.PlatformClass = platformClass;
|
|
143
|
+
}
|
|
144
|
+
static create(props) {
|
|
145
|
+
const { propertyName, seedLocalId, seedUid, versionLocalId, versionUid } = props;
|
|
146
|
+
if (!propertyName || (!seedLocalId && !seedUid)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const cacheKey = this.cacheKey((seedUid || seedLocalId), propertyName);
|
|
150
|
+
if (seedLocalId && propertyName) {
|
|
151
|
+
if (this.instanceCache.has(cacheKey)) {
|
|
152
|
+
const { instance, refCount } = this.instanceCache.get(cacheKey);
|
|
153
|
+
this.instanceCache.set(cacheKey, {
|
|
154
|
+
instance,
|
|
155
|
+
refCount: refCount + 1,
|
|
156
|
+
});
|
|
157
|
+
return instance;
|
|
158
|
+
}
|
|
159
|
+
if (!this.instanceCache.has(cacheKey)) {
|
|
160
|
+
const newInstance = new this(props);
|
|
161
|
+
this.instanceCache.set(cacheKey, {
|
|
162
|
+
instance: newInstance,
|
|
163
|
+
refCount: 1,
|
|
164
|
+
});
|
|
165
|
+
return newInstance;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (seedUid && propertyName) {
|
|
169
|
+
if (this.instanceCache.has(cacheKey)) {
|
|
170
|
+
const { instance, refCount } = this.instanceCache.get(cacheKey);
|
|
171
|
+
this.instanceCache.set(cacheKey, { instance, refCount: refCount + 1 });
|
|
172
|
+
return instance;
|
|
173
|
+
}
|
|
174
|
+
if (!this.instanceCache.has(cacheKey)) {
|
|
175
|
+
const newInstance = new this(props);
|
|
176
|
+
this.instanceCache.set(cacheKey, { instance: newInstance, refCount: 1 });
|
|
177
|
+
return newInstance;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return new this(props);
|
|
181
|
+
}
|
|
182
|
+
static async find({ propertyName, seedLocalId, seedUid, }) {
|
|
183
|
+
if ((!seedLocalId && !seedUid) || !propertyName) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const cacheKeyId = seedUid || seedLocalId;
|
|
187
|
+
const cacheKey = BaseItemProperty.cacheKey(cacheKeyId, propertyName);
|
|
188
|
+
if (this.instanceCache.has(cacheKey)) {
|
|
189
|
+
const { instance, refCount } = this.instanceCache.get(cacheKey);
|
|
190
|
+
this.instanceCache.set(cacheKey, {
|
|
191
|
+
instance,
|
|
192
|
+
refCount: refCount + 1,
|
|
193
|
+
});
|
|
194
|
+
return instance;
|
|
195
|
+
}
|
|
196
|
+
const propertyData = await getPropertyData({
|
|
197
|
+
propertyName,
|
|
198
|
+
seedLocalId,
|
|
199
|
+
seedUid,
|
|
200
|
+
});
|
|
201
|
+
if (!propertyData) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
return BaseItemProperty.create(propertyData);
|
|
205
|
+
}
|
|
206
|
+
static cacheKey(seedLocalIdOrUid, propertyName) {
|
|
207
|
+
const { uid, localId } = getCorrectId(seedLocalIdOrUid);
|
|
208
|
+
return `Item_${uid || localId}_${propertyName}`;
|
|
209
|
+
}
|
|
210
|
+
getService() {
|
|
211
|
+
return this._service;
|
|
212
|
+
}
|
|
213
|
+
_getSnapshot() {
|
|
214
|
+
return this._service.getSnapshot();
|
|
215
|
+
}
|
|
216
|
+
get localId() {
|
|
217
|
+
return this._getSnapshot().context.localId;
|
|
218
|
+
}
|
|
219
|
+
get uid() {
|
|
220
|
+
return this._getSnapshot().context.uid;
|
|
221
|
+
}
|
|
222
|
+
get seedLocalId() {
|
|
223
|
+
return this._getSnapshot().context.seedLocalId;
|
|
224
|
+
}
|
|
225
|
+
get seedUid() {
|
|
226
|
+
return this._getSnapshot().context.seedUid;
|
|
227
|
+
}
|
|
228
|
+
get schemaUid() {
|
|
229
|
+
return this._getSnapshot().context.schemaUid;
|
|
230
|
+
}
|
|
231
|
+
get propertyName() {
|
|
232
|
+
if (this._alias) {
|
|
233
|
+
return this._alias;
|
|
234
|
+
}
|
|
235
|
+
return this._getSnapshot().context.propertyName;
|
|
236
|
+
}
|
|
237
|
+
get modelName() {
|
|
238
|
+
return this._getSnapshot().context.modelName;
|
|
239
|
+
}
|
|
240
|
+
get propertyDef() {
|
|
241
|
+
return this._getSnapshot().context.propertyRecordSchema;
|
|
242
|
+
}
|
|
243
|
+
get localStoragePath() {
|
|
244
|
+
if (this.propertyDef && this.propertyDef.localStorageDir) {
|
|
245
|
+
return `/files${this.propertyDef.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`;
|
|
246
|
+
}
|
|
247
|
+
if (this._getSnapshot().context.localStorageDir) {
|
|
248
|
+
return `/files${this._getSnapshot().context.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
get versionLocalId() {
|
|
252
|
+
return this._getSnapshot().context.versionLocalId;
|
|
253
|
+
}
|
|
254
|
+
get status() {
|
|
255
|
+
return this._getSnapshot().value;
|
|
256
|
+
}
|
|
257
|
+
get alias() {
|
|
258
|
+
return this._alias;
|
|
259
|
+
}
|
|
260
|
+
get value() {
|
|
261
|
+
// logger(
|
|
262
|
+
// `[XXXXXXXXXX] [value] [get] subjectValue: ${this._subject.value} serviceValue: ${this._service.getSnapshot().context.renderValue}`,
|
|
263
|
+
// )
|
|
264
|
+
return this._subject.value;
|
|
265
|
+
}
|
|
266
|
+
set value(value) {
|
|
267
|
+
if (this._subject.value === value) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
const context = this._service.getSnapshot().context;
|
|
271
|
+
if (!context.propertyRecordSchema) {
|
|
272
|
+
this._subject.next(value);
|
|
273
|
+
}
|
|
274
|
+
this._service.send({
|
|
275
|
+
type: 'save',
|
|
276
|
+
newValue: value,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
get published() {
|
|
280
|
+
return !!this._getSnapshot().context.uid;
|
|
281
|
+
}
|
|
282
|
+
subscribe(callback) {
|
|
283
|
+
return this._subject.subscribe(callback);
|
|
284
|
+
}
|
|
285
|
+
async save() {
|
|
286
|
+
await waitFor(this._service, (snapshot) => !snapshot.context.isSaving && snapshot.value === 'idle', {
|
|
287
|
+
timeout: 10000,
|
|
288
|
+
});
|
|
289
|
+
// return new Promise((resolve) => {
|
|
290
|
+
// const saveSub = this._service.subscribe((snapshot) => {
|
|
291
|
+
// if (!snapshot.context.isSaving) {
|
|
292
|
+
// saveSub.unsubscribe()
|
|
293
|
+
// resolve()
|
|
294
|
+
// }
|
|
295
|
+
// })
|
|
296
|
+
// })
|
|
297
|
+
}
|
|
298
|
+
unload() {
|
|
299
|
+
this._service.stop();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
_a = immerable;
|
|
303
|
+
BaseItemProperty.instanceCache = new Map();
|
|
304
|
+
|
|
305
|
+
export { BaseItemProperty };
|
|
306
|
+
//# sourceMappingURL=BaseItemProperty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseItemProperty.js","sources":["../../../../src/ItemProperty/BaseItemProperty.ts"],"sourcesContent":["import { ActorRefFrom, createActor, SnapshotFrom, Subscription, waitFor } from 'xstate'\nimport { BehaviorSubject, Subscriber } from 'rxjs'\nimport { Static } from '@sinclair/typebox'\nimport { IItemProperty } from '@/interfaces/IItemProperty'\nimport { immerable } from 'immer'\nimport { CreatePropertyInstanceProps, PropertyMachineContext } from '@/types'\nimport { getModel } from '@/stores/modelClass'\nimport { propertyMachine } from './service/propertyMachine'\nimport { internalPropertyNames } from '@/helpers/constants'\nimport debug from 'debug'\nimport pluralize from 'pluralize'\nimport { getPropertyData } from '@/db/read/getPropertyData'\nimport { BaseFileManager, getCorrectId } from '@/helpers'\nimport { TProperty } from '@/schema'\n\n\nconst logger = debug('seedSdk:property:class')\n\ntype ItemPropertyService = ActorRefFrom<typeof propertyMachine>\ntype ItemPropertySnapshot = SnapshotFrom<typeof propertyMachine>\n\ntype ItemPropertyFindProps = {\n propertyName: string\n propertyLocalId?: string\n seedLocalId?: string\n seedUid?: string\n}\n\nexport abstract class BaseItemProperty<PropertyType> implements IItemProperty<PropertyType> {\n protected static instanceCache: Map<\n string,\n { instance: BaseItemProperty<any>; refCount: number }\n > = new Map()\n protected readonly _service: ItemPropertyService\n protected _subject: BehaviorSubject<any>\n protected readonly _isRelation: boolean = false\n protected readonly _isList: boolean = false\n protected readonly _alias: string | undefined\n protected _subscription: Subscription\n protected _dataType: string | undefined\n protected _schemaUid: string | undefined\n [immerable] = true\n\n constructor(initialValues: Partial<CreatePropertyInstanceProps>) {\n const { modelName, propertyName, propertyValue, seedLocalId, seedUid, versionLocalId, versionUid, storageTransactionId, schemaUid } = initialValues\n\n if (!modelName) {\n throw new Error('Model name is required')\n }\n\n const ModelClass = getModel(modelName)\n\n if (!ModelClass) {\n throw new Error(`Model ${modelName} not found`)\n }\n\n if (!propertyName) {\n throw new Error(`Property name not provided`)\n }\n\n const serviceInput: Partial<PropertyMachineContext> = {\n propertyValue,\n propertyName,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n modelName: modelName,\n storageTransactionId,\n propertyRecordSchema: ModelClass.schema[propertyName],\n schemaUid,\n }\n\n\n\n if (!internalPropertyNames.includes(propertyName)) {\n let propertyNameWithoutId\n\n const propertyRecordSchema =\n ModelClass.schema[propertyNameWithoutId || propertyName]\n if (propertyRecordSchema) {\n this._dataType = propertyRecordSchema.dataType\n\n serviceInput.propertyRecordSchema = propertyRecordSchema\n\n if (propertyRecordSchema.dataType === 'Relation') {\n this._isRelation = true\n }\n\n if (\n propertyRecordSchema.dataType === 'List' &&\n propertyRecordSchema.ref\n ) {\n this._isList = true\n this._isRelation = true\n\n if (propertyValue) {\n try {\n serviceInput.propertyValue = JSON.parse(propertyValue)\n } catch (e) {\n logger('List property value is not JSON', e)\n }\n }\n\n const propertyNameSingular = pluralize(propertyName!, 1)\n\n this._alias = propertyName\n\n serviceInput.propertyName = `${propertyNameSingular}${propertyRecordSchema.ref}Ids`\n }\n\n if (!this._alias && propertyNameWithoutId) {\n this._alias = propertyNameWithoutId\n }\n }\n }\n\n serviceInput.isRelation = this._isRelation\n\n this._subject = new BehaviorSubject(propertyValue)\n this._service = createActor(propertyMachine, {\n input: serviceInput,\n })\n\n this._subscription = this._service.subscribe(\n async (snapshot: ItemPropertySnapshot) => {\n if (!snapshot || !snapshot.context) {\n return\n }\n\n const { context } = snapshot\n const { propertyRecordSchema } = context\n\n if (context.seedLocalId) {\n const cacheKey = BaseItemProperty.cacheKey(\n context.seedLocalId,\n context.propertyName,\n )\n if (!BaseItemProperty.instanceCache.has(cacheKey)) {\n BaseItemProperty.instanceCache.set(cacheKey, {\n instance: this,\n refCount: 1,\n })\n }\n }\n\n let renderValue\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage' &&\n context.refResolvedValue &&\n context.localStorageDir\n ) {\n const filePath = `/files/${context.localStorageDir}/${context.refResolvedValue}`\n try {\n const exists = await BaseFileManager.pathExists(filePath)\n if (exists) {\n renderValue = await BaseFileManager.readFileAsString(filePath,)\n }\n if (!exists) {\n renderValue = 'No file found'\n }\n } catch (e) {\n logger(\n `[ItemProperty] [${context.seedLocalId}] [${context.propertyName}] [storageType] error`,\n e,\n )\n renderValue = 'No file found'\n }\n }\n\n if (!renderValue) {\n renderValue = context.renderValue || context.propertyValue\n }\n\n let transformedPropertyName = propertyName\n\n const skipTransform =\n internalPropertyNames.includes(propertyName) || !!this._alias\n\n if (!skipTransform && transformedPropertyName.endsWith('Id')) {\n transformedPropertyName = transformedPropertyName.slice(0, -2)\n }\n\n if (!skipTransform && transformedPropertyName.endsWith('Ids')) {\n transformedPropertyName = transformedPropertyName.slice(0, -3)\n }\n\n if (skipTransform && this._alias) {\n transformedPropertyName = this._alias\n }\n\n if (skipTransform && !this._alias) {\n }\n\n if (this._subject.value === renderValue) {\n return\n }\n\n this._subject.next(renderValue)\n // TODO: Maybe have this only update the property?\n // if (context.seedLocalId || context.seedUid) {\n // eventEmitter.emit(`property.${context.seedUid || context.seedLocalId}.${propertyName}.update`)\n // }\n // if (context.seedUid) {\n // eventEmitter.emit(`item.${modelName}.${context.seedUid}.update`)\n // }\n },\n )\n\n this._service.start()\n }\n\n static PlatformClass: typeof BaseItemProperty\n\n static setPlatformClass(platformClass: typeof BaseItemProperty) {\n this.PlatformClass = platformClass\n }\n\n static create(\n props: Partial<CreatePropertyInstanceProps>,\n ): BaseItemProperty<any> | undefined {\n const { propertyName, seedLocalId, seedUid, versionLocalId, versionUid } =\n props\n if (!propertyName || (!seedLocalId && !seedUid)) {\n return\n }\n const cacheKey = this.cacheKey(\n (seedUid || seedLocalId) as string,\n propertyName,\n )\n if (seedLocalId && propertyName) {\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, {\n instance,\n refCount: refCount + 1,\n })\n return instance\n }\n if (!this.instanceCache.has(cacheKey)) {\n const newInstance = new this(props)\n this.instanceCache.set(cacheKey, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n }\n if (seedUid && propertyName) {\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, { instance, refCount: refCount + 1 })\n return instance\n }\n if (!this.instanceCache.has(cacheKey)) {\n const newInstance = new this(props)\n this.instanceCache.set(cacheKey, { instance: newInstance, refCount: 1 })\n return newInstance\n }\n }\n return new this(props)\n }\n\n static async find({\n propertyName,\n seedLocalId,\n seedUid,\n }: ItemPropertyFindProps): Promise<IItemProperty<any> | undefined> {\n if ((!seedLocalId && !seedUid) || !propertyName) {\n return\n }\n const cacheKeyId = seedUid || seedLocalId\n const cacheKey = BaseItemProperty.cacheKey(cacheKeyId!, propertyName)\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, {\n instance,\n refCount: refCount + 1,\n })\n return instance\n }\n const propertyData = await getPropertyData({\n propertyName,\n seedLocalId,\n seedUid,\n })\n if (!propertyData) {\n return\n }\n return BaseItemProperty.create(propertyData)\n }\n\n static cacheKey(seedLocalIdOrUid: string, propertyName: string): string {\n const { uid, localId } = getCorrectId(seedLocalIdOrUid)\n return `Item_${uid || localId}_${propertyName}`\n }\n\n getService() {\n return this._service\n }\n\n private _getSnapshot(): ItemPropertySnapshot {\n return this._service.getSnapshot() as ItemPropertySnapshot\n }\n\n get localId() {\n return this._getSnapshot().context.localId\n }\n\n get uid() {\n return this._getSnapshot().context.uid\n }\n\n get seedLocalId() {\n return this._getSnapshot().context.seedLocalId\n }\n\n get seedUid() {\n return this._getSnapshot().context.seedUid\n }\n\n get schemaUid() {\n return this._getSnapshot().context.schemaUid\n }\n\n get propertyName() {\n if (this._alias) {\n return this._alias\n }\n return this._getSnapshot().context.propertyName\n }\n\n get modelName() {\n return this._getSnapshot().context.modelName\n }\n\n get propertyDef(): Static<typeof TProperty> | undefined {\n return this._getSnapshot().context.propertyRecordSchema\n }\n\n get localStoragePath(): string | void {\n if (this.propertyDef && this.propertyDef.localStorageDir) {\n return `/files${this.propertyDef.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`\n }\n if (this._getSnapshot().context.localStorageDir) {\n return `/files${this._getSnapshot().context.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`\n }\n }\n\n get versionLocalId(): string | undefined {\n return this._getSnapshot().context.versionLocalId\n }\n\n get status() {\n return this._getSnapshot().value\n }\n\n get alias() {\n return this._alias\n }\n\n get value() {\n // logger(\n // `[XXXXXXXXXX] [value] [get] subjectValue: ${this._subject.value} serviceValue: ${this._service.getSnapshot().context.renderValue}`,\n // )\n return this._subject.value\n }\n\n set value(value: any) {\n if (this._subject.value === value) {\n return\n }\n const context = this._service.getSnapshot().context\n if (!context.propertyRecordSchema) {\n this._subject.next(value)\n }\n this._service.send({\n type: 'save',\n newValue: value,\n })\n }\n\n get published(): boolean {\n return !!this._getSnapshot().context.uid\n }\n\n subscribe(callback: Partial<Subscriber<any>>) {\n return this._subject.subscribe(callback)\n }\n\n async save(): Promise<void> {\n await waitFor(\n this._service,\n (snapshot) => !snapshot.context.isSaving && snapshot.value === 'idle',\n {\n timeout: 10_000,\n },\n )\n // return new Promise((resolve) => {\n // const saveSub = this._service.subscribe((snapshot) => {\n // if (!snapshot.context.isSaving) {\n // saveSub.unsubscribe()\n // resolve()\n // }\n // })\n // })\n }\n\n unload() {\n this._service.stop()\n }\n} "],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrateFromDb.d.ts","sourceRoot":"","sources":["../../../../../src/ItemProperty/service/actors/hydrateFromDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"hydrateFromDb.d.ts","sourceRoot":"","sources":["../../../../../src/ItemProperty/service/actors/hydrateFromDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAMlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAOpD,eAAO,MAAM,aAAa,oGAgQxB,CAAA"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { or, eq, and, sql } from 'drizzle-orm';
|
|
3
|
+
import debug from 'debug';
|
|
4
|
+
import '../../../seedSchema/SeedSchema.js';
|
|
5
|
+
import '../../../seedSchema/VersionSchema.js';
|
|
6
|
+
import { metadata } from '../../../seedSchema/MetadataSchema.js';
|
|
7
|
+
import '../../../seedSchema/AppStateSchema.js';
|
|
8
|
+
import '../../../seedSchema/ModelSchema.js';
|
|
9
|
+
import '../../../seedSchema/ModelUidSchema.js';
|
|
10
|
+
import { BaseDb } from '../../../db/Db/BaseDb.js';
|
|
11
|
+
import { updateMetadata } from '../../../db/write/updateMetadata.js';
|
|
12
|
+
import path from 'path';
|
|
13
|
+
import '../../../helpers/index.js';
|
|
14
|
+
import { BaseFileManager } from '../../../helpers/FileManager/BaseFileManager.js';
|
|
15
|
+
|
|
16
|
+
debug('seedSdk:property:actors:hydrateFromDb');
|
|
17
|
+
const hydrateFromDb = fromCallback(({ sendBack, input: { context } }) => {
|
|
18
|
+
const { seedUid, seedLocalId, propertyName: propertyNameRaw, propertyRecordSchema, modelName, } = context;
|
|
19
|
+
let propertyName = propertyNameRaw;
|
|
20
|
+
if (propertyRecordSchema &&
|
|
21
|
+
propertyRecordSchema.ref &&
|
|
22
|
+
propertyRecordSchema.dataType === 'Relation' &&
|
|
23
|
+
!propertyNameRaw.endsWith('Id')) {
|
|
24
|
+
propertyName = propertyNameRaw + 'Id';
|
|
25
|
+
}
|
|
26
|
+
if (propertyRecordSchema &&
|
|
27
|
+
propertyRecordSchema.ref &&
|
|
28
|
+
propertyRecordSchema.dataType === 'List' &&
|
|
29
|
+
!propertyNameRaw.endsWith('Ids')) {
|
|
30
|
+
propertyName = propertyNameRaw + 'Ids';
|
|
31
|
+
}
|
|
32
|
+
const _hydrateFromDb = async () => {
|
|
33
|
+
const appDb = BaseDb.getAppDb();
|
|
34
|
+
const isRelation = propertyRecordSchema &&
|
|
35
|
+
propertyRecordSchema.ref &&
|
|
36
|
+
propertyRecordSchema.dataType === 'Relation';
|
|
37
|
+
const whereClauses = [];
|
|
38
|
+
if (isRelation) {
|
|
39
|
+
let missingPropertyNameVariant;
|
|
40
|
+
if (propertyName.endsWith('Id')) {
|
|
41
|
+
missingPropertyNameVariant = propertyName.slice(0, -2);
|
|
42
|
+
}
|
|
43
|
+
if (!propertyName.endsWith('Id')) {
|
|
44
|
+
missingPropertyNameVariant = propertyName + 'Id';
|
|
45
|
+
}
|
|
46
|
+
if (missingPropertyNameVariant) {
|
|
47
|
+
whereClauses.push(or(eq(metadata.propertyName, propertyName), eq(metadata.propertyName, missingPropertyNameVariant)));
|
|
48
|
+
}
|
|
49
|
+
if (!missingPropertyNameVariant) {
|
|
50
|
+
whereClauses.push(eq(metadata.propertyName, propertyName));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
whereClauses.push(eq(metadata.propertyName, propertyName));
|
|
55
|
+
}
|
|
56
|
+
if (seedUid) {
|
|
57
|
+
whereClauses.push(eq(metadata.seedUid, seedUid));
|
|
58
|
+
}
|
|
59
|
+
if (seedLocalId) {
|
|
60
|
+
whereClauses.push(eq(metadata.seedLocalId, seedLocalId));
|
|
61
|
+
}
|
|
62
|
+
const rows = await appDb
|
|
63
|
+
.select()
|
|
64
|
+
.from(metadata)
|
|
65
|
+
.where(and(...whereClauses))
|
|
66
|
+
.orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'));
|
|
67
|
+
if (!rows || !rows.length) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const firstRow = rows[0];
|
|
71
|
+
const { localId, uid, propertyName: propertyNameFromDb, propertyValue: propertyValueFromDb, seedLocalId: seedLocalIdFromDb, seedUid: seedUidFromDb, schemaUid: schemaUidFromDb, versionLocalId: versionLocalIdFromDb, versionUid: versionUidFromDb, refValueType, localStorageDir, } = firstRow;
|
|
72
|
+
let { refResolvedDisplayValue, refResolvedValue } = firstRow;
|
|
73
|
+
let propertyValueProcessed = propertyValueFromDb;
|
|
74
|
+
if (propertyRecordSchema &&
|
|
75
|
+
propertyRecordSchema.refValueType === 'ImageSrc') {
|
|
76
|
+
let shouldReadFromFile = true;
|
|
77
|
+
if (refResolvedValue &&
|
|
78
|
+
refResolvedDisplayValue &&
|
|
79
|
+
refResolvedDisplayValue.includes('http')) {
|
|
80
|
+
try {
|
|
81
|
+
const response = await fetch(refResolvedDisplayValue, {
|
|
82
|
+
method: 'HEAD',
|
|
83
|
+
});
|
|
84
|
+
// Check if the status is in the 200-299 range
|
|
85
|
+
if (response.ok) {
|
|
86
|
+
shouldReadFromFile = false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
shouldReadFromFile = true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (shouldReadFromFile) {
|
|
94
|
+
let dir = localStorageDir;
|
|
95
|
+
if (!dir &&
|
|
96
|
+
propertyRecordSchema &&
|
|
97
|
+
propertyRecordSchema.refValueType === 'ImageSrc') {
|
|
98
|
+
dir = 'images';
|
|
99
|
+
}
|
|
100
|
+
dir = dir.replace(/^\//, '');
|
|
101
|
+
if (!refResolvedValue &&
|
|
102
|
+
propertyValueFromDb &&
|
|
103
|
+
propertyValueFromDb.length === 66) {
|
|
104
|
+
// Here the storageTransactionId is stored on a different record and
|
|
105
|
+
// we want to add it as the refResolvedValue
|
|
106
|
+
const storageTransactionQuery = await appDb
|
|
107
|
+
.select({
|
|
108
|
+
propertyValue: metadata.propertyValue,
|
|
109
|
+
})
|
|
110
|
+
.from(metadata)
|
|
111
|
+
.where(and(eq(metadata.seedUid, propertyValueFromDb), or(eq(metadata.propertyName, 'storageTransactionId'), eq(metadata.propertyName, 'transactionId'))));
|
|
112
|
+
if (storageTransactionQuery && storageTransactionQuery.length > 0) {
|
|
113
|
+
const row = storageTransactionQuery[0];
|
|
114
|
+
refResolvedValue = row.propertyValue;
|
|
115
|
+
await updateMetadata({
|
|
116
|
+
localId,
|
|
117
|
+
refResolvedValue,
|
|
118
|
+
localStorageDir: '/images',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const dirPath = `/files/${dir}`;
|
|
123
|
+
const fs = await BaseFileManager.getFs();
|
|
124
|
+
const files = await fs.promises.readdir(dirPath);
|
|
125
|
+
const matchingFiles = files.filter((file) => {
|
|
126
|
+
return path.basename(file).includes(refResolvedValue);
|
|
127
|
+
});
|
|
128
|
+
let fileExists = false;
|
|
129
|
+
let filename;
|
|
130
|
+
let filePath;
|
|
131
|
+
if (matchingFiles && matchingFiles.length > 0) {
|
|
132
|
+
fileExists = true;
|
|
133
|
+
filename = matchingFiles[0];
|
|
134
|
+
filePath = `/files/${dir}/${filename}`;
|
|
135
|
+
}
|
|
136
|
+
if (fileExists && filename && filePath) {
|
|
137
|
+
const file = await BaseFileManager.readFile(filePath);
|
|
138
|
+
refResolvedDisplayValue = URL.createObjectURL(file);
|
|
139
|
+
await updateMetadata({
|
|
140
|
+
localId,
|
|
141
|
+
refResolvedValue: filename,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (propertyRecordSchema &&
|
|
147
|
+
propertyRecordSchema.dataType === 'List' &&
|
|
148
|
+
propertyRecordSchema.ref &&
|
|
149
|
+
typeof propertyValueFromDb === 'string') {
|
|
150
|
+
propertyValueProcessed = propertyValueFromDb.split(',');
|
|
151
|
+
}
|
|
152
|
+
sendBack({
|
|
153
|
+
type: 'updateContext',
|
|
154
|
+
localId,
|
|
155
|
+
uid,
|
|
156
|
+
propertyValue: propertyValueProcessed,
|
|
157
|
+
seedLocalId: seedLocalIdFromDb,
|
|
158
|
+
seedUid: seedUidFromDb,
|
|
159
|
+
versionLocalId: versionLocalIdFromDb,
|
|
160
|
+
versionUid: versionUidFromDb,
|
|
161
|
+
schemaUid: schemaUidFromDb,
|
|
162
|
+
refValueType,
|
|
163
|
+
localStorageDir,
|
|
164
|
+
refResolvedValue,
|
|
165
|
+
refResolvedDisplayValue,
|
|
166
|
+
renderValue: refResolvedDisplayValue,
|
|
167
|
+
populatedFromDb: true,
|
|
168
|
+
});
|
|
169
|
+
if (propertyRecordSchema &&
|
|
170
|
+
propertyRecordSchema.storageType &&
|
|
171
|
+
propertyRecordSchema.storageType === 'ItemStorage') {
|
|
172
|
+
const { Item } = await import('../../../browser/Item/index.js');
|
|
173
|
+
const item = await Item.find({
|
|
174
|
+
seedLocalId,
|
|
175
|
+
modelName,
|
|
176
|
+
});
|
|
177
|
+
if (item) {
|
|
178
|
+
const filePath = `/files/${localStorageDir}/${refResolvedValue}`;
|
|
179
|
+
const exists = await BaseFileManager.pathExists(filePath);
|
|
180
|
+
if (!exists) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const renderValue = await BaseFileManager.readFileAsString(filePath);
|
|
184
|
+
const property = item.properties[propertyName];
|
|
185
|
+
property.getService().send({ type: 'updateContext', renderValue });
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
_hydrateFromDb().then(() => {
|
|
191
|
+
sendBack({ type: 'hydrateFromDbSuccess' });
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
export { hydrateFromDb };
|
|
196
|
+
//# sourceMappingURL=hydrateFromDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrateFromDb.js","sources":["../../../../../../src/ItemProperty/service/actors/hydrateFromDb.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { and, eq, or, sql } from 'drizzle-orm'\nimport debug from 'debug'\nimport { metadata } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { updateMetadata } from '@/db/write/updateMetadata'\nimport { FromCallbackInput } from '@/types/machines'\nimport { PropertyMachineContext } from '@/types/property'\nimport path from 'path'\nimport { BaseFileManager } from '@/helpers'\n\nconst logger = debug('seedSdk:property:actors:hydrateFromDb')\n\nexport const hydrateFromDb = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, EventObject>\n>(({ sendBack, input: { context } }) => {\n const {\n seedUid,\n seedLocalId,\n propertyName: propertyNameRaw,\n propertyRecordSchema,\n modelName,\n } = context\n\n let propertyName = propertyNameRaw\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'Relation' &&\n !propertyNameRaw.endsWith('Id')\n ) {\n propertyName = propertyNameRaw + 'Id'\n }\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'List' &&\n !propertyNameRaw.endsWith('Ids')\n ) {\n propertyName = propertyNameRaw + 'Ids'\n }\n\n const _hydrateFromDb = async () => {\n const appDb = BaseDb.getAppDb()\n\n const isRelation =\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'Relation'\n\n const whereClauses = []\n\n if (isRelation) {\n let missingPropertyNameVariant\n if (propertyName.endsWith('Id')) {\n missingPropertyNameVariant = propertyName.slice(0, -2)\n }\n if (!propertyName.endsWith('Id')) {\n missingPropertyNameVariant = propertyName + 'Id'\n }\n if (missingPropertyNameVariant) {\n whereClauses.push(\n or(\n eq(metadata.propertyName, propertyName),\n eq(metadata.propertyName, missingPropertyNameVariant),\n ),\n )\n }\n if (!missingPropertyNameVariant) {\n whereClauses.push(eq(metadata.propertyName, propertyName))\n }\n } else {\n whereClauses.push(eq(metadata.propertyName, propertyName))\n }\n\n if (seedUid) {\n whereClauses.push(eq(metadata.seedUid, seedUid))\n }\n\n if (seedLocalId) {\n whereClauses.push(eq(metadata.seedLocalId, seedLocalId))\n }\n\n const rows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n .orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'))\n\n if (!rows || !rows.length) {\n return\n }\n\n const firstRow = rows[0]\n\n const {\n localId,\n uid,\n propertyName: propertyNameFromDb,\n propertyValue: propertyValueFromDb,\n seedLocalId: seedLocalIdFromDb,\n seedUid: seedUidFromDb,\n schemaUid: schemaUidFromDb,\n versionLocalId: versionLocalIdFromDb,\n versionUid: versionUidFromDb,\n refValueType,\n localStorageDir,\n } = firstRow\n\n let { refResolvedDisplayValue, refResolvedValue } = firstRow\n\n let propertyValueProcessed: string | string[] | undefined | null =\n propertyValueFromDb\n\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.refValueType === 'ImageSrc'\n ) {\n let shouldReadFromFile = true\n\n if (\n refResolvedValue &&\n refResolvedDisplayValue &&\n refResolvedDisplayValue.includes('http')\n ) {\n try {\n const response = await fetch(refResolvedDisplayValue, {\n method: 'HEAD',\n })\n\n // Check if the status is in the 200-299 range\n if (response.ok) {\n shouldReadFromFile = false\n }\n } catch (error) {\n shouldReadFromFile = true\n }\n }\n\n if (shouldReadFromFile) {\n let dir = localStorageDir\n if (\n !dir &&\n propertyRecordSchema &&\n propertyRecordSchema.refValueType === 'ImageSrc'\n ) {\n dir = 'images'\n }\n\n dir = dir!.replace(/^\\//, '')\n\n if (\n !refResolvedValue &&\n propertyValueFromDb &&\n propertyValueFromDb.length === 66\n ) {\n // Here the storageTransactionId is stored on a different record and\n // we want to add it as the refResolvedValue\n const storageTransactionQuery = await appDb\n .select({\n propertyValue: metadata.propertyValue,\n })\n .from(metadata)\n .where(\n and(\n eq(metadata.seedUid, propertyValueFromDb),\n or(\n eq(metadata.propertyName, 'storageTransactionId'),\n eq(metadata.propertyName, 'transactionId'),\n ),\n ),\n )\n\n if (storageTransactionQuery && storageTransactionQuery.length > 0) {\n const row = storageTransactionQuery[0]\n refResolvedValue = row.propertyValue\n await updateMetadata({\n localId,\n refResolvedValue,\n localStorageDir: '/images',\n })\n }\n }\n\n const dirPath = `/files/${dir}`\n const fs = await BaseFileManager.getFs()\n const files = await fs.promises.readdir(dirPath)\n const matchingFiles = files.filter((file) => {\n return path.basename(file).includes(refResolvedValue!)\n })\n let fileExists = false\n let filename\n let filePath\n if (matchingFiles && matchingFiles.length > 0) {\n fileExists = true\n filename = matchingFiles[0]\n filePath = `/files/${dir}/${filename}`\n }\n if (fileExists && filename && filePath) {\n const file = await BaseFileManager.readFile(filePath)\n refResolvedDisplayValue = URL.createObjectURL(file)\n await updateMetadata({\n localId,\n refResolvedValue: filename,\n })\n }\n }\n }\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.dataType === 'List' &&\n propertyRecordSchema.ref &&\n typeof propertyValueFromDb === 'string'\n ) {\n propertyValueProcessed = propertyValueFromDb.split(',')\n }\n\n sendBack({\n type: 'updateContext',\n localId,\n uid,\n propertyValue: propertyValueProcessed,\n seedLocalId: seedLocalIdFromDb,\n seedUid: seedUidFromDb,\n versionLocalId: versionLocalIdFromDb,\n versionUid: versionUidFromDb,\n schemaUid: schemaUidFromDb,\n refValueType,\n localStorageDir,\n refResolvedValue,\n refResolvedDisplayValue,\n renderValue: refResolvedDisplayValue,\n populatedFromDb: true,\n })\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage'\n ) {\n const { Item } = await import(`@/browser/Item`)\n const item = await Item.find({\n seedLocalId,\n modelName,\n })\n if (item) {\n const filePath = `/files/${localStorageDir}/${refResolvedValue}`\n const exists = await BaseFileManager.pathExists(filePath)\n\n if (!exists) {\n return\n }\n\n const renderValue = await BaseFileManager.readFileAsString(filePath)\n const property = item.properties[propertyName]\n property.getService().send({ type: 'updateContext', renderValue })\n return\n }\n }\n }\n\n _hydrateFromDb().then(() => {\n sendBack({ type: 'hydrateFromDbSuccess' })\n })\n})\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../src/ItemProperty/service/actors/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../src/ItemProperty/service/actors/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAKpD,eAAO,MAAM,UAAU,oGA8DrB,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { getSchemaUidForSchemaDefinition } from '../../../stores/eas.js';
|
|
3
|
+
import { BaseFileManager } from '../../../helpers/FileManager/BaseFileManager.js';
|
|
4
|
+
|
|
5
|
+
const initialize = fromCallback(({ sendBack, input: { context } }) => {
|
|
6
|
+
const { isRelation, propertyName, storageTransactionId } = context;
|
|
7
|
+
let { schemaUid } = context;
|
|
8
|
+
if (!schemaUid) {
|
|
9
|
+
schemaUid = getSchemaUidForSchemaDefinition(propertyName);
|
|
10
|
+
if (schemaUid) {
|
|
11
|
+
sendBack({ type: 'updateContext', schemaUid });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (isRelation) {
|
|
15
|
+
sendBack({ type: 'isRelatedProperty' });
|
|
16
|
+
sendBack({ type: 'initializeSuccess' });
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (!isRelation) {
|
|
20
|
+
if ((propertyName !== 'html' && propertyName !== 'json') ||
|
|
21
|
+
!storageTransactionId) {
|
|
22
|
+
sendBack({ type: 'initializeSuccess' });
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const _getContentsFromFileSystem = async () => {
|
|
26
|
+
if (propertyName === 'html') {
|
|
27
|
+
const htmlFilePath = `/files/html/${storageTransactionId}.html`;
|
|
28
|
+
const exists = await BaseFileManager.pathExists(htmlFilePath);
|
|
29
|
+
if (!exists) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const renderValue = await BaseFileManager.readFileAsString(htmlFilePath)
|
|
33
|
+
.catch((error) => {
|
|
34
|
+
console.warn('Error reading html file', error);
|
|
35
|
+
});
|
|
36
|
+
sendBack({ type: 'updateContext', renderValue });
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (propertyName === 'json') {
|
|
40
|
+
const jsonFilePath = `/files/json/${storageTransactionId}.json`;
|
|
41
|
+
const exists = await BaseFileManager.pathExists(jsonFilePath);
|
|
42
|
+
if (!exists) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const renderValue = await BaseFileManager.readFileAsString(jsonFilePath)
|
|
46
|
+
.catch((error) => {
|
|
47
|
+
console.warn('Error reading json file', error);
|
|
48
|
+
});
|
|
49
|
+
sendBack({ type: 'updateContext', renderValue });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
_getContentsFromFileSystem().then(() => {
|
|
54
|
+
sendBack({ type: 'initializeSuccess' });
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
export { initialize };
|
|
60
|
+
//# sourceMappingURL=initialize.js.map
|