@opendatalabs/personal-server-ts-core 0.0.1-canary.00328bf
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 +408 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +1257 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/raw-envelope.d.ts +3 -0
- package/dist/api/raw-envelope.d.ts.map +1 -0
- package/dist/api/raw-envelope.js +215 -0
- package/dist/api/raw-envelope.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 +12 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +12 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +14 -0
- package/dist/config/paths.js.map +1 -0
- 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 +35 -0
- package/dist/contracts/sync.js.map +1 -0
- package/dist/derivatives/answer-shape.d.ts +83 -0
- package/dist/derivatives/answer-shape.d.ts.map +1 -0
- package/dist/derivatives/answer-shape.js +320 -0
- package/dist/derivatives/answer-shape.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 +374 -0
- package/dist/derivatives/api.js.map +1 -0
- package/dist/derivatives/compute.d.ts +112 -0
- package/dist/derivatives/compute.d.ts.map +1 -0
- package/dist/derivatives/compute.js +476 -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 +11 -0
- package/dist/derivatives/index.d.ts.map +1 -0
- package/dist/derivatives/index.js +11 -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 +99 -0
- package/dist/derivatives/prompt.d.ts.map +1 -0
- package/dist/derivatives/prompt.js +281 -0
- package/dist/derivatives/prompt.js.map +1 -0
- package/dist/derivatives/registration.d.ts +56 -0
- package/dist/derivatives/registration.d.ts.map +1 -0
- package/dist/derivatives/registration.js +187 -0
- package/dist/derivatives/registration.js.map +1 -0
- package/dist/derivatives/scheduler.d.ts +114 -0
- package/dist/derivatives/scheduler.d.ts.map +1 -0
- package/dist/derivatives/scheduler.js +331 -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 +79 -0
- package/dist/derivatives/store.js.map +1 -0
- package/dist/derivatives/types.d.ts +102 -0
- package/dist/derivatives/types.d.ts.map +1 -0
- package/dist/derivatives/types.js +29 -0
- package/dist/derivatives/types.js.map +1 -0
- package/dist/errors/catalog.d.ts +125 -0
- package/dist/errors/catalog.d.ts.map +1 -0
- package/dist/errors/catalog.js +198 -0
- package/dist/errors/catalog.js.map +1 -0
- package/dist/errors/pdpp-catalog.d.ts +36 -0
- package/dist/errors/pdpp-catalog.d.ts.map +1 -0
- package/dist/errors/pdpp-catalog.js +82 -0
- package/dist/errors/pdpp-catalog.js.map +1 -0
- package/dist/grants/index.d.ts +5 -0
- package/dist/grants/index.d.ts.map +1 -0
- package/dist/grants/index.js +6 -0
- package/dist/grants/index.js.map +1 -0
- package/dist/grants/pdpp-binding-store.d.ts +58 -0
- package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
- package/dist/grants/pdpp-binding-store.js +97 -0
- package/dist/grants/pdpp-binding-store.js.map +1 -0
- package/dist/grants/pdpp-binding.d.ts +179 -0
- package/dist/grants/pdpp-binding.d.ts.map +1 -0
- package/dist/grants/pdpp-binding.js +214 -0
- package/dist/grants/pdpp-binding.js.map +1 -0
- package/dist/keys/index.d.ts +3 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +2 -0
- package/dist/keys/index.js.map +1 -0
- 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 +24 -0
- package/dist/keys/server-account.d.ts.map +1 -0
- package/dist/keys/server-account.js +2 -0
- package/dist/keys/server-account.js.map +1 -0
- 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 +9 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +5 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logging/access-log.d.ts +23 -0
- package/dist/logging/access-log.d.ts.map +1 -0
- package/dist/logging/access-log.js +2 -0
- package/dist/logging/access-log.js.map +1 -0
- package/dist/logging/access-reader.d.ts +14 -0
- package/dist/logging/access-reader.d.ts.map +1 -0
- package/dist/logging/access-reader.js +2 -0
- package/dist/logging/access-reader.js.map +1 -0
- 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 +201 -0
- package/dist/mcp/connection-api.d.ts.map +1 -0
- package/dist/mcp/connection-api.js +506 -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 +12 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +12 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/read-client.d.ts +176 -0
- package/dist/mcp/read-client.d.ts.map +1 -0
- package/dist/mcp/read-client.js +579 -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 +72 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +447 -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 +119 -0
- package/dist/mcp/store.js.map +1 -0
- package/dist/mcp/token-expiry.d.ts +38 -0
- package/dist/mcp/token-expiry.d.ts.map +1 -0
- package/dist/mcp/token-expiry.js +55 -0
- package/dist/mcp/token-expiry.js.map +1 -0
- package/dist/mcp/tools.d.ts +95 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1381 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +135 -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/pdpp/approval.d.ts +182 -0
- package/dist/pdpp/approval.d.ts.map +1 -0
- package/dist/pdpp/approval.js +337 -0
- package/dist/pdpp/approval.js.map +1 -0
- package/dist/pdpp/client-identity.d.ts +88 -0
- package/dist/pdpp/client-identity.d.ts.map +1 -0
- package/dist/pdpp/client-identity.js +183 -0
- package/dist/pdpp/client-identity.js.map +1 -0
- package/dist/pdpp/client-metadata.d.ts +95 -0
- package/dist/pdpp/client-metadata.d.ts.map +1 -0
- package/dist/pdpp/client-metadata.js +96 -0
- package/dist/pdpp/client-metadata.js.map +1 -0
- package/dist/pdpp/declaration.d.ts +118 -0
- package/dist/pdpp/declaration.d.ts.map +1 -0
- package/dist/pdpp/declaration.js +549 -0
- package/dist/pdpp/declaration.js.map +1 -0
- package/dist/pdpp/index.d.ts +35 -0
- package/dist/pdpp/index.d.ts.map +1 -0
- package/dist/pdpp/index.js +22 -0
- package/dist/pdpp/index.js.map +1 -0
- package/dist/pdpp/issuance.d.ts +91 -0
- package/dist/pdpp/issuance.d.ts.map +1 -0
- package/dist/pdpp/issuance.js +124 -0
- package/dist/pdpp/issuance.js.map +1 -0
- package/dist/pdpp/pkce.d.ts +53 -0
- package/dist/pdpp/pkce.d.ts.map +1 -0
- package/dist/pdpp/pkce.js +109 -0
- package/dist/pdpp/pkce.js.map +1 -0
- package/dist/pdpp/redirect.d.ts +60 -0
- package/dist/pdpp/redirect.d.ts.map +1 -0
- package/dist/pdpp/redirect.js +125 -0
- package/dist/pdpp/redirect.js.map +1 -0
- package/dist/pdpp/resolve.d.ts +53 -0
- package/dist/pdpp/resolve.d.ts.map +1 -0
- package/dist/pdpp/resolve.js +218 -0
- package/dist/pdpp/resolve.js.map +1 -0
- package/dist/pdpp/review.d.ts +155 -0
- package/dist/pdpp/review.d.ts.map +1 -0
- package/dist/pdpp/review.js +142 -0
- package/dist/pdpp/review.js.map +1 -0
- package/dist/pdpp/selection.d.ts +43 -0
- package/dist/pdpp/selection.d.ts.map +1 -0
- package/dist/pdpp/selection.js +211 -0
- package/dist/pdpp/selection.js.map +1 -0
- package/dist/pdpp/store.d.ts +204 -0
- package/dist/pdpp/store.d.ts.map +1 -0
- package/dist/pdpp/store.js +501 -0
- package/dist/pdpp/store.js.map +1 -0
- package/dist/pdpp/tokens.d.ts +149 -0
- package/dist/pdpp/tokens.d.ts.map +1 -0
- package/dist/pdpp/tokens.js +387 -0
- package/dist/pdpp/tokens.js.map +1 -0
- package/dist/pdpp/types.d.ts +258 -0
- package/dist/pdpp/types.d.ts.map +1 -0
- package/dist/pdpp/types.js +40 -0
- package/dist/pdpp/types.js.map +1 -0
- package/dist/pdpp-version.d.ts +28 -0
- package/dist/pdpp-version.d.ts.map +1 -0
- package/dist/pdpp-version.js +28 -0
- package/dist/pdpp-version.js.map +1 -0
- package/dist/policy/data-read.d.ts +56 -0
- package/dist/policy/data-read.d.ts.map +1 -0
- package/dist/policy/data-read.js +176 -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 +243 -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/ports/pdpp-auth.d.ts +103 -0
- package/dist/ports/pdpp-auth.d.ts.map +1 -0
- package/dist/ports/pdpp-auth.js +37 -0
- package/dist/ports/pdpp-auth.js.map +1 -0
- package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
- package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
- package/dist/ports/pdpp-auth.test-utils.js +18 -0
- package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
- package/dist/schemas/server-config.d.ts +190 -0
- package/dist/schemas/server-config.d.ts.map +1 -0
- package/dist/schemas/server-config.js +282 -0
- package/dist/schemas/server-config.js.map +1 -0
- package/dist/signing/index.d.ts +3 -0
- package/dist/signing/index.d.ts.map +1 -0
- package/dist/signing/index.js +3 -0
- package/dist/signing/index.js.map +1 -0
- package/dist/signing/request-signer.d.ts +20 -0
- package/dist/signing/request-signer.d.ts.map +1 -0
- package/dist/signing/request-signer.js +23 -0
- package/dist/signing/request-signer.js.map +1 -0
- package/dist/signing/signer.d.ts +40 -0
- package/dist/signing/signer.d.ts.map +1 -0
- package/dist/signing/signer.js +56 -0
- package/dist/signing/signer.js.map +1 -0
- package/dist/storage/adapters/index.d.ts +4 -0
- package/dist/storage/adapters/index.d.ts.map +1 -0
- package/dist/storage/adapters/index.js +3 -0
- package/dist/storage/adapters/index.js.map +1 -0
- package/dist/storage/adapters/interface.d.ts +57 -0
- package/dist/storage/adapters/interface.d.ts.map +1 -0
- package/dist/storage/adapters/interface.js +2 -0
- package/dist/storage/adapters/interface.js.map +1 -0
- 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 +12 -0
- package/dist/storage/adapters/vana.d.ts.map +1 -0
- package/dist/storage/adapters/vana.js +111 -0
- package/dist/storage/adapters/vana.js.map +1 -0
- 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/storage/blocks/types.js.map +1 -0
- package/dist/storage/hierarchy/index.d.ts +3 -0
- package/dist/storage/hierarchy/index.d.ts.map +1 -0
- package/dist/storage/hierarchy/index.js +2 -0
- package/dist/storage/hierarchy/index.js.map +1 -0
- package/dist/storage/hierarchy/manager.d.ts +9 -0
- package/dist/storage/hierarchy/manager.d.ts.map +1 -0
- package/dist/storage/hierarchy/manager.js +2 -0
- package/dist/storage/hierarchy/manager.js.map +1 -0
- package/dist/storage/hierarchy/paths.d.ts +11 -0
- package/dist/storage/hierarchy/paths.d.ts.map +1 -0
- package/dist/storage/hierarchy/paths.js +43 -0
- package/dist/storage/hierarchy/paths.js.map +1 -0
- package/dist/storage/index/index.d.ts +3 -0
- package/dist/storage/index/index.d.ts.map +1 -0
- package/dist/storage/index/index.js +2 -0
- package/dist/storage/index/index.js.map +1 -0
- package/dist/storage/index/manager.d.ts +63 -0
- package/dist/storage/index/manager.d.ts.map +1 -0
- package/dist/storage/index/manager.js +2 -0
- package/dist/storage/index/manager.js.map +1 -0
- package/dist/storage/index/schema.d.ts +2 -0
- package/dist/storage/index/schema.d.ts.map +1 -0
- package/dist/storage/index/schema.js +2 -0
- package/dist/storage/index/schema.js.map +1 -0
- package/dist/storage/index/types.d.ts +37 -0
- package/dist/storage/index/types.d.ts.map +1 -0
- package/dist/storage/index/types.js +2 -0
- package/dist/storage/index/types.js.map +1 -0
- package/dist/storage/pdpp-records/cursor.d.ts +27 -0
- package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
- package/dist/storage/pdpp-records/cursor.js +49 -0
- package/dist/storage/pdpp-records/cursor.js.map +1 -0
- package/dist/storage/pdpp-records/enforcement.d.ts +37 -0
- package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
- package/dist/storage/pdpp-records/enforcement.js +79 -0
- package/dist/storage/pdpp-records/enforcement.js.map +1 -0
- package/dist/storage/pdpp-records/index.d.ts +8 -0
- package/dist/storage/pdpp-records/index.d.ts.map +1 -0
- package/dist/storage/pdpp-records/index.js +8 -0
- package/dist/storage/pdpp-records/index.js.map +1 -0
- package/dist/storage/pdpp-records/interface.d.ts +49 -0
- package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
- package/dist/storage/pdpp-records/interface.js +2 -0
- package/dist/storage/pdpp-records/interface.js.map +1 -0
- package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
- package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
- package/dist/storage/pdpp-records/memory-store.js +0 -0
- package/dist/storage/pdpp-records/memory-store.js.map +1 -0
- package/dist/storage/pdpp-records/record-key.d.ts +52 -0
- package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
- package/dist/storage/pdpp-records/record-key.js +97 -0
- package/dist/storage/pdpp-records/record-key.js.map +1 -0
- package/dist/storage/pdpp-records/stream-declaration.d.ts +43 -0
- package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
- package/dist/storage/pdpp-records/stream-declaration.js +17 -0
- package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
- package/dist/storage/pdpp-records/types.d.ts +93 -0
- package/dist/storage/pdpp-records/types.d.ts.map +1 -0
- package/dist/storage/pdpp-records/types.js +17 -0
- package/dist/storage/pdpp-records/types.js.map +1 -0
- 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 +10 -0
- package/dist/sync/cursor.d.ts.map +1 -0
- package/dist/sync/cursor.js +2 -0
- package/dist/sync/cursor.js.map +1 -0
- 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 +58 -0
- package/dist/sync/engine/sync-manager.d.ts.map +1 -0
- package/dist/sync/engine/sync-manager.js +285 -0
- package/dist/sync/engine/sync-manager.js.map +1 -0
- package/dist/sync/index.d.ts +15 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +14 -0
- package/dist/sync/index.js.map +1 -0
- 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/pdpp-import.d.ts +192 -0
- package/dist/sync/pdpp-import.d.ts.map +1 -0
- package/dist/sync/pdpp-import.js +422 -0
- package/dist/sync/pdpp-import.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 +27 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- 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 +159 -0
- package/dist/sync/workers/download.d.ts.map +1 -0
- package/dist/sync/workers/download.js +731 -0
- package/dist/sync/workers/download.js.map +1 -0
- package/dist/sync/workers/upload.d.ts +98 -0
- package/dist/sync/workers/upload.d.ts.map +1 -0
- package/dist/sync/workers/upload.js +412 -0
- package/dist/sync/workers/upload.js.map +1 -0
- 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 +5 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +5 -0
- package/dist/test-utils/index.js.map +1 -0
- 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 +47 -0
- package/dist/test-utils/wallet.d.ts.map +1 -0
- package/dist/test-utils/wallet.js +98 -0
- package/dist/test-utils/wallet.js.map +1 -0
- 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 +175 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded SourceDeclaration retrieval (§5 declaration acceptance, §10
|
|
3
|
+
* declaration retrieval hygiene).
|
|
4
|
+
*
|
|
5
|
+
* An AS that fetches a client-supplied URL is an SSRF engine unless it is
|
|
6
|
+
* fenced. The rules here are the fence: HTTPS only, no private or loopback or
|
|
7
|
+
* link-local address literals, a bounded redirect chain that is re-checked at
|
|
8
|
+
* every hop, a response size cap, and a timeout. Each redirect is validated
|
|
9
|
+
* again because a public hostname resolving to a public IP can redirect to
|
|
10
|
+
* `http://169.254.169.254/` and a one-shot check at the start would miss it.
|
|
11
|
+
*
|
|
12
|
+
* What this module deliberately does NOT do is decide whether a declaration is
|
|
13
|
+
* *trusted*. That is deployment policy (`DeclarationTrustPolicy`), applied
|
|
14
|
+
* explicitly by the caller, because "we fetched it safely" and "we accept its
|
|
15
|
+
* authority over this source" are different questions.
|
|
16
|
+
*/
|
|
17
|
+
import { createHash } from "node:crypto";
|
|
18
|
+
import { isIP } from "node:net";
|
|
19
|
+
export const MAX_DECLARATION_BYTES = 256 * 1024;
|
|
20
|
+
export const MAX_REDIRECTS = 3;
|
|
21
|
+
export const DECLARATION_FETCH_TIMEOUT_MS = 5_000;
|
|
22
|
+
/**
|
|
23
|
+
* Private, loopback, link-local, and unique-local ranges. Checked against
|
|
24
|
+
* address *literals* in the URL. A hostname that resolves into these ranges is
|
|
25
|
+
* a DNS-rebinding concern the fetch layer must also handle; we reject the
|
|
26
|
+
* literal form here and keep the redirect chain bounded so a rebind has a much
|
|
27
|
+
* smaller window to work in.
|
|
28
|
+
*/
|
|
29
|
+
function isPrivateAddressLiteral(host) {
|
|
30
|
+
const bare = host.startsWith("[") && host.endsWith("]") ? host.slice(1, -1) : host;
|
|
31
|
+
const version = isIP(bare);
|
|
32
|
+
if (version === 4) {
|
|
33
|
+
const parts = bare.split(".").map(Number);
|
|
34
|
+
const [a, b] = parts;
|
|
35
|
+
if (a === 10 || a === 127 || a === 0)
|
|
36
|
+
return true;
|
|
37
|
+
if (a === 172 && b >= 16 && b <= 31)
|
|
38
|
+
return true;
|
|
39
|
+
if (a === 192 && b === 168)
|
|
40
|
+
return true;
|
|
41
|
+
// 169.254.0.0/16 — link-local, and the cloud metadata endpoint.
|
|
42
|
+
if (a === 169 && b === 254)
|
|
43
|
+
return true;
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (version === 6) {
|
|
47
|
+
const lower = bare.toLowerCase();
|
|
48
|
+
if (lower === "::1" || lower === "::")
|
|
49
|
+
return true;
|
|
50
|
+
// fc00::/7 unique-local, fe80::/10 link-local.
|
|
51
|
+
if (lower.startsWith("fc") || lower.startsWith("fd"))
|
|
52
|
+
return true;
|
|
53
|
+
if (lower.startsWith("fe8") || lower.startsWith("fe9"))
|
|
54
|
+
return true;
|
|
55
|
+
if (lower.startsWith("fea") || lower.startsWith("feb"))
|
|
56
|
+
return true;
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
// Not a literal. Hostname forms that always mean "this machine".
|
|
60
|
+
const lowerHost = bare.toLowerCase();
|
|
61
|
+
return lowerHost === "localhost" || lowerHost.endsWith(".localhost");
|
|
62
|
+
}
|
|
63
|
+
/** Validate one URL in the chain. Applied to the origin URL and every hop. */
|
|
64
|
+
export function checkDeclarationUrl(raw, policy) {
|
|
65
|
+
let url;
|
|
66
|
+
try {
|
|
67
|
+
url = new URL(raw);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return {
|
|
71
|
+
code: "fetch_failed",
|
|
72
|
+
message: `malformed declaration URL: ${raw}`,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (url.protocol !== "https:" && !policy.allowInsecureForTesting) {
|
|
76
|
+
return {
|
|
77
|
+
code: "insecure_scheme",
|
|
78
|
+
message: `declaration URL must use https, got ${url.protocol}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (isPrivateAddressLiteral(url.hostname) &&
|
|
82
|
+
!policy.allowInsecureForTesting) {
|
|
83
|
+
return {
|
|
84
|
+
code: "private_address",
|
|
85
|
+
message: `declaration URL resolves to a private or loopback address: ${url.hostname}`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (!policy.allowAnyHttpsHost) {
|
|
89
|
+
const trusted = policy.trustedHosts ?? [];
|
|
90
|
+
if (!trusted.includes(url.hostname)) {
|
|
91
|
+
return {
|
|
92
|
+
code: "untrusted_source",
|
|
93
|
+
message: `declaration host '${url.hostname}' is not in this deployment's declaration trust policy`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Project a normative §5 `SourceDeclaration` onto the internal snapshot shape.
|
|
101
|
+
*
|
|
102
|
+
* Returns the document unchanged when it is already in the internal shape, so
|
|
103
|
+
* existing private fixtures keep working — this is a compatibility adapter,
|
|
104
|
+
* not a redefinition of either format.
|
|
105
|
+
*
|
|
106
|
+
* The projection is deliberately narrow:
|
|
107
|
+
* - `source.id` / `source.kind` → `source_id` / `source_kind`
|
|
108
|
+
* - `declaration_version` → `version`
|
|
109
|
+
* - per stream, `schema.properties` keys → `fields`, and `schema.required`
|
|
110
|
+
* → `required_fields`
|
|
111
|
+
*
|
|
112
|
+
* Deriving fields from the JSON Schema is the substantive part. The internal
|
|
113
|
+
* model wants a flat allowlist because §6 field selection and §8 projection
|
|
114
|
+
* operate on top-level names; the normative model carries a real schema
|
|
115
|
+
* because a declaration must describe record shape, not just name it. Reading
|
|
116
|
+
* `properties` keys is the honest projection of one onto the other, and
|
|
117
|
+
* `required` is exactly the per-stream consent floor §6 already calls for.
|
|
118
|
+
*
|
|
119
|
+
* Nothing here validates the normative document beyond what the projection
|
|
120
|
+
* needs — the checks that follow do that, and they run on the projected form
|
|
121
|
+
* so one code path enforces both.
|
|
122
|
+
*/
|
|
123
|
+
/**
|
|
124
|
+
* The source id a declaration document claims, in either shape.
|
|
125
|
+
*
|
|
126
|
+
* A caller that needs the id *before* parsing — a deployment loader keying
|
|
127
|
+
* retention by source, say — would otherwise have to reach into the document
|
|
128
|
+
* itself and pick a field. That is how the boot path came to accept only the
|
|
129
|
+
* internal flat `source_id` and silently skip every normative document, which
|
|
130
|
+
* left the AS unmounted with nothing but a warning to say why.
|
|
131
|
+
*
|
|
132
|
+
* Reading the shape is this module's job, so the question is answered here
|
|
133
|
+
* once. Returns null when neither shape carries a usable id; `parseDeclaration`
|
|
134
|
+
* remains the authority on whether the document is actually valid.
|
|
135
|
+
*/
|
|
136
|
+
export function declaredSourceId(body) {
|
|
137
|
+
let doc;
|
|
138
|
+
try {
|
|
139
|
+
doc = JSON.parse(body);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
if (typeof doc !== "object" || doc === null)
|
|
145
|
+
return null;
|
|
146
|
+
// Normative §5: `source.id`. Internal/flat: `source_id`.
|
|
147
|
+
const nested = doc.source?.id;
|
|
148
|
+
const flat = doc.source_id;
|
|
149
|
+
const id = typeof nested === "string" && nested.length > 0 ? nested : flat;
|
|
150
|
+
return typeof id === "string" && id.length > 0 ? id : null;
|
|
151
|
+
}
|
|
152
|
+
function normalizeNormativeDeclaration(doc) {
|
|
153
|
+
const source = doc.source;
|
|
154
|
+
if (typeof source !== "object" || source === null)
|
|
155
|
+
return doc;
|
|
156
|
+
const { id, kind } = source;
|
|
157
|
+
const declarationVersion = doc
|
|
158
|
+
.declaration_version;
|
|
159
|
+
const streams = Array.isArray(doc.streams)
|
|
160
|
+
? doc.streams.map((raw) => {
|
|
161
|
+
const stream = raw;
|
|
162
|
+
// Already internal-shaped: leave it alone rather than guessing.
|
|
163
|
+
if (Array.isArray(stream.fields))
|
|
164
|
+
return stream;
|
|
165
|
+
const schema = stream.schema;
|
|
166
|
+
if (!schema || typeof schema !== "object")
|
|
167
|
+
return stream;
|
|
168
|
+
return {
|
|
169
|
+
...stream,
|
|
170
|
+
fields: Object.keys(schema.properties ?? {}),
|
|
171
|
+
required_fields: Array.isArray(schema.required)
|
|
172
|
+
? schema.required
|
|
173
|
+
: [],
|
|
174
|
+
};
|
|
175
|
+
})
|
|
176
|
+
: doc.streams;
|
|
177
|
+
return {
|
|
178
|
+
...doc,
|
|
179
|
+
...(typeof id === "string" && { source_id: id }),
|
|
180
|
+
...(typeof kind === "string" && { source_kind: kind }),
|
|
181
|
+
...(typeof declarationVersion === "string" && {
|
|
182
|
+
version: declarationVersion,
|
|
183
|
+
}),
|
|
184
|
+
streams,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
export function computeDeclarationDigest(body) {
|
|
188
|
+
return createHash("sha256").update(body, "utf8").digest("hex");
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Parse and structurally validate a declaration document.
|
|
192
|
+
*
|
|
193
|
+
* Validates the embedded stream schemas enough that resolution can rely on
|
|
194
|
+
* them: every stream needs a name, a field list, and a primary key, and its
|
|
195
|
+
* `required_fields` must be a subset of its declared fields — otherwise the
|
|
196
|
+
* per-stream consent floor would name fields the schema does not have.
|
|
197
|
+
*/
|
|
198
|
+
export function parseDeclaration(body, expectedSourceId, expectedDigest) {
|
|
199
|
+
const digest = computeDeclarationDigest(body);
|
|
200
|
+
if (expectedDigest !== undefined && digest !== expectedDigest) {
|
|
201
|
+
return {
|
|
202
|
+
ok: false,
|
|
203
|
+
failure: {
|
|
204
|
+
code: "digest_mismatch",
|
|
205
|
+
message: "declaration digest does not match the expected value",
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
let doc;
|
|
210
|
+
try {
|
|
211
|
+
doc = JSON.parse(body);
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
return {
|
|
215
|
+
ok: false,
|
|
216
|
+
failure: {
|
|
217
|
+
code: "invalid_document",
|
|
218
|
+
message: "declaration is not valid JSON",
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// Accept the NORMATIVE §5 SourceDeclaration and project it onto this
|
|
223
|
+
// module's internal snapshot shape.
|
|
224
|
+
//
|
|
225
|
+
// PS historically parsed a private shape (`source_id`, `source_kind`,
|
|
226
|
+
// `version`, flat `fields[]`/`required_fields[]`). That shape is not the
|
|
227
|
+
// protocol: the published schema
|
|
228
|
+
// (`https://pdpp.dev/schemas/source-declaration/0.1.0`, `reference-contract`)
|
|
229
|
+
// requires `protocol_version`, nested `source {kind,id}`,
|
|
230
|
+
// `declaration_version`, `publisher`, `display`, and a real JSON-Schema
|
|
231
|
+
// `schema` per stream — and sets `additionalProperties: false`, so the
|
|
232
|
+
// private shape is affirmatively INVALID, not merely different.
|
|
233
|
+
//
|
|
234
|
+
// Normalizing here rather than loosening the checks below keeps the
|
|
235
|
+
// protocol boundary honest: a normative document is validated as normative,
|
|
236
|
+
// and the internal snapshot stays an internal detail. The raw bytes and
|
|
237
|
+
// their digest are untouched — `digest` above is computed over `body`
|
|
238
|
+
// exactly as retrieved, which is the property that proves a producer read
|
|
239
|
+
// the same bytes the owner consented against.
|
|
240
|
+
doc = normalizeNormativeDeclaration(doc);
|
|
241
|
+
if (typeof doc.source_id !== "string" || doc.source_id.length === 0) {
|
|
242
|
+
return {
|
|
243
|
+
ok: false,
|
|
244
|
+
failure: {
|
|
245
|
+
code: "invalid_document",
|
|
246
|
+
message: "declaration is missing source_id",
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// The declaration must claim the source we asked about. Without this check a
|
|
251
|
+
// trusted host could serve an authority for a source it does not own.
|
|
252
|
+
if (doc.source_id !== expectedSourceId) {
|
|
253
|
+
return {
|
|
254
|
+
ok: false,
|
|
255
|
+
failure: {
|
|
256
|
+
code: "source_id_mismatch",
|
|
257
|
+
message: `declaration declares source_id '${doc.source_id}' but was retrieved for '${expectedSourceId}'`,
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
if (doc.source_kind !== "connector" &&
|
|
262
|
+
doc.source_kind !== "provider_native") {
|
|
263
|
+
return {
|
|
264
|
+
ok: false,
|
|
265
|
+
failure: {
|
|
266
|
+
code: "invalid_document",
|
|
267
|
+
message: "declaration source_kind must be connector or provider_native",
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
if (typeof doc.version !== "string" || doc.version.length === 0) {
|
|
272
|
+
return {
|
|
273
|
+
ok: false,
|
|
274
|
+
failure: {
|
|
275
|
+
code: "invalid_document",
|
|
276
|
+
message: "declaration is missing version",
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
if (!Array.isArray(doc.streams) || doc.streams.length === 0) {
|
|
281
|
+
return {
|
|
282
|
+
ok: false,
|
|
283
|
+
failure: {
|
|
284
|
+
code: "invalid_document",
|
|
285
|
+
message: "declaration declares no streams",
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
const streams = [];
|
|
290
|
+
const seenStreams = new Set();
|
|
291
|
+
for (const raw of doc.streams) {
|
|
292
|
+
const s = raw;
|
|
293
|
+
if (typeof s.name !== "string" || s.name.length === 0) {
|
|
294
|
+
return {
|
|
295
|
+
ok: false,
|
|
296
|
+
failure: {
|
|
297
|
+
code: "invalid_document",
|
|
298
|
+
message: "a declared stream is missing name",
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
if (seenStreams.has(s.name)) {
|
|
303
|
+
return {
|
|
304
|
+
ok: false,
|
|
305
|
+
failure: {
|
|
306
|
+
code: "invalid_document",
|
|
307
|
+
message: `stream '${s.name}' is declared more than once`,
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
seenStreams.add(s.name);
|
|
312
|
+
if (!Array.isArray(s.fields) || s.fields.length === 0) {
|
|
313
|
+
return {
|
|
314
|
+
ok: false,
|
|
315
|
+
failure: {
|
|
316
|
+
code: "invalid_document",
|
|
317
|
+
message: `stream '${s.name}' declares no fields`,
|
|
318
|
+
},
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
const fields = s.fields;
|
|
322
|
+
const requiredFields = Array.isArray(s.required_fields)
|
|
323
|
+
? s.required_fields
|
|
324
|
+
: [];
|
|
325
|
+
const missing = requiredFields.filter((f) => !fields.includes(f));
|
|
326
|
+
if (missing.length > 0) {
|
|
327
|
+
return {
|
|
328
|
+
ok: false,
|
|
329
|
+
failure: {
|
|
330
|
+
code: "invalid_document",
|
|
331
|
+
message: `stream '${s.name}' marks fields required that its schema does not declare: ${missing.join(", ")}`,
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
if (!Array.isArray(s.primary_key) || s.primary_key.length === 0) {
|
|
336
|
+
return {
|
|
337
|
+
ok: false,
|
|
338
|
+
failure: {
|
|
339
|
+
code: "invalid_document",
|
|
340
|
+
message: `stream '${s.name}' declares no primary_key`,
|
|
341
|
+
},
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
// §5 stream semantics. An unrecognized value is a rejection rather than a
|
|
345
|
+
// silent fallback: coercing an unknown semantics to `mutable_state` would
|
|
346
|
+
// upsert records a declaration may have meant to be immutable.
|
|
347
|
+
if (s.semantics !== undefined &&
|
|
348
|
+
s.semantics !== "mutable_state" &&
|
|
349
|
+
s.semantics !== "append_only") {
|
|
350
|
+
return {
|
|
351
|
+
ok: false,
|
|
352
|
+
failure: {
|
|
353
|
+
code: "invalid_document",
|
|
354
|
+
message: `stream '${s.name}' declares unsupported semantics '${String(s.semantics)}'`,
|
|
355
|
+
},
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
streams.push({
|
|
359
|
+
name: s.name,
|
|
360
|
+
fields,
|
|
361
|
+
required_fields: requiredFields,
|
|
362
|
+
...(typeof s.semantics === "string" && {
|
|
363
|
+
semantics: s.semantics,
|
|
364
|
+
}),
|
|
365
|
+
...(typeof s.consent_time_field === "string" && {
|
|
366
|
+
consent_time_field: s.consent_time_field,
|
|
367
|
+
}),
|
|
368
|
+
primary_key: s.primary_key,
|
|
369
|
+
// Carried verbatim from the normative declaration so §8 metadata can
|
|
370
|
+
// report record shape and selection capability without a second lookup.
|
|
371
|
+
...(typeof s.schema === "object" && s.schema !== null
|
|
372
|
+
? { schema: s.schema }
|
|
373
|
+
: {}),
|
|
374
|
+
...(typeof s.selection === "object" && s.selection !== null
|
|
375
|
+
? { selection: s.selection }
|
|
376
|
+
: {}),
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
// §6: a preset naming the same stream twice makes the declaration invalid.
|
|
380
|
+
// That is a declaration-acceptance failure, not deferred to issuance.
|
|
381
|
+
const presets = Array.isArray(doc.selection_presets)
|
|
382
|
+
? doc.selection_presets
|
|
383
|
+
: undefined;
|
|
384
|
+
if (presets) {
|
|
385
|
+
for (const preset of presets) {
|
|
386
|
+
const seen = new Set();
|
|
387
|
+
for (const stream of preset.streams ?? []) {
|
|
388
|
+
if (seen.has(stream.name)) {
|
|
389
|
+
return {
|
|
390
|
+
ok: false,
|
|
391
|
+
failure: {
|
|
392
|
+
code: "invalid_document",
|
|
393
|
+
message: `selection preset '${preset.name}' names stream '${stream.name}' more than once`,
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
seen.add(stream.name);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
ok: true,
|
|
403
|
+
snapshot: {
|
|
404
|
+
source_id: doc.source_id,
|
|
405
|
+
source_kind: doc.source_kind,
|
|
406
|
+
version: doc.version,
|
|
407
|
+
digest,
|
|
408
|
+
streams,
|
|
409
|
+
...(Array.isArray(doc.views) && {
|
|
410
|
+
views: doc.views,
|
|
411
|
+
}),
|
|
412
|
+
...(presets && {
|
|
413
|
+
selection_presets: presets,
|
|
414
|
+
}),
|
|
415
|
+
},
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Read a response body, giving up as soon as it exceeds `limit` bytes.
|
|
420
|
+
*
|
|
421
|
+
* Returns null when the cap is passed. The stream is cancelled at that point,
|
|
422
|
+
* so a hostile or misconfigured host cannot make us hold more than the cap in
|
|
423
|
+
* memory however it frames the response. Falls back to a buffered read only
|
|
424
|
+
* when the runtime gives no readable stream, and still checks the size.
|
|
425
|
+
*/
|
|
426
|
+
async function readCapped(response, limit) {
|
|
427
|
+
const stream = response.body;
|
|
428
|
+
if (!stream) {
|
|
429
|
+
const buffered = await response.text();
|
|
430
|
+
return Buffer.byteLength(buffered, "utf8") > limit ? null : buffered;
|
|
431
|
+
}
|
|
432
|
+
const reader = stream.getReader();
|
|
433
|
+
const chunks = [];
|
|
434
|
+
let total = 0;
|
|
435
|
+
try {
|
|
436
|
+
for (;;) {
|
|
437
|
+
const { done, value } = await reader.read();
|
|
438
|
+
if (done)
|
|
439
|
+
break;
|
|
440
|
+
if (!value)
|
|
441
|
+
continue;
|
|
442
|
+
total += value.byteLength;
|
|
443
|
+
if (total > limit) {
|
|
444
|
+
await reader.cancel();
|
|
445
|
+
return null;
|
|
446
|
+
}
|
|
447
|
+
chunks.push(value);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
finally {
|
|
451
|
+
reader.releaseLock();
|
|
452
|
+
}
|
|
453
|
+
return Buffer.concat(chunks.map((c) => Buffer.from(c))).toString("utf8");
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Retrieve one declaration under the bounded rules, then parse and digest it.
|
|
457
|
+
*
|
|
458
|
+
* Redirects are followed manually so each hop can be re-validated. This is the
|
|
459
|
+
* difference between a fence and a formality: `fetch`'s automatic redirect
|
|
460
|
+
* following would validate only the URL we started with.
|
|
461
|
+
*/
|
|
462
|
+
export async function retrieveDeclaration(url, expectedSourceId, policy, options = {}) {
|
|
463
|
+
const fetcher = options.fetcher ?? ((u, init) => fetch(u, init));
|
|
464
|
+
let current = url;
|
|
465
|
+
for (let hop = 0; hop <= MAX_REDIRECTS; hop += 1) {
|
|
466
|
+
const problem = checkDeclarationUrl(current, policy);
|
|
467
|
+
if (problem)
|
|
468
|
+
return { ok: false, failure: problem };
|
|
469
|
+
const controller = new AbortController();
|
|
470
|
+
const timer = setTimeout(() => controller.abort(), DECLARATION_FETCH_TIMEOUT_MS);
|
|
471
|
+
let response;
|
|
472
|
+
try {
|
|
473
|
+
response = await fetcher(current, {
|
|
474
|
+
redirect: "manual",
|
|
475
|
+
signal: controller.signal,
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
catch (err) {
|
|
479
|
+
return {
|
|
480
|
+
ok: false,
|
|
481
|
+
failure: {
|
|
482
|
+
code: "fetch_failed",
|
|
483
|
+
message: `declaration retrieval failed: ${err.message}`,
|
|
484
|
+
},
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
finally {
|
|
488
|
+
clearTimeout(timer);
|
|
489
|
+
}
|
|
490
|
+
if (response.status >= 300 && response.status < 400) {
|
|
491
|
+
const location = response.headers.get("location");
|
|
492
|
+
if (!location) {
|
|
493
|
+
return {
|
|
494
|
+
ok: false,
|
|
495
|
+
failure: {
|
|
496
|
+
code: "fetch_failed",
|
|
497
|
+
message: "redirect response carried no Location header",
|
|
498
|
+
},
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
// Resolve relative redirects against the current URL, then re-check.
|
|
502
|
+
current = new URL(location, current).toString();
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (!response.ok) {
|
|
506
|
+
return {
|
|
507
|
+
ok: false,
|
|
508
|
+
failure: {
|
|
509
|
+
code: "fetch_failed",
|
|
510
|
+
message: `declaration retrieval returned HTTP ${response.status}`,
|
|
511
|
+
},
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
const declaredLength = response.headers.get("content-length");
|
|
515
|
+
if (declaredLength && Number(declaredLength) > MAX_DECLARATION_BYTES) {
|
|
516
|
+
return {
|
|
517
|
+
ok: false,
|
|
518
|
+
failure: {
|
|
519
|
+
code: "too_large",
|
|
520
|
+
message: `declaration exceeds ${MAX_DECLARATION_BYTES} bytes`,
|
|
521
|
+
},
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
// Read incrementally and abort the moment the cap is passed. `text()`
|
|
525
|
+
// would buffer the whole response first, so a host that omits or lies
|
|
526
|
+
// about Content-Length could make us allocate an unbounded body and only
|
|
527
|
+
// then be told it was too large — the cap has to bound the allocation, not
|
|
528
|
+
// just the outcome.
|
|
529
|
+
const body = await readCapped(response, MAX_DECLARATION_BYTES);
|
|
530
|
+
if (body === null) {
|
|
531
|
+
return {
|
|
532
|
+
ok: false,
|
|
533
|
+
failure: {
|
|
534
|
+
code: "too_large",
|
|
535
|
+
message: `declaration exceeds ${MAX_DECLARATION_BYTES} bytes`,
|
|
536
|
+
},
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
return parseDeclaration(body, expectedSourceId, options.expectedDigest);
|
|
540
|
+
}
|
|
541
|
+
return {
|
|
542
|
+
ok: false,
|
|
543
|
+
failure: {
|
|
544
|
+
code: "too_many_redirects",
|
|
545
|
+
message: `declaration retrieval exceeded ${MAX_REDIRECTS} redirects`,
|
|
546
|
+
},
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
//# sourceMappingURL=declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../src/pdpp/declaration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDPP Core v0.1.0 Authorization Server.
|
|
3
|
+
*
|
|
4
|
+
* Public seam for the PDPP AS: selection validation, axis resolution, consent
|
|
5
|
+
* review, grant issuance, grant-bound tokens, introspection, and revocation.
|
|
6
|
+
* The Resource Server consumes `PdppTokenService.resolveToken` (co-located) or
|
|
7
|
+
* `introspect` (separated) and enforces only from that result.
|
|
8
|
+
*/
|
|
9
|
+
export { PDPP_DATA_ACCESS_TYPE, PDPP_GRANT_VERSION, PDPP_API_VERSION, AI_TRAINING_PURPOSE, } from "./types.js";
|
|
10
|
+
export type { AccessMode, ClientClaims, ClientDisplay, DeclarationSnapshot, DeclaredPreset, DeclaredStream, DeclaredView, Grant, GrantStatus, InactiveReason, PdppAuthorizationDetail, PdppIntrospectionResponse, PdppTokenContext, PdppTokenKind, Retention, SelectionRequest, SourceKind, StreamGrant, StreamRequest, TimeConstraint, TimeRange, } from "./types.js";
|
|
11
|
+
export { validateSelectionRequest } from "./selection.js";
|
|
12
|
+
export type { SelectionFailure, SelectionFailureCode, SelectionValidation, } from "./selection.js";
|
|
13
|
+
export { resolveSelection } from "./resolve.js";
|
|
14
|
+
export type { InstanceInventory, ResolutionFailure, ResolutionFailureCode, ResolutionResult, } from "./resolve.js";
|
|
15
|
+
export { buildConsentReview, computeReviewDigest, isRegisteredPurposeCode, normalizeClientClaims, } from "./review.js";
|
|
16
|
+
export type { BuildReviewInput, ConsentReviewModel, RequesterIdentity, ReviewStream, } from "./review.js";
|
|
17
|
+
export { issueGrant } from "./issuance.js";
|
|
18
|
+
export type { ConsentEvidence, IssuanceFailure, IssuanceFailureCode, IssuanceResult, IssueGrantInput, } from "./issuance.js";
|
|
19
|
+
export { AUTHORIZATION_CODE_TTL_SECONDS, DEFAULT_ACCESS_TOKEN_TTL_SECONDS, mayIssueRefreshToken, PdppTokenService, toAuthorizationDetail, } from "./tokens.js";
|
|
20
|
+
export type { TokenFailure, TokenFailureCode, TokenIssuanceResult, TokenResult, PdppTokenServiceOptions, } from "./tokens.js";
|
|
21
|
+
export { approveAuthorization, AuthorizationSessionStore, denyAuthorization, fetchReview, REVIEW_SESSION_TTL_SECONDS, } from "./approval.js";
|
|
22
|
+
export type { ApprovalFailure, ApprovalFailureCode, ApprovalResult, AuthorizationSession, InstanceChoice, ReviewFetchResult, SessionState, } from "./approval.js";
|
|
23
|
+
export { REDIRECT_FAILURES_ARE_NEVER_REDIRECTED, validateRedirectUri, } from "./redirect.js";
|
|
24
|
+
export type { RedirectFailure, RedirectFailureCode, RegisteredRedirectPolicy, } from "./redirect.js";
|
|
25
|
+
export { computeS256Challenge, PKCE_METHOD_S256, validateCodeChallenge, verifyCodeVerifier, } from "./pkce.js";
|
|
26
|
+
export type { PkceFailure, PkceFailureCode } from "./pkce.js";
|
|
27
|
+
export { hashToken, newOpaqueToken, openPdppAuthStore, PdppAuthStore, PDPP_AUTH_STATE_VERSION, UnsupportedAuthStateError, } from "./store.js";
|
|
28
|
+
export type { AccessTokenRecord, AuthCodeRecord, StoredGrant, } from "./store.js";
|
|
29
|
+
export { checkDeclarationUrl, computeDeclarationDigest, declaredSourceId, DECLARATION_FETCH_TIMEOUT_MS, MAX_DECLARATION_BYTES, MAX_REDIRECTS, parseDeclaration, retrieveDeclaration, } from "./declaration.js";
|
|
30
|
+
export type { DeclarationFailure, DeclarationFailureCode, DeclarationFetcher, DeclarationResult, DeclarationTrustPolicy, } from "./declaration.js";
|
|
31
|
+
export { MAX_CLIENT_DOCUMENT_BYTES, resolveUrlHostedClientIdentity, } from "./client-identity.js";
|
|
32
|
+
export type { ClientDocumentFetcher, ClientIdentityFailure, ClientIdentityFailureCode, ClientIdentityResult, } from "./client-identity.js";
|
|
33
|
+
export { mayRenderRemoteLogo, resolveRequesterIdentity, verifyClientIdDocument, } from "./client-metadata.js";
|
|
34
|
+
export type { ClientIdMetadataDocument, RegisteredClientMetadata, ResolveRequesterInput, } from "./client-metadata.js";
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdpp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,KAAK,EACL,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sCAAsC,EACtC,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PDPP Core v0.1.0 Authorization Server.
|
|
3
|
+
*
|
|
4
|
+
* Public seam for the PDPP AS: selection validation, axis resolution, consent
|
|
5
|
+
* review, grant issuance, grant-bound tokens, introspection, and revocation.
|
|
6
|
+
* The Resource Server consumes `PdppTokenService.resolveToken` (co-located) or
|
|
7
|
+
* `introspect` (separated) and enforces only from that result.
|
|
8
|
+
*/
|
|
9
|
+
export { PDPP_DATA_ACCESS_TYPE, PDPP_GRANT_VERSION, PDPP_API_VERSION, AI_TRAINING_PURPOSE, } from "./types.js";
|
|
10
|
+
export { validateSelectionRequest } from "./selection.js";
|
|
11
|
+
export { resolveSelection } from "./resolve.js";
|
|
12
|
+
export { buildConsentReview, computeReviewDigest, isRegisteredPurposeCode, normalizeClientClaims, } from "./review.js";
|
|
13
|
+
export { issueGrant } from "./issuance.js";
|
|
14
|
+
export { AUTHORIZATION_CODE_TTL_SECONDS, DEFAULT_ACCESS_TOKEN_TTL_SECONDS, mayIssueRefreshToken, PdppTokenService, toAuthorizationDetail, } from "./tokens.js";
|
|
15
|
+
export { approveAuthorization, AuthorizationSessionStore, denyAuthorization, fetchReview, REVIEW_SESSION_TTL_SECONDS, } from "./approval.js";
|
|
16
|
+
export { REDIRECT_FAILURES_ARE_NEVER_REDIRECTED, validateRedirectUri, } from "./redirect.js";
|
|
17
|
+
export { computeS256Challenge, PKCE_METHOD_S256, validateCodeChallenge, verifyCodeVerifier, } from "./pkce.js";
|
|
18
|
+
export { hashToken, newOpaqueToken, openPdppAuthStore, PdppAuthStore, PDPP_AUTH_STATE_VERSION, UnsupportedAuthStateError, } from "./store.js";
|
|
19
|
+
export { checkDeclarationUrl, computeDeclarationDigest, declaredSourceId, DECLARATION_FETCH_TIMEOUT_MS, MAX_DECLARATION_BYTES, MAX_REDIRECTS, parseDeclaration, retrieveDeclaration, } from "./declaration.js";
|
|
20
|
+
export { MAX_CLIENT_DOCUMENT_BYTES, resolveUrlHostedClientIdentity, } from "./client-identity.js";
|
|
21
|
+
export { mayRenderRemoteLogo, resolveRequesterIdentity, verifyClientIdDocument, } from "./client-metadata.js";
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdpp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAyBpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAO1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQhD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACL,sCAAsC,EACtC,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAOpB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
|