@seedprotocol/sdk 0.4.32 → 0.5.1
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-BDgc7c4T.js +485 -0
- package/dist/BasePathResolver-BDgc7c4T.js.map +1 -0
- package/dist/{ModelProperty-e_hXSFvf.js → ModelProperty-D-ysg8zA.js} +37 -43
- package/dist/ModelProperty-D-ysg8zA.js.map +1 -0
- package/dist/{Schema-DonRkUOJ.js → Schema-CyCftnKI.js} +40 -40
- package/dist/{Schema-DonRkUOJ.js.map → Schema-CyCftnKI.js.map} +1 -1
- package/dist/{SchemaValidationService-DcmfhQae.js → SchemaValidationService-POM6jHbJ.js} +9 -5
- package/dist/{SchemaValidationService-DcmfhQae.js.map → SchemaValidationService-POM6jHbJ.js.map} +1 -1
- package/dist/{backfillMetadataPropertyIds-CKTfvFgQ.js → backfillMetadataPropertyIds-DzZw57iJ.js} +3 -11
- package/dist/{backfillMetadataPropertyIds-CKTfvFgQ.js.map → backfillMetadataPropertyIds-DzZw57iJ.js.map} +1 -1
- package/dist/cjs/{ModelProperty-BQYU5hPQ.js → ModelProperty-CmuGJvyi.js} +25 -26
- package/dist/cjs/{ModelProperty-BQYU5hPQ.js.map → ModelProperty-CmuGJvyi.js.map} +1 -1
- package/dist/cjs/{Schema-BcRHcQ0W.js → Schema-gpFnZMhB.js} +28 -29
- package/dist/cjs/{Schema-BcRHcQ0W.js.map → Schema-gpFnZMhB.js.map} +1 -1
- package/dist/cjs/{SchemaValidationService-CQNDgyZl.js → SchemaValidationService-E3xTSRai.js} +9 -10
- package/dist/cjs/{SchemaValidationService-CQNDgyZl.js.map → SchemaValidationService-E3xTSRai.js.map} +1 -1
- package/dist/cjs/{backfillMetadataPropertyIds-Dn4oVmEv.js → backfillMetadataPropertyIds-_bivrvRs.js} +11 -12
- package/dist/cjs/{backfillMetadataPropertyIds-Dn4oVmEv.js.map → backfillMetadataPropertyIds-_bivrvRs.js.map} +1 -1
- package/dist/cjs/eas-BwDKJmlb.js +112 -0
- package/dist/cjs/eas-BwDKJmlb.js.map +1 -0
- package/dist/cjs/{getItem-DpnPrzl3.js → getItem-MShQw3sz.js} +11 -12
- package/dist/cjs/{getItem-DpnPrzl3.js.map → getItem-MShQw3sz.js.map} +1 -1
- package/dist/cjs/{getPublishPayload-CGKMEL3H.js → getPublishPayload-C1nOOXp_.js} +93 -83
- package/dist/cjs/getPublishPayload-C1nOOXp_.js.map +1 -0
- package/dist/cjs/{getPublishUploads-DeI0f2UN.js → getPublishUploads-BjgxgrKD.js} +17 -18
- package/dist/cjs/{getPublishUploads-DeI0f2UN.js.map → getPublishUploads-BjgxgrKD.js.map} +1 -1
- package/dist/cjs/{getSegmentedItemProperties-BgS_FhAx.js → getSegmentedItemProperties-Cuw7wcxb.js} +64 -15
- package/dist/cjs/getSegmentedItemProperties-Cuw7wcxb.js.map +1 -0
- package/dist/cjs/{index-BnAqr2le.js → index-9Z2FOvLD.js} +12 -13
- package/dist/cjs/index-9Z2FOvLD.js.map +1 -0
- package/dist/cjs/{index-ByozbTn_.js → index-vk2DeF2D.js} +1237 -3235
- package/dist/cjs/index-vk2DeF2D.js.map +1 -0
- package/dist/cjs/index.browser-BSf8HpnU.js +22 -0
- package/dist/cjs/index.browser-BSf8HpnU.js.map +1 -0
- package/dist/cjs/{ownership-CsWuaNfH.js → ownership-DhWda0J9.js} +11 -25
- package/dist/cjs/{ownership-CsWuaNfH.js.map → ownership-DhWda0J9.js.map} +1 -1
- package/dist/cjs/{property-CeR45LMx.js → property-D3Ww2_Qh.js} +13 -14
- package/dist/cjs/{property-CeR45LMx.js.map → property-D3Ww2_Qh.js.map} +1 -1
- package/dist/cjs/{syncDbWithEas-CA2Lum5V.js → syncDbWithEas-Dht3_7UD.js} +26 -39
- package/dist/cjs/syncDbWithEas-Dht3_7UD.js.map +1 -0
- package/dist/configurePlatform-R5neRbQ9.js +27 -0
- package/dist/configurePlatform-R5neRbQ9.js.map +1 -0
- package/dist/constants-B5S5JPDK.js +660 -0
- package/dist/constants-B5S5JPDK.js.map +1 -0
- package/dist/constants-DMHTYMgJ.js +120 -0
- package/dist/constants-DMHTYMgJ.js.map +1 -0
- package/dist/db-Cvh84NY7.js +1972 -0
- package/dist/db-Cvh84NY7.js.map +1 -0
- package/dist/eas-D9b7z2Wn.js +68 -0
- package/dist/eas-D9b7z2Wn.js.map +1 -0
- package/dist/{getItem-GOXWo_Iy.js → getItem-B81V3m4S.js} +10 -6
- package/dist/{getItem-GOXWo_Iy.js.map → getItem-B81V3m4S.js.map} +1 -1
- package/dist/{getPublishPayload-D16enahU.js → getPublishPayload-CNYsn8-6.js} +87 -74
- package/dist/getPublishPayload-CNYsn8-6.js.map +1 -0
- package/dist/{getPublishUploads-wGqH19UY.js → getPublishUploads-D9rPHkB7.js} +14 -10
- package/dist/{getPublishUploads-wGqH19UY.js.map → getPublishUploads-D9rPHkB7.js.map} +1 -1
- package/dist/{getSegmentedItemProperties-Be3kYWY3.js → getSegmentedItemProperties-Bg3_b-b1.js} +18 -15
- package/dist/getSegmentedItemProperties-Bg3_b-b1.js.map +1 -0
- package/dist/{index-BcXKZQpX.js → index--F3Wolt5.js} +1171 -5452
- package/dist/index--F3Wolt5.js.map +1 -0
- package/dist/{index-BFyMxc7e.js → index-QMrBK-L3.js} +2 -2
- package/dist/index-QMrBK-L3.js.map +1 -0
- package/dist/index-oi4roUVf.js +22 -0
- package/dist/index-oi4roUVf.js.map +1 -0
- package/dist/index.node-Bow8kHew.js +503 -0
- package/dist/index.node-Bow8kHew.js.map +1 -0
- package/dist/main.cjs +16 -15
- package/dist/main.cjs.map +1 -1
- package/dist/main.js +31 -22
- package/dist/main.js.map +1 -1
- package/dist/node.js +37 -363
- package/dist/node.js.map +1 -1
- package/dist/{ownership-C17YhE7J.js → ownership-BF_ZUKIp.js} +13 -9
- package/dist/{ownership-C17YhE7J.js.map → ownership-BF_ZUKIp.js.map} +1 -1
- package/dist/platform.browser.js +3499 -0
- package/dist/platform.browser.js.map +1 -0
- package/dist/platform.node.js +19 -0
- package/dist/platform.node.js.map +1 -0
- package/dist/{property-CRAau-Q-.js → property-BdyDfcSc.js} +14 -11
- package/dist/property-BdyDfcSc.js.map +1 -0
- package/dist/src/Item/Item.d.ts.map +1 -1
- package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +1 -1
- package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
- package/dist/src/Model/service/modelMachine.d.ts +1 -1
- package/dist/src/browser/db/Db.d.ts +17 -18
- package/dist/src/browser/db/Db.d.ts.map +1 -1
- package/dist/src/browser/helpers/ArweaveClient.d.ts +10 -27
- package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -1
- package/dist/src/browser/helpers/EasClient.d.ts +6 -4
- package/dist/src/browser/helpers/EasClient.d.ts.map +1 -1
- package/dist/src/browser/helpers/FileManager.d.ts +27 -26
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/browser/helpers/PathResolver.d.ts +6 -5
- package/dist/src/browser/helpers/PathResolver.d.ts.map +1 -1
- package/dist/src/browser/helpers/QueryClient.d.ts +6 -5
- package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -1
- package/dist/src/browser/workers/filesDownload.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.map +1 -1
- package/dist/src/db/Db/BaseDb.d.ts +6 -26
- package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
- package/dist/src/db/write/createMetadata.d.ts.map +1 -1
- package/dist/src/db/write/updateMetadata.d.ts.map +1 -1
- package/dist/src/eas.d.ts +4 -37
- package/dist/src/eas.d.ts.map +1 -1
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts +1 -101
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -1
- package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts +1 -51
- package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts.map +1 -1
- package/dist/src/helpers/ArweaveClient/index.d.ts +2 -2
- package/dist/src/helpers/ArweaveClient/index.d.ts.map +1 -1
- package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts +1 -15
- package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts.map +1 -1
- package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts +1 -22
- package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts.map +1 -1
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts +1 -9
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +4 -2
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
- package/dist/src/helpers/FileManager/IFileManager.d.ts +44 -0
- package/dist/src/helpers/FileManager/IFileManager.d.ts.map +1 -0
- package/dist/src/helpers/PathResolver/BasePathResolver.d.ts +16 -12
- package/dist/src/helpers/PathResolver/BasePathResolver.d.ts.map +1 -1
- package/dist/src/helpers/PathResolver/IPathResolver.d.ts +16 -0
- package/dist/src/helpers/PathResolver/IPathResolver.d.ts.map +1 -0
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts +1 -6
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +1 -1
- package/dist/src/helpers/constants.d.ts +4 -22
- package/dist/src/helpers/constants.d.ts.map +1 -1
- package/dist/src/helpers/db.d.ts.map +1 -1
- package/dist/src/helpers/easPropertyCanonical.d.ts +1 -14
- package/dist/src/helpers/easPropertyCanonical.d.ts.map +1 -1
- package/dist/src/helpers/easRevokedFilter.d.ts +1 -9
- package/dist/src/helpers/easRevokedFilter.d.ts.map +1 -1
- package/dist/src/helpers/easUid.d.ts +1 -12
- package/dist/src/helpers/easUid.d.ts.map +1 -1
- package/dist/src/helpers/ethereumUtils.d.ts +5 -0
- package/dist/src/helpers/ethereumUtils.d.ts.map +1 -0
- package/dist/src/helpers/file/fetchAll/index.d.ts +1 -1
- package/dist/src/helpers/file/fetchAll/index.d.ts.map +1 -1
- package/dist/src/helpers/gateway/gatewayState.d.ts +2 -0
- package/dist/src/helpers/gateway/gatewayState.d.ts.map +1 -0
- package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts +2 -0
- package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts.map +1 -0
- package/dist/src/helpers/gateway/seedGatewayConfig.d.ts +2 -0
- package/dist/src/helpers/gateway/seedGatewayConfig.d.ts.map +1 -0
- package/dist/src/helpers/generateId.d.ts +2 -0
- package/dist/src/helpers/generateId.d.ts.map +1 -0
- package/dist/src/helpers/getSchemaForItemProperty.d.ts +1 -1
- package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +1 -1
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -1
- package/dist/src/helpers/index.d.ts +15 -10
- package/dist/src/helpers/index.d.ts.map +1 -1
- package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts +7 -0
- package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts.map +1 -0
- package/dist/src/helpers/mediaRef.d.ts.map +1 -1
- package/dist/src/helpers/property/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +9 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interfaces/IDb.d.ts +11 -0
- package/dist/src/interfaces/IDb.d.ts.map +1 -1
- package/dist/src/node/db/Db.d.ts +22 -37
- package/dist/src/node/db/Db.d.ts.map +1 -1
- package/dist/src/node/helpers/ArweaveClient.d.ts +4 -30
- package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -1
- package/dist/src/node/helpers/EasClient.d.ts +4 -6
- package/dist/src/node/helpers/EasClient.d.ts.map +1 -1
- package/dist/src/node/helpers/FileManager.d.ts +26 -25
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
- package/dist/src/node/helpers/PathResolver.d.ts +6 -5
- package/dist/src/node/helpers/PathResolver.d.ts.map +1 -1
- package/dist/src/node/helpers/QueryClient.d.ts +4 -6
- package/dist/src/node/helpers/QueryClient.d.ts.map +1 -1
- package/dist/src/node/helpers/scripts.d.ts +5 -7
- package/dist/src/node/helpers/scripts.d.ts.map +1 -1
- package/dist/src/node/index.d.ts +2 -9
- package/dist/src/node/index.d.ts.map +1 -1
- package/dist/src/node/webpack/index.d.ts +1 -1
- package/dist/src/node/webpack/index.d.ts.map +1 -1
- package/dist/src/platform/configurePlatform.d.ts +6 -0
- package/dist/src/platform/configurePlatform.d.ts.map +1 -0
- package/dist/src/platform/index.browser.d.ts +3 -0
- package/dist/src/platform/index.browser.d.ts.map +1 -0
- package/dist/src/platform/index.d.ts +9 -0
- package/dist/src/platform/index.d.ts.map +1 -0
- package/dist/src/platform/index.node.d.ts +3 -0
- package/dist/src/platform/index.node.d.ts.map +1 -0
- package/dist/src/platform/types.d.ts +14 -0
- package/dist/src/platform/types.d.ts.map +1 -0
- package/dist/src/stores/eas.d.ts +1 -18
- package/dist/src/stores/eas.d.ts.map +1 -1
- package/dist/src/testing/platformTestHandle.d.ts +8 -0
- package/dist/src/testing/platformTestHandle.d.ts.map +1 -0
- package/dist/src/types/gateway.d.ts +2 -0
- package/dist/src/types/gateway.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/item.d.ts +1 -1
- package/dist/src/types/item.d.ts.map +1 -1
- package/dist/src/types/machines.d.ts +10 -0
- package/dist/src/types/machines.d.ts.map +1 -1
- package/dist/src/types/seedProtocol.d.ts +1 -1
- package/dist/src/types/seedProtocol.d.ts.map +1 -1
- package/dist/src/vite/index.d.ts +2 -47
- package/dist/src/vite/index.d.ts.map +1 -1
- package/dist/{syncDbWithEas-CB5aXPtf.js → syncDbWithEas-DMOJHtkP.js} +20 -15
- package/dist/syncDbWithEas-DMOJHtkP.js.map +1 -0
- package/dist/{updateSeedRevokedAt-BIu5Q4Po.js → updateSeedRevokedAt-Ba0OhDQj.js} +2 -2
- package/dist/{updateSeedRevokedAt-BIu5Q4Po.js.map → updateSeedRevokedAt-Ba0OhDQj.js.map} +1 -1
- package/dist/vite.cjs +5 -481
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.js +1 -483
- package/dist/vite.js.map +1 -1
- package/package.json +42 -37
- package/dist/ArweaveClient-CZpZgmR2.js +0 -204
- package/dist/ArweaveClient-CZpZgmR2.js.map +0 -1
- package/dist/ArweaveClient-Cs7AL9dp.js +0 -204
- package/dist/ArweaveClient-Cs7AL9dp.js.map +0 -1
- package/dist/Db-CF6R7HIy.js +0 -2098
- package/dist/Db-CF6R7HIy.js.map +0 -1
- package/dist/Db-CZkONsdT.js +0 -248
- package/dist/Db-CZkONsdT.js.map +0 -1
- package/dist/EasClient-PXOzSzPG.js +0 -29
- package/dist/EasClient-PXOzSzPG.js.map +0 -1
- package/dist/EasClient-qfTiM2we.js +0 -29
- package/dist/EasClient-qfTiM2we.js.map +0 -1
- package/dist/FileManager-5GkHtxF7.js +0 -1256
- package/dist/FileManager-5GkHtxF7.js.map +0 -1
- package/dist/FileManager-jORQ8Bb6.js +0 -177
- package/dist/FileManager-jORQ8Bb6.js.map +0 -1
- package/dist/ModelProperty-e_hXSFvf.js.map +0 -1
- package/dist/PathResolver-B4_X69Rd.js +0 -204
- package/dist/PathResolver-B4_X69Rd.js.map +0 -1
- package/dist/PathResolver-Dz0RVGIz.js +0 -78
- package/dist/PathResolver-Dz0RVGIz.js.map +0 -1
- package/dist/QueryClient-CXHZ239d.js +0 -51
- package/dist/QueryClient-CXHZ239d.js.map +0 -1
- package/dist/QueryClient-D_UK4YLm.js +0 -35
- package/dist/QueryClient-D_UK4YLm.js.map +0 -1
- package/dist/arweave-default-shim.js +0 -6
- package/dist/cjs/getPublishPayload-CGKMEL3H.js.map +0 -1
- package/dist/cjs/getSegmentedItemProperties-BgS_FhAx.js.map +0 -1
- package/dist/cjs/index-BnAqr2le.js.map +0 -1
- package/dist/cjs/index-ByozbTn_.js.map +0 -1
- package/dist/cjs/syncDbWithEas-CA2Lum5V.js.map +0 -1
- package/dist/debug-default-shim.js +0 -27
- package/dist/getPublishPayload-D16enahU.js.map +0 -1
- package/dist/getSegmentedItemProperties-Be3kYWY3.js.map +0 -1
- package/dist/index-BFyMxc7e.js.map +0 -1
- package/dist/index-BcXKZQpX.js.map +0 -1
- package/dist/index-C9p-skT3.js +0 -18
- package/dist/index-C9p-skT3.js.map +0 -1
- package/dist/property-CRAau-Q-.js.map +0 -1
- package/dist/queries-Ct7CcQ3g.js +0 -16
- package/dist/queries-Ct7CcQ3g.js.map +0 -1
- package/dist/src/Item/queries.d.ts +0 -27
- package/dist/src/Item/queries.d.ts.map +0 -1
- package/dist/src/graphql/fragments/Attestation.d.ts +0 -2
- package/dist/src/graphql/fragments/Attestation.d.ts.map +0 -1
- package/dist/src/graphql/fragments/Schema.d.ts +0 -2
- package/dist/src/graphql/fragments/Schema.d.ts.map +0 -1
- package/dist/src/graphql/fragments/index.d.ts +0 -3
- package/dist/src/graphql/fragments/index.d.ts.map +0 -1
- package/dist/src/graphql/gql/fragment-masking.d.ts +0 -20
- package/dist/src/graphql/gql/fragment-masking.d.ts.map +0 -1
- package/dist/src/graphql/gql/gql.d.ts +0 -107
- package/dist/src/graphql/gql/gql.d.ts.map +0 -1
- package/dist/src/graphql/gql/graphql.d.ts +0 -2969
- package/dist/src/graphql/gql/graphql.d.ts.map +0 -1
- package/dist/src/graphql/gql/index.d.ts +0 -3
- package/dist/src/graphql/gql/index.d.ts.map +0 -1
- package/dist/src/helpers/ArweaveClient/queries.d.ts +0 -13
- package/dist/src/helpers/ArweaveClient/queries.d.ts.map +0 -1
- package/dist/src/helpers/file/queries.d.ts +0 -9
- package/dist/src/helpers/file/queries.d.ts.map +0 -1
- package/dist/src/helpers/image/queries.d.ts +0 -7
- package/dist/src/helpers/image/queries.d.ts.map +0 -1
- package/dist/src/node/codegen/drizzle.d.ts +0 -5
- package/dist/src/node/codegen/drizzle.d.ts.map +0 -1
- package/dist/src/node/codegen/index.d.ts +0 -2
- package/dist/src/node/codegen/index.d.ts.map +0 -1
- package/dist/src/node/codegen/ts-to-proto.d.ts +0 -9
- package/dist/src/node/codegen/ts-to-proto.d.ts.map +0 -1
- package/dist/src/node/db/node.app.db.config.d.ts +0 -4
- package/dist/src/node/db/node.app.db.config.d.ts.map +0 -1
- package/dist/src/node/helpers/index.d.ts +0 -3
- package/dist/src/node/helpers/index.d.ts.map +0 -1
- package/dist/src/vite/arweave-default-shim.d.ts +0 -4
- package/dist/src/vite/arweave-default-shim.d.ts.map +0 -1
- package/dist/src/vite/debug-default-shim.d.ts +0 -3
- package/dist/src/vite/debug-default-shim.d.ts.map +0 -1
- package/dist/src/vite/easFix.d.ts +0 -2
- package/dist/src/vite/easFix.d.ts.map +0 -1
- package/dist/syncDbWithEas-CB5aXPtf.js.map +0 -1
- /package/dist/db/drizzle/{drizzle/0000_married_malice.sql → 0000_married_malice.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0001_sweet_bruce_banner.sql → 0001_sweet_bruce_banner.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0002_bitter_proudstar.sql → 0002_bitter_proudstar.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0003_cultured_senator_kelly.sql → 0003_cultured_senator_kelly.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0004_add_publisher_to_seeds.sql → 0004_add_publisher_to_seeds.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0005_bright_lily_hollister.sql → 0005_bright_lily_hollister.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0006_add_publisher_to_versions_and_metadata.sql → 0006_add_publisher_to_versions_and_metadata.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0007_add_required_to_properties.sql → 0007_add_required_to_properties.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0008_add_revoked_at_to_seeds.sql → 0008_add_revoked_at_to_seeds.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0009_happy_namor.sql → 0009_happy_namor.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0010_add_arweave_l1_finalize_jobs.sql → 0010_add_arweave_l1_finalize_jobs.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0011_normalize_placeholder_uids.sql → 0011_normalize_placeholder_uids.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0012_html_embedded_image_co_publish.sql → 0012_html_embedded_image_co_publish.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/0013_eas_sync_processes.sql → 0013_eas_sync_processes.sql} +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0000_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0001_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0002_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0003_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0004_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0005_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0006_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0007_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0008_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0009_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0010_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/0013_snapshot.json +0 -0
- /package/dist/db/drizzle/{drizzle/meta → meta}/_journal.json +0 -0
|
@@ -0,0 +1,660 @@
|
|
|
1
|
+
import debug from 'debug';
|
|
2
|
+
import { B as BaseDb, f as metadata, a as BaseFileManager } from './BasePathResolver-BDgc7c4T.js';
|
|
3
|
+
import { BaseArweaveClient } from '@seedprotocol/arweave';
|
|
4
|
+
import '@seedprotocol/eas';
|
|
5
|
+
import 'xstate';
|
|
6
|
+
import 'pluralize';
|
|
7
|
+
import { Type } from '@sinclair/typebox';
|
|
8
|
+
import { and, eq } from 'drizzle-orm';
|
|
9
|
+
import 'nanoid';
|
|
10
|
+
import 'nanoid-dictionary';
|
|
11
|
+
|
|
12
|
+
/** Default maximum length for Text properties when not explicitly set. Html holds arbitrary-length content and does not use this limit. */
|
|
13
|
+
const DEFAULT_TEXT_MAX_LENGTH = 255;
|
|
14
|
+
/**
|
|
15
|
+
* TypeBox schema for ValidationRules
|
|
16
|
+
*/
|
|
17
|
+
const TValidationRules = Type.Object({
|
|
18
|
+
pattern: Type.Optional(Type.String()),
|
|
19
|
+
minLength: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
20
|
+
maxLength: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
21
|
+
enum: Type.Optional(Type.Array(Type.Any())),
|
|
22
|
+
custom: Type.Optional(Type.String()),
|
|
23
|
+
}, { additionalProperties: true });
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Enum for all property data types
|
|
27
|
+
*/
|
|
28
|
+
var ModelPropertyDataTypes;
|
|
29
|
+
(function (ModelPropertyDataTypes) {
|
|
30
|
+
ModelPropertyDataTypes["Text"] = "Text";
|
|
31
|
+
ModelPropertyDataTypes["Number"] = "Number";
|
|
32
|
+
ModelPropertyDataTypes["List"] = "List";
|
|
33
|
+
ModelPropertyDataTypes["Relation"] = "Relation";
|
|
34
|
+
ModelPropertyDataTypes["Image"] = "Image";
|
|
35
|
+
ModelPropertyDataTypes["Json"] = "Json";
|
|
36
|
+
ModelPropertyDataTypes["File"] = "File";
|
|
37
|
+
ModelPropertyDataTypes["Boolean"] = "Boolean";
|
|
38
|
+
ModelPropertyDataTypes["Date"] = "Date";
|
|
39
|
+
ModelPropertyDataTypes["Html"] = "Html";
|
|
40
|
+
})(ModelPropertyDataTypes || (ModelPropertyDataTypes = {}));
|
|
41
|
+
/** Known data types in lowercase for normalization */
|
|
42
|
+
const DATA_TYPE_LOWER_MAP = {
|
|
43
|
+
text: 'Text',
|
|
44
|
+
string: 'Text', // JSON Schema convention
|
|
45
|
+
number: 'Number',
|
|
46
|
+
list: 'List',
|
|
47
|
+
relation: 'Relation',
|
|
48
|
+
image: 'Image',
|
|
49
|
+
json: 'Json',
|
|
50
|
+
file: 'File',
|
|
51
|
+
boolean: 'Boolean',
|
|
52
|
+
date: 'Date',
|
|
53
|
+
html: 'Html',
|
|
54
|
+
blob: 'Blob',
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Normalize dataType to canonical PascalCase form.
|
|
58
|
+
* Accepts lowercase (e.g. 'text') or mixed case and returns 'Text'.
|
|
59
|
+
* Use when ingesting dataType from JSON schema files.
|
|
60
|
+
*/
|
|
61
|
+
function normalizeDataType(value) {
|
|
62
|
+
if (!value || typeof value !== 'string')
|
|
63
|
+
return value ?? '';
|
|
64
|
+
const lower = value.toLowerCase().trim();
|
|
65
|
+
return DATA_TYPE_LOWER_MAP[lower] ?? value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
|
|
66
|
+
}
|
|
67
|
+
const TPropertyDataType = Type.Union([
|
|
68
|
+
Type.Literal(ModelPropertyDataTypes.Text),
|
|
69
|
+
Type.Literal(ModelPropertyDataTypes.Number),
|
|
70
|
+
Type.Literal(ModelPropertyDataTypes.List),
|
|
71
|
+
Type.Literal(ModelPropertyDataTypes.Relation),
|
|
72
|
+
Type.Literal(ModelPropertyDataTypes.Image),
|
|
73
|
+
Type.Literal(ModelPropertyDataTypes.Json),
|
|
74
|
+
Type.Literal(ModelPropertyDataTypes.File),
|
|
75
|
+
Type.Literal(ModelPropertyDataTypes.Boolean),
|
|
76
|
+
Type.Literal(ModelPropertyDataTypes.Date),
|
|
77
|
+
Type.Literal(ModelPropertyDataTypes.Html),
|
|
78
|
+
]);
|
|
79
|
+
const TStorageType = Type.Union([
|
|
80
|
+
Type.Literal('ItemStorage'), // Looks for a storageTransactionId property on the item
|
|
81
|
+
Type.Literal('PropertyStorage'), // Looks for a storageTransactionId value on the property
|
|
82
|
+
]);
|
|
83
|
+
/** How publish handles `data:image/*` URIs inside Html storage. Only applies when `dataType === 'Html'`. */
|
|
84
|
+
const THtmlEmbeddedDataUriPolicy = Type.Union([
|
|
85
|
+
Type.Literal('materialize'),
|
|
86
|
+
Type.Literal('preserve'),
|
|
87
|
+
]);
|
|
88
|
+
const TProperty = Type.Object({
|
|
89
|
+
id: Type.Optional(Type.String()), // schemaFileId (string) - public ID
|
|
90
|
+
_dbId: Type.Optional(Type.Number()), // Database integer ID - internal only
|
|
91
|
+
name: Type.Optional(Type.String()),
|
|
92
|
+
dataType: TPropertyDataType,
|
|
93
|
+
ref: Type.Optional(Type.String()),
|
|
94
|
+
// modelId: string (modelFileId) in code; number only for DB foreign keys when resolved
|
|
95
|
+
modelId: Type.Optional(Type.Union([Type.Number(), Type.String()])),
|
|
96
|
+
modelName: Type.Optional(Type.String()),
|
|
97
|
+
refModelId: Type.Optional(Type.Number()),
|
|
98
|
+
refModelName: Type.Optional(Type.String()),
|
|
99
|
+
refValueType: Type.Optional(TPropertyDataType),
|
|
100
|
+
storageType: Type.Optional(TStorageType),
|
|
101
|
+
localStorageDir: Type.Optional(Type.String()),
|
|
102
|
+
filenameSuffix: Type.Optional(Type.String()),
|
|
103
|
+
validation: Type.Optional(TValidationRules),
|
|
104
|
+
required: Type.Optional(Type.Boolean()),
|
|
105
|
+
/** When set on an Html property: `materialize` uploads embedded images as Image seeds and rewrites src; `preserve` leaves data URIs. */
|
|
106
|
+
htmlEmbeddedDataUriPolicy: Type.Optional(THtmlEmbeddedDataUriPolicy),
|
|
107
|
+
});
|
|
108
|
+
const TPropertyConstructor = Type.Function([
|
|
109
|
+
Type.Optional(Type.Union([Type.String(), TStorageType, Type.Undefined()])),
|
|
110
|
+
Type.Optional(Type.Union([Type.String(), TPropertyDataType])),
|
|
111
|
+
Type.Optional(Type.Union([Type.String(), Type.Boolean()])),
|
|
112
|
+
], TProperty);
|
|
113
|
+
const TPropertyDefs = Type.Record(TPropertyDataType, TPropertyConstructor);
|
|
114
|
+
function htmlPropertyFactory(opts) {
|
|
115
|
+
return {
|
|
116
|
+
dataType: ModelPropertyDataTypes.Html,
|
|
117
|
+
...(opts?.htmlEmbeddedDataUriPolicy
|
|
118
|
+
? { htmlEmbeddedDataUriPolicy: opts.htmlEmbeddedDataUriPolicy }
|
|
119
|
+
: {}),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const Property = {
|
|
123
|
+
Text: (storageType, localStorageDir, filenameSuffix) => ({
|
|
124
|
+
dataType: ModelPropertyDataTypes.Text,
|
|
125
|
+
storageType,
|
|
126
|
+
localStorageDir,
|
|
127
|
+
filenameSuffix,
|
|
128
|
+
TObject: Type.String(),
|
|
129
|
+
}),
|
|
130
|
+
Json: () => ({ dataType: ModelPropertyDataTypes.Json }),
|
|
131
|
+
File: () => ({ dataType: ModelPropertyDataTypes.File }),
|
|
132
|
+
Number: () => ({ dataType: ModelPropertyDataTypes.Number }),
|
|
133
|
+
/**
|
|
134
|
+
* Create a List property. refValueType is required; ref is required only for list of relations.
|
|
135
|
+
* @param refValueType - Element type: 'Text', 'Number', 'Relation', etc.
|
|
136
|
+
* @param ref - Model name when refValueType is 'Relation' (optional for primitives)
|
|
137
|
+
* @example List('Text') - list of strings
|
|
138
|
+
* @example List('Relation', 'Tag') - list of relations to Tag model
|
|
139
|
+
*/
|
|
140
|
+
List: (refValueType, ref) => ({
|
|
141
|
+
dataType: ModelPropertyDataTypes.List,
|
|
142
|
+
ref,
|
|
143
|
+
refValueType,
|
|
144
|
+
}),
|
|
145
|
+
Relation: (ref, refValueType, required) => ({
|
|
146
|
+
dataType: ModelPropertyDataTypes.Relation,
|
|
147
|
+
ref,
|
|
148
|
+
refValueType,
|
|
149
|
+
required,
|
|
150
|
+
}),
|
|
151
|
+
Image: () => ({ dataType: ModelPropertyDataTypes.Image }),
|
|
152
|
+
Boolean: () => ({ dataType: ModelPropertyDataTypes.Boolean }),
|
|
153
|
+
Date: () => ({ dataType: ModelPropertyDataTypes.Date }),
|
|
154
|
+
Html: htmlPropertyFactory,
|
|
155
|
+
/** `Html` opts are not representable in `TPropertyConstructor`; keep runtime shape via double assert. */
|
|
156
|
+
};
|
|
157
|
+
const PropertyMetadataKey = Symbol('property');
|
|
158
|
+
const PropertyConstructor = (propertyType) => {
|
|
159
|
+
return function (parentClassPrototype, propertyKey) {
|
|
160
|
+
const existingProperties = Reflect.getMetadata(PropertyMetadataKey, parentClassPrototype) || [];
|
|
161
|
+
existingProperties.push({ propertyKey, propertyType });
|
|
162
|
+
Reflect.defineMetadata(PropertyMetadataKey, existingProperties, parentClassPrototype);
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
const Text = (storageType, srcDir, filenameSuffix) => PropertyConstructor(Property.Text(storageType, srcDir, filenameSuffix));
|
|
166
|
+
const Number = () => PropertyConstructor(Property.Number());
|
|
167
|
+
const Json = () => PropertyConstructor(Property.Json());
|
|
168
|
+
const File = () => PropertyConstructor(Property.File());
|
|
169
|
+
const Image = () => PropertyConstructor(Property.Image());
|
|
170
|
+
const Relation = (ref, refValueType, required) => PropertyConstructor(Property.Relation(ref, refValueType, required)); // Adjust for actual relation type
|
|
171
|
+
const List = (refValueType, ref) => PropertyConstructor(Property.List(refValueType, ref));
|
|
172
|
+
const Boolean = () => PropertyConstructor(Property.Boolean());
|
|
173
|
+
const Date$1 = () => PropertyConstructor(Property.Date());
|
|
174
|
+
const Html = (opts) => PropertyConstructor(htmlPropertyFactory(opts));
|
|
175
|
+
|
|
176
|
+
/** Same rules as getCorrectId in helpers/index (avoid barrel circular import). */
|
|
177
|
+
function parseLocalIdOrUid(localIdOrUid) {
|
|
178
|
+
const id = { localId: undefined, uid: undefined };
|
|
179
|
+
if (!localIdOrUid)
|
|
180
|
+
return id;
|
|
181
|
+
if (localIdOrUid.length === 10) {
|
|
182
|
+
id.localId = localIdOrUid;
|
|
183
|
+
}
|
|
184
|
+
if (localIdOrUid.startsWith('0x') && localIdOrUid.length === 66) {
|
|
185
|
+
id.uid = localIdOrUid;
|
|
186
|
+
}
|
|
187
|
+
return id;
|
|
188
|
+
}
|
|
189
|
+
/** Relation/image refs may be string ids or `{ seedLocalId?, seedUid? }`. */
|
|
190
|
+
function normalizeRelationPropertyValue(value) {
|
|
191
|
+
if (value == null)
|
|
192
|
+
return undefined;
|
|
193
|
+
if (typeof value === 'string') {
|
|
194
|
+
const t = value.trim();
|
|
195
|
+
return t !== '' ? t : undefined;
|
|
196
|
+
}
|
|
197
|
+
if (typeof value === 'object' && value !== null) {
|
|
198
|
+
const o = value;
|
|
199
|
+
if (typeof o.seedLocalId === 'string' && o.seedLocalId.trim() !== '') {
|
|
200
|
+
return o.seedLocalId.trim();
|
|
201
|
+
}
|
|
202
|
+
if (typeof o.seedUid === 'string' && o.seedUid.trim() !== '') {
|
|
203
|
+
return o.seedUid.trim();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
/** getCorrectId only accepts 10-char local ids and 0x66 uids; local seed refs can be up to 21 chars. */
|
|
209
|
+
const LOCAL_SEED_REF = /^[a-zA-Z0-9_-]{10,21}$/;
|
|
210
|
+
/** Resolve seed ids from a single string (context propertyValue or DB row). */
|
|
211
|
+
function resolveSeedIdsFromRefString(s) {
|
|
212
|
+
const fromCorrect = parseLocalIdOrUid(s);
|
|
213
|
+
if (fromCorrect.localId || fromCorrect.uid) {
|
|
214
|
+
return { seedLocalId: fromCorrect.localId, seedUid: fromCorrect.uid };
|
|
215
|
+
}
|
|
216
|
+
if (LOCAL_SEED_REF.test(s) && !s.startsWith('0x')) {
|
|
217
|
+
return { seedLocalId: s };
|
|
218
|
+
}
|
|
219
|
+
return {};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const seedUidToStorageTransactionId = new Map();
|
|
223
|
+
const getStorageTransactionIdForSeedUid = async (seedUid) => {
|
|
224
|
+
if (seedUidToStorageTransactionId.has(seedUid)) {
|
|
225
|
+
return seedUidToStorageTransactionId.get(seedUid);
|
|
226
|
+
}
|
|
227
|
+
const appDb = BaseDb.getAppDb();
|
|
228
|
+
const results = (await appDb
|
|
229
|
+
.select({
|
|
230
|
+
storageTransactionId: metadata.propertyValue,
|
|
231
|
+
})
|
|
232
|
+
.from(metadata)
|
|
233
|
+
.where(and(eq(metadata.seedUid, seedUid), eq(metadata.propertyName, 'storageTransactionId'))));
|
|
234
|
+
if (!results || results.length === 0) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
seedUidToStorageTransactionId.set(seedUid, results[0].storageTransactionId);
|
|
238
|
+
return results[0].storageTransactionId;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
const logger$1 = debug('seedSdk:helpers:mediaRef');
|
|
242
|
+
/** Typical Arweave transaction id: 43 URL-safe base64 characters. */
|
|
243
|
+
const ARWEAVE_TX_ID = /^[a-zA-Z0-9_-]{43}$/;
|
|
244
|
+
function trimOrEmpty(raw) {
|
|
245
|
+
if (raw == null)
|
|
246
|
+
return '';
|
|
247
|
+
return typeof raw === 'string' ? raw.trim() : String(raw).trim();
|
|
248
|
+
}
|
|
249
|
+
function coalesceStringField(item, key) {
|
|
250
|
+
const v = item[key];
|
|
251
|
+
if (v == null)
|
|
252
|
+
return '';
|
|
253
|
+
if (typeof v === 'string')
|
|
254
|
+
return v.trim();
|
|
255
|
+
if (typeof v === 'number' || typeof v === 'boolean')
|
|
256
|
+
return String(v);
|
|
257
|
+
return '';
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Try JSON relation payloads and plain relation id strings.
|
|
261
|
+
*/
|
|
262
|
+
function unwrapRelationString(raw) {
|
|
263
|
+
const t = raw.trim();
|
|
264
|
+
if (!t)
|
|
265
|
+
return t;
|
|
266
|
+
try {
|
|
267
|
+
const parsed = JSON.parse(t);
|
|
268
|
+
const fromObj = normalizeRelationPropertyValue(parsed);
|
|
269
|
+
if (fromObj)
|
|
270
|
+
return fromObj;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// not JSON
|
|
274
|
+
}
|
|
275
|
+
return t;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Pure, sync classification of a media-related string from feeds or XML.
|
|
279
|
+
*/
|
|
280
|
+
function classifyMediaRef(raw, options) {
|
|
281
|
+
const s = trimOrEmpty(raw);
|
|
282
|
+
if (!s) {
|
|
283
|
+
return { kind: 'empty' };
|
|
284
|
+
}
|
|
285
|
+
const treatAs = options?.treatAs;
|
|
286
|
+
if (treatAs === 'url') {
|
|
287
|
+
return { kind: 'url', href: s };
|
|
288
|
+
}
|
|
289
|
+
if (treatAs === 'arweaveTx') {
|
|
290
|
+
return { kind: 'arweaveTxId', txId: s };
|
|
291
|
+
}
|
|
292
|
+
if (treatAs === 'seedUid') {
|
|
293
|
+
if (s.startsWith('0x') && s.length === 66) {
|
|
294
|
+
return { kind: 'seedUid', uid: s };
|
|
295
|
+
}
|
|
296
|
+
return { kind: 'unknown', raw: s };
|
|
297
|
+
}
|
|
298
|
+
if (s.startsWith('http://') || s.startsWith('https://') || s.startsWith('blob:') || s.startsWith('data:')) {
|
|
299
|
+
return { kind: 'url', href: s };
|
|
300
|
+
}
|
|
301
|
+
const unwrapped = unwrapRelationString(s);
|
|
302
|
+
const ids = resolveSeedIdsFromRefString(unwrapped);
|
|
303
|
+
if (ids.seedUid) {
|
|
304
|
+
return { kind: 'seedUid', uid: ids.seedUid };
|
|
305
|
+
}
|
|
306
|
+
if (ids.seedLocalId) {
|
|
307
|
+
return { kind: 'seedLocalId', localId: ids.seedLocalId };
|
|
308
|
+
}
|
|
309
|
+
if (unwrapped.startsWith('0x') && unwrapped.length === 66) {
|
|
310
|
+
return { kind: 'seedUid', uid: unwrapped };
|
|
311
|
+
}
|
|
312
|
+
if (ARWEAVE_TX_ID.test(unwrapped) && !unwrapped.startsWith('0x')) {
|
|
313
|
+
return { kind: 'arweaveTxId', txId: unwrapped };
|
|
314
|
+
}
|
|
315
|
+
return { kind: 'unknown', raw: s };
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Same as convertTxIdToImage but local to this module to avoid circular imports with helpers/index.
|
|
319
|
+
*/
|
|
320
|
+
async function tryLocalBlobUrlFromTxId(txId) {
|
|
321
|
+
const imageFilePath = BaseFileManager.getFilesPath('images', txId);
|
|
322
|
+
const fileExists = await BaseFileManager.pathExists(imageFilePath);
|
|
323
|
+
if (!fileExists) {
|
|
324
|
+
logger$1(`[tryLocalBlobUrlFromTxId] ${imageFilePath} does not exist`);
|
|
325
|
+
return undefined;
|
|
326
|
+
}
|
|
327
|
+
const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
|
|
328
|
+
let arrayBuffer;
|
|
329
|
+
if (buffer instanceof Blob) {
|
|
330
|
+
arrayBuffer = await buffer.arrayBuffer();
|
|
331
|
+
}
|
|
332
|
+
else if (buffer instanceof ArrayBuffer) {
|
|
333
|
+
arrayBuffer = buffer;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
const sliced = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
337
|
+
if (sliced instanceof SharedArrayBuffer) {
|
|
338
|
+
const uint8Array = new Uint8Array(sliced);
|
|
339
|
+
arrayBuffer = uint8Array.buffer.slice(0);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
arrayBuffer = sliced;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
const uint = new Uint8Array(arrayBuffer);
|
|
346
|
+
const imageBlob = new Blob([uint]);
|
|
347
|
+
return URL.createObjectURL(imageBlob);
|
|
348
|
+
}
|
|
349
|
+
async function resolveTxId(txId) {
|
|
350
|
+
const local = await tryLocalBlobUrlFromTxId(txId);
|
|
351
|
+
if (local) {
|
|
352
|
+
return { status: 'ready', href: local, source: 'localBlob' };
|
|
353
|
+
}
|
|
354
|
+
return {
|
|
355
|
+
status: 'ready',
|
|
356
|
+
href: BaseArweaveClient.getRawUrl(txId),
|
|
357
|
+
source: 'gateway',
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Resolve a classified media reference to a display URL (https/blob/data), using local files when present.
|
|
362
|
+
*/
|
|
363
|
+
async function resolveMediaRef(raw, options) {
|
|
364
|
+
const classification = classifyMediaRef(raw, options);
|
|
365
|
+
switch (classification.kind) {
|
|
366
|
+
case 'empty':
|
|
367
|
+
return { status: 'empty' };
|
|
368
|
+
case 'url':
|
|
369
|
+
return {
|
|
370
|
+
status: 'ready',
|
|
371
|
+
href: classification.href,
|
|
372
|
+
source: 'direct',
|
|
373
|
+
};
|
|
374
|
+
case 'seedLocalId':
|
|
375
|
+
return {
|
|
376
|
+
status: 'unresolved',
|
|
377
|
+
reason: 'seed_local_id_not_portable',
|
|
378
|
+
classification,
|
|
379
|
+
};
|
|
380
|
+
case 'unknown':
|
|
381
|
+
return {
|
|
382
|
+
status: 'unresolved',
|
|
383
|
+
reason: 'unknown_ref',
|
|
384
|
+
classification,
|
|
385
|
+
};
|
|
386
|
+
case 'arweaveTxId':
|
|
387
|
+
return resolveTxId(classification.txId);
|
|
388
|
+
case 'seedUid': {
|
|
389
|
+
const appDb = BaseDb.getAppDb();
|
|
390
|
+
if (!appDb) {
|
|
391
|
+
return {
|
|
392
|
+
status: 'unresolved',
|
|
393
|
+
reason: 'seed_uid_requires_app_db',
|
|
394
|
+
classification,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
const storageTransactionId = await getStorageTransactionIdForSeedUid(classification.uid);
|
|
398
|
+
if (!storageTransactionId) {
|
|
399
|
+
return {
|
|
400
|
+
status: 'unresolved',
|
|
401
|
+
reason: 'seed_uid_no_storage_transaction',
|
|
402
|
+
classification,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
return resolveTxId(storageTransactionId);
|
|
406
|
+
}
|
|
407
|
+
default:
|
|
408
|
+
return {
|
|
409
|
+
status: 'unresolved',
|
|
410
|
+
reason: 'unknown_ref',
|
|
411
|
+
classification,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Read a string field from a parsed item, trying camelCase and snake_case keys.
|
|
417
|
+
*/
|
|
418
|
+
function getFeedItemStringField(item, key) {
|
|
419
|
+
const direct = coalesceStringField(item, key);
|
|
420
|
+
if (direct)
|
|
421
|
+
return direct;
|
|
422
|
+
const snake = key.replace(/[A-Z]/g, (l) => `_${l.toLowerCase()}`);
|
|
423
|
+
if (snake !== key) {
|
|
424
|
+
const alt = coalesceStringField(item, snake);
|
|
425
|
+
if (alt)
|
|
426
|
+
return alt;
|
|
427
|
+
}
|
|
428
|
+
const parts = key.split('_');
|
|
429
|
+
if (parts.length > 1) {
|
|
430
|
+
const camel = parts[0] + parts.slice(1).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join('');
|
|
431
|
+
const alt2 = coalesceStringField(item, camel);
|
|
432
|
+
if (alt2)
|
|
433
|
+
return alt2;
|
|
434
|
+
}
|
|
435
|
+
return '';
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Apply a field manifest to a plain feed item: classify media/file fields; pass through html/text.
|
|
439
|
+
*/
|
|
440
|
+
function normalizeFeedItemFields(item, manifest) {
|
|
441
|
+
const out = {};
|
|
442
|
+
for (const [fieldKey, descriptor] of Object.entries(manifest)) {
|
|
443
|
+
const raw = getFeedItemStringField(item, fieldKey);
|
|
444
|
+
if (!raw) {
|
|
445
|
+
out[fieldKey] = undefined;
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
if (descriptor.role === 'html') {
|
|
449
|
+
out[fieldKey] = { role: 'html', raw };
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
452
|
+
if (descriptor.role === 'text') {
|
|
453
|
+
out[fieldKey] = { role: 'text', raw };
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
const classification = classifyMediaRef(raw, { treatAs: descriptor.treatAs });
|
|
457
|
+
out[fieldKey] = {
|
|
458
|
+
role: descriptor.role,
|
|
459
|
+
raw,
|
|
460
|
+
classification,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
return out;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
const logger = debug('seedSdk:shared:helpers');
|
|
467
|
+
const toSnakeCase = (str) => {
|
|
468
|
+
return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
|
|
469
|
+
};
|
|
470
|
+
const getMimeType = (base64) => {
|
|
471
|
+
if (!base64) {
|
|
472
|
+
return null;
|
|
473
|
+
}
|
|
474
|
+
const result = base64.match(/^data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,/);
|
|
475
|
+
if (result && result.length > 1) {
|
|
476
|
+
return result[1];
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
return null; // MIME type could not be determined
|
|
480
|
+
}
|
|
481
|
+
};
|
|
482
|
+
const getCorrectId = (localIdOrUid) => {
|
|
483
|
+
const id = {
|
|
484
|
+
localId: undefined,
|
|
485
|
+
uid: undefined,
|
|
486
|
+
};
|
|
487
|
+
if (!localIdOrUid) {
|
|
488
|
+
return id;
|
|
489
|
+
}
|
|
490
|
+
if (localIdOrUid.length === 10) {
|
|
491
|
+
id.localId = localIdOrUid;
|
|
492
|
+
}
|
|
493
|
+
if (localIdOrUid.startsWith('0x') && localIdOrUid.length === 66) {
|
|
494
|
+
id.uid = localIdOrUid;
|
|
495
|
+
}
|
|
496
|
+
return id;
|
|
497
|
+
};
|
|
498
|
+
const getDataTypeFromString = (data) => {
|
|
499
|
+
const nonImageBase64Regex = /^(?!data:image\/(?:jpeg|png|gif|bmp|webp);base64,)[A-Za-z0-9+/=]+$/;
|
|
500
|
+
if (nonImageBase64Regex.test(data)) {
|
|
501
|
+
return 'base64';
|
|
502
|
+
}
|
|
503
|
+
// Regular expression for base64 (simple version, checking for base64 format)
|
|
504
|
+
const imageBase64Regex = /^data:image\/[a-zA-Z]+;base64,[A-Za-z0-9+/]+={0,2}$/;
|
|
505
|
+
if (imageBase64Regex.test(data)) {
|
|
506
|
+
return 'imageBase64';
|
|
507
|
+
}
|
|
508
|
+
// Blob URLs are fetchable but session-scoped; recognize them as url type
|
|
509
|
+
if (data.startsWith('blob:')) {
|
|
510
|
+
return 'url';
|
|
511
|
+
}
|
|
512
|
+
// Regular expression for URL (simple version, checking for common URL format)
|
|
513
|
+
const urlRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/;
|
|
514
|
+
if (urlRegex.test(data)) {
|
|
515
|
+
return 'url';
|
|
516
|
+
}
|
|
517
|
+
return null;
|
|
518
|
+
};
|
|
519
|
+
const convertTxIdToImage = async (txId) => {
|
|
520
|
+
const imageFilePath = BaseFileManager.getFilesPath('images', txId);
|
|
521
|
+
const fileExists = await BaseFileManager.pathExists(imageFilePath);
|
|
522
|
+
if (!fileExists) {
|
|
523
|
+
logger(`[ItemView] [updateImage] ${imageFilePath} does not exist`);
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath);
|
|
527
|
+
// Convert Blob to ArrayBuffer if needed, or use Buffer directly
|
|
528
|
+
let arrayBuffer;
|
|
529
|
+
if (buffer instanceof Blob) {
|
|
530
|
+
arrayBuffer = await buffer.arrayBuffer();
|
|
531
|
+
}
|
|
532
|
+
else if (buffer instanceof ArrayBuffer) {
|
|
533
|
+
arrayBuffer = buffer;
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
// Node.js Buffer
|
|
537
|
+
const sliced = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
538
|
+
// Handle SharedArrayBuffer case by creating a new ArrayBuffer
|
|
539
|
+
if (sliced instanceof SharedArrayBuffer) {
|
|
540
|
+
const uint8Array = new Uint8Array(sliced);
|
|
541
|
+
arrayBuffer = uint8Array.buffer.slice(0);
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
arrayBuffer = sliced;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
const uint = new Uint8Array(arrayBuffer);
|
|
548
|
+
const imageBlob = new Blob([uint]);
|
|
549
|
+
return URL.createObjectURL(imageBlob);
|
|
550
|
+
};
|
|
551
|
+
/**
|
|
552
|
+
* Constructs an Arweave URL for a storage transaction ID
|
|
553
|
+
* @param storageTransactionId - The Arweave transaction ID
|
|
554
|
+
* @returns The full URL to access the transaction data on Arweave (e.g., https://arweave.net/raw/{transactionId})
|
|
555
|
+
* @deprecated Use BaseArweaveClient.getRawUrl() instead for better consistency and testability
|
|
556
|
+
*/
|
|
557
|
+
const getArweaveUrlForTransaction = (storageTransactionId) => {
|
|
558
|
+
return BaseArweaveClient.getRawUrl(storageTransactionId);
|
|
559
|
+
};
|
|
560
|
+
const parseEasRelationPropertyName = (easPropertyName) => {
|
|
561
|
+
// Split the input string on the first underscore
|
|
562
|
+
const [singularProperty, modelName, idSegment] = easPropertyName.split('_');
|
|
563
|
+
// If there are any other parts, assume it is a list (e.g., has 'ids' or other suffix)
|
|
564
|
+
const isList = idSegment === 'ids';
|
|
565
|
+
// Create the final property name by pluralizing the singular part
|
|
566
|
+
const propertyName = singularProperty.endsWith('s')
|
|
567
|
+
? singularProperty
|
|
568
|
+
: singularProperty + 's';
|
|
569
|
+
return {
|
|
570
|
+
propertyName, // Plural form of the property name
|
|
571
|
+
modelName, // Model name extracted from the second part
|
|
572
|
+
isList, // True if the property is a list (e.g., 'ids' is present)
|
|
573
|
+
};
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
const ENV = (typeof process !== 'undefined' && process.env)
|
|
577
|
+
? process.env
|
|
578
|
+
: (typeof window !== 'undefined' && window.env)
|
|
579
|
+
? window.env
|
|
580
|
+
: {};
|
|
581
|
+
var MachineIds;
|
|
582
|
+
(function (MachineIds) {
|
|
583
|
+
MachineIds["CLIENT_MANAGER"] = "@seedSdk/clientManager";
|
|
584
|
+
MachineIds["EAS_SYNC_MANAGER"] = "@seedSdk/easSyncManager";
|
|
585
|
+
MachineIds["GLOBAL"] = "@seedSdk/global";
|
|
586
|
+
MachineIds["INTERNAL"] = "@seedSdk/internal";
|
|
587
|
+
MachineIds["EAS"] = "@seedSdk/eas";
|
|
588
|
+
MachineIds["ITEM"] = "@seedSdk/item";
|
|
589
|
+
MachineIds["ALL_ITEMS"] = "@seedSdk/allItems";
|
|
590
|
+
MachineIds["MODEL"] = "@seedSdk/model";
|
|
591
|
+
MachineIds["FILE_SYSTEM"] = "@seedSdk/fileSystem";
|
|
592
|
+
})(MachineIds || (MachineIds = {}));
|
|
593
|
+
const { INTERNAL, GLOBAL, EAS, MODEL } = MachineIds;
|
|
594
|
+
var ClientManagerState;
|
|
595
|
+
(function (ClientManagerState) {
|
|
596
|
+
ClientManagerState["UNINITIALIZED"] = "uninitialized";
|
|
597
|
+
ClientManagerState["PLATFORM_CLASSES_INIT"] = "platformClassesInit";
|
|
598
|
+
ClientManagerState["FILE_SYSTEM_INIT"] = "fileSystemInit";
|
|
599
|
+
ClientManagerState["DB_INIT"] = "dbInit";
|
|
600
|
+
ClientManagerState["SAVE_CONFIG"] = "saveConfig";
|
|
601
|
+
ClientManagerState["ADD_MODELS_TO_STORE"] = "addModelsToStore";
|
|
602
|
+
ClientManagerState["ADD_MODELS_TO_DB"] = "addModelsToDb";
|
|
603
|
+
ClientManagerState["PROCESS_SCHEMA_FILES"] = "processSchemaFiles";
|
|
604
|
+
ClientManagerState["IDLE"] = "idle";
|
|
605
|
+
})(ClientManagerState || (ClientManagerState = {}));
|
|
606
|
+
var ClientManagerEvents;
|
|
607
|
+
(function (ClientManagerEvents) {
|
|
608
|
+
ClientManagerEvents["UPDATE_CONTEXT"] = "updateContext";
|
|
609
|
+
ClientManagerEvents["PLATFORM_CLASSES_READY"] = "platformClassesReady";
|
|
610
|
+
ClientManagerEvents["FILE_SYSTEM_READY"] = "fileSystemReady";
|
|
611
|
+
ClientManagerEvents["DB_READY"] = "dbReady";
|
|
612
|
+
ClientManagerEvents["SAVE_CONFIG_SUCCESS"] = "saveConfigSuccess";
|
|
613
|
+
ClientManagerEvents["SAVE_APP_STATE_SUCCESS"] = "saveAppStateSuccess";
|
|
614
|
+
ClientManagerEvents["SET_ADDRESSES"] = "setAddresses";
|
|
615
|
+
ClientManagerEvents["ADD_MODELS_TO_STORE_SUCCESS"] = "addModelsToStoreSuccess";
|
|
616
|
+
ClientManagerEvents["ADD_MODELS_TO_DB_SUCCESS"] = "addModelsToDbSuccess";
|
|
617
|
+
ClientManagerEvents["PROCESS_SCHEMA_FILES_SUCCESS"] = "processSchemaFilesSuccess";
|
|
618
|
+
})(ClientManagerEvents || (ClientManagerEvents = {}));
|
|
619
|
+
var GlobalState;
|
|
620
|
+
(function (GlobalState) {
|
|
621
|
+
GlobalState["UNINITIALIZED"] = "uninitialized";
|
|
622
|
+
GlobalState["INITIALIZING"] = "initializing";
|
|
623
|
+
GlobalState["INITIALIZED"] = "initialized";
|
|
624
|
+
GlobalState["PUBLISHING_ITEM"] = "publishingItem";
|
|
625
|
+
GlobalState["ADDING_MODELS_TO_DB"] = "addingModelsToDb";
|
|
626
|
+
})(GlobalState || (GlobalState = {}));
|
|
627
|
+
const { UNINITIALIZED: GLOBAL_UNINITIALIZED, INITIALIZING, INITIALIZED, PUBLISHING_ITEM, ADDING_MODELS_TO_DB, } = GlobalState;
|
|
628
|
+
var InternalState;
|
|
629
|
+
(function (InternalState) {
|
|
630
|
+
InternalState["IDLE"] = "idle";
|
|
631
|
+
InternalState["INITIALIZING"] = "initializing";
|
|
632
|
+
InternalState["VALIDATING_INPUT"] = "validatingInput";
|
|
633
|
+
InternalState["CONFIGURING_FS"] = "configuringFs";
|
|
634
|
+
InternalState["LOADING_SEED_DB"] = "loadingSeedDb";
|
|
635
|
+
InternalState["SAVING_CONFIG"] = "savingConfig";
|
|
636
|
+
InternalState["LOADING_APP_DB"] = "loadingAppDb";
|
|
637
|
+
InternalState["LOADING_SDK_DB"] = "loadingSdkDb";
|
|
638
|
+
})(InternalState || (InternalState = {}));
|
|
639
|
+
const { VALIDATING_INPUT, CONFIGURING_FS, LOADING_SEED_DB, LOADING_APP_DB } = InternalState;
|
|
640
|
+
var PublishMachineStates;
|
|
641
|
+
(function (PublishMachineStates) {
|
|
642
|
+
PublishMachineStates["VALIDATING_ITEM_DATA"] = "validatingItemData";
|
|
643
|
+
PublishMachineStates["CREATING_PUBLISH_ATTEMPT"] = "creatingPublishAttempt";
|
|
644
|
+
PublishMachineStates["UPLOADING"] = "uploading";
|
|
645
|
+
PublishMachineStates["PREPARING_PUBLISH_REQUEST_DATA"] = "preparingPublishRequestData";
|
|
646
|
+
PublishMachineStates["PUBLISHING"] = "publishing";
|
|
647
|
+
PublishMachineStates["IDLE"] = "idle";
|
|
648
|
+
})(PublishMachineStates || (PublishMachineStates = {}));
|
|
649
|
+
const EAS_ENDPOINT = ENV.NEXT_PUBLIC_EAS_ENDPOINT ||
|
|
650
|
+
ENV.EAS_ENDPOINT ||
|
|
651
|
+
'https://optimism-sepolia.easscan.org/graphql';
|
|
652
|
+
/**
|
|
653
|
+
* @deprecated Use BaseArweaveClient.getHost() instead.
|
|
654
|
+
* This constant is kept for backward compatibility but will be removed in a future version.
|
|
655
|
+
* Migration: import { BaseArweaveClient } from '@/helpers' and use BaseArweaveClient.getHost()
|
|
656
|
+
*/
|
|
657
|
+
ENV.NEXT_PUBLIC_ARWEAVE_HOST || 'ar.seedprotocol.io';
|
|
658
|
+
|
|
659
|
+
export { ClientManagerEvents as A, Boolean as B, ClientManagerState as C, Date$1 as D, EAS_ENDPOINT as E, File as F, Html as H, Image as I, Json as J, List as L, ModelPropertyDataTypes as M, Number as N, Property as P, Relation as R, TPropertyDataType as T, TStorageType as a, THtmlEmbeddedDataUriPolicy as b, TProperty as c, TPropertyConstructor as d, TPropertyDefs as e, PropertyMetadataKey as f, PropertyConstructor as g, Text as h, DEFAULT_TEXT_MAX_LENGTH as i, TValidationRules as j, normalizeRelationPropertyValue as k, getCorrectId as l, getArweaveUrlForTransaction as m, normalizeDataType as n, MachineIds as o, parseEasRelationPropertyName as p, classifyMediaRef as q, resolveSeedIdsFromRefString as r, resolveMediaRef as s, toSnakeCase as t, normalizeFeedItemFields as u, getFeedItemStringField as v, getStorageTransactionIdForSeedUid as w, convertTxIdToImage as x, getDataTypeFromString as y, getMimeType as z };
|
|
660
|
+
//# sourceMappingURL=constants-B5S5JPDK.js.map
|