@opendatalabs/personal-server-ts-core 0.0.1-canary.016adf9 → 0.0.1-canary.052d47e
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/api/index.d.ts +361 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +1213 -0
- package/dist/api/index.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/request.d.ts +28 -0
- package/dist/auth/request.d.ts.map +1 -0
- package/dist/auth/request.js +106 -0
- package/dist/auth/request.js.map +1 -0
- package/dist/client.d.ts +233 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +243 -0
- package/dist/client.js.map +1 -0
- package/dist/config/defaults.d.ts +5 -5
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -5
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +0 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +1 -9
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/access-logs.d.ts +8 -0
- package/dist/contracts/access-logs.d.ts.map +1 -0
- package/dist/contracts/access-logs.js +7 -0
- package/dist/contracts/access-logs.js.map +1 -0
- package/dist/contracts/auth-device.d.ts +70 -0
- package/dist/contracts/auth-device.d.ts.map +1 -0
- package/dist/contracts/auth-device.js +163 -0
- package/dist/contracts/auth-device.js.map +1 -0
- package/dist/contracts/binary.d.ts +66 -0
- package/dist/contracts/binary.d.ts.map +1 -0
- package/dist/contracts/binary.js +123 -0
- package/dist/contracts/binary.js.map +1 -0
- package/dist/contracts/config.d.ts +5 -0
- package/dist/contracts/config.d.ts.map +1 -0
- package/dist/contracts/config.js +30 -0
- package/dist/contracts/config.js.map +1 -0
- package/dist/contracts/data.d.ts +165 -0
- package/dist/contracts/data.d.ts.map +1 -0
- package/dist/contracts/data.js +371 -0
- package/dist/contracts/data.js.map +1 -0
- package/dist/contracts/grants.d.ts +45 -0
- package/dist/contracts/grants.d.ts.map +1 -0
- package/dist/contracts/grants.js +177 -0
- package/dist/contracts/grants.js.map +1 -0
- package/dist/contracts/http.d.ts +21 -0
- package/dist/contracts/http.d.ts.map +1 -0
- package/dist/contracts/http.js +49 -0
- package/dist/contracts/http.js.map +1 -0
- package/dist/contracts/index.d.ts +16 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +10 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/oauth.d.ts +38 -0
- package/dist/contracts/oauth.d.ts.map +1 -0
- package/dist/contracts/oauth.js +130 -0
- package/dist/contracts/oauth.js.map +1 -0
- package/dist/contracts/sync.d.ts +10 -0
- package/dist/contracts/sync.d.ts.map +1 -0
- package/dist/contracts/sync.js +34 -0
- package/dist/contracts/sync.js.map +1 -0
- package/dist/derivatives/api.d.ts +48 -0
- package/dist/derivatives/api.d.ts.map +1 -0
- package/dist/derivatives/api.js +366 -0
- package/dist/derivatives/api.js.map +1 -0
- package/dist/derivatives/compute.d.ts +106 -0
- package/dist/derivatives/compute.d.ts.map +1 -0
- package/dist/derivatives/compute.js +414 -0
- package/dist/derivatives/compute.js.map +1 -0
- package/dist/derivatives/e2ee/aad.d.ts +22 -0
- package/dist/derivatives/e2ee/aad.d.ts.map +1 -0
- package/dist/derivatives/e2ee/aad.js +32 -0
- package/dist/derivatives/e2ee/aad.js.map +1 -0
- package/dist/derivatives/e2ee/attestation.d.ts +134 -0
- package/dist/derivatives/e2ee/attestation.d.ts.map +1 -0
- package/dist/derivatives/e2ee/attestation.js +248 -0
- package/dist/derivatives/e2ee/attestation.js.map +1 -0
- package/dist/derivatives/e2ee/index.d.ts +6 -0
- package/dist/derivatives/e2ee/index.d.ts.map +1 -0
- package/dist/derivatives/e2ee/index.js +6 -0
- package/dist/derivatives/e2ee/index.js.map +1 -0
- package/dist/derivatives/e2ee/jcs.d.ts +17 -0
- package/dist/derivatives/e2ee/jcs.d.ts.map +1 -0
- package/dist/derivatives/e2ee/jcs.js +55 -0
- package/dist/derivatives/e2ee/jcs.js.map +1 -0
- package/dist/derivatives/e2ee/phala.d.ts +62 -0
- package/dist/derivatives/e2ee/phala.d.ts.map +1 -0
- package/dist/derivatives/e2ee/phala.js +168 -0
- package/dist/derivatives/e2ee/phala.js.map +1 -0
- package/dist/derivatives/e2ee/suite.d.ts +56 -0
- package/dist/derivatives/e2ee/suite.d.ts.map +1 -0
- package/dist/derivatives/e2ee/suite.js +164 -0
- package/dist/derivatives/e2ee/suite.js.map +1 -0
- package/dist/derivatives/index.d.ts +10 -0
- package/dist/derivatives/index.d.ts.map +1 -0
- package/dist/derivatives/index.js +10 -0
- package/dist/derivatives/index.js.map +1 -0
- package/dist/derivatives/inference.d.ts +151 -0
- package/dist/derivatives/inference.d.ts.map +1 -0
- package/dist/derivatives/inference.js +262 -0
- package/dist/derivatives/inference.js.map +1 -0
- package/dist/derivatives/prompt.d.ts +64 -0
- package/dist/derivatives/prompt.d.ts.map +1 -0
- package/dist/derivatives/prompt.js +193 -0
- package/dist/derivatives/prompt.js.map +1 -0
- package/dist/derivatives/registration.d.ts +54 -0
- package/dist/derivatives/registration.d.ts.map +1 -0
- package/dist/derivatives/registration.js +180 -0
- package/dist/derivatives/registration.js.map +1 -0
- package/dist/derivatives/scheduler.d.ts +84 -0
- package/dist/derivatives/scheduler.d.ts.map +1 -0
- package/dist/derivatives/scheduler.js +257 -0
- package/dist/derivatives/scheduler.js.map +1 -0
- package/dist/derivatives/store.d.ts +14 -0
- package/dist/derivatives/store.d.ts.map +1 -0
- package/dist/derivatives/store.js +77 -0
- package/dist/derivatives/store.js.map +1 -0
- package/dist/derivatives/types.d.ts +92 -0
- package/dist/derivatives/types.d.ts.map +1 -0
- package/dist/derivatives/types.js +27 -0
- package/dist/derivatives/types.js.map +1 -0
- package/dist/errors/catalog.d.ts +84 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +119 -0
- package/dist/errors/catalog.js.map +1 -1
- package/dist/grants/index.d.ts +2 -4
- package/dist/grants/index.d.ts.map +1 -1
- package/dist/grants/index.js +1 -2
- package/dist/grants/index.js.map +1 -1
- package/dist/keys/index.d.ts +2 -2
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +1 -2
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/public-only-account.d.ts +8 -0
- package/dist/keys/public-only-account.d.ts.map +1 -0
- package/dist/keys/public-only-account.js +21 -0
- package/dist/keys/public-only-account.js.map +1 -0
- package/dist/keys/server-account.d.ts +7 -11
- package/dist/keys/server-account.d.ts.map +1 -1
- package/dist/keys/server-account.js +1 -47
- package/dist/keys/server-account.js.map +1 -1
- package/dist/lineage/attestation.d.ts +42 -0
- package/dist/lineage/attestation.d.ts.map +1 -0
- package/dist/lineage/attestation.js +25 -0
- package/dist/lineage/attestation.js.map +1 -0
- package/dist/lineage/gateway.d.ts +105 -0
- package/dist/lineage/gateway.d.ts.map +1 -0
- package/dist/lineage/gateway.js +242 -0
- package/dist/lineage/gateway.js.map +1 -0
- package/dist/lineage/index.d.ts +5 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +5 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/lineage.d.ts +141 -0
- package/dist/lineage/lineage.d.ts.map +1 -0
- package/dist/lineage/lineage.js +255 -0
- package/dist/lineage/lineage.js.map +1 -0
- package/dist/logger/index.d.ts +6 -2
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +2 -6
- package/dist/logger/index.js.map +1 -1
- package/dist/logging/access-log.d.ts +10 -2
- package/dist/logging/access-log.d.ts.map +1 -1
- package/dist/logging/access-log.js +1 -24
- package/dist/logging/access-log.js.map +1 -1
- package/dist/logging/access-reader.d.ts +0 -5
- package/dist/logging/access-reader.d.ts.map +1 -1
- package/dist/logging/access-reader.js +1 -49
- package/dist/logging/access-reader.js.map +1 -1
- package/dist/mcp/activity.d.ts +68 -0
- package/dist/mcp/activity.d.ts.map +1 -0
- package/dist/mcp/activity.js +111 -0
- package/dist/mcp/activity.js.map +1 -0
- package/dist/mcp/builder-registration.d.ts +24 -0
- package/dist/mcp/builder-registration.d.ts.map +1 -0
- package/dist/mcp/builder-registration.js +89 -0
- package/dist/mcp/builder-registration.js.map +1 -0
- package/dist/mcp/connection-api.d.ts +170 -0
- package/dist/mcp/connection-api.d.ts.map +1 -0
- package/dist/mcp/connection-api.js +379 -0
- package/dist/mcp/connection-api.js.map +1 -0
- package/dist/mcp/grantee.d.ts +52 -0
- package/dist/mcp/grantee.d.ts.map +1 -0
- package/dist/mcp/grantee.js +91 -0
- package/dist/mcp/grantee.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +11 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/read-client.d.ts +174 -0
- package/dist/mcp/read-client.d.ts.map +1 -0
- package/dist/mcp/read-client.js +576 -0
- package/dist/mcp/read-client.js.map +1 -0
- package/dist/mcp/resources.d.ts +37 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +114 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/search/index.d.ts +34 -0
- package/dist/mcp/search/index.d.ts.map +1 -0
- package/dist/mcp/search/index.js +156 -0
- package/dist/mcp/search/index.js.map +1 -0
- package/dist/mcp/server.d.ts +53 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +307 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/session.d.ts +160 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +243 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/store.d.ts +13 -0
- package/dist/mcp/store.d.ts.map +1 -0
- package/dist/mcp/store.js +98 -0
- package/dist/mcp/store.js.map +1 -0
- package/dist/mcp/tools.d.ts +70 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1346 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +97 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +24 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/payment/index.d.ts +2 -0
- package/dist/payment/index.d.ts.map +1 -0
- package/dist/payment/index.js +2 -0
- package/dist/payment/index.js.map +1 -0
- package/dist/payment/x402.d.ts +155 -0
- package/dist/payment/x402.d.ts.map +1 -0
- package/dist/payment/x402.js +402 -0
- package/dist/payment/x402.js.map +1 -0
- package/dist/policy/data-read.d.ts +32 -0
- package/dist/policy/data-read.d.ts.map +1 -0
- package/dist/policy/data-read.js +128 -0
- package/dist/policy/data-read.js.map +1 -0
- package/dist/policy/data-write.d.ts +69 -0
- package/dist/policy/data-write.d.ts.map +1 -0
- package/dist/policy/data-write.js +131 -0
- package/dist/policy/data-write.js.map +1 -0
- package/dist/policy/index.d.ts +4 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +4 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/signed-artifacts.d.ts +17 -0
- package/dist/policy/signed-artifacts.d.ts.map +1 -0
- package/dist/policy/signed-artifacts.js +110 -0
- package/dist/policy/signed-artifacts.js.map +1 -0
- package/dist/ports/index.d.ts +239 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +7 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/schemas/server-config.d.ts +55 -0
- package/dist/schemas/server-config.d.ts.map +1 -1
- package/dist/schemas/server-config.js +107 -4
- package/dist/schemas/server-config.js.map +1 -1
- package/dist/signing/index.d.ts +1 -2
- package/dist/signing/index.d.ts.map +1 -1
- package/dist/signing/index.js +0 -1
- package/dist/signing/index.js.map +1 -1
- package/dist/signing/request-signer.d.ts +10 -2
- package/dist/signing/request-signer.d.ts.map +1 -1
- package/dist/signing/request-signer.js +6 -31
- package/dist/signing/request-signer.js.map +1 -1
- package/dist/signing/signer.d.ts +28 -2
- package/dist/signing/signer.d.ts.map +1 -1
- package/dist/signing/signer.js +32 -13
- package/dist/signing/signer.js.map +1 -1
- package/dist/storage/adapters/index.d.ts +2 -1
- package/dist/storage/adapters/index.d.ts.map +1 -1
- package/dist/storage/adapters/index.js +2 -1
- package/dist/storage/adapters/index.js.map +1 -1
- package/dist/storage/adapters/interface.d.ts +10 -0
- package/dist/storage/adapters/interface.d.ts.map +1 -1
- package/dist/storage/adapters/sdk.d.ts +23 -0
- package/dist/storage/adapters/sdk.d.ts.map +1 -0
- package/dist/storage/adapters/sdk.js +73 -0
- package/dist/storage/adapters/sdk.js.map +1 -0
- package/dist/storage/adapters/vana.d.ts +10 -30
- package/dist/storage/adapters/vana.d.ts.map +1 -1
- package/dist/storage/adapters/vana.js +94 -84
- package/dist/storage/adapters/vana.js.map +1 -1
- package/dist/storage/blocks/build.d.ts +20 -0
- package/dist/storage/blocks/build.d.ts.map +1 -0
- package/dist/storage/blocks/build.js +378 -0
- package/dist/storage/blocks/build.js.map +1 -0
- package/dist/storage/blocks/cursor.d.ts +33 -0
- package/dist/storage/blocks/cursor.d.ts.map +1 -0
- package/dist/storage/blocks/cursor.js +142 -0
- package/dist/storage/blocks/cursor.js.map +1 -0
- package/dist/storage/blocks/errors.d.ts +6 -0
- package/dist/storage/blocks/errors.d.ts.map +1 -0
- package/dist/storage/blocks/errors.js +9 -0
- package/dist/storage/blocks/errors.js.map +1 -0
- package/dist/storage/blocks/index.d.ts +6 -0
- package/dist/storage/blocks/index.d.ts.map +1 -0
- package/dist/storage/blocks/index.js +5 -0
- package/dist/storage/blocks/index.js.map +1 -0
- package/dist/storage/blocks/select.d.ts +29 -0
- package/dist/storage/blocks/select.d.ts.map +1 -0
- package/dist/storage/blocks/select.js +120 -0
- package/dist/storage/blocks/select.js.map +1 -0
- package/dist/storage/blocks/types.d.ts +56 -0
- package/dist/storage/blocks/types.d.ts.map +1 -0
- package/dist/storage/blocks/types.js +2 -0
- package/dist/{grants → storage/blocks}/types.js.map +1 -1
- package/dist/storage/hierarchy/index.d.ts +0 -1
- package/dist/storage/hierarchy/index.d.ts.map +1 -1
- package/dist/storage/hierarchy/index.js +0 -1
- package/dist/storage/hierarchy/index.js.map +1 -1
- package/dist/storage/hierarchy/manager.d.ts +0 -14
- package/dist/storage/hierarchy/manager.d.ts.map +1 -1
- package/dist/storage/hierarchy/manager.js +1 -59
- package/dist/storage/hierarchy/manager.js.map +1 -1
- package/dist/storage/hierarchy/paths.d.ts.map +1 -1
- package/dist/storage/hierarchy/paths.js +11 -4
- package/dist/storage/hierarchy/paths.js.map +1 -1
- package/dist/storage/index/index.d.ts +2 -3
- package/dist/storage/index/index.d.ts.map +1 -1
- package/dist/storage/index/index.js +1 -2
- package/dist/storage/index/index.js.map +1 -1
- package/dist/storage/index/manager.d.ts +32 -6
- package/dist/storage/index/manager.d.ts.map +1 -1
- package/dist/storage/index/manager.js +1 -131
- package/dist/storage/index/manager.js.map +1 -1
- package/dist/storage/index/schema.d.ts +1 -3
- package/dist/storage/index/schema.d.ts.map +1 -1
- package/dist/storage/index/schema.js +1 -26
- package/dist/storage/index/schema.js.map +1 -1
- package/dist/storage/index/types.d.ts +17 -0
- package/dist/storage/index/types.d.ts.map +1 -1
- package/dist/storage/preview.d.ts +12 -0
- package/dist/storage/preview.d.ts.map +1 -0
- package/dist/storage/preview.js +239 -0
- package/dist/storage/preview.js.map +1 -0
- package/dist/sync/cursor.d.ts +5 -7
- package/dist/sync/cursor.d.ts.map +1 -1
- package/dist/sync/cursor.js +1 -18
- package/dist/sync/cursor.js.map +1 -1
- package/dist/sync/data-point-feed.d.ts +35 -0
- package/dist/sync/data-point-feed.d.ts.map +1 -0
- package/dist/sync/data-point-feed.js +122 -0
- package/dist/sync/data-point-feed.js.map +1 -0
- package/dist/sync/data-point-id.d.ts +7 -0
- package/dist/sync/data-point-id.d.ts.map +1 -0
- package/dist/sync/data-point-id.js +16 -0
- package/dist/sync/data-point-id.js.map +1 -0
- package/dist/sync/delete-data-port.d.ts +50 -0
- package/dist/sync/delete-data-port.d.ts.map +1 -0
- package/dist/sync/delete-data-port.js +244 -0
- package/dist/sync/delete-data-port.js.map +1 -0
- package/dist/sync/engine/sync-manager.d.ts +29 -0
- package/dist/sync/engine/sync-manager.d.ts.map +1 -1
- package/dist/sync/engine/sync-manager.js +156 -45
- package/dist/sync/engine/sync-manager.js.map +1 -1
- package/dist/sync/index.d.ts +11 -2
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +8 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/issues.d.ts +55 -0
- package/dist/sync/issues.d.ts.map +1 -0
- package/dist/sync/issues.js +168 -0
- package/dist/sync/issues.js.map +1 -0
- package/dist/sync/pending-blob-deletions.d.ts +29 -0
- package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
- package/dist/sync/pending-blob-deletions.js +116 -0
- package/dist/sync/pending-blob-deletions.js.map +1 -0
- package/dist/sync/retry-memory.d.ts +33 -0
- package/dist/sync/retry-memory.d.ts.map +1 -0
- package/dist/sync/retry-memory.js +68 -0
- package/dist/sync/retry-memory.js.map +1 -0
- package/dist/sync/scope-deletions.d.ts +155 -0
- package/dist/sync/scope-deletions.d.ts.map +1 -0
- package/dist/sync/scope-deletions.js +225 -0
- package/dist/sync/scope-deletions.js.map +1 -0
- package/dist/sync/tombstone.d.ts +27 -0
- package/dist/sync/tombstone.d.ts.map +1 -0
- package/dist/sync/tombstone.js +28 -0
- package/dist/sync/tombstone.js.map +1 -0
- package/dist/sync/types.d.ts +9 -24
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/workers/delete.d.ts +163 -0
- package/dist/sync/workers/delete.d.ts.map +1 -0
- package/dist/sync/workers/delete.js +474 -0
- package/dist/sync/workers/delete.js.map +1 -0
- package/dist/sync/workers/download.d.ts +115 -18
- package/dist/sync/workers/download.d.ts.map +1 -1
- package/dist/sync/workers/download.js +523 -54
- package/dist/sync/workers/download.js.map +1 -1
- package/dist/sync/workers/upload.d.ts +73 -18
- package/dist/sync/workers/upload.d.ts.map +1 -1
- package/dist/sync/workers/upload.js +382 -45
- package/dist/sync/workers/upload.js.map +1 -1
- package/dist/test-utils/e2ee-fixtures.d.ts +94 -0
- package/dist/test-utils/e2ee-fixtures.d.ts.map +1 -0
- package/dist/test-utils/e2ee-fixtures.js +116 -0
- package/dist/test-utils/e2ee-fixtures.js.map +1 -0
- package/dist/test-utils/e2ee-gateway.d.ts +61 -0
- package/dist/test-utils/e2ee-gateway.d.ts.map +1 -0
- package/dist/test-utils/e2ee-gateway.js +248 -0
- package/dist/test-utils/e2ee-gateway.js.map +1 -0
- package/dist/test-utils/index.d.ts +3 -0
- package/dist/test-utils/index.d.ts.map +1 -1
- package/dist/test-utils/index.js +3 -0
- package/dist/test-utils/index.js.map +1 -1
- package/dist/test-utils/memory-storage.d.ts +12 -0
- package/dist/test-utils/memory-storage.d.ts.map +1 -0
- package/dist/test-utils/memory-storage.js +146 -0
- package/dist/test-utils/memory-storage.js.map +1 -0
- package/dist/test-utils/wallet.d.ts +7 -0
- package/dist/test-utils/wallet.d.ts.map +1 -1
- package/dist/test-utils/wallet.js +51 -27
- package/dist/test-utils/wallet.js.map +1 -1
- package/dist/write/attribution.d.ts +185 -0
- package/dist/write/attribution.d.ts.map +1 -0
- package/dist/write/attribution.js +450 -0
- package/dist/write/attribution.js.map +1 -0
- package/dist/write/authorize.d.ts +77 -0
- package/dist/write/authorize.d.ts.map +1 -0
- package/dist/write/authorize.js +109 -0
- package/dist/write/authorize.js.map +1 -0
- package/dist/write/index.d.ts +5 -0
- package/dist/write/index.d.ts.map +1 -0
- package/dist/write/index.js +5 -0
- package/dist/write/index.js.map +1 -0
- package/dist/write/route.d.ts +61 -0
- package/dist/write/route.d.ts.map +1 -0
- package/dist/write/route.js +132 -0
- package/dist/write/route.js.map +1 -0
- package/dist/write/session.d.ts +96 -0
- package/dist/write/session.d.ts.map +1 -0
- package/dist/write/session.js +136 -0
- package/dist/write/session.js.map +1 -0
- package/package.json +63 -27
- package/dist/auth/web3-signed.d.ts +0 -48
- package/dist/auth/web3-signed.d.ts.map +0 -1
- package/dist/auth/web3-signed.js +0 -110
- package/dist/auth/web3-signed.js.map +0 -1
- package/dist/config/loader.d.ts +0 -8
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -74
- package/dist/config/loader.js.map +0 -1
- package/dist/gateway/client.d.ts +0 -98
- package/dist/gateway/client.d.ts.map +0 -1
- package/dist/gateway/client.js +0 -171
- package/dist/gateway/client.js.map +0 -1
- package/dist/grants/eip712.d.ts +0 -28
- package/dist/grants/eip712.d.ts.map +0 -1
- package/dist/grants/eip712.js +0 -30
- package/dist/grants/eip712.js.map +0 -1
- package/dist/grants/types.d.ts +0 -29
- package/dist/grants/types.d.ts.map +0 -1
- package/dist/grants/types.js +0 -6
- package/dist/grants/verify.d.ts +0 -24
- package/dist/grants/verify.d.ts.map +0 -1
- package/dist/grants/verify.js +0 -71
- package/dist/grants/verify.js.map +0 -1
- package/dist/keys/derive.d.ts +0 -18
- package/dist/keys/derive.d.ts.map +0 -1
- package/dist/keys/derive.js +0 -43
- package/dist/keys/derive.js.map +0 -1
- package/dist/schemas/data-file.d.ts +0 -20
- package/dist/schemas/data-file.d.ts.map +0 -1
- package/dist/schemas/data-file.js +0 -23
- package/dist/schemas/data-file.js.map +0 -1
- package/dist/scopes/index.d.ts +0 -3
- package/dist/scopes/index.d.ts.map +0 -1
- package/dist/scopes/index.js +0 -3
- package/dist/scopes/index.js.map +0 -1
- package/dist/scopes/match.d.ts +0 -13
- package/dist/scopes/match.d.ts.map +0 -1
- package/dist/scopes/match.js +0 -23
- package/dist/scopes/match.js.map +0 -1
- package/dist/scopes/parse.d.ts +0 -12
- package/dist/scopes/parse.d.ts.map +0 -1
- package/dist/scopes/parse.js +0 -29
- package/dist/scopes/parse.js.map +0 -1
- package/dist/signing/eip712.d.ts +0 -69
- package/dist/signing/eip712.d.ts.map +0 -1
- package/dist/signing/eip712.js +0 -68
- package/dist/signing/eip712.js.map +0 -1
- package/dist/storage/encryption/decrypt.d.ts +0 -10
- package/dist/storage/encryption/decrypt.d.ts.map +0 -1
- package/dist/storage/encryption/decrypt.js +0 -19
- package/dist/storage/encryption/decrypt.js.map +0 -1
- package/dist/storage/encryption/encrypt.d.ts +0 -10
- package/dist/storage/encryption/encrypt.d.ts.map +0 -1
- package/dist/storage/encryption/encrypt.js +0 -19
- package/dist/storage/encryption/encrypt.js.map +0 -1
- package/dist/storage/encryption/index.d.ts +0 -3
- package/dist/storage/encryption/index.d.ts.map +0 -1
- package/dist/storage/encryption/index.js +0 -3
- package/dist/storage/encryption/index.js.map +0 -1
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { createDataFileEnvelope, ScopeSchema, } from "@opendatalabs/vana-sdk/browser";
|
|
2
|
+
import { buildBinaryEnvelopeData, sha256Hex } from "./binary.js";
|
|
3
|
+
import { buildDataBlocksAsync } from "../storage/blocks/build.js";
|
|
4
|
+
import { hasReservedWriterKey, stampWriterAttribution, } from "../write/attribution.js";
|
|
5
|
+
import { hasReservedLineageKey, stampLineage, } from "../lineage/lineage.js";
|
|
6
|
+
/**
|
|
7
|
+
* Thrown by the ingest contracts when the envelope was already written to
|
|
8
|
+
* storage but a later step (indexing) failed. The record is on disk and a
|
|
9
|
+
* re-index can surface it, so callers must treat the write as persisted:
|
|
10
|
+
* never retry it under the same proof, never release a replay reservation.
|
|
11
|
+
*/
|
|
12
|
+
export class IngestPersistedError extends Error {
|
|
13
|
+
relativePath;
|
|
14
|
+
cause;
|
|
15
|
+
constructor(relativePath, cause) {
|
|
16
|
+
super(`Envelope written to ${relativePath} but indexing failed: ${cause instanceof Error ? cause.message : String(cause)}`);
|
|
17
|
+
this.relativePath = relativePath;
|
|
18
|
+
this.cause = cause;
|
|
19
|
+
this.name = "IngestPersistedError";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async function indexWrittenEnvelope(storage, entry) {
|
|
23
|
+
try {
|
|
24
|
+
await storage.insertEntry(entry);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
throw new IngestPersistedError(entry.path, err);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function invalidScope(message) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
status: 400,
|
|
34
|
+
body: {
|
|
35
|
+
error: "INVALID_SCOPE",
|
|
36
|
+
message,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function parseDataScopeContract(scopeParam) {
|
|
41
|
+
const scopeResult = ScopeSchema.safeParse(scopeParam);
|
|
42
|
+
if (!scopeResult.success) {
|
|
43
|
+
return invalidScope(scopeResult.error.issues[0]?.message ?? "Invalid scope");
|
|
44
|
+
}
|
|
45
|
+
return { ok: true, scope: scopeResult.data };
|
|
46
|
+
}
|
|
47
|
+
function normalizeLimit(value) {
|
|
48
|
+
return value ?? 20;
|
|
49
|
+
}
|
|
50
|
+
function normalizeOffset(value) {
|
|
51
|
+
return value ?? 0;
|
|
52
|
+
}
|
|
53
|
+
function isRecord(value) {
|
|
54
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
55
|
+
}
|
|
56
|
+
const VISIBILITY_PAGE_SIZE = 200;
|
|
57
|
+
export async function listDataScopesContract(input) {
|
|
58
|
+
const limit = normalizeLimit(input.limit);
|
|
59
|
+
const offset = normalizeOffset(input.offset);
|
|
60
|
+
let page;
|
|
61
|
+
let total;
|
|
62
|
+
if (input.isVisible) {
|
|
63
|
+
// Filtered listing: walk every scope so the page and the total both
|
|
64
|
+
// describe the visible set (the index cannot filter by tombstone).
|
|
65
|
+
const visible = [];
|
|
66
|
+
for (let scan = 0;; scan += VISIBILITY_PAGE_SIZE) {
|
|
67
|
+
const batch = input.storage.listScopes({
|
|
68
|
+
scopePrefix: input.scopePrefix,
|
|
69
|
+
limit: VISIBILITY_PAGE_SIZE,
|
|
70
|
+
offset: scan,
|
|
71
|
+
});
|
|
72
|
+
for (const summary of batch.scopes) {
|
|
73
|
+
const latest = input.storage.findEntry({
|
|
74
|
+
scope: summary.scope,
|
|
75
|
+
at: summary.latestCollectedAt,
|
|
76
|
+
});
|
|
77
|
+
if (!latest || (await input.isVisible(summary.scope, latest))) {
|
|
78
|
+
visible.push(summary);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (batch.scopes.length < VISIBILITY_PAGE_SIZE)
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
total = visible.length;
|
|
85
|
+
page = visible.slice(offset, offset + limit);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const result = input.storage.listScopes({
|
|
89
|
+
scopePrefix: input.scopePrefix,
|
|
90
|
+
limit,
|
|
91
|
+
offset,
|
|
92
|
+
});
|
|
93
|
+
page = result.scopes;
|
|
94
|
+
total = result.total;
|
|
95
|
+
}
|
|
96
|
+
const scopes = await Promise.all(page.map(async (summary) => {
|
|
97
|
+
const entry = input.storage.findEntry({
|
|
98
|
+
scope: summary.scope,
|
|
99
|
+
at: summary.latestCollectedAt,
|
|
100
|
+
});
|
|
101
|
+
if (!entry) {
|
|
102
|
+
return summary;
|
|
103
|
+
}
|
|
104
|
+
const hasBlocks = typeof input.storage.hasScopeBlocks === "function"
|
|
105
|
+
? await input.storage.hasScopeBlocks(summary.scope, summary.latestCollectedAt)
|
|
106
|
+
: false;
|
|
107
|
+
return {
|
|
108
|
+
...summary,
|
|
109
|
+
dataStatus: hasBlocks ? "ready" : "indexing",
|
|
110
|
+
sizeBytes: entry.sizeBytes,
|
|
111
|
+
};
|
|
112
|
+
}));
|
|
113
|
+
return {
|
|
114
|
+
ok: true,
|
|
115
|
+
response: {
|
|
116
|
+
scopes,
|
|
117
|
+
total,
|
|
118
|
+
limit,
|
|
119
|
+
offset,
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export async function listDataVersionsContract(input) {
|
|
124
|
+
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
125
|
+
if (!scopeResult.ok)
|
|
126
|
+
return scopeResult;
|
|
127
|
+
const limit = normalizeLimit(input.limit);
|
|
128
|
+
const offset = normalizeOffset(input.offset);
|
|
129
|
+
let page;
|
|
130
|
+
let total;
|
|
131
|
+
if (input.isVisible) {
|
|
132
|
+
const visible = [];
|
|
133
|
+
for (let scan = 0;; scan += VISIBILITY_PAGE_SIZE) {
|
|
134
|
+
const batch = input.storage.listVersions(scopeResult.scope, {
|
|
135
|
+
limit: VISIBILITY_PAGE_SIZE,
|
|
136
|
+
offset: scan,
|
|
137
|
+
});
|
|
138
|
+
for (const entry of batch) {
|
|
139
|
+
if (await input.isVisible(scopeResult.scope, entry)) {
|
|
140
|
+
visible.push(entry);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (batch.length < VISIBILITY_PAGE_SIZE)
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
total = visible.length;
|
|
147
|
+
page = visible.slice(offset, offset + limit);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
page = input.storage.listVersions(scopeResult.scope, { limit, offset });
|
|
151
|
+
total = input.storage.countVersions(scopeResult.scope);
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
ok: true,
|
|
155
|
+
scope: scopeResult.scope,
|
|
156
|
+
response: {
|
|
157
|
+
scope: scopeResult.scope,
|
|
158
|
+
versions: page.map((entry) => ({
|
|
159
|
+
fileId: entry.fileId,
|
|
160
|
+
schemaId: entry.schemaId,
|
|
161
|
+
collectedAt: entry.collectedAt,
|
|
162
|
+
})),
|
|
163
|
+
total,
|
|
164
|
+
limit,
|
|
165
|
+
offset,
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export async function readDataContract(input) {
|
|
170
|
+
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
171
|
+
if (!scopeResult.ok)
|
|
172
|
+
return scopeResult;
|
|
173
|
+
const entry = input.storage.findEntry({
|
|
174
|
+
scope: scopeResult.scope,
|
|
175
|
+
fileId: input.fileId,
|
|
176
|
+
at: input.at,
|
|
177
|
+
});
|
|
178
|
+
if (!entry) {
|
|
179
|
+
return {
|
|
180
|
+
ok: false,
|
|
181
|
+
status: 404,
|
|
182
|
+
body: {
|
|
183
|
+
error: "NOT_FOUND",
|
|
184
|
+
message: `No data found for scope "${scopeResult.scope}"`,
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
ok: true,
|
|
190
|
+
scope: scopeResult.scope,
|
|
191
|
+
envelope: await input.storage.readEnvelope(scopeResult.scope, entry.collectedAt),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
export async function ingestDataContract(input) {
|
|
195
|
+
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
196
|
+
if (!scopeResult.ok)
|
|
197
|
+
return scopeResult;
|
|
198
|
+
if (!isRecord(input.body)) {
|
|
199
|
+
return {
|
|
200
|
+
ok: false,
|
|
201
|
+
status: 400,
|
|
202
|
+
body: {
|
|
203
|
+
error: "INVALID_BODY",
|
|
204
|
+
message: "Request body must be a JSON object",
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
// The attribution key is server-stamped, never caller-supplied: a payload
|
|
209
|
+
// that carries it could forge (or shadow) an attribution. That holds for
|
|
210
|
+
// every JSON ingest, owner writes included, so consumers can trust that a
|
|
211
|
+
// stored $writtenBy was always produced by the server.
|
|
212
|
+
if (hasReservedWriterKey(input.body)) {
|
|
213
|
+
return {
|
|
214
|
+
ok: false,
|
|
215
|
+
status: 400,
|
|
216
|
+
body: {
|
|
217
|
+
error: "INVALID_BODY",
|
|
218
|
+
message: "Request body must not contain the reserved $writtenBy key",
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// Same rule for the lineage mirror: `$lineage` is what the server
|
|
223
|
+
// validated, so a caller must not be able to plant or shadow it.
|
|
224
|
+
if (hasReservedLineageKey(input.body)) {
|
|
225
|
+
return {
|
|
226
|
+
ok: false,
|
|
227
|
+
status: 400,
|
|
228
|
+
body: {
|
|
229
|
+
error: "INVALID_BODY",
|
|
230
|
+
message: "Request body must not contain the reserved $lineage key",
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
const envelope = createDataFileEnvelope(scopeResult.scope, input.collectedAt, stampServerKeys(input.body, input));
|
|
235
|
+
const writeResult = await input.storage.writeEnvelope(envelope);
|
|
236
|
+
try {
|
|
237
|
+
await writeBlockSidecars(input.storage, envelope);
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// Best-effort bounded sidecars: raw envelope storage remains the source of truth.
|
|
241
|
+
}
|
|
242
|
+
await indexWrittenEnvelope(input.storage, {
|
|
243
|
+
fileId: null,
|
|
244
|
+
schemaId: null,
|
|
245
|
+
path: writeResult.relativePath,
|
|
246
|
+
scope: scopeResult.scope,
|
|
247
|
+
collectedAt: input.collectedAt,
|
|
248
|
+
sizeBytes: writeResult.sizeBytes,
|
|
249
|
+
afterTombstoneVersion: input.afterTombstoneVersion ?? null,
|
|
250
|
+
});
|
|
251
|
+
return {
|
|
252
|
+
ok: true,
|
|
253
|
+
scope: scopeResult.scope,
|
|
254
|
+
collectedAt: input.collectedAt,
|
|
255
|
+
response: ingestResponse(scopeResult.scope, input),
|
|
256
|
+
writeResult,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Stamp the server-owned reserved keys (`$writtenBy`, `$lineage`) into the
|
|
261
|
+
* record about to be stored. Both are absent from owner root writes, so such
|
|
262
|
+
* an envelope stays byte-identical to today's.
|
|
263
|
+
*/
|
|
264
|
+
function stampServerKeys(data, input) {
|
|
265
|
+
let stamped = data;
|
|
266
|
+
if (input.lineage)
|
|
267
|
+
stamped = stampLineage(stamped, input.lineage);
|
|
268
|
+
if (input.attribution) {
|
|
269
|
+
stamped = stampWriterAttribution(stamped, input.attribution);
|
|
270
|
+
}
|
|
271
|
+
return stamped;
|
|
272
|
+
}
|
|
273
|
+
function ingestResponse(scope, input) {
|
|
274
|
+
return {
|
|
275
|
+
scope,
|
|
276
|
+
collectedAt: input.collectedAt,
|
|
277
|
+
status: input.status,
|
|
278
|
+
...(input.lineage ? { lineage: { sources: input.lineage.sources } } : {}),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Ingest unstructured/binary data (e.g. a PDF). The bytes are hashed and
|
|
283
|
+
* base64-encoded into a binary DataFileEnvelope, then written and indexed
|
|
284
|
+
* exactly like JSON ingest — so the downstream encrypt/upload/register path is
|
|
285
|
+
* unchanged. Unlike JSON ingest, the body is raw bytes (not a JSON object) and
|
|
286
|
+
* `schemaId` may be absent (the caller decides whether to auto-register one).
|
|
287
|
+
*/
|
|
288
|
+
export async function ingestBinaryDataContract(input) {
|
|
289
|
+
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
290
|
+
if (!scopeResult.ok)
|
|
291
|
+
return scopeResult;
|
|
292
|
+
if (input.bytes.length === 0) {
|
|
293
|
+
return {
|
|
294
|
+
ok: false,
|
|
295
|
+
status: 400,
|
|
296
|
+
body: {
|
|
297
|
+
error: "INVALID_BODY",
|
|
298
|
+
message: "Request body must not be empty",
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
// The caller's metadata object is stored verbatim inside the record, so
|
|
303
|
+
// the reserved server-stamped keys are refused there too (same rule as a
|
|
304
|
+
// JSON body): a reader must never find a caller-planted $lineage or
|
|
305
|
+
// $writtenBy anywhere in what the server wrote.
|
|
306
|
+
if (isRecord(input.metadata) &&
|
|
307
|
+
(hasReservedWriterKey(input.metadata) ||
|
|
308
|
+
hasReservedLineageKey(input.metadata))) {
|
|
309
|
+
return {
|
|
310
|
+
ok: false,
|
|
311
|
+
status: 400,
|
|
312
|
+
body: {
|
|
313
|
+
error: "INVALID_BODY",
|
|
314
|
+
message: "X-Vana-Metadata must not contain the reserved $lineage or $writtenBy keys",
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
const contentHash = await sha256Hex(input.bytes);
|
|
319
|
+
const data = buildBinaryEnvelopeData({
|
|
320
|
+
bytes: input.bytes,
|
|
321
|
+
mimeType: input.mimeType,
|
|
322
|
+
filename: input.filename,
|
|
323
|
+
contentHash,
|
|
324
|
+
metadata: input.metadata,
|
|
325
|
+
});
|
|
326
|
+
const envelope = createDataFileEnvelope(scopeResult.scope, input.collectedAt, stampServerKeys(data, input));
|
|
327
|
+
const writeResult = await input.storage.writeEnvelope(envelope);
|
|
328
|
+
try {
|
|
329
|
+
await writeBlockSidecars(input.storage, envelope);
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
// Best-effort bounded sidecars: raw envelope storage remains the source of truth.
|
|
333
|
+
}
|
|
334
|
+
await indexWrittenEnvelope(input.storage, {
|
|
335
|
+
fileId: null,
|
|
336
|
+
schemaId: null,
|
|
337
|
+
path: writeResult.relativePath,
|
|
338
|
+
scope: scopeResult.scope,
|
|
339
|
+
collectedAt: input.collectedAt,
|
|
340
|
+
sizeBytes: input.bytes.length,
|
|
341
|
+
afterTombstoneVersion: input.afterTombstoneVersion ?? null,
|
|
342
|
+
});
|
|
343
|
+
return {
|
|
344
|
+
ok: true,
|
|
345
|
+
scope: scopeResult.scope,
|
|
346
|
+
collectedAt: input.collectedAt,
|
|
347
|
+
response: ingestResponse(scopeResult.scope, input),
|
|
348
|
+
writeResult,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
export async function deleteDataScopeContract(input) {
|
|
352
|
+
const scopeResult = parseDataScopeContract(input.scopeParam);
|
|
353
|
+
if (!scopeResult.ok)
|
|
354
|
+
return scopeResult;
|
|
355
|
+
return {
|
|
356
|
+
ok: true,
|
|
357
|
+
deletedCount: await input.storage.deleteScope(scopeResult.scope),
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
async function writeBlockSidecars(storage, envelope) {
|
|
361
|
+
if (!storage.writeBlockManifest)
|
|
362
|
+
return;
|
|
363
|
+
const built = await buildDataBlocksAsync({
|
|
364
|
+
scope: envelope.scope,
|
|
365
|
+
collectedAt: envelope.collectedAt,
|
|
366
|
+
schemaId: envelope.schemaId,
|
|
367
|
+
content: envelope,
|
|
368
|
+
});
|
|
369
|
+
await storage.writeBlockManifest(envelope.scope, envelope.collectedAt, built.manifest, built.blocks);
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/contracts/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/vana-sdk/browser";
|
|
2
|
+
import type { ServerSigner } from "../signing/index.js";
|
|
3
|
+
import { type ContractResult } from "./http.js";
|
|
4
|
+
export interface VerifyGrantRequestBody {
|
|
5
|
+
grantorAddress: `0x${string}`;
|
|
6
|
+
granteeId: `0x${string}`;
|
|
7
|
+
scopes: string[];
|
|
8
|
+
grantVersion: string;
|
|
9
|
+
expiresAt: string;
|
|
10
|
+
signature: `0x${string}`;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateGrantRequestBody {
|
|
13
|
+
granteeAddress: `0x${string}`;
|
|
14
|
+
scopes: string[];
|
|
15
|
+
/** Unix seconds; 0 = no expiry. Default 0 when omitted. */
|
|
16
|
+
expiresAt?: number;
|
|
17
|
+
/** Decimal uint256 string; default "1". */
|
|
18
|
+
grantVersion?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateGrantContractInput {
|
|
21
|
+
gateway: Pick<GatewayClient, "getBuilder" | "createGrant">;
|
|
22
|
+
serverOwner?: `0x${string}`;
|
|
23
|
+
serverSigner?: Pick<ServerSigner, "signGrantRegistration">;
|
|
24
|
+
body: unknown;
|
|
25
|
+
}
|
|
26
|
+
export interface RevokeGrantContractInput {
|
|
27
|
+
gateway: Pick<GatewayClient, "getGrant" | "revokeGrant">;
|
|
28
|
+
serverOwner?: `0x${string}`;
|
|
29
|
+
serverSigner?: Partial<Pick<ServerSigner, "signGrantRevocation">>;
|
|
30
|
+
grantId: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ListGrantsContractInput {
|
|
33
|
+
gateway: Pick<GatewayClient, "listGrantsByUser">;
|
|
34
|
+
serverOwner?: `0x${string}`;
|
|
35
|
+
}
|
|
36
|
+
export interface VerifyGrantContractInput {
|
|
37
|
+
body: unknown;
|
|
38
|
+
gatewayConfig?: DataPortabilityGatewayConfig;
|
|
39
|
+
nowSeconds?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function listGrantsContract(input: ListGrantsContractInput): Promise<ContractResult>;
|
|
42
|
+
export declare function createGrantContract(input: CreateGrantContractInput): Promise<ContractResult>;
|
|
43
|
+
export declare function revokeGrantContract(input: RevokeGrantContractInput): Promise<ContractResult>;
|
|
44
|
+
export declare function verifyGrantContract({ body, gatewayConfig, nowSeconds, }: VerifyGrantContractInput): Promise<ContractResult>;
|
|
45
|
+
//# sourceMappingURL=grants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/contracts/grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,aAAa,EAEd,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAMnB,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;CAC1B;AAMD,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAC3D,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,4BAA4B,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2ED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAIzB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA0DzB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAoDzB;AAED,wBAAsB,mBAAmB,CAAC,EACxC,IAAI,EACJ,aAAa,EACb,UAA0C,GAC3C,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsCpD"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { isDataPortabilityGatewayConfig, verifyGrantRegistration, } from "@opendatalabs/vana-sdk/browser";
|
|
2
|
+
import { contractError, contractOk, contractProtocolError, } from "./http.js";
|
|
3
|
+
function isStringArray(value) {
|
|
4
|
+
return (Array.isArray(value) && value.every((entry) => typeof entry === "string"));
|
|
5
|
+
}
|
|
6
|
+
function isValidCreateBody(body) {
|
|
7
|
+
if (body === null || typeof body !== "object" || Array.isArray(body)) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const b = body;
|
|
11
|
+
if (typeof b.granteeAddress !== "string" ||
|
|
12
|
+
!b.granteeAddress.startsWith("0x")) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (!isStringArray(b.scopes) || b.scopes.length === 0)
|
|
16
|
+
return false;
|
|
17
|
+
if (b.expiresAt !== undefined && typeof b.expiresAt !== "number") {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (b.grantVersion !== undefined && typeof b.grantVersion !== "string") {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
function isValidVerifyBody(body) {
|
|
26
|
+
if (body === null || typeof body !== "object" || Array.isArray(body)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const b = body;
|
|
30
|
+
if (typeof b.grantorAddress !== "string" ||
|
|
31
|
+
!b.grantorAddress.startsWith("0x")) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (typeof b.granteeId !== "string" || !b.granteeId.startsWith("0x")) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!isStringArray(b.scopes) || b.scopes.length === 0)
|
|
38
|
+
return false;
|
|
39
|
+
if (typeof b.grantVersion !== "string")
|
|
40
|
+
return false;
|
|
41
|
+
if (typeof b.expiresAt !== "string")
|
|
42
|
+
return false;
|
|
43
|
+
if (typeof b.signature !== "string" || !b.signature.startsWith("0x")) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
function isValidGrantId(grantId) {
|
|
49
|
+
return grantId.startsWith("0x") && grantId.length > 2;
|
|
50
|
+
}
|
|
51
|
+
function serverOwnerNotConfigured() {
|
|
52
|
+
return contractProtocolError(500, "SERVER_NOT_CONFIGURED", "Server owner address not configured. Set VANA_MASTER_KEY_SIGNATURE environment variable.");
|
|
53
|
+
}
|
|
54
|
+
// Bigint conversion guard. Returns null on non-numeric / negative input.
|
|
55
|
+
function toUint256(value) {
|
|
56
|
+
try {
|
|
57
|
+
const big = typeof value === "bigint" ? value : BigInt(value);
|
|
58
|
+
if (big < 0n)
|
|
59
|
+
return null;
|
|
60
|
+
return big;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export async function listGrantsContract(input) {
|
|
67
|
+
if (!input.serverOwner)
|
|
68
|
+
return serverOwnerNotConfigured();
|
|
69
|
+
const grants = await input.gateway.listGrantsByUser(input.serverOwner);
|
|
70
|
+
return contractOk({ grants });
|
|
71
|
+
}
|
|
72
|
+
export async function createGrantContract(input) {
|
|
73
|
+
if (!input.serverOwner)
|
|
74
|
+
return serverOwnerNotConfigured();
|
|
75
|
+
if (!input.serverSigner) {
|
|
76
|
+
return contractProtocolError(500, "SERVER_SIGNER_NOT_CONFIGURED", "Server signer not configured. Set VANA_MASTER_KEY_SIGNATURE environment variable.");
|
|
77
|
+
}
|
|
78
|
+
if (!isValidCreateBody(input.body)) {
|
|
79
|
+
return contractError(400, "INVALID_BODY", "Body must include granteeAddress (0x string) and scopes (non-empty string array)");
|
|
80
|
+
}
|
|
81
|
+
const { granteeAddress, scopes, expiresAt, grantVersion } = input.body;
|
|
82
|
+
const builder = await input.gateway.getBuilder(granteeAddress);
|
|
83
|
+
if (!builder) {
|
|
84
|
+
return contractProtocolError(404, "BUILDER_NOT_REGISTERED", `Builder ${granteeAddress} is not registered on-chain`);
|
|
85
|
+
}
|
|
86
|
+
// Default to first-registration grantVersion=1. Re-registration callers
|
|
87
|
+
// are expected to pass a strictly higher value. The gateway returns 409
|
|
88
|
+
// on stale versions so retries can rebase against the live counter.
|
|
89
|
+
const grantVersionBig = toUint256(grantVersion ?? "1");
|
|
90
|
+
if (grantVersionBig === null || grantVersionBig < 1n) {
|
|
91
|
+
return contractError(400, "INVALID_BODY", "grantVersion must be a uint256 >= 1");
|
|
92
|
+
}
|
|
93
|
+
const expiresAtBig = BigInt(expiresAt ?? 0);
|
|
94
|
+
const signature = await input.serverSigner.signGrantRegistration({
|
|
95
|
+
grantorAddress: input.serverOwner,
|
|
96
|
+
granteeId: builder.id,
|
|
97
|
+
scopes,
|
|
98
|
+
grantVersion: grantVersionBig,
|
|
99
|
+
expiresAt: expiresAtBig,
|
|
100
|
+
});
|
|
101
|
+
const params = {
|
|
102
|
+
grantorAddress: input.serverOwner,
|
|
103
|
+
granteeId: builder.id,
|
|
104
|
+
scopes,
|
|
105
|
+
grantVersion: grantVersionBig.toString(),
|
|
106
|
+
expiresAt: expiresAtBig.toString(),
|
|
107
|
+
signature,
|
|
108
|
+
};
|
|
109
|
+
const result = await input.gateway.createGrant(params);
|
|
110
|
+
return contractOk({ grantId: result.grantId }, 201);
|
|
111
|
+
}
|
|
112
|
+
export async function revokeGrantContract(input) {
|
|
113
|
+
if (!input.serverOwner)
|
|
114
|
+
return serverOwnerNotConfigured();
|
|
115
|
+
if (!input.serverSigner?.signGrantRevocation) {
|
|
116
|
+
return contractProtocolError(500, "SERVER_SIGNER_NOT_CONFIGURED", "Server signer not configured. Set VANA_MASTER_KEY_SIGNATURE environment variable.");
|
|
117
|
+
}
|
|
118
|
+
if (!isValidGrantId(input.grantId)) {
|
|
119
|
+
return contractError(400, "INVALID_GRANT_ID", "Grant id must be a non-empty 0x string");
|
|
120
|
+
}
|
|
121
|
+
// Canary GrantRevocation shares the (grantor, grantee) monotonic nonce
|
|
122
|
+
// with registration: both events advance the same grantVersion counter.
|
|
123
|
+
// Fetch the current grant to read its grantVersion, then increment so
|
|
124
|
+
// the on-chain CAS check accepts the revocation.
|
|
125
|
+
const current = await input.gateway.getGrant(input.grantId);
|
|
126
|
+
if (!current) {
|
|
127
|
+
return contractProtocolError(404, "GRANT_NOT_FOUND", `Grant ${input.grantId} not found`);
|
|
128
|
+
}
|
|
129
|
+
const currentVersion = toUint256(current.grantVersion);
|
|
130
|
+
if (currentVersion === null) {
|
|
131
|
+
return contractProtocolError(500, "INVALID_GRANT_STATE", `Grant ${input.grantId} has unparseable grantVersion`);
|
|
132
|
+
}
|
|
133
|
+
const nextVersion = currentVersion + 1n;
|
|
134
|
+
const signature = await input.serverSigner.signGrantRevocation({
|
|
135
|
+
grantorAddress: input.serverOwner,
|
|
136
|
+
grantId: input.grantId,
|
|
137
|
+
grantVersion: nextVersion,
|
|
138
|
+
});
|
|
139
|
+
const params = {
|
|
140
|
+
grantorAddress: input.serverOwner,
|
|
141
|
+
grantId: input.grantId,
|
|
142
|
+
grantVersion: nextVersion.toString(),
|
|
143
|
+
signature,
|
|
144
|
+
};
|
|
145
|
+
await input.gateway.revokeGrant(params);
|
|
146
|
+
return contractOk({ status: "revoked", grantId: input.grantId });
|
|
147
|
+
}
|
|
148
|
+
export async function verifyGrantContract({ body, gatewayConfig, nowSeconds = Math.floor(Date.now() / 1000), }) {
|
|
149
|
+
if (!isValidVerifyBody(body)) {
|
|
150
|
+
return contractError(400, "INVALID_BODY", "Body must include grantorAddress, granteeId, scopes, grantVersion, expiresAt, and signature");
|
|
151
|
+
}
|
|
152
|
+
if (!isDataPortabilityGatewayConfig(gatewayConfig)) {
|
|
153
|
+
return contractProtocolError(500, "SERVER_NOT_CONFIGURED", "Gateway config is not configured");
|
|
154
|
+
}
|
|
155
|
+
const result = await verifyGrantRegistration({
|
|
156
|
+
gatewayConfig,
|
|
157
|
+
grantorAddress: body.grantorAddress,
|
|
158
|
+
granteeId: body.granteeId,
|
|
159
|
+
scopes: body.scopes,
|
|
160
|
+
grantVersion: body.grantVersion,
|
|
161
|
+
expiresAt: body.expiresAt,
|
|
162
|
+
signature: body.signature,
|
|
163
|
+
nowSeconds,
|
|
164
|
+
});
|
|
165
|
+
if (!result.valid) {
|
|
166
|
+
return contractOk({ valid: false, error: result.error });
|
|
167
|
+
}
|
|
168
|
+
return contractOk({
|
|
169
|
+
valid: true,
|
|
170
|
+
grantorAddress: result.grantorAddress,
|
|
171
|
+
granteeId: result.granteeId,
|
|
172
|
+
scopes: result.scopes,
|
|
173
|
+
grantVersion: result.grantVersion,
|
|
174
|
+
expiresAt: result.expiresAt,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=grants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/contracts/grants.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,UAAU,EACV,qBAAqB,GAEtB,MAAM,WAAW,CAAC;AAqDnB,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IACE,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;QACpC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IACE,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;QACpC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,qBAAqB,CAC1B,GAAG,EACH,uBAAuB,EACvB,0FAA0F,CAC3F,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,SAAS,CAAC,KAA+B;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,GAAG,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA8B;IAE9B,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,wBAAwB,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,wBAAwB,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAC1B,GAAG,EACH,8BAA8B,EAC9B,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,aAAa,CAClB,GAAG,EACH,cAAc,EACd,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,qBAAqB,CAC1B,GAAG,EACH,wBAAwB,EACxB,WAAW,cAAc,6BAA6B,CACvD,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;IACvD,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC;QACrD,OAAO,aAAa,CAClB,GAAG,EACH,cAAc,EACd,qCAAqC,CACtC,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC;QAC/D,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,EAAmB;QACtC,MAAM;QACN,YAAY,EAAE,eAAe;QAC7B,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAsB;QAChC,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,MAAM;QACN,YAAY,EAAE,eAAe,CAAC,QAAQ,EAAE;QACxC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE;QAClC,SAAS;KACV,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,wBAAwB,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAC7C,OAAO,qBAAqB,CAC1B,GAAG,EACH,8BAA8B,EAC9B,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,aAAa,CAClB,GAAG,EACH,kBAAkB,EAClB,wCAAwC,CACzC,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,qBAAqB,CAC1B,GAAG,EACH,iBAAiB,EACjB,SAAS,KAAK,CAAC,OAAO,YAAY,CACnC,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,qBAAqB,CAC1B,GAAG,EACH,qBAAqB,EACrB,SAAS,KAAK,CAAC,OAAO,+BAA+B,CACtD,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,GAAG,EAAE,CAAC;IAExC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAC7D,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAsB;QAChC,cAAc,EAAE,KAAK,CAAC,WAAW;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;QACpC,SAAS;KACV,CAAC;IACF,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,IAAI,EACJ,aAAa,EACb,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GACjB;IACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,aAAa,CAClB,GAAG,EACH,cAAc,EACd,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,OAAO,qBAAqB,CAC1B,GAAG,EACH,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;QAC3C,aAAa;QACb,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU;KACX,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC;QAChB,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ContractResult<TBody = unknown> = {
|
|
2
|
+
ok: true;
|
|
3
|
+
status: number;
|
|
4
|
+
body: TBody;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
status: number;
|
|
8
|
+
body: unknown;
|
|
9
|
+
};
|
|
10
|
+
export declare function contractOk<TBody>(body: TBody, status?: number): ContractResult<TBody>;
|
|
11
|
+
export declare function contractError(status: number, error: string, message: string): ContractResult;
|
|
12
|
+
export declare function contractProtocolError(status: number, errorCode: string, message: string): ContractResult;
|
|
13
|
+
export declare function normalizeIntegerParam(value: string | null | undefined, fallback: number): number;
|
|
14
|
+
export declare function parseJsonObjectBody(request: Request, invalidJsonMessage?: string): Promise<{
|
|
15
|
+
ok: true;
|
|
16
|
+
body: Record<string, unknown>;
|
|
17
|
+
} | {
|
|
18
|
+
ok: false;
|
|
19
|
+
result: ContractResult;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/contracts/http.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,OAAO,IACtC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjD,wBAAgB,UAAU,CAAC,KAAK,EAC9B,IAAI,EAAE,KAAK,EACX,MAAM,SAAM,GACX,cAAc,CAAC,KAAK,CAAC,CAEvB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,cAAc,CAMhB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,cAAc,CAYhB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,kBAAkB,SAAsB,GACvC,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CACxC,CAuBA"}
|