@seedprotocol/sdk 0.6.9 → 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,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var main_cjs = require('./index-
|
|
3
|
+
var main_cjs = require('./index-C66AfYDG.js');
|
|
4
4
|
var easSdk = require('@ethereum-attestation-service/eas-sdk');
|
|
5
5
|
var casing = require('drizzle-orm/casing');
|
|
6
6
|
var eas = require('@seedprotocol/eas');
|
|
7
|
-
var getSegmentedItemProperties = require('./getSegmentedItemProperties-CU8rtBAo.js');
|
|
8
|
-
var property = require('./property-DlKiAWt4.js');
|
|
9
|
-
var lodashEs = require('lodash-es');
|
|
10
7
|
var drizzleOrm = require('drizzle-orm');
|
|
8
|
+
var getSegmentedItemProperties = require('./getSegmentedItemProperties-giHO7R3d.js');
|
|
9
|
+
var property = require('./property-BVJIP7SX.js');
|
|
10
|
+
var lodashEs = require('lodash-es');
|
|
11
11
|
var debug = require('debug');
|
|
12
12
|
require('@noble/hashes/sha3');
|
|
13
13
|
require('@noble/hashes/utils');
|
|
14
14
|
require('reflect-metadata');
|
|
15
|
+
require('pluralize');
|
|
15
16
|
require('immer');
|
|
16
17
|
require('xstate');
|
|
17
18
|
require('drizzle-orm/sqlite-core');
|
|
18
19
|
require('@seedprotocol/arweave');
|
|
19
|
-
require('pluralize');
|
|
20
20
|
require('@sinclair/typebox');
|
|
21
21
|
require('nanoid');
|
|
22
22
|
require('nanoid-dictionary');
|
|
@@ -35,6 +35,25 @@ require('child_process');
|
|
|
35
35
|
require('@seedprotocol/arweave/node');
|
|
36
36
|
require('@seedprotocol/eas/node');
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* True when the item's seed attestation was revoked (`seeds.revoked_at` set, by unpublish or EAS
|
|
40
|
+
* sync). Such a seed can't take new versions: publishing again creates a new seed attestation
|
|
41
|
+
* (see "Republishing" in docs/ATTESTATION_REVOCATION.md).
|
|
42
|
+
*/
|
|
43
|
+
const isSeedRevoked = async (seedLocalId) => {
|
|
44
|
+
if (!seedLocalId)
|
|
45
|
+
return false;
|
|
46
|
+
const appDb = main_cjs.BaseDb.getAppDb();
|
|
47
|
+
if (!appDb)
|
|
48
|
+
return false;
|
|
49
|
+
const [row] = await appDb
|
|
50
|
+
.select({ revokedAt: main_cjs.seeds.revokedAt })
|
|
51
|
+
.from(main_cjs.seeds)
|
|
52
|
+
.where(drizzleOrm.eq(main_cjs.seeds.localId, seedLocalId))
|
|
53
|
+
.limit(1);
|
|
54
|
+
return main_cjs.isVersionRevoked(row?.revokedAt);
|
|
55
|
+
};
|
|
56
|
+
|
|
38
57
|
/** UTF-8 string to 0x-prefixed bytes32 hex (right-padded with zeros). */
|
|
39
58
|
function encodeBytes32String(value) {
|
|
40
59
|
const bytes = new TextEncoder().encode(value);
|
|
@@ -47,11 +66,155 @@ function encodeBytes32String(value) {
|
|
|
47
66
|
return `0x${hex.padEnd(64, '0')}`;
|
|
48
67
|
}
|
|
49
68
|
|
|
50
|
-
|
|
51
|
-
|
|
69
|
+
/** Error thrown when publish validation fails. Includes all validation errors for user to fix. */
|
|
70
|
+
class PublishValidationFailedError extends Error {
|
|
71
|
+
constructor(message, validationErrors) {
|
|
72
|
+
super(message);
|
|
73
|
+
this.validationErrors = validationErrors;
|
|
74
|
+
this.name = 'PublishValidationFailedError';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Validation error code for a relation, list member or image/file ref to an unpublished seed. */
|
|
78
|
+
const RELATED_ITEM_UNPUBLISHED_CODE = 'related_item_unpublished';
|
|
79
|
+
const describeUnpublishedRelatedItem = (r) => `${r.propertyName} -> ${r.modelName} ${r.seedLocalId} (seed ${r.seedUid})`;
|
|
80
|
+
/**
|
|
81
|
+
* Thrown before anything is uploaded or attested when the item references items whose seed was
|
|
82
|
+
* unpublished: the parent would attest a revoked seed uid. Republish those items (which gives
|
|
83
|
+
* them a new seed uid) or remove the references, then publish again.
|
|
84
|
+
* See docs/ATTESTATION_REVOCATION.md ("Republishing").
|
|
85
|
+
*
|
|
86
|
+
* A PublishValidationFailedError, so validateItemForPublish and the publish package's checking
|
|
87
|
+
* step report it as validation errors (code `related_item_unpublished`, one per reference).
|
|
88
|
+
*/
|
|
89
|
+
class RelatedItemUnpublishedError extends PublishValidationFailedError {
|
|
90
|
+
constructor(unpublishedRelatedItems, otherValidationErrors = []) {
|
|
91
|
+
const lines = unpublishedRelatedItems.map(describeUnpublishedRelatedItem);
|
|
92
|
+
const message = `Cannot publish: it references ${lines.length} unpublished item${lines.length === 1 ? '' : 's'} ` +
|
|
93
|
+
`(their seed attestations were revoked). Republish them or remove the references, then publish again:\n` +
|
|
94
|
+
lines.join('\n');
|
|
95
|
+
super(message, [
|
|
96
|
+
...unpublishedRelatedItems.map((r) => ({
|
|
97
|
+
field: r.propertyName,
|
|
98
|
+
message: `${r.propertyName} references unpublished ${r.modelName} ${r.seedLocalId} (seed ${r.seedUid}). ` +
|
|
99
|
+
`Republish it or remove the reference.`,
|
|
100
|
+
code: RELATED_ITEM_UNPUBLISHED_CODE,
|
|
101
|
+
})),
|
|
102
|
+
...otherValidationErrors,
|
|
103
|
+
]);
|
|
104
|
+
this.name = 'RelatedItemUnpublishedError';
|
|
105
|
+
this.unpublishedRelatedItems = unpublishedRelatedItems;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const selectSeed = {
|
|
110
|
+
seedLocalId: main_cjs.seeds.localId,
|
|
111
|
+
seedUid: main_cjs.seeds.uid,
|
|
112
|
+
revokedAt: main_cjs.seeds.revokedAt,
|
|
113
|
+
type: main_cjs.seeds.type,
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* The local seed row a relation/list/image ref points at, by local id or uid. A uid that is no
|
|
117
|
+
* seed's current uid can be the old uid of a seed that was unpublished and published again (a new
|
|
118
|
+
* seed attestation, same local seed): its old version rows still record it, so it resolves to that
|
|
119
|
+
* seed. Null when nothing local matches (e.g. a published uid with no local copy).
|
|
120
|
+
*/
|
|
121
|
+
const findRelatedSeedRow = async ({ seedLocalId, seedUid, }) => {
|
|
122
|
+
const appDb = main_cjs.BaseDb.getAppDb();
|
|
123
|
+
if (!appDb)
|
|
124
|
+
return null;
|
|
125
|
+
if (seedLocalId) {
|
|
126
|
+
const [row] = await appDb.select(selectSeed).from(main_cjs.seeds).where(drizzleOrm.eq(main_cjs.seeds.localId, seedLocalId)).limit(1);
|
|
127
|
+
if (row?.seedLocalId)
|
|
128
|
+
return row;
|
|
129
|
+
}
|
|
130
|
+
if (!seedUid || seedUid === main_cjs.ZERO_BYTES32)
|
|
131
|
+
return null;
|
|
132
|
+
const [byUid] = await appDb.select(selectSeed).from(main_cjs.seeds).where(drizzleOrm.eq(main_cjs.seeds.uid, seedUid)).limit(1);
|
|
133
|
+
if (byUid?.seedLocalId)
|
|
134
|
+
return byUid;
|
|
135
|
+
const [version] = await appDb
|
|
136
|
+
.select({ seedLocalId: main_cjs.versions.seedLocalId })
|
|
137
|
+
.from(main_cjs.versions)
|
|
138
|
+
.where(drizzleOrm.and(drizzleOrm.eq(main_cjs.versions.seedUid, seedUid), drizzleOrm.isNotNull(main_cjs.versions.seedLocalId)))
|
|
139
|
+
.limit(1);
|
|
140
|
+
if (!version?.seedLocalId)
|
|
141
|
+
return null;
|
|
142
|
+
const [republished] = await appDb
|
|
143
|
+
.select(selectSeed)
|
|
144
|
+
.from(main_cjs.seeds)
|
|
145
|
+
.where(drizzleOrm.eq(main_cjs.seeds.localId, version.seedLocalId))
|
|
146
|
+
.limit(1);
|
|
147
|
+
return republished?.seedLocalId ? republished : null;
|
|
148
|
+
};
|
|
149
|
+
/** The seed is attested and its attestation is live. */
|
|
150
|
+
const isLivePublishedSeed = (row) => !!row?.seedUid && row.seedUid !== main_cjs.ZERO_BYTES32 && !main_cjs.isVersionRevoked(row.revokedAt);
|
|
151
|
+
/** The seed was attested and that attestation was revoked (unpublished). */
|
|
152
|
+
const isUnpublishedSeed = (row) => !!row?.seedUid && row.seedUid !== main_cjs.ZERO_BYTES32 && main_cjs.isVersionRevoked(row.revokedAt);
|
|
153
|
+
/** Model a relation/list/image property points at, from its definition. */
|
|
154
|
+
function relatedModelNameFromDef(propertyDef) {
|
|
155
|
+
const def = propertyDef;
|
|
156
|
+
if (!def)
|
|
157
|
+
return undefined;
|
|
158
|
+
const dataType = main_cjs.normalizeDataType(def.dataType);
|
|
159
|
+
if (dataType === main_cjs.ModelPropertyDataTypes.Image)
|
|
160
|
+
return 'Image';
|
|
161
|
+
if (dataType === main_cjs.ModelPropertyDataTypes.File)
|
|
162
|
+
return 'File';
|
|
163
|
+
if (dataType === main_cjs.ModelPropertyDataTypes.Html)
|
|
164
|
+
return 'Html';
|
|
165
|
+
return def.ref ?? def.refModelName;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Name of the item's Html property whose value is the Html seed `htmlSeedLocalId`: the property
|
|
169
|
+
* that refers to the images embedded in that Html (htmlEmbeddedImageCoPublish rows).
|
|
170
|
+
*/
|
|
171
|
+
function htmlPropertyNameForHtmlSeed(item, htmlSeedLocalId) {
|
|
172
|
+
const want = htmlSeedLocalId.trim();
|
|
173
|
+
for (const p of item.properties ?? []) {
|
|
174
|
+
if (main_cjs.normalizeDataType(p.propertyDef?.dataType) !== main_cjs.ModelPropertyDataTypes.Html)
|
|
175
|
+
continue;
|
|
176
|
+
const snap = p.getService().getSnapshot();
|
|
177
|
+
const value = 'context' in snap ? snap.context.propertyValue : undefined;
|
|
178
|
+
if (typeof value === 'string' && value.trim() === want)
|
|
179
|
+
return p.propertyName;
|
|
180
|
+
}
|
|
181
|
+
return 'html';
|
|
182
|
+
}
|
|
183
|
+
|
|
52
184
|
debug('seedSdk:db:getPublishPayload');
|
|
53
185
|
/** Case-insensitive dataType match (schema JSON may use "text" vs "Text"). */
|
|
54
186
|
const matchesDataType = (actual, expected) => main_cjs.normalizeDataType(actual) === expected;
|
|
187
|
+
/**
|
|
188
|
+
* Checks the seed a relation/list/image ref points at. A revoked (unpublished) seed is recorded in
|
|
189
|
+
* `ctx.unpublishedRelatedItems`; a live published one maps the ref to its current uid. Returns
|
|
190
|
+
* true when the caller must not walk into the related item (it is published, live or revoked).
|
|
191
|
+
*/
|
|
192
|
+
function noteRelatedSeed(ctx, ref, row, propertyName, modelName) {
|
|
193
|
+
if (isUnpublishedSeed(row)) {
|
|
194
|
+
ctx.unpublishedRelatedItems ?? (ctx.unpublishedRelatedItems = []);
|
|
195
|
+
if (!ctx.unpublishedRelatedItems.some((r) => r.propertyName === propertyName && r.seedLocalId === row.seedLocalId)) {
|
|
196
|
+
ctx.unpublishedRelatedItems.push({
|
|
197
|
+
propertyName,
|
|
198
|
+
modelName: modelName ?? row.type ?? 'unknown',
|
|
199
|
+
seedLocalId: row.seedLocalId,
|
|
200
|
+
seedUid: row.seedUid,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
if (isLivePublishedSeed(row)) {
|
|
206
|
+
if (ref !== row.seedUid) {
|
|
207
|
+
ctx.relatedRefUids ?? (ctx.relatedRefUids = new Map());
|
|
208
|
+
ctx.relatedRefUids.set(ref, row.seedUid);
|
|
209
|
+
}
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
/** Current uid for a ref noted by noteRelatedSeed, else the ref itself. */
|
|
215
|
+
function currentRelatedRef(ctx, ref) {
|
|
216
|
+
return ctx.relatedRefUids?.get(ref.trim()) ?? ref;
|
|
217
|
+
}
|
|
55
218
|
function addValidationError(ctx, message, field, code = 'publish_validation') {
|
|
56
219
|
// A property can be validated on more than one path (List of Relation: list + basic); report once.
|
|
57
220
|
if (ctx.errors.some((e) => e.message === message && e.field === (field ?? '')))
|
|
@@ -133,7 +296,7 @@ async function resolveVersionUid(seedLocalId, seedUid) {
|
|
|
133
296
|
if (published?.uid)
|
|
134
297
|
return published.uid;
|
|
135
298
|
try {
|
|
136
|
-
const { getItemVersionsFromEas } = await Promise.resolve().then(function () { return require('./eas-
|
|
299
|
+
const { getItemVersionsFromEas } = await Promise.resolve().then(function () { return require('./eas-CLiV2Hmn.js'); });
|
|
137
300
|
const attestations = await getItemVersionsFromEas({ seedUids: [seedUid] });
|
|
138
301
|
const latest = attestations?.[0];
|
|
139
302
|
if (latest?.id)
|
|
@@ -193,15 +356,17 @@ const ensurePropertyDefs = async (targetItem) => {
|
|
|
193
356
|
(matchesDataType(p.propertyDef?.dataType, main_cjs.ModelPropertyDataTypes.Relation) &&
|
|
194
357
|
p.propertyDef?.required === undefined)));
|
|
195
358
|
let schema;
|
|
359
|
+
// Model names are only unique per schema: resolve definitions from this item's own model.
|
|
360
|
+
const targetScope = await main_cjs.getItemModelScope(targetItem);
|
|
196
361
|
for (const itemProperty of targetItem.properties) {
|
|
197
362
|
if (!itemProperty.propertyDef && targetItem.modelName) {
|
|
198
|
-
schema = await property.getPropertySchema(targetItem.modelName, itemProperty.propertyName);
|
|
363
|
+
schema = await property.getPropertySchema(targetItem.modelName, itemProperty.propertyName, targetScope);
|
|
199
364
|
if (!schema) {
|
|
200
365
|
try {
|
|
201
|
-
const { Model } = await Promise.resolve().then(function () { return require('./index-
|
|
366
|
+
const { Model } = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
|
|
202
367
|
const normalizedModelName = lodashEs.upperFirst(lodashEs.camelCase(targetItem.modelName));
|
|
203
|
-
let model = Model.
|
|
204
|
-
if (!model?.properties?.length) {
|
|
368
|
+
let model = Model.resolve(normalizedModelName, targetScope);
|
|
369
|
+
if (!model?.properties?.length && !targetScope.modelFileId) {
|
|
205
370
|
model = Model.findByModelType(casing.toSnakeCase(targetItem.modelName));
|
|
206
371
|
}
|
|
207
372
|
const modelFound = !!model;
|
|
@@ -222,11 +387,8 @@ const ensurePropertyDefs = async (targetItem) => {
|
|
|
222
387
|
if (db) {
|
|
223
388
|
try {
|
|
224
389
|
const normalizedModelName = lodashEs.upperFirst(lodashEs.camelCase(targetItem.modelName));
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
.from(main_cjs.models)
|
|
228
|
-
.where(drizzleOrm.eq(main_cjs.models.name, normalizedModelName))
|
|
229
|
-
.limit(1);
|
|
390
|
+
const modelRecord = await main_cjs.resolveModelRecord(normalizedModelName, targetScope, db);
|
|
391
|
+
const modelRecords = modelRecord ? [modelRecord] : [];
|
|
230
392
|
if (modelRecords.length > 0 && modelRecords[0].id) {
|
|
231
393
|
const propertyRecords = await db
|
|
232
394
|
.select()
|
|
@@ -357,13 +519,17 @@ const processBasicProperties = async (itemBasicProperties, itemPublishData, ctx,
|
|
|
357
519
|
.map((s) => s.trim())
|
|
358
520
|
.filter(Boolean);
|
|
359
521
|
}
|
|
522
|
+
// A ref to a published related item attests that item's current uid.
|
|
523
|
+
if (typeof value === 'string' && (isRelation || isFileImageHtml || isJsonStorage)) {
|
|
524
|
+
value = currentRelatedRef(ctx, value);
|
|
525
|
+
}
|
|
360
526
|
if (schemaDef.startsWith('bytes32[]') && !Array.isArray(value)) {
|
|
361
527
|
addValidationError(ctx, `Invalid value for property: ${basicProperty.propertyName}. Expected an array of bytes32, got ${value}.`, basicProperty.propertyName);
|
|
362
528
|
continue;
|
|
363
529
|
}
|
|
364
530
|
// Validate against property validation rules (enum, pattern, minLength, maxLength) before encoding
|
|
365
531
|
if (propertyDef?.validation) {
|
|
366
|
-
const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-
|
|
532
|
+
const { SchemaValidationService } = await Promise.resolve().then(function () { return require('./SchemaValidationService-CWEnZmOH.js'); });
|
|
367
533
|
const validationService = new SchemaValidationService();
|
|
368
534
|
const validationResult = validationService.validatePropertyValue(value, main_cjs.normalizeDataType(propertyDef.dataType), propertyDef.validation, propertyDef.refValueType
|
|
369
535
|
? main_cjs.normalizeDataType(propertyDef.refValueType)
|
|
@@ -394,7 +560,7 @@ const processBasicProperties = async (itemBasicProperties, itemPublishData, ctx,
|
|
|
394
560
|
: '';
|
|
395
561
|
if (!idStr)
|
|
396
562
|
continue;
|
|
397
|
-
const trimmed = idStr.trim();
|
|
563
|
+
const trimmed = currentRelatedRef(ctx, idStr.trim());
|
|
398
564
|
if (!trimmed)
|
|
399
565
|
continue;
|
|
400
566
|
rawIds.push(trimmed);
|
|
@@ -503,7 +669,7 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
503
669
|
matchesDataType(relationOrImageProperty.propertyDef?.refValueType, main_cjs.ModelPropertyDataTypes.Html) ||
|
|
504
670
|
matchesDataType(relationOrImageProperty.propertyDef?.refValueType, main_cjs.ModelPropertyDataTypes.Json)));
|
|
505
671
|
if (isStorageSeed && (context.seedLocalId || context.seedUid)) {
|
|
506
|
-
const { getPropertyData: getPropertyDataFromDb } = await Promise.resolve().then(function () { return require('./index-
|
|
672
|
+
const { getPropertyData: getPropertyDataFromDb } = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.getPropertyData; });
|
|
507
673
|
const metaRow = await getPropertyDataFromDb({
|
|
508
674
|
propertyName: relationOrImageProperty.propertyName,
|
|
509
675
|
seedLocalId: context.seedLocalId,
|
|
@@ -525,14 +691,12 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
525
691
|
let isRequired = propertyDef?.required === true;
|
|
526
692
|
// Resolve required from schema/DB when propertyDef lacks it
|
|
527
693
|
if (!isRequired && relationOrImageProperty.modelName) {
|
|
528
|
-
|
|
694
|
+
const propertyScope = await main_cjs.getItemModelScope(relationOrImageProperty);
|
|
695
|
+
let schema = await property.getPropertySchema(relationOrImageProperty.modelName, relationOrImageProperty.propertyName, propertyScope);
|
|
529
696
|
if (!schema && main_cjs.BaseDb.getAppDb()) {
|
|
530
697
|
const normalizedModelName = lodashEs.upperFirst(lodashEs.camelCase(relationOrImageProperty.modelName));
|
|
531
|
-
const
|
|
532
|
-
|
|
533
|
-
.from(main_cjs.models)
|
|
534
|
-
.where(drizzleOrm.eq(main_cjs.models.name, normalizedModelName))
|
|
535
|
-
.limit(1);
|
|
698
|
+
const modelRecord = await main_cjs.resolveModelRecord(normalizedModelName, propertyScope);
|
|
699
|
+
const modelRecords = modelRecord ? [modelRecord] : [];
|
|
536
700
|
if (modelRecords.length > 0 && modelRecords[0].id) {
|
|
537
701
|
const propertyRecords = await main_cjs.BaseDb.getAppDb()
|
|
538
702
|
.select()
|
|
@@ -588,13 +752,15 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
588
752
|
}
|
|
589
753
|
return multiPublishPayload;
|
|
590
754
|
}
|
|
755
|
+
// The local seed, also when the ref is the old uid of a seed published again since.
|
|
756
|
+
const relatedSeed = await findRelatedSeedRow({ seedLocalId, seedUid });
|
|
591
757
|
// Use dynamic import to break circular dependency
|
|
592
|
-
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-
|
|
758
|
+
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-DSRtx_68.js'); });
|
|
593
759
|
const { getItem } = getItemMod;
|
|
594
|
-
const relatedItem = await getItem({
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
}
|
|
760
|
+
const relatedItem = await getItem(relatedSeed ? { seedLocalId: relatedSeed.seedLocalId } : { seedLocalId, seedUid });
|
|
761
|
+
if (noteRelatedSeed(ctx, normalizedRef, relatedSeed, relationOrImageProperty.propertyName, relatedItem?.modelName ?? relatedModelNameFromDef(relationOrImageProperty.propertyDef))) {
|
|
762
|
+
return multiPublishPayload;
|
|
763
|
+
}
|
|
598
764
|
// When related item not found (e.g. different DB, not yet created)
|
|
599
765
|
if (!relatedItem) {
|
|
600
766
|
// An attested uid with no local copy is already published; the parent attests the uid as-is.
|
|
@@ -652,7 +818,12 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
652
818
|
],
|
|
653
819
|
};
|
|
654
820
|
await ensurePropertyDefs(relatedItem);
|
|
655
|
-
const { itemBasicProperties, itemUploadProperties } = await getSegmentedItemProperties.getSegmentedItemProperties(relatedItem);
|
|
821
|
+
const { itemBasicProperties, itemUploadProperties, itemImageProperties: relatedStorageSeedProperties } = await getSegmentedItemProperties.getSegmentedItemProperties(relatedItem);
|
|
822
|
+
// A draft item related to the published one is published with it, including its own
|
|
823
|
+
// Image/File/Html/Json properties and the images embedded in its Html (as for the item itself).
|
|
824
|
+
if (!isStorageSeed) {
|
|
825
|
+
multiPublishPayload = await processRelatedDraftStorageSeeds(relatedItem, relatedStorageSeedProperties, itemBasicProperties, multiPublishPayload, uploadedTransactions, ctx, buildOpts);
|
|
826
|
+
}
|
|
656
827
|
const relatedStorageUpload = resolveStorageTransactionUploadSlot(relatedItem, itemUploadProperties);
|
|
657
828
|
if (relatedStorageUpload) {
|
|
658
829
|
const transactionData = findUploadedTxForSeedLocalId(uploadedTransactions, relatedItem.seedLocalId);
|
|
@@ -672,7 +843,7 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
672
843
|
if (isStorageTransactionPropertyName(p.propertyName) &&
|
|
673
844
|
!p.propertyDef &&
|
|
674
845
|
relatedItem.modelName) {
|
|
675
|
-
const schema = await property.getPropertySchema(relatedItem.modelName, 'storageTransactionId');
|
|
846
|
+
const schema = await property.getPropertySchema(relatedItem.modelName, 'storageTransactionId', await main_cjs.getItemModelScope(relatedItem));
|
|
676
847
|
if (schema) {
|
|
677
848
|
p.getService().send({ type: 'updateContext', propertyRecordSchema: schema });
|
|
678
849
|
}
|
|
@@ -685,6 +856,19 @@ const processRelationOrImageProperty = async (relationOrImageProperty, multiPubl
|
|
|
685
856
|
multiPublishPayload.push(publishPayload);
|
|
686
857
|
return multiPublishPayload;
|
|
687
858
|
};
|
|
859
|
+
/**
|
|
860
|
+
* Storage-seed properties (Image/File/Html/Json) of a draft item related to the published one, and
|
|
861
|
+
* the images embedded in its Html (htmlEmbeddedImageCoPublish rows it owns): payloads for their seeds,
|
|
862
|
+
* and the properties added to `itemBasicProperties` so the related item attests them. Same handling
|
|
863
|
+
* as the published item's own (see getPublishPayload).
|
|
864
|
+
*/
|
|
865
|
+
async function processRelatedDraftStorageSeeds(relatedItem, storageSeedProperties, itemBasicProperties, multiPublishPayload, uploadedTransactions, ctx, buildOpts) {
|
|
866
|
+
for (const storageSeedProperty of storageSeedProperties) {
|
|
867
|
+
multiPublishPayload = await processRelationOrImageProperty(storageSeedProperty, multiPublishPayload, uploadedTransactions, relatedItem.seedLocalId, ctx, buildOpts);
|
|
868
|
+
itemBasicProperties.push(storageSeedProperty);
|
|
869
|
+
}
|
|
870
|
+
return processHtmlEmbeddedCoPublishImagePayloads(relatedItem, multiPublishPayload, uploadedTransactions, relatedItem.seedLocalId, ctx, buildOpts);
|
|
871
|
+
}
|
|
688
872
|
async function resolveHtmlPropertySchemaUidByHtmlSeed(item, htmlSeedLocalId, ctx) {
|
|
689
873
|
const want = htmlSeedLocalId.trim();
|
|
690
874
|
for (const p of item.properties) {
|
|
@@ -716,13 +900,19 @@ async function processHtmlEmbeddedCoPublishImagePayloads(item, multiPublishPaylo
|
|
|
716
900
|
if (rows.length === 0)
|
|
717
901
|
return multiPublishPayload;
|
|
718
902
|
const forceFullSnapshot = buildOpts?.forceFullSnapshot === true;
|
|
719
|
-
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-
|
|
903
|
+
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-DSRtx_68.js'); });
|
|
720
904
|
const { getItem } = getItemMod;
|
|
721
905
|
const doneImages = new Set();
|
|
722
906
|
for (const row of rows) {
|
|
723
907
|
if (doneImages.has(row.imageSeedLocalId))
|
|
724
908
|
continue;
|
|
725
909
|
doneImages.add(row.imageSeedLocalId);
|
|
910
|
+
// An embedded image that is already published is not co-published; one whose seed was revoked
|
|
911
|
+
// (unpublished) blocks the publish like an image property pointing at it would.
|
|
912
|
+
const imageSeed = await findRelatedSeedRow({ seedLocalId: row.imageSeedLocalId });
|
|
913
|
+
if (noteRelatedSeed(ctx, row.imageSeedLocalId, imageSeed, htmlPropertyNameForHtmlSeed(item, row.htmlSeedLocalId), 'Image')) {
|
|
914
|
+
continue;
|
|
915
|
+
}
|
|
726
916
|
const htmlSchemaUid = await resolveHtmlPropertySchemaUidByHtmlSeed(item, row.htmlSeedLocalId, ctx);
|
|
727
917
|
if (!htmlSchemaUid)
|
|
728
918
|
continue;
|
|
@@ -777,7 +967,7 @@ async function processHtmlEmbeddedCoPublishImagePayloads(item, multiPublishPaylo
|
|
|
777
967
|
if (isStorageTransactionPropertyName(p.propertyName) &&
|
|
778
968
|
!p.propertyDef &&
|
|
779
969
|
relatedItem.modelName) {
|
|
780
|
-
const schema = await property.getPropertySchema(relatedItem.modelName, 'storageTransactionId');
|
|
970
|
+
const schema = await property.getPropertySchema(relatedItem.modelName, 'storageTransactionId', await main_cjs.getItemModelScope(relatedItem));
|
|
781
971
|
if (schema) {
|
|
782
972
|
p.getService().send({ type: 'updateContext', propertyRecordSchema: schema });
|
|
783
973
|
}
|
|
@@ -835,13 +1025,14 @@ const processListProperty = async (listProperty, multiPublishPayload, originalSe
|
|
|
835
1025
|
const { localId: seedLocalId, uid: seedUid } = main_cjs.getCorrectId(idStr);
|
|
836
1026
|
if (!seedLocalId && !seedUid)
|
|
837
1027
|
continue;
|
|
1028
|
+
const relatedSeed = await findRelatedSeedRow({ seedLocalId, seedUid });
|
|
838
1029
|
// Use dynamic import to break circular dependency
|
|
839
|
-
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-
|
|
1030
|
+
const getItemMod = await Promise.resolve().then(function () { return require('./getItem-DSRtx_68.js'); });
|
|
840
1031
|
const { getItem } = getItemMod;
|
|
841
|
-
const relatedItem = await getItem({
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
}
|
|
1032
|
+
const relatedItem = await getItem(relatedSeed ? { seedLocalId: relatedSeed.seedLocalId } : { seedLocalId, seedUid });
|
|
1033
|
+
if (noteRelatedSeed(ctx, idStr.trim(), relatedSeed, listProperty.propertyName, relatedItem?.modelName ?? relatedModelNameFromDef(listProperty.propertyDef))) {
|
|
1034
|
+
continue;
|
|
1035
|
+
}
|
|
845
1036
|
if (!relatedItem) {
|
|
846
1037
|
// An attested uid with no local copy is already published; the list attests the uid as-is.
|
|
847
1038
|
if (!main_cjs.isPublishedSeedRef(idStr)) {
|
|
@@ -1031,18 +1222,15 @@ function findUploadedTxForSeedLocalId(uploadedTransactions, seedLocalId) {
|
|
|
1031
1222
|
return (uploadedTransactions.find((u) => u.seedLocalId === t) ??
|
|
1032
1223
|
uploadedTransactions.find((u) => u.seedLocalId != null && u.seedLocalId.trim() === t));
|
|
1033
1224
|
}
|
|
1034
|
-
/** Error thrown when publish validation fails. Includes all validation errors for user to fix. */
|
|
1035
|
-
class PublishValidationFailedError extends Error {
|
|
1036
|
-
constructor(message, validationErrors) {
|
|
1037
|
-
super(message);
|
|
1038
|
-
this.validationErrors = validationErrors;
|
|
1039
|
-
this.name = 'PublishValidationFailedError';
|
|
1040
|
-
}
|
|
1041
|
-
}
|
|
1042
1225
|
const getPublishPayload = async (item, uploadedTransactions, options) => {
|
|
1043
1226
|
const validationCtx = { errors: [] };
|
|
1044
1227
|
const publishMode = options?.publishMode ?? 'patch';
|
|
1045
|
-
|
|
1228
|
+
// A revoked seed can't be published under again: republishing creates a new seed attestation
|
|
1229
|
+
// (new seedUid) and a new version carrying every property (see docs/ATTESTATION_REVOCATION.md).
|
|
1230
|
+
const hasSeedUid = !!item.seedUid && item.seedUid !== main_cjs.ZERO_BYTES32;
|
|
1231
|
+
const republishRevokedSeed = hasSeedUid && (await isSeedRevoked(item.seedLocalId));
|
|
1232
|
+
const rootSeedUid = republishRevokedSeed ? main_cjs.ZERO_BYTES32 : item.seedUid || main_cjs.ZERO_BYTES32;
|
|
1233
|
+
const forceFullSnapshot = publishMode === 'new_version' || republishRevokedSeed;
|
|
1046
1234
|
if (publishMode === 'new_version' && (!item.seedUid || item.seedUid === main_cjs.ZERO_BYTES32)) {
|
|
1047
1235
|
addValidationError(validationCtx, 'Publishing as a new version requires the item to already have a published Seed attestation (seed UID).', 'seedUid', 'publish_new_version_requires_seed');
|
|
1048
1236
|
}
|
|
@@ -1063,15 +1251,15 @@ const getPublishPayload = async (item, uploadedTransactions, options) => {
|
|
|
1063
1251
|
}
|
|
1064
1252
|
}
|
|
1065
1253
|
let versionUid = getVersionUid(item);
|
|
1066
|
-
if (versionUid === main_cjs.ZERO_BYTES32 &&
|
|
1067
|
-
versionUid = await resolveVersionUid(item.seedLocalId,
|
|
1254
|
+
if (versionUid === main_cjs.ZERO_BYTES32 && rootSeedUid !== main_cjs.ZERO_BYTES32) {
|
|
1255
|
+
versionUid = await resolveVersionUid(item.seedLocalId, rootSeedUid);
|
|
1068
1256
|
}
|
|
1069
|
-
if (forceFullSnapshot &&
|
|
1257
|
+
if (forceFullSnapshot && hasSeedUid) {
|
|
1070
1258
|
versionUid = main_cjs.ZERO_BYTES32;
|
|
1071
1259
|
}
|
|
1072
1260
|
let itemPublishData = {
|
|
1073
1261
|
localId: item.seedLocalId,
|
|
1074
|
-
seedUid:
|
|
1262
|
+
seedUid: rootSeedUid,
|
|
1075
1263
|
seedIsRevocable: true,
|
|
1076
1264
|
seedSchemaUid: itemSchemaUid,
|
|
1077
1265
|
versionSchemaUid: main_cjs.VERSION_SCHEMA_UID,
|
|
@@ -1093,11 +1281,8 @@ const getPublishPayload = async (item, uploadedTransactions, options) => {
|
|
|
1093
1281
|
let isRequired = relProp.propertyDef?.required === true;
|
|
1094
1282
|
if (!isRequired && main_cjs.BaseDb.getAppDb() && item.modelName) {
|
|
1095
1283
|
const normalizedModelName = lodashEs.upperFirst(lodashEs.camelCase(item.modelName));
|
|
1096
|
-
const
|
|
1097
|
-
|
|
1098
|
-
.from(main_cjs.models)
|
|
1099
|
-
.where(drizzleOrm.eq(main_cjs.models.name, normalizedModelName))
|
|
1100
|
-
.limit(1);
|
|
1284
|
+
const modelRecord = await main_cjs.resolveModelRecord(normalizedModelName, await main_cjs.getItemModelScope(item));
|
|
1285
|
+
const modelRows = modelRecord ? [modelRecord] : [];
|
|
1101
1286
|
if (modelRows.length > 0) {
|
|
1102
1287
|
const propRows = await main_cjs.BaseDb.getAppDb()
|
|
1103
1288
|
.select({ required: main_cjs.properties.required, refModelId: main_cjs.properties.refModelId })
|
|
@@ -1139,7 +1324,7 @@ const getPublishPayload = async (item, uploadedTransactions, options) => {
|
|
|
1139
1324
|
}
|
|
1140
1325
|
for (const p of itemBasicProperties) {
|
|
1141
1326
|
if (isStorageTransactionPropertyName(p.propertyName) && !p.propertyDef && item.modelName) {
|
|
1142
|
-
const schema = await property.getPropertySchema(item.modelName, 'storageTransactionId');
|
|
1327
|
+
const schema = await property.getPropertySchema(item.modelName, 'storageTransactionId', await main_cjs.getItemModelScope(item));
|
|
1143
1328
|
if (schema) {
|
|
1144
1329
|
p.getService().send({ type: 'updateContext', propertyRecordSchema: schema });
|
|
1145
1330
|
}
|
|
@@ -1165,6 +1350,10 @@ const getPublishPayload = async (item, uploadedTransactions, options) => {
|
|
|
1165
1350
|
'Ensure required fields have values and that publishable properties are present.', 'listOfAttestations', 'publish_new_version_empty_snapshot');
|
|
1166
1351
|
}
|
|
1167
1352
|
}
|
|
1353
|
+
// Stop before anything is uploaded or attested: the payload would attest revoked seed uids.
|
|
1354
|
+
if (validationCtx.unpublishedRelatedItems?.length) {
|
|
1355
|
+
throw new RelatedItemUnpublishedError(validationCtx.unpublishedRelatedItems, validationCtx.errors);
|
|
1356
|
+
}
|
|
1168
1357
|
if (validationCtx.errors.length > 0) {
|
|
1169
1358
|
const combinedMessage = validationCtx.errors.map((e) => e.message).join('\n');
|
|
1170
1359
|
throw new PublishValidationFailedError(`Validation failed (${validationCtx.errors.length} error${validationCtx.errors.length === 1 ? '' : 's'}):\n${combinedMessage}`, validationCtx.errors);
|
|
@@ -1449,4 +1638,4 @@ exports.PublishValidationFailedError = PublishValidationFailedError;
|
|
|
1449
1638
|
exports.getPublishPayload = getPublishPayload;
|
|
1450
1639
|
exports.resolvePublishPayloadValues = resolvePublishPayloadValues;
|
|
1451
1640
|
exports.validateItemForPublish = validateItemForPublish;
|
|
1452
|
-
//# sourceMappingURL=getPublishPayload-
|
|
1641
|
+
//# sourceMappingURL=getPublishPayload-D5-dYtNq.js.map
|