@seedprotocol/sdk 0.6.10 → 0.7.0
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/{BasePathResolver-B6CKqoKw.js → BasePathResolver-ndE8XTpw.js} +36 -2
- package/dist/BasePathResolver-ndE8XTpw.js.map +1 -0
- package/dist/ClientManager-DLleL_2e.js +4763 -0
- package/dist/ClientManager-DLleL_2e.js.map +1 -0
- package/dist/{ClientManager-ChcmUL47.js → Item-zBFWQDU9.js} +1119 -5893
- package/dist/Item-zBFWQDU9.js.map +1 -0
- package/dist/{ModelProperty-D79uV42p.js → ModelProperty-lth9L37R.js} +289 -101
- package/dist/ModelProperty-lth9L37R.js.map +1 -0
- package/dist/{Schema-a8uO-hIZ.js → Schema-DOhlrQ-N.js} +94 -864
- package/dist/Schema-DOhlrQ-N.js.map +1 -0
- package/dist/{SchemaValidationService-Y49vqast.js → SchemaValidationService-DDKr5piy.js} +26 -18
- package/dist/SchemaValidationService-DDKr5piy.js.map +1 -0
- package/dist/{backfillMetadataPropertyIds-CBsf7LnU.js → backfillMetadataPropertyIds-fG3ujaSh.js} +11 -6
- package/dist/backfillMetadataPropertyIds-fG3ujaSh.js.map +1 -0
- package/dist/cjs/{ModelProperty-D9FGaGuE.js → ModelProperty-BEsIHAjk.js} +260 -81
- package/dist/cjs/ModelProperty-BEsIHAjk.js.map +1 -0
- package/dist/cjs/{Schema-BiJIPLEL.js → Schema-qEp5mH1N.js} +66 -847
- package/dist/cjs/Schema-qEp5mH1N.js.map +1 -0
- package/dist/cjs/{SchemaValidationService-DtYs_CNY.js → SchemaValidationService-CWEnZmOH.js} +18 -11
- package/dist/cjs/SchemaValidationService-CWEnZmOH.js.map +1 -0
- package/dist/cjs/{backfillMetadataPropertyIds-2XaN3b9S.js → backfillMetadataPropertyIds-tw8JGMT0.js} +8 -3
- package/dist/cjs/backfillMetadataPropertyIds-tw8JGMT0.js.map +1 -0
- package/dist/cjs/{eas-CMNppmGE.js → eas-CLiV2Hmn.js} +4 -4
- package/dist/cjs/{eas-CMNppmGE.js.map → eas-CLiV2Hmn.js.map} +1 -1
- package/dist/cjs/{getItem-B6jEINjW.js → getItem-DSRtx_68.js} +2 -2
- package/dist/cjs/{getItem-B6jEINjW.js.map → getItem-DSRtx_68.js.map} +1 -1
- package/dist/cjs/getLatestVersionRow-DVizNNoI.js +59 -0
- package/dist/cjs/getLatestVersionRow-DVizNNoI.js.map +1 -0
- package/dist/cjs/{getPublishPayload-D5DhLGvN.js → getPublishPayload-D5-dYtNq.js} +249 -60
- package/dist/cjs/getPublishPayload-D5-dYtNq.js.map +1 -0
- package/dist/cjs/{getPublishUploads-DMhCCKYF.js → getPublishUploads-B5Lq6q-_.js} +20 -13
- package/dist/cjs/getPublishUploads-B5Lq6q-_.js.map +1 -0
- package/dist/cjs/{getSegmentedItemProperties-CU8rtBAo.js → getSegmentedItemProperties-giHO7R3d.js} +10 -11
- package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js.map +1 -0
- package/dist/cjs/{index-DPp9rdRL.js → index-B3UDbm1C.js} +3 -3
- package/dist/cjs/index-B3UDbm1C.js.map +1 -0
- package/dist/cjs/{index-CSNtEnbF.js → index-C66AfYDG.js} +2510 -1694
- package/dist/cjs/index-C66AfYDG.js.map +1 -0
- package/dist/cjs/{property-DlKiAWt4.js → property-BVJIP7SX.js} +40 -35
- package/dist/cjs/property-BVJIP7SX.js.map +1 -0
- package/dist/cjs/resetAmbiguousLegacyItemData-BaZqUui9.js +116 -0
- package/dist/cjs/resetAmbiguousLegacyItemData-BaZqUui9.js.map +1 -0
- package/dist/cjs/resolveModelForSyncedSeed-CC6dQctx.js +49 -0
- package/dist/cjs/resolveModelForSyncedSeed-CC6dQctx.js.map +1 -0
- package/dist/cjs/syncDbWithEas-Dk96sAG-.js +873 -0
- package/dist/cjs/syncDbWithEas-Dk96sAG-.js.map +1 -0
- package/dist/{configurePlatform-CE0Vew17.js → configurePlatform-BMoPG9vY.js} +4 -4
- package/dist/{configurePlatform-CE0Vew17.js.map → configurePlatform-BMoPG9vY.js.map} +1 -1
- package/dist/db/drizzle/0015_add_model_file_id_to_seeds.sql +11 -0
- package/dist/db/drizzle/0016_add_revoked_at_to_metadata.sql +1 -0
- package/dist/db/drizzle/0017_add_revoked_at_to_versions.sql +1 -0
- package/dist/db/drizzle/0018_add_storage_settings_to_properties.sql +53 -0
- package/dist/db/drizzle/0019_add_derived_from_uid_to_metadata.sql +35 -0
- package/dist/db/drizzle/meta/0011_snapshot.json +1182 -0
- package/dist/db/drizzle/meta/0012_snapshot.json +1244 -0
- package/dist/db/drizzle/meta/0013_snapshot.json +63 -1
- package/dist/db/drizzle/meta/0014_snapshot.json +62 -0
- package/dist/db/drizzle/meta/0015_snapshot.json +1338 -0
- package/dist/db/drizzle/meta/0016_snapshot.json +1345 -0
- package/dist/db/drizzle/meta/0017_snapshot.json +1352 -0
- package/dist/db/drizzle/meta/0018_snapshot.json +1373 -0
- package/dist/db/drizzle/meta/0019_snapshot.json +1380 -0
- package/dist/db/drizzle/meta/_journal.json +35 -0
- package/dist/{db-WbrzEf7c.js → db-BJZN0a0a.js} +546 -106
- package/dist/db-BJZN0a0a.js.map +1 -0
- package/dist/{eas-CfYCu4IX.js → eas-B0hsMLqt.js} +7 -7
- package/dist/eas-B0hsMLqt.js.map +1 -0
- package/dist/errors-CrBxGWah.js +17 -0
- package/dist/errors-CrBxGWah.js.map +1 -0
- package/dist/{getItem-Br-bGNFO.js → getItem-DEh4WfHG.js} +8 -10
- package/dist/{getItem-Br-bGNFO.js.map → getItem-DEh4WfHG.js.map} +1 -1
- package/dist/getLatestVersionRow-Brrl1AnW.js +46 -0
- package/dist/getLatestVersionRow-Brrl1AnW.js.map +1 -0
- package/dist/{getPublishPayload-BIrTVUxb.js → getPublishPayload-H032DHC7.js} +263 -75
- package/dist/getPublishPayload-H032DHC7.js.map +1 -0
- package/dist/{getPublishUploads-C6cDeZdz.js → getPublishUploads-CR66RlGJ.js} +25 -17
- package/dist/{getPublishUploads-C6cDeZdz.js.map → getPublishUploads-CR66RlGJ.js.map} +1 -1
- package/dist/{getSegmentedItemProperties-BmKE71vU.js → getSegmentedItemProperties-C2EJ2G0N.js} +13 -14
- package/dist/getSegmentedItemProperties-C2EJ2G0N.js.map +1 -0
- package/dist/{index-ClSv5pTA.js → index-6bJuv5Tt.js} +12 -11
- package/dist/index-6bJuv5Tt.js.map +1 -0
- package/dist/{index-Djd3667v.js → index-B0LgJblD.js} +2 -2
- package/dist/index-B0LgJblD.js.map +1 -0
- package/dist/{index-HRHkbVQd.js → index-DtfjeuxC.js} +417 -174
- package/dist/index-DtfjeuxC.js.map +1 -0
- package/dist/index.browser-CNrqhvEA.js +4139 -0
- package/dist/index.browser-CNrqhvEA.js.map +1 -0
- package/dist/{index.node-DBtQkEfz.js → index.node-DrHiTuOr.js} +9 -4
- package/dist/index.node-DrHiTuOr.js.map +1 -0
- package/dist/main.cjs +1 -1
- package/dist/main.js +771 -521
- package/dist/main.js.map +1 -1
- package/dist/node.js +19 -15
- package/dist/node.js.map +1 -1
- package/dist/platform.browser.js +18 -3719
- package/dist/platform.browser.js.map +1 -1
- package/dist/platform.node.js +3 -3
- package/dist/{property-CQjuZ4JW.js → property-D2Nnsmm1.js} +53 -48
- package/dist/property-D2Nnsmm1.js.map +1 -0
- package/dist/resetAmbiguousLegacyItemData-BqbHNUYk.js +88 -0
- package/dist/resetAmbiguousLegacyItemData-BqbHNUYk.js.map +1 -0
- package/dist/resolveModelForSyncedSeed-DQK6JfXS.js +46 -0
- package/dist/resolveModelForSyncedSeed-DQK6JfXS.js.map +1 -0
- package/dist/seedSchema/MetadataSchema.ts +9 -0
- package/dist/seedSchema/ModelSchema.ts +5 -0
- package/dist/seedSchema/SeedSchema.ts +3 -0
- package/dist/seedSchema/VersionSchema.ts +5 -0
- package/dist/src/Item/Item.d.ts +10 -0
- package/dist/src/Item/Item.d.ts.map +1 -1
- package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +1 -1
- package/dist/src/Item/service/actors/waitForDb.d.ts.map +1 -1
- package/dist/src/Item/service/itemMachineSingle.d.ts +3 -29
- package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
- package/dist/src/ItemProperty/ItemProperty.d.ts +3 -4
- package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/propertyMachine.d.ts +4 -9
- package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
- package/dist/src/Model/Model.d.ts +37 -0
- package/dist/src/Model/Model.d.ts.map +1 -1
- package/dist/src/Model/errors.d.ts +10 -0
- package/dist/src/Model/errors.d.ts.map +1 -0
- package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
- package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
- package/dist/src/Model/service/modelMachine.d.ts +0 -8
- package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
- package/dist/src/ModelProperty/ModelProperty.d.ts +33 -1
- package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +2 -9
- package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
- package/dist/src/Schema/Schema.d.ts +1 -2
- package/dist/src/Schema/Schema.d.ts.map +1 -1
- package/dist/src/Schema/service/schemaMachine.d.ts +1 -217
- package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -1
- package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +1 -1
- package/dist/src/browser/db/Db.d.ts +3 -0
- package/dist/src/browser/db/Db.d.ts.map +1 -1
- package/dist/src/browser/db/drizzleFiles.d.ts +7 -2
- package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -1
- package/dist/src/browser/db/embeddedMigrations.d.ts +11 -2
- package/dist/src/browser/db/embeddedMigrations.d.ts.map +1 -1
- package/dist/src/browser/db/sqliteBusyRetry.d.ts +14 -0
- package/dist/src/browser/db/sqliteBusyRetry.d.ts.map +1 -0
- package/dist/src/browser/helpers/FileManager.d.ts +1 -0
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/browser/helpers/QueryClient.d.ts +1 -0
- package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -1
- package/dist/src/browser/helpers/opfsErrors.d.ts +2 -0
- package/dist/src/browser/helpers/opfsErrors.d.ts.map +1 -0
- package/dist/src/browser/helpers/tolerantWebAccess.d.ts +47 -0
- package/dist/src/browser/helpers/tolerantWebAccess.d.ts.map +1 -0
- package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -1
- package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -1
- package/dist/src/browser/workers/filesDownload.d.ts.map +1 -1
- package/dist/src/browser/workers/imageResize.d.ts.map +1 -1
- package/dist/src/client/ClientManager.d.ts.map +1 -1
- package/dist/src/client/actors/addModelsToDb.d.ts +14 -0
- package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -1
- package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
- package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
- package/dist/src/client/actors/saveConfig.d.ts +11 -0
- package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
- package/dist/src/client/constants.d.ts +0 -8
- package/dist/src/client/constants.d.ts.map +1 -1
- package/dist/src/db/backfillMetadataPropertyIds.d.ts.map +1 -1
- package/dist/src/db/configs/{dev.schema.config.d.ts → migrations.config.d.ts} +1 -1
- package/dist/src/db/configs/migrations.config.d.ts.map +1 -0
- package/dist/src/db/read/batchLatestPublishedVersionBySeedLocalIds.d.ts +1 -1
- package/dist/src/db/read/batchLatestPublishedVersionBySeedLocalIds.d.ts.map +1 -1
- package/dist/src/db/read/getItemData.d.ts.map +1 -1
- package/dist/src/db/read/getItemProperties.d.ts.map +1 -1
- package/dist/src/db/read/getItems.d.ts +7 -2
- package/dist/src/db/read/getItems.d.ts.map +1 -1
- package/dist/src/db/read/getLatestPublishedVersionRow.d.ts +2 -1
- package/dist/src/db/read/getLatestPublishedVersionRow.d.ts.map +1 -1
- package/dist/src/db/read/getLatestVersionRow.d.ts +13 -0
- package/dist/src/db/read/getLatestVersionRow.d.ts.map +1 -0
- package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
- package/dist/src/db/read/getPropertyData.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPayload.d.ts +9 -11
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPendingDiff.d.ts +2 -1
- package/dist/src/db/read/getPublishPendingDiff.d.ts.map +1 -1
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
- package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -1
- package/dist/src/db/read/getSeedPublishState.d.ts +8 -2
- package/dist/src/db/read/getSeedPublishState.d.ts.map +1 -1
- package/dist/src/db/read/isSeedRevoked.d.ts +7 -0
- package/dist/src/db/read/isSeedRevoked.d.ts.map +1 -0
- package/dist/src/db/read/publishErrors.d.ts +37 -0
- package/dist/src/db/read/publishErrors.d.ts.map +1 -0
- package/dist/src/db/read/resolveModelForSyncedSeed.d.ts +39 -0
- package/dist/src/db/read/resolveModelForSyncedSeed.d.ts.map +1 -0
- package/dist/src/db/read/resolveModelRecord.d.ts +69 -0
- package/dist/src/db/read/resolveModelRecord.d.ts.map +1 -0
- package/dist/src/db/read/resolveRelatedSeedRef.d.ts +34 -0
- package/dist/src/db/read/resolveRelatedSeedRef.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/liveVersion.d.ts +12 -0
- package/dist/src/db/read/subqueries/liveVersion.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/metadataLatest.d.ts +4 -0
- package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -1
- package/dist/src/db/read/subqueries/versionData.d.ts +7 -2
- package/dist/src/db/read/subqueries/versionData.d.ts.map +1 -1
- package/dist/src/db/read/summarizePublishWork.d.ts +10 -2
- package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
- package/dist/src/db/resetAmbiguousLegacyItemData.d.ts +17 -0
- package/dist/src/db/resetAmbiguousLegacyItemData.d.ts.map +1 -0
- package/dist/src/db/sqlParamBatches.d.ts +27 -0
- package/dist/src/db/sqlParamBatches.d.ts.map +1 -0
- package/dist/src/db/write/addExcludedTransactions.d.ts +7 -0
- package/dist/src/db/write/addExcludedTransactions.d.ts.map +1 -0
- package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts +6 -0
- package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts.map +1 -1
- package/dist/src/db/write/createMetadata.d.ts +2 -0
- package/dist/src/db/write/createMetadata.d.ts.map +1 -1
- package/dist/src/db/write/createNewItem.d.ts +3 -1
- package/dist/src/db/write/createNewItem.d.ts.map +1 -1
- package/dist/src/db/write/createSeed.d.ts +2 -1
- package/dist/src/db/write/createSeed.d.ts.map +1 -1
- package/dist/src/db/write/createSeeds.d.ts +1 -1
- package/dist/src/db/write/createSeeds.d.ts.map +1 -1
- package/dist/src/db/write/linkModelToSchema.d.ts +12 -0
- package/dist/src/db/write/linkModelToSchema.d.ts.map +1 -0
- package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
- package/dist/src/db/write/updateMetadata.d.ts.map +1 -1
- package/dist/src/db/write/updateSeedRevokedAt.d.ts +11 -1
- package/dist/src/db/write/updateSeedRevokedAt.d.ts.map +1 -1
- package/dist/src/db/write/updateSeedUid.d.ts.map +1 -1
- package/dist/src/db/write/updateVersionUid.d.ts +2 -1
- package/dist/src/db/write/updateVersionUid.d.ts.map +1 -1
- package/dist/src/events/files/download.d.ts.map +1 -1
- package/dist/src/events/item/easSyncManager.d.ts +2 -0
- package/dist/src/events/item/easSyncManager.d.ts.map +1 -1
- package/dist/src/events/item/index.d.ts.map +1 -1
- package/dist/src/events/item/syncDbWithEas.d.ts +16 -0
- package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +1 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/IFileManager.d.ts +5 -0
- package/dist/src/helpers/FileManager/IFileManager.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/errors.d.ts +10 -0
- package/dist/src/helpers/FileManager/errors.d.ts.map +1 -0
- package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts +21 -3
- package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts.map +1 -1
- package/dist/src/helpers/constants.d.ts +9 -0
- package/dist/src/helpers/constants.d.ts.map +1 -1
- package/dist/src/helpers/crypto.d.ts +5 -0
- package/dist/src/helpers/crypto.d.ts.map +1 -1
- package/dist/src/helpers/db.d.ts +25 -5
- package/dist/src/helpers/db.d.ts.map +1 -1
- package/dist/src/helpers/easPropertyCanonical.d.ts +1 -1
- package/dist/src/helpers/easPropertyCanonical.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityCommon.d.ts +10 -0
- package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityDestroy.d.ts +1 -1
- package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityLiveQuery.d.ts +5 -0
- package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
- package/dist/src/helpers/file/fetchAll/actors.d.ts.map +1 -1
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -1
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +6 -0
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
- package/dist/src/helpers/isPublishedMetadataRow.d.ts +10 -0
- package/dist/src/helpers/isPublishedMetadataRow.d.ts.map +1 -0
- package/dist/src/helpers/ownership.d.ts.map +1 -1
- package/dist/src/helpers/property.d.ts +6 -1
- package/dist/src/helpers/property.d.ts.map +1 -1
- package/dist/src/helpers/schema.d.ts +14 -4
- package/dist/src/helpers/schema.d.ts.map +1 -1
- package/dist/src/helpers/tabCoordinator.d.ts +45 -0
- package/dist/src/helpers/tabCoordinator.d.ts.map +1 -0
- package/dist/src/helpers/tabEvents.d.ts +27 -0
- package/dist/src/helpers/tabEvents.d.ts.map +1 -0
- package/dist/src/helpers/tabLocks.d.ts +28 -0
- package/dist/src/helpers/tabLocks.d.ts.map +1 -0
- package/dist/src/helpers/updateSchema.d.ts.map +1 -1
- package/dist/src/imports/json.d.ts.map +1 -1
- package/dist/src/imports/markdown.d.ts.map +1 -1
- package/dist/src/index.d.ts +11 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/node/db/Db.d.ts.map +1 -1
- package/dist/src/node/helpers/FileManager.d.ts +2 -0
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/query/createLocalQueryDataSource.d.ts +4 -0
- package/dist/src/query/createLocalQueryDataSource.d.ts.map +1 -1
- package/dist/src/seedSchema/MetadataSchema.d.ts +36 -0
- package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/ModelSchema.d.ts +57 -0
- package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/SeedSchema.d.ts +19 -0
- package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/VersionSchema.d.ts +17 -0
- package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
- package/dist/src/services/write/actors/writeToDatabase.d.ts +5 -0
- package/dist/src/services/write/actors/writeToDatabase.d.ts.map +1 -1
- package/dist/src/services/write/writeProcessMachine.d.ts.map +1 -1
- package/dist/src/stores/eas.d.ts +1 -1
- package/dist/src/stores/eas.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/item.d.ts +12 -3
- package/dist/src/types/item.d.ts.map +1 -1
- package/dist/src/types/property.d.ts +3 -2
- package/dist/src/types/property.d.ts.map +1 -1
- package/dist/syncDbWithEas-LRKr_NZF.js +855 -0
- package/dist/syncDbWithEas-LRKr_NZF.js.map +1 -0
- package/dist/{index-280bL-n4.js → tabEvents-DYI2GU7i.js} +231 -68
- package/dist/tabEvents-DYI2GU7i.js.map +1 -0
- package/dist/tolerantWebAccess-CzOBz5M6.js +160 -0
- package/dist/tolerantWebAccess-CzOBz5M6.js.map +1 -0
- package/dist/updateSeedRevokedAt-B58ORbY3.js +32 -0
- package/dist/updateSeedRevokedAt-B58ORbY3.js.map +1 -0
- package/package.json +5 -5
- package/dist/BasePathResolver-B6CKqoKw.js.map +0 -1
- package/dist/ClientManager-ChcmUL47.js.map +0 -1
- package/dist/ModelProperty-D79uV42p.js.map +0 -1
- package/dist/Schema-a8uO-hIZ.js.map +0 -1
- package/dist/SchemaValidationService-Y49vqast.js.map +0 -1
- package/dist/backfillMetadataPropertyIds-CBsf7LnU.js.map +0 -1
- package/dist/cjs/ModelProperty-D9FGaGuE.js.map +0 -1
- package/dist/cjs/Schema-BiJIPLEL.js.map +0 -1
- package/dist/cjs/SchemaValidationService-DtYs_CNY.js.map +0 -1
- package/dist/cjs/backfillMetadataPropertyIds-2XaN3b9S.js.map +0 -1
- package/dist/cjs/getPublishPayload-D5DhLGvN.js.map +0 -1
- package/dist/cjs/getPublishUploads-DMhCCKYF.js.map +0 -1
- package/dist/cjs/getSegmentedItemProperties-CU8rtBAo.js.map +0 -1
- package/dist/cjs/index-CSNtEnbF.js.map +0 -1
- package/dist/cjs/index-DPp9rdRL.js.map +0 -1
- package/dist/cjs/property-DlKiAWt4.js.map +0 -1
- package/dist/cjs/syncDbWithEas-C6n34o_Q.js +0 -606
- package/dist/cjs/syncDbWithEas-C6n34o_Q.js.map +0 -1
- package/dist/db-WbrzEf7c.js.map +0 -1
- package/dist/eas-CfYCu4IX.js.map +0 -1
- package/dist/getPublishPayload-BIrTVUxb.js.map +0 -1
- package/dist/getSegmentedItemProperties-BmKE71vU.js.map +0 -1
- package/dist/index-280bL-n4.js.map +0 -1
- package/dist/index-ClSv5pTA.js.map +0 -1
- package/dist/index-Djd3667v.js.map +0 -1
- package/dist/index-HRHkbVQd.js.map +0 -1
- package/dist/index.node-DBtQkEfz.js.map +0 -1
- package/dist/property-CQjuZ4JW.js.map +0 -1
- package/dist/src/Item/service/actors/fetchDataFromEas.d.ts +0 -4
- package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
- package/dist/src/Item/service/actors/hydrateExistingItem.d.ts +0 -4
- package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
- package/dist/src/Item/service/actors/hydrateNewItem.d.ts +0 -4
- package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
- package/dist/src/Item/service/actors/initialize.d.ts +0 -4
- package/dist/src/Item/service/actors/initialize.d.ts.map +0 -1
- package/dist/src/Item/service/actors/reload.d.ts +0 -5
- package/dist/src/Item/service/actors/reload.d.ts.map +0 -1
- package/dist/src/Item/service/actors/saveDataToDb.d.ts +0 -4
- package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts +0 -5
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
- package/dist/src/Schema/service/addModelsMachine.d.ts +0 -123
- package/dist/src/Schema/service/addModelsMachine.d.ts.map +0 -1
- package/dist/src/db/configs/dev.schema.config.d.ts.map +0 -1
- package/dist/src/helpers/file/download/actors.d.ts +0 -17
- package/dist/src/helpers/file/download/actors.d.ts.map +0 -1
- package/dist/src/helpers/file/download/index.d.ts +0 -70
- package/dist/src/helpers/file/download/index.d.ts.map +0 -1
- package/dist/src/services/publish/actors/createPublishAttempt.d.ts +0 -4
- package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
- package/dist/src/services/publish/actors/preparePublishRequestData.d.ts +0 -4
- package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
- package/dist/src/services/publish/actors/upload.d.ts +0 -4
- package/dist/src/services/publish/actors/upload.d.ts.map +0 -1
- package/dist/src/services/publish/actors/validateItemData.d.ts +0 -4
- package/dist/src/services/publish/actors/validateItemData.d.ts.map +0 -1
- package/dist/src/services/publish/publishMachine.d.ts +0 -32
- package/dist/src/services/publish/publishMachine.d.ts.map +0 -1
- package/dist/syncDbWithEas-CuARXfyN.js +0 -598
- package/dist/syncDbWithEas-CuARXfyN.js.map +0 -1
- package/dist/updateSeedRevokedAt-CBcLfHWs.js +0 -22
- package/dist/updateSeedRevokedAt-CBcLfHWs.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
|
-
import {
|
|
2
|
+
import { B as BaseDb, b as metadata, a as BaseFileManager, c as appState, D as ImageSize, E as EAS_SEED_DATA_SYNCED_TO_DB_EVENT } from './BasePathResolver-ndE8XTpw.js';
|
|
3
3
|
import { isEasAttestationExplorerUrl, BaseArweaveClient, ensureReadGatewaySelected, getArweaveReadBaseUrls } from '@seedprotocol/arweave';
|
|
4
4
|
import { BaseQueryClient, BaseEasClient, GET_FILES_METADATA } from '@seedprotocol/eas';
|
|
5
5
|
import { waitFor } from 'xstate';
|
|
6
6
|
import 'pluralize';
|
|
7
|
-
import {
|
|
7
|
+
import { t as getAllAddressesFromDb, o as eventEmitter } from './db-BJZN0a0a.js';
|
|
8
8
|
import { and, eq, or, isNotNull } from 'drizzle-orm';
|
|
9
9
|
import 'nanoid';
|
|
10
10
|
import 'nanoid-dictionary';
|
|
@@ -97,7 +97,7 @@ const getStorageTransactionIdForSeedUid = async (seedUid) => {
|
|
|
97
97
|
return results[0].storageTransactionId;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
const logger$
|
|
100
|
+
const logger$5 = debug('seedSdk:helpers:mediaRef');
|
|
101
101
|
/** Typical Arweave transaction id: 43 URL-safe base64 characters. */
|
|
102
102
|
const ARWEAVE_TX_ID = /^[a-zA-Z0-9_-]{43}$/;
|
|
103
103
|
function trimOrEmpty(raw) {
|
|
@@ -183,7 +183,7 @@ async function tryLocalBlobUrlFromTxId(txId) {
|
|
|
183
183
|
const imageFilePath = BaseFileManager.getFilesPath('images', txId);
|
|
184
184
|
const fileExists = await BaseFileManager.pathExists(imageFilePath);
|
|
185
185
|
if (!fileExists) {
|
|
186
|
-
logger$
|
|
186
|
+
logger$5(`[tryLocalBlobUrlFromTxId] ${imageFilePath} does not exist`);
|
|
187
187
|
return undefined;
|
|
188
188
|
}
|
|
189
189
|
const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
|
|
@@ -331,58 +331,6 @@ function normalizeFeedItemFields(item, manifest) {
|
|
|
331
331
|
return out;
|
|
332
332
|
}
|
|
333
333
|
|
|
334
|
-
class SeedEventEmitter {
|
|
335
|
-
constructor() {
|
|
336
|
-
this.listeners = new Map();
|
|
337
|
-
}
|
|
338
|
-
on(event, listener) {
|
|
339
|
-
const set = this.listeners.get(event) ?? new Set();
|
|
340
|
-
set.add(listener);
|
|
341
|
-
this.listeners.set(event, set);
|
|
342
|
-
return this;
|
|
343
|
-
}
|
|
344
|
-
addListener(event, listener) {
|
|
345
|
-
return this.on(event, listener);
|
|
346
|
-
}
|
|
347
|
-
once(event, listener) {
|
|
348
|
-
const wrapped = (...args) => {
|
|
349
|
-
this.off(event, wrapped);
|
|
350
|
-
listener(...args);
|
|
351
|
-
};
|
|
352
|
-
return this.on(event, wrapped);
|
|
353
|
-
}
|
|
354
|
-
off(event, listener) {
|
|
355
|
-
const set = this.listeners.get(event);
|
|
356
|
-
if (!set)
|
|
357
|
-
return this;
|
|
358
|
-
set.delete(listener);
|
|
359
|
-
if (set.size === 0)
|
|
360
|
-
this.listeners.delete(event);
|
|
361
|
-
return this;
|
|
362
|
-
}
|
|
363
|
-
removeListener(event, listener) {
|
|
364
|
-
return this.off(event, listener);
|
|
365
|
-
}
|
|
366
|
-
removeAllListeners(event) {
|
|
367
|
-
if (typeof event === 'undefined') {
|
|
368
|
-
this.listeners.clear();
|
|
369
|
-
return this;
|
|
370
|
-
}
|
|
371
|
-
this.listeners.delete(event);
|
|
372
|
-
return this;
|
|
373
|
-
}
|
|
374
|
-
emit(event, ...args) {
|
|
375
|
-
const set = this.listeners.get(event);
|
|
376
|
-
if (!set || set.size === 0)
|
|
377
|
-
return false;
|
|
378
|
-
for (const listener of [...set]) {
|
|
379
|
-
listener(...args);
|
|
380
|
-
}
|
|
381
|
-
return true;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
const eventEmitter = new SeedEventEmitter();
|
|
385
|
-
|
|
386
334
|
const getMetadata = async (props) => {
|
|
387
335
|
const appDb = BaseDb.getAppDb();
|
|
388
336
|
let storageTransactionId;
|
|
@@ -461,7 +409,7 @@ const supportsOpfsFileDownloads = () => {
|
|
|
461
409
|
return isBrowser() || isElectronRenderer();
|
|
462
410
|
};
|
|
463
411
|
|
|
464
|
-
const logger$
|
|
412
|
+
const logger$4 = debug('seedSdk:files:download');
|
|
465
413
|
const AUTO_BULK_DOWNLOAD_THROTTLE_MS = 10000;
|
|
466
414
|
/** Avoid refetch-on-every-call: transient empty indexer responses were overwriting good cache (see trailing throttle ~10s after success). */
|
|
467
415
|
const GET_FILES_METADATA_STALE_MS = 120000;
|
|
@@ -471,14 +419,14 @@ const lazyDownloadInFlightByTransactionId = new Map();
|
|
|
471
419
|
const syncDbFiles = async (endpoints) => {
|
|
472
420
|
// TODO: Implement syncDbFiles functionality if needed
|
|
473
421
|
// This was previously in @/services/internal/helpers
|
|
474
|
-
logger$
|
|
422
|
+
logger$4('[download] syncDbFiles called but not yet implemented');
|
|
475
423
|
return Promise.resolve();
|
|
476
424
|
};
|
|
477
425
|
const getAppDbReady = async () => {
|
|
478
426
|
if (!BaseDb.isAppDbReady()) {
|
|
479
427
|
// Wait for ClientManager to be ready (DB_INIT state or later)
|
|
480
|
-
const _mod_0 = await import('./ClientManager-
|
|
481
|
-
const _ns_0 = _mod_0.
|
|
428
|
+
const _mod_0 = await import('./ClientManager-DLleL_2e.js');
|
|
429
|
+
const _ns_0 = _mod_0.H;
|
|
482
430
|
const clientManagerMod = _ns_0;
|
|
483
431
|
const { getClient } = clientManagerMod;
|
|
484
432
|
const clientManager = getClient();
|
|
@@ -659,7 +607,7 @@ const downloadTransactionIds = async (rawTransactionIds, options) => {
|
|
|
659
607
|
transactionIdsToDownload.push(transactionId);
|
|
660
608
|
}
|
|
661
609
|
catch (error) {
|
|
662
|
-
logger$
|
|
610
|
+
logger$4(error);
|
|
663
611
|
}
|
|
664
612
|
}
|
|
665
613
|
if (transactionIdsToDownload.length === 0) {
|
|
@@ -796,7 +744,7 @@ const downloadTransactionIdWithDedupe = async (transactionId) => {
|
|
|
796
744
|
};
|
|
797
745
|
const scheduleBulkFilesDownloadFromEasSyncThrottled = throttle((addressesHint) => {
|
|
798
746
|
void downloadAllFilesBinaryRequestHandler(addressesHint).catch((error) => {
|
|
799
|
-
logger$
|
|
747
|
+
logger$4('[scheduleBulkFilesDownloadFromEasSync] failed', error);
|
|
800
748
|
});
|
|
801
749
|
}, AUTO_BULK_DOWNLOAD_THROTTLE_MS, { leading: true, trailing: false });
|
|
802
750
|
const scheduleBulkFilesDownloadFromEasSync = (addressesHint) => {
|
|
@@ -814,7 +762,7 @@ var download = /*#__PURE__*/Object.freeze({
|
|
|
814
762
|
scheduleBulkFilesDownloadFromEasSync: scheduleBulkFilesDownloadFromEasSync
|
|
815
763
|
});
|
|
816
764
|
|
|
817
|
-
const logger$
|
|
765
|
+
const logger$3 = debug('seedSdk:helpers:ensureImageLocal');
|
|
818
766
|
/** Arweave transaction ids are 43 chars in the URL-safe base64 alphabet. */
|
|
819
767
|
const ARWEAVE_TX_ID_RE = /^[a-z0-9_-]{43}$/i;
|
|
820
768
|
const IMAGE_SIZES = [
|
|
@@ -983,7 +931,7 @@ const runEnsureImageLocal = async (params) => {
|
|
|
983
931
|
};
|
|
984
932
|
}
|
|
985
933
|
catch (error) {
|
|
986
|
-
logger$
|
|
934
|
+
logger$3('ensureImageLocal failed', error);
|
|
987
935
|
return { status: 'failed' };
|
|
988
936
|
}
|
|
989
937
|
};
|
|
@@ -1023,7 +971,7 @@ const ensureImageLocal = async (params) => {
|
|
|
1023
971
|
return inFlight;
|
|
1024
972
|
};
|
|
1025
973
|
|
|
1026
|
-
const logger = debug('seedSdk:shared:helpers');
|
|
974
|
+
const logger$2 = debug('seedSdk:shared:helpers');
|
|
1027
975
|
const toSnakeCase = (str) => {
|
|
1028
976
|
return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
|
|
1029
977
|
};
|
|
@@ -1080,7 +1028,7 @@ const convertTxIdToImage = async (txId) => {
|
|
|
1080
1028
|
const imageFilePath = BaseFileManager.getFilesPath('images', txId);
|
|
1081
1029
|
const fileExists = await BaseFileManager.pathExists(imageFilePath);
|
|
1082
1030
|
if (!fileExists) {
|
|
1083
|
-
logger(`[ItemView] [updateImage] ${imageFilePath} does not exist`);
|
|
1031
|
+
logger$2(`[ItemView] [updateImage] ${imageFilePath} does not exist`);
|
|
1084
1032
|
return;
|
|
1085
1033
|
}
|
|
1086
1034
|
const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
|
|
@@ -1118,5 +1066,220 @@ const getArweaveUrlForTransaction = (storageTransactionId) => {
|
|
|
1118
1066
|
return BaseArweaveClient.getRawUrl(storageTransactionId);
|
|
1119
1067
|
};
|
|
1120
1068
|
|
|
1121
|
-
|
|
1122
|
-
|
|
1069
|
+
/** Emitted by the client manager after `app_state.addresses` is written (post-`setAddresses`). */
|
|
1070
|
+
const ADDRESSES_PERSISTED_EVENT = 'addresses.persisted';
|
|
1071
|
+
/** Emitted after hard-deleting local on-chain seed copies for publisher addresses. */
|
|
1072
|
+
const LOCAL_COPIES_REMOVED_EVENT = 'localCopies.removed';
|
|
1073
|
+
function parseAddressesPersistedPayload(value) {
|
|
1074
|
+
if (!value || typeof value !== 'object') {
|
|
1075
|
+
return { owned: [], watched: [] };
|
|
1076
|
+
}
|
|
1077
|
+
const v = value;
|
|
1078
|
+
const owned = Array.isArray(v.owned)
|
|
1079
|
+
? v.owned.filter((a) => typeof a === 'string')
|
|
1080
|
+
: [];
|
|
1081
|
+
const watched = Array.isArray(v.watched)
|
|
1082
|
+
? v.watched.filter((a) => typeof a === 'string')
|
|
1083
|
+
: [];
|
|
1084
|
+
return { owned, watched };
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
/**
|
|
1088
|
+
* Cross-tab exclusive sections, using the Web Locks API. All tabs of an origin share one SQLite
|
|
1089
|
+
* database and OPFS tree; the browser releases a tab's locks when it closes or crashes, so a lock
|
|
1090
|
+
* can't go stale. See docs/MULTI_TAB.md.
|
|
1091
|
+
*
|
|
1092
|
+
* Where Web Locks are missing, `fn` runs directly. (Node has them too, scoped to the process.)
|
|
1093
|
+
* Not re-entrant: requesting a name the caller already holds waits forever, so take each lock
|
|
1094
|
+
* only at the outermost call site.
|
|
1095
|
+
*/
|
|
1096
|
+
/** Long enough for a slow init in another tab; short enough that a hung tab doesn't block forever. */
|
|
1097
|
+
const TAB_LOCK_WAIT_TIMEOUT_MS = 60000;
|
|
1098
|
+
function seedDbLockName(scope, filesDir) {
|
|
1099
|
+
return `seed:${scope}:${filesDir}/db/seed.db`;
|
|
1100
|
+
}
|
|
1101
|
+
/** `withTabLock` on the database under `filesDir`; runs `fn` directly when there's no `filesDir` yet. */
|
|
1102
|
+
function withSeedDbLock(scope, filesDir, fn) {
|
|
1103
|
+
return filesDir ? withTabLock(seedDbLockName(scope, filesDir), fn) : fn();
|
|
1104
|
+
}
|
|
1105
|
+
class TabLockTimeoutError extends Error {
|
|
1106
|
+
constructor(lockName, timeoutMs) {
|
|
1107
|
+
super(`Timed out after ${timeoutMs}ms waiting for another tab to release "${lockName}".`);
|
|
1108
|
+
this.lockName = lockName;
|
|
1109
|
+
this.code = 'TAB_LOCK_TIMEOUT';
|
|
1110
|
+
this.name = 'TabLockTimeoutError';
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
async function withTabLock(name, fn, { timeoutMs = TAB_LOCK_WAIT_TIMEOUT_MS } = {}) {
|
|
1114
|
+
const locks = typeof navigator !== 'undefined' ? navigator.locks : undefined;
|
|
1115
|
+
if (!locks)
|
|
1116
|
+
return fn();
|
|
1117
|
+
try {
|
|
1118
|
+
// The timeout bounds the wait only; once granted, fn runs to completion. Infinity waits for as
|
|
1119
|
+
// long as the holder runs (it can't outlive its tab).
|
|
1120
|
+
const signal = Number.isFinite(timeoutMs) ? AbortSignal.timeout(timeoutMs) : undefined;
|
|
1121
|
+
return await locks.request(name, { mode: 'exclusive', signal }, fn);
|
|
1122
|
+
}
|
|
1123
|
+
catch (error) {
|
|
1124
|
+
if (error?.name === 'TimeoutError') {
|
|
1125
|
+
throw new TabLockTimeoutError(name, timeoutMs);
|
|
1126
|
+
}
|
|
1127
|
+
throw error;
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
const logger$1 = debug('seedSdk:helpers:tabCoordinator');
|
|
1132
|
+
let state;
|
|
1133
|
+
let leader = false;
|
|
1134
|
+
let leaderWaiters = [];
|
|
1135
|
+
const messageHandlers = new Set();
|
|
1136
|
+
/** Starts once per page; later calls (re-init) keep the first database. */
|
|
1137
|
+
function startTabCoordination({ filesDir, mode = 'coordinate' }) {
|
|
1138
|
+
if (state)
|
|
1139
|
+
return;
|
|
1140
|
+
const locks = typeof navigator !== 'undefined' ? navigator.locks : undefined;
|
|
1141
|
+
const dbKey = `${filesDir}/db/seed.db`;
|
|
1142
|
+
const coordinating = mode === 'coordinate' && isBrowser() && !!locks && typeof BroadcastChannel !== 'undefined';
|
|
1143
|
+
state = { dbKey, coordinating };
|
|
1144
|
+
if (!coordinating) {
|
|
1145
|
+
becomeLeader();
|
|
1146
|
+
return;
|
|
1147
|
+
}
|
|
1148
|
+
const channel = new BroadcastChannel(`seed:tabs:${dbKey}`);
|
|
1149
|
+
channel.onmessage = (event) => {
|
|
1150
|
+
for (const handler of messageHandlers)
|
|
1151
|
+
handler(event.data);
|
|
1152
|
+
};
|
|
1153
|
+
state.channel = channel;
|
|
1154
|
+
const current = state;
|
|
1155
|
+
void locks.request(`seed:leader:${dbKey}`, () => {
|
|
1156
|
+
// Reset (tests) before the grant: hand the lock straight back.
|
|
1157
|
+
if (state !== current)
|
|
1158
|
+
return undefined;
|
|
1159
|
+
becomeLeader();
|
|
1160
|
+
// Held until the tab closes (or a test resets coordination).
|
|
1161
|
+
return new Promise((release) => {
|
|
1162
|
+
current.releaseLeadership = release;
|
|
1163
|
+
});
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
1166
|
+
function becomeLeader() {
|
|
1167
|
+
if (leader)
|
|
1168
|
+
return;
|
|
1169
|
+
leader = true;
|
|
1170
|
+
logger$1(`this tab leads ${state?.dbKey}`);
|
|
1171
|
+
const waiters = leaderWaiters;
|
|
1172
|
+
leaderWaiters = [];
|
|
1173
|
+
for (const resolve of waiters)
|
|
1174
|
+
resolve();
|
|
1175
|
+
}
|
|
1176
|
+
function isLeaderTab() {
|
|
1177
|
+
return !state || leader;
|
|
1178
|
+
}
|
|
1179
|
+
/** Resolves when this tab leads (at once if it already does). */
|
|
1180
|
+
function whenLeaderTab() {
|
|
1181
|
+
if (isLeaderTab())
|
|
1182
|
+
return Promise.resolve();
|
|
1183
|
+
return new Promise((resolve) => leaderWaiters.push(resolve));
|
|
1184
|
+
}
|
|
1185
|
+
/** Sends to the other tabs of this database; a no-op when not coordinating. */
|
|
1186
|
+
function postTabMessage(message) {
|
|
1187
|
+
state?.channel?.postMessage(message);
|
|
1188
|
+
}
|
|
1189
|
+
function onTabMessage(handler) {
|
|
1190
|
+
messageHandlers.add(handler);
|
|
1191
|
+
return () => messageHandlers.delete(handler);
|
|
1192
|
+
}
|
|
1193
|
+
/** `withTabLock` named for this database (`seed:<scope>:<db>`); runs `fn` directly before init. */
|
|
1194
|
+
function withDbTabLock(scope, fn, options) {
|
|
1195
|
+
return state ? withTabLock(`seed:${scope}:${state.dbKey}`, fn, options) : fn();
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
const logger = debug('seedSdk:helpers:tabEvents');
|
|
1199
|
+
/**
|
|
1200
|
+
* Keeps other tabs current (docs/MULTI_TAB.md). The event bus is per tab, so events that mean "the
|
|
1201
|
+
* shared database or OPFS changed" are also posted to the other tabs, which refresh their caches
|
|
1202
|
+
* and emit the same event locally. Events are posted only where they originate, so a relayed event
|
|
1203
|
+
* is never relayed again.
|
|
1204
|
+
*/
|
|
1205
|
+
/** Emitted with the changed paths when files change outside this tab's file-system cache. */
|
|
1206
|
+
const FILES_CHANGED_EVENT = 'fs.files.changed';
|
|
1207
|
+
/** Emits on this tab's event bus and in every other tab of this database. */
|
|
1208
|
+
function emitAcrossTabs(name, payload) {
|
|
1209
|
+
if (payload === undefined) {
|
|
1210
|
+
eventEmitter.emit(name);
|
|
1211
|
+
}
|
|
1212
|
+
else {
|
|
1213
|
+
eventEmitter.emit(name, payload);
|
|
1214
|
+
}
|
|
1215
|
+
postTabMessage({ type: 'event', name, payload });
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* A file saved through this tab's file system: emits `file-saved` here (as before) and tells other
|
|
1219
|
+
* tabs, whose caches don't see it.
|
|
1220
|
+
*/
|
|
1221
|
+
function notifyFileSaved(filePath) {
|
|
1222
|
+
eventEmitter.emit('file-saved', filePath);
|
|
1223
|
+
postTabMessage({ type: 'files-changed', paths: [filePath] });
|
|
1224
|
+
}
|
|
1225
|
+
/**
|
|
1226
|
+
* Files written straight to OPFS by a worker: refreshes this tab's file-system cache, emits
|
|
1227
|
+
* FILES_CHANGED_EVENT, and tells other tabs to do the same.
|
|
1228
|
+
*/
|
|
1229
|
+
async function notifyFilesWrittenOutsideCache(paths) {
|
|
1230
|
+
if (paths.length === 0)
|
|
1231
|
+
return;
|
|
1232
|
+
await BaseFileManager.invalidateCachedPaths(paths);
|
|
1233
|
+
eventEmitter.emit(FILES_CHANGED_EVENT, paths);
|
|
1234
|
+
postTabMessage({ type: 'files-changed', paths });
|
|
1235
|
+
}
|
|
1236
|
+
/** Refreshes this tab's in-memory state for an event another tab emitted, before re-emitting it. */
|
|
1237
|
+
async function catchUpOn(name, payload) {
|
|
1238
|
+
if (name === EAS_SEED_DATA_SYNCED_TO_DB_EVENT) {
|
|
1239
|
+
const _mod_1 = await import('./Item-zBFWQDU9.js');
|
|
1240
|
+
const _ns_1 = _mod_1.Z;
|
|
1241
|
+
const { Item } = _ns_1;
|
|
1242
|
+
await Item.rehydrateCachedItemsFromDbAfterEasSync();
|
|
1243
|
+
}
|
|
1244
|
+
else if (name === LOCAL_COPIES_REMOVED_EVENT) {
|
|
1245
|
+
const { removedSeedLocalIds = [], removedSeedUids = [] } = (payload ?? {});
|
|
1246
|
+
const _mod_2 = await import('./Item-zBFWQDU9.js');
|
|
1247
|
+
const _ns_2 = _mod_2.Z;
|
|
1248
|
+
const { Item } = _ns_2;
|
|
1249
|
+
Item.dropCachedInstancesForSeedIds([...removedSeedLocalIds, ...removedSeedUids]);
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
const RELAYED_EVENTS = new Set([
|
|
1253
|
+
EAS_SEED_DATA_SYNCED_TO_DB_EVENT,
|
|
1254
|
+
ADDRESSES_PERSISTED_EVENT,
|
|
1255
|
+
LOCAL_COPIES_REMOVED_EVENT,
|
|
1256
|
+
]);
|
|
1257
|
+
let listening = false;
|
|
1258
|
+
/** Applies other tabs' events and file changes in this tab. */
|
|
1259
|
+
function listenForOtherTabsEvents() {
|
|
1260
|
+
if (listening)
|
|
1261
|
+
return;
|
|
1262
|
+
listening = true;
|
|
1263
|
+
onTabMessage((message) => {
|
|
1264
|
+
if (message.type === 'event' && RELAYED_EVENTS.has(message.name)) {
|
|
1265
|
+
void catchUpOn(message.name, message.payload)
|
|
1266
|
+
.catch((error) => logger(`catching up on ${message.name} failed`, error))
|
|
1267
|
+
.then(() => {
|
|
1268
|
+
if (message.payload === undefined) {
|
|
1269
|
+
eventEmitter.emit(message.name);
|
|
1270
|
+
}
|
|
1271
|
+
else {
|
|
1272
|
+
eventEmitter.emit(message.name, message.payload);
|
|
1273
|
+
}
|
|
1274
|
+
});
|
|
1275
|
+
}
|
|
1276
|
+
else if (message.type === 'files-changed') {
|
|
1277
|
+
void BaseFileManager.invalidateCachedPaths(message.paths)
|
|
1278
|
+
.catch((error) => logger('refreshing changed files failed', error))
|
|
1279
|
+
.then(() => eventEmitter.emit(FILES_CHANGED_EVENT, message.paths));
|
|
1280
|
+
}
|
|
1281
|
+
});
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
export { ADDRESSES_PERSISTED_EVENT as A, isBrowser as B, startTabCoordination as C, downloadAllFilesRequestHandler as D, downloadAllFilesBinaryRequestHandler as E, FILES_CHANGED_EVENT as F, getStorageTransactionIdForSeedUid as G, convertTxIdToImage as H, downloadTransactionIdWithDedupe as I, getDataTypeFromString as J, getMimeType as K, LOCAL_COPIES_REMOVED_EVENT as L, notifyFileSaved as M, download as N, TabLockTimeoutError as T, isStorageSeedRef as a, getArweaveUrlForTransaction as b, classifyMediaRef as c, closestImageSize as d, emitAcrossTabs as e, ensureImageLocal as f, getCorrectId as g, getFeedItemStringField as h, isPublishedSeedRef as i, isLeaderTab as j, normalizeArweaveTxIdForEnsure as k, normalizeFeedItemFields as l, resolveMediaRef as m, normalizeRelationPropertyValue as n, withDbTabLock as o, parseAddressesPersistedPayload as p, notifyFilesWrittenOutsideCache as q, resolveSeedIdsFromRefString as r, scheduleBulkFilesDownloadFromEasSync as s, toSnakeCase as t, withSeedDbLock as u, postTabMessage as v, whenLeaderTab as w, onTabMessage as x, listenForOtherTabsEvents as y, isNode as z };
|
|
1285
|
+
//# sourceMappingURL=tabEvents-DYI2GU7i.js.map
|