@seedprotocol/sdk 0.4.7 → 0.4.8
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/ArweaveClient-DFqnm5Kj.js +202 -0
- package/dist/ArweaveClient-DFqnm5Kj.js.map +1 -0
- package/dist/ArweaveClient-sN5h2FvY.js +202 -0
- package/dist/ArweaveClient-sN5h2FvY.js.map +1 -0
- package/dist/Db-DIythELU.js +246 -0
- package/dist/Db-DIythELU.js.map +1 -0
- package/dist/Db-Dz17KxVs.js +1530 -0
- package/dist/Db-Dz17KxVs.js.map +1 -0
- package/dist/EasClient-BadfcFDk.js +29 -0
- package/dist/EasClient-BadfcFDk.js.map +1 -0
- package/dist/EasClient-DosbWaZN.js +29 -0
- package/dist/EasClient-DosbWaZN.js.map +1 -0
- package/dist/FileManager-BHuVNWT3.js +174 -0
- package/dist/FileManager-BHuVNWT3.js.map +1 -0
- package/dist/FileManager-Wthr5yHO.js +1142 -0
- package/dist/FileManager-Wthr5yHO.js.map +1 -0
- package/dist/ModelProperty-B9Z2DRxI.js +1731 -0
- package/dist/ModelProperty-B9Z2DRxI.js.map +1 -0
- package/dist/PathResolver-Cd1PZDLG.js +204 -0
- package/dist/PathResolver-Cd1PZDLG.js.map +1 -0
- package/dist/PathResolver-NEpTSgQK.js +78 -0
- package/dist/PathResolver-NEpTSgQK.js.map +1 -0
- package/dist/QueryClient-C9U8oZUe.js +34 -0
- package/dist/QueryClient-C9U8oZUe.js.map +1 -0
- package/dist/QueryClient-ndmA8MYL.js +47 -0
- package/dist/QueryClient-ndmA8MYL.js.map +1 -0
- package/dist/Schema-D1-HjT8z.js +6521 -0
- package/dist/Schema-D1-HjT8z.js.map +1 -0
- package/dist/SchemaValidationService-CIXKzSpb.js +654 -0
- package/dist/SchemaValidationService-CIXKzSpb.js.map +1 -0
- package/dist/cjs/ModelProperty-09hNvSBl.js +1725 -0
- package/dist/cjs/ModelProperty-09hNvSBl.js.map +1 -0
- package/dist/cjs/Schema-BcwvUABB.js +5967 -0
- package/dist/cjs/Schema-BcwvUABB.js.map +1 -0
- package/dist/cjs/SchemaValidationService-zty4nfCu.js +670 -0
- package/dist/cjs/SchemaValidationService-zty4nfCu.js.map +1 -0
- package/dist/cjs/getItem-Dlb5YSQn.js +55 -0
- package/dist/cjs/getItem-Dlb5YSQn.js.map +1 -0
- package/dist/cjs/getPublishPayload-BqL06sEI.js +520 -0
- package/dist/cjs/getPublishPayload-BqL06sEI.js.map +1 -0
- package/dist/cjs/getPublishUploads-oukGI2N6.js +282 -0
- package/dist/cjs/getPublishUploads-oukGI2N6.js.map +1 -0
- package/dist/cjs/getSegmentedItemProperties-JT984OOp.js +71 -0
- package/dist/cjs/getSegmentedItemProperties-JT984OOp.js.map +1 -0
- package/dist/cjs/index-BLETlVgA.js +17614 -0
- package/dist/cjs/index-BLETlVgA.js.map +1 -0
- package/dist/cjs/index-jubgGeM2.js +58 -0
- package/dist/cjs/index-jubgGeM2.js.map +1 -0
- package/dist/cjs/ownership-vfvyz3KJ.js +103 -0
- package/dist/cjs/ownership-vfvyz3KJ.js.map +1 -0
- package/dist/getItem-f9rNUz7I.js +38 -0
- package/dist/getItem-f9rNUz7I.js.map +1 -0
- package/dist/getPublishPayload-BBI_j9I2.js +503 -0
- package/dist/getPublishPayload-BBI_j9I2.js.map +1 -0
- package/dist/getPublishUploads-BFM94w5S.js +246 -0
- package/dist/getPublishUploads-BFM94w5S.js.map +1 -0
- package/dist/getSegmentedItemProperties-Di9vevKz.js +69 -0
- package/dist/getSegmentedItemProperties-Di9vevKz.js.map +1 -0
- package/dist/index-CSAVWKeA.js +18 -0
- package/dist/index-CSAVWKeA.js.map +1 -0
- package/dist/index-ajj6SHkh.js +23 -0
- package/dist/index-ajj6SHkh.js.map +1 -0
- package/dist/index-j8WN8W6V.js +16296 -0
- package/dist/index-j8WN8W6V.js.map +1 -0
- package/dist/main.cjs +1 -1
- package/dist/main.js +153 -534
- package/dist/main.js.map +1 -1
- package/dist/node.js +33 -15
- package/dist/node.js.map +1 -1
- package/dist/ownership-DLNI17NE.js +85 -0
- package/dist/ownership-DLNI17NE.js.map +1 -0
- package/dist/property-C6qoOzLG.js +264 -0
- package/dist/property-C6qoOzLG.js.map +1 -0
- package/dist/queries-jMaUn86w.js +16 -0
- package/dist/queries-jMaUn86w.js.map +1 -0
- package/dist/seedSchema/SEEDPROTOCOL_Seed_Protocol_v1.json +38 -1
- package/dist/src/Item/Item.d.ts +141 -0
- package/dist/src/Item/Item.d.ts.map +1 -0
- package/dist/src/Item/queries.d.ts.map +1 -0
- package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +1 -0
- package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +1 -0
- package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +1 -0
- package/dist/src/Item/service/actors/initialize.d.ts.map +1 -0
- package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +1 -0
- package/dist/src/Item/service/actors/reload.d.ts.map +1 -0
- package/dist/src/Item/service/actors/runPublish.d.ts.map +1 -0
- package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +1 -0
- package/dist/src/Item/service/actors/waitForDb.d.ts.map +1 -0
- package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -0
- package/dist/src/ItemProperty/ItemProperty.d.ts +126 -0
- package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts +7 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts +5 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts +5 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/propertyMachine.d.ts +78 -0
- package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -0
- package/dist/src/Model/Model.d.ts.map +1 -0
- package/dist/src/Model/index.d.ts.map +1 -0
- package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -0
- package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -0
- package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -0
- package/dist/src/Model/service/modelMachine.d.ts +222 -0
- package/dist/src/Model/service/modelMachine.d.ts.map +1 -0
- package/dist/src/ModelProperty/ModelProperty.d.ts +148 -0
- package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -0
- package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -0
- package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -0
- package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -0
- package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -0
- package/dist/src/Schema/Schema.d.ts.map +1 -0
- package/dist/src/Schema/errors.d.ts.map +1 -0
- package/dist/src/Schema/index.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/createPropertyInstances.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/validateSchema.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/writeModelsToDb.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts.map +1 -0
- package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts.map +1 -0
- package/dist/src/Schema/service/addModelsMachine.d.ts +123 -0
- package/dist/src/Schema/service/addModelsMachine.d.ts.map +1 -0
- package/dist/src/Schema/service/schemaMachine.d.ts +526 -0
- package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -0
- package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +1 -0
- package/dist/src/Schema/validation.d.ts.map +1 -0
- package/dist/src/browser/db/Db.d.ts.map +1 -0
- package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -0
- package/dist/src/browser/db/sqlWasmClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/EasClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/FileManager.d.ts +42 -0
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -0
- package/dist/src/browser/helpers/PathResolver.d.ts.map +1 -0
- package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/index.d.ts.map +1 -0
- package/dist/src/browser/index.d.ts.map +1 -0
- package/dist/src/browser/react/OPFSImage.d.ts.map +1 -0
- package/dist/src/browser/react/SeedImage.d.ts.map +1 -0
- package/dist/src/browser/react/SeedProvider.d.ts.map +1 -0
- package/dist/src/browser/react/client.d.ts.map +1 -0
- package/dist/src/browser/react/db.d.ts.map +1 -0
- package/dist/src/browser/react/index.d.ts +14 -0
- package/dist/src/browser/react/index.d.ts.map +1 -0
- package/dist/src/browser/react/item.d.ts.map +1 -0
- package/dist/src/browser/react/itemProperty.d.ts.map +1 -0
- package/dist/src/browser/react/liveQuery.d.ts.map +1 -0
- package/dist/src/browser/react/model.d.ts.map +1 -0
- package/dist/src/browser/react/modelProperty.d.ts.map +1 -0
- package/dist/src/browser/react/queryClient.d.ts.map +1 -0
- package/dist/src/browser/react/schema.d.ts.map +1 -0
- package/dist/src/browser/react/services.d.ts.map +1 -0
- package/dist/src/browser/react/trash.d.ts.map +1 -0
- package/dist/src/browser/react/useImageFiles.d.ts +19 -0
- package/dist/src/browser/react/useImageFiles.d.ts.map +1 -0
- package/dist/src/browser/seed.d.ts.map +1 -0
- package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -0
- package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -0
- package/dist/src/browser/workers/content-hash.d.ts.map +1 -0
- package/dist/src/browser/workers/dbWorker.d.ts.map +1 -0
- package/dist/src/browser/workers/filesDownload.d.ts.map +1 -0
- package/dist/src/browser/workers/imageResize.d.ts.map +1 -0
- package/dist/src/client/BaseClientManager.d.ts.map +1 -0
- package/dist/src/client/ClientManager.d.ts.map +1 -0
- package/dist/src/client/actions/setAddresses.d.ts.map +1 -0
- package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -0
- package/dist/src/client/actors/addModelsToStore.d.ts.map +1 -0
- package/dist/src/client/actors/dbInit.d.ts.map +1 -0
- package/dist/src/client/actors/fileSystemInit.d.ts.map +1 -0
- package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -0
- package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -0
- package/dist/src/client/actors/saveAppState.d.ts.map +1 -0
- package/dist/src/client/actors/saveConfig.d.ts.map +1 -0
- package/dist/src/client/clientManagerMachine.d.ts.map +1 -0
- package/dist/src/client/constants.d.ts.map +1 -0
- package/dist/src/client/index.d.ts.map +1 -0
- package/dist/src/db/Db/BaseDb.d.ts.map +1 -0
- package/dist/src/db/configs/dev.schema.config.d.ts.map +1 -0
- package/dist/src/db/read/getExistingItem.d.ts.map +1 -0
- package/dist/src/db/read/getItem.d.ts.map +1 -0
- package/dist/src/db/read/getItemData.d.ts.map +1 -0
- package/dist/src/db/read/getItemProperties.d.ts.map +1 -0
- package/dist/src/db/read/getItemProperty.d.ts.map +1 -0
- package/dist/src/db/read/getItems.d.ts.map +1 -0
- package/dist/src/db/read/getMetadata.d.ts.map +1 -0
- package/dist/src/db/read/getModelPropertiesData.d.ts.map +1 -0
- package/dist/src/db/read/getModelSchemas.d.ts.map +1 -0
- package/dist/src/db/read/getModels.d.ts.map +1 -0
- package/dist/src/db/read/getModelsData.d.ts.map +1 -0
- package/dist/src/db/read/getPropertyData.d.ts.map +1 -0
- package/dist/src/db/read/getPublishPayload.d.ts +36 -0
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -0
- package/dist/src/db/read/getPublishUploads.d.ts +10 -0
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -0
- package/dist/src/db/read/getRelatedItemsForPublish.d.ts +8 -0
- package/dist/src/db/read/getRelatedItemsForPublish.d.ts.map +1 -0
- package/dist/src/db/read/getRelationValueData.d.ts.map +1 -0
- package/dist/src/db/read/getSchemaUidForModel.d.ts +2 -0
- package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -0
- package/dist/src/db/read/getSeedData.d.ts.map +1 -0
- package/dist/src/db/read/getStorageTransactionIdForSeedUid.d.ts.map +1 -0
- package/dist/src/db/read/getVersionData.d.ts.map +1 -0
- package/dist/src/db/read/getVersionsForVersionUids.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/versionData.d.ts.map +1 -0
- package/dist/src/db/write/createMetadata.d.ts.map +1 -0
- package/dist/src/db/write/createNewItem.d.ts.map +1 -0
- package/dist/src/db/write/createSeed.d.ts.map +1 -0
- package/dist/src/db/write/createSeeds.d.ts.map +1 -0
- package/dist/src/db/write/createVersion.d.ts.map +1 -0
- package/dist/src/db/write/deleteItem.d.ts.map +1 -0
- package/dist/src/db/write/recoverDeletedItem.d.ts.map +1 -0
- package/dist/src/db/write/saveAppState.d.ts.map +1 -0
- package/dist/src/db/write/saveMetadata.d.ts.map +1 -0
- package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -0
- package/dist/src/db/write/updateMetadata.d.ts.map +1 -0
- package/dist/src/db/write/updateSeedUid.d.ts.map +1 -0
- package/dist/src/eas.d.ts +26 -0
- package/dist/src/eas.d.ts.map +1 -0
- package/dist/src/eslint-rules/align-imports.d.ts.map +1 -0
- package/dist/src/eventBus.d.ts.map +1 -0
- package/dist/src/events/files/download.d.ts.map +1 -0
- package/dist/src/events/files/index.d.ts.map +1 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/events/item/index.d.ts.map +1 -0
- package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -0
- package/dist/src/events/services/allItems.d.ts.map +1 -0
- package/dist/src/events/services/index.d.ts.map +1 -0
- package/dist/src/graphql/fragments/Attestation.d.ts.map +1 -0
- package/dist/src/graphql/fragments/Schema.d.ts.map +1 -0
- package/dist/src/graphql/fragments/index.d.ts.map +1 -0
- package/dist/src/graphql/gql/fragment-masking.d.ts.map +1 -0
- package/dist/src/graphql/gql/gql.d.ts.map +1 -0
- package/dist/src/graphql/gql/graphql.d.ts.map +1 -0
- package/dist/src/graphql/gql/index.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/index.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/queries.d.ts.map +1 -0
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +1 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +41 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -0
- package/dist/src/helpers/PathResolver/BasePathResolver.d.ts.map +1 -0
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +1 -0
- package/dist/src/helpers/addresses.d.ts.map +1 -0
- package/dist/src/helpers/constants.d.ts +71 -0
- package/dist/src/helpers/constants.d.ts.map +1 -0
- package/dist/src/helpers/crypto.d.ts.map +1 -0
- package/dist/src/helpers/db.d.ts +143 -0
- package/dist/src/helpers/db.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityCache.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityFind.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityUnload.d.ts +54 -0
- package/dist/src/helpers/entity/entityUnload.d.ts.map +1 -0
- package/dist/src/helpers/entity/index.d.ts.map +1 -0
- package/dist/src/helpers/environment.d.ts.map +1 -0
- package/dist/src/helpers/file/download/actors.d.ts.map +1 -0
- package/dist/src/helpers/file/download/index.d.ts.map +1 -0
- package/dist/src/helpers/file/fetchAll/actors.d.ts.map +1 -0
- package/dist/src/helpers/file/fetchAll/index.d.ts.map +1 -0
- package/dist/src/helpers/file/queries.d.ts.map +1 -0
- package/dist/src/helpers/files.d.ts.map +1 -0
- package/dist/src/helpers/getSchemaForItemProperty.d.ts +15 -0
- package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +1 -0
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -0
- package/dist/src/helpers/image/queries.d.ts.map +1 -0
- package/dist/src/helpers/index.d.ts +30 -0
- package/dist/src/helpers/index.d.ts.map +1 -0
- package/dist/src/helpers/model.d.ts.map +1 -0
- package/dist/src/helpers/ownership.d.ts.map +1 -0
- package/dist/src/helpers/property/index.d.ts +304 -0
- package/dist/src/helpers/property/index.d.ts.map +1 -0
- package/dist/src/helpers/property.d.ts.map +1 -0
- package/dist/src/helpers/publishConfig.d.ts +18 -0
- package/dist/src/helpers/publishConfig.d.ts.map +1 -0
- package/dist/src/helpers/reactiveProxy.d.ts.map +1 -0
- package/dist/src/helpers/schema.d.ts.map +1 -0
- package/dist/src/helpers/updateMachineContext.d.ts.map +1 -0
- package/dist/src/helpers/updateSchema.d.ts +128 -0
- package/dist/src/helpers/updateSchema.d.ts.map +1 -0
- package/dist/src/helpers/waitForEntityIdle.d.ts.map +1 -0
- package/dist/src/imports/index.d.ts.map +1 -0
- package/dist/src/imports/json.d.ts.map +1 -0
- package/dist/src/imports/markdown.d.ts +40 -0
- package/dist/src/imports/markdown.d.ts.map +1 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/interfaces/IDb.d.ts.map +1 -0
- package/dist/src/interfaces/IEasClient.d.ts.map +1 -0
- package/dist/src/interfaces/IItem.d.ts.map +1 -0
- package/dist/src/interfaces/IItemProperty.d.ts.map +1 -0
- package/dist/src/interfaces/IQueryClient.d.ts.map +1 -0
- package/dist/src/interfaces/index.d.ts.map +1 -0
- package/dist/src/node/codegen/drizzle.d.ts.map +1 -0
- package/dist/src/node/codegen/index.d.ts.map +1 -0
- package/dist/src/node/codegen/ts-to-proto.d.ts.map +1 -0
- package/dist/src/node/constants.d.ts.map +1 -0
- package/dist/src/node/db/Db.d.ts.map +1 -0
- package/dist/src/node/db/index.d.ts.map +1 -0
- package/dist/src/node/db/node.app.db.config.d.ts.map +1 -0
- package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -0
- package/dist/src/node/helpers/EasClient.d.ts.map +1 -0
- package/dist/src/node/helpers/FileManager.d.ts +27 -0
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -0
- package/dist/src/node/helpers/PathResolver.d.ts.map +1 -0
- package/dist/src/node/helpers/QueryClient.d.ts.map +1 -0
- package/dist/src/node/helpers/index.d.ts.map +1 -0
- package/dist/src/node/helpers/scripts.d.ts.map +1 -0
- package/dist/src/node/index.d.ts.map +1 -0
- package/dist/src/node/seed.d.ts.map +1 -0
- package/dist/src/node/webpack/fs-proxy.d.ts.map +1 -0
- package/dist/src/node/webpack/index.d.ts.map +1 -0
- package/dist/src/seedSchema/AppStateSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ConfigSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ModelSchemaSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ModelUidSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/PropertyUidSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/SchemaSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/index.d.ts.map +1 -0
- package/dist/src/services/events.d.ts.map +1 -0
- package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +1 -0
- package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +1 -0
- package/dist/src/services/publish/actors/upload.d.ts.map +1 -0
- package/dist/src/services/publish/actors/validateItemData.d.ts.map +1 -0
- package/dist/src/services/publish/publishMachine.d.ts.map +1 -0
- package/dist/src/services/write/actors/validateEntity.d.ts.map +1 -0
- package/dist/src/services/write/actors/writeToDatabase.d.ts.map +1 -0
- package/dist/src/services/write/writeProcessMachine.d.ts.map +1 -0
- package/dist/src/stores/eas.d.ts +20 -0
- package/dist/src/stores/eas.d.ts.map +1 -0
- package/dist/src/types/arweave.d.ts.map +1 -0
- package/dist/src/types/browser.d.ts.map +1 -0
- package/dist/src/types/db.d.ts.map +1 -0
- package/dist/src/types/fileManager.d.ts.map +1 -0
- package/dist/src/types/helpers.d.ts.map +1 -0
- package/dist/src/types/import.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +66 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/item.d.ts.map +1 -0
- package/dist/src/types/machines.d.ts +53 -0
- package/dist/src/types/machines.d.ts.map +1 -0
- package/dist/src/types/model.d.ts.map +1 -0
- package/dist/src/types/property.d.ts.map +1 -0
- package/dist/src/types/publish.d.ts.map +1 -0
- package/dist/src/types/seedProtocol.d.ts.map +1 -0
- package/dist/src/types/services.d.ts.map +1 -0
- package/dist/src/vite/easFix.d.ts.map +1 -0
- package/dist/src/vite/index.d.ts.map +1 -0
- package/dist/vite.cjs +0 -5
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.js +0 -5
- package/dist/vite.js.map +1 -1
- package/package.json +21 -106
- package/README.md +0 -67
- package/dist/ArweaveClient-BdQaTOZ4.js +0 -202
- package/dist/ArweaveClient-BdQaTOZ4.js.map +0 -1
- package/dist/ArweaveClient-nrTU_rhU.js +0 -202
- package/dist/ArweaveClient-nrTU_rhU.js.map +0 -1
- package/dist/Db-CWKaeNQH.js +0 -246
- package/dist/Db-CWKaeNQH.js.map +0 -1
- package/dist/Db-Cq4q88X_.js +0 -1530
- package/dist/Db-Cq4q88X_.js.map +0 -1
- package/dist/EasClient-Du9_TULE.js +0 -29
- package/dist/EasClient-Du9_TULE.js.map +0 -1
- package/dist/EasClient-ZCIE6UQq.js +0 -29
- package/dist/EasClient-ZCIE6UQq.js.map +0 -1
- package/dist/FileManager-Cub9icdd.js +0 -1153
- package/dist/FileManager-Cub9icdd.js.map +0 -1
- package/dist/FileManager-HSFEess-.js +0 -165
- package/dist/FileManager-HSFEess-.js.map +0 -1
- package/dist/Item/Item.d.ts +0 -136
- package/dist/Item/Item.d.ts.map +0 -1
- package/dist/Item/queries.d.ts.map +0 -1
- package/dist/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
- package/dist/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
- package/dist/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
- package/dist/Item/service/actors/initialize.d.ts.map +0 -1
- package/dist/Item/service/actors/loadOrCreateItem.d.ts.map +0 -1
- package/dist/Item/service/actors/reload.d.ts.map +0 -1
- package/dist/Item/service/actors/runPublish.d.ts.map +0 -1
- package/dist/Item/service/actors/saveDataToDb.d.ts.map +0 -1
- package/dist/Item/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/Item/service/itemMachineSingle.d.ts.map +0 -1
- package/dist/ItemProperty/ItemProperty.d.ts +0 -118
- package/dist/ItemProperty/ItemProperty.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/hydrateFromDb.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/initialize.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/saveValueToDb/index.d.ts +0 -5
- package/dist/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +0 -1
- package/dist/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/ItemProperty/service/propertyMachine.d.ts +0 -68
- package/dist/ItemProperty/service/propertyMachine.d.ts.map +0 -1
- package/dist/Model/Model.d.ts.map +0 -1
- package/dist/Model/index.d.ts.map +0 -1
- package/dist/Model/service/actors/createModelProperties.d.ts.map +0 -1
- package/dist/Model/service/actors/loadOrCreateModel.d.ts.map +0 -1
- package/dist/Model/service/actors/validateModel.d.ts.map +0 -1
- package/dist/Model/service/modelMachine.d.ts +0 -222
- package/dist/Model/service/modelMachine.d.ts.map +0 -1
- package/dist/ModelProperty/ModelProperty.d.ts +0 -146
- package/dist/ModelProperty/ModelProperty.d.ts.map +0 -1
- package/dist/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +0 -1
- package/dist/ModelProperty/service/actors/saveToSchema.d.ts.map +0 -1
- package/dist/ModelProperty/service/actors/validateProperty.d.ts.map +0 -1
- package/dist/ModelProperty/service/modelPropertyMachine.d.ts.map +0 -1
- package/dist/ModelProperty-D4zaeIOT.js +0 -1784
- package/dist/ModelProperty-D4zaeIOT.js.map +0 -1
- package/dist/PathResolver-DVLBs_qi.js +0 -191
- package/dist/PathResolver-DVLBs_qi.js.map +0 -1
- package/dist/PathResolver-T1yEDECb.js +0 -78
- package/dist/PathResolver-T1yEDECb.js.map +0 -1
- package/dist/QueryClient-DcKDQuwz.js +0 -34
- package/dist/QueryClient-DcKDQuwz.js.map +0 -1
- package/dist/QueryClient-Vs9KN5kS.js +0 -47
- package/dist/QueryClient-Vs9KN5kS.js.map +0 -1
- package/dist/Schema/Schema.d.ts.map +0 -1
- package/dist/Schema/errors.d.ts.map +0 -1
- package/dist/Schema/index.d.ts.map +0 -1
- package/dist/Schema/service/actors/checkExistingSchema.d.ts.map +0 -1
- package/dist/Schema/service/actors/createModelInstances.d.ts.map +0 -1
- package/dist/Schema/service/actors/createPropertyInstances.d.ts.map +0 -1
- package/dist/Schema/service/actors/loadOrCreateSchema.d.ts.map +0 -1
- package/dist/Schema/service/actors/validateSchema.d.ts.map +0 -1
- package/dist/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +0 -1
- package/dist/Schema/service/actors/verifyModelsInDb.d.ts.map +0 -1
- package/dist/Schema/service/actors/verifyPropertiesInDb.d.ts.map +0 -1
- package/dist/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +0 -1
- package/dist/Schema/service/actors/verifySchemaInDb.d.ts.map +0 -1
- package/dist/Schema/service/actors/writeModelsToDb.d.ts.map +0 -1
- package/dist/Schema/service/actors/writePropertiesToDb.d.ts.map +0 -1
- package/dist/Schema/service/actors/writeSchemaToDb.d.ts.map +0 -1
- package/dist/Schema/service/addModelsMachine.d.ts +0 -123
- package/dist/Schema/service/addModelsMachine.d.ts.map +0 -1
- package/dist/Schema/service/schemaMachine.d.ts +0 -526
- package/dist/Schema/service/schemaMachine.d.ts.map +0 -1
- package/dist/Schema/service/validation/SchemaValidationService.d.ts.map +0 -1
- package/dist/Schema/validation.d.ts.map +0 -1
- package/dist/Schema-SbwqmoMM.js +0 -6593
- package/dist/Schema-SbwqmoMM.js.map +0 -1
- package/dist/SchemaValidationService-DHGIw4Nx.js +0 -563
- package/dist/SchemaValidationService-DHGIw4Nx.js.map +0 -1
- package/dist/browser/db/Db.d.ts.map +0 -1
- package/dist/browser/db/drizzleFiles.d.ts.map +0 -1
- package/dist/browser/db/sqlWasmClient.d.ts.map +0 -1
- package/dist/browser/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/browser/helpers/EasClient.d.ts.map +0 -1
- package/dist/browser/helpers/FileManager.d.ts +0 -41
- package/dist/browser/helpers/FileManager.d.ts.map +0 -1
- package/dist/browser/helpers/PathResolver.d.ts.map +0 -1
- package/dist/browser/helpers/QueryClient.d.ts.map +0 -1
- package/dist/browser/helpers/index.d.ts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/react/OPFSImage.d.ts.map +0 -1
- package/dist/browser/react/SeedImage.d.ts.map +0 -1
- package/dist/browser/react/SeedProvider.d.ts.map +0 -1
- package/dist/browser/react/client.d.ts.map +0 -1
- package/dist/browser/react/db.d.ts.map +0 -1
- package/dist/browser/react/index.d.ts +0 -13
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/item.d.ts.map +0 -1
- package/dist/browser/react/itemProperty.d.ts.map +0 -1
- package/dist/browser/react/liveQuery.d.ts.map +0 -1
- package/dist/browser/react/model.d.ts.map +0 -1
- package/dist/browser/react/modelProperty.d.ts.map +0 -1
- package/dist/browser/react/queryClient.d.ts.map +0 -1
- package/dist/browser/react/schema.d.ts.map +0 -1
- package/dist/browser/react/services.d.ts.map +0 -1
- package/dist/browser/react/trash.d.ts.map +0 -1
- package/dist/browser/seed.d.ts.map +0 -1
- package/dist/browser/workers/FileDownloader.d.ts.map +0 -1
- package/dist/browser/workers/ImageResizer.d.ts.map +0 -1
- package/dist/browser/workers/content-hash.d.ts.map +0 -1
- package/dist/browser/workers/dbWorker.d.ts.map +0 -1
- package/dist/browser/workers/filesDownload.d.ts.map +0 -1
- package/dist/browser/workers/imageResize.d.ts.map +0 -1
- package/dist/cjs/ModelProperty-DpjD0o0E.js +0 -1780
- package/dist/cjs/ModelProperty-DpjD0o0E.js.map +0 -1
- package/dist/cjs/Schema-DkSBMBwz.js +0 -6217
- package/dist/cjs/Schema-DkSBMBwz.js.map +0 -1
- package/dist/cjs/SchemaValidationService-O3FCMROl.js +0 -579
- package/dist/cjs/SchemaValidationService-O3FCMROl.js.map +0 -1
- package/dist/cjs/getItem-BeAVMk54.js +0 -55
- package/dist/cjs/getItem-BeAVMk54.js.map +0 -1
- package/dist/cjs/getPublishPayload-CoLriAMV.js +0 -340
- package/dist/cjs/getPublishPayload-CoLriAMV.js.map +0 -1
- package/dist/cjs/getPublishUploads-DDsT9zZ6.js +0 -229
- package/dist/cjs/getPublishUploads-DDsT9zZ6.js.map +0 -1
- package/dist/cjs/getSegmentedItemProperties-DGR0utR5.js +0 -61
- package/dist/cjs/getSegmentedItemProperties-DGR0utR5.js.map +0 -1
- package/dist/cjs/index-B95Ng80C.js +0 -16950
- package/dist/cjs/index-B95Ng80C.js.map +0 -1
- package/dist/cjs/index-CvcOtzbi.js +0 -57
- package/dist/cjs/index-CvcOtzbi.js.map +0 -1
- package/dist/cjs/ownership-Dm5ER1nI.js +0 -103
- package/dist/cjs/ownership-Dm5ER1nI.js.map +0 -1
- package/dist/client/BaseClientManager.d.ts.map +0 -1
- package/dist/client/ClientManager.d.ts.map +0 -1
- package/dist/client/actions/setAddresses.d.ts.map +0 -1
- package/dist/client/actors/addModelsToDb.d.ts.map +0 -1
- package/dist/client/actors/addModelsToStore.d.ts.map +0 -1
- package/dist/client/actors/dbInit.d.ts.map +0 -1
- package/dist/client/actors/fileSystemInit.d.ts.map +0 -1
- package/dist/client/actors/platformClassesInit.d.ts.map +0 -1
- package/dist/client/actors/processSchemaFiles.d.ts.map +0 -1
- package/dist/client/actors/saveAppState.d.ts.map +0 -1
- package/dist/client/actors/saveConfig.d.ts.map +0 -1
- package/dist/client/clientManagerMachine.d.ts.map +0 -1
- package/dist/client/constants.d.ts.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/db/Db/BaseDb.d.ts.map +0 -1
- package/dist/db/configs/dev.schema.config.d.ts.map +0 -1
- package/dist/db/read/getExistingItem.d.ts.map +0 -1
- package/dist/db/read/getItem.d.ts.map +0 -1
- package/dist/db/read/getItemData.d.ts.map +0 -1
- package/dist/db/read/getItemProperties.d.ts.map +0 -1
- package/dist/db/read/getItemProperty.d.ts.map +0 -1
- package/dist/db/read/getItems.d.ts.map +0 -1
- package/dist/db/read/getMetadata.d.ts.map +0 -1
- package/dist/db/read/getModelPropertiesData.d.ts.map +0 -1
- package/dist/db/read/getModelSchemas.d.ts.map +0 -1
- package/dist/db/read/getModels.d.ts.map +0 -1
- package/dist/db/read/getModelsData.d.ts.map +0 -1
- package/dist/db/read/getPropertyData.d.ts.map +0 -1
- package/dist/db/read/getPublishPayload.d.ts +0 -23
- package/dist/db/read/getPublishPayload.d.ts.map +0 -1
- package/dist/db/read/getPublishUploads.d.ts +0 -10
- package/dist/db/read/getPublishUploads.d.ts.map +0 -1
- package/dist/db/read/getRelationValueData.d.ts.map +0 -1
- package/dist/db/read/getSchemaUidForModel.d.ts +0 -2
- package/dist/db/read/getSchemaUidForModel.d.ts.map +0 -1
- package/dist/db/read/getSeedData.d.ts.map +0 -1
- package/dist/db/read/getStorageTransactionIdForSeedUid.d.ts.map +0 -1
- package/dist/db/read/getVersionData.d.ts.map +0 -1
- package/dist/db/read/getVersionsForVersionUids.d.ts.map +0 -1
- package/dist/db/read/subqueries/metadataLatest.d.ts.map +0 -1
- package/dist/db/read/subqueries/versionData.d.ts.map +0 -1
- package/dist/db/write/createMetadata.d.ts.map +0 -1
- package/dist/db/write/createNewItem.d.ts.map +0 -1
- package/dist/db/write/createSeed.d.ts.map +0 -1
- package/dist/db/write/createSeeds.d.ts.map +0 -1
- package/dist/db/write/createVersion.d.ts.map +0 -1
- package/dist/db/write/deleteItem.d.ts.map +0 -1
- package/dist/db/write/recoverDeletedItem.d.ts.map +0 -1
- package/dist/db/write/saveAppState.d.ts.map +0 -1
- package/dist/db/write/saveMetadata.d.ts.map +0 -1
- package/dist/db/write/updateItemPropertyValue.d.ts.map +0 -1
- package/dist/db/write/updateMetadata.d.ts.map +0 -1
- package/dist/db/write/updateSeedUid.d.ts.map +0 -1
- package/dist/eas.d.ts +0 -26
- package/dist/eas.d.ts.map +0 -1
- package/dist/eslint-rules/align-imports.d.ts.map +0 -1
- package/dist/eventBus.d.ts.map +0 -1
- package/dist/events/files/download.d.ts.map +0 -1
- package/dist/events/files/index.d.ts.map +0 -1
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/item/index.d.ts.map +0 -1
- package/dist/events/item/syncDbWithEas.d.ts.map +0 -1
- package/dist/events/services/allItems.d.ts.map +0 -1
- package/dist/events/services/index.d.ts.map +0 -1
- package/dist/feed.d.ts +0 -2
- package/dist/feed.d.ts.map +0 -1
- package/dist/getItem-CqrJt-Ee.js +0 -38
- package/dist/getItem-CqrJt-Ee.js.map +0 -1
- package/dist/getPublishPayload-BRgULCf3.js +0 -324
- package/dist/getPublishPayload-BRgULCf3.js.map +0 -1
- package/dist/getPublishUploads-B0WArDfp.js +0 -193
- package/dist/getPublishUploads-B0WArDfp.js.map +0 -1
- package/dist/getSegmentedItemProperties-DZL9Ymd4.js +0 -59
- package/dist/getSegmentedItemProperties-DZL9Ymd4.js.map +0 -1
- package/dist/graphql/fragments/Attestation.d.ts.map +0 -1
- package/dist/graphql/fragments/Schema.d.ts.map +0 -1
- package/dist/graphql/fragments/index.d.ts.map +0 -1
- package/dist/graphql/gql/fragment-masking.d.ts.map +0 -1
- package/dist/graphql/gql/gql.d.ts.map +0 -1
- package/dist/graphql/gql/graphql.d.ts.map +0 -1
- package/dist/graphql/gql/index.d.ts.map +0 -1
- package/dist/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
- package/dist/helpers/ArweaveClient/index.d.ts.map +0 -1
- package/dist/helpers/ArweaveClient/queries.d.ts.map +0 -1
- package/dist/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
- package/dist/helpers/FileManager/BaseFileManager.d.ts +0 -29
- package/dist/helpers/FileManager/BaseFileManager.d.ts.map +0 -1
- package/dist/helpers/PathResolver/BasePathResolver.d.ts.map +0 -1
- package/dist/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
- package/dist/helpers/addresses.d.ts.map +0 -1
- package/dist/helpers/constants.d.ts +0 -67
- package/dist/helpers/constants.d.ts.map +0 -1
- package/dist/helpers/crypto.d.ts.map +0 -1
- package/dist/helpers/db.d.ts +0 -142
- package/dist/helpers/db.d.ts.map +0 -1
- package/dist/helpers/entity/entityCache.d.ts.map +0 -1
- package/dist/helpers/entity/entityCommon.d.ts.map +0 -1
- package/dist/helpers/entity/entityDestroy.d.ts.map +0 -1
- package/dist/helpers/entity/entityFind.d.ts.map +0 -1
- package/dist/helpers/entity/entityLiveQuery.d.ts.map +0 -1
- package/dist/helpers/entity/entityUnload.d.ts +0 -50
- package/dist/helpers/entity/entityUnload.d.ts.map +0 -1
- package/dist/helpers/entity/index.d.ts.map +0 -1
- package/dist/helpers/environment.d.ts.map +0 -1
- package/dist/helpers/file/download/actors.d.ts.map +0 -1
- package/dist/helpers/file/download/index.d.ts.map +0 -1
- package/dist/helpers/file/fetchAll/actors.d.ts.map +0 -1
- package/dist/helpers/file/fetchAll/index.d.ts.map +0 -1
- package/dist/helpers/file/queries.d.ts.map +0 -1
- package/dist/helpers/files.d.ts.map +0 -1
- package/dist/helpers/getSchemaForItemProperty.d.ts +0 -15
- package/dist/helpers/getSchemaForItemProperty.d.ts.map +0 -1
- package/dist/helpers/getSegmentedItemProperties.d.ts.map +0 -1
- package/dist/helpers/image/queries.d.ts.map +0 -1
- package/dist/helpers/index.d.ts +0 -29
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/model.d.ts.map +0 -1
- package/dist/helpers/ownership.d.ts.map +0 -1
- package/dist/helpers/property/index.d.ts +0 -298
- package/dist/helpers/property/index.d.ts.map +0 -1
- package/dist/helpers/property.d.ts.map +0 -1
- package/dist/helpers/reactiveProxy.d.ts.map +0 -1
- package/dist/helpers/schema.d.ts.map +0 -1
- package/dist/helpers/updateMachineContext.d.ts.map +0 -1
- package/dist/helpers/updateSchema.d.ts +0 -118
- package/dist/helpers/updateSchema.d.ts.map +0 -1
- package/dist/helpers/waitForEntityIdle.d.ts.map +0 -1
- package/dist/imports/index.d.ts.map +0 -1
- package/dist/imports/json.d.ts.map +0 -1
- package/dist/imports/markdown.d.ts +0 -38
- package/dist/imports/markdown.d.ts.map +0 -1
- package/dist/index-BIPPEMVY.js +0 -23
- package/dist/index-BIPPEMVY.js.map +0 -1
- package/dist/index-BnF3MRZ8.js +0 -18
- package/dist/index-BnF3MRZ8.js.map +0 -1
- package/dist/index-zsq08F5p.js +0 -15670
- package/dist/index-zsq08F5p.js.map +0 -1
- package/dist/index.d.ts +0 -22
- package/dist/index.d.ts.map +0 -1
- package/dist/interfaces/IDb.d.ts.map +0 -1
- package/dist/interfaces/IEasClient.d.ts.map +0 -1
- package/dist/interfaces/IItem.d.ts.map +0 -1
- package/dist/interfaces/IItemProperty.d.ts.map +0 -1
- package/dist/interfaces/IQueryClient.d.ts.map +0 -1
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/node/codegen/drizzle.d.ts.map +0 -1
- package/dist/node/codegen/index.d.ts.map +0 -1
- package/dist/node/codegen/ts-to-proto.d.ts.map +0 -1
- package/dist/node/constants.d.ts.map +0 -1
- package/dist/node/db/Db.d.ts.map +0 -1
- package/dist/node/db/index.d.ts.map +0 -1
- package/dist/node/db/node.app.db.config.d.ts.map +0 -1
- package/dist/node/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/node/helpers/EasClient.d.ts.map +0 -1
- package/dist/node/helpers/FileManager.d.ts +0 -26
- package/dist/node/helpers/FileManager.d.ts.map +0 -1
- package/dist/node/helpers/PathResolver.d.ts.map +0 -1
- package/dist/node/helpers/QueryClient.d.ts.map +0 -1
- package/dist/node/helpers/index.d.ts.map +0 -1
- package/dist/node/helpers/scripts.d.ts.map +0 -1
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/seed.d.ts.map +0 -1
- package/dist/node/webpack/fs-proxy.d.ts.map +0 -1
- package/dist/node/webpack/index.d.ts.map +0 -1
- package/dist/ownership-CSsweVap.js +0 -85
- package/dist/ownership-CSsweVap.js.map +0 -1
- package/dist/property-Cqh_o0zx.js +0 -282
- package/dist/property-Cqh_o0zx.js.map +0 -1
- package/dist/queries-DSBgjcJJ.js +0 -16
- package/dist/queries-DSBgjcJJ.js.map +0 -1
- package/dist/seedSchema/AppStateSchema.d.ts.map +0 -1
- package/dist/seedSchema/ConfigSchema.d.ts.map +0 -1
- package/dist/seedSchema/MetadataSchema.d.ts.map +0 -1
- package/dist/seedSchema/ModelSchema.d.ts.map +0 -1
- package/dist/seedSchema/ModelSchemaSchema.d.ts.map +0 -1
- package/dist/seedSchema/ModelUidSchema.d.ts.map +0 -1
- package/dist/seedSchema/PropertyUidSchema.d.ts.map +0 -1
- package/dist/seedSchema/SchemaSchema.d.ts.map +0 -1
- package/dist/seedSchema/SeedSchema.d.ts.map +0 -1
- package/dist/seedSchema/VersionSchema.d.ts.map +0 -1
- package/dist/seedSchema/index.d.ts.map +0 -1
- package/dist/services/events.d.ts.map +0 -1
- package/dist/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
- package/dist/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
- package/dist/services/publish/actors/upload.d.ts.map +0 -1
- package/dist/services/publish/actors/validateItemData.d.ts.map +0 -1
- package/dist/services/publish/publishMachine.d.ts.map +0 -1
- package/dist/services/write/actors/validateEntity.d.ts.map +0 -1
- package/dist/services/write/actors/writeToDatabase.d.ts.map +0 -1
- package/dist/services/write/writeProcessMachine.d.ts.map +0 -1
- package/dist/stores/eas.d.ts +0 -14
- package/dist/stores/eas.d.ts.map +0 -1
- package/dist/types/arweave.d.ts.map +0 -1
- package/dist/types/browser.d.ts.map +0 -1
- package/dist/types/db.d.ts.map +0 -1
- package/dist/types/fileManager.d.ts.map +0 -1
- package/dist/types/helpers.d.ts.map +0 -1
- package/dist/types/import.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -64
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/item.d.ts.map +0 -1
- package/dist/types/machines.d.ts +0 -52
- package/dist/types/machines.d.ts.map +0 -1
- package/dist/types/model.d.ts.map +0 -1
- package/dist/types/property.d.ts.map +0 -1
- package/dist/types/publish.d.ts.map +0 -1
- package/dist/types/seedProtocol.d.ts.map +0 -1
- package/dist/types/services.d.ts.map +0 -1
- package/dist/vite/easFix.d.ts.map +0 -1
- package/dist/vite/index.d.ts.map +0 -1
- /package/dist/{Item → src/Item}/queries.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/fetchDataFromEas.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/hydrateExistingItem.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/hydrateNewItem.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/initialize.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/loadOrCreateItem.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/reload.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/runPublish.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/saveDataToDb.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/actors/waitForDb.d.ts +0 -0
- /package/dist/{Item → src/Item}/service/itemMachineSingle.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/hydrateFromDb.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/initialize.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/loadOrCreateProperty.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/resolveRelatedValue.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/resolveRemoteStorage.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/analyzeInput.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveImage.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/saveValueToDb/saveRelation.d.ts +0 -0
- /package/dist/{ItemProperty → src/ItemProperty}/service/actors/waitForDb.d.ts +0 -0
- /package/dist/{Model → src/Model}/Model.d.ts +0 -0
- /package/dist/{Model → src/Model}/index.d.ts +0 -0
- /package/dist/{Model → src/Model}/service/actors/createModelProperties.d.ts +0 -0
- /package/dist/{Model → src/Model}/service/actors/loadOrCreateModel.d.ts +0 -0
- /package/dist/{Model → src/Model}/service/actors/validateModel.d.ts +0 -0
- /package/dist/{ModelProperty → src/ModelProperty}/service/actors/compareAndMarkDraft.d.ts +0 -0
- /package/dist/{ModelProperty → src/ModelProperty}/service/actors/saveToSchema.d.ts +0 -0
- /package/dist/{ModelProperty → src/ModelProperty}/service/actors/validateProperty.d.ts +0 -0
- /package/dist/{ModelProperty → src/ModelProperty}/service/modelPropertyMachine.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/Schema.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/errors.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/index.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/checkExistingSchema.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/createModelInstances.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/createPropertyInstances.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/loadOrCreateSchema.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/validateSchema.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/verifyModelInstancesInCache.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/verifyModelsInDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/verifyPropertiesInDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/verifyPropertyInstancesInCache.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/verifySchemaInDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/writeModelsToDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/writePropertiesToDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/actors/writeSchemaToDb.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/service/validation/SchemaValidationService.d.ts +0 -0
- /package/dist/{Schema → src/Schema}/validation.d.ts +0 -0
- /package/dist/{browser → src/browser}/db/Db.d.ts +0 -0
- /package/dist/{browser → src/browser}/db/drizzleFiles.d.ts +0 -0
- /package/dist/{browser → src/browser}/db/sqlWasmClient.d.ts +0 -0
- /package/dist/{browser → src/browser}/helpers/ArweaveClient.d.ts +0 -0
- /package/dist/{browser → src/browser}/helpers/EasClient.d.ts +0 -0
- /package/dist/{browser → src/browser}/helpers/PathResolver.d.ts +0 -0
- /package/dist/{browser → src/browser}/helpers/QueryClient.d.ts +0 -0
- /package/dist/{browser → src/browser}/helpers/index.d.ts +0 -0
- /package/dist/{browser → src/browser}/index.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/OPFSImage.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/SeedImage.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/SeedProvider.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/client.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/db.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/item.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/itemProperty.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/liveQuery.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/model.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/modelProperty.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/queryClient.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/schema.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/services.d.ts +0 -0
- /package/dist/{browser → src/browser}/react/trash.d.ts +0 -0
- /package/dist/{browser → src/browser}/seed.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/FileDownloader.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/ImageResizer.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/content-hash.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/dbWorker.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/filesDownload.d.ts +0 -0
- /package/dist/{browser → src/browser}/workers/imageResize.d.ts +0 -0
- /package/dist/{client → src/client}/BaseClientManager.d.ts +0 -0
- /package/dist/{client → src/client}/ClientManager.d.ts +0 -0
- /package/dist/{client → src/client}/actions/setAddresses.d.ts +0 -0
- /package/dist/{client → src/client}/actors/addModelsToDb.d.ts +0 -0
- /package/dist/{client → src/client}/actors/addModelsToStore.d.ts +0 -0
- /package/dist/{client → src/client}/actors/dbInit.d.ts +0 -0
- /package/dist/{client → src/client}/actors/fileSystemInit.d.ts +0 -0
- /package/dist/{client → src/client}/actors/platformClassesInit.d.ts +0 -0
- /package/dist/{client → src/client}/actors/processSchemaFiles.d.ts +0 -0
- /package/dist/{client → src/client}/actors/saveAppState.d.ts +0 -0
- /package/dist/{client → src/client}/actors/saveConfig.d.ts +0 -0
- /package/dist/{client → src/client}/clientManagerMachine.d.ts +0 -0
- /package/dist/{client → src/client}/constants.d.ts +0 -0
- /package/dist/{client → src/client}/index.d.ts +0 -0
- /package/dist/{db → src/db}/Db/BaseDb.d.ts +0 -0
- /package/dist/{db → src/db}/configs/dev.schema.config.d.ts +0 -0
- /package/dist/{db → src/db}/read/getExistingItem.d.ts +0 -0
- /package/dist/{db → src/db}/read/getItem.d.ts +0 -0
- /package/dist/{db → src/db}/read/getItemData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getItemProperties.d.ts +0 -0
- /package/dist/{db → src/db}/read/getItemProperty.d.ts +0 -0
- /package/dist/{db → src/db}/read/getItems.d.ts +0 -0
- /package/dist/{db → src/db}/read/getMetadata.d.ts +0 -0
- /package/dist/{db → src/db}/read/getModelPropertiesData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getModelSchemas.d.ts +0 -0
- /package/dist/{db → src/db}/read/getModels.d.ts +0 -0
- /package/dist/{db → src/db}/read/getModelsData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getPropertyData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getRelationValueData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getSeedData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getStorageTransactionIdForSeedUid.d.ts +0 -0
- /package/dist/{db → src/db}/read/getVersionData.d.ts +0 -0
- /package/dist/{db → src/db}/read/getVersionsForVersionUids.d.ts +0 -0
- /package/dist/{db → src/db}/read/subqueries/metadataLatest.d.ts +0 -0
- /package/dist/{db → src/db}/read/subqueries/versionData.d.ts +0 -0
- /package/dist/{db → src/db}/write/createMetadata.d.ts +0 -0
- /package/dist/{db → src/db}/write/createNewItem.d.ts +0 -0
- /package/dist/{db → src/db}/write/createSeed.d.ts +0 -0
- /package/dist/{db → src/db}/write/createSeeds.d.ts +0 -0
- /package/dist/{db → src/db}/write/createVersion.d.ts +0 -0
- /package/dist/{db → src/db}/write/deleteItem.d.ts +0 -0
- /package/dist/{db → src/db}/write/recoverDeletedItem.d.ts +0 -0
- /package/dist/{db → src/db}/write/saveAppState.d.ts +0 -0
- /package/dist/{db → src/db}/write/saveMetadata.d.ts +0 -0
- /package/dist/{db → src/db}/write/updateItemPropertyValue.d.ts +0 -0
- /package/dist/{db → src/db}/write/updateMetadata.d.ts +0 -0
- /package/dist/{db → src/db}/write/updateSeedUid.d.ts +0 -0
- /package/dist/{eslint-rules → src/eslint-rules}/align-imports.d.ts +0 -0
- /package/dist/{eventBus.d.ts → src/eventBus.d.ts} +0 -0
- /package/dist/{events → src/events}/files/download.d.ts +0 -0
- /package/dist/{events → src/events}/files/index.d.ts +0 -0
- /package/dist/{events → src/events}/index.d.ts +0 -0
- /package/dist/{events → src/events}/item/index.d.ts +0 -0
- /package/dist/{events → src/events}/item/syncDbWithEas.d.ts +0 -0
- /package/dist/{events → src/events}/services/allItems.d.ts +0 -0
- /package/dist/{events → src/events}/services/index.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/fragments/Attestation.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/fragments/Schema.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/fragments/index.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/gql/fragment-masking.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/gql/gql.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/gql/graphql.d.ts +0 -0
- /package/dist/{graphql → src/graphql}/gql/index.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/ArweaveClient/BaseArweaveClient.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/ArweaveClient/index.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/ArweaveClient/queries.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/EasClient/BaseEasClient.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/PathResolver/BasePathResolver.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/QueryClient/BaseQueryClient.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/addresses.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/crypto.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/entityCache.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/entityCommon.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/entityDestroy.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/entityFind.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/entityLiveQuery.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/entity/index.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/environment.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/file/download/actors.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/file/download/index.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/file/fetchAll/actors.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/file/fetchAll/index.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/file/queries.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/files.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/getSegmentedItemProperties.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/image/queries.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/model.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/ownership.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/property.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/reactiveProxy.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/schema.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/updateMachineContext.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/waitForEntityIdle.d.ts +0 -0
- /package/dist/{imports → src/imports}/index.d.ts +0 -0
- /package/dist/{imports → src/imports}/json.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/IDb.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/IEasClient.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/IItem.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/IItemProperty.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/IQueryClient.d.ts +0 -0
- /package/dist/{interfaces → src/interfaces}/index.d.ts +0 -0
- /package/dist/{node → src/node}/codegen/drizzle.d.ts +0 -0
- /package/dist/{node → src/node}/codegen/index.d.ts +0 -0
- /package/dist/{node → src/node}/codegen/ts-to-proto.d.ts +0 -0
- /package/dist/{node → src/node}/constants.d.ts +0 -0
- /package/dist/{node → src/node}/db/Db.d.ts +0 -0
- /package/dist/{node → src/node}/db/index.d.ts +0 -0
- /package/dist/{node → src/node}/db/node.app.db.config.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/ArweaveClient.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/EasClient.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/PathResolver.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/QueryClient.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/index.d.ts +0 -0
- /package/dist/{node → src/node}/helpers/scripts.d.ts +0 -0
- /package/dist/{node → src/node}/index.d.ts +0 -0
- /package/dist/{node → src/node}/seed.d.ts +0 -0
- /package/dist/{node → src/node}/webpack/fs-proxy.d.ts +0 -0
- /package/dist/{node → src/node}/webpack/index.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/AppStateSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/ConfigSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/MetadataSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/ModelSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/ModelSchemaSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/ModelUidSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/PropertyUidSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/SchemaSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/SeedSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/VersionSchema.d.ts +0 -0
- /package/dist/{seedSchema → src/seedSchema}/index.d.ts +0 -0
- /package/dist/{services → src/services}/events.d.ts +0 -0
- /package/dist/{services → src/services}/publish/actors/createPublishAttempt.d.ts +0 -0
- /package/dist/{services → src/services}/publish/actors/preparePublishRequestData.d.ts +0 -0
- /package/dist/{services → src/services}/publish/actors/upload.d.ts +0 -0
- /package/dist/{services → src/services}/publish/actors/validateItemData.d.ts +0 -0
- /package/dist/{services → src/services}/publish/publishMachine.d.ts +0 -0
- /package/dist/{services → src/services}/write/actors/validateEntity.d.ts +0 -0
- /package/dist/{services → src/services}/write/actors/writeToDatabase.d.ts +0 -0
- /package/dist/{services → src/services}/write/writeProcessMachine.d.ts +0 -0
- /package/dist/{types → src/types}/arweave.d.ts +0 -0
- /package/dist/{types → src/types}/browser.d.ts +0 -0
- /package/dist/{types → src/types}/db.d.ts +0 -0
- /package/dist/{types → src/types}/fileManager.d.ts +0 -0
- /package/dist/{types → src/types}/helpers.d.ts +0 -0
- /package/dist/{types → src/types}/import.d.ts +0 -0
- /package/dist/{types → src/types}/item.d.ts +0 -0
- /package/dist/{types → src/types}/model.d.ts +0 -0
- /package/dist/{types → src/types}/property.d.ts +0 -0
- /package/dist/{types → src/types}/publish.d.ts +0 -0
- /package/dist/{types → src/types}/seedProtocol.d.ts +0 -0
- /package/dist/{types → src/types}/services.d.ts +0 -0
- /package/dist/{vite → src/vite}/easFix.d.ts +0 -0
- /package/dist/{vite → src/vite}/index.d.ts +0 -0
|
@@ -0,0 +1,1142 @@
|
|
|
1
|
+
import { a3 as saveAppState, C as BaseFileManager } from './index-j8WN8W6V.js';
|
|
2
|
+
import debug from 'debug';
|
|
3
|
+
import path from 'path-browserify';
|
|
4
|
+
import 'xstate';
|
|
5
|
+
import 'drizzle-orm/sqlite-core';
|
|
6
|
+
import 'drizzle-orm';
|
|
7
|
+
import 'nanoid';
|
|
8
|
+
import 'nanoid-dictionary';
|
|
9
|
+
import 'ethers';
|
|
10
|
+
import 'pluralize';
|
|
11
|
+
import 'rxjs';
|
|
12
|
+
import 'lodash-es';
|
|
13
|
+
import 'drizzle-orm/casing';
|
|
14
|
+
import 'eventemitter3';
|
|
15
|
+
import 'arweave';
|
|
16
|
+
import '@sinclair/typebox';
|
|
17
|
+
|
|
18
|
+
var filesDownload = `(
|
|
19
|
+
${function () {
|
|
20
|
+
const identifyString = (str) => {
|
|
21
|
+
try {
|
|
22
|
+
JSON.parse(str);
|
|
23
|
+
return 'json';
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
// Not JSON
|
|
27
|
+
}
|
|
28
|
+
if (!str) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (str.trim().startsWith('<') && str.trim().endsWith('>')) {
|
|
32
|
+
return 'html';
|
|
33
|
+
}
|
|
34
|
+
// Simple markdown checks (very naive)
|
|
35
|
+
if (/^#{1,6}\s|^-{3,}|\*{3,}|^-{1,2}\s|\*\s/.test(str)) {
|
|
36
|
+
return 'markdown';
|
|
37
|
+
}
|
|
38
|
+
if (/^data:image\/[a-zA-Z]+;base64,[A-Za-z0-9+/]+={0,2}$/.test(str)) {
|
|
39
|
+
return 'base64';
|
|
40
|
+
}
|
|
41
|
+
// Default to plain text if unsure
|
|
42
|
+
return 'text';
|
|
43
|
+
};
|
|
44
|
+
const getMimeType = (base64) => {
|
|
45
|
+
if (!base64) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const result = base64.match(/^data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,/);
|
|
49
|
+
if (result && result.length > 1) {
|
|
50
|
+
return result[1];
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return null; // MIME type could not be determined
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const getDataTypeFromString = (data) => {
|
|
57
|
+
const nonImageBase64Regex = /^(?!data:image\/(?:jpeg|png|gif|bmp|webp);base64,)[A-Za-z0-9+/=]+$/;
|
|
58
|
+
if (nonImageBase64Regex.test(data)) {
|
|
59
|
+
return 'base64';
|
|
60
|
+
}
|
|
61
|
+
// Regular expression for base64 (simple version, checking for base64 format)
|
|
62
|
+
const imageBase64Regex = /^data:image\/[a-zA-Z]+;base64,[A-Za-z0-9+/]+={0,2}$/;
|
|
63
|
+
if (imageBase64Regex.test(data)) {
|
|
64
|
+
return 'imageBase64';
|
|
65
|
+
}
|
|
66
|
+
// Regular expression for URL (simple version, checking for common URL format)
|
|
67
|
+
const urlRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/;
|
|
68
|
+
if (urlRegex.test(data)) {
|
|
69
|
+
return 'url';
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
};
|
|
73
|
+
const isBinary = (arrayBuffer) => {
|
|
74
|
+
const view = new Uint8Array(arrayBuffer);
|
|
75
|
+
let nonTextCount = 0;
|
|
76
|
+
const threshold = 0.2; // Adjust as needed (e.g., 20% non-text implies binary)
|
|
77
|
+
for (let i = 0; i < view.length; i++) {
|
|
78
|
+
const byte = view[i];
|
|
79
|
+
// ASCII printable characters (32-126) and common whitespace (9, 10, 13)
|
|
80
|
+
if ((byte >= 32 && byte <= 126) || // Printable ASCII
|
|
81
|
+
byte === 9 || byte === 10 || byte === 13 // Tab, LF, CR
|
|
82
|
+
) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
nonTextCount++;
|
|
86
|
+
if (nonTextCount / view.length > threshold) {
|
|
87
|
+
return true; // More than threshold are non-text bytes
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return false; // Fewer than threshold are non-text bytes
|
|
91
|
+
};
|
|
92
|
+
const saveBufferToOPFS = async (filePath, buffer) => {
|
|
93
|
+
// Access the OPFS root directory
|
|
94
|
+
const rootHandle = await navigator.storage.getDirectory();
|
|
95
|
+
// Split the filePath into directory segments and file name
|
|
96
|
+
const segments = filePath.split('/').filter(Boolean);
|
|
97
|
+
const fileName = segments.pop(); // Extract the file name
|
|
98
|
+
if (!fileName) {
|
|
99
|
+
throw new Error('Invalid file path: No file name provided.');
|
|
100
|
+
}
|
|
101
|
+
// Traverse or create directories as needed
|
|
102
|
+
let currentDirHandle = rootHandle;
|
|
103
|
+
for (const segment of segments) {
|
|
104
|
+
currentDirHandle = await currentDirHandle.getDirectoryHandle(segment, { create: true });
|
|
105
|
+
}
|
|
106
|
+
// Create or open the file in OPFS
|
|
107
|
+
const fileHandleAsync = await currentDirHandle.getFileHandle(fileName, { create: true });
|
|
108
|
+
const fileHandle = await fileHandleAsync.createSyncAccessHandle();
|
|
109
|
+
// Write the buffer to the file
|
|
110
|
+
fileHandle.write(buffer);
|
|
111
|
+
fileHandle.flush();
|
|
112
|
+
fileHandle.close();
|
|
113
|
+
};
|
|
114
|
+
const getFilesPath = (filesRoot, ...parts) => {
|
|
115
|
+
const root = filesRoot.replace(/\/$/, '');
|
|
116
|
+
return [root, ...parts].filter(Boolean).join('/').replace(/\/+/g, '/');
|
|
117
|
+
};
|
|
118
|
+
const downloadFiles = async ({ transactionIds, arweaveHost, filesRoot = '/files', }) => {
|
|
119
|
+
let arrayBuffer;
|
|
120
|
+
for (const transactionId of transactionIds) {
|
|
121
|
+
try {
|
|
122
|
+
const response = await fetch(`https://${arweaveHost}/raw/${transactionId}`);
|
|
123
|
+
arrayBuffer = await response.arrayBuffer();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
globalThis.postMessage({
|
|
127
|
+
message: 'excludeTransaction',
|
|
128
|
+
transactionId,
|
|
129
|
+
});
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
let dataString;
|
|
133
|
+
const isBinaryData = isBinary(arrayBuffer);
|
|
134
|
+
if (!isBinaryData) {
|
|
135
|
+
const decoder = new TextDecoder('utf-8');
|
|
136
|
+
const text = decoder.decode(arrayBuffer);
|
|
137
|
+
dataString = text;
|
|
138
|
+
}
|
|
139
|
+
if (dataString && dataString.startsWith('===FILE_SEPARATOR===')) {
|
|
140
|
+
const dataStringParts = dataString
|
|
141
|
+
.split('===FILE_SEPARATOR===')
|
|
142
|
+
.slice(1);
|
|
143
|
+
if (dataStringParts.length % 2 !== 0) {
|
|
144
|
+
throw new Error('Input array must have an even number of elements.');
|
|
145
|
+
}
|
|
146
|
+
for (let i = 0; i < dataStringParts.length; i += 2) {
|
|
147
|
+
const contentType = dataStringParts[i];
|
|
148
|
+
const content = dataStringParts[i + 1];
|
|
149
|
+
const encoder = new TextEncoder();
|
|
150
|
+
if (contentType === 'html') {
|
|
151
|
+
const fileName = `${transactionId}.html`;
|
|
152
|
+
const buffer = encoder.encode(content);
|
|
153
|
+
saveBufferToOPFS(getFilesPath(filesRoot, 'html', fileName), buffer);
|
|
154
|
+
}
|
|
155
|
+
if (contentType === 'json') {
|
|
156
|
+
const fileName = `${transactionId}.json`;
|
|
157
|
+
const buffer = encoder.encode(content);
|
|
158
|
+
saveBufferToOPFS(getFilesPath(filesRoot, 'json', fileName), buffer);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (!dataString && arrayBuffer) {
|
|
164
|
+
saveBufferToOPFS(getFilesPath(filesRoot, 'images', transactionId), new Uint8Array(arrayBuffer));
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (!dataString) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
let contentType = identifyString(dataString);
|
|
171
|
+
if (contentType !== 'json' &&
|
|
172
|
+
contentType !== 'base64' &&
|
|
173
|
+
contentType !== 'html') {
|
|
174
|
+
const possibleImageType = getDataTypeFromString(dataString);
|
|
175
|
+
if (!possibleImageType) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
contentType = possibleImageType;
|
|
179
|
+
}
|
|
180
|
+
if (contentType === 'url') {
|
|
181
|
+
const url = dataString;
|
|
182
|
+
let buffer;
|
|
183
|
+
try {
|
|
184
|
+
const response = await fetch(url);
|
|
185
|
+
buffer = await response.arrayBuffer();
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
globalThis.postMessage({
|
|
189
|
+
message: 'excludeTransaction',
|
|
190
|
+
transactionId,
|
|
191
|
+
});
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const bufferUint8Array = new Uint8Array(buffer);
|
|
195
|
+
// Extract the file extension from the URL
|
|
196
|
+
const extensionMatch = url.match(/\.(jpg|jpeg|png|gif|bmp|webp|svg)$/i);
|
|
197
|
+
if (!extensionMatch) {
|
|
198
|
+
throw new Error('Unable to determine the file extension from the URL.');
|
|
199
|
+
}
|
|
200
|
+
extensionMatch[0]; // e.g., ".jpg"
|
|
201
|
+
// Set the file name (you can customize this)
|
|
202
|
+
// const fileNameFromUrl = `${transactionId}${fileExtension}`
|
|
203
|
+
await saveBufferToOPFS(getFilesPath(filesRoot, 'images', transactionId), bufferUint8Array);
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
const mimeType = getMimeType(dataString);
|
|
207
|
+
let fileExtension = mimeType;
|
|
208
|
+
if (fileExtension && fileExtension?.startsWith('image')) {
|
|
209
|
+
fileExtension = fileExtension.replace('image/', '');
|
|
210
|
+
}
|
|
211
|
+
let fileName = transactionId;
|
|
212
|
+
if (contentType === 'base64') {
|
|
213
|
+
if (fileExtension) {
|
|
214
|
+
fileName += `.${fileExtension}`;
|
|
215
|
+
}
|
|
216
|
+
// Remove the Base64 header if it exists (e.g., "data:image/png;base64,")
|
|
217
|
+
const base64Data = dataString.split(',').pop() || '';
|
|
218
|
+
// Decode the Base64 string to binary
|
|
219
|
+
const binaryString = atob(base64Data);
|
|
220
|
+
const length = binaryString.length;
|
|
221
|
+
const binaryData = new Uint8Array(length);
|
|
222
|
+
for (let i = 0; i < length; i++) {
|
|
223
|
+
binaryData[i] = binaryString.charCodeAt(i);
|
|
224
|
+
}
|
|
225
|
+
await saveBufferToOPFS(getFilesPath(filesRoot, 'images', fileName), binaryData);
|
|
226
|
+
}
|
|
227
|
+
if (contentType === 'html') {
|
|
228
|
+
fileName += '.html';
|
|
229
|
+
const encoder = new TextEncoder();
|
|
230
|
+
const buffer = encoder.encode(dataString);
|
|
231
|
+
await saveBufferToOPFS(getFilesPath(filesRoot, 'html', fileName), buffer);
|
|
232
|
+
}
|
|
233
|
+
if (contentType === 'json') {
|
|
234
|
+
fileName += '.json';
|
|
235
|
+
const encoder = new TextEncoder();
|
|
236
|
+
const buffer = encoder.encode(dataString);
|
|
237
|
+
await saveBufferToOPFS(getFilesPath(filesRoot, 'json', fileName), buffer);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
onmessage = async (e) => {
|
|
242
|
+
const { debug, filesRoot } = e.data;
|
|
243
|
+
if (!debug) {
|
|
244
|
+
console.log = () => { };
|
|
245
|
+
}
|
|
246
|
+
await downloadFiles({ ...e.data, filesRoot });
|
|
247
|
+
globalThis.postMessage({
|
|
248
|
+
message: 'filesDownload onmessage done',
|
|
249
|
+
done: true,
|
|
250
|
+
});
|
|
251
|
+
};
|
|
252
|
+
}.toString()}
|
|
253
|
+
)()`;
|
|
254
|
+
|
|
255
|
+
const logger$2 = debug('seedSdk:browser:workers:FileDownloader');
|
|
256
|
+
class FileDownloader {
|
|
257
|
+
constructor() {
|
|
258
|
+
this.workersArchive = [];
|
|
259
|
+
this.downloadAll = async ({ transactionIds, arweaveHost, excludedTransactions }) => {
|
|
260
|
+
if (this.workersArchive.length > 0) {
|
|
261
|
+
for (let i = 0; i < this.workersArchive.length; i++) {
|
|
262
|
+
this.workersArchive[i].terminate();
|
|
263
|
+
delete this.workersArchive[i];
|
|
264
|
+
}
|
|
265
|
+
this.workersArchive = [];
|
|
266
|
+
}
|
|
267
|
+
const worker = new Worker(this.workerBlobUrl);
|
|
268
|
+
this.workersArchive.push(worker);
|
|
269
|
+
const localExcludedTransactions = new Set(excludedTransactions);
|
|
270
|
+
return new Promise((resolve, reject) => {
|
|
271
|
+
worker.onmessage = (e) => {
|
|
272
|
+
logger$2('filesDownload main thread onmessage', e.data);
|
|
273
|
+
if (e.data.message === 'excludeTransaction') {
|
|
274
|
+
localExcludedTransactions.add(e.data.transactionId);
|
|
275
|
+
}
|
|
276
|
+
if (e.data.done) {
|
|
277
|
+
saveAppState('excludedTransactions', JSON.stringify(Array.from(localExcludedTransactions)))
|
|
278
|
+
.then(() => {
|
|
279
|
+
resolve(e.data);
|
|
280
|
+
})
|
|
281
|
+
.catch((error) => {
|
|
282
|
+
reject(error);
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
if (e.data.error) {
|
|
286
|
+
reject(e.data.error);
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
worker.postMessage({
|
|
290
|
+
transactionIds,
|
|
291
|
+
arweaveHost,
|
|
292
|
+
debug: logger$2.enabled,
|
|
293
|
+
filesRoot: BaseFileManager.getWorkingDir(),
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
this.cores = Math.min(navigator.hardwareConcurrency || 4, 4);
|
|
298
|
+
this.workerBlobUrl = globalThis.URL.createObjectURL(new Blob([filesDownload], { type: 'application/javascript' }));
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
var imageResize = `(
|
|
303
|
+
${function () {
|
|
304
|
+
async function listFilesInDirectory(directoryHandle) {
|
|
305
|
+
const entries = [];
|
|
306
|
+
for await (const [name, handle] of directoryHandle.entries()) {
|
|
307
|
+
entries.push({
|
|
308
|
+
name,
|
|
309
|
+
kind: handle.kind,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
return entries;
|
|
313
|
+
}
|
|
314
|
+
const getFileHandle = async (path, rootHandle = null) => {
|
|
315
|
+
// Split the path into segments
|
|
316
|
+
const segments = path.split('/').filter(Boolean);
|
|
317
|
+
// Start from the root directory if not provided
|
|
318
|
+
if (!rootHandle) {
|
|
319
|
+
rootHandle = await navigator.storage.getDirectory();
|
|
320
|
+
}
|
|
321
|
+
let currentHandle = rootHandle;
|
|
322
|
+
// Traverse the path segments
|
|
323
|
+
for (let i = 0; i < segments.length; i++) {
|
|
324
|
+
const segment = segments[i];
|
|
325
|
+
const isLastSegment = i === segments.length - 1;
|
|
326
|
+
try {
|
|
327
|
+
for await (const [name, handle] of currentHandle.entries()) {
|
|
328
|
+
if (name !== segment) {
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
if (isLastSegment) {
|
|
332
|
+
if (handle.kind === 'file') {
|
|
333
|
+
return handle; // Return the file handle if found
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
throw new Error(`Path '${path}' refers to a directory, not a file.`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
else if (handle.kind === 'directory') {
|
|
340
|
+
currentHandle = handle; // Traverse into the directory
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
throw new Error(`Invalid path segment '${segment}'`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
if (err instanceof Error && err.name === 'NotFoundError') {
|
|
349
|
+
throw new Error(`Path '${path}' does not exist.`);
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
throw err;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
throw new Error(`Path '${path}' could not be resolved.`);
|
|
357
|
+
};
|
|
358
|
+
async function getFileFromOPFS(path) {
|
|
359
|
+
const fileHandleAsync = await getFileHandle(path);
|
|
360
|
+
const file = await fileHandleAsync.getFile();
|
|
361
|
+
return file;
|
|
362
|
+
}
|
|
363
|
+
const DEFAULT_CONFIG = {
|
|
364
|
+
argorithm: 'null',
|
|
365
|
+
processByHalf: true,
|
|
366
|
+
quality: 0.5,
|
|
367
|
+
maxWidth: 800,
|
|
368
|
+
maxHeight: 600,
|
|
369
|
+
debug: false,
|
|
370
|
+
mimeType: 'image/jpeg',
|
|
371
|
+
};
|
|
372
|
+
function isIos() {
|
|
373
|
+
if (typeof navigator === 'undefined')
|
|
374
|
+
return false;
|
|
375
|
+
if (!navigator.userAgent)
|
|
376
|
+
return false;
|
|
377
|
+
return /iPad|iPhone|iPod/.test(navigator.userAgent);
|
|
378
|
+
}
|
|
379
|
+
const getTargetHeight = (srcHeight, scale, config) => {
|
|
380
|
+
return Math.min(Math.floor(srcHeight * scale), config.maxHeight);
|
|
381
|
+
};
|
|
382
|
+
const findMaxWidth = (config, canvas) => {
|
|
383
|
+
//Let's find the max available width for scaled image
|
|
384
|
+
const ratio = canvas.width / canvas.height;
|
|
385
|
+
let mWidth = Math.min(canvas.width, config.maxWidth, ratio * config.maxHeight);
|
|
386
|
+
if (config.maxSize &&
|
|
387
|
+
config.maxSize > 0 &&
|
|
388
|
+
config.maxSize < (canvas.width * canvas.height) / 1000)
|
|
389
|
+
mWidth = Math.min(mWidth, Math.floor((config.maxSize * 1000) / canvas.height));
|
|
390
|
+
if (!!config.scaleRatio)
|
|
391
|
+
mWidth = Math.min(mWidth, Math.floor(config.scaleRatio * canvas.width));
|
|
392
|
+
const rHeight = getTargetHeight(canvas.height, mWidth / canvas.width, config);
|
|
393
|
+
// console.log(
|
|
394
|
+
// 'browser-image-resizer: original image size = ' +
|
|
395
|
+
// canvas.width +
|
|
396
|
+
// ' px (width) X ' +
|
|
397
|
+
// canvas.height +
|
|
398
|
+
// ' px (height)'
|
|
399
|
+
// );
|
|
400
|
+
// console.log(
|
|
401
|
+
// 'browser-image-resizer: scaled image size = ' +
|
|
402
|
+
// mWidth +
|
|
403
|
+
// ' px (width) X ' +
|
|
404
|
+
// rHeight +
|
|
405
|
+
// ' px (height)'
|
|
406
|
+
// );
|
|
407
|
+
if (mWidth <= 0) {
|
|
408
|
+
mWidth = 1;
|
|
409
|
+
console.warn("browser-image-resizer: image size is too small");
|
|
410
|
+
}
|
|
411
|
+
if (isIos() && mWidth * rHeight > 167777216) {
|
|
412
|
+
console.error("browser-image-resizer: image size is too large for iOS WebKit.", mWidth, rHeight);
|
|
413
|
+
throw new Error("browser-image-resizer: image size is too large for iOS WebKit.");
|
|
414
|
+
}
|
|
415
|
+
return mWidth;
|
|
416
|
+
};
|
|
417
|
+
/**
|
|
418
|
+
* Hermite resize, multicore version - fast image resize/resample using Hermite filter.
|
|
419
|
+
*/
|
|
420
|
+
const resample = (srcCanvas, destCanvas, config) => {
|
|
421
|
+
return new Promise((resolve, reject) => {
|
|
422
|
+
const ratio_h = srcCanvas.height / destCanvas.height;
|
|
423
|
+
const cores = Math.min(navigator.hardwareConcurrency || 4, 4);
|
|
424
|
+
//prepare source and target data for workers
|
|
425
|
+
const ctx = srcCanvas.getContext('2d');
|
|
426
|
+
if (!ctx)
|
|
427
|
+
return reject('Canvas is empty (resample)');
|
|
428
|
+
const data_part = [];
|
|
429
|
+
const block_height = Math.ceil(srcCanvas.height / cores / 2) * 2;
|
|
430
|
+
let end_y = -1;
|
|
431
|
+
for (let c = 0; c < cores; c++) {
|
|
432
|
+
//source
|
|
433
|
+
const offset_y = end_y + 1;
|
|
434
|
+
if (offset_y >= srcCanvas.height) {
|
|
435
|
+
//size too small, nothing left for this core
|
|
436
|
+
continue;
|
|
437
|
+
}
|
|
438
|
+
end_y = Math.min(offset_y + block_height - 1, srcCanvas.height - 1);
|
|
439
|
+
const current_block_height = Math.min(block_height, srcCanvas.height - offset_y);
|
|
440
|
+
data_part.push({
|
|
441
|
+
source: ctx.getImageData(0, offset_y, srcCanvas.width, block_height),
|
|
442
|
+
startY: Math.ceil(offset_y / ratio_h),
|
|
443
|
+
height: current_block_height
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
//start
|
|
447
|
+
const destCtx = destCanvas.getContext('2d');
|
|
448
|
+
if (!destCtx)
|
|
449
|
+
return reject('Canvas is empty (resample dest)');
|
|
450
|
+
for (let c = 0; c < data_part.length; c++) {
|
|
451
|
+
//draw
|
|
452
|
+
const height_part = Math.ceil(data_part[c].height / ratio_h);
|
|
453
|
+
const target = destCtx.createImageData(destCanvas.width, height_part);
|
|
454
|
+
// target.data.set(event.data.target);
|
|
455
|
+
destCtx.putImageData(target, 0, data_part[c].startY);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
};
|
|
459
|
+
/**
|
|
460
|
+
* Hermite resize - fast image resize/resample using Hermite filter. 1 cpu version!
|
|
461
|
+
*/
|
|
462
|
+
const resampleSingle = (srcCanvasData, destCanvasData) => {
|
|
463
|
+
const ratio_w = srcCanvasData.width / destCanvasData.width;
|
|
464
|
+
const ratio_h = srcCanvasData.height / destCanvasData.height;
|
|
465
|
+
const ratio_w_half = Math.ceil(ratio_w / 2);
|
|
466
|
+
const ratio_h_half = Math.ceil(ratio_h / 2);
|
|
467
|
+
const data = srcCanvasData.data;
|
|
468
|
+
const data2 = destCanvasData.data;
|
|
469
|
+
for (let j = 0; j < destCanvasData.height; j++) {
|
|
470
|
+
for (let i = 0; i < destCanvasData.width; i++) {
|
|
471
|
+
const x2 = (i + j * destCanvasData.width) * 4;
|
|
472
|
+
let weight = 0;
|
|
473
|
+
let weights = 0;
|
|
474
|
+
let weights_alpha = 0;
|
|
475
|
+
let gx_r = 0;
|
|
476
|
+
let gx_g = 0;
|
|
477
|
+
let gx_b = 0;
|
|
478
|
+
let gx_a = 0;
|
|
479
|
+
const center_y = j * ratio_h;
|
|
480
|
+
const xx_start = Math.floor(i * ratio_w);
|
|
481
|
+
const xx_stop = Math.min(Math.ceil((i + 1) * ratio_w), srcCanvasData.width);
|
|
482
|
+
const yy_start = Math.floor(j * ratio_h);
|
|
483
|
+
const yy_stop = Math.min(Math.ceil((j + 1) * ratio_h), srcCanvasData.height);
|
|
484
|
+
for (let yy = yy_start; yy < yy_stop; yy++) {
|
|
485
|
+
let dy = Math.abs(center_y - yy) / ratio_h_half;
|
|
486
|
+
let center_x = i * ratio_w;
|
|
487
|
+
let w0 = dy * dy; //pre-calc part of w
|
|
488
|
+
for (let xx = xx_start; xx < xx_stop; xx++) {
|
|
489
|
+
let dx = Math.abs(center_x - xx) / ratio_w_half;
|
|
490
|
+
let w = Math.sqrt(w0 + dx * dx);
|
|
491
|
+
if (w >= 1) {
|
|
492
|
+
//pixel too far
|
|
493
|
+
continue;
|
|
494
|
+
}
|
|
495
|
+
//hermite filter
|
|
496
|
+
weight = 2 * w * w * w - 3 * w * w + 1;
|
|
497
|
+
let pos_x = 4 * (xx + yy * srcCanvasData.width);
|
|
498
|
+
//alpha
|
|
499
|
+
gx_a += weight * data[pos_x + 3];
|
|
500
|
+
weights_alpha += weight;
|
|
501
|
+
//colors
|
|
502
|
+
if (data[pos_x + 3] < 255)
|
|
503
|
+
weight = weight * data[pos_x + 3] / 250;
|
|
504
|
+
gx_r += weight * data[pos_x];
|
|
505
|
+
gx_g += weight * data[pos_x + 1];
|
|
506
|
+
gx_b += weight * data[pos_x + 2];
|
|
507
|
+
weights += weight;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
data2[x2] = gx_r / weights;
|
|
511
|
+
data2[x2 + 1] = gx_g / weights;
|
|
512
|
+
data2[x2 + 2] = gx_b / weights;
|
|
513
|
+
data2[x2 + 3] = gx_a / weights_alpha;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
/**
|
|
518
|
+
* Hermite resize. Detect cpu count and use best option for user.
|
|
519
|
+
*/
|
|
520
|
+
const resampleAuto = (srcCanvas, destCanvas, config) => {
|
|
521
|
+
if (!!globalThis.Worker && navigator.hardwareConcurrency > 1 && config?.argorithm !== 'hermite_single') {
|
|
522
|
+
//workers supported and we have at least 2 cpu cores - using multithreading
|
|
523
|
+
return resample(srcCanvas, destCanvas);
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
//1 cpu version
|
|
527
|
+
const { srcImgData, destImgData } = getImageData(srcCanvas, destCanvas);
|
|
528
|
+
resampleSingle(srcImgData, destImgData);
|
|
529
|
+
destCanvas.getContext('2d').putImageData(destImgData, 0, 0);
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
};
|
|
533
|
+
async function scaleCanvasWithAlgorithm(canvas, config) {
|
|
534
|
+
const scale = config.outputWidth / canvas.width;
|
|
535
|
+
const scaled = new OffscreenCanvas(Math.floor(config.outputWidth), getTargetHeight(canvas.height, scale, config));
|
|
536
|
+
switch (config.algorithm) {
|
|
537
|
+
case 'hermite': {
|
|
538
|
+
await resampleAuto(canvas, scaled, config);
|
|
539
|
+
break;
|
|
540
|
+
}
|
|
541
|
+
case 'hermite_single': {
|
|
542
|
+
const { srcImgData, destImgData } = getImageData(canvas, scaled);
|
|
543
|
+
resampleSingle(srcImgData, destImgData);
|
|
544
|
+
scaled?.getContext('2d')?.putImageData(destImgData, 0, 0);
|
|
545
|
+
break;
|
|
546
|
+
}
|
|
547
|
+
case 'bilinear': {
|
|
548
|
+
// const { srcImgData, destImgData } = getImageData(canvas, scaled);
|
|
549
|
+
// bilinear(srcImgData, destImgData, scale);
|
|
550
|
+
// scaled?.getContext('2d')?.putImageData(destImgData, 0, 0);
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
default: {
|
|
554
|
+
scaled.getContext('2d')?.drawImage(canvas, 0, 0, scaled.width, scaled.height);
|
|
555
|
+
break;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
return scaled;
|
|
559
|
+
}
|
|
560
|
+
const getHalfScaleCanvas = (src) => {
|
|
561
|
+
const half = new OffscreenCanvas(src.width / 2, src.height / 2);
|
|
562
|
+
half
|
|
563
|
+
?.getContext('2d')
|
|
564
|
+
?.drawImage(src, 0, 0, half.width, half.height);
|
|
565
|
+
return half;
|
|
566
|
+
};
|
|
567
|
+
const getImageData = (canvas, scaled) => {
|
|
568
|
+
const srcImgData = canvas
|
|
569
|
+
?.getContext('2d')
|
|
570
|
+
?.getImageData(0, 0, canvas.width, canvas.height);
|
|
571
|
+
const destImgData = scaled
|
|
572
|
+
?.getContext('2d')
|
|
573
|
+
?.createImageData(scaled.width, scaled.height);
|
|
574
|
+
if (!srcImgData || !destImgData)
|
|
575
|
+
throw Error('Canvas is empty (scaleCanvasWithAlgorithm). You should run this script after the document is ready.');
|
|
576
|
+
return { srcImgData, destImgData };
|
|
577
|
+
};
|
|
578
|
+
async function saveBlobToOPFS(filePath, blob) {
|
|
579
|
+
// Access the OPFS root directory
|
|
580
|
+
const rootHandle = await navigator.storage.getDirectory();
|
|
581
|
+
// Split the filePath into directory segments and file name
|
|
582
|
+
const segments = filePath.split('/').filter(Boolean);
|
|
583
|
+
const fileName = segments.pop(); // Extract the file name
|
|
584
|
+
if (!fileName) {
|
|
585
|
+
throw new Error('Invalid file path: No file name provided.');
|
|
586
|
+
}
|
|
587
|
+
// Traverse or create directories as needed
|
|
588
|
+
let currentDirHandle = rootHandle;
|
|
589
|
+
for (const segment of segments) {
|
|
590
|
+
currentDirHandle = await currentDirHandle.getDirectoryHandle(segment, { create: true });
|
|
591
|
+
}
|
|
592
|
+
// Create or open the file in OPFS
|
|
593
|
+
const fileHandle = await currentDirHandle.getFileHandle(fileName, { create: true });
|
|
594
|
+
// Write the Blob to the file
|
|
595
|
+
const writableStream = await fileHandle.createWritable();
|
|
596
|
+
await writableStream.write(blob);
|
|
597
|
+
await writableStream.close();
|
|
598
|
+
}
|
|
599
|
+
const imageResize = async (filePath, width, height) => {
|
|
600
|
+
const config = {
|
|
601
|
+
...DEFAULT_CONFIG,
|
|
602
|
+
algorithm: 'hermite_single',
|
|
603
|
+
mimeType: 'image/webp',
|
|
604
|
+
maxWidth: width,
|
|
605
|
+
maxHeight: height,
|
|
606
|
+
};
|
|
607
|
+
const rootHandle = await navigator.storage.getDirectory();
|
|
608
|
+
// List files in the root directory
|
|
609
|
+
await listFilesInDirectory(rootHandle);
|
|
610
|
+
const file = await getFileFromOPFS(filePath);
|
|
611
|
+
const imageBitmap = await createImageBitmap(file);
|
|
612
|
+
let converting;
|
|
613
|
+
if (isIos() && imageBitmap.width * imageBitmap.height > 16777216) {
|
|
614
|
+
const scale = Math.sqrt(16777216 / (imageBitmap.width * imageBitmap.height));
|
|
615
|
+
converting = new OffscreenCanvas(Math.floor(imageBitmap.width * scale), Math.floor(imageBitmap.height * scale));
|
|
616
|
+
converting.getContext('2d')?.drawImage(imageBitmap, 0, 0, converting.width, converting.height);
|
|
617
|
+
}
|
|
618
|
+
else {
|
|
619
|
+
converting = new OffscreenCanvas(imageBitmap.width, imageBitmap.height);
|
|
620
|
+
converting.getContext('2d')?.drawImage(imageBitmap, 0, 0);
|
|
621
|
+
}
|
|
622
|
+
const maxWidth = findMaxWidth(config, converting);
|
|
623
|
+
if (!maxWidth) {
|
|
624
|
+
throw Error(`browser-image-resizer: maxWidth is ${maxWidth}!!`);
|
|
625
|
+
}
|
|
626
|
+
while (config.processByHalf && converting.width >= 2 * maxWidth) {
|
|
627
|
+
converting = getHalfScaleCanvas(converting);
|
|
628
|
+
}
|
|
629
|
+
if (converting.width > maxWidth) {
|
|
630
|
+
converting = await scaleCanvasWithAlgorithm(converting, Object.assign(config, { outputWidth: maxWidth }));
|
|
631
|
+
}
|
|
632
|
+
if (config.mimeType === null) {
|
|
633
|
+
return converting;
|
|
634
|
+
}
|
|
635
|
+
const resizedBlob = await converting.convertToBlob({ type: config.mimeType, quality: config.quality });
|
|
636
|
+
const pathSegments = filePath.split('/');
|
|
637
|
+
const fileName = pathSegments.pop();
|
|
638
|
+
if (!fileName) {
|
|
639
|
+
throw Error('Invalid file path: No file name provided.');
|
|
640
|
+
}
|
|
641
|
+
const newSegments = [
|
|
642
|
+
...pathSegments,
|
|
643
|
+
width,
|
|
644
|
+
];
|
|
645
|
+
const fileNameParts = fileName.split('.');
|
|
646
|
+
const newFileName = `${fileNameParts[0]}.webp`;
|
|
647
|
+
const newDirPath = newSegments.join('/');
|
|
648
|
+
const newFilePath = `${newDirPath}/${newFileName}`;
|
|
649
|
+
// Save resized image to OPFS with new name
|
|
650
|
+
await saveBlobToOPFS(newFilePath, resizedBlob);
|
|
651
|
+
globalThis.postMessage({
|
|
652
|
+
done: true,
|
|
653
|
+
filePath: newFilePath,
|
|
654
|
+
});
|
|
655
|
+
};
|
|
656
|
+
onmessage = async (e) => {
|
|
657
|
+
const { filePath, width, height, debug } = e.data;
|
|
658
|
+
if (!debug) {
|
|
659
|
+
console.log = () => { };
|
|
660
|
+
}
|
|
661
|
+
await imageResize(filePath, width, height);
|
|
662
|
+
};
|
|
663
|
+
}.toString()}
|
|
664
|
+
)()`;
|
|
665
|
+
|
|
666
|
+
const logger$1 = debug('seedSdk:browser:workers:ImageResizer');
|
|
667
|
+
class ImageResizer {
|
|
668
|
+
constructor() {
|
|
669
|
+
this.workersArchive = new Map();
|
|
670
|
+
this.cores = Math.min(navigator.hardwareConcurrency || 4, 4);
|
|
671
|
+
this.workerBlobUrl = globalThis.URL.createObjectURL(new Blob([imageResize], { type: 'application/javascript' }));
|
|
672
|
+
}
|
|
673
|
+
async resize({ filePath, width, height }) {
|
|
674
|
+
if (this.workersArchive.has(filePath)) {
|
|
675
|
+
const savedWorker = this.workersArchive.get(filePath);
|
|
676
|
+
savedWorker?.terminate();
|
|
677
|
+
logger$1('[ImageResizer.resize] Terminated worker for filePath due to incoming request', filePath);
|
|
678
|
+
this.workersArchive.delete(filePath);
|
|
679
|
+
}
|
|
680
|
+
const worker = new Worker(this.workerBlobUrl);
|
|
681
|
+
this.workersArchive.set(filePath, worker);
|
|
682
|
+
return new Promise((resolve, reject) => {
|
|
683
|
+
worker.onmessage = (e) => {
|
|
684
|
+
logger$1('[ImageResizer.resize] main thread onmessage', e.data);
|
|
685
|
+
if (e.data.done) {
|
|
686
|
+
const savedWorker = this.workersArchive.get(filePath);
|
|
687
|
+
savedWorker?.terminate();
|
|
688
|
+
logger$1('[ImageResizer.resize] Terminated worker for filePath due to done', filePath);
|
|
689
|
+
this.workersArchive.delete(filePath);
|
|
690
|
+
resolve(e.data);
|
|
691
|
+
}
|
|
692
|
+
if (e.data.error) {
|
|
693
|
+
reject(e.data.error);
|
|
694
|
+
}
|
|
695
|
+
};
|
|
696
|
+
worker.postMessage({
|
|
697
|
+
filePath,
|
|
698
|
+
width,
|
|
699
|
+
height,
|
|
700
|
+
debug: logger$1.enabled,
|
|
701
|
+
});
|
|
702
|
+
});
|
|
703
|
+
}
|
|
704
|
+
async resizeAll({ width, height }) {
|
|
705
|
+
const fs = await BaseFileManager.getFs();
|
|
706
|
+
const imageDir = BaseFileManager.getFilesPath('images');
|
|
707
|
+
let imageFilesStats = await fs.promises.readdir(imageDir, {
|
|
708
|
+
withFileTypes: true
|
|
709
|
+
});
|
|
710
|
+
imageFilesStats = imageFilesStats.filter((file) => file.isFile());
|
|
711
|
+
const imageFiles = imageFilesStats.map((file) => file.path);
|
|
712
|
+
const widthDir = `${imageDir}/${width}`;
|
|
713
|
+
await BaseFileManager.createDirIfNotExists(widthDir);
|
|
714
|
+
for (const imageFile of imageFiles) {
|
|
715
|
+
const resizedImageExists = await BaseFileManager.pathExists(`${widthDir}/${imageFile}`);
|
|
716
|
+
if (!resizedImageExists) {
|
|
717
|
+
await this.resize({ filePath: `${imageDir}/${imageFile}`, width, height });
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
const logger = debug('seedSdk:browser:helpers:FileManager');
|
|
724
|
+
class FileManager extends BaseFileManager {
|
|
725
|
+
static async getFs() {
|
|
726
|
+
if (!this.zenfsCache) {
|
|
727
|
+
this.zenfsCache = await import('@zenfs/core');
|
|
728
|
+
}
|
|
729
|
+
return this.zenfsCache;
|
|
730
|
+
}
|
|
731
|
+
static getFsSync() {
|
|
732
|
+
if (!this.zenfsCache) {
|
|
733
|
+
throw new Error('File system not initialized. Call getFs() or initializeFileSystem() first.');
|
|
734
|
+
}
|
|
735
|
+
return this.zenfsCache;
|
|
736
|
+
}
|
|
737
|
+
static async getContentUrlFromPath(path) {
|
|
738
|
+
const fileExists = await this.pathExists(path);
|
|
739
|
+
if (fileExists) {
|
|
740
|
+
const file = await this.readFile(path);
|
|
741
|
+
return URL.createObjectURL(file);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
static async initializeFileSystem(workingDir) {
|
|
745
|
+
const zenfs = await this.getFs();
|
|
746
|
+
const zenfsDomMod = await import('@zenfs/dom');
|
|
747
|
+
const { WebAccess } = zenfsDomMod;
|
|
748
|
+
const { configureSingle } = zenfs;
|
|
749
|
+
const handle = await navigator.storage.getDirectory();
|
|
750
|
+
// await configure({
|
|
751
|
+
// mounts: {
|
|
752
|
+
// '/': {
|
|
753
|
+
// backend: WebAccess,
|
|
754
|
+
// handle,
|
|
755
|
+
// },
|
|
756
|
+
// },
|
|
757
|
+
// disableUpdateOnRead: true,
|
|
758
|
+
// onlySyncOnClose: true,
|
|
759
|
+
// })
|
|
760
|
+
await configureSingle({
|
|
761
|
+
backend: WebAccess,
|
|
762
|
+
handle,
|
|
763
|
+
});
|
|
764
|
+
// Cache is already set in getFs(), so no need to set it again
|
|
765
|
+
}
|
|
766
|
+
static async downloadAllFiles({ transactionIds, arweaveHost, excludedTransactions, }) {
|
|
767
|
+
const fileDownloader = new FileDownloader();
|
|
768
|
+
await fileDownloader.downloadAll({ transactionIds, arweaveHost, excludedTransactions });
|
|
769
|
+
}
|
|
770
|
+
static async resizeImage({ filePath, width, height }) {
|
|
771
|
+
const imageResizer = new ImageResizer();
|
|
772
|
+
await imageResizer.resize({ filePath, width, height });
|
|
773
|
+
}
|
|
774
|
+
static async resizeAllImages({ width, height }) {
|
|
775
|
+
const imageResizer = new ImageResizer();
|
|
776
|
+
await imageResizer.resizeAll({ width, height });
|
|
777
|
+
}
|
|
778
|
+
static async listImageFiles() {
|
|
779
|
+
const imageDir = BaseFileManager.getFilesPath('images');
|
|
780
|
+
const exists = await this.pathExists(imageDir);
|
|
781
|
+
if (!exists) {
|
|
782
|
+
return [];
|
|
783
|
+
}
|
|
784
|
+
const zenfs = await this.getFs();
|
|
785
|
+
const entries = await zenfs.promises.readdir(imageDir, { withFileTypes: true });
|
|
786
|
+
return entries.filter((entry) => entry.isFile()).map((entry) => entry.name);
|
|
787
|
+
}
|
|
788
|
+
static async pathExists(filePath) {
|
|
789
|
+
try {
|
|
790
|
+
const zenfs = await this.getFs();
|
|
791
|
+
await zenfs.promises.access(filePath, zenfs.constants.F_OK);
|
|
792
|
+
return true;
|
|
793
|
+
}
|
|
794
|
+
catch (error) {
|
|
795
|
+
// ENOENT means the file doesn't exist, which is expected
|
|
796
|
+
if (error?.code === 'ENOENT' || error?.errno === -2) {
|
|
797
|
+
return false;
|
|
798
|
+
}
|
|
799
|
+
// For other errors, re-throw them
|
|
800
|
+
throw error;
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
static async createDirIfNotExists(filePath) {
|
|
804
|
+
if (!(await this.pathExists(filePath))) {
|
|
805
|
+
try {
|
|
806
|
+
const zenfs = await this.getFs();
|
|
807
|
+
await zenfs.promises.mkdir(filePath, { recursive: true });
|
|
808
|
+
}
|
|
809
|
+
catch (error) {
|
|
810
|
+
// This is a no-op. We tried to create a directory that already exists.
|
|
811
|
+
logger('Attempted to create a directory that already exists');
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* Waits for a file to exist at the specified path.
|
|
817
|
+
* @param {string} filePath - The path of the file to check.
|
|
818
|
+
* @param {number} interval - The interval in milliseconds between checks (default: 500ms).
|
|
819
|
+
* @param {number} timeout - The timeout in milliseconds to wait for the file to exist (default: 10s).
|
|
820
|
+
* @returns {Promise<boolean>} - Resolves to true if the file exists within the timeout period, otherwise false.
|
|
821
|
+
*/
|
|
822
|
+
static async waitForFile(filePath, interval = 1000, timeout = 60000) {
|
|
823
|
+
// const fs = await this.getFs()
|
|
824
|
+
// const fsNode = await import('node:fs')
|
|
825
|
+
const pathExists = await this.pathExists(filePath);
|
|
826
|
+
if (pathExists) {
|
|
827
|
+
return true;
|
|
828
|
+
}
|
|
829
|
+
return new Promise((resolve, reject) => {
|
|
830
|
+
const startTime = Date.now();
|
|
831
|
+
let isBusy = false;
|
|
832
|
+
const cancelableInterval = new CancelableInterval(async (stop) => {
|
|
833
|
+
logger('waitForFile', filePath);
|
|
834
|
+
if (isBusy) {
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
isBusy = true;
|
|
838
|
+
// // TODO: Needs to read from OPFS
|
|
839
|
+
// const exists = await BaseFileManager.pathExists(filePath)
|
|
840
|
+
// if (exists) {
|
|
841
|
+
// stop()
|
|
842
|
+
// resolve(true)
|
|
843
|
+
// }
|
|
844
|
+
const pathExists = await this.pathExists(filePath);
|
|
845
|
+
if (pathExists) {
|
|
846
|
+
stop();
|
|
847
|
+
resolve(true);
|
|
848
|
+
}
|
|
849
|
+
if (Date.now() - startTime >= timeout) {
|
|
850
|
+
stop();
|
|
851
|
+
reject(new Error('Timeout exceeded while waiting for file'));
|
|
852
|
+
}
|
|
853
|
+
isBusy = false;
|
|
854
|
+
}, interval);
|
|
855
|
+
cancelableInterval.start();
|
|
856
|
+
// const _interval = setInterval(async () => {
|
|
857
|
+
// logger('waitForFile', filePath)
|
|
858
|
+
// if (isBusy) {
|
|
859
|
+
// return
|
|
860
|
+
// }
|
|
861
|
+
// isBusy = true
|
|
862
|
+
// // TODO: Needs to read from OPFS
|
|
863
|
+
// if (fs.existsSync(filePath) && fsNode.existsSync(filePath)) {
|
|
864
|
+
// clearInterval(_interval)
|
|
865
|
+
// resolve(true)
|
|
866
|
+
// }
|
|
867
|
+
// const pathExists = await this.pathExists(filePath)
|
|
868
|
+
// if (pathExists) {
|
|
869
|
+
// clearInterval(_interval)
|
|
870
|
+
// resolve(true)
|
|
871
|
+
// }
|
|
872
|
+
// if (Date.now() - startTime >= timeout) {
|
|
873
|
+
// clearInterval(_interval)
|
|
874
|
+
// reject(new Error('Timeout exceeded while waiting for file'))
|
|
875
|
+
// }
|
|
876
|
+
// isBusy = false
|
|
877
|
+
// }, interval)
|
|
878
|
+
// retry(
|
|
879
|
+
// {
|
|
880
|
+
// times: Math.ceil(timeout / interval),
|
|
881
|
+
// interval: interval,
|
|
882
|
+
// },
|
|
883
|
+
// (callback: Function) => {
|
|
884
|
+
// if (fs.existsSync(filePath) && fsNode.existsSync(filePath)) {
|
|
885
|
+
// return callback(null, true) // File exists, finish with success
|
|
886
|
+
// }
|
|
887
|
+
// if (Date.now() - startTime >= timeout) {
|
|
888
|
+
// return callback(new Error('Timeout exceeded while waiting for file'))
|
|
889
|
+
// }
|
|
890
|
+
// callback(new Error('File does not exist yet')) // Retry with this error
|
|
891
|
+
// },
|
|
892
|
+
// (err: Error, result: boolean) => {
|
|
893
|
+
// if (err) {
|
|
894
|
+
// return resolve(false) // Resolve as false if timeout or error occurs
|
|
895
|
+
// }
|
|
896
|
+
// resolve(result) // Resolve as true if file exists
|
|
897
|
+
// },
|
|
898
|
+
// )
|
|
899
|
+
});
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Waits for a file to exist and have content (non-zero size).
|
|
903
|
+
* This is important for browser/OPFS where writes may not be immediately readable.
|
|
904
|
+
* @param {string} filePath - The path of the file to check.
|
|
905
|
+
* @param {number} interval - The interval in milliseconds between checks (default: 100ms).
|
|
906
|
+
* @param {number} timeout - The timeout in milliseconds to wait (default: 5s).
|
|
907
|
+
* @returns {Promise<boolean>} - Resolves to true if the file exists with content within the timeout period.
|
|
908
|
+
*/
|
|
909
|
+
static async waitForFileWithContent(filePath, interval = 100, timeout = 5000) {
|
|
910
|
+
// First wait for file to exist
|
|
911
|
+
await this.waitForFile(filePath, interval, timeout);
|
|
912
|
+
// Now wait for file to have content
|
|
913
|
+
return new Promise((resolve, reject) => {
|
|
914
|
+
const startTime = Date.now();
|
|
915
|
+
let isBusy = false;
|
|
916
|
+
const cancelableInterval = new CancelableInterval(async (stop) => {
|
|
917
|
+
logger('waitForFileWithContent', filePath);
|
|
918
|
+
if (isBusy) {
|
|
919
|
+
return;
|
|
920
|
+
}
|
|
921
|
+
isBusy = true;
|
|
922
|
+
try {
|
|
923
|
+
// Try to read the file to check if it has content
|
|
924
|
+
const file = await this.readFile(filePath);
|
|
925
|
+
if (file.size > 0) {
|
|
926
|
+
stop();
|
|
927
|
+
resolve(true);
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
930
|
+
// File exists but is 0 bytes, continue waiting
|
|
931
|
+
}
|
|
932
|
+
catch (error) {
|
|
933
|
+
// If error is about file being 0 bytes, not readable, or I/O error, continue waiting
|
|
934
|
+
const errorMessage = error?.message || String(error);
|
|
935
|
+
if (errorMessage.includes('0 bytes') ||
|
|
936
|
+
errorMessage.includes('ENOENT') ||
|
|
937
|
+
errorMessage.includes('EIO') ||
|
|
938
|
+
errorMessage.includes('Input/output error')) ;
|
|
939
|
+
else {
|
|
940
|
+
// Other errors should be thrown
|
|
941
|
+
stop();
|
|
942
|
+
reject(error);
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
if (Date.now() - startTime >= timeout) {
|
|
947
|
+
stop();
|
|
948
|
+
reject(new Error(`Timeout exceeded while waiting for file ${filePath} to have content`));
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
isBusy = false;
|
|
952
|
+
}, interval);
|
|
953
|
+
cancelableInterval.start();
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
static async saveFile(filePath, content) {
|
|
957
|
+
const zenfs = await this.getFs();
|
|
958
|
+
// Convert content to a format that zenfs.writeFile accepts
|
|
959
|
+
let writeContent;
|
|
960
|
+
if (typeof content === 'string') {
|
|
961
|
+
writeContent = content;
|
|
962
|
+
}
|
|
963
|
+
else if (content instanceof Blob) {
|
|
964
|
+
const arrayBuffer = await content.arrayBuffer();
|
|
965
|
+
writeContent = new Uint8Array(arrayBuffer);
|
|
966
|
+
}
|
|
967
|
+
else if (content instanceof ArrayBuffer) {
|
|
968
|
+
writeContent = new Uint8Array(content);
|
|
969
|
+
}
|
|
970
|
+
else {
|
|
971
|
+
throw new Error('Unsupported content type');
|
|
972
|
+
}
|
|
973
|
+
await zenfs.writeFile(filePath, writeContent);
|
|
974
|
+
await this.waitForFileWithContent(filePath, 100, 5000);
|
|
975
|
+
// try {
|
|
976
|
+
// // Get a handle to the OPFS root directory
|
|
977
|
+
// const root = await navigator.storage.getDirectory();
|
|
978
|
+
// // Split the file path into directory and file name
|
|
979
|
+
// const pathParts = filePath.split('/');
|
|
980
|
+
// const fileName = pathParts.pop();
|
|
981
|
+
// if (!fileName) throw new Error('Invalid file path');
|
|
982
|
+
// // Traverse directories and create them if they don't exist
|
|
983
|
+
// let currentDir = root;
|
|
984
|
+
// for (const part of pathParts) {
|
|
985
|
+
// if (part !== '') {
|
|
986
|
+
// currentDir = await currentDir.getDirectoryHandle(part, { create: true });
|
|
987
|
+
// }
|
|
988
|
+
// }
|
|
989
|
+
// // Get the file handle and create the file if it doesn't exist
|
|
990
|
+
// const fileHandle = await currentDir.getFileHandle(fileName, { create: true });
|
|
991
|
+
// // Create a writable stream and write the content
|
|
992
|
+
// const writable = await fileHandle.createWritable();
|
|
993
|
+
// if (typeof content === 'string' || content instanceof Uint8Array) {
|
|
994
|
+
// await writable.write(content);
|
|
995
|
+
// } else if (content instanceof Blob) {
|
|
996
|
+
// await writable.write(content);
|
|
997
|
+
// } else if (content instanceof ArrayBuffer) {
|
|
998
|
+
// await writable.write(new Blob([content]));
|
|
999
|
+
// } else {
|
|
1000
|
+
// throw new Error('Unsupported content type');
|
|
1001
|
+
// }
|
|
1002
|
+
// await writable.close();
|
|
1003
|
+
// logger(`File written successfully: ${filePath}`);
|
|
1004
|
+
// } catch (error) {
|
|
1005
|
+
// console.error(`Error writing to OPFS: ${error.message}`);
|
|
1006
|
+
// }
|
|
1007
|
+
}
|
|
1008
|
+
static saveFileSync(filePath, content) {
|
|
1009
|
+
// Note: This is a synchronous wrapper, but zenfs operations may still be async under the hood
|
|
1010
|
+
// For true sync operations in browser, we'd need to use OPFS sync access handles
|
|
1011
|
+
// For now, we'll use zenfs.writeFileSync which should be available
|
|
1012
|
+
const zenfs = this.getFsSync();
|
|
1013
|
+
// Convert content to a format that zenfs.writeFileSync accepts
|
|
1014
|
+
let writeContent;
|
|
1015
|
+
if (typeof content === 'string') {
|
|
1016
|
+
writeContent = content;
|
|
1017
|
+
}
|
|
1018
|
+
else if (content instanceof Blob) {
|
|
1019
|
+
// Blob cannot be converted synchronously - throw error
|
|
1020
|
+
throw new Error('Blob content not supported in saveFileSync. Use saveFile() instead or convert to ArrayBuffer first.');
|
|
1021
|
+
}
|
|
1022
|
+
else if (content instanceof ArrayBuffer) {
|
|
1023
|
+
writeContent = new Uint8Array(content);
|
|
1024
|
+
}
|
|
1025
|
+
else {
|
|
1026
|
+
throw new Error('Unsupported content type');
|
|
1027
|
+
}
|
|
1028
|
+
zenfs.writeFileSync(filePath, writeContent);
|
|
1029
|
+
}
|
|
1030
|
+
static async readFile(filePath) {
|
|
1031
|
+
const zenfs = await this.getFs();
|
|
1032
|
+
const file = await zenfs.promises.readFile(filePath);
|
|
1033
|
+
return new File([new Uint8Array(file)], filePath);
|
|
1034
|
+
// try {
|
|
1035
|
+
// // Get a handle to the OPFS root directory
|
|
1036
|
+
// const root = await navigator.storage.getDirectory();
|
|
1037
|
+
// // Split the file path into directory and file name
|
|
1038
|
+
// const pathParts = filePath.split('/');
|
|
1039
|
+
// const fileName = pathParts.pop();
|
|
1040
|
+
// if (!fileName) throw new Error('Invalid file path');
|
|
1041
|
+
// // Traverse directories to reach the target file
|
|
1042
|
+
// let currentDir = root;
|
|
1043
|
+
// for (const part of pathParts) {
|
|
1044
|
+
// if (part !== '') {
|
|
1045
|
+
// currentDir = await currentDir.getDirectoryHandle(part, { create: false });
|
|
1046
|
+
// }
|
|
1047
|
+
// }
|
|
1048
|
+
// // Get the file handle
|
|
1049
|
+
// const fileHandle = await currentDir.getFileHandle(fileName, { create: false });
|
|
1050
|
+
// // Get the file and read it as an ArrayBuffer
|
|
1051
|
+
// return await fileHandle.getFile();
|
|
1052
|
+
// } catch (error) {
|
|
1053
|
+
// console.error(`Error reading from OPFS: ${error.message}`);
|
|
1054
|
+
// throw error;
|
|
1055
|
+
// }
|
|
1056
|
+
}
|
|
1057
|
+
static readFileSync(filePath) {
|
|
1058
|
+
// Note: This is a synchronous wrapper, but zenfs operations may still be async under the hood
|
|
1059
|
+
// For true sync operations in browser, we'd need to use OPFS sync access handles
|
|
1060
|
+
// For now, we'll use zenfs.readFileSync which should be available
|
|
1061
|
+
const zenfs = this.getFsSync();
|
|
1062
|
+
const file = zenfs.readFileSync(filePath);
|
|
1063
|
+
return new File([new Uint8Array(file)], filePath);
|
|
1064
|
+
}
|
|
1065
|
+
static async readFileAsBuffer(filePath) {
|
|
1066
|
+
try {
|
|
1067
|
+
// Get the file and read it as an ArrayBuffer
|
|
1068
|
+
const file = await this.readFile(filePath);
|
|
1069
|
+
const arrayBuffer = await file.arrayBuffer();
|
|
1070
|
+
// Convert ArrayBuffer to Blob
|
|
1071
|
+
return new Blob([arrayBuffer]);
|
|
1072
|
+
}
|
|
1073
|
+
catch (error) {
|
|
1074
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
1075
|
+
console.error(`Error reading from OPFS: ${errorMessage}`);
|
|
1076
|
+
throw error;
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
static async readFileAsString(filePath) {
|
|
1080
|
+
const blob = await this.readFileAsBuffer(filePath);
|
|
1081
|
+
return blob.text();
|
|
1082
|
+
}
|
|
1083
|
+
static getParentDirPath(filePath) {
|
|
1084
|
+
return path.dirname(filePath);
|
|
1085
|
+
}
|
|
1086
|
+
static getFilenameFromPath(filePath) {
|
|
1087
|
+
return path.basename(filePath);
|
|
1088
|
+
}
|
|
1089
|
+
static getPathModule() {
|
|
1090
|
+
return path;
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
FileManager.zenfsCache = null;
|
|
1094
|
+
class CancelableInterval {
|
|
1095
|
+
constructor(task, interval) {
|
|
1096
|
+
this.task = task;
|
|
1097
|
+
this.interval = interval;
|
|
1098
|
+
this.intervalId = null;
|
|
1099
|
+
this.currentTaskAbortController = null;
|
|
1100
|
+
}
|
|
1101
|
+
start() {
|
|
1102
|
+
this.intervalId = window.setInterval(async () => {
|
|
1103
|
+
if (this.currentTaskAbortController) {
|
|
1104
|
+
// Cancel the previous running task
|
|
1105
|
+
this.currentTaskAbortController.abort();
|
|
1106
|
+
}
|
|
1107
|
+
// Create a new abort controller for the current task
|
|
1108
|
+
this.currentTaskAbortController = new AbortController();
|
|
1109
|
+
const signal = this.currentTaskAbortController.signal;
|
|
1110
|
+
try {
|
|
1111
|
+
await this.taskWithCancellation(signal);
|
|
1112
|
+
}
|
|
1113
|
+
catch (error) {
|
|
1114
|
+
if (error instanceof DOMException && error.name === 'AbortError') {
|
|
1115
|
+
logger('Previous task was canceled.');
|
|
1116
|
+
}
|
|
1117
|
+
else {
|
|
1118
|
+
console.error('Task error:', error);
|
|
1119
|
+
}
|
|
1120
|
+
this.stop();
|
|
1121
|
+
}
|
|
1122
|
+
}, this.interval);
|
|
1123
|
+
}
|
|
1124
|
+
async taskWithCancellation(signal) {
|
|
1125
|
+
await this.task(() => this.stop());
|
|
1126
|
+
if (signal.aborted) {
|
|
1127
|
+
throw new DOMException('Task was aborted', 'AbortError');
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
stop() {
|
|
1131
|
+
if (this.intervalId !== null) {
|
|
1132
|
+
clearInterval(this.intervalId);
|
|
1133
|
+
this.intervalId = null;
|
|
1134
|
+
}
|
|
1135
|
+
if (this.currentTaskAbortController) {
|
|
1136
|
+
this.currentTaskAbortController.abort();
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
export { FileManager };
|
|
1142
|
+
//# sourceMappingURL=FileManager-Wthr5yHO.js.map
|