@seedprotocol/sdk 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +11 -109
- package/dist/bin.js.map +1 -1
- package/dist/main.js +15 -23
- 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.js +306 -0
- package/dist/src/ItemProperty/BaseItemProperty.js.map +1 -0
- 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.js +60 -0
- package/dist/src/ItemProperty/service/actors/initialize.js.map +1 -0
- 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.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.js +178 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.js.map +1 -0
- 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-2RMCxfNZ.js → src/browser/helpers/ArweaveClient.js} +3 -3
- package/dist/{ArweaveClient-COlwyYTF.js.map → src/browser/helpers/ArweaveClient.js.map} +1 -1
- 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-W4slRa7O.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.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 +18 -2
- 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-DmTl3a9U.js → src/db/configs/seed.schema.config.js} +3 -24
- 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.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.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/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.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/interfaces/IDb.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-COlwyYTF.js → src/node/helpers/ArweaveClient.js} +3 -3
- package/dist/{ArweaveClient-2RMCxfNZ.js.map → src/node/helpers/ArweaveClient.js.map} +1 -1
- package/dist/{EasClient-CFnb5g-r.js → src/node/helpers/EasClient.js} +3 -3
- package/dist/{EasClient-CFnb5g-r.js.map → src/node/helpers/EasClient.js.map} +1 -1
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
- package/dist/{QueryClient-ZUsZ1Qxq.js → src/node/helpers/QueryClient.js} +2 -4
- package/dist/{QueryClient-ZUsZ1Qxq.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/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.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.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.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.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-CRWMiKY9.js +0 -384
- package/dist/Db-CRWMiKY9.js.map +0 -1
- package/dist/Db-G5dIgZv-.js +0 -81
- package/dist/Db-G5dIgZv-.js.map +0 -1
- package/dist/EasClient-CO5puCWa.js +0 -10
- package/dist/EasClient-CO5puCWa.js.map +0 -1
- package/dist/FileManager-BOixZyex.js +0 -50
- package/dist/FileManager-BOixZyex.js.map +0 -1
- package/dist/FileManager-gKGTTa4s.js +0 -1045
- package/dist/FileManager-gKGTTa4s.js.map +0 -1
- package/dist/Item-BD2_tuda.js +0 -34
- package/dist/Item-BD2_tuda.js.map +0 -1
- package/dist/ItemProperty-CjcrzEmg.js +0 -33
- package/dist/ItemProperty-CjcrzEmg.js.map +0 -1
- package/dist/QueryClient-W4slRa7O.js.map +0 -1
- package/dist/constants-C-6Pg8FW.js +0 -235
- package/dist/constants-C-6Pg8FW.js.map +0 -1
- package/dist/index-BxAVepOO.js +0 -25
- package/dist/index-BxAVepOO.js.map +0 -1
- package/dist/index-D-O-gmXo.js +0 -7930
- package/dist/index-D-O-gmXo.js.map +0 -1
- package/dist/seed.schema.config-DmTl3a9U.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,178 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { createSeed } from '../../../../db/write/createSeed.js';
|
|
3
|
+
import { getMimeType, getDataTypeFromString } from '../../../../helpers/index.js';
|
|
4
|
+
import { createVersion } from '../../../../db/write/createVersion.js';
|
|
5
|
+
import { createMetadata } from '../../../../db/write/createMetadata.js';
|
|
6
|
+
import { updateItemPropertyValue } from '../../../../db/write/updateItemPropertyValue.js';
|
|
7
|
+
import { getSchemaUidForModel } from '../../../../db/read/getSchemaUidForModel.js';
|
|
8
|
+
import { BaseFileManager } from '../../../../helpers/FileManager/BaseFileManager.js';
|
|
9
|
+
import { eventEmitter } from '../../../../eventBus.js';
|
|
10
|
+
import { ImageSize } from '../../../../helpers/constants.js';
|
|
11
|
+
|
|
12
|
+
const readFileAsArrayBuffer = async (file) => {
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
const reader = new FileReader();
|
|
15
|
+
reader.onload = async (e) => {
|
|
16
|
+
const arrayBuffer = e.target.result;
|
|
17
|
+
resolve(arrayBuffer);
|
|
18
|
+
};
|
|
19
|
+
reader.readAsArrayBuffer(file);
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const fetchImage = async (url) => {
|
|
23
|
+
const response = await fetch(url);
|
|
24
|
+
const mimeType = response.headers.get('Content-Type');
|
|
25
|
+
const imageBuffer = await response.arrayBuffer();
|
|
26
|
+
const bytes = new Uint8Array(imageBuffer);
|
|
27
|
+
const binaryString = bytes.reduce((acc, byte) => acc + String.fromCharCode(byte), '');
|
|
28
|
+
let base64 = btoa(binaryString);
|
|
29
|
+
if (mimeType) {
|
|
30
|
+
base64 = `data:${mimeType};base64,${base64}`;
|
|
31
|
+
}
|
|
32
|
+
return base64;
|
|
33
|
+
};
|
|
34
|
+
let imageSchemaUid;
|
|
35
|
+
const saveImageSrc = fromCallback(({ sendBack, input: { context, event } }) => {
|
|
36
|
+
const { localId, propertyName: propertyNameRaw, propertyValue: existingValue, propertyRecordSchema, modelName, seedLocalId, seedUid, versionLocalId, versionUid, } = context;
|
|
37
|
+
let { schemaUid } = context;
|
|
38
|
+
let newValue;
|
|
39
|
+
if (event) {
|
|
40
|
+
newValue = event.newValue;
|
|
41
|
+
}
|
|
42
|
+
if (existingValue === newValue) {
|
|
43
|
+
sendBack({ type: 'saveValueToDbSuccess' });
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const _saveImageSrc = async () => {
|
|
47
|
+
let propertyName = propertyNameRaw;
|
|
48
|
+
if (!propertyNameRaw.endsWith('Id')) {
|
|
49
|
+
propertyName = `${propertyName}Id`;
|
|
50
|
+
}
|
|
51
|
+
let newValueType;
|
|
52
|
+
let fileData;
|
|
53
|
+
let mimeType;
|
|
54
|
+
let fileName;
|
|
55
|
+
if (!imageSchemaUid) {
|
|
56
|
+
imageSchemaUid = await getSchemaUidForModel('Image');
|
|
57
|
+
}
|
|
58
|
+
if (typeof newValue === 'string') {
|
|
59
|
+
newValueType = getDataTypeFromString(newValue);
|
|
60
|
+
}
|
|
61
|
+
if (newValueType === 'imageBase64') {
|
|
62
|
+
mimeType = getMimeType(newValue);
|
|
63
|
+
const base64Data = newValue.split(',')[1]; // Strip the Base64 prefix
|
|
64
|
+
const binaryString = atob(base64Data);
|
|
65
|
+
const binaryLength = binaryString.length;
|
|
66
|
+
const binaryArray = new Uint8Array(binaryLength);
|
|
67
|
+
for (let i = 0; i < binaryLength; i++) {
|
|
68
|
+
binaryArray[i] = binaryString.charCodeAt(i);
|
|
69
|
+
}
|
|
70
|
+
fileData = binaryArray.buffer;
|
|
71
|
+
}
|
|
72
|
+
if (newValueType === 'url') {
|
|
73
|
+
fileData = await fetchImage(newValue);
|
|
74
|
+
}
|
|
75
|
+
if (newValue instanceof File) {
|
|
76
|
+
fileName = newValue.name;
|
|
77
|
+
mimeType = newValue.type;
|
|
78
|
+
fileData = await readFileAsArrayBuffer(newValue);
|
|
79
|
+
}
|
|
80
|
+
if (!fileData) {
|
|
81
|
+
throw new Error('No file data found');
|
|
82
|
+
}
|
|
83
|
+
const newImageSeedLocalId = await createSeed({
|
|
84
|
+
type: 'image',
|
|
85
|
+
});
|
|
86
|
+
if (!fileName) {
|
|
87
|
+
fileName = newImageSeedLocalId;
|
|
88
|
+
if (mimeType) {
|
|
89
|
+
fileName += `.${mimeType.split('/')[1]}`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const filePath = `/files/images/${fileName}`;
|
|
93
|
+
await createVersion({
|
|
94
|
+
seedLocalId: newImageSeedLocalId,
|
|
95
|
+
seedType: 'image',
|
|
96
|
+
});
|
|
97
|
+
if (fileData instanceof ArrayBuffer) {
|
|
98
|
+
try {
|
|
99
|
+
await BaseFileManager.saveFile(filePath, new Uint8Array(fileData));
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
const fs = await BaseFileManager.getFs();
|
|
103
|
+
fs.writeFileSync(filePath, new Uint8Array(fileData));
|
|
104
|
+
eventEmitter.emit('file-saved', filePath);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (typeof fileData === 'string') {
|
|
108
|
+
try {
|
|
109
|
+
await BaseFileManager.saveFile(filePath, fileData);
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
const fs = await BaseFileManager.getFs();
|
|
113
|
+
fs.writeFileSync(filePath, fileData);
|
|
114
|
+
eventEmitter.emit('file-saved', filePath);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
await BaseFileManager.resizeImage({ filePath, width: ImageSize.EXTRA_SMALL, height: ImageSize.EXTRA_SMALL });
|
|
118
|
+
await BaseFileManager.resizeImage({ filePath, width: ImageSize.SMALL, height: ImageSize.SMALL });
|
|
119
|
+
await BaseFileManager.resizeImage({ filePath, width: ImageSize.MEDIUM, height: ImageSize.MEDIUM });
|
|
120
|
+
await BaseFileManager.resizeImage({ filePath, width: ImageSize.LARGE, height: ImageSize.LARGE });
|
|
121
|
+
await BaseFileManager.resizeImage({ filePath, width: ImageSize.EXTRA_LARGE, height: ImageSize.EXTRA_LARGE });
|
|
122
|
+
const refResolvedDisplayValue = await BaseFileManager.getContentUrlFromPath(filePath);
|
|
123
|
+
let newLocalId;
|
|
124
|
+
if (!localId) {
|
|
125
|
+
const result = await createMetadata({
|
|
126
|
+
propertyName,
|
|
127
|
+
propertyValue: newImageSeedLocalId,
|
|
128
|
+
seedLocalId,
|
|
129
|
+
seedUid,
|
|
130
|
+
versionLocalId,
|
|
131
|
+
versionUid,
|
|
132
|
+
modelName,
|
|
133
|
+
schemaUid,
|
|
134
|
+
refSeedType: 'image',
|
|
135
|
+
refModelUid: imageSchemaUid,
|
|
136
|
+
refSchemaUid: imageSchemaUid,
|
|
137
|
+
refResolvedDisplayValue,
|
|
138
|
+
refResolvedValue: fileName,
|
|
139
|
+
localStorageDir: '/images',
|
|
140
|
+
easDataType: 'bytes32',
|
|
141
|
+
}, propertyRecordSchema);
|
|
142
|
+
newLocalId = result[0].localId;
|
|
143
|
+
}
|
|
144
|
+
if (localId) {
|
|
145
|
+
await updateItemPropertyValue({
|
|
146
|
+
localId: localId,
|
|
147
|
+
propertyName: propertyNameRaw,
|
|
148
|
+
newValue: newImageSeedLocalId,
|
|
149
|
+
seedLocalId,
|
|
150
|
+
versionLocalId,
|
|
151
|
+
modelName,
|
|
152
|
+
schemaUid,
|
|
153
|
+
refSeedType: 'image',
|
|
154
|
+
refResolvedDisplayValue,
|
|
155
|
+
refResolvedValue: fileName,
|
|
156
|
+
localStorageDir: '/images'});
|
|
157
|
+
}
|
|
158
|
+
sendBack({
|
|
159
|
+
type: 'updateContext',
|
|
160
|
+
localId: newLocalId || localId,
|
|
161
|
+
propertyValue: newImageSeedLocalId,
|
|
162
|
+
refSeedType: 'image',
|
|
163
|
+
refSchemaUid: imageSchemaUid,
|
|
164
|
+
renderValue: refResolvedDisplayValue,
|
|
165
|
+
refResolvedDisplayValue,
|
|
166
|
+
refResolvedValue: fileName,
|
|
167
|
+
localStorageDir: '/images',
|
|
168
|
+
easDataType: 'bytes32',
|
|
169
|
+
schemaUid,
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
_saveImageSrc().then(() => {
|
|
173
|
+
sendBack({ type: 'saveImageSrcSuccess' });
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
export { saveImageSrc };
|
|
178
|
+
//# sourceMappingURL=saveImageSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveImageSrc.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { createSeed } from '@/db/write/createSeed'\nimport { getDataTypeFromString, getMimeType } from '@/helpers'\nimport { createVersion } from '@/db/write/createVersion'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { updateItemPropertyValue } from '@/db/write/updateItemPropertyValue'\nimport { getSchemaUidForModel } from '@/db/read/getSchemaUidForModel'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nimport { eventEmitter } from '@/eventBus'\nimport { ImageSize } from '@/helpers/constants'\n\n\nconst readFileAsArrayBuffer = async (file: File): Promise<ArrayBuffer> => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.onload = async (e) => {\n const arrayBuffer = e.target.result as ArrayBuffer\n\n resolve(arrayBuffer)\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n\nconst fetchImage = async (url: string) => {\n const response = await fetch(url)\n const mimeType = response.headers.get('Content-Type')\n const imageBuffer = await response.arrayBuffer()\n const bytes = new Uint8Array(imageBuffer)\n\n const binaryString = bytes.reduce(\n (acc, byte) => acc + String.fromCharCode(byte),\n '',\n )\n\n let base64 = btoa(binaryString)\n\n if (mimeType) {\n base64 = `data:${mimeType};base64,${base64}`\n }\n\n return base64\n}\n\nlet imageSchemaUid: string | undefined\n\nexport const saveImageSrc = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n propertyValue: existingValue,\n propertyRecordSchema,\n modelName,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n } = context\n\n let { schemaUid } = context\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveImageSrc = async (): Promise<void> => {\n let propertyName = propertyNameRaw\n\n if (!propertyNameRaw.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n let fileData: string | ArrayBuffer | undefined\n let mimeType\n let fileName\n\n if (!imageSchemaUid) {\n imageSchemaUid = await getSchemaUidForModel('Image')\n }\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValueType === 'imageBase64') {\n mimeType = getMimeType(newValue as string)\n const base64Data = (newValue as string).split(',')[1] // Strip the Base64 prefix\n const binaryString = atob(base64Data)\n\n const binaryLength = binaryString.length\n const binaryArray = new Uint8Array(binaryLength)\n for (let i = 0; i < binaryLength; i++) {\n binaryArray[i] = binaryString.charCodeAt(i)\n }\n fileData = binaryArray.buffer\n }\n\n if (newValueType === 'url') {\n fileData = await fetchImage(newValue as string)\n }\n\n if (newValue instanceof File) {\n fileName = newValue.name\n mimeType = newValue.type\n fileData = await readFileAsArrayBuffer(newValue)\n }\n\n if (!fileData) {\n throw new Error('No file data found')\n }\n\n const newImageSeedLocalId = await createSeed({\n type: 'image',\n })\n\n if (!fileName) {\n fileName = newImageSeedLocalId\n if (mimeType) {\n fileName += `.${mimeType.split('/')[1]}`\n }\n }\n\n const filePath = `/files/images/${fileName}`\n\n const imageVersionLocalId = await createVersion({\n seedLocalId: newImageSeedLocalId,\n seedType: 'image',\n })\n\n if (fileData instanceof ArrayBuffer) {\n try {\n await BaseFileManager.saveFile(filePath, new Uint8Array(fileData))\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, new Uint8Array(fileData))\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n if (typeof fileData === 'string') {\n try {\n await BaseFileManager.saveFile(filePath, fileData)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, fileData)\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_SMALL, height: ImageSize.EXTRA_SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.SMALL, height: ImageSize.SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.MEDIUM, height: ImageSize.MEDIUM})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.LARGE, height: ImageSize.LARGE})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_LARGE, height: ImageSize.EXTRA_LARGE})\n\n const refResolvedDisplayValue = await BaseFileManager.getContentUrlFromPath(filePath)\n\n let newLocalId\n\n if (!localId) {\n const result = await createMetadata(\n {\n propertyName,\n propertyValue: newImageSeedLocalId,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n },\n propertyRecordSchema,\n )\n\n newLocalId = result[0].localId\n }\n\n if (localId) {\n await updateItemPropertyValue({\n localId: localId,\n propertyName: propertyNameRaw,\n newValue: newImageSeedLocalId,\n seedLocalId,\n versionLocalId,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n })\n }\n\n sendBack({\n type: 'updateContext',\n localId: newLocalId || localId,\n propertyValue: newImageSeedLocalId,\n refSeedType: 'image',\n refSchemaUid: imageSchemaUid,\n renderValue: refResolvedDisplayValue,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n schemaUid,\n })\n }\n\n _saveImageSrc().then(() => {\n sendBack({ type: 'saveImageSrcSuccess' })\n })\n})\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { BaseDb } from '../../../../db/Db/BaseDb.js';
|
|
3
|
+
import { getItemPropertyData } from '../../../../db/read/getItemProperty.js';
|
|
4
|
+
import { getItemData } from '../../../../db/read/getItemData.js';
|
|
5
|
+
import { eq, and } from 'drizzle-orm';
|
|
6
|
+
import '../../../../seedSchema/SeedSchema.js';
|
|
7
|
+
import '../../../../seedSchema/VersionSchema.js';
|
|
8
|
+
import { metadata } from '../../../../seedSchema/MetadataSchema.js';
|
|
9
|
+
import '../../../../seedSchema/AppStateSchema.js';
|
|
10
|
+
import '../../../../seedSchema/ModelSchema.js';
|
|
11
|
+
import '../../../../seedSchema/ModelUidSchema.js';
|
|
12
|
+
import { createMetadata } from '../../../../db/write/createMetadata.js';
|
|
13
|
+
import { BaseFileManager } from '../../../../helpers/FileManager/BaseFileManager.js';
|
|
14
|
+
|
|
15
|
+
const saveItemStorage = fromCallback(({ sendBack, input: { context, event } }) => {
|
|
16
|
+
const { localId, seedLocalId, seedUid, propertyName, propertyRecordSchema, modelName, propertyValue: existingValue, } = context;
|
|
17
|
+
if (!propertyRecordSchema) {
|
|
18
|
+
throw new Error('Missing propertyRecordSchema');
|
|
19
|
+
}
|
|
20
|
+
let newValue;
|
|
21
|
+
if (event) {
|
|
22
|
+
newValue = event.newValue;
|
|
23
|
+
}
|
|
24
|
+
if (existingValue === newValue) {
|
|
25
|
+
sendBack({ type: 'saveValueToDbSuccess' });
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const _saveItemStorage = async () => {
|
|
29
|
+
// Save value to file
|
|
30
|
+
const appDb = BaseDb.getAppDb();
|
|
31
|
+
let propertyData;
|
|
32
|
+
if (localId) {
|
|
33
|
+
propertyData = await getItemPropertyData({
|
|
34
|
+
localId,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (!localId && seedLocalId) {
|
|
38
|
+
const itemData = await getItemData({
|
|
39
|
+
seedLocalId,
|
|
40
|
+
});
|
|
41
|
+
if (itemData) {
|
|
42
|
+
const whereClauses = [
|
|
43
|
+
eq(metadata.propertyName, propertyName),
|
|
44
|
+
eq(metadata.seedLocalId, seedLocalId),
|
|
45
|
+
];
|
|
46
|
+
if (itemData.latestVersionLocalId) {
|
|
47
|
+
whereClauses.push(eq(metadata.versionLocalId, itemData.latestVersionLocalId));
|
|
48
|
+
}
|
|
49
|
+
const queryRows = await appDb
|
|
50
|
+
.select()
|
|
51
|
+
.from(metadata)
|
|
52
|
+
.where(and(...whereClauses));
|
|
53
|
+
if (queryRows && queryRows.length) {
|
|
54
|
+
propertyData = queryRows[0];
|
|
55
|
+
}
|
|
56
|
+
if (!propertyData && newValue) {
|
|
57
|
+
const filename = `${seedUid || seedLocalId}${propertyRecordSchema.filenameSuffix}`;
|
|
58
|
+
const writeToPath = `/files/${propertyRecordSchema.localStorageDir}/${filename}`;
|
|
59
|
+
await BaseFileManager.saveFile(writeToPath, newValue);
|
|
60
|
+
const propertyDataRows = await createMetadata({
|
|
61
|
+
propertyName,
|
|
62
|
+
propertyValue: filename,
|
|
63
|
+
modelType: modelName.toLowerCase(),
|
|
64
|
+
seedLocalId,
|
|
65
|
+
seedUid,
|
|
66
|
+
versionLocalId: itemData.latestVersionLocalId,
|
|
67
|
+
versionUid: itemData.latestVersionUid,
|
|
68
|
+
localStorageDir: propertyRecordSchema.localStorageDir,
|
|
69
|
+
refValueType: 'file',
|
|
70
|
+
}, propertyRecordSchema);
|
|
71
|
+
propertyData = propertyDataRows[0];
|
|
72
|
+
}
|
|
73
|
+
// propertyData = {
|
|
74
|
+
// propertyName,
|
|
75
|
+
// seedLocalId,
|
|
76
|
+
// seedUid,
|
|
77
|
+
// versionLocalId: itemData.latestVersionLocalId,
|
|
78
|
+
// versionUid: itemData.latestVersionUid,
|
|
79
|
+
// schemaUid: itemData.schemaUid,
|
|
80
|
+
// }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const localStorageDir = propertyRecordSchema.localStorageDir || propertyData.localStorageDir;
|
|
84
|
+
const fileName = propertyData.refResolvedValue ||
|
|
85
|
+
`${propertyData.seedUid || propertyData.seedLocalId}${propertyRecordSchema.filenameSuffix}`;
|
|
86
|
+
if (!localStorageDir || !fileName) {
|
|
87
|
+
throw new Error(`Missing localStorageDir: ${localStorageDir} or fileName: ${fileName}`);
|
|
88
|
+
}
|
|
89
|
+
const filePath = `/files/${localStorageDir}/${fileName}`;
|
|
90
|
+
try {
|
|
91
|
+
await BaseFileManager.saveFile(filePath, newValue);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
const fs = await BaseFileManager.getFs();
|
|
95
|
+
fs.writeFileSync(filePath, newValue);
|
|
96
|
+
}
|
|
97
|
+
await appDb
|
|
98
|
+
.update(metadata)
|
|
99
|
+
.set({
|
|
100
|
+
refResolvedValue: fileName,
|
|
101
|
+
})
|
|
102
|
+
.where(eq(metadata.localId, propertyData.localId));
|
|
103
|
+
sendBack({
|
|
104
|
+
type: 'updateContext',
|
|
105
|
+
renderValue: newValue,
|
|
106
|
+
});
|
|
107
|
+
return true;
|
|
108
|
+
};
|
|
109
|
+
_saveItemStorage().then((success) => {
|
|
110
|
+
if (success) {
|
|
111
|
+
sendBack({ type: 'saveItemStorageSuccess' });
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
export { saveItemStorage };
|
|
117
|
+
//# sourceMappingURL=saveItemStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveItemStorage.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getItemPropertyData } from '@/db/read/getItemProperty'\nimport { getItemData } from '@/db/read/getItemData'\nimport { and, eq } from 'drizzle-orm'\nimport { metadata } from '@/seedSchema'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nexport const saveItemStorage = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n seedLocalId,\n seedUid,\n propertyName,\n propertyRecordSchema,\n modelName,\n propertyValue: existingValue,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveItemStorage = async (): Promise<boolean> => {\n // Save value to file\n const appDb = BaseDb.getAppDb()\n let propertyData\n\n if (localId) {\n propertyData = await getItemPropertyData({\n localId,\n })\n }\n\n if (!localId && seedLocalId) {\n const itemData = await getItemData({\n seedLocalId,\n })\n if (itemData) {\n const whereClauses = [\n eq(metadata.propertyName, propertyName),\n eq(metadata.seedLocalId, seedLocalId),\n ]\n\n if (itemData.latestVersionLocalId) {\n whereClauses.push(\n eq(metadata.versionLocalId, itemData.latestVersionLocalId),\n )\n }\n\n const queryRows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n\n if (queryRows && queryRows.length) {\n propertyData = queryRows[0]\n }\n\n if (!propertyData && newValue) {\n\n const filename = `${seedUid || seedLocalId}${propertyRecordSchema.filenameSuffix}`\n const writeToPath = `/files/${propertyRecordSchema.localStorageDir}/${filename}`\n await BaseFileManager.saveFile(writeToPath, newValue as string | Blob | ArrayBuffer)\n\n const propertyDataRows = await createMetadata(\n {\n propertyName,\n propertyValue: filename,\n modelType: modelName.toLowerCase(),\n seedLocalId,\n seedUid,\n versionLocalId: itemData.latestVersionLocalId,\n versionUid: itemData.latestVersionUid,\n localStorageDir: propertyRecordSchema.localStorageDir,\n refValueType: 'file',\n },\n propertyRecordSchema,\n )\n\n propertyData = propertyDataRows[0]\n }\n\n // propertyData = {\n // propertyName,\n // seedLocalId,\n // seedUid,\n // versionLocalId: itemData.latestVersionLocalId,\n // versionUid: itemData.latestVersionUid,\n // schemaUid: itemData.schemaUid,\n // }\n }\n }\n\n const localStorageDir =\n propertyRecordSchema.localStorageDir || propertyData.localStorageDir\n const fileName =\n propertyData.refResolvedValue ||\n `${propertyData.seedUid || propertyData.seedLocalId}${propertyRecordSchema.filenameSuffix}`\n\n if (!localStorageDir || !fileName) {\n throw new Error(\n `Missing localStorageDir: ${localStorageDir} or fileName: ${fileName}`,\n )\n }\n\n const filePath = `/files/${localStorageDir}/${fileName}`\n try {\n await BaseFileManager.saveFile(filePath, newValue as string | Blob | ArrayBuffer)\n } catch (error) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, newValue)\n }\n\n await appDb\n .update(metadata)\n .set({\n refResolvedValue: fileName,\n })\n .where(eq(metadata.localId, propertyData.localId))\n\n sendBack({\n type: 'updateContext',\n renderValue: newValue,\n })\n\n return true\n }\n\n _saveItemStorage().then((success) => {\n if (success) {\n sendBack({ type: 'saveItemStorageSuccess' })\n }\n })\n})\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { getDataTypeFromString } from '../../../../helpers/index.js';
|
|
3
|
+
|
|
4
|
+
const saveRelation = fromCallback(({ sendBack, input: { context, event } }) => {
|
|
5
|
+
const { localId, propertyName: propertyNameRaw, versionLocalId, seedUid, seedLocalId, propertyValue: existingValue, propertyRecordSchema, } = context;
|
|
6
|
+
if (!propertyRecordSchema) {
|
|
7
|
+
throw new Error('Missing propertyRecordSchema');
|
|
8
|
+
}
|
|
9
|
+
let newValue;
|
|
10
|
+
if (event) {
|
|
11
|
+
newValue = event.newValue;
|
|
12
|
+
}
|
|
13
|
+
const _saveRelation = async () => {
|
|
14
|
+
let propertyName = propertyNameRaw;
|
|
15
|
+
if (!propertyName.endsWith('Id')) {
|
|
16
|
+
propertyName = `${propertyName}Id`;
|
|
17
|
+
}
|
|
18
|
+
let newValueType;
|
|
19
|
+
if (typeof newValue === 'string') {
|
|
20
|
+
newValueType = getDataTypeFromString(newValue);
|
|
21
|
+
}
|
|
22
|
+
if (newValue instanceof File) {
|
|
23
|
+
newValueType = 'file';
|
|
24
|
+
}
|
|
25
|
+
if (propertyRecordSchema.dataType === 'ImageSrc') {
|
|
26
|
+
sendBack({
|
|
27
|
+
type: 'saveImageSrc',
|
|
28
|
+
newValue,
|
|
29
|
+
newValueType,
|
|
30
|
+
});
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
// let fileType
|
|
35
|
+
//
|
|
36
|
+
// const dirs = await fs.promises.readdir('/files')
|
|
37
|
+
//
|
|
38
|
+
// for (const dir of dirs) {
|
|
39
|
+
// const files = await fs.promises.readdir(`/files/${dir}`)
|
|
40
|
+
// if (newValue && files.includes(newValue as string)) {
|
|
41
|
+
// fileType = dir
|
|
42
|
+
// break
|
|
43
|
+
// }
|
|
44
|
+
// }
|
|
45
|
+
//
|
|
46
|
+
// if (newValue && fileType === 'images') {
|
|
47
|
+
// const filePath = `/files/images/${newValue}`
|
|
48
|
+
// refResolvedDisplayValue = await getContentUrlFromPath(filePath)
|
|
49
|
+
// refSeedType = 'image'
|
|
50
|
+
// newValue = await createSeed({
|
|
51
|
+
// type: refSeedType,
|
|
52
|
+
// })
|
|
53
|
+
// await createVersion({
|
|
54
|
+
// seedLocalId,
|
|
55
|
+
// seedUid,
|
|
56
|
+
// seedType: refSeedType,
|
|
57
|
+
// })
|
|
58
|
+
// }
|
|
59
|
+
//
|
|
60
|
+
// await updateItemPropertyValue({
|
|
61
|
+
// propertyLocalId: localId,
|
|
62
|
+
// propertyName,
|
|
63
|
+
// newValue,
|
|
64
|
+
// seedLocalId,
|
|
65
|
+
// refSeedType,
|
|
66
|
+
// refResolvedValue,
|
|
67
|
+
// refResolvedDisplayValue,
|
|
68
|
+
// versionLocalId,
|
|
69
|
+
// modelName: itemModelName,
|
|
70
|
+
// schemaUid,
|
|
71
|
+
// })
|
|
72
|
+
};
|
|
73
|
+
_saveRelation().then((isDone) => {
|
|
74
|
+
if (isDone) {
|
|
75
|
+
sendBack({ type: 'saveRelationSuccess' });
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
export { saveRelation };
|
|
81
|
+
//# sourceMappingURL=saveRelation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveRelation.js","sources":["../../../../../../../src/ItemProperty/service/actors/saveValueToDb/saveRelation.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { getDataTypeFromString } from '@/helpers'\n\nexport const saveRelation = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n versionLocalId,\n seedUid,\n seedLocalId,\n propertyValue: existingValue,\n propertyRecordSchema,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n const _saveRelation = async (): Promise<boolean> => {\n let refResolvedDisplayValue\n let refSeedType\n let propertyName = propertyNameRaw\n let versionLocalIdToSave = versionLocalId\n\n const refResolvedValue = newValue\n\n if (!propertyName.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValue instanceof File) {\n newValueType = 'file'\n }\n\n if (propertyRecordSchema.dataType === 'ImageSrc') {\n sendBack({\n type: 'saveImageSrc',\n newValue,\n newValueType,\n })\n return false\n }\n\n return true\n\n // let fileType\n //\n // const dirs = await fs.promises.readdir('/files')\n //\n // for (const dir of dirs) {\n // const files = await fs.promises.readdir(`/files/${dir}`)\n // if (newValue && files.includes(newValue as string)) {\n // fileType = dir\n // break\n // }\n // }\n //\n // if (newValue && fileType === 'images') {\n // const filePath = `/files/images/${newValue}`\n // refResolvedDisplayValue = await getContentUrlFromPath(filePath)\n // refSeedType = 'image'\n // newValue = await createSeed({\n // type: refSeedType,\n // })\n // await createVersion({\n // seedLocalId,\n // seedUid,\n // seedType: refSeedType,\n // })\n // }\n //\n // await updateItemPropertyValue({\n // propertyLocalId: localId,\n // propertyName,\n // newValue,\n // seedLocalId,\n // refSeedType,\n // refResolvedValue,\n // refResolvedDisplayValue,\n // versionLocalId,\n // modelName: itemModelName,\n // schemaUid,\n // })\n }\n\n _saveRelation().then((isDone) => {\n if (isDone) {\n sendBack({ type: 'saveRelationSuccess' })\n }\n })\n})\n"],"names":[],"mappings":";;;AASa,MAAA,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;IAC5C,MAAM,EACJ,OAAO,EACP,YAAY,EAAE,eAAe,EAC7B,cAAc,EACd,OAAO,EACP,WAAW,EACX,aAAa,EAAE,aAAa,EAC5B,oBAAoB,GACrB,GAAG,OAAO;IAEX,IAAI,CAAC,oBAAoB,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGjD,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,MAAM,aAAa,GAAG,YAA6B;QAGjD,IAAI,YAAY,GAAG,eAAe;QAKlC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI;;AAGpC,QAAA,IAAI,YAAY;AAEhB,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAGhD,QAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;YAC5B,YAAY,GAAG,MAAM;;AAGvB,QAAA,IAAI,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChD,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;gBACpB,QAAQ;gBACR,YAAY;AACb,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCb,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;QAC9B,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;AAE7C,KAAC,CAAC;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { BaseDb } from '../../../db/Db/BaseDb.js';
|
|
3
|
+
import debug from 'debug';
|
|
4
|
+
|
|
5
|
+
debug('seedSdk:ItemProperty:service:actors:waitForDb');
|
|
6
|
+
const waitForDb = fromCallback(({ sendBack }) => {
|
|
7
|
+
const _waitForDb = new Promise((resolve) => {
|
|
8
|
+
const interval = setInterval(() => {
|
|
9
|
+
const appDb = BaseDb.getAppDb();
|
|
10
|
+
if (appDb) {
|
|
11
|
+
clearInterval(interval);
|
|
12
|
+
resolve();
|
|
13
|
+
}
|
|
14
|
+
}, 100);
|
|
15
|
+
});
|
|
16
|
+
_waitForDb.then(() => {
|
|
17
|
+
sendBack({ type: 'waitForDbSuccess' });
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export { waitForDb };
|
|
22
|
+
//# sourceMappingURL=waitForDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForDb.js","sources":["../../../../../../src/ItemProperty/service/actors/waitForDb.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PropertyMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:ItemProperty:service:actors:waitForDb')\n\nexport const waitForDb = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext>\n>(({ sendBack }) => {\n const _waitForDb = new Promise<void>((resolve) => {\n const interval = setInterval(() => {\n const appDb = BaseDb.getAppDb()\n if (appDb) {\n clearInterval(interval)\n resolve()\n }\n }, 100)\n })\n\n _waitForDb.then(() => {\n sendBack({ type: 'waitForDbSuccess' })\n })\n})\n"],"names":[],"mappings":";;;;AAKe,KAAK,CAAC,+CAA+C;AAEvD,MAAA,SAAS,GAAG,YAAY,CAGnC,CAAC,EAAE,QAAQ,EAAE,KAAI;IACjB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAC/C,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;YAC/B,IAAI,KAAK,EAAE;gBACT,aAAa,CAAC,QAAQ,CAAC;AACvB,gBAAA,OAAO,EAAE;;SAEZ,EAAE,GAAG,CAAC;AACT,KAAC,CAAC;AAEF,IAAA,UAAU,CAAC,IAAI,CAAC,MAAK;AACnB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACxC,KAAC,CAAC;AACJ,CAAC;;;;"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { setup, assign } from 'xstate';
|
|
2
|
+
import { resolveRemoteStorage } from './actors/resolveRemoteStorage.js';
|
|
3
|
+
import { waitForDb } from './actors/waitForDb.js';
|
|
4
|
+
import { initialize } from './actors/initialize.js';
|
|
5
|
+
import { resolveRelatedValue } from './actors/resolveRelatedValue.js';
|
|
6
|
+
import { hydrateFromDb } from './actors/hydrateFromDb.js';
|
|
7
|
+
import { analyzeInput } from './actors/saveValueToDb/analyzeInput.js';
|
|
8
|
+
import { saveImageSrc } from './actors/saveValueToDb/saveImageSrc.js';
|
|
9
|
+
import { saveRelation } from './actors/saveValueToDb/saveRelation.js';
|
|
10
|
+
import { saveItemStorage } from './actors/saveValueToDb/saveItemStorage.js';
|
|
11
|
+
|
|
12
|
+
// import { updateMachineContext } from '@/helpers'
|
|
13
|
+
const propertyMachine = setup({
|
|
14
|
+
types: {
|
|
15
|
+
context: {},
|
|
16
|
+
input: {},
|
|
17
|
+
},
|
|
18
|
+
// actions: {
|
|
19
|
+
// updateContext: updateMachineContext,
|
|
20
|
+
// },
|
|
21
|
+
actors: {
|
|
22
|
+
waitForDb,
|
|
23
|
+
hydrateFromDb,
|
|
24
|
+
initialize,
|
|
25
|
+
resolveRelatedValue,
|
|
26
|
+
resolveRemoteStorage,
|
|
27
|
+
analyzeInput,
|
|
28
|
+
saveImageSrc,
|
|
29
|
+
saveRelation,
|
|
30
|
+
saveItemStorage,
|
|
31
|
+
},
|
|
32
|
+
}).createMachine({
|
|
33
|
+
id: 'itemProperty',
|
|
34
|
+
initial: 'waitingForDb',
|
|
35
|
+
context: ({ input }) => input,
|
|
36
|
+
on: {
|
|
37
|
+
// reload: '.hydratingFromDb',
|
|
38
|
+
save: {
|
|
39
|
+
actions: assign({
|
|
40
|
+
isSaving: true,
|
|
41
|
+
}),
|
|
42
|
+
target: '.saving',
|
|
43
|
+
},
|
|
44
|
+
updateContext: {
|
|
45
|
+
actions: assign(({ context, event }) => {
|
|
46
|
+
const newContext = Object.assign({}, context);
|
|
47
|
+
for (let i = 0; i < Object.keys(event).length; i++) {
|
|
48
|
+
const key = Object.keys(event)[i];
|
|
49
|
+
if (key === 'type') {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
newContext[key] = event[key];
|
|
53
|
+
}
|
|
54
|
+
return newContext;
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
states: {
|
|
59
|
+
idle: {},
|
|
60
|
+
waitingForDb: {
|
|
61
|
+
on: {
|
|
62
|
+
waitForDbSuccess: {
|
|
63
|
+
target: 'hydratingFromDb',
|
|
64
|
+
actions: assign({
|
|
65
|
+
isDbReady: true,
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
invoke: {
|
|
70
|
+
src: 'waitForDb',
|
|
71
|
+
input: ({ context }) => ({ context }),
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
hydratingFromDb: {
|
|
75
|
+
on: {
|
|
76
|
+
hydrateFromDbSuccess: 'initializing',
|
|
77
|
+
},
|
|
78
|
+
invoke: {
|
|
79
|
+
src: 'hydrateFromDb',
|
|
80
|
+
input: ({ context }) => ({ context }),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
initializing: {
|
|
84
|
+
on: {
|
|
85
|
+
initializeSuccess: 'idle',
|
|
86
|
+
isRelatedProperty: {
|
|
87
|
+
target: 'resolvingRelatedValue',
|
|
88
|
+
},
|
|
89
|
+
hasRemoteBackup: {
|
|
90
|
+
target: 'resolvingRemoteStorage',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
invoke: {
|
|
94
|
+
src: 'initialize',
|
|
95
|
+
input: ({ context, event }) => ({ context, event }),
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
resolvingRelatedValue: {
|
|
99
|
+
on: {
|
|
100
|
+
resolvingRelatedValueSuccess: {
|
|
101
|
+
target: 'idle',
|
|
102
|
+
actions: assign({
|
|
103
|
+
refResolvedDisplayValue: ({ event }) => event.refResolvedDisplayValue,
|
|
104
|
+
refResolvedValue: ({ event }) => event.refResolvedValue,
|
|
105
|
+
}),
|
|
106
|
+
},
|
|
107
|
+
resolvingRelatedValueDone: {
|
|
108
|
+
target: 'idle',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
invoke: {
|
|
112
|
+
src: 'resolveRelatedValue',
|
|
113
|
+
input: ({ context }) => ({ context }),
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
resolvingRemoteStorage: {
|
|
117
|
+
on: {
|
|
118
|
+
resolveRemoteStorageSuccess: {
|
|
119
|
+
target: 'idle',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
invoke: {
|
|
123
|
+
src: 'resolveRemoteStorage',
|
|
124
|
+
input: ({ context }) => ({ context }),
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
saving: {
|
|
128
|
+
initial: 'analyzingInput',
|
|
129
|
+
states: {
|
|
130
|
+
analyzingInput: {
|
|
131
|
+
on: {
|
|
132
|
+
saveValueToDbSuccess: {
|
|
133
|
+
target: 'doneSaving',
|
|
134
|
+
},
|
|
135
|
+
saveImageSrc: 'savingImageSrc',
|
|
136
|
+
saveRelation: 'savingRelation',
|
|
137
|
+
saveItemStorage: 'savingItemStorage',
|
|
138
|
+
},
|
|
139
|
+
invoke: {
|
|
140
|
+
src: 'analyzeInput',
|
|
141
|
+
input: ({ context, event }) => ({ context, event }),
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
savingImageSrc: {
|
|
145
|
+
on: {
|
|
146
|
+
saveImageSrcSuccess: 'doneSaving',
|
|
147
|
+
},
|
|
148
|
+
invoke: {
|
|
149
|
+
src: 'saveImageSrc',
|
|
150
|
+
input: ({ context, event }) => ({ context, event }),
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
savingRelation: {
|
|
154
|
+
on: {
|
|
155
|
+
saveRelationSuccess: 'doneSaving',
|
|
156
|
+
},
|
|
157
|
+
invoke: {
|
|
158
|
+
src: 'saveRelation',
|
|
159
|
+
input: ({ context, event }) => ({ context, event }),
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
savingItemStorage: {
|
|
163
|
+
on: {
|
|
164
|
+
saveItemStorageSuccess: 'doneSaving',
|
|
165
|
+
},
|
|
166
|
+
invoke: {
|
|
167
|
+
src: 'saveItemStorage',
|
|
168
|
+
input: ({ context, event }) => ({ context, event }),
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
doneSaving: {
|
|
172
|
+
type: 'final',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
onDone: {
|
|
176
|
+
target: 'idle',
|
|
177
|
+
actions: assign(({ context }) => {
|
|
178
|
+
return {
|
|
179
|
+
isSaving: false,
|
|
180
|
+
};
|
|
181
|
+
}),
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
// conflict: {
|
|
186
|
+
// on: {
|
|
187
|
+
// resolveConflict: {
|
|
188
|
+
// target: 'saving',
|
|
189
|
+
// actions: assign({
|
|
190
|
+
// data: ({ context, event }) => event.output,
|
|
191
|
+
// }),
|
|
192
|
+
// },
|
|
193
|
+
// },
|
|
194
|
+
// },
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
export { propertyMachine };
|
|
198
|
+
//# sourceMappingURL=propertyMachine.js.map
|