@seedprotocol/sdk 0.7.9-next.1177.ga3e08ed → 0.7.9-next.1306.g4ff6582
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/BaseFileManager-BAlySv8w.js +650 -0
- package/dist/BaseFileManager-BAlySv8w.js.map +1 -0
- package/dist/{Item-0oDoTPhi.js → Item-Bf4kWKpH.js} +5647 -6573
- package/dist/Item-Bf4kWKpH.js.map +1 -0
- package/dist/{ModelProperty-i5flwzQG.js → ModelProperty-BlaEgb_U.js} +345 -709
- package/dist/ModelProperty-BlaEgb_U.js.map +1 -0
- package/dist/Schema-J_1f6p0c.js +1456 -0
- package/dist/Schema-J_1f6p0c.js.map +1 -0
- package/dist/{SchemaValidationService-DnGKel4V.js → SchemaValidationService-CnmKyzR-.js} +6 -9
- package/dist/{SchemaValidationService-DnGKel4V.js.map → SchemaValidationService-CnmKyzR-.js.map} +1 -1
- package/dist/{configurePlatform-CrMafpMW.js → configurePlatform-CiOJ1R3q.js} +3 -12
- package/dist/configurePlatform-CiOJ1R3q.js.map +1 -0
- package/dist/db/drizzle/0025_add_metadata_retract.sql +1 -0
- package/dist/db/drizzle/0026_add_content_hash_to_schemas.sql +1 -0
- package/dist/db/drizzle/0027_link_metadata_property_ids.sql +74 -0
- package/dist/db/drizzle/0028_add_definition_to_properties.sql +17 -0
- package/dist/db/drizzle/0029_dedupe_chain_uids_add_unique_indexes.sql +120 -0
- package/dist/db/drizzle/meta/0025_snapshot.json +1652 -0
- package/dist/db/drizzle/meta/0026_snapshot.json +1659 -0
- package/dist/db/drizzle/meta/0027_snapshot.json +1659 -0
- package/dist/db/drizzle/meta/0028_snapshot.json +1666 -0
- package/dist/db/drizzle/meta/0029_snapshot.json +1691 -0
- package/dist/db/drizzle/meta/_journal.json +36 -1
- package/dist/{detachRowsBeforeDelete-DXFYSHRR.js → detachRowsBeforeDelete-sEaUwlOU.js} +2 -13
- package/dist/{detachRowsBeforeDelete-DXFYSHRR.js.map → detachRowsBeforeDelete-sEaUwlOU.js.map} +1 -1
- package/dist/dist/{index-Dx_GTdyQ.d.ts → BaseFileManager-BAlySv8w.d.ts} +1424 -2696
- package/dist/dist/BaseFileManager-BAlySv8w.d.ts.map +1 -0
- package/dist/dist/{configurePlatform-CrMafpMW.d.ts → configurePlatform-CiOJ1R3q.d.ts} +1 -1
- package/dist/dist/configurePlatform-CiOJ1R3q.d.ts.map +1 -0
- package/dist/dist/{index-PbnKw2es.d.ts → index-D0V-mjCV.d.ts} +56 -1
- package/dist/dist/{index-PbnKw2es.d.ts.map → index-D0V-mjCV.d.ts.map} +1 -1
- package/dist/dist/{index.node-CzMwMr_d.d.ts → index.node-CYPemH-t.d.ts} +225 -5
- package/dist/dist/{index.node-CzMwMr_d.d.ts.map → index.node-CYPemH-t.d.ts.map} +1 -1
- package/dist/dist/platform.node.d.ts +2 -2
- package/dist/eas-wB_fQ8Tc.js +32 -0
- package/dist/eas-wB_fQ8Tc.js.map +1 -0
- package/dist/errors-DLSoqSHG.js +6550 -0
- package/dist/errors-DLSoqSHG.js.map +1 -0
- package/dist/getPublishPayload-BnIwpwz1.js +760 -0
- package/dist/getPublishPayload-BnIwpwz1.js.map +1 -0
- package/dist/getPublishPendingDiff-D6_-A5ns.js +125 -0
- package/dist/getPublishPendingDiff-D6_-A5ns.js.map +1 -0
- package/dist/getPublishUploads-sS6JfPgz.js +783 -0
- package/dist/getPublishUploads-sS6JfPgz.js.map +1 -0
- package/dist/{index-DJmWkVIK.js → index-BVBmz_cc.js} +11 -14
- package/dist/index-BVBmz_cc.js.map +1 -0
- package/dist/index-CYGWPoOx.js +27 -0
- package/dist/index-CYGWPoOx.js.map +1 -0
- package/dist/{index-PbnKw2es.js → index-D0V-mjCV.js} +2 -2
- package/dist/index-D0V-mjCV.js.map +1 -0
- package/dist/index-DmTtj1nk.js +817 -0
- package/dist/index-DmTtj1nk.js.map +1 -0
- package/dist/{index.browser-i9uPJice.js → index.browser-CUmBVYen.js} +436 -379
- package/dist/index.browser-CUmBVYen.js.map +1 -0
- package/dist/{index.node-CzMwMr_d.js → index.node-CYPemH-t.js} +10 -10
- package/dist/index.node-CYPemH-t.js.map +1 -0
- package/dist/main.js +23 -1105
- package/dist/main.js.map +1 -1
- package/dist/modelPropertyRecordSchemas-C7UgA5TH.js +48 -0
- package/dist/modelPropertyRecordSchemas-C7UgA5TH.js.map +1 -0
- package/dist/node.js +14 -18
- package/dist/node.js.map +1 -1
- package/dist/platform.browser.js +8 -13
- package/dist/platform.browser.js.map +1 -1
- package/dist/platform.node.js +6 -16
- package/dist/platform.node.js.map +1 -1
- package/dist/property-BxUYznH0.js +87 -0
- package/dist/property-BxUYznH0.js.map +1 -0
- package/dist/publishGraph-EcB40Uii.js +311 -0
- package/dist/publishGraph-EcB40Uii.js.map +1 -0
- package/dist/readHtmlBodyForStorageSeed-D6KPtWoR.js +110 -0
- package/dist/readHtmlBodyForStorageSeed-D6KPtWoR.js.map +1 -0
- package/dist/seedSchema/MetadataSchema.ts +3 -0
- package/dist/seedSchema/ModelSchema.ts +4 -0
- package/dist/seedSchema/ModelSchemaSchema.ts +5 -2
- package/dist/seedSchema/PendingWriteSchema.ts +4 -1
- package/dist/seedSchema/SchemaSchema.ts +3 -0
- package/dist/seedSchema/SeedSchema.ts +8 -2
- package/dist/seedSchema/VersionSchema.ts +7 -2
- package/dist/seedSchema/attestedUid.ts +10 -0
- package/dist/src/Item/Item.d.ts +32 -30
- package/dist/src/Item/Item.d.ts.map +1 -1
- package/dist/src/Item/loadItem.d.ts +12 -0
- package/dist/src/Item/loadItem.d.ts.map +1 -0
- package/dist/src/Item/service/itemMachineSingle.d.ts +2 -13
- package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
- package/dist/src/ItemProperty/ItemProperty.d.ts +98 -41
- package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
- package/dist/src/ItemProperty/loadProperty.d.ts +11 -0
- package/dist/src/ItemProperty/loadProperty.d.ts.map +1 -0
- package/dist/src/ItemProperty/propertyWrite.d.ts +54 -0
- package/dist/src/ItemProperty/propertyWrite.d.ts.map +1 -0
- package/dist/src/ItemProperty/{service/actors/saveValueToDb/rowContext.d.ts → rowContext.d.ts} +1 -1
- package/dist/src/ItemProperty/rowContext.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts +6 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/actors/modelPropertyRecordSchemas.d.ts +5 -15
- package/dist/src/ItemProperty/service/actors/modelPropertyRecordSchemas.d.ts.map +1 -1
- package/dist/src/ItemProperty/service/propertyMachine.d.ts +3 -46
- package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
- package/dist/src/Model/Model.d.ts +26 -56
- package/dist/src/Model/Model.d.ts.map +1 -1
- package/dist/src/Model/createModelProperties.d.ts +10 -0
- package/dist/src/Model/createModelProperties.d.ts.map +1 -0
- package/dist/src/Model/loadModel.d.ts +13 -0
- package/dist/src/Model/loadModel.d.ts.map +1 -0
- package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
- package/dist/src/Model/service/modelMachine.d.ts +5 -114
- package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
- package/dist/src/ModelProperty/ModelProperty.d.ts +44 -37
- 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/actors/validateProperty.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +6 -77
- package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
- package/dist/src/Schema/Schema.d.ts +36 -37
- package/dist/src/Schema/Schema.d.ts.map +1 -1
- package/dist/src/Schema/loadOrCreateSchema.d.ts +21 -0
- package/dist/src/Schema/loadOrCreateSchema.d.ts.map +1 -0
- package/dist/src/Schema/service/schemaMachine.d.ts +7 -125
- package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -1
- package/dist/src/browser/db/Db.d.ts.map +1 -1
- package/dist/src/browser/db/changeFeed.d.ts +2 -18
- package/dist/src/browser/db/changeFeed.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/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 +90 -57
- package/dist/src/client/ClientManager.d.ts.map +1 -1
- package/dist/src/client/actors/addModelsToDb.d.ts +9 -7
- package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -1
- package/dist/src/client/actors/dbInit.d.ts +3 -3
- package/dist/src/client/actors/dbInit.d.ts.map +1 -1
- package/dist/src/client/actors/fileSystemInit.d.ts +3 -3
- package/dist/src/client/actors/fileSystemInit.d.ts.map +1 -1
- package/dist/src/client/actors/platformClassesInit.d.ts +10 -5
- package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
- package/dist/src/client/actors/processSchemaFiles.d.ts +18 -3
- package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
- package/dist/src/client/actors/saveConfig.d.ts +6 -3
- package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
- package/dist/src/client/clientManagerMachine.d.ts +22 -20
- package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
- package/dist/src/client/constants.d.ts +1 -9
- package/dist/src/client/constants.d.ts.map +1 -1
- package/dist/src/client/readiness.d.ts +26 -0
- package/dist/src/client/readiness.d.ts.map +1 -0
- package/dist/src/db/read/currentPropertyRow.d.ts +61 -0
- package/dist/src/db/read/currentPropertyRow.d.ts.map +1 -0
- package/dist/src/db/read/findSeedRow.d.ts +20 -0
- package/dist/src/db/read/findSeedRow.d.ts.map +1 -0
- package/dist/src/db/read/findSeedRowsByUid.d.ts +4 -1
- package/dist/src/db/read/findSeedRowsByUid.d.ts.map +1 -1
- package/dist/src/db/read/getAttesterForSeed.d.ts +1 -1
- package/dist/src/db/read/getAttesterForSeed.d.ts.map +1 -1
- package/dist/src/db/read/getItemData.d.ts.map +1 -1
- package/dist/src/db/read/getItemProperties.d.ts +5 -0
- package/dist/src/db/read/getItemProperties.d.ts.map +1 -1
- package/dist/src/db/read/getMetadataAttestationUidsForSeedUid.d.ts.map +1 -1
- package/dist/src/db/read/getModelSchemas.d.ts +0 -7
- package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
- package/dist/src/db/read/getModelsData.d.ts.map +1 -1
- package/dist/src/db/read/getPropertyClear.d.ts +49 -0
- package/dist/src/db/read/getPropertyClear.d.ts.map +1 -0
- package/dist/src/db/read/getPublishPayload.d.ts +35 -40
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPendingDiff.d.ts +7 -2
- package/dist/src/db/read/getPublishPendingDiff.d.ts.map +1 -1
- package/dist/src/db/read/getPublishUploads.d.ts +59 -28
- 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.map +1 -1
- package/dist/src/db/read/getSeedPublisher.d.ts.map +1 -1
- package/dist/src/db/read/getVersionsForSeedUid.d.ts.map +1 -1
- package/dist/src/db/read/isSeedRevoked.d.ts.map +1 -1
- package/dist/src/db/read/localModelSchemaLookups.d.ts +8 -0
- package/dist/src/db/read/localModelSchemaLookups.d.ts.map +1 -0
- package/dist/src/db/read/metadataProperty.d.ts +104 -0
- package/dist/src/db/read/metadataProperty.d.ts.map +1 -0
- package/dist/src/db/read/publishGraph.d.ts +148 -0
- package/dist/src/db/read/publishGraph.d.ts.map +1 -0
- package/dist/src/db/read/resolveModelRecord.d.ts +26 -2
- package/dist/src/db/read/resolveModelRecord.d.ts.map +1 -1
- package/dist/src/db/read/resolveRelatedSeedRef.d.ts +1 -7
- package/dist/src/db/read/resolveRelatedSeedRef.d.ts.map +1 -1
- package/dist/src/db/read/subqueries/metadataLatest.d.ts +3 -1
- package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -1
- package/dist/src/db/read/summarizePublishWork.d.ts +18 -5
- package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
- package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts +20 -21
- package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts.map +1 -1
- package/dist/src/db/write/createMetadata.d.ts.map +1 -1
- package/dist/src/db/write/createNewItem.d.ts.map +1 -1
- package/dist/src/db/write/createSeeds.d.ts +5 -1
- package/dist/src/db/write/createSeeds.d.ts.map +1 -1
- package/dist/src/db/write/definitions.d.ts +127 -0
- package/dist/src/db/write/definitions.d.ts.map +1 -0
- package/dist/src/db/write/markPropertyAttestationsRetracted.d.ts +11 -0
- package/dist/src/db/write/markPropertyAttestationsRetracted.d.ts.map +1 -0
- package/dist/src/db/write/mergeChainRows.d.ts +22 -0
- package/dist/src/db/write/mergeChainRows.d.ts.map +1 -0
- package/dist/src/db/write/saveDefinition.d.ts +29 -0
- package/dist/src/db/write/saveDefinition.d.ts.map +1 -0
- package/dist/src/db/write/updateItemPropertyValue.d.ts +2 -0
- package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
- package/dist/src/db/write/updateSeedUid.d.ts +4 -2
- package/dist/src/db/write/updateSeedUid.d.ts.map +1 -1
- package/dist/src/db/write/updateVersionUid.d.ts +12 -4
- package/dist/src/db/write/updateVersionUid.d.ts.map +1 -1
- package/dist/src/db/write/writeModelUids.d.ts +10 -0
- package/dist/src/db/write/writeModelUids.d.ts.map +1 -0
- package/dist/src/eas.d.ts +8 -6
- package/dist/src/eas.d.ts.map +1 -1
- package/dist/src/events/files/download.d.ts.map +1 -1
- package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
- package/dist/src/helpers/arweaveContentTags.d.ts +1 -1
- package/dist/src/helpers/arweaveContentTags.d.ts.map +1 -1
- package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts +27 -12
- package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts.map +1 -1
- package/dist/src/helpers/constants.d.ts +5 -2
- package/dist/src/helpers/constants.d.ts.map +1 -1
- package/dist/src/helpers/dataUrl.d.ts +10 -0
- package/dist/src/helpers/dataUrl.d.ts.map +1 -0
- package/dist/src/helpers/db.d.ts +54 -105
- package/dist/src/helpers/db.d.ts.map +1 -1
- package/dist/src/helpers/ensureImageLocal.d.ts.map +1 -1
- package/dist/src/helpers/entity/contextUpdate.d.ts +20 -0
- package/dist/src/helpers/entity/contextUpdate.d.ts.map +1 -0
- package/dist/src/helpers/entity/draftSaveErrors.d.ts +5 -0
- package/dist/src/helpers/entity/draftSaveErrors.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityCache.d.ts +65 -3
- package/dist/src/helpers/entity/entityCache.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityCommon.d.ts +0 -22
- package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityLifecycle.d.ts +75 -0
- package/dist/src/helpers/entity/entityLifecycle.d.ts.map +1 -0
- package/dist/src/helpers/entity/entityLiveQuery.d.ts +1 -23
- package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +4 -9
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
- package/dist/src/helpers/index.d.ts +2 -24
- package/dist/src/helpers/index.d.ts.map +1 -1
- package/dist/src/helpers/localImageBlobUrl.d.ts +7 -0
- package/dist/src/helpers/localImageBlobUrl.d.ts.map +1 -0
- package/dist/src/helpers/mediaRef.d.ts +3 -70
- package/dist/src/helpers/mediaRef.d.ts.map +1 -1
- package/dist/src/helpers/metadataPropertyNames.d.ts +34 -21
- package/dist/src/helpers/metadataPropertyNames.d.ts.map +1 -1
- package/dist/src/helpers/mimeTypes.d.ts +2 -1
- package/dist/src/helpers/mimeTypes.d.ts.map +1 -1
- package/dist/src/helpers/model.d.ts.map +1 -1
- package/dist/src/helpers/ownership.d.ts.map +1 -1
- package/dist/src/helpers/property.d.ts +21 -26
- package/dist/src/helpers/property.d.ts.map +1 -1
- package/dist/src/helpers/propertyDefinition.d.ts +59 -0
- package/dist/src/helpers/propertyDefinition.d.ts.map +1 -0
- package/dist/src/helpers/readHtmlBodyForStorageSeed.d.ts.map +1 -1
- package/dist/src/helpers/relationSeedRef.d.ts +0 -7
- package/dist/src/helpers/relationSeedRef.d.ts.map +1 -1
- package/dist/src/helpers/schema.d.ts +24 -38
- package/dist/src/helpers/schema.d.ts.map +1 -1
- package/dist/src/helpers/schemaApply.d.ts +135 -0
- package/dist/src/helpers/schemaApply.d.ts.map +1 -0
- package/dist/src/helpers/tabEvents.d.ts.map +1 -1
- package/dist/src/helpers/updateSchema.d.ts +2 -18
- package/dist/src/helpers/updateSchema.d.ts.map +1 -1
- package/dist/src/imports/index.d.ts +1 -1
- package/dist/src/imports/index.d.ts.map +1 -1
- package/dist/src/imports/json.d.ts +8 -78
- package/dist/src/imports/json.d.ts.map +1 -1
- package/dist/src/index.d.ts +16 -14
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interfaces/IItem.d.ts +5 -0
- package/dist/src/interfaces/IItem.d.ts.map +1 -1
- package/dist/src/interfaces/IItemProperty.d.ts +13 -7
- package/dist/src/interfaces/IItemProperty.d.ts.map +1 -1
- package/dist/src/node/db/Db.d.ts.map +1 -1
- package/dist/src/node/index.d.ts +3 -2
- package/dist/src/node/index.d.ts.map +1 -1
- package/dist/src/outbox/conflicts.d.ts +2 -0
- package/dist/src/outbox/conflicts.d.ts.map +1 -1
- package/dist/src/outbox/itemAppliers.d.ts +70 -14
- package/dist/src/outbox/itemAppliers.d.ts.map +1 -1
- package/dist/src/outbox/outbox.d.ts +14 -3
- package/dist/src/outbox/outbox.d.ts.map +1 -1
- package/dist/src/outbox/pendingValues.d.ts +3 -1
- package/dist/src/outbox/pendingValues.d.ts.map +1 -1
- package/dist/src/outbox/storageValueRow.d.ts +7 -0
- package/dist/src/outbox/storageValueRow.d.ts.map +1 -0
- package/dist/src/platform/configurePlatform.d.ts.map +1 -1
- package/dist/src/platform/index.browser.d.ts.map +1 -1
- package/dist/src/platform/index.node.d.ts.map +1 -1
- package/dist/src/seedSchema/MetadataSchema.d.ts +17 -0
- package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/ModelSchema.d.ts +19 -0
- package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/ModelSchemaSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/PendingWriteSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/SchemaSchema.d.ts +19 -0
- package/dist/src/seedSchema/SchemaSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
- package/dist/src/seedSchema/attestedUid.d.ts +9 -0
- package/dist/src/seedSchema/attestedUid.d.ts.map +1 -0
- package/dist/src/storageValue/content.d.ts +45 -0
- package/dist/src/storageValue/content.d.ts.map +1 -0
- package/dist/src/storageValue/findFile.d.ts +7 -0
- package/dist/src/storageValue/findFile.d.ts.map +1 -0
- package/dist/src/storageValue/resolve.d.ts +71 -0
- package/dist/src/storageValue/resolve.d.ts.map +1 -0
- package/dist/src/storageValue/save.d.ts +24 -0
- package/dist/src/storageValue/save.d.ts.map +1 -0
- package/dist/src/storageValue/stage.d.ts +22 -0
- package/dist/src/storageValue/stage.d.ts.map +1 -0
- package/dist/src/types/db.d.ts +0 -14
- package/dist/src/types/db.d.ts.map +1 -1
- package/dist/src/types/index.d.ts +3 -3
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/machines.d.ts +1 -1
- package/dist/src/types/machines.d.ts.map +1 -1
- package/dist/src/types/property.d.ts +9 -16
- package/dist/src/types/property.d.ts.map +1 -1
- package/dist/src/types/publish.d.ts +1 -1
- package/dist/src/types/publish.d.ts.map +1 -1
- package/dist/{syncDbWithEas-DUu_wjUG.js → syncDbWithEas-CA7PvBgu.js} +142 -168
- package/dist/syncDbWithEas-CA7PvBgu.js.map +1 -0
- package/dist/tabEvents-CaVmngqr.js +3804 -0
- package/dist/tabEvents-CaVmngqr.js.map +1 -0
- package/dist/{tolerantWebAccess-DecKDGen.js → tolerantWebAccess-BJqViq08.js} +10 -15
- package/dist/{tolerantWebAccess-DecKDGen.js.map → tolerantWebAccess-BJqViq08.js.map} +1 -1
- package/dist/{resolveModelForSyncedSeed-4gO9Hfn2.js → updateSeedRevokedAt-BL9Bg-G7.js} +30 -4
- package/dist/updateSeedRevokedAt-BL9Bg-G7.js.map +1 -0
- package/package.json +6 -6
- package/dist/ClientManager-GZfXErDX.js +0 -5279
- package/dist/ClientManager-GZfXErDX.js.map +0 -1
- package/dist/Item-0oDoTPhi.js.map +0 -1
- package/dist/ModelProperty-i5flwzQG.js.map +0 -1
- package/dist/Schema-PFZwG9Nl.js +0 -4370
- package/dist/Schema-PFZwG9Nl.js.map +0 -1
- package/dist/backfillMetadataPropertyIds-BbxgavEQ.js +0 -72
- package/dist/backfillMetadataPropertyIds-BbxgavEQ.js.map +0 -1
- package/dist/changeFeed-DKdVlUmt.js +0 -726
- package/dist/changeFeed-DKdVlUmt.js.map +0 -1
- package/dist/configurePlatform-CrMafpMW.js.map +0 -1
- package/dist/dist/ClientManager-GZfXErDX.d.ts +0 -952
- package/dist/dist/ClientManager-GZfXErDX.d.ts.map +0 -1
- package/dist/dist/Item-0oDoTPhi.d.ts +0 -1076
- package/dist/dist/Item-0oDoTPhi.d.ts.map +0 -1
- package/dist/dist/ModelProperty-i5flwzQG.d.ts +0 -315
- package/dist/dist/ModelProperty-i5flwzQG.d.ts.map +0 -1
- package/dist/dist/Schema-PFZwG9Nl.d.ts +0 -432
- package/dist/dist/Schema-PFZwG9Nl.d.ts.map +0 -1
- package/dist/dist/SchemaValidationService-DnGKel4V.d.ts +0 -118
- package/dist/dist/SchemaValidationService-DnGKel4V.d.ts.map +0 -1
- package/dist/dist/backfillMetadataPropertyIds-BbxgavEQ.d.ts +0 -7
- package/dist/dist/backfillMetadataPropertyIds-BbxgavEQ.d.ts.map +0 -1
- package/dist/dist/changeFeed-DKdVlUmt.d.ts +0 -160
- package/dist/dist/changeFeed-DKdVlUmt.d.ts.map +0 -1
- package/dist/dist/configurePlatform-CrMafpMW.d.ts.map +0 -1
- package/dist/dist/detachRowsBeforeDelete-DXFYSHRR.d.ts +0 -13
- package/dist/dist/detachRowsBeforeDelete-DXFYSHRR.d.ts.map +0 -1
- package/dist/dist/eas-dyepi5jz.d.ts +0 -12
- package/dist/dist/eas-dyepi5jz.d.ts.map +0 -1
- package/dist/dist/errors-C1qUEZ7A.d.ts +0 -25
- package/dist/dist/errors-C1qUEZ7A.d.ts.map +0 -1
- package/dist/dist/errors-D1zHAqjr.d.ts +0 -515
- package/dist/dist/errors-D1zHAqjr.d.ts.map +0 -1
- package/dist/dist/eventBus-7vxTCc3a.d.ts +0 -18
- package/dist/dist/eventBus-7vxTCc3a.d.ts.map +0 -1
- package/dist/dist/findSeedRowsByUid-CT3sOXXw.d.ts +0 -13
- package/dist/dist/findSeedRowsByUid-CT3sOXXw.d.ts.map +0 -1
- package/dist/dist/getItem-Bhjecbia.d.ts +0 -6
- package/dist/dist/getItem-Bhjecbia.d.ts.map +0 -1
- package/dist/dist/getPublishPayload-DH4rMqXG.d.ts +0 -47
- package/dist/dist/getPublishPayload-DH4rMqXG.d.ts.map +0 -1
- package/dist/dist/getPublishUploads-BzUIDA2G.d.ts +0 -89
- package/dist/dist/getPublishUploads-BzUIDA2G.d.ts.map +0 -1
- package/dist/dist/index-CkYb3wcU.d.ts +0 -14
- package/dist/dist/index-CkYb3wcU.d.ts.map +0 -1
- package/dist/dist/index-DJmWkVIK.d.ts +0 -6
- package/dist/dist/index-DJmWkVIK.d.ts.map +0 -1
- package/dist/dist/index-Dx_GTdyQ.d.ts.map +0 -1
- package/dist/dist/index.browser-i9uPJice.d.ts +0 -9908
- package/dist/dist/index.browser-i9uPJice.d.ts.map +0 -1
- package/dist/dist/mimeTypes-C9r76DCH.d.ts +0 -30
- package/dist/dist/mimeTypes-C9r76DCH.d.ts.map +0 -1
- package/dist/dist/model-oHA3YhOd.d.ts +0 -6
- package/dist/dist/model-oHA3YhOd.d.ts.map +0 -1
- package/dist/dist/modelPropertyRecordSchemas-C5lW9aA-.d.ts +0 -7
- package/dist/dist/modelPropertyRecordSchemas-C5lW9aA-.d.ts.map +0 -1
- package/dist/dist/platform.browser.d.ts +0 -3
- package/dist/dist/platform.browser.d.ts.map +0 -1
- package/dist/dist/property-BwYtg5Q_.d.ts +0 -37
- package/dist/dist/property-BwYtg5Q_.d.ts.map +0 -1
- package/dist/dist/propertyValidationRules-CyHdpcPP.d.ts +0 -13
- package/dist/dist/propertyValidationRules-CyHdpcPP.d.ts.map +0 -1
- package/dist/dist/publishDraftGraph-C5F6b7GK.d.ts +0 -93
- package/dist/dist/publishDraftGraph-C5F6b7GK.d.ts.map +0 -1
- package/dist/dist/resolveModelForSyncedSeed-4gO9Hfn2.d.ts +0 -21
- package/dist/dist/resolveModelForSyncedSeed-4gO9Hfn2.d.ts.map +0 -1
- package/dist/dist/syncDbWithEas-DUu_wjUG.d.ts +0 -13
- package/dist/dist/syncDbWithEas-DUu_wjUG.d.ts.map +0 -1
- package/dist/dist/tolerantWebAccess-DecKDGen.d.ts +0 -113
- package/dist/dist/tolerantWebAccess-DecKDGen.d.ts.map +0 -1
- package/dist/dist/updateSeedRevokedAt-CP606vKs.d.ts +0 -11
- package/dist/dist/updateSeedRevokedAt-CP606vKs.d.ts.map +0 -1
- package/dist/eas-dyepi5jz.js +0 -67
- package/dist/eas-dyepi5jz.js.map +0 -1
- package/dist/errors-D1zHAqjr.js +0 -4006
- package/dist/errors-D1zHAqjr.js.map +0 -1
- package/dist/eventBus-7vxTCc3a.js +0 -64
- package/dist/eventBus-7vxTCc3a.js.map +0 -1
- package/dist/findSeedRowsByUid-CT3sOXXw.js +0 -47
- package/dist/findSeedRowsByUid-CT3sOXXw.js.map +0 -1
- package/dist/getItem-Bhjecbia.js +0 -45
- package/dist/getItem-Bhjecbia.js.map +0 -1
- package/dist/getPublishPayload-DH4rMqXG.js +0 -1634
- package/dist/getPublishPayload-DH4rMqXG.js.map +0 -1
- package/dist/getPublishUploads-BzUIDA2G.js +0 -1080
- package/dist/getPublishUploads-BzUIDA2G.js.map +0 -1
- package/dist/index-CkYb3wcU.js +0 -29
- package/dist/index-CkYb3wcU.js.map +0 -1
- package/dist/index-DJmWkVIK.js.map +0 -1
- package/dist/index-Dx_GTdyQ.js +0 -4745
- package/dist/index-Dx_GTdyQ.js.map +0 -1
- package/dist/index-PbnKw2es.js.map +0 -1
- package/dist/index.browser-i9uPJice.js.map +0 -1
- package/dist/index.node-CzMwMr_d.js.map +0 -1
- package/dist/mimeTypes-C9r76DCH.js +0 -209
- package/dist/mimeTypes-C9r76DCH.js.map +0 -1
- package/dist/model-oHA3YhOd.js +0 -29
- package/dist/model-oHA3YhOd.js.map +0 -1
- package/dist/modelPropertyRecordSchemas-C5lW9aA-.js +0 -94
- package/dist/modelPropertyRecordSchemas-C5lW9aA-.js.map +0 -1
- package/dist/property-BwYtg5Q_.js +0 -289
- package/dist/property-BwYtg5Q_.js.map +0 -1
- package/dist/propertyValidationRules-CyHdpcPP.js +0 -73
- package/dist/propertyValidationRules-CyHdpcPP.js.map +0 -1
- package/dist/publishDraftGraph-C5F6b7GK.js +0 -505
- package/dist/publishDraftGraph-C5F6b7GK.js.map +0 -1
- package/dist/resolveModelForSyncedSeed-4gO9Hfn2.js.map +0 -1
- package/dist/src/Item/service/actors/loadOrCreateItem.d.ts +0 -5
- package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +0 -1
- package/dist/src/Item/service/actors/waitForDb.d.ts +0 -4
- package/dist/src/Item/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts +0 -5
- package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts +0 -5
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts +0 -6
- package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/rowContext.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts +0 -24
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts +0 -5
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts +0 -5
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -10
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts +0 -22
- package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts.map +0 -1
- package/dist/src/ItemProperty/service/actors/waitForDb.d.ts +0 -4
- package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/src/Model/service/actors/createModelProperties.d.ts +0 -9
- package/dist/src/Model/service/actors/createModelProperties.d.ts.map +0 -1
- package/dist/src/Model/service/actors/loadOrCreateModel.d.ts +0 -5
- package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/checkExistingSchema.d.ts +0 -5
- package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/createModelInstances.d.ts +0 -11
- package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/createPropertyInstances.d.ts +0 -12
- package/dist/src/Schema/service/actors/createPropertyInstances.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/validateSchema.d.ts +0 -5
- package/dist/src/Schema/service/actors/validateSchema.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts +0 -6
- package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts +0 -7
- package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts +0 -8
- package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts +0 -6
- package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts +0 -7
- package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/writeModelsToDb.d.ts +0 -9
- package/dist/src/Schema/service/actors/writeModelsToDb.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts +0 -10
- package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts.map +0 -1
- package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts +0 -11
- package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts.map +0 -1
- package/dist/src/browser/helpers/ArweaveClient.d.ts +0 -14
- package/dist/src/browser/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/src/browser/helpers/EasClient.d.ts +0 -10
- package/dist/src/browser/helpers/EasClient.d.ts.map +0 -1
- package/dist/src/browser/helpers/QueryClient.d.ts +0 -9
- package/dist/src/browser/helpers/QueryClient.d.ts.map +0 -1
- package/dist/src/client/actors/addModelsToStore.d.ts +0 -4
- package/dist/src/client/actors/addModelsToStore.d.ts.map +0 -1
- package/dist/src/db/backfillMetadataPropertyIds.d.ts +0 -7
- package/dist/src/db/backfillMetadataPropertyIds.d.ts.map +0 -1
- package/dist/src/db/read/getItem.d.ts +0 -3
- package/dist/src/db/read/getItem.d.ts.map +0 -1
- package/dist/src/db/read/getPropertyData.d.ts +0 -4
- package/dist/src/db/read/getPropertyData.d.ts.map +0 -1
- package/dist/src/db/read/getRelatedItemsForPublish.d.ts +0 -10
- package/dist/src/db/read/getRelatedItemsForPublish.d.ts.map +0 -1
- package/dist/src/db/read/getSeedData.d.ts +0 -12
- package/dist/src/db/read/getSeedData.d.ts.map +0 -1
- package/dist/src/db/read/itemLoads.d.ts +0 -20
- package/dist/src/db/read/itemLoads.d.ts.map +0 -1
- package/dist/src/db/read/publishDraftGraph.d.ts +0 -64
- package/dist/src/db/read/publishDraftGraph.d.ts.map +0 -1
- package/dist/src/db/write/linkModelToSchema.d.ts +0 -12
- package/dist/src/db/write/linkModelToSchema.d.ts.map +0 -1
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts +0 -2
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
- package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts +0 -2
- package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts.map +0 -1
- package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts +0 -2
- package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts.map +0 -1
- package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts +0 -2
- package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts.map +0 -1
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts +0 -2
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts +0 -2
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
- package/dist/src/helpers/easUid.d.ts +0 -2
- package/dist/src/helpers/easUid.d.ts.map +0 -1
- package/dist/src/helpers/entity/entityDestroy.d.ts +0 -49
- package/dist/src/helpers/entity/entityDestroy.d.ts.map +0 -1
- package/dist/src/helpers/entity/entityFind.d.ts +0 -52
- package/dist/src/helpers/entity/entityFind.d.ts.map +0 -1
- package/dist/src/helpers/entity/entityState.d.ts +0 -28
- package/dist/src/helpers/entity/entityState.d.ts.map +0 -1
- package/dist/src/helpers/entity/entityUnload.d.ts +0 -56
- package/dist/src/helpers/entity/entityUnload.d.ts.map +0 -1
- package/dist/src/helpers/entity/evictionEpoch.d.ts +0 -43
- package/dist/src/helpers/entity/evictionEpoch.d.ts.map +0 -1
- package/dist/src/helpers/entity/index.d.ts +0 -12
- package/dist/src/helpers/entity/index.d.ts.map +0 -1
- package/dist/src/helpers/gateway/gatewayState.d.ts +0 -2
- package/dist/src/helpers/gateway/gatewayState.d.ts.map +0 -1
- package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts +0 -2
- package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts.map +0 -1
- package/dist/src/helpers/gateway/seedGatewayConfig.d.ts +0 -2
- package/dist/src/helpers/gateway/seedGatewayConfig.d.ts.map +0 -1
- package/dist/src/helpers/getSchemaForItemProperty.d.ts +0 -15
- package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +0 -1
- package/dist/src/helpers/getSegmentedItemProperties.d.ts +0 -10
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +0 -1
- package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts +0 -7
- package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts.map +0 -1
- package/dist/src/helpers/propertyValidationRules.d.ts +0 -20
- package/dist/src/helpers/propertyValidationRules.d.ts.map +0 -1
- package/dist/src/helpers/propertyWriteTickets.d.ts +0 -11
- package/dist/src/helpers/propertyWriteTickets.d.ts.map +0 -1
- package/dist/src/helpers/reconcilePropertyDraftRows.d.ts +0 -10
- package/dist/src/helpers/reconcilePropertyDraftRows.d.ts.map +0 -1
- package/dist/src/helpers/waitForEntityIdle.d.ts +0 -21
- package/dist/src/helpers/waitForEntityIdle.d.ts.map +0 -1
- package/dist/src/interfaces/IQueryClient.d.ts +0 -15
- package/dist/src/interfaces/IQueryClient.d.ts.map +0 -1
- package/dist/src/node/helpers/ArweaveClient.d.ts +0 -5
- package/dist/src/node/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/src/node/helpers/EasClient.d.ts +0 -5
- package/dist/src/node/helpers/EasClient.d.ts.map +0 -1
- package/dist/src/node/helpers/QueryClient.d.ts +0 -5
- package/dist/src/node/helpers/QueryClient.d.ts.map +0 -1
- package/dist/src/services/write/actors/validateEntity.d.ts +0 -6
- package/dist/src/services/write/actors/validateEntity.d.ts.map +0 -1
- package/dist/src/services/write/actors/writeToDatabase.d.ts +0 -14
- package/dist/src/services/write/actors/writeToDatabase.d.ts.map +0 -1
- package/dist/src/services/write/writeProcessMachine.d.ts +0 -56
- package/dist/src/services/write/writeProcessMachine.d.ts.map +0 -1
- package/dist/src/stores/eas.d.ts +0 -2
- package/dist/src/stores/eas.d.ts.map +0 -1
- package/dist/src/types/arweave.d.ts +0 -57
- package/dist/src/types/arweave.d.ts.map +0 -1
- package/dist/src/types/gateway.d.ts +0 -2
- package/dist/src/types/gateway.d.ts.map +0 -1
- package/dist/syncDbWithEas-DUu_wjUG.js.map +0 -1
- package/dist/updateSeedRevokedAt-CP606vKs.js +0 -31
- package/dist/updateSeedRevokedAt-CP606vKs.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.node-CzMwMr_d.js","sources":["../../src/node/helpers/FileManager.ts","../../src/node/db/singleConnectionTransactions.ts","../../src/node/db/Db.ts","../../src/node/helpers/dotSeedDir.ts","../../src/helpers/dotSeedPath.ts","../../src/node/helpers/resolveFilesDir.ts","../../src/platform/index.node.ts"],"sourcesContent":["import * as fsAsync from 'fs/promises'\nimport * as fs from 'fs'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nimport type { IFileManager } from '@/helpers/FileManager/IFileManager'\nimport path from 'path'\nimport { pathToFileURL } from 'url'\n\nexport class NodeFileManager implements IFileManager {\n async getFs() {\n return fs\n }\n\n getFsSync() {\n return fs\n }\n\n /** Node has no blob URLs; a file:// URL keeps refResolvedDisplayValue meaningful for server callers. */\n async getContentUrlFromPath(filePath: string): Promise<string | undefined> {\n return pathToFileURL(path.resolve(filePath)).href\n }\n\n async initializeFileSystem(_workingDir?: string): Promise<void> {\n return // No need to initialize file system in node\n }\n\n async downloadAllFiles(): Promise<void> {\n throw new Error('Not implemented')\n }\n\n async resizeImage(): Promise<void> {\n throw new Error('Not implemented')\n }\n\n async resizeAllImages(): Promise<void> {\n throw new Error('Not implemented')\n }\n\n async pathExists(filePath: string): Promise<boolean> {\n return await fsAsync.access(filePath).then(() => true).catch(() => false)\n }\n\n /** Node reads the real file system; nothing is cached. */\n async invalidateCachedPaths(): Promise<void> {}\n\n async getFileSize(filePath: string): Promise<number | null> {\n try {\n const stat = await fsAsync.stat(filePath)\n return stat.size\n } catch {\n return null\n }\n }\n\n async listImageFiles(): Promise<string[]> {\n return this.listFiles('images')\n }\n\n async listFiles(dir: string): Promise<string[]> {\n const targetDir = BaseFileManager.getFilesPath(dir)\n const exists = await this.pathExists(targetDir)\n if (!exists) {\n return []\n }\n const entries = await fsAsync.readdir(targetDir, { withFileTypes: true })\n return entries.filter((entry) => entry.isFile()).map((entry) => entry.name)\n }\n\n async createDirIfNotExists(filePath: string): Promise<void> {\n await fsAsync.mkdir(filePath, { recursive: true })\n }\n\n async waitForFile(filePath: string, interval: number = 1000, timeout: number = 60000): Promise<boolean> {\n const pathExists = await this.pathExists(filePath)\n if (pathExists) {\n return true\n }\n\n return new Promise((resolve, reject) => {\n const startTime = Date.now()\n let isBusy = false\n\n const checkInterval = setInterval(async () => {\n if (isBusy) {\n return\n }\n isBusy = true\n\n try {\n const exists = await this.pathExists(filePath)\n if (exists) {\n clearInterval(checkInterval)\n resolve(true)\n return\n }\n\n if (Date.now() - startTime >= timeout) {\n clearInterval(checkInterval)\n reject(new Error('Timeout exceeded while waiting for file'))\n return\n }\n } catch (error) {\n clearInterval(checkInterval)\n reject(error)\n return\n } finally {\n isBusy = false\n }\n }, interval)\n })\n }\n\n async waitForFileWithContent(filePath: string, interval: number = 100, timeout: number = 5000): Promise<boolean> {\n return this.waitForFile(filePath, interval, timeout)\n }\n\n async saveFile(filePath: string, content: string | Blob | ArrayBuffer): Promise<void> {\n const dir = path.dirname(filePath)\n await fsAsync.mkdir(dir, { recursive: true })\n\n if (typeof content === 'string') {\n await fsAsync.writeFile(filePath, content, 'utf-8')\n } else if (content instanceof Blob) {\n const arrayBuffer = await content.arrayBuffer()\n await fsAsync.writeFile(filePath, new Uint8Array(arrayBuffer))\n } else if (content instanceof ArrayBuffer) {\n await fsAsync.writeFile(filePath, new Uint8Array(content))\n } else {\n throw new Error('Unsupported content type')\n }\n }\n\n saveFileSync(filePath: string, content: string | Blob | ArrayBuffer): void {\n const dir = path.dirname(filePath)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n\n if (typeof content === 'string') {\n fs.writeFileSync(filePath, content, 'utf-8')\n } else if (content instanceof Blob) {\n throw new Error('Blob content not supported in saveFileSync. Use saveFile() instead or convert to ArrayBuffer first.')\n } else if (content instanceof ArrayBuffer) {\n fs.writeFileSync(filePath, new Uint8Array(content))\n } else {\n throw new Error('Unsupported content type')\n }\n }\n\n async readFileAsBuffer(filePath: string): Promise<Buffer> {\n return await fsAsync.readFile(filePath)\n }\n\n async readFileAsString(filePath: string): Promise<string> {\n return await fsAsync.readFile(filePath, 'utf-8')\n }\n\n async readFile(filePath: string): Promise<File> {\n return new File([await fsAsync.readFile(filePath)], filePath)\n }\n\n readFileSync(filePath: string): File {\n return new File([fs.readFileSync(filePath)], filePath)\n }\n\n getParentDirPath(filePath: string): string {\n return path.dirname(filePath)\n }\n\n getFilenameFromPath(filePath: string): string {\n return path.basename(filePath)\n }\n\n getPathModule(): any {\n return path\n }\n}\n\n/** @deprecated Prefer NodeFileManager */\nexport const FileManager = NodeFileManager\n\nBaseFileManager.configure(new NodeFileManager())\n\nconst _check: IFileManager = new NodeFileManager()\nvoid _check\n","import type { Client } from '@libsql/client'\nimport { drizzle } from 'drizzle-orm/libsql'\nimport { isSqliteBusyError, SQLITE_BUSY_RETRY_DELAYS_MS } from '@/browser/db/sqliteBusyRetry'\n\n/**\n * Transactions on libsql's one connection, with the browser's semantics (ADR 0019).\n *\n * libsql's own `transaction()` hands the transaction the client's connection and opens a new one\n * for everything after, so a process ends up with several connections that lock each other out\n * (SQLITE_BUSY) and, in tests, lost an outbox op's committed insert. Here every statement uses the\n * client's single connection instead:\n *\n * - `transaction(fn)` runs one transaction at a time: BEGIN IMMEDIATE, `fn` on a Drizzle database\n * whose statements go straight to the connection, then COMMIT, or ROLLBACK when `fn` throws.\n * - Statements on the app database (the patched client) wait while a transaction is open, as\n * SQLocal makes them wait in the browser. So `fn` must not use the app database: it would wait\n * for its own transaction.\n * - Statements outside a transaction keep the busy retry: another process may hold the file.\n *\n * libsql 0.5 doesn't reset a statement that failed with SQLITE_BUSY, and that leaves its\n * connection in an implicit transaction that never commits: every later write on it is lost when it\n * closes and never reaches the file (`inTransaction` still reads false). So after a busy error the\n * connection is replaced (`reconnect()`) before anything else runs on it, and a transaction waits\n * for statements that are between attempts.\n */\nexport function createSingleConnectionTransactions(client: Client, schema: Record<string, unknown>) {\n const execute = client.execute.bind(client)\n const batch = client.batch.bind(client)\n\n /** Resolves when the open transaction ends; undefined when none is open. */\n let open: Promise<void> | undefined\n /** The transactions waiting their turn, chained. */\n let queue: Promise<void> = Promise.resolve()\n\n const outsideTransactions = async () => {\n while (open) await open\n }\n\n /** Statements outside transactions that are running or replacing a busy connection. */\n let statementsRunning = 0\n const whenStatementsDone: (() => void)[] = []\n const statementsDone = () =>\n statementsRunning === 0 ? Promise.resolve() : new Promise<void>((resolve) => whenStatementsDone.push(resolve))\n\n const statement = async <T>(run: () => Promise<T>): Promise<T> => {\n for (let attempt = 0; ; attempt++) {\n await outsideTransactions()\n statementsRunning++\n try {\n return await run()\n } catch (error) {\n if (!isSqliteBusyError(error) || attempt >= SQLITE_BUSY_RETRY_DELAYS_MS.length) throw error\n await client.reconnect()\n } finally {\n if (--statementsRunning === 0) for (const resolve of whenStatementsDone.splice(0)) resolve()\n }\n await new Promise((resolve) => setTimeout(resolve, SQLITE_BUSY_RETRY_DELAYS_MS[attempt]))\n }\n }\n\n client.execute = ((...args: Parameters<Client['execute']>) => statement(() => execute(...args))) as Client['execute']\n client.batch = ((...args: Parameters<Client['batch']>) => statement(() => batch(...args))) as Client['batch']\n\n // What Drizzle uses of the client, straight to the connection: the transaction's own statements\n const transactionClient = {\n execute,\n batch,\n protocol: client.protocol,\n get closed() {\n return client.closed\n },\n } as unknown as Client\n const transactionDb = drizzle(transactionClient, { schema })\n\n async function transaction<T>(fn: (tx: typeof transactionDb) => Promise<T>): Promise<T> {\n const previous = queue\n let finished!: () => void\n queue = new Promise<void>((resolve) => (finished = resolve))\n await previous\n let end!: () => void\n open = new Promise<void>((resolve) => (end = resolve))\n try {\n await statementsDone()\n try {\n await execute('BEGIN IMMEDIATE')\n } catch (error) {\n // Busy: BaseDb.transaction retries the whole transaction, on a fresh connection\n if (isSqliteBusyError(error)) await client.reconnect()\n throw error\n }\n try {\n const result = await fn(transactionDb)\n await execute('COMMIT')\n return result\n } catch (error) {\n try {\n await execute('ROLLBACK')\n } catch {\n // Already rolled back (SQLite does on some errors)\n }\n if (isSqliteBusyError(error)) await client.reconnect()\n throw error\n }\n } finally {\n open = undefined\n end()\n finished()\n }\n }\n\n return { transaction }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport type { IDb } from '@/interfaces/IDb'\nimport path from 'path'\nimport { fileURLToPath } from 'node:url'\nimport debug from 'debug'\nimport { appState } from '@/seedSchema'\nimport fs from 'fs'\nimport { createClient } from '@libsql/client'\nimport { createSingleConnectionTransactions } from './singleConnectionTransactions'\nimport { drizzle } from 'drizzle-orm/libsql'\nimport { migrate } from 'drizzle-orm/libsql/migrator'\nimport * as schema from '@/seedSchema'\nimport { Observable, interval, switchMap, distinctUntilChanged, startWith } from 'rxjs'\nimport { recreateIfOlderThanMinimumUpgradeVersion } from '@/db/minimumUpgradeVersion'\n\nconst logger = debug('seedSdk:node:db:Db')\n\nexport interface DbConfig {\n dbUrl?: string\n /** @deprecated Unused — schema is the static SDK seedSchema + prebuilt SQL migrations */\n schemaDir?: string\n outDir?: string\n}\n\nfunction resolveDbPaths(filesDir: string, config?: DbConfig) {\n const outDir = config?.outDir || path.join(filesDir, 'db')\n const dbPath = config?.dbUrl\n ? (config.dbUrl.startsWith('file:') ? config.dbUrl.replace(/^file:/, '') : config.dbUrl)\n : path.join(outDir, 'seed.db')\n return { outDir, dbPath }\n}\n\n/**\n * The installed @seedprotocol/sdk's dist directory, resolved from this module rather than the\n * working directory (hoisted monorepos, packaged Electron apps and scripts run from elsewhere all\n * differ). The working directory when the package can't be resolved.\n */\nfunction installedSdkDistDir(): string {\n try {\n const { createRequire } = process.getBuiltinModule('node:module')\n const pkgJson = createRequire(import.meta.url).resolve('@seedprotocol/sdk/package.json')\n return path.join(path.dirname(pkgJson), 'dist')\n } catch {\n return process.cwd()\n }\n}\n\n/**\n * Locate prebuilt drizzle migration SQL shipped with the SDK\n * (same files the browser embeds via drizzleFiles.ts).\n */\nexport function resolveSdkDrizzleMigrationsDir(sdkRootDir?: string): string {\n const root = sdkRootDir || installedSdkDistDir()\n\n // Look next to this module first, so the SDK always runs its own migrations\n // whatever the working directory (monorepos, packaged Electron apps, scripts\n // run from elsewhere). Rollup bundles this file into a chunk directly under\n // dist/, next to the copied dist/db/drizzle.\n const moduleDir = path.dirname(fileURLToPath(import.meta.url))\n\n const candidates = [\n path.join(moduleDir, 'db', 'drizzle'), // bundled: dist/<chunk>.js -> dist/db/drizzle\n path.join(moduleDir, '..', '..', 'db', 'drizzle'), // source: src/node/db -> src/db/drizzle\n path.join(moduleDir, '..', 'db', 'drizzle'), // dist layout variants\n path.join(moduleDir, '..', '..', '..', 'src', 'db', 'drizzle'), // dist/node -> src\n path.join(root, 'db', 'drizzle'), // production: sdkRoot is dist/\n path.join(root, 'dist', 'db', 'drizzle'), // sdk package root with built dist\n path.join(root, 'src', 'db', 'drizzle'), // monorepo / sdk-dev\n path.join(root, 'packages', 'sdk', 'src', 'db', 'drizzle'), // monorepo root as cwd\n path.join(root, 'packages', 'sdk', 'dist', 'db', 'drizzle'),\n ]\n\n for (const candidate of candidates) {\n if (fs.existsSync(path.join(candidate, 'meta', '_journal.json'))) {\n return candidate\n }\n }\n\n throw new Error(\n `Could not find SDK drizzle migrations (meta/_journal.json). Searched under: ${candidates.join(', ')}`,\n )\n}\n\nfunction copyDirRecursive(sourceDir: string, targetDir: string) {\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true })\n }\n for (const entry of fs.readdirSync(sourceDir)) {\n const sourcePath = path.join(sourceDir, entry)\n const targetPath = path.join(targetDir, entry)\n const stats = fs.statSync(sourcePath)\n if (stats.isDirectory()) {\n copyDirRecursive(sourcePath, targetPath)\n } else {\n fs.copyFileSync(sourcePath, targetPath)\n }\n }\n}\n\n\n/** The file a local libsql `file:` URL opens; undefined for `:memory:` and remote URLs. */\nconst localDbFilePath = (dbUrl: string): string | undefined => {\n if (!dbUrl.startsWith('file:')) return undefined\n const filePath = dbUrl.slice('file:'.length).split('?')[0]\n if (!filePath || filePath === ':memory:') return undefined\n return filePath.startsWith('//') ? filePath.replace(/^\\/\\/(localhost)?/, '') : filePath\n}\n\nexport class NodeDb implements IDb {\n db: any\n\n\n getAppDb() {\n return this.db\n }\n\n isAppDbReady() {\n return !!this.db\n }\n\n transactions: ReturnType<typeof createSingleConnectionTransactions> | undefined\n\n async transaction<T>(fn: (tx: any) => Promise<T>): Promise<T> {\n if (!this.db || !this.transactions) throw new Error('Database not prepared')\n return this.transactions.transaction(fn)\n }\n\n /**\n * Copy prebuilt SQL migrations into the app db directory (overwrite to stay current).\n */\n copyDrizzleFiles(filesDir: string, migrationsSourceDir?: string, config?: DbConfig): string {\n const { outDir } = resolveDbPaths(filesDir, config)\n const source = migrationsSourceDir || resolveSdkDrizzleMigrationsDir()\n logger('[Db.copyDrizzleFiles] copying from %s to %s', source, outDir)\n copyDirRecursive(source, outDir)\n return outDir\n }\n\n async prepareDb(filesDir: string, config?: DbConfig) {\n const resolvedFilesDir = path.resolve(filesDir)\n\n if (!fs.existsSync(resolvedFilesDir)) {\n fs.mkdirSync(resolvedFilesDir, { recursive: true })\n }\n\n const { outDir, dbPath } = resolveDbPaths(resolvedFilesDir, config)\n\n if (!fs.existsSync(outDir)) {\n fs.mkdirSync(outDir, { recursive: true })\n }\n\n // Install SDK migration SQL next to the DB (same source of truth as browser)\n this.copyDrizzleFiles(resolvedFilesDir, undefined, config)\n\n const dbUrl = config?.dbUrl\n ? (config.dbUrl.startsWith('file:') ? config.dbUrl : `file:${path.resolve(config.dbUrl)}`)\n : `file:${path.resolve(dbPath)}`\n\n // libsql won't create the database's folder (\"Unable to open connection … 14\").\n const dbFilePath = localDbFilePath(dbUrl)\n if (dbFilePath) {\n fs.mkdirSync(path.dirname(dbFilePath), { recursive: true })\n }\n\n const client = createClient({ url: dbUrl })\n // One connection for everything, transactions included (see singleConnectionTransactions)\n this.transactions = createSingleConnectionTransactions(client, schema)\n // Readers in other processes (a CLI on the same file) don't block a commit in WAL\n if (localDbFilePath(dbUrl)) await client.execute('PRAGMA journal_mode = WAL')\n const db = drizzle(client, { schema })\n\n await recreateIfOlderThanMinimumUpgradeVersion(db)\n logger('[Db.prepareDb] running migrations from %s', outDir)\n await migrate(db, { migrationsFolder: outDir })\n\n this.db = db\n\n const { backfillMetadataPropertyIds } = await import('@/db/backfillMetadataPropertyIds')\n await backfillMetadataPropertyIds()\n\n return this.db\n }\n\n async connectToDb(_pathToDir: string) {\n return {\n id: this.db ? this.db.constructor.name : '',\n }\n }\n\n async migrate(pathToDbDir: string, _dbName: string, _dbId: string) {\n try {\n if (!this.db) {\n throw new Error('Database not initialized. Call prepareDb first.')\n }\n\n await migrate(this.db, { migrationsFolder: pathToDbDir })\n const queryResult = await this.db.select().from(appState)\n logger('queryResult', queryResult)\n } catch (error: any) {\n const errorMessage = error.message || String(error) || ''\n const errorString = String(error)\n const isMigrationError =\n errorMessage.includes(\"Can't find meta/_journal.json\") ||\n errorMessage.includes('_journal.json') ||\n errorMessage.includes(\"Cannot read properties of undefined\") ||\n errorMessage.includes(\"reading 'dialect'\") ||\n errorMessage.includes('undefined is not an object') ||\n errorString.includes('dialect') ||\n errorString.includes('undefined is not an object')\n\n if (isMigrationError) {\n if (process.env.NODE_ENV === 'test' || process.env.IS_SEED_DEV) {\n logger(\n 'Warning: Migration failed, but continuing in test environment:',\n errorMessage || errorString,\n )\n return this.db\n }\n }\n throw error\n }\n\n return this.db\n }\n\n /**\n * Polling-based liveQuery stub for Node. Prefer browser reactive queries in UI apps.\n */\n liveQuery<T>(query: ((sql: any) => any) | any): Observable<T[]> {\n if (!this.db) {\n throw new Error('Database not initialized. Call prepareDb first.')\n }\n\n const pollInterval = 1000\n\n if (typeof query === 'function') {\n throw new Error(\n 'SQL tag functions are not supported in node liveQuery stub implementation. Use Drizzle query builders instead.',\n )\n }\n\n const queryBuilder = query\n\n return interval(pollInterval).pipe(\n startWith(0),\n switchMap(async () => {\n try {\n const result = await Promise.resolve(queryBuilder)\n return result as T[]\n } catch (error) {\n logger('[Db.liveQuery] Error executing query:', error)\n throw error\n }\n }),\n distinctUntilChanged((prev, curr) => {\n return JSON.stringify(prev) === JSON.stringify(curr)\n }),\n )\n }\n}\n\n/** @deprecated Prefer NodeDb */\nexport const Db = NodeDb\n\nBaseDb.configure(new NodeDb())\n\nconst _check: IDb = new NodeDb()\nvoid _check\n","import path from 'path'\n\n/**\n * The project's `.seed` directory on Node: `<process.cwd()>/.seed`. Apps whose working directory\n * isn't writable (a packaged Electron app's is often `/`) chdir before init or pass an absolute\n * filesDir.\n */\nexport function getDotSeedDir(): string {\n return path.join(process.cwd(), '.seed')\n}\n","/**\n * Whether a relative filesDir already names the .seed directory or a path inside\n * it ('.seed', '.seed/files', './.seed/files'). '.seed-alt/x' is not: it is\n * resolved under .seed like any other relative path.\n */\nexport function isUnderDotSeed(relativePath: string): boolean {\n const firstSegment = relativePath.split(/[\\\\/]+/).find((segment) => segment !== '' && segment !== '.')\n return firstSegment === '.seed'\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { getDotSeedDir } from './dotSeedDir'\nimport { isUnderDotSeed } from '@/helpers/dotSeedPath'\n\n/**\n * The filesDir to use on Node, resolved relative to the .seed directory at the project root.\n * A browser OPFS-style path such as '/app-files' that doesn't exist on disk becomes\n * '.seed/app-files'; a relative path not already under .seed is joined to .seed; other absolute\n * paths are used as-is.\n */\nexport function resolveFilesDir(filesDir: string): string {\n // Not created here: prepareDb creates filesDir (under .seed when it's relative), so an absolute\n // filesDir works from a read-only working directory (e.g. a packaged Electron app's cwd `/`).\n const dotSeedDir = getDotSeedDir()\n\n // Browser OPFS paths are single-level, like '/app-files' or '/files'.\n const pathWithoutLeadingSlash = filesDir.slice(1)\n const isBrowserOpfsPath =\n path.isAbsolute(filesDir) &&\n filesDir.startsWith('/') &&\n pathWithoutLeadingSlash.length > 0 &&\n !pathWithoutLeadingSlash.includes('/') &&\n !fs.existsSync(filesDir)\n\n if (isBrowserOpfsPath) {\n return path.join(dotSeedDir, filesDir.slice(1) || 'app-files')\n }\n if (!path.isAbsolute(filesDir)) {\n return isUnderDotSeed(filesDir) ? path.resolve(filesDir) : path.join(dotSeedDir, filesDir)\n }\n return filesDir\n}\n","import { NodeFileManager } from '@/node/helpers/FileManager'\nimport { NodeDb } from '@/node/db/Db'\nimport { NodeArweaveClient } from '@/node/helpers/ArweaveClient'\nimport { NodeEasClient } from '@/node/helpers/EasClient'\nimport { NodeQueryClient } from '@/node/helpers/QueryClient'\nimport type { PlatformServices } from './types'\n\nexport function createPlatformServices(): PlatformServices {\n return {\n fileManager: new NodeFileManager(),\n db: new NodeDb(),\n arweaveClient: new NodeArweaveClient(),\n easClient: new NodeEasClient(),\n queryClient: new NodeQueryClient(),\n }\n}\n\nexport { configurePlatform } from './configurePlatform'\nexport { resolveFilesDir } from '@/node/helpers/resolveFilesDir'\nexport type { PlatformServices } from './types'\n"],"names":["fs"],"mappings":"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"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File extension <-> MIME type, shared by the upload side (`getPublishUploads.ts`, which sets the
|
|
3
|
-
* `Content-Type` tag) and the download worker (`browser/workers/filesDownload.ts`, which picks the
|
|
4
|
-
* extension of a file saved under `files/`). The worker runs from a string and cannot import this
|
|
5
|
-
* module, so {@link MIME_TO_EXTENSION} is injected into its source as JSON.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Lowercase extension (no dot) to MIME type. Includes the odd extensions the SDK itself produces:
|
|
9
|
-
* `saveImage` names a file `<id>.<subtype>` (e.g. `.svg+xml`, `.x-icon`), so subtypes appear here too.
|
|
10
|
-
*/
|
|
11
|
-
const EXTENSION_TO_MIME = {
|
|
12
|
-
// images
|
|
13
|
-
png: 'image/png',
|
|
14
|
-
apng: 'image/apng',
|
|
15
|
-
jpg: 'image/jpeg',
|
|
16
|
-
jpeg: 'image/jpeg',
|
|
17
|
-
jfif: 'image/jpeg',
|
|
18
|
-
gif: 'image/gif',
|
|
19
|
-
webp: 'image/webp',
|
|
20
|
-
avif: 'image/avif',
|
|
21
|
-
heic: 'image/heic',
|
|
22
|
-
heif: 'image/heif',
|
|
23
|
-
svg: 'image/svg+xml',
|
|
24
|
-
'svg+xml': 'image/svg+xml',
|
|
25
|
-
bmp: 'image/bmp',
|
|
26
|
-
ico: 'image/x-icon',
|
|
27
|
-
'x-icon': 'image/x-icon',
|
|
28
|
-
'vnd.microsoft.icon': 'image/x-icon',
|
|
29
|
-
tif: 'image/tiff',
|
|
30
|
-
tiff: 'image/tiff',
|
|
31
|
-
// text / documents
|
|
32
|
-
html: 'text/html',
|
|
33
|
-
htm: 'text/html',
|
|
34
|
-
xhtml: 'application/xhtml+xml',
|
|
35
|
-
json: 'application/json',
|
|
36
|
-
txt: 'text/plain',
|
|
37
|
-
plain: 'text/plain',
|
|
38
|
-
md: 'text/markdown',
|
|
39
|
-
markdown: 'text/markdown',
|
|
40
|
-
csv: 'text/csv',
|
|
41
|
-
tsv: 'text/tab-separated-values',
|
|
42
|
-
xml: 'application/xml',
|
|
43
|
-
css: 'text/css',
|
|
44
|
-
js: 'text/javascript',
|
|
45
|
-
mjs: 'text/javascript',
|
|
46
|
-
pdf: 'application/pdf',
|
|
47
|
-
rtf: 'application/rtf',
|
|
48
|
-
epub: 'application/epub+zip',
|
|
49
|
-
zip: 'application/zip',
|
|
50
|
-
gz: 'application/gzip',
|
|
51
|
-
doc: 'application/msword',
|
|
52
|
-
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
53
|
-
xls: 'application/vnd.ms-excel',
|
|
54
|
-
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
55
|
-
ppt: 'application/vnd.ms-powerpoint',
|
|
56
|
-
pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
57
|
-
odt: 'application/vnd.oasis.opendocument.text',
|
|
58
|
-
// audio
|
|
59
|
-
mp3: 'audio/mpeg',
|
|
60
|
-
mpeg: 'audio/mpeg',
|
|
61
|
-
wav: 'audio/wav',
|
|
62
|
-
ogg: 'audio/ogg',
|
|
63
|
-
oga: 'audio/ogg',
|
|
64
|
-
opus: 'audio/opus',
|
|
65
|
-
m4a: 'audio/mp4',
|
|
66
|
-
aac: 'audio/aac',
|
|
67
|
-
flac: 'audio/flac',
|
|
68
|
-
weba: 'audio/webm',
|
|
69
|
-
// video
|
|
70
|
-
mp4: 'video/mp4',
|
|
71
|
-
m4v: 'video/mp4',
|
|
72
|
-
webm: 'video/webm',
|
|
73
|
-
mov: 'video/quicktime',
|
|
74
|
-
quicktime: 'video/quicktime',
|
|
75
|
-
ogv: 'video/ogg',
|
|
76
|
-
mkv: 'video/x-matroska',
|
|
77
|
-
avi: 'video/x-msvideo',
|
|
78
|
-
// fonts
|
|
79
|
-
woff: 'font/woff',
|
|
80
|
-
woff2: 'font/woff2',
|
|
81
|
-
ttf: 'font/ttf',
|
|
82
|
-
otf: 'font/otf',
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* MIME type to the extension a downloaded file gets. One canonical extension per type (the
|
|
86
|
-
* first one listed here wins over {@link EXTENSION_TO_MIME}'s aliases), plus a few common
|
|
87
|
-
* non-canonical spellings a gateway may send.
|
|
88
|
-
*/
|
|
89
|
-
const MIME_TO_EXTENSION = (() => {
|
|
90
|
-
const preferred = {
|
|
91
|
-
'image/jpeg': 'jpg',
|
|
92
|
-
'image/svg+xml': 'svg',
|
|
93
|
-
'image/x-icon': 'ico',
|
|
94
|
-
'image/tiff': 'tiff',
|
|
95
|
-
'text/html': 'html',
|
|
96
|
-
'text/plain': 'txt',
|
|
97
|
-
'text/markdown': 'md',
|
|
98
|
-
'text/javascript': 'js',
|
|
99
|
-
'audio/mpeg': 'mp3',
|
|
100
|
-
'audio/ogg': 'ogg',
|
|
101
|
-
'audio/mp4': 'm4a',
|
|
102
|
-
'video/mp4': 'mp4',
|
|
103
|
-
'video/quicktime': 'mov',
|
|
104
|
-
'video/ogg': 'ogv',
|
|
105
|
-
};
|
|
106
|
-
const out = { ...preferred };
|
|
107
|
-
for (const [ext, mime] of Object.entries(EXTENSION_TO_MIME)) {
|
|
108
|
-
if (!(mime in out))
|
|
109
|
-
out[mime] = ext;
|
|
110
|
-
}
|
|
111
|
-
// Non-canonical names some servers use for the same formats.
|
|
112
|
-
Object.assign(out, {
|
|
113
|
-
'audio/mp3': 'mp3',
|
|
114
|
-
'audio/x-wav': 'wav',
|
|
115
|
-
'audio/wave': 'wav',
|
|
116
|
-
'audio/vnd.wave': 'wav',
|
|
117
|
-
'audio/x-m4a': 'm4a',
|
|
118
|
-
'audio/x-flac': 'flac',
|
|
119
|
-
'application/x-zip-compressed': 'zip',
|
|
120
|
-
'image/vnd.microsoft.icon': 'ico',
|
|
121
|
-
});
|
|
122
|
-
return out;
|
|
123
|
-
})();
|
|
124
|
-
/**
|
|
125
|
-
* Content types that say nothing about the content. A Blob carrying one of these is treated as
|
|
126
|
-
* untyped.
|
|
127
|
-
*/
|
|
128
|
-
const GENERIC_MIME_TYPES = [
|
|
129
|
-
'',
|
|
130
|
-
'application/octet-stream',
|
|
131
|
-
'binary/octet-stream',
|
|
132
|
-
];
|
|
133
|
-
/** Lowercase `type/subtype` without parameters; `undefined` when empty or generic. */
|
|
134
|
-
const normalizeMimeType = (mimeType) => {
|
|
135
|
-
const t = (mimeType ?? '').split(';')[0].trim().toLowerCase();
|
|
136
|
-
if (!t || GENERIC_MIME_TYPES.includes(t) || !t.includes('/'))
|
|
137
|
-
return undefined;
|
|
138
|
-
return t;
|
|
139
|
-
};
|
|
140
|
-
/** MIME type for a path or file name by its extension, if it has a known one. */
|
|
141
|
-
const getMimeTypeFromPath = (filePathOrName) => {
|
|
142
|
-
const name = filePathOrName.split('/').pop() ?? '';
|
|
143
|
-
const dot = name.lastIndexOf('.');
|
|
144
|
-
if (dot <= 0 || dot === name.length - 1)
|
|
145
|
-
return undefined;
|
|
146
|
-
return EXTENSION_TO_MIME[name.slice(dot + 1).toLowerCase()];
|
|
147
|
-
};
|
|
148
|
-
/** Extension (no dot) for a MIME type, if it has a well-known one. */
|
|
149
|
-
const getExtensionForMimeType = (mimeType) => {
|
|
150
|
-
const t = normalizeMimeType(mimeType);
|
|
151
|
-
return t ? MIME_TO_EXTENSION[t] : undefined;
|
|
152
|
-
};
|
|
153
|
-
/**
|
|
154
|
-
* MIME type from the leading bytes, for formats with an unambiguous signature. Used when a local
|
|
155
|
-
* file has no (known) extension, e.g. a file seed named after its id.
|
|
156
|
-
*/
|
|
157
|
-
const sniffMimeType = (bytes) => {
|
|
158
|
-
const at = (offset, ...sig) => bytes.length >= offset + sig.length && sig.every((b, i) => bytes[offset + i] === b);
|
|
159
|
-
const ascii = (offset, s) => at(offset, ...Array.from(s).map((c) => c.charCodeAt(0)));
|
|
160
|
-
if (at(0, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a))
|
|
161
|
-
return 'image/png';
|
|
162
|
-
if (at(0, 0xff, 0xd8, 0xff))
|
|
163
|
-
return 'image/jpeg';
|
|
164
|
-
if (ascii(0, 'GIF87a') || ascii(0, 'GIF89a'))
|
|
165
|
-
return 'image/gif';
|
|
166
|
-
if (ascii(0, 'RIFF') && ascii(8, 'WEBP'))
|
|
167
|
-
return 'image/webp';
|
|
168
|
-
if (ascii(0, 'RIFF') && ascii(8, 'WAVE'))
|
|
169
|
-
return 'audio/wav';
|
|
170
|
-
if (ascii(0, 'RIFF') && ascii(8, 'AVI '))
|
|
171
|
-
return 'video/x-msvideo';
|
|
172
|
-
if (ascii(0, 'BM') && bytes.length > 14)
|
|
173
|
-
return 'image/bmp';
|
|
174
|
-
if (at(0, 0x49, 0x49, 0x2a, 0x00) || at(0, 0x4d, 0x4d, 0x00, 0x2a))
|
|
175
|
-
return 'image/tiff';
|
|
176
|
-
if (ascii(0, '%PDF-'))
|
|
177
|
-
return 'application/pdf';
|
|
178
|
-
if (ascii(0, 'OggS'))
|
|
179
|
-
return 'audio/ogg';
|
|
180
|
-
if (ascii(0, 'fLaC'))
|
|
181
|
-
return 'audio/flac';
|
|
182
|
-
if (ascii(0, 'ID3'))
|
|
183
|
-
return 'audio/mpeg';
|
|
184
|
-
if (at(0, 0x1a, 0x45, 0xdf, 0xa3))
|
|
185
|
-
return 'video/webm';
|
|
186
|
-
if (ascii(4, 'ftyp')) {
|
|
187
|
-
const brand = String.fromCharCode(...Array.from(bytes.slice(8, 12)));
|
|
188
|
-
if (brand === 'avif' || brand === 'avis')
|
|
189
|
-
return 'image/avif';
|
|
190
|
-
if (['heic', 'heix', 'heif', 'mif1', 'msf1'].includes(brand))
|
|
191
|
-
return 'image/heic';
|
|
192
|
-
if (brand === 'qt ')
|
|
193
|
-
return 'video/quicktime';
|
|
194
|
-
if (brand === 'M4A ')
|
|
195
|
-
return 'audio/mp4';
|
|
196
|
-
return 'video/mp4';
|
|
197
|
-
}
|
|
198
|
-
return undefined;
|
|
199
|
-
};
|
|
200
|
-
/**
|
|
201
|
-
* Best MIME type for upload bytes: the source's own type (a Blob/File `type`) when it is specific,
|
|
202
|
-
* then the file name's extension, then the bytes' signature.
|
|
203
|
-
*/
|
|
204
|
-
const resolveUploadMimeType = (params) => normalizeMimeType(params.sourceType) ??
|
|
205
|
-
(params.fileName ? getMimeTypeFromPath(params.fileName) : undefined) ??
|
|
206
|
-
(params.bytes ? sniffMimeType(params.bytes) : undefined);
|
|
207
|
-
|
|
208
|
-
export { MIME_TO_EXTENSION as M, getExtensionForMimeType as g, resolveUploadMimeType as r };
|
|
209
|
-
//# sourceMappingURL=mimeTypes-C9r76DCH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mimeTypes-C9r76DCH.js","sources":["../../src/helpers/mimeTypes.ts"],"sourcesContent":["/**\n * File extension <-> MIME type, shared by the upload side (`getPublishUploads.ts`, which sets the\n * `Content-Type` tag) and the download worker (`browser/workers/filesDownload.ts`, which picks the\n * extension of a file saved under `files/`). The worker runs from a string and cannot import this\n * module, so {@link MIME_TO_EXTENSION} is injected into its source as JSON.\n */\n\n/**\n * Lowercase extension (no dot) to MIME type. Includes the odd extensions the SDK itself produces:\n * `saveImage` names a file `<id>.<subtype>` (e.g. `.svg+xml`, `.x-icon`), so subtypes appear here too.\n */\nexport const EXTENSION_TO_MIME: Readonly<Record<string, string>> = {\n // images\n png: 'image/png',\n apng: 'image/apng',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n jfif: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n avif: 'image/avif',\n heic: 'image/heic',\n heif: 'image/heif',\n svg: 'image/svg+xml',\n 'svg+xml': 'image/svg+xml',\n bmp: 'image/bmp',\n ico: 'image/x-icon',\n 'x-icon': 'image/x-icon',\n 'vnd.microsoft.icon': 'image/x-icon',\n tif: 'image/tiff',\n tiff: 'image/tiff',\n // text / documents\n html: 'text/html',\n htm: 'text/html',\n xhtml: 'application/xhtml+xml',\n json: 'application/json',\n txt: 'text/plain',\n plain: 'text/plain',\n md: 'text/markdown',\n markdown: 'text/markdown',\n csv: 'text/csv',\n tsv: 'text/tab-separated-values',\n xml: 'application/xml',\n css: 'text/css',\n js: 'text/javascript',\n mjs: 'text/javascript',\n pdf: 'application/pdf',\n rtf: 'application/rtf',\n epub: 'application/epub+zip',\n zip: 'application/zip',\n gz: 'application/gzip',\n doc: 'application/msword',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xls: 'application/vnd.ms-excel',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n ppt: 'application/vnd.ms-powerpoint',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n odt: 'application/vnd.oasis.opendocument.text',\n // audio\n mp3: 'audio/mpeg',\n mpeg: 'audio/mpeg',\n wav: 'audio/wav',\n ogg: 'audio/ogg',\n oga: 'audio/ogg',\n opus: 'audio/opus',\n m4a: 'audio/mp4',\n aac: 'audio/aac',\n flac: 'audio/flac',\n weba: 'audio/webm',\n // video\n mp4: 'video/mp4',\n m4v: 'video/mp4',\n webm: 'video/webm',\n mov: 'video/quicktime',\n quicktime: 'video/quicktime',\n ogv: 'video/ogg',\n mkv: 'video/x-matroska',\n avi: 'video/x-msvideo',\n // fonts\n woff: 'font/woff',\n woff2: 'font/woff2',\n ttf: 'font/ttf',\n otf: 'font/otf',\n}\n\n/**\n * MIME type to the extension a downloaded file gets. One canonical extension per type (the\n * first one listed here wins over {@link EXTENSION_TO_MIME}'s aliases), plus a few common\n * non-canonical spellings a gateway may send.\n */\nexport const MIME_TO_EXTENSION: Readonly<Record<string, string>> = (() => {\n const preferred: Record<string, string> = {\n 'image/jpeg': 'jpg',\n 'image/svg+xml': 'svg',\n 'image/x-icon': 'ico',\n 'image/tiff': 'tiff',\n 'text/html': 'html',\n 'text/plain': 'txt',\n 'text/markdown': 'md',\n 'text/javascript': 'js',\n 'audio/mpeg': 'mp3',\n 'audio/ogg': 'ogg',\n 'audio/mp4': 'm4a',\n 'video/mp4': 'mp4',\n 'video/quicktime': 'mov',\n 'video/ogg': 'ogv',\n }\n const out: Record<string, string> = { ...preferred }\n for (const [ext, mime] of Object.entries(EXTENSION_TO_MIME)) {\n if (!(mime in out)) out[mime] = ext\n }\n // Non-canonical names some servers use for the same formats.\n Object.assign(out, {\n 'audio/mp3': 'mp3',\n 'audio/x-wav': 'wav',\n 'audio/wave': 'wav',\n 'audio/vnd.wave': 'wav',\n 'audio/x-m4a': 'm4a',\n 'audio/x-flac': 'flac',\n 'application/x-zip-compressed': 'zip',\n 'image/vnd.microsoft.icon': 'ico',\n })\n return out\n})()\n\n/**\n * Content types that say nothing about the content. A Blob carrying one of these is treated as\n * untyped.\n */\nexport const GENERIC_MIME_TYPES: readonly string[] = [\n '',\n 'application/octet-stream',\n 'binary/octet-stream',\n]\n\n/** Lowercase `type/subtype` without parameters; `undefined` when empty or generic. */\nexport const normalizeMimeType = (mimeType: string | null | undefined): string | undefined => {\n const t = (mimeType ?? '').split(';')[0]!.trim().toLowerCase()\n if (!t || GENERIC_MIME_TYPES.includes(t) || !t.includes('/')) return undefined\n return t\n}\n\n/** MIME type for a path or file name by its extension, if it has a known one. */\nexport const getMimeTypeFromPath = (filePathOrName: string): string | undefined => {\n const name = filePathOrName.split('/').pop() ?? ''\n const dot = name.lastIndexOf('.')\n if (dot <= 0 || dot === name.length - 1) return undefined\n return EXTENSION_TO_MIME[name.slice(dot + 1).toLowerCase()]\n}\n\n/** Extension (no dot) for a MIME type, if it has a well-known one. */\nexport const getExtensionForMimeType = (mimeType: string | null | undefined): string | undefined => {\n const t = normalizeMimeType(mimeType)\n return t ? MIME_TO_EXTENSION[t] : undefined\n}\n\n/**\n * MIME type from the leading bytes, for formats with an unambiguous signature. Used when a local\n * file has no (known) extension, e.g. a file seed named after its id.\n */\nexport const sniffMimeType = (bytes: Uint8Array): string | undefined => {\n const at = (offset: number, ...sig: number[]) =>\n bytes.length >= offset + sig.length && sig.every((b, i) => bytes[offset + i] === b)\n const ascii = (offset: number, s: string) =>\n at(offset, ...Array.from(s).map((c) => c.charCodeAt(0)))\n\n if (at(0, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a)) return 'image/png'\n if (at(0, 0xff, 0xd8, 0xff)) return 'image/jpeg'\n if (ascii(0, 'GIF87a') || ascii(0, 'GIF89a')) return 'image/gif'\n if (ascii(0, 'RIFF') && ascii(8, 'WEBP')) return 'image/webp'\n if (ascii(0, 'RIFF') && ascii(8, 'WAVE')) return 'audio/wav'\n if (ascii(0, 'RIFF') && ascii(8, 'AVI ')) return 'video/x-msvideo'\n if (ascii(0, 'BM') && bytes.length > 14) return 'image/bmp'\n if (at(0, 0x49, 0x49, 0x2a, 0x00) || at(0, 0x4d, 0x4d, 0x00, 0x2a)) return 'image/tiff'\n if (ascii(0, '%PDF-')) return 'application/pdf'\n if (ascii(0, 'OggS')) return 'audio/ogg'\n if (ascii(0, 'fLaC')) return 'audio/flac'\n if (ascii(0, 'ID3')) return 'audio/mpeg'\n if (at(0, 0x1a, 0x45, 0xdf, 0xa3)) return 'video/webm'\n if (ascii(4, 'ftyp')) {\n const brand = String.fromCharCode(...Array.from(bytes.slice(8, 12)))\n if (brand === 'avif' || brand === 'avis') return 'image/avif'\n if (['heic', 'heix', 'heif', 'mif1', 'msf1'].includes(brand)) return 'image/heic'\n if (brand === 'qt ') return 'video/quicktime'\n if (brand === 'M4A ') return 'audio/mp4'\n return 'video/mp4'\n }\n return undefined\n}\n\n/**\n * Best MIME type for upload bytes: the source's own type (a Blob/File `type`) when it is specific,\n * then the file name's extension, then the bytes' signature.\n */\nexport const resolveUploadMimeType = (params: {\n sourceType?: string | null\n fileName?: string | null\n bytes?: Uint8Array\n}): string | undefined =>\n normalizeMimeType(params.sourceType) ??\n (params.fileName ? getMimeTypeFromPath(params.fileName) : undefined) ??\n (params.bytes ? sniffMimeType(params.bytes) : undefined)\n"],"names":[],"mappings":"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"}
|
package/dist/model-oHA3YhOd.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert Model.properties array to object format (for backward compatibility)
|
|
3
|
-
* This replaces the old model.schema getter
|
|
4
|
-
*/
|
|
5
|
-
function modelPropertiesToObject(properties) {
|
|
6
|
-
const schemaObj = {};
|
|
7
|
-
for (const property of properties) {
|
|
8
|
-
const propContext = property._getSnapshotContext();
|
|
9
|
-
if (propContext.name) {
|
|
10
|
-
schemaObj[propContext.name] = {
|
|
11
|
-
dataType: propContext.dataType,
|
|
12
|
-
ref: propContext.refModelName || propContext.ref,
|
|
13
|
-
refValueType: propContext.refValueType,
|
|
14
|
-
storageType: propContext.storageType,
|
|
15
|
-
localStorageDir: propContext.localStorageDir,
|
|
16
|
-
filenameSuffix: propContext.filenameSuffix,
|
|
17
|
-
required: propContext.required,
|
|
18
|
-
...(propContext.validation ? { validation: propContext.validation } : {}),
|
|
19
|
-
...(propContext.htmlEmbeddedDataUriPolicy
|
|
20
|
-
? { htmlEmbeddedDataUriPolicy: propContext.htmlEmbeddedDataUriPolicy }
|
|
21
|
-
: {}),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return schemaObj;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { modelPropertiesToObject };
|
|
29
|
-
//# sourceMappingURL=model-oHA3YhOd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-oHA3YhOd.js","sources":["../../src/helpers/model.ts"],"sourcesContent":["import { ModelProperty } from '@/ModelProperty/ModelProperty'\n\n/**\n * Convert Model.properties array to object format (for backward compatibility)\n * This replaces the old model.schema getter\n */\nexport function modelPropertiesToObject(properties: ModelProperty[]): { [propertyName: string]: any } {\n const schemaObj: { [propertyName: string]: any } = {}\n \n for (const property of properties) {\n const propContext = property._getSnapshotContext()\n if (propContext.name) {\n schemaObj[propContext.name] = {\n dataType: propContext.dataType,\n ref: propContext.refModelName || propContext.ref,\n refValueType: propContext.refValueType,\n storageType: propContext.storageType,\n localStorageDir: propContext.localStorageDir,\n filenameSuffix: propContext.filenameSuffix,\n required: propContext.required,\n ...(propContext.validation ? { validation: propContext.validation } : {}),\n ...(propContext.htmlEmbeddedDataUriPolicy\n ? { htmlEmbeddedDataUriPolicy: propContext.htmlEmbeddedDataUriPolicy }\n : {}),\n }\n }\n }\n \n return schemaObj\n}\n\n"],"names":[],"mappings":"AAEA;;;AAGG;AACG,SAAU,uBAAuB,CAAC,UAA2B,EAAA;IACjE,MAAM,SAAS,GAAoC,EAAE;AAErD,IAAA,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACjC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,EAAE;AAClD,QAAA,IAAI,WAAW,CAAC,IAAI,EAAE;AACpB,YAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC9B,gBAAA,GAAG,EAAE,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,GAAG;gBAChD,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,eAAe,EAAE,WAAW,CAAC,eAAe;gBAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;gBAC1C,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC9B,gBAAA,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC;gBACzE,IAAI,WAAW,CAAC;AACd,sBAAE,EAAE,yBAAyB,EAAE,WAAW,CAAC,yBAAyB;sBAClE,EAAE,CAAC;aACR;QACH;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;;"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { eq, inArray } from 'drizzle-orm';
|
|
2
|
-
import { R as resolveModelRecord, E as properties, p as models } from './index-Dx_GTdyQ.js';
|
|
3
|
-
import { resolveModelValidationRules } from './propertyValidationRules-CyHdpcPP.js';
|
|
4
|
-
import { t as timingMarks } from './changeFeed-DKdVlUmt.js';
|
|
5
|
-
import 'debug';
|
|
6
|
-
import '@seedprotocol/arweave';
|
|
7
|
-
import '@seedprotocol/eas';
|
|
8
|
-
import 'xstate';
|
|
9
|
-
import 'pluralize';
|
|
10
|
-
import '@sinclair/typebox';
|
|
11
|
-
import 'drizzle-orm/sqlite-core';
|
|
12
|
-
import 'nanoid';
|
|
13
|
-
import 'nanoid-dictionary';
|
|
14
|
-
import '@noble/hashes/sha256';
|
|
15
|
-
import '@noble/hashes/sha3';
|
|
16
|
-
import '@noble/hashes/utils';
|
|
17
|
-
import 'lodash-es';
|
|
18
|
-
import './eventBus-7vxTCc3a.js';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* One read per model while it's in flight: an item's properties load together and would otherwise
|
|
22
|
-
* each look up the same model row, properties and schema data. Nothing is kept once the read
|
|
23
|
-
* settles, so a later load sees schema changes.
|
|
24
|
-
*/
|
|
25
|
-
const inFlight = new Map();
|
|
26
|
-
/**
|
|
27
|
-
* Every property's record schema for one model, read from the database (properties table, ref
|
|
28
|
-
* model names, validation rules from the schema), keyed by property name. Empty when the model has
|
|
29
|
-
* no row. Rejects when the model can't be resolved (e.g. an ambiguous name).
|
|
30
|
-
*/
|
|
31
|
-
function loadModelPropertyRecordSchemas(modelName, modelFileId, db) {
|
|
32
|
-
const key = JSON.stringify([modelName, modelFileId ?? null]);
|
|
33
|
-
const existing = inFlight.get(key);
|
|
34
|
-
if (existing)
|
|
35
|
-
return existing;
|
|
36
|
-
const read = readModelPropertyRecordSchemas(modelName, modelFileId, db);
|
|
37
|
-
inFlight.set(key, read);
|
|
38
|
-
const forget = () => {
|
|
39
|
-
if (inFlight.get(key) === read)
|
|
40
|
-
inFlight.delete(key);
|
|
41
|
-
};
|
|
42
|
-
read.then(forget, forget);
|
|
43
|
-
return read;
|
|
44
|
-
}
|
|
45
|
-
const readModelPropertyRecordSchemas = async (modelName, modelFileId, db) => {
|
|
46
|
-
const schemas = new Map();
|
|
47
|
-
const timing = timingMarks();
|
|
48
|
-
const modelRecord = await resolveModelRecord(modelName, { modelFileId }, db);
|
|
49
|
-
timing.mark('model record');
|
|
50
|
-
if (!modelRecord?.id)
|
|
51
|
-
return schemas;
|
|
52
|
-
const propertyRecords = await db
|
|
53
|
-
.select()
|
|
54
|
-
.from(properties)
|
|
55
|
-
.where(eq(properties.modelId, modelRecord.id));
|
|
56
|
-
// properties has refModelId but not the ref model's name
|
|
57
|
-
const refModelIds = [
|
|
58
|
-
...new Set(propertyRecords.map((r) => r.refModelId).filter((id) => id != null)),
|
|
59
|
-
];
|
|
60
|
-
const refModelNames = new Map();
|
|
61
|
-
if (refModelIds.length > 0) {
|
|
62
|
-
const refModelRows = await db
|
|
63
|
-
.select({ id: models.id, name: models.name })
|
|
64
|
-
.from(models)
|
|
65
|
-
.where(inArray(models.id, refModelIds));
|
|
66
|
-
for (const row of refModelRows)
|
|
67
|
-
refModelNames.set(row.id, row.name);
|
|
68
|
-
}
|
|
69
|
-
timing.mark('properties');
|
|
70
|
-
// Validation rules (enum, pattern, ...) aren't in the properties table
|
|
71
|
-
const validationRules = await resolveModelValidationRules(modelName, propertyRecords.map((r) => r.name), { modelFileId: modelRecord.schemaFileId ?? modelFileId });
|
|
72
|
-
timing.mark('validation rules');
|
|
73
|
-
timing.log(`model ${modelName} property schemas`);
|
|
74
|
-
for (const propRecord of propertyRecords) {
|
|
75
|
-
if (schemas.has(propRecord.name))
|
|
76
|
-
continue;
|
|
77
|
-
const validation = validationRules.get(propRecord.name);
|
|
78
|
-
schemas.set(propRecord.name, {
|
|
79
|
-
id: propRecord.id,
|
|
80
|
-
dataType: propRecord.dataType,
|
|
81
|
-
ref: propRecord.refModelId != null ? refModelNames.get(propRecord.refModelId) : undefined,
|
|
82
|
-
refValueType: propRecord.refValueType || undefined,
|
|
83
|
-
storageType: propRecord.storageType || undefined,
|
|
84
|
-
localStorageDir: propRecord.localStorageDir || undefined,
|
|
85
|
-
filenameSuffix: propRecord.filenameSuffix || undefined,
|
|
86
|
-
required: propRecord.required ?? undefined,
|
|
87
|
-
...(validation ? { validation } : {}),
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return schemas;
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
export { loadModelPropertyRecordSchemas };
|
|
94
|
-
//# sourceMappingURL=modelPropertyRecordSchemas-C5lW9aA-.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modelPropertyRecordSchemas-C5lW9aA-.js","sources":["../../src/ItemProperty/service/actors/modelPropertyRecordSchemas.ts"],"sourcesContent":["import { eq, inArray } from 'drizzle-orm'\nimport type { BaseDb } from '@/db/Db/BaseDb'\nimport { models, properties } from '@/seedSchema'\nimport { resolveModelRecord } from '@/db/read/resolveModelRecord'\nimport { resolveModelValidationRules } from '@/helpers/propertyValidationRules'\nimport { timingMarks } from '@/helpers/timing'\n\ntype Db = NonNullable<ReturnType<typeof BaseDb.getAppDb>>\n\nexport type PropertyRecordSchema = {\n id: number\n dataType: string\n ref?: string\n refValueType?: string\n storageType?: string\n localStorageDir?: string\n filenameSuffix?: string\n required?: boolean\n validation?: unknown\n}\n\n/**\n * One read per model while it's in flight: an item's properties load together and would otherwise\n * each look up the same model row, properties and schema data. Nothing is kept once the read\n * settles, so a later load sees schema changes.\n */\nconst inFlight = new Map<string, Promise<Map<string, PropertyRecordSchema>>>()\n\n/**\n * Every property's record schema for one model, read from the database (properties table, ref\n * model names, validation rules from the schema), keyed by property name. Empty when the model has\n * no row. Rejects when the model can't be resolved (e.g. an ambiguous name).\n */\nexport function loadModelPropertyRecordSchemas(\n modelName: string,\n modelFileId: string | undefined,\n db: Db,\n): Promise<Map<string, PropertyRecordSchema>> {\n const key = JSON.stringify([modelName, modelFileId ?? null])\n const existing = inFlight.get(key)\n if (existing) return existing\n const read = readModelPropertyRecordSchemas(modelName, modelFileId, db)\n inFlight.set(key, read)\n const forget = () => {\n if (inFlight.get(key) === read) inFlight.delete(key)\n }\n read.then(forget, forget)\n return read\n}\n\nconst readModelPropertyRecordSchemas = async (\n modelName: string,\n modelFileId: string | undefined,\n db: Db,\n): Promise<Map<string, PropertyRecordSchema>> => {\n const schemas = new Map<string, PropertyRecordSchema>()\n const timing = timingMarks()\n const modelRecord = await resolveModelRecord(modelName, { modelFileId }, db)\n timing.mark('model record')\n if (!modelRecord?.id) return schemas\n\n const propertyRecords: (typeof properties.$inferSelect)[] = await db\n .select()\n .from(properties)\n .where(eq(properties.modelId, modelRecord.id))\n // properties has refModelId but not the ref model's name\n const refModelIds = [\n ...new Set(propertyRecords.map((r) => r.refModelId).filter((id): id is number => id != null)),\n ]\n const refModelNames = new Map<number, string>()\n if (refModelIds.length > 0) {\n const refModelRows = await db\n .select({ id: models.id, name: models.name })\n .from(models)\n .where(inArray(models.id, refModelIds))\n for (const row of refModelRows as { id: number; name: string }[]) refModelNames.set(row.id, row.name)\n }\n timing.mark('properties')\n // Validation rules (enum, pattern, ...) aren't in the properties table\n const validationRules = await resolveModelValidationRules(\n modelName,\n propertyRecords.map((r) => r.name),\n { modelFileId: modelRecord.schemaFileId ?? modelFileId },\n )\n\n timing.mark('validation rules')\n timing.log(`model ${modelName} property schemas`)\n\n for (const propRecord of propertyRecords) {\n if (schemas.has(propRecord.name)) continue\n const validation = validationRules.get(propRecord.name)\n schemas.set(propRecord.name, {\n id: propRecord.id,\n dataType: propRecord.dataType,\n ref: propRecord.refModelId != null ? refModelNames.get(propRecord.refModelId) : undefined,\n refValueType: propRecord.refValueType || undefined,\n storageType: propRecord.storageType || undefined,\n localStorageDir: propRecord.localStorageDir || undefined,\n filenameSuffix: propRecord.filenameSuffix || undefined,\n required: (propRecord as { required?: boolean }).required ?? undefined,\n ...(validation ? { validation } : {}),\n })\n }\n return schemas\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA;;;;AAIG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsD;AAE9E;;;;AAIG;SACa,8BAA8B,CAC5C,SAAiB,EACjB,WAA+B,EAC/B,EAAM,EAAA;AAEN,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,IAAA,IAAI,QAAQ;AAAE,QAAA,OAAO,QAAQ;IAC7B,MAAM,IAAI,GAAG,8BAA8B,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;AACvE,IAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,MAAK;AAClB,QAAA,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;AAAE,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACtD,IAAA,CAAC;AACD,IAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACzB,IAAA,OAAO,IAAI;AACb;AAEA,MAAM,8BAA8B,GAAG,OACrC,SAAiB,EACjB,WAA+B,EAC/B,EAAM,KACwC;AAC9C,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC;AACvD,IAAA,MAAM,MAAM,GAAG,WAAW,EAAE;AAC5B,IAAA,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAC5E,IAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3B,IAAI,CAAC,WAAW,EAAE,EAAE;AAAE,QAAA,OAAO,OAAO;IAEpC,MAAM,eAAe,GAAuC,MAAM;AAC/D,SAAA,MAAM;SACN,IAAI,CAAC,UAAU;AACf,SAAA,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;;AAEhD,IAAA,MAAM,WAAW,GAAG;AAClB,QAAA,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAmB,EAAE,IAAI,IAAI,CAAC,CAAC;KAC9F;AACD,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB;AAC/C,IAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,YAAY,GAAG,MAAM;AACxB,aAAA,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC3C,IAAI,CAAC,MAAM;aACX,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,YAA8C;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;IACvG;AACA,IAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;AAEzB,IAAA,MAAM,eAAe,GAAG,MAAM,2BAA2B,CACvD,SAAS,EACT,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAClC,EAAE,WAAW,EAAE,WAAW,CAAC,YAAY,IAAI,WAAW,EAAE,CACzD;AAED,IAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC/B,IAAA,MAAM,CAAC,GAAG,CAAC,SAAS,SAAS,CAAA,iBAAA,CAAmB,CAAC;AAEjD,IAAA,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;AACxC,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE;QAClC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;YAC3B,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,GAAG,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS;AACzF,YAAA,YAAY,EAAE,UAAU,CAAC,YAAY,IAAI,SAAS;AAClD,YAAA,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,SAAS;AAChD,YAAA,eAAe,EAAE,UAAU,CAAC,eAAe,IAAI,SAAS;AACxD,YAAA,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,SAAS;AACtD,YAAA,QAAQ,EAAG,UAAqC,CAAC,QAAQ,IAAI,SAAS;AACtE,YAAA,IAAI,UAAU,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACtC,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,OAAO;AAChB,CAAC;;"}
|