@seedprotocol/sdk 0.3.3 → 0.3.5
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/addModel.js +89 -0
- package/dist/addModel.js.map +1 -0
- package/dist/bin.js +78 -134
- package/dist/bin.js.map +1 -1
- package/dist/db/configs/browser.app.db.config.ts +1 -0
- package/dist/db/configs/node.app.db.config.ts +1 -0
- package/dist/main.js +15 -23
- package/dist/main.js.map +1 -1
- package/dist/node/codegen/templates/model.njk +14 -0
- package/dist/scripts/addModel.d.ts +3 -0
- package/dist/scripts/addModel.d.ts.map +1 -0
- package/dist/scripts/bin.d.ts.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/src/db/configs/browser.app.db.config.d.ts.map +1 -1
- package/dist/src/db/configs/node.app.db.config.d.ts.map +1 -1
- 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.d.ts +1 -0
- package/dist/src/helpers/constants.d.ts.map +1 -1
- package/dist/src/helpers/constants.js +74 -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/index.d.ts +1 -1
- 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 +4 -1
- package/dist/src/node/codegen/drizzle.d.ts.map +1 -1
- package/dist/src/node/codegen/drizzle.js +86 -0
- package/dist/src/node/codegen/drizzle.js.map +1 -0
- package/dist/src/node/constants.d.ts.map +1 -1
- package/dist/src/node/constants.js +37 -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 +39 -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 +96 -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/index.d.ts.map +1 -1
- package/dist/src/schema/model/index.d.ts +8 -8
- 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.d.ts +58 -32
- package/dist/src/schema/property/index.d.ts.map +1 -1
- package/dist/src/schema/property/index.js +89 -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 +9 -7
- 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,309 @@
|
|
|
1
|
+
import { itemMachineSingle } from './service/itemMachineSingle.js';
|
|
2
|
+
import { internalPropertyNames } from '../helpers/constants.js';
|
|
3
|
+
import { getModel } from '../stores/modelClass.js';
|
|
4
|
+
import { immerable } from 'immer';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { createActor } from 'xstate';
|
|
7
|
+
import pluralize from 'pluralize';
|
|
8
|
+
import { startCase, orderBy } from 'lodash-es';
|
|
9
|
+
import { waitForEvent } from '../events/index.js';
|
|
10
|
+
import { getItemData } from '../db/read/getItemData.js';
|
|
11
|
+
import { getItemsData } from '../db/read/getItems.js';
|
|
12
|
+
import { BaseItemProperty } from '../ItemProperty/BaseItemProperty.js';
|
|
13
|
+
import { getItemProperties } from '../db/read/getItemProperties.js';
|
|
14
|
+
import { getPublishUploads } from '../db/read/getPublishUploads.js';
|
|
15
|
+
import { getPublishPayload } from '../db/read/getPublishPayload.js';
|
|
16
|
+
import { createNewItem } from '../db/write/createNewItem.js';
|
|
17
|
+
|
|
18
|
+
var _a;
|
|
19
|
+
class BaseItem {
|
|
20
|
+
constructor(initialValues) {
|
|
21
|
+
this[_a] = true;
|
|
22
|
+
this._propertiesSubject = new BehaviorSubject({});
|
|
23
|
+
this.subscribe = (callback) => {
|
|
24
|
+
return this._service.subscribe((snapshot) => {
|
|
25
|
+
callback(snapshot.context);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
this.getService = () => {
|
|
29
|
+
return this._service;
|
|
30
|
+
};
|
|
31
|
+
this.getEditedProperties = async () => {
|
|
32
|
+
return await getItemProperties({
|
|
33
|
+
seedLocalId: this.seedLocalId,
|
|
34
|
+
edited: true,
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
this.publish = async () => {
|
|
38
|
+
await waitForEvent({
|
|
39
|
+
req: {
|
|
40
|
+
eventLabel: `item.publish.request`,
|
|
41
|
+
data: {
|
|
42
|
+
seedLocalId: this.seedLocalId,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
res: {
|
|
46
|
+
eventLabel: `item.${this.seedLocalId}.publish.success`,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
this.getPublishUploads = async () => {
|
|
51
|
+
return await getPublishUploads(this);
|
|
52
|
+
};
|
|
53
|
+
this.getPublishPayload = async (uploadedTransactions) => {
|
|
54
|
+
return await getPublishPayload(this, uploadedTransactions);
|
|
55
|
+
};
|
|
56
|
+
const { modelName, seedUid, schemaUid, seedLocalId, latestVersionLocalId, latestVersionUid, } = initialValues;
|
|
57
|
+
const ModelClass = getModel(modelName);
|
|
58
|
+
if (ModelClass &&
|
|
59
|
+
Object.keys(ModelClass?.schema).includes('storageTransactionId') &&
|
|
60
|
+
initialValues.storageTransactionId) {
|
|
61
|
+
this._storageTransactionId = initialValues.storageTransactionId;
|
|
62
|
+
}
|
|
63
|
+
this._service = createActor(itemMachineSingle, {
|
|
64
|
+
input: {
|
|
65
|
+
seedLocalId,
|
|
66
|
+
seedUid,
|
|
67
|
+
schemaUid,
|
|
68
|
+
ModelClass,
|
|
69
|
+
latestVersionLocalId,
|
|
70
|
+
latestVersionUid,
|
|
71
|
+
storageTransactionId: this._storageTransactionId,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
this._subscription = this._service.subscribe((snapshot) => {
|
|
75
|
+
const { context } = snapshot;
|
|
76
|
+
if (!context ||
|
|
77
|
+
!context.propertyInstances ||
|
|
78
|
+
context.propertyInstances.size === 0) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const propertiesObj = {};
|
|
82
|
+
for (const [key, propertyInstance] of context.propertyInstances) {
|
|
83
|
+
if (typeof key !== 'string' || internalPropertyNames.includes(key)) {
|
|
84
|
+
propertiesObj[key.toString()] = propertyInstance;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
let transformedKey = key;
|
|
88
|
+
if (propertyInstance.alias) {
|
|
89
|
+
transformedKey = propertyInstance.alias;
|
|
90
|
+
}
|
|
91
|
+
if (!propertyInstance.alias && key.endsWith('Ids')) {
|
|
92
|
+
transformedKey = key.slice(0, -3); // Remove 'Ids'
|
|
93
|
+
transformedKey = pluralize(transformedKey);
|
|
94
|
+
}
|
|
95
|
+
if (!propertyInstance.alias && key.endsWith('Id')) {
|
|
96
|
+
transformedKey = key.slice(0, -2); // Remove 'Id'
|
|
97
|
+
}
|
|
98
|
+
propertiesObj[transformedKey] = propertyInstance;
|
|
99
|
+
}
|
|
100
|
+
this._propertiesSubject.next(propertiesObj);
|
|
101
|
+
// eventEmitter.emit(`item.${modelName}.${seedUid || seedLocalId}.update`)
|
|
102
|
+
});
|
|
103
|
+
this._service.start();
|
|
104
|
+
const definedKeys = ['ModelClass'];
|
|
105
|
+
const itemPropertyBase = {
|
|
106
|
+
seedLocalId,
|
|
107
|
+
seedUid,
|
|
108
|
+
versionLocalId: latestVersionLocalId,
|
|
109
|
+
versionUid: latestVersionUid,
|
|
110
|
+
modelName: modelName,
|
|
111
|
+
};
|
|
112
|
+
if (ModelClass && ModelClass.schema) {
|
|
113
|
+
const schema = ModelClass.schema;
|
|
114
|
+
for (const [propertyName, propertyRecordSchema] of Object.entries(schema)) {
|
|
115
|
+
if (!propertyRecordSchema) {
|
|
116
|
+
throw new Error(`Property ${propertyName} has no definition`);
|
|
117
|
+
}
|
|
118
|
+
this._createPropertyInstance({
|
|
119
|
+
...itemPropertyBase,
|
|
120
|
+
propertyName,
|
|
121
|
+
propertyValue: initialValues[propertyName],
|
|
122
|
+
});
|
|
123
|
+
definedKeys.push(propertyName);
|
|
124
|
+
if (propertyRecordSchema.dataType === 'Relation' &&
|
|
125
|
+
!propertyName.endsWith('Id')) {
|
|
126
|
+
definedKeys.push(`${propertyName}Id`);
|
|
127
|
+
}
|
|
128
|
+
if (propertyRecordSchema.dataType === 'List' &&
|
|
129
|
+
!propertyName.endsWith('Ids')) {
|
|
130
|
+
const singularPropertyName = pluralize.singular(propertyName);
|
|
131
|
+
const propertyNameForSchema = `${singularPropertyName}${propertyRecordSchema.ref}Ids`;
|
|
132
|
+
definedKeys.push(propertyNameForSchema);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
Object.keys(initialValues).forEach((key) => {
|
|
137
|
+
// If we already defined it, that means it was in the schema
|
|
138
|
+
if (definedKeys.includes(key)) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this._createPropertyInstance({
|
|
142
|
+
...itemPropertyBase,
|
|
143
|
+
propertyName: key,
|
|
144
|
+
propertyValue: initialValues[key],
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
static setPlatformClass(platformClass) {
|
|
149
|
+
this.PlatformClass = platformClass;
|
|
150
|
+
}
|
|
151
|
+
static async create(props) {
|
|
152
|
+
if (!props.modelName && props.type) {
|
|
153
|
+
props.modelName = startCase(props.type);
|
|
154
|
+
}
|
|
155
|
+
if (props.seedUid || props.seedLocalId) {
|
|
156
|
+
const seedId = (props.seedUid || props.seedLocalId);
|
|
157
|
+
if (this.instanceCache.has(seedId)) {
|
|
158
|
+
const { instance, refCount } = this.instanceCache.get(seedId);
|
|
159
|
+
this.instanceCache.set(seedId, {
|
|
160
|
+
instance,
|
|
161
|
+
refCount: refCount + 1,
|
|
162
|
+
});
|
|
163
|
+
for (const [propertyName, propertyValue] of Object.entries(props)) {
|
|
164
|
+
const propertyInstances = instance.getService().getSnapshot()
|
|
165
|
+
.context.propertyInstances;
|
|
166
|
+
if (!propertyInstances || !propertyInstances.has(propertyName)) {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const propertyInstance = propertyInstances.get(propertyName);
|
|
170
|
+
if (!propertyInstance) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
propertyInstance.getService().send({
|
|
174
|
+
type: 'updateContext',
|
|
175
|
+
propertyValue,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return instance;
|
|
179
|
+
}
|
|
180
|
+
if (!this.instanceCache.has(seedId)) {
|
|
181
|
+
const newInstance = new this(props);
|
|
182
|
+
this.instanceCache.set(seedId, {
|
|
183
|
+
instance: newInstance,
|
|
184
|
+
refCount: 1,
|
|
185
|
+
});
|
|
186
|
+
return newInstance;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (!props.modelName) {
|
|
190
|
+
throw new Error('Model name is required to create an item');
|
|
191
|
+
}
|
|
192
|
+
const { seedLocalId, versionLocalId, } = await createNewItem({
|
|
193
|
+
modelName: props.modelName,
|
|
194
|
+
...props,
|
|
195
|
+
});
|
|
196
|
+
props.seedLocalId = seedLocalId;
|
|
197
|
+
props.latestVersionLocalId = versionLocalId;
|
|
198
|
+
const newInstance = new this(props);
|
|
199
|
+
this.instanceCache.set(newInstance.seedUid || newInstance.seedLocalId, {
|
|
200
|
+
instance: newInstance,
|
|
201
|
+
refCount: 1,
|
|
202
|
+
});
|
|
203
|
+
return newInstance;
|
|
204
|
+
}
|
|
205
|
+
static async find({ modelName, seedLocalId, seedUid, }) {
|
|
206
|
+
if (!seedLocalId && !seedUid) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const itemData = await getItemData({
|
|
210
|
+
modelName,
|
|
211
|
+
seedLocalId,
|
|
212
|
+
seedUid,
|
|
213
|
+
});
|
|
214
|
+
if (!itemData) {
|
|
215
|
+
console.error('No item data found', { modelName, seedLocalId, seedUid });
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
return BaseItem.create({
|
|
219
|
+
...itemData,
|
|
220
|
+
modelName,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
static async all(modelName, deleted) {
|
|
224
|
+
const itemsData = await getItemsData({ modelName, deleted });
|
|
225
|
+
const itemInstances = [];
|
|
226
|
+
for (const itemData of itemsData) {
|
|
227
|
+
itemInstances.push(await BaseItem.create({
|
|
228
|
+
...itemData,
|
|
229
|
+
modelName,
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
return orderBy(itemInstances, ['createdAt'], ['desc']);
|
|
233
|
+
}
|
|
234
|
+
_createPropertyInstance(props) {
|
|
235
|
+
if (this._storageTransactionId) {
|
|
236
|
+
props.storageTransactionId = this._storageTransactionId;
|
|
237
|
+
}
|
|
238
|
+
const propertyInstance = BaseItemProperty.create(props);
|
|
239
|
+
if (!propertyInstance || !props.propertyName) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
this._service.send({
|
|
243
|
+
type: 'addPropertyInstance',
|
|
244
|
+
propertyName: props.propertyName,
|
|
245
|
+
propertyInstance,
|
|
246
|
+
});
|
|
247
|
+
Object.defineProperty(this, props.propertyName, {
|
|
248
|
+
get: () => propertyInstance.value,
|
|
249
|
+
set: (value) => (propertyInstance.value = value),
|
|
250
|
+
enumerable: true,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
static async publish(item) {
|
|
254
|
+
await waitForEvent({
|
|
255
|
+
req: {
|
|
256
|
+
eventLabel: `item.${item.seedLocalId}.publish.request`,
|
|
257
|
+
data: {
|
|
258
|
+
seedLocalId: item.seedLocalId,
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
res: {
|
|
262
|
+
eventLabel: `item.${item.seedLocalId}.publish.success`,
|
|
263
|
+
},
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
get serviceContext() {
|
|
267
|
+
const snapshot = this._service.getSnapshot();
|
|
268
|
+
return snapshot.context || {};
|
|
269
|
+
}
|
|
270
|
+
get seedLocalId() {
|
|
271
|
+
return this.serviceContext.seedLocalId;
|
|
272
|
+
}
|
|
273
|
+
get seedUid() {
|
|
274
|
+
return this.serviceContext.seedUid;
|
|
275
|
+
}
|
|
276
|
+
get schemaUid() {
|
|
277
|
+
return this.serviceContext.schemaUid;
|
|
278
|
+
}
|
|
279
|
+
get latestVersionUid() {
|
|
280
|
+
return this.serviceContext.latestVersionUid;
|
|
281
|
+
}
|
|
282
|
+
get latestVersionLocalId() {
|
|
283
|
+
return this.serviceContext.latestVersionLocalId;
|
|
284
|
+
}
|
|
285
|
+
get modelName() {
|
|
286
|
+
return this.serviceContext.modelName;
|
|
287
|
+
}
|
|
288
|
+
get properties() {
|
|
289
|
+
return this._propertiesSubject.value;
|
|
290
|
+
}
|
|
291
|
+
get attestationCreatedAt() {
|
|
292
|
+
return this.serviceContext.attestationCreatedAt;
|
|
293
|
+
}
|
|
294
|
+
get versionsCount() {
|
|
295
|
+
return this.serviceContext.versionsCount;
|
|
296
|
+
}
|
|
297
|
+
get lastVersionPublishedAt() {
|
|
298
|
+
return this.serviceContext.lastVersionPublishedAt;
|
|
299
|
+
}
|
|
300
|
+
unload() {
|
|
301
|
+
this._subscription?.unsubscribe();
|
|
302
|
+
this._service.stop();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
_a = immerable;
|
|
306
|
+
BaseItem.instanceCache = new Map();
|
|
307
|
+
|
|
308
|
+
export { BaseItem };
|
|
309
|
+
//# sourceMappingURL=BaseItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseItem.js","sources":["../../../../src/Item/BaseItem.ts"],"sourcesContent":["import { IItem, IItemProperty } from '@/interfaces'\nimport { itemMachineSingle } from '@/Item/service/itemMachineSingle'\nimport { internalPropertyNames } from '@/helpers/constants'\nimport { VersionsType } from '@/seedSchema/VersionSchema'\nimport { getModel } from '@/stores/modelClass'\n\nimport {\n CreatePropertyInstanceProps,\n ItemData,\n ItemFindProps,\n ModelSchema,\n ModelValues,\n NewItemProps,\n PropertyData\n} from '@/types'\n\nimport { immerable } from 'immer'\nimport { BehaviorSubject } from 'rxjs'\nimport { ActorRefFrom, Subscription, createActor } from 'xstate'\nimport { eventEmitter } from '@/eventBus'\nimport pluralize from 'pluralize'\nimport { orderBy, startCase } from 'lodash-es'\nimport { waitForEvent } from '@/events'\nimport { getItemData } from '@/db/read/getItemData'\nimport { getItemsData } from '@/db/read/getItems'\nimport { BaseItemProperty } from '@/ItemProperty/BaseItemProperty'\nimport { getItemProperties } from '@/db/read/getItemProperties'\nimport { getPublishUploads } from '@/db/read/getPublishUploads'\nimport { getPublishPayload } from '@/db/read/getPublishPayload'\nimport { createNewItem } from '@/db/write/createNewItem'\n\n\nexport abstract class BaseItem<T extends ModelValues<ModelSchema>> implements IItem<T> {\n\n protected static instanceCache: Map<string, { instance: BaseItem<any>; refCount: number }> = new Map();\n protected _subscription: Subscription | undefined;\n protected readonly _storageTransactionId: string | undefined;\n [immerable] = true;\n protected _propertiesSubject: BehaviorSubject<Record<string, IItemProperty<any>>> = new BehaviorSubject({});\n protected readonly _service: ActorRefFrom<typeof itemMachineSingle>;\n\n constructor(initialValues: NewItemProps<T>) {\n\n const {\n modelName,\n seedUid,\n schemaUid,\n seedLocalId,\n latestVersionLocalId,\n latestVersionUid,\n } = initialValues\n\n const ModelClass = getModel(modelName)\n\n if (\n ModelClass &&\n Object.keys(ModelClass?.schema).includes('storageTransactionId') &&\n initialValues.storageTransactionId\n ) {\n this._storageTransactionId = initialValues.storageTransactionId\n }\n\n this._service = createActor(itemMachineSingle, {\n input: {\n seedLocalId,\n seedUid,\n schemaUid,\n ModelClass,\n latestVersionLocalId,\n latestVersionUid,\n storageTransactionId: this._storageTransactionId,\n },\n })\n\n this._subscription = this._service.subscribe((snapshot) => {\n const { context } = snapshot\n\n if (\n !context ||\n !context.propertyInstances ||\n context.propertyInstances.size === 0\n ) {\n return\n }\n\n const propertiesObj: Record<string, IItemProperty<any>> = {}\n\n for (const [key, propertyInstance] of context.propertyInstances) {\n if (typeof key !== 'string' || internalPropertyNames.includes(key)) {\n propertiesObj[key.toString()] = propertyInstance\n continue\n }\n\n let transformedKey: string = key as string\n\n if (propertyInstance.alias) {\n transformedKey = propertyInstance.alias\n }\n\n if (!propertyInstance.alias && key.endsWith('Ids')) {\n transformedKey = key.slice(0, -3) // Remove 'Ids'\n transformedKey = pluralize(transformedKey)\n }\n\n if (!propertyInstance.alias && key.endsWith('Id')) {\n transformedKey = key.slice(0, -2) // Remove 'Id'\n }\n\n propertiesObj[transformedKey] = propertyInstance\n }\n\n this._propertiesSubject.next(propertiesObj)\n // eventEmitter.emit(`item.${modelName}.${seedUid || seedLocalId}.update`)\n })\n\n this._service.start()\n\n const definedKeys: string[] = ['ModelClass']\n\n const itemPropertyBase: Partial<CreatePropertyInstanceProps> = {\n seedLocalId,\n seedUid,\n versionLocalId: latestVersionLocalId,\n versionUid: latestVersionUid,\n modelName: modelName,\n }\n\n if (ModelClass && ModelClass.schema) {\n const schema = ModelClass.schema\n\n for (const [propertyName, propertyRecordSchema] of Object.entries(\n schema,\n )) {\n if (!propertyRecordSchema) {\n throw new Error(`Property ${propertyName} has no definition`)\n }\n\n this._createPropertyInstance({\n ...itemPropertyBase,\n propertyName,\n propertyValue: initialValues[propertyName as keyof T],\n })\n\n definedKeys.push(propertyName)\n\n if (\n propertyRecordSchema.dataType === 'Relation' &&\n !propertyName.endsWith('Id')\n ) {\n definedKeys.push(`${propertyName}Id`)\n }\n\n if (\n propertyRecordSchema.dataType === 'List' &&\n !propertyName.endsWith('Ids')\n ) {\n const singularPropertyName = pluralize.singular(propertyName)\n const propertyNameForSchema = `${singularPropertyName}${propertyRecordSchema.ref}Ids`\n definedKeys.push(propertyNameForSchema)\n }\n }\n }\n\n ; (Object.keys(initialValues) as Array<string & keyof Partial<T>>).forEach(\n (key) => {\n // If we already defined it, that means it was in the schema\n if (definedKeys.includes(key)) {\n return\n }\n\n this._createPropertyInstance({\n ...itemPropertyBase,\n propertyName: key,\n propertyValue: initialValues[key],\n })\n },\n )\n }\n\n static PlatformClass: typeof BaseItem\n\n static setPlatformClass(platformClass: typeof BaseItem) {\n this.PlatformClass = platformClass\n }\n\n static async create<T extends ModelValues<ModelSchema>>(\n props: Partial<ItemData>,\n ): Promise<BaseItem<any>> {\n if (!props.modelName && props.type) {\n props.modelName = startCase(props.type)\n }\n if (props.seedUid || props.seedLocalId) {\n const seedId = (props.seedUid || props.seedLocalId) as string\n if (this.instanceCache.has(seedId)) {\n const { instance, refCount } = this.instanceCache.get(seedId)!\n this.instanceCache.set(seedId, {\n instance,\n refCount: refCount + 1,\n })\n for (const [propertyName, propertyValue] of Object.entries(props)) {\n const propertyInstances = instance.getService().getSnapshot()\n .context.propertyInstances\n if (!propertyInstances || !propertyInstances.has(propertyName)) {\n continue\n }\n const propertyInstance = propertyInstances.get(propertyName)\n if (!propertyInstance) {\n continue\n }\n propertyInstance.getService().send({\n type: 'updateContext',\n propertyValue,\n })\n }\n return instance\n }\n if (!this.instanceCache.has(seedId)) {\n const newInstance = new this(props)\n this.instanceCache.set(seedId, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n }\n if (!props.modelName) {\n throw new Error('Model name is required to create an item')\n }\n const { seedLocalId, versionLocalId, } = await createNewItem({\n modelName: props.modelName,\n ...props,\n })\n props.seedLocalId = seedLocalId\n props.latestVersionLocalId = versionLocalId\n const newInstance = new this(props)\n this.instanceCache.set(newInstance.seedUid || newInstance.seedLocalId, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n\n static async find({\n modelName,\n seedLocalId,\n seedUid,\n }: ItemFindProps): Promise<IItem<any> | undefined> {\n if (!seedLocalId && !seedUid) {\n return\n }\n const itemData = await getItemData({\n modelName,\n seedLocalId,\n seedUid,\n })\n\n if (!itemData) {\n console.error('No item data found', { modelName, seedLocalId, seedUid })\n return\n }\n\n return BaseItem.create({\n ...itemData,\n modelName,\n })\n }\n\n static async all(\n modelName?: string,\n deleted?: boolean,\n ): Promise<BaseItem<any>[]> {\n const itemsData = await getItemsData({ modelName, deleted })\n const itemInstances: BaseItem<any>[] = []\n for (const itemData of itemsData) {\n itemInstances.push(\n await BaseItem.create({\n ...itemData,\n modelName,\n }),\n )\n }\n\n return orderBy(itemInstances, ['createdAt'], ['desc'])\n }\n\n protected _createPropertyInstance(props: Partial<CreatePropertyInstanceProps>) {\n if (this._storageTransactionId) {\n props.storageTransactionId = this._storageTransactionId\n }\n\n const propertyInstance = BaseItemProperty.create(props)\n\n if (!propertyInstance || !props.propertyName) {\n return\n }\n\n this._service.send({\n type: 'addPropertyInstance',\n propertyName: props.propertyName,\n propertyInstance,\n })\n\n Object.defineProperty(this, props.propertyName, {\n get: () => propertyInstance.value,\n set: (value) => (propertyInstance.value = value),\n enumerable: true,\n })\n }\n\n\n static async publish(item: IItem<any>): Promise<void> {\n await waitForEvent({\n req: {\n eventLabel: `item.${item.seedLocalId}.publish.request`,\n data: {\n seedLocalId: item.seedLocalId,\n },\n },\n res: {\n eventLabel: `item.${item.seedLocalId}.publish.success`,\n },\n })\n }\n\n subscribe = (callback: (itemProps: any) => void): Subscription => {\n return this._service.subscribe((snapshot) => {\n callback(snapshot.context)\n })\n }\n\n getService = (): ActorRefFrom<typeof itemMachineSingle> => {\n return this._service\n }\n\n getEditedProperties = async (): Promise<PropertyData[]> => {\n return await getItemProperties({\n seedLocalId: this.seedLocalId,\n edited: true,\n })\n }\n\n publish = async (): Promise<void> => {\n await waitForEvent({\n req: {\n eventLabel: `item.publish.request`,\n data: {\n seedLocalId: this.seedLocalId,\n },\n },\n res: {\n eventLabel: `item.${this.seedLocalId}.publish.success`,\n },\n })\n }\n\n getPublishUploads = async () => {\n return await getPublishUploads(this)\n }\n\n getPublishPayload = async (uploadedTransactions: any[]) => {\n return await getPublishPayload(this, uploadedTransactions)\n }\n\n get serviceContext() {\n const snapshot = this._service.getSnapshot()\n return (snapshot as any).context || {}\n }\n\n get seedLocalId(): string {\n return this.serviceContext.seedLocalId as string\n }\n\n get seedUid(): string | undefined {\n return this.serviceContext.seedUid\n }\n\n get schemaUid(): string {\n return this.serviceContext.schemaUid as string\n }\n\n get latestVersionUid(): VersionsType {\n return this.serviceContext.latestVersionUid as VersionsType\n }\n\n get latestVersionLocalId(): string {\n return this.serviceContext.latestVersionLocalId as string\n }\n\n get modelName(): string {\n return this.serviceContext.modelName as string\n }\n\n get properties(): Record<string, IItemProperty<any>> {\n return this._propertiesSubject.value\n }\n\n get attestationCreatedAt(): number {\n return this.serviceContext.attestationCreatedAt as number\n }\n\n get versionsCount(): number {\n return this.serviceContext.versionsCount as number\n }\n\n get lastVersionPublishedAt(): number {\n return this.serviceContext.lastVersionPublishedAt as number\n }\n\n unload(): void {\n this._subscription?.unsubscribe()\n this._service.stop()\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/Item/index.ts"],"sourcesContent":["import { isBrowser } from '@/helpers/environment'\nimport { BaseItem } from '@/Item/BaseItem'\n\nlet Item: typeof BaseItem | undefined\n\n\nexport const initItem = async () => {\n if (isBrowser()) {\n Item = (await import('../browser/Item/Item')).Item\n }\n\n if (!isBrowser()) {\n Item = (await import('../node/Item/Item')).Item\n }\n}\n\nexport { Item }\n"],"names":[],"mappings":"AAGA,IAAI;;;;"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { graphql } from '../graphql/gql/gql.js';
|
|
2
|
+
|
|
3
|
+
const GET_SCHEMAS = graphql(/* GraphQL */ `
|
|
4
|
+
query GetSchemas($where: SchemaWhereInput!) {
|
|
5
|
+
schemas: schemata(where: $where) {
|
|
6
|
+
id
|
|
7
|
+
schema
|
|
8
|
+
schemaNames {
|
|
9
|
+
name
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
`);
|
|
14
|
+
const GET_SCHEMA_BY_NAME = graphql(/* GraphQL */ `
|
|
15
|
+
query GetSchemaByName($where: SchemaWhereInput!) {
|
|
16
|
+
schemas: schemata(where: $where) {
|
|
17
|
+
id
|
|
18
|
+
schema
|
|
19
|
+
schemaNames {
|
|
20
|
+
name
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`);
|
|
25
|
+
const GET_SEEDS = graphql(/* GraphQL */ `
|
|
26
|
+
query GetSeeds($where: AttestationWhereInput!) {
|
|
27
|
+
itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {
|
|
28
|
+
id
|
|
29
|
+
decodedDataJson
|
|
30
|
+
attester
|
|
31
|
+
schema {
|
|
32
|
+
schemaNames {
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
refUID
|
|
37
|
+
revoked
|
|
38
|
+
schemaId
|
|
39
|
+
timeCreated
|
|
40
|
+
isOffchain
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`);
|
|
44
|
+
const GET_SEED_IDS = graphql(/* GraphQL */ `
|
|
45
|
+
query GetSeedIds($where: AttestationWhereInput!) {
|
|
46
|
+
itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {
|
|
47
|
+
id
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`);
|
|
51
|
+
graphql(/* GraphQL */ `
|
|
52
|
+
query GetStorageTransactionId($where: AttestationWhereInput!) {
|
|
53
|
+
storageTransactionId: attestations(
|
|
54
|
+
where: $where
|
|
55
|
+
orderBy: [{ timeCreated: desc }]
|
|
56
|
+
) {
|
|
57
|
+
id
|
|
58
|
+
decodedDataJson
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`);
|
|
62
|
+
const GET_VERSIONS = graphql(/* GraphQL */ `
|
|
63
|
+
query GetVersions($where: AttestationWhereInput!) {
|
|
64
|
+
itemVersions: attestations(
|
|
65
|
+
where: $where
|
|
66
|
+
orderBy: [{ timeCreated: desc }]
|
|
67
|
+
) {
|
|
68
|
+
...attestationFields
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
`);
|
|
72
|
+
const GET_PROPERTIES = graphql(/* GraphQL */ `
|
|
73
|
+
query GetProperties($where: AttestationWhereInput!) {
|
|
74
|
+
itemProperties: attestations(
|
|
75
|
+
where: $where
|
|
76
|
+
orderBy: [{ timeCreated: desc }]
|
|
77
|
+
) {
|
|
78
|
+
...attestationFields
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
`);
|
|
82
|
+
const GET_ALL_PROPERTIES_FOR_ALL_VERSIONS = graphql(/* GraphQL */ `
|
|
83
|
+
query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {
|
|
84
|
+
allProperties: attestations(
|
|
85
|
+
where: $where
|
|
86
|
+
orderBy: [{ timeCreated: desc }]
|
|
87
|
+
) {
|
|
88
|
+
...attestationFields
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
`);
|
|
92
|
+
|
|
93
|
+
export { GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, GET_PROPERTIES, GET_SCHEMAS, GET_SCHEMA_BY_NAME, GET_SEEDS, GET_SEED_IDS, GET_VERSIONS };
|
|
94
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../../../src/Item/queries.ts"],"sourcesContent":["import { graphql } from '@/graphql/gql'\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core'\nimport { Attestation, Schema } from '@/graphql/gql/graphql'\n\nexport const GET_SCHEMAS = graphql(/* GraphQL */ `\n query GetSchemas($where: SchemaWhereInput!) {\n schemas: schemata(where: $where) {\n id\n schema\n schemaNames {\n name\n }\n }\n }\n`)\n\nexport const GET_SCHEMA_BY_NAME = graphql(/* GraphQL */ `\n query GetSchemaByName($where: SchemaWhereInput!) {\n schemas: schemata(where: $where) {\n id\n schema\n schemaNames {\n name\n }\n }\n }\n`) as TypedDocumentNode<{ schemas: Schema[] }>\n\nexport const GET_SEEDS = graphql(/* GraphQL */ `\n query GetSeeds($where: AttestationWhereInput!) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n decodedDataJson\n attester\n schema {\n schemaNames {\n name\n }\n }\n refUID\n revoked\n schemaId\n timeCreated\n isOffchain\n }\n }\n`) as TypedDocumentNode<{ itemSeeds: Attestation[] }>\n\nexport const GET_SEED_IDS = graphql(/* GraphQL */ `\n query GetSeedIds($where: AttestationWhereInput!) {\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n }\n }\n`) as TypedDocumentNode<{ itemSeedIds: Attestation[] }>\n\nexport const GET_STORAGE_TRANSACTION_ID = graphql(/* GraphQL */ `\n query GetStorageTransactionId($where: AttestationWhereInput!) {\n storageTransactionId: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n id\n decodedDataJson\n }\n }\n`) as TypedDocumentNode<{ storageTransactionId: Attestation[] }>\n\nexport const GET_VERSIONS = graphql(/* GraphQL */ `\n query GetVersions($where: AttestationWhereInput!) {\n itemVersions: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ itemVersions: Attestation[] }>\n\nexport const GET_PROPERTIES = graphql(/* GraphQL */ `\n query GetProperties($where: AttestationWhereInput!) {\n itemProperties: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ itemProperties: Attestation[] }>\n\nexport const GET_ALL_PROPERTIES_FOR_ALL_VERSIONS = graphql(/* GraphQL */ `\n query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {\n allProperties: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ allProperties: Attestation[] }>\n"],"names":[],"mappings":";;AAIa,MAAA,WAAW,GAAG,OAAO,eAAe;;;;;;;;;;AAUhD,CAAA;AAEY,MAAA,kBAAkB,GAAG,OAAO,eAAe;;;;;;;;;;AAUvD,CAAA;AAEY,MAAA,SAAS,GAAG,OAAO,eAAe;;;;;;;;;;;;;;;;;;AAkB9C,CAAA;AAEY,MAAA,YAAY,GAAG,OAAO,eAAe;;;;;;AAMjD,CAAA;AAEyC,OAAO,eAAe;;;;;;;;;;AAU/D,CAAA;AAEY,MAAA,YAAY,GAAG,OAAO,eAAe;;;;;;;;;AASjD,CAAA;AAEY,MAAA,cAAc,GAAG,OAAO,eAAe;;;;;;;;;AASnD,CAAA;AAEY,MAAA,mCAAmC,GAAG,OAAO,eAAe;;;;;;;;;AASxE,CAAA;;;;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { fromCallback } from 'xstate';
|
|
2
|
+
import { GET_PROPERTIES } from '../../queries.js';
|
|
3
|
+
import '../../../helpers/index.js';
|
|
4
|
+
import { BaseQueryClient } from '../../../helpers/QueryClient/BaseQueryClient.js';
|
|
5
|
+
import { BaseEasClient } from '../../../helpers/EasClient/BaseEasClient.js';
|
|
6
|
+
|
|
7
|
+
const fetchDataFromEas = fromCallback(({ sendBack, input: { context } }) => {
|
|
8
|
+
const { ModelClass, modelTableName, versionUid } = context;
|
|
9
|
+
const propertiesMetadata = new Map();
|
|
10
|
+
// EAS is the final source of truth, so we need to see if our Item is
|
|
11
|
+
// already represented there. Then we need to intelligently sync/merge
|
|
12
|
+
// with whatever new data has been created on the device before the sync.
|
|
13
|
+
for (const [propertyName, propertyMetadata] of Object.entries(ModelClass.schema)) {
|
|
14
|
+
if (propertyMetadata) {
|
|
15
|
+
propertiesMetadata.set(propertyName, propertyMetadata);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
sendBack({ type: 'updatePropertiesMetadata', propertiesMetadata });
|
|
19
|
+
if (!versionUid) {
|
|
20
|
+
// In this case this is a local only item, so we don't need to fetch anything
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const _fetchDataFromEas = async () => {
|
|
24
|
+
const queryClient = BaseQueryClient.getQueryClient();
|
|
25
|
+
const easClient = BaseEasClient.getEasClient();
|
|
26
|
+
// Fetch Properties by versionUid
|
|
27
|
+
const { itemProperties } = await queryClient.fetchQuery({
|
|
28
|
+
queryKey: ['getProperties', versionUid],
|
|
29
|
+
queryFn: async () => easClient.request(GET_PROPERTIES, {
|
|
30
|
+
where: {
|
|
31
|
+
refUID: {
|
|
32
|
+
in: [versionUid],
|
|
33
|
+
},
|
|
34
|
+
decodedDataJson: {
|
|
35
|
+
not: {
|
|
36
|
+
// The first of many filters to keep bad data out
|
|
37
|
+
contains: '"value":"0x0000000000000000000000000000000000000000000000000000000000000020"',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
// Filter properties by schemaId
|
|
44
|
+
const selectedPropertiesMap = {};
|
|
45
|
+
itemProperties.forEach((property) => {
|
|
46
|
+
const existingProperties = selectedPropertiesMap[property.schemaId] || [];
|
|
47
|
+
existingProperties.push(property);
|
|
48
|
+
selectedPropertiesMap[property.schemaId] = existingProperties;
|
|
49
|
+
});
|
|
50
|
+
// For each schemaId, sort property Attestations by timeCreated DESC
|
|
51
|
+
Object.keys(selectedPropertiesMap).forEach((schemaId) => {
|
|
52
|
+
const sorted = selectedPropertiesMap[schemaId].sort((a, b) => {
|
|
53
|
+
return a.timeCreated - b.timeCreated;
|
|
54
|
+
});
|
|
55
|
+
selectedPropertiesMap[schemaId] = sorted;
|
|
56
|
+
});
|
|
57
|
+
Object.keys(selectedPropertiesMap).forEach((schemaId) => {
|
|
58
|
+
// TODO: Finish this logic
|
|
59
|
+
// console.log('[singleItemActors] [fetchDataFromEas] schemaId', schemaId)
|
|
60
|
+
// sendBack({ type: 'addPropertyAttestation', schemaId })
|
|
61
|
+
});
|
|
62
|
+
// Attach processed properties to the itemService/itemMachine context
|
|
63
|
+
sendBack({
|
|
64
|
+
type: 'updatedPropertiesBySchemaUid',
|
|
65
|
+
propertiesBySchemaUid: selectedPropertiesMap,
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
_fetchDataFromEas().then(() => {
|
|
69
|
+
sendBack({ type: 'fetchDataFromEasSuccess' });
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
export { fetchDataFromEas };
|
|
74
|
+
//# sourceMappingURL=fetchDataFromEas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchDataFromEas.js","sources":["../../../../../../src/Item/service/actors/fetchDataFromEas.ts"],"sourcesContent":["import { EventObject, fromCallback } from 'xstate'\nimport { GET_PROPERTIES } from '@/Item/queries'\nimport { itemMachineSingle } from '@/Item/service/itemMachineSingle'\nimport { PropertyType } from '@/seedSchema'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport { ModelClassType } from '@/types'\nimport { BaseEasClient, BaseQueryClient } from '@/helpers'\n\n\nexport const fetchDataFromEas = fromCallback<\n EventObject,\n typeof itemMachineSingle\n>(({ sendBack, input: { context } }) => {\n const { ModelClass, modelTableName, versionUid } = context\n\n const propertiesMetadata = new Map<string, PropertyType>()\n\n // EAS is the final source of truth, so we need to see if our Item is\n // already represented there. Then we need to intelligently sync/merge\n // with whatever new data has been created on the device before the sync.\n for (const [propertyName, propertyMetadata] of Object.entries(\n (ModelClass as ModelClassType).schema,\n )) {\n if (propertyMetadata) {\n propertiesMetadata.set(propertyName, propertyMetadata)\n }\n }\n\n sendBack({ type: 'updatePropertiesMetadata', propertiesMetadata })\n\n if (!versionUid) {\n // In this case this is a local only item, so we don't need to fetch anything\n return\n }\n\n const _fetchDataFromEas = async (): Promise<void> => {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n // Fetch Properties by versionUid\n const { itemProperties } = await queryClient.fetchQuery({\n queryKey: ['getProperties', versionUid],\n queryFn: async () =>\n easClient.request(GET_PROPERTIES, {\n where: {\n refUID: {\n in: [versionUid],\n },\n decodedDataJson: {\n not: {\n // The first of many filters to keep bad data out\n contains:\n '\"value\":\"0x0000000000000000000000000000000000000000000000000000000000000020\"',\n },\n },\n },\n }),\n })\n\n // Filter properties by schemaId\n const selectedPropertiesMap: {\n [schemaId: string]: Attestation[]\n } = {}\n itemProperties.forEach((property) => {\n const existingProperties = selectedPropertiesMap[property.schemaId] || []\n existingProperties.push(property)\n selectedPropertiesMap[property.schemaId] = existingProperties\n })\n\n // For each schemaId, sort property Attestations by timeCreated DESC\n Object.keys(selectedPropertiesMap).forEach((schemaId) => {\n const sorted = selectedPropertiesMap[schemaId].sort((a, b) => {\n return a.timeCreated - b.timeCreated\n })\n selectedPropertiesMap[schemaId] = sorted\n })\n\n Object.keys(selectedPropertiesMap).forEach((schemaId) => {\n // TODO: Finish this logic\n // console.log('[singleItemActors] [fetchDataFromEas] schemaId', schemaId)\n // sendBack({ type: 'addPropertyAttestation', schemaId })\n })\n\n // Attach processed properties to the itemService/itemMachine context\n sendBack({\n type: 'updatedPropertiesBySchemaUid',\n propertiesBySchemaUid: selectedPropertiesMap,\n })\n }\n\n _fetchDataFromEas().then(() => {\n sendBack({ type: 'fetchDataFromEasSuccess' })\n })\n})\n"],"names":[],"mappings":";;;;;;AASa,MAAA,gBAAgB,GAAG,YAAY,CAG1C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,OAAO;AAE1D,IAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAwB;;;;AAK1D,IAAA,KAAK,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAC1D,UAA6B,CAAC,MAAM,CACtC,EAAE;QACD,IAAI,gBAAgB,EAAE;AACpB,YAAA,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC;;;IAI1D,QAAQ,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,CAAC;IAElE,IAAI,CAAC,UAAU,EAAE;;QAEf;;AAGF,IAAA,MAAM,iBAAiB,GAAG,YAA0B;AAClD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;;QAG9C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACtD,YAAA,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC;YACvC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE;AAChC,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;wBACN,EAAE,EAAE,CAAC,UAAU,CAAC;AACjB,qBAAA;AACD,oBAAA,eAAe,EAAE;AACf,wBAAA,GAAG,EAAE;;AAEH,4BAAA,QAAQ,EACN,8EAA8E;AACjF,yBAAA;AACF,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;;QAGF,MAAM,qBAAqB,GAEvB,EAAE;AACN,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YAClC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,YAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,YAAA,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,kBAAkB;AAC/D,SAAC,CAAC;;QAGF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACtD,YAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC3D,gBAAA,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;AACtC,aAAC,CAAC;AACF,YAAA,qBAAqB,CAAC,QAAQ,CAAC,GAAG,MAAM;AAC1C,SAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;;;AAIxD,SAAC,CAAC;;AAGF,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,8BAA8B;AACpC,YAAA,qBAAqB,EAAE,qBAAqB;AAC7C,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAK;AAC5B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;AAC/C,KAAC,CAAC;AACJ,CAAC;;;;"}
|