effect 4.1.0 → 4.1.2
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/README.md +30 -0
- package/THIRD_PARTY_NOTICES.md +62 -0
- package/ai-docs/package.json +2 -2
- package/dist/BigDecimal.d.ts +139 -7
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +83 -14
- package/dist/BigDecimal.js.map +1 -1
- package/dist/ByteSize.d.ts.map +1 -1
- package/dist/ByteSize.js +27 -14
- package/dist/ByteSize.js.map +1 -1
- package/dist/Equal.d.ts +2 -2
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +3 -3
- package/dist/Equal.js.map +1 -1
- package/dist/Hash.d.ts +3 -2
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +5 -4
- package/dist/Hash.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +38 -32
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +27 -6
- package/dist/JsonSchema.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +0 -7
- package/dist/MutableRef.js.map +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +5 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +2 -1
- package/dist/Pool.js.map +1 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +0 -8
- package/dist/Ref.js.map +1 -1
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +8 -3
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +2 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2 -1
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +4 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +4 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +2 -2
- package/dist/SchemaTransformation.js +2 -2
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +6 -5
- package/dist/Stream.js.map +1 -1
- package/dist/ai/McpClient.d.ts +171 -19
- package/dist/ai/McpClient.d.ts.map +1 -1
- package/dist/ai/McpClient.js +277 -66
- package/dist/ai/McpClient.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +108 -0
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +99 -0
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts +120 -6
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +258 -49
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +20 -11
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Tool.d.ts.map +1 -1
- package/dist/ai/Tool.js +5 -7
- package/dist/ai/Tool.js.map +1 -1
- package/dist/ai/internal/mcpCore.js +72 -3
- package/dist/ai/internal/mcpCore.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +3 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +3 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +3 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +3 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +44 -8
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js +12 -0
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +3 -3
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSkills.d.ts +2 -0
- package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
- package/dist/ai/internal/mcpSkills.js +428 -0
- package/dist/ai/internal/mcpSkills.js.map +1 -0
- package/dist/ai/internal/structured-output.js +11 -2
- package/dist/ai/internal/structured-output.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +30 -11
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/Entity.d.ts +26 -0
- package/dist/cluster/Entity.d.ts.map +1 -1
- package/dist/cluster/Entity.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +6 -6
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +1 -3
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Reply.d.ts +1 -1
- package/dist/cluster/Reply.d.ts.map +1 -1
- package/dist/cluster/Reply.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +13 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts +13 -0
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +4 -1
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/internal/clusterAbandon.d.ts.map +1 -1
- package/dist/cluster/internal/clusterAbandon.js +6 -4
- package/dist/cluster/internal/clusterAbandon.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +63 -11
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/cluster/internal/transactionNotifications.d.ts +5 -0
- package/dist/cluster/internal/transactionNotifications.d.ts.map +1 -0
- package/dist/cluster/internal/transactionNotifications.js +5 -0
- package/dist/cluster/internal/transactionNotifications.js.map +1 -0
- package/dist/crypto/Aead.d.ts +2 -1
- package/dist/crypto/Aead.d.ts.map +1 -1
- package/dist/crypto/Aead.js +2 -2
- package/dist/crypto/Aead.js.map +1 -1
- package/dist/crypto/Cipher.d.ts +2 -1
- package/dist/crypto/Cipher.d.ts.map +1 -1
- package/dist/crypto/Cipher.js +2 -2
- package/dist/crypto/Cipher.js.map +1 -1
- package/dist/crypto/KeyAgreement.d.ts +3 -2
- package/dist/crypto/KeyAgreement.d.ts.map +1 -1
- package/dist/crypto/KeyAgreement.js +2 -2
- package/dist/crypto/KeyAgreement.js.map +1 -1
- package/dist/crypto/KeyFormat.d.ts +33 -1
- package/dist/crypto/KeyFormat.d.ts.map +1 -1
- package/dist/crypto/KeyFormat.js.map +1 -1
- package/dist/crypto/KeyWrap.d.ts +4 -3
- package/dist/crypto/KeyWrap.d.ts.map +1 -1
- package/dist/crypto/KeyWrap.js +2 -2
- package/dist/crypto/KeyWrap.js.map +1 -1
- package/dist/crypto/Mac.d.ts +2 -1
- package/dist/crypto/Mac.d.ts.map +1 -1
- package/dist/crypto/Mac.js +2 -2
- package/dist/crypto/Mac.js.map +1 -1
- package/dist/crypto/Signature.d.ts +3 -2
- package/dist/crypto/Signature.d.ts.map +1 -1
- package/dist/crypto/Signature.js +2 -2
- package/dist/crypto/Signature.js.map +1 -1
- package/dist/crypto/WebCrypto.d.ts +19 -0
- package/dist/crypto/WebCrypto.d.ts.map +1 -1
- package/dist/crypto/WebCrypto.js.map +1 -1
- package/dist/crypto/internal/asymmetric.js.map +1 -1
- package/dist/crypto/internal/key.js +3 -2
- package/dist/crypto/internal/key.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +26 -3
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/Json5.d.ts +44 -0
- package/dist/encoding/Json5.d.ts.map +1 -0
- package/dist/encoding/Json5.js +56 -0
- package/dist/encoding/Json5.js.map +1 -0
- package/dist/encoding/Jsonc.d.ts +47 -0
- package/dist/encoding/Jsonc.d.ts.map +1 -0
- package/dist/encoding/Jsonc.js +120 -0
- package/dist/encoding/Jsonc.js.map +1 -0
- package/dist/encoding/Ndjson.d.ts +5 -4
- package/dist/encoding/Ndjson.d.ts.map +1 -1
- package/dist/encoding/Ndjson.js +6 -5
- package/dist/encoding/Ndjson.js.map +1 -1
- package/dist/encoding/SchemaBinary.d.ts +94 -0
- package/dist/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/encoding/SchemaBinary.js +219 -6
- package/dist/encoding/SchemaBinary.js.map +1 -1
- package/dist/encoding/Sse.d.ts +3 -1
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +5 -3
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/encoding/index.d.ts +10 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +10 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/EventLog.d.ts +7 -0
- package/dist/eventlog/EventLog.d.ts.map +1 -1
- package/dist/eventlog/EventLog.js +7 -0
- package/dist/eventlog/EventLog.js.map +1 -1
- package/dist/eventlog/EventLogServer.d.ts +7 -1
- package/dist/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/eventlog/EventLogServer.js +55 -24
- package/dist/eventlog/EventLogServer.js.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.d.ts +10 -0
- package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
- package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
- package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.d.ts +21 -0
- package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/eventlog/EventLogSessionAuth.js +22 -0
- package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/graphql/GraphQLClient.d.ts +3 -1
- package/dist/graphql/GraphQLClient.d.ts.map +1 -1
- package/dist/graphql/GraphQLClient.js.map +1 -1
- package/dist/graphql/GraphQLClientError.d.ts +14 -9
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
- package/dist/graphql/GraphQLClientError.js +14 -21
- package/dist/graphql/GraphQLClientError.js.map +1 -1
- package/dist/graphql/GraphQLProtocol.d.ts +12 -3
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
- package/dist/graphql/GraphQLProtocol.js +4 -1
- package/dist/graphql/GraphQLProtocol.js.map +1 -1
- package/dist/http/HttpClient.d.ts +204 -16
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +93 -13
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/http/HttpServerRequest.js +38 -22
- package/dist/http/HttpServerRequest.js.map +1 -1
- package/dist/http/internal/mimeTypes.d.ts +4 -1
- package/dist/http/internal/mimeTypes.d.ts.map +1 -1
- package/dist/http/internal/mimeTypes.js +4 -1
- package/dist/http/internal/mimeTypes.js.map +1 -1
- package/dist/http-api/HttpApiSchema.js +1 -1
- package/dist/http-api/HttpApiSchema.js.map +1 -1
- package/dist/internal/dateTime.js +66 -27
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +10 -0
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/glob.js +234 -56
- package/dist/internal/glob.js.map +1 -1
- package/dist/internal/graphql.js +21 -7
- package/dist/internal/graphql.js.map +1 -1
- package/dist/internal/graphqlHeaders.d.ts +7 -0
- package/dist/internal/graphqlHeaders.d.ts.map +1 -1
- package/dist/internal/graphqlHeaders.js +11 -0
- package/dist/internal/graphqlHeaders.js.map +1 -1
- package/dist/internal/jsonParser.d.ts +5 -0
- package/dist/internal/jsonParser.d.ts.map +1 -0
- package/dist/internal/jsonParser.js +280 -0
- package/dist/internal/jsonParser.js.map +1 -0
- package/dist/internal/persistence.js +8 -1
- package/dist/internal/persistence.js.map +1 -1
- package/dist/internal/request.js +29 -42
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/sql.js +16 -0
- package/dist/internal/sql.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/jose/JoseError.d.ts +285 -0
- package/dist/jose/JoseError.d.ts.map +1 -0
- package/dist/jose/JoseError.js +269 -0
- package/dist/jose/JoseError.js.map +1 -0
- package/dist/jose/Jwe.d.ts +128 -0
- package/dist/jose/Jwe.d.ts.map +1 -0
- package/dist/jose/Jwe.js +134 -0
- package/dist/jose/Jwe.js.map +1 -0
- package/dist/jose/Jwk.d.ts +597 -0
- package/dist/jose/Jwk.d.ts.map +1 -0
- package/dist/jose/Jwk.js +503 -0
- package/dist/jose/Jwk.js.map +1 -0
- package/dist/jose/Jwks.d.ts +236 -0
- package/dist/jose/Jwks.d.ts.map +1 -0
- package/dist/jose/Jwks.js +306 -0
- package/dist/jose/Jwks.js.map +1 -0
- package/dist/jose/Jws.d.ts +177 -0
- package/dist/jose/Jws.d.ts.map +1 -0
- package/dist/jose/Jws.js +183 -0
- package/dist/jose/Jws.js.map +1 -0
- package/dist/jose/Jwt.d.ts +270 -0
- package/dist/jose/Jwt.d.ts.map +1 -0
- package/dist/jose/Jwt.js +293 -0
- package/dist/jose/Jwt.js.map +1 -0
- package/dist/jose/index.d.ts +51 -0
- package/dist/jose/index.d.ts.map +1 -0
- package/dist/jose/index.js +52 -0
- package/dist/jose/index.js.map +1 -0
- package/dist/jose/internal/compact.d.ts +2 -0
- package/dist/jose/internal/compact.d.ts.map +1 -0
- package/dist/jose/internal/compact.js +179 -0
- package/dist/jose/internal/compact.js.map +1 -0
- package/dist/net/Host.d.ts.map +1 -1
- package/dist/net/Host.js +5 -10
- package/dist/net/Host.js.map +1 -1
- package/dist/observability/OtlpExporter.d.ts +4 -0
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +40 -12
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpSerialization.d.ts +1 -1
- package/dist/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/observability/OtlpSerialization.js +10 -4
- package/dist/observability/OtlpSerialization.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +3 -3
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/observability/internal/protobuf.js +6 -0
- package/dist/observability/internal/protobuf.js.map +1 -1
- package/dist/persistence/CircuitBreaker.d.ts +98 -38
- package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
- package/dist/persistence/CircuitBreaker.js +67 -29
- package/dist/persistence/CircuitBreaker.js.map +1 -1
- package/dist/persistence/RateLimiter.d.ts +15 -0
- package/dist/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/persistence/RateLimiter.js +76 -16
- package/dist/persistence/RateLimiter.js.map +1 -1
- package/dist/persistence/index.d.ts +1 -1
- package/dist/persistence/index.js +1 -1
- package/dist/reactivity/AtomRegistry.js +17 -7
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/Rpc.d.ts +1 -1
- package/dist/rpc/Rpc.d.ts.map +1 -1
- package/dist/rpc/Rpc.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +14 -2
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +38 -21
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcMessage.d.ts +3 -2
- package/dist/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/rpc/RpcMessage.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +10 -1
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/sql/Migrator.d.ts +9 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +18 -6
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +46 -3
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +40 -15
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +46 -3
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +32 -26
- package/dist/sql/Statement.js.map +1 -1
- package/dist/workflow/Workflow.d.ts +4 -0
- package/dist/workflow/Workflow.d.ts.map +1 -1
- package/dist/workflow/Workflow.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +5 -0
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +7 -3
- package/src/BigDecimal.ts +170 -16
- package/src/ByteSize.ts +29 -14
- package/src/Equal.ts +3 -3
- package/src/Hash.ts +5 -4
- package/src/Iterable.ts +28 -19
- package/src/JsonSchema.ts +45 -7
- package/src/MutableRef.ts +1 -8
- package/src/Path.ts +6 -1
- package/src/Pool.ts +2 -1
- package/src/Ref.ts +0 -8
- package/src/Schedule.ts +8 -6
- package/src/Schema.ts +3 -2
- package/src/SchemaRepresentation.ts +4 -2
- package/src/SchemaTransformation.ts +2 -2
- package/src/Stream.ts +6 -5
- package/src/ai/McpClient.ts +488 -91
- package/src/ai/McpSchema.ts +119 -0
- package/src/ai/McpServer.ts +302 -56
- package/src/ai/Prompt.ts +16 -11
- package/src/ai/Tool.ts +5 -10
- package/src/ai/internal/mcpCore.ts +165 -12
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +3 -1
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +3 -1
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -1
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -1
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +42 -9
- package/src/ai/internal/mcpProtocol.ts +15 -0
- package/src/ai/internal/mcpRuntime.ts +6 -3
- package/src/ai/internal/mcpSkills.ts +480 -0
- package/src/ai/internal/structured-output.ts +10 -4
- package/src/cluster/ClusterWorkflowEngine.ts +48 -33
- package/src/cluster/Entity.ts +52 -0
- package/src/cluster/MessageStorage.ts +3 -6
- package/src/cluster/Reply.ts +1 -1
- package/src/cluster/Runners.ts +16 -2
- package/src/cluster/Sharding.ts +17 -1
- package/src/cluster/internal/clusterAbandon.ts +7 -7
- package/src/cluster/internal/entityManager.ts +89 -15
- package/src/cluster/internal/transactionNotifications.ts +7 -0
- package/src/crypto/Aead.ts +3 -3
- package/src/crypto/Cipher.ts +3 -3
- package/src/crypto/KeyAgreement.ts +4 -4
- package/src/crypto/KeyFormat.ts +30 -1
- package/src/crypto/KeyWrap.ts +6 -6
- package/src/crypto/Mac.ts +3 -3
- package/src/crypto/Signature.ts +4 -4
- package/src/crypto/WebCrypto.ts +20 -0
- package/src/crypto/internal/asymmetric.ts +2 -1
- package/src/crypto/internal/key.ts +12 -5
- package/src/encoding/Base64Url.ts +27 -3
- package/src/encoding/Json5.ts +59 -0
- package/src/encoding/Jsonc.ts +126 -0
- package/src/encoding/Ndjson.ts +6 -5
- package/src/encoding/SchemaBinary.ts +228 -7
- package/src/encoding/Sse.ts +5 -3
- package/src/encoding/index.ts +12 -0
- package/src/eventlog/EventLog.ts +7 -0
- package/src/eventlog/EventLogServer.ts +67 -24
- package/src/eventlog/EventLogServerEncrypted.ts +5 -0
- package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
- package/src/eventlog/EventLogSessionAuth.ts +26 -0
- package/src/graphql/GraphQLClient.ts +3 -1
- package/src/graphql/GraphQLClientError.ts +15 -22
- package/src/graphql/GraphQLProtocol.ts +12 -3
- package/src/http/HttpClient.ts +244 -33
- package/src/http/HttpServerRequest.ts +61 -23
- package/src/http/internal/mimeTypes.ts +4 -1
- package/src/http-api/HttpApiSchema.ts +1 -1
- package/src/internal/dateTime.ts +80 -27
- package/src/internal/effect.ts +6 -0
- package/src/internal/glob.ts +279 -63
- package/src/internal/graphql.ts +27 -9
- package/src/internal/graphqlHeaders.ts +13 -0
- package/src/internal/jsonParser.ts +307 -0
- package/src/internal/persistence.ts +9 -1
- package/src/internal/request.ts +51 -58
- package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
- package/src/internal/sql.ts +25 -0
- package/src/internal/version.ts +1 -1
- package/src/jose/JoseError.ts +329 -0
- package/src/jose/Jwe.ts +196 -0
- package/src/jose/Jwk.ts +777 -0
- package/src/jose/Jwks.ts +418 -0
- package/src/jose/Jws.ts +312 -0
- package/src/jose/Jwt.ts +493 -0
- package/src/jose/index.ts +58 -0
- package/src/jose/internal/compact.ts +195 -0
- package/src/net/Host.ts +5 -10
- package/src/observability/OtlpExporter.ts +42 -18
- package/src/observability/OtlpSerialization.ts +13 -5
- package/src/observability/internal/otlpProtobuf.ts +6 -6
- package/src/observability/internal/protobuf.ts +10 -0
- package/src/persistence/CircuitBreaker.ts +113 -48
- package/src/persistence/RateLimiter.ts +97 -19
- package/src/persistence/index.ts +1 -1
- package/src/reactivity/AtomRegistry.ts +19 -8
- package/src/rpc/Rpc.ts +3 -1
- package/src/rpc/RpcClient.ts +44 -24
- package/src/rpc/RpcMessage.ts +3 -2
- package/src/rpc/RpcServer.ts +12 -1
- package/src/sql/Migrator.ts +35 -18
- package/src/sql/SqlClient.ts +91 -22
- package/src/sql/Statement.ts +60 -35
- package/src/workflow/Workflow.ts +4 -0
- package/src/workflow/WorkflowEngine.ts +5 -0
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Web Keys and the algorithm-bound keys the other `effect/jose` modules
|
|
3
|
+
* use.
|
|
4
|
+
*
|
|
5
|
+
* A key is imported for one algorithm and keeps it: a JWS or JWE operation
|
|
6
|
+
* takes its algorithm from the key, so a token cannot pick another one. The
|
|
7
|
+
* imported key wraps an `effect/crypto` key object, which redacts itself when
|
|
8
|
+
* printed and caches its native key.
|
|
9
|
+
*
|
|
10
|
+
* Importing honours the JWK's `alg`, `use`, and `key_ops` members, and
|
|
11
|
+
* rejects RSA keys shorter than 2048 bits.
|
|
12
|
+
*
|
|
13
|
+
* @stability unstable
|
|
14
|
+
* @since 4.1.1
|
|
15
|
+
*/
|
|
16
|
+
import * as Aead from "../crypto/Aead.ts";
|
|
17
|
+
import * as Digest from "../crypto/Digest.ts";
|
|
18
|
+
import * as Mac from "../crypto/Mac.ts";
|
|
19
|
+
import * as SecureRandom from "../crypto/SecureRandom.ts";
|
|
20
|
+
import * as Signature from "../crypto/Signature.ts";
|
|
21
|
+
import * as Effect from "../Effect.ts";
|
|
22
|
+
import * as Redacted from "../Redacted.ts";
|
|
23
|
+
import * as Schema from "../Schema.ts";
|
|
24
|
+
import type { JoseError } from "./JoseError.ts";
|
|
25
|
+
/**
|
|
26
|
+
* Schema for RSA, RSA-PSS, and ECDSA signatures with SHA-256, SHA-384, or
|
|
27
|
+
* SHA-512, and EdDSA signatures with Ed25519.
|
|
28
|
+
*
|
|
29
|
+
* @stability unstable
|
|
30
|
+
* @category schemas
|
|
31
|
+
* @since 4.1.1
|
|
32
|
+
*/
|
|
33
|
+
export declare const AsymmetricAlgorithm: Schema.Literals<readonly ["RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512", "EdDSA"]>;
|
|
34
|
+
/**
|
|
35
|
+
* An asymmetric signature algorithm.
|
|
36
|
+
*
|
|
37
|
+
* @stability unstable
|
|
38
|
+
* @category models
|
|
39
|
+
* @since 4.1.1
|
|
40
|
+
*/
|
|
41
|
+
export type AsymmetricAlgorithm = typeof AsymmetricAlgorithm.Type;
|
|
42
|
+
/**
|
|
43
|
+
* Schema for the JWS algorithms: HS256, HS384, HS512, and the asymmetric
|
|
44
|
+
* algorithms.
|
|
45
|
+
*
|
|
46
|
+
* @stability unstable
|
|
47
|
+
* @category schemas
|
|
48
|
+
* @since 4.1.1
|
|
49
|
+
*/
|
|
50
|
+
export declare const Algorithm: Schema.Literals<readonly ["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512", "EdDSA"]>;
|
|
51
|
+
/**
|
|
52
|
+
* A JWS algorithm.
|
|
53
|
+
*
|
|
54
|
+
* @stability unstable
|
|
55
|
+
* @category models
|
|
56
|
+
* @since 4.1.1
|
|
57
|
+
*/
|
|
58
|
+
export type Algorithm = typeof Algorithm.Type;
|
|
59
|
+
/**
|
|
60
|
+
* An HMAC signature algorithm using SHA-256, SHA-384, or SHA-512.
|
|
61
|
+
*
|
|
62
|
+
* @stability unstable
|
|
63
|
+
* @category models
|
|
64
|
+
* @since 4.1.1
|
|
65
|
+
*/
|
|
66
|
+
export type HmacAlgorithm = "HS256" | "HS384" | "HS512";
|
|
67
|
+
/**
|
|
68
|
+
* The algorithms of a symmetric key: HMAC signatures, or direct A256GCM
|
|
69
|
+
* encryption.
|
|
70
|
+
*
|
|
71
|
+
* @stability unstable
|
|
72
|
+
* @category models
|
|
73
|
+
* @since 4.1.1
|
|
74
|
+
*/
|
|
75
|
+
export type SecretAlgorithm = HmacAlgorithm | "dir";
|
|
76
|
+
/**
|
|
77
|
+
* Schema for an RSA, P-256, P-384, P-521, or Ed25519 public JWK. Private and symmetric
|
|
78
|
+
* members, including RSA factors, are rejected.
|
|
79
|
+
*
|
|
80
|
+
* @stability unstable
|
|
81
|
+
* @category schemas
|
|
82
|
+
* @since 4.1.1
|
|
83
|
+
*/
|
|
84
|
+
export declare const PublicJwk: Schema.Union<readonly [Schema.Struct<{
|
|
85
|
+
readonly d: Schema.optionalKey<Schema.Never>;
|
|
86
|
+
readonly p: Schema.optionalKey<Schema.Never>;
|
|
87
|
+
readonly q: Schema.optionalKey<Schema.Never>;
|
|
88
|
+
readonly dp: Schema.optionalKey<Schema.Never>;
|
|
89
|
+
readonly dq: Schema.optionalKey<Schema.Never>;
|
|
90
|
+
readonly qi: Schema.optionalKey<Schema.Never>;
|
|
91
|
+
readonly oth: Schema.optionalKey<Schema.Never>;
|
|
92
|
+
readonly k: Schema.optionalKey<Schema.Never>;
|
|
93
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
94
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
95
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
96
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
97
|
+
readonly kty: Schema.Literal<"RSA">;
|
|
98
|
+
readonly n: Schema.String;
|
|
99
|
+
readonly e: Schema.String;
|
|
100
|
+
}>, Schema.Struct<{
|
|
101
|
+
readonly d: Schema.optionalKey<Schema.Never>;
|
|
102
|
+
readonly p: Schema.optionalKey<Schema.Never>;
|
|
103
|
+
readonly q: Schema.optionalKey<Schema.Never>;
|
|
104
|
+
readonly dp: Schema.optionalKey<Schema.Never>;
|
|
105
|
+
readonly dq: Schema.optionalKey<Schema.Never>;
|
|
106
|
+
readonly qi: Schema.optionalKey<Schema.Never>;
|
|
107
|
+
readonly oth: Schema.optionalKey<Schema.Never>;
|
|
108
|
+
readonly k: Schema.optionalKey<Schema.Never>;
|
|
109
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
110
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
111
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
112
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
113
|
+
readonly kty: Schema.Literal<"EC">;
|
|
114
|
+
readonly crv: Schema.Literals<readonly ["P-256", "P-384", "P-521"]>;
|
|
115
|
+
readonly x: Schema.String;
|
|
116
|
+
readonly y: Schema.String;
|
|
117
|
+
}>, Schema.Struct<{
|
|
118
|
+
readonly d: Schema.optionalKey<Schema.Never>;
|
|
119
|
+
readonly p: Schema.optionalKey<Schema.Never>;
|
|
120
|
+
readonly q: Schema.optionalKey<Schema.Never>;
|
|
121
|
+
readonly dp: Schema.optionalKey<Schema.Never>;
|
|
122
|
+
readonly dq: Schema.optionalKey<Schema.Never>;
|
|
123
|
+
readonly qi: Schema.optionalKey<Schema.Never>;
|
|
124
|
+
readonly oth: Schema.optionalKey<Schema.Never>;
|
|
125
|
+
readonly k: Schema.optionalKey<Schema.Never>;
|
|
126
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
127
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
128
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
129
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
130
|
+
readonly kty: Schema.Literal<"OKP">;
|
|
131
|
+
readonly crv: Schema.Literal<"Ed25519">;
|
|
132
|
+
readonly x: Schema.String;
|
|
133
|
+
}>]>;
|
|
134
|
+
/**
|
|
135
|
+
* An RSA, P-256, P-384, P-521, or Ed25519 public JWK.
|
|
136
|
+
*
|
|
137
|
+
* @stability unstable
|
|
138
|
+
* @category models
|
|
139
|
+
* @since 4.1.1
|
|
140
|
+
*/
|
|
141
|
+
export type PublicJwk = typeof PublicJwk.Type;
|
|
142
|
+
/**
|
|
143
|
+
* Schema for an RSA, P-256, P-384, P-521, or Ed25519 private JWK. RSA keys need their CRT
|
|
144
|
+
* members and cannot have more than two primes.
|
|
145
|
+
*
|
|
146
|
+
* @stability unstable
|
|
147
|
+
* @category schemas
|
|
148
|
+
* @since 4.1.1
|
|
149
|
+
*/
|
|
150
|
+
export declare const PrivateJwk: Schema.Union<readonly [Schema.Struct<{
|
|
151
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
152
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
153
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
154
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
155
|
+
readonly kty: Schema.Literal<"RSA">;
|
|
156
|
+
readonly n: Schema.String;
|
|
157
|
+
readonly e: Schema.String;
|
|
158
|
+
readonly d: Schema.String;
|
|
159
|
+
readonly p: Schema.String;
|
|
160
|
+
readonly q: Schema.String;
|
|
161
|
+
readonly dp: Schema.String;
|
|
162
|
+
readonly dq: Schema.String;
|
|
163
|
+
readonly qi: Schema.String;
|
|
164
|
+
readonly oth: Schema.optionalKey<Schema.Never>;
|
|
165
|
+
}>, Schema.Struct<{
|
|
166
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
167
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
168
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
169
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
170
|
+
readonly kty: Schema.Literal<"EC">;
|
|
171
|
+
readonly crv: Schema.Literals<readonly ["P-256", "P-384", "P-521"]>;
|
|
172
|
+
readonly x: Schema.String;
|
|
173
|
+
readonly y: Schema.String;
|
|
174
|
+
readonly d: Schema.String;
|
|
175
|
+
}>, Schema.Struct<{
|
|
176
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
177
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
178
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
179
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
180
|
+
readonly kty: Schema.Literal<"OKP">;
|
|
181
|
+
readonly crv: Schema.Literal<"Ed25519">;
|
|
182
|
+
readonly x: Schema.String;
|
|
183
|
+
readonly d: Schema.String;
|
|
184
|
+
}>]>;
|
|
185
|
+
/**
|
|
186
|
+
* An RSA, P-256, P-384, P-521, or Ed25519 private JWK.
|
|
187
|
+
*
|
|
188
|
+
* @stability unstable
|
|
189
|
+
* @category models
|
|
190
|
+
* @since 4.1.1
|
|
191
|
+
*/
|
|
192
|
+
export type PrivateJwk = typeof PrivateJwk.Type;
|
|
193
|
+
/**
|
|
194
|
+
* Schema for an octet-sequence JWK.
|
|
195
|
+
*
|
|
196
|
+
* @stability unstable
|
|
197
|
+
* @category schemas
|
|
198
|
+
* @since 4.1.1
|
|
199
|
+
*/
|
|
200
|
+
export declare const SecretJwk: Schema.Struct<{
|
|
201
|
+
readonly kid: Schema.optionalKey<Schema.String>;
|
|
202
|
+
readonly alg: Schema.optionalKey<Schema.String>;
|
|
203
|
+
readonly use: Schema.optionalKey<Schema.String>;
|
|
204
|
+
readonly key_ops: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
205
|
+
readonly kty: Schema.Literal<"oct">;
|
|
206
|
+
readonly k: Schema.String;
|
|
207
|
+
}>;
|
|
208
|
+
/**
|
|
209
|
+
* An octet-sequence JWK.
|
|
210
|
+
*
|
|
211
|
+
* @stability unstable
|
|
212
|
+
* @category models
|
|
213
|
+
* @since 4.1.1
|
|
214
|
+
*/
|
|
215
|
+
export type SecretJwk = typeof SecretJwk.Type;
|
|
216
|
+
/**
|
|
217
|
+
* A public key bound to one asymmetric algorithm, with the JWK it was imported
|
|
218
|
+
* from.
|
|
219
|
+
*
|
|
220
|
+
* @stability unstable
|
|
221
|
+
* @category models
|
|
222
|
+
* @since 4.1.1
|
|
223
|
+
*/
|
|
224
|
+
export interface PublicKey {
|
|
225
|
+
readonly _tag: "PublicKey";
|
|
226
|
+
readonly algorithm: AsymmetricAlgorithm;
|
|
227
|
+
readonly kid: string | undefined;
|
|
228
|
+
readonly jwk: PublicJwk;
|
|
229
|
+
readonly key: Signature.PublicKey;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* A private key bound to one asymmetric algorithm.
|
|
233
|
+
*
|
|
234
|
+
* @stability unstable
|
|
235
|
+
* @category models
|
|
236
|
+
* @since 4.1.1
|
|
237
|
+
*/
|
|
238
|
+
export interface PrivateKey {
|
|
239
|
+
readonly _tag: "PrivateKey";
|
|
240
|
+
readonly algorithm: AsymmetricAlgorithm;
|
|
241
|
+
readonly kid: string | undefined;
|
|
242
|
+
readonly key: Signature.PrivateKey;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* A symmetric key bound to an HMAC signature algorithm or to direct A256GCM encryption.
|
|
246
|
+
*
|
|
247
|
+
* @stability unstable
|
|
248
|
+
* @category models
|
|
249
|
+
* @since 4.1.1
|
|
250
|
+
*/
|
|
251
|
+
export interface SecretKey<A extends SecretAlgorithm = SecretAlgorithm> {
|
|
252
|
+
readonly _tag: "SecretKey";
|
|
253
|
+
readonly algorithm: A;
|
|
254
|
+
readonly kid: string | undefined;
|
|
255
|
+
readonly key: A extends HmacAlgorithm ? Mac.Key : Aead.Key;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* A key that signs JWS and JWT tokens.
|
|
259
|
+
*
|
|
260
|
+
* @stability unstable
|
|
261
|
+
* @category models
|
|
262
|
+
* @since 4.1.1
|
|
263
|
+
*/
|
|
264
|
+
export type SigningKey = PrivateKey | SecretKey<HmacAlgorithm>;
|
|
265
|
+
/**
|
|
266
|
+
* A key that verifies JWS and JWT tokens.
|
|
267
|
+
*
|
|
268
|
+
* @stability unstable
|
|
269
|
+
* @category models
|
|
270
|
+
* @since 4.1.1
|
|
271
|
+
*/
|
|
272
|
+
export type VerificationKey = PublicKey | SecretKey<HmacAlgorithm>;
|
|
273
|
+
/**
|
|
274
|
+
* A generated public JWK and its private JWK, both carrying `alg`, `use: "sig"`,
|
|
275
|
+
* and the requested `kid`.
|
|
276
|
+
*
|
|
277
|
+
* @stability unstable
|
|
278
|
+
* @category models
|
|
279
|
+
* @since 4.1.1
|
|
280
|
+
*/
|
|
281
|
+
export interface KeyPair {
|
|
282
|
+
readonly publicKey: PublicJwk;
|
|
283
|
+
readonly privateKey: Redacted.Redacted<PrivateJwk>;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Options for {@link generateKeyPair}.
|
|
287
|
+
*
|
|
288
|
+
* @stability unstable
|
|
289
|
+
* @category models
|
|
290
|
+
* @since 4.1.1
|
|
291
|
+
*/
|
|
292
|
+
export interface GenerateKeyPairOptions {
|
|
293
|
+
readonly algorithm: AsymmetricAlgorithm;
|
|
294
|
+
readonly kid?: string | undefined;
|
|
295
|
+
/**
|
|
296
|
+
* RSA modulus length in bits. Defaults to 2048 and must be at least 2048.
|
|
297
|
+
*/
|
|
298
|
+
readonly modulusLength?: number | undefined;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Generates a key pair for an asymmetric algorithm and returns it as JWKs.
|
|
302
|
+
*
|
|
303
|
+
* @see {@link importPrivate} for preparing the private JWK for signing
|
|
304
|
+
* @see {@link importPublic} for preparing the public JWK for verification
|
|
305
|
+
*
|
|
306
|
+
* @stability unstable
|
|
307
|
+
* @category constructors
|
|
308
|
+
* @since 4.1.1
|
|
309
|
+
*/
|
|
310
|
+
export declare const generateKeyPair: (options: GenerateKeyPairOptions) => Effect.Effect<KeyPair, JoseError, Signature.Signature>;
|
|
311
|
+
/**
|
|
312
|
+
* Generates a redacted secret JWK carrying its `alg`, `use`, and optional `kid`.
|
|
313
|
+
*
|
|
314
|
+
* **Details**
|
|
315
|
+
*
|
|
316
|
+
* HMAC keys contain 32, 48, or 64 random bytes for HS256, HS384, or HS512.
|
|
317
|
+
* Direct A256GCM keys contain 32 bytes and use `enc` instead of `sig`.
|
|
318
|
+
*
|
|
319
|
+
* @see {@link importSecret} for preparing the JWK for use
|
|
320
|
+
* @see {@link generateKeyPair} for asymmetric keys
|
|
321
|
+
*
|
|
322
|
+
* @stability unstable
|
|
323
|
+
* @category constructors
|
|
324
|
+
* @since 4.1.1
|
|
325
|
+
*/
|
|
326
|
+
export declare const generateSecret: (algorithm: SecretAlgorithm, options?: {
|
|
327
|
+
readonly kid?: string | undefined;
|
|
328
|
+
}) => Effect.Effect<Redacted.Redacted<SecretJwk>, never, SecureRandom.SecureRandom>;
|
|
329
|
+
/**
|
|
330
|
+
* Imports a public JWK for an asymmetric algorithm.
|
|
331
|
+
*
|
|
332
|
+
* **Details**
|
|
333
|
+
*
|
|
334
|
+
* The key's family and curve must fit the algorithm, and any `alg`, `use`, or
|
|
335
|
+
* `key_ops` member must allow verification with it. Private members are
|
|
336
|
+
* rejected. To import untrusted JSON, decode it with {@link PublicJwk} first.
|
|
337
|
+
*
|
|
338
|
+
* @see {@link importPrivate}
|
|
339
|
+
* @see {@link exportPublic}
|
|
340
|
+
*
|
|
341
|
+
* @stability unstable
|
|
342
|
+
* @category constructors
|
|
343
|
+
* @since 4.1.1
|
|
344
|
+
*/
|
|
345
|
+
export declare const importPublic: (jwk: {
|
|
346
|
+
readonly d?: never;
|
|
347
|
+
readonly p?: never;
|
|
348
|
+
readonly q?: never;
|
|
349
|
+
readonly dp?: never;
|
|
350
|
+
readonly dq?: never;
|
|
351
|
+
readonly qi?: never;
|
|
352
|
+
readonly oth?: never;
|
|
353
|
+
readonly k?: never;
|
|
354
|
+
readonly kid?: string;
|
|
355
|
+
readonly alg?: string;
|
|
356
|
+
readonly use?: string;
|
|
357
|
+
readonly key_ops?: readonly string[];
|
|
358
|
+
readonly kty: "RSA";
|
|
359
|
+
readonly n: string;
|
|
360
|
+
readonly e: string;
|
|
361
|
+
} | {
|
|
362
|
+
readonly d?: never;
|
|
363
|
+
readonly p?: never;
|
|
364
|
+
readonly q?: never;
|
|
365
|
+
readonly dp?: never;
|
|
366
|
+
readonly dq?: never;
|
|
367
|
+
readonly qi?: never;
|
|
368
|
+
readonly oth?: never;
|
|
369
|
+
readonly k?: never;
|
|
370
|
+
readonly kid?: string;
|
|
371
|
+
readonly alg?: string;
|
|
372
|
+
readonly use?: string;
|
|
373
|
+
readonly key_ops?: readonly string[];
|
|
374
|
+
readonly kty: "EC";
|
|
375
|
+
readonly crv: "P-256" | "P-384" | "P-521";
|
|
376
|
+
readonly x: string;
|
|
377
|
+
readonly y: string;
|
|
378
|
+
} | {
|
|
379
|
+
readonly d?: never;
|
|
380
|
+
readonly p?: never;
|
|
381
|
+
readonly q?: never;
|
|
382
|
+
readonly dp?: never;
|
|
383
|
+
readonly dq?: never;
|
|
384
|
+
readonly qi?: never;
|
|
385
|
+
readonly oth?: never;
|
|
386
|
+
readonly k?: never;
|
|
387
|
+
readonly kid?: string;
|
|
388
|
+
readonly alg?: string;
|
|
389
|
+
readonly use?: string;
|
|
390
|
+
readonly key_ops?: readonly string[];
|
|
391
|
+
readonly kty: "OKP";
|
|
392
|
+
readonly crv: "Ed25519";
|
|
393
|
+
readonly x: string;
|
|
394
|
+
}, algorithm: "ES256" | "ES384" | "ES512" | "EdDSA" | "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512") => Effect.Effect<PublicKey, JoseError, never>;
|
|
395
|
+
/**
|
|
396
|
+
* Imports a private JWK for an asymmetric algorithm.
|
|
397
|
+
*
|
|
398
|
+
* @see {@link importPkcs8} for importing DER or PEM keys
|
|
399
|
+
* @see {@link exportPrivate}
|
|
400
|
+
*
|
|
401
|
+
* @stability unstable
|
|
402
|
+
* @category constructors
|
|
403
|
+
* @since 4.1.1
|
|
404
|
+
*/
|
|
405
|
+
export declare const importPrivate: (input: Redacted.Redacted<{
|
|
406
|
+
readonly kid?: string;
|
|
407
|
+
readonly alg?: string;
|
|
408
|
+
readonly use?: string;
|
|
409
|
+
readonly key_ops?: readonly string[];
|
|
410
|
+
readonly kty: "RSA";
|
|
411
|
+
readonly n: string;
|
|
412
|
+
readonly e: string;
|
|
413
|
+
readonly d: string;
|
|
414
|
+
readonly p: string;
|
|
415
|
+
readonly q: string;
|
|
416
|
+
readonly dp: string;
|
|
417
|
+
readonly dq: string;
|
|
418
|
+
readonly qi: string;
|
|
419
|
+
readonly oth?: never;
|
|
420
|
+
} | {
|
|
421
|
+
readonly kid?: string;
|
|
422
|
+
readonly alg?: string;
|
|
423
|
+
readonly use?: string;
|
|
424
|
+
readonly key_ops?: readonly string[];
|
|
425
|
+
readonly kty: "EC";
|
|
426
|
+
readonly crv: "P-256" | "P-384" | "P-521";
|
|
427
|
+
readonly x: string;
|
|
428
|
+
readonly y: string;
|
|
429
|
+
readonly d: string;
|
|
430
|
+
} | {
|
|
431
|
+
readonly kid?: string;
|
|
432
|
+
readonly alg?: string;
|
|
433
|
+
readonly use?: string;
|
|
434
|
+
readonly key_ops?: readonly string[];
|
|
435
|
+
readonly kty: "OKP";
|
|
436
|
+
readonly crv: "Ed25519";
|
|
437
|
+
readonly x: string;
|
|
438
|
+
readonly d: string;
|
|
439
|
+
}>, algorithm: "ES256" | "ES384" | "ES512" | "EdDSA" | "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512") => Effect.Effect<PrivateKey, JoseError, never>;
|
|
440
|
+
/**
|
|
441
|
+
* Imports an SPKI public key from DER bytes or PEM text for an asymmetric algorithm.
|
|
442
|
+
*
|
|
443
|
+
* @see {@link importPublic} for importing JWK-encoded keys
|
|
444
|
+
* @see {@link exportSpki}
|
|
445
|
+
*
|
|
446
|
+
* @stability unstable
|
|
447
|
+
* @category constructors
|
|
448
|
+
* @since 4.1.1
|
|
449
|
+
*/
|
|
450
|
+
export declare const importSpki: (input: string | Uint8Array<ArrayBufferLike>, algorithm: "ES256" | "ES384" | "ES512" | "EdDSA" | "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512", options?: {
|
|
451
|
+
readonly kid?: string | undefined;
|
|
452
|
+
} | undefined) => Effect.Effect<PublicKey, JoseError, never>;
|
|
453
|
+
/**
|
|
454
|
+
* Imports a redacted PKCS#8 private key from DER bytes or PEM text for an asymmetric algorithm.
|
|
455
|
+
*
|
|
456
|
+
* @see {@link importPrivate} for importing JWK-encoded keys
|
|
457
|
+
* @see {@link exportPkcs8}
|
|
458
|
+
*
|
|
459
|
+
* @stability unstable
|
|
460
|
+
* @category constructors
|
|
461
|
+
* @since 4.1.1
|
|
462
|
+
*/
|
|
463
|
+
export declare const importPkcs8: (input: Redacted.Redacted<string | Uint8Array<ArrayBufferLike>>, algorithm: "ES256" | "ES384" | "ES512" | "EdDSA" | "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512", options?: {
|
|
464
|
+
readonly kid?: string | undefined;
|
|
465
|
+
} | undefined) => Effect.Effect<PrivateKey, JoseError, never>;
|
|
466
|
+
/**
|
|
467
|
+
* Imports an octet JWK for HMAC signatures or for direct A256GCM encryption.
|
|
468
|
+
*
|
|
469
|
+
* **Details**
|
|
470
|
+
*
|
|
471
|
+
* HS256, HS384, and HS512 keys need at least 32, 48, and 64 bytes respectively;
|
|
472
|
+
* `dir` keys need exactly 32. Any `alg`,
|
|
473
|
+
* `use`, or `key_ops` member must allow the algorithm; `key_ops` must allow
|
|
474
|
+
* both of its operations.
|
|
475
|
+
*
|
|
476
|
+
* **Example** (Importing an HS256 key)
|
|
477
|
+
*
|
|
478
|
+
* ```ts import.meta.vitest
|
|
479
|
+
* import { Effect, Redacted } from "effect"
|
|
480
|
+
* import { Jwk } from "effect/jose"
|
|
481
|
+
*
|
|
482
|
+
* // Fixed public example material; generate application secrets securely.
|
|
483
|
+
* const secret = Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const)
|
|
484
|
+
* const key = await Effect.runPromise(Jwk.importSecret(secret, "HS256"))
|
|
485
|
+
* key.algorithm // => "HS256"
|
|
486
|
+
* ```
|
|
487
|
+
*
|
|
488
|
+
* @see {@link generateSecret}
|
|
489
|
+
*
|
|
490
|
+
* @stability unstable
|
|
491
|
+
* @category constructors
|
|
492
|
+
* @since 4.1.1
|
|
493
|
+
*/
|
|
494
|
+
export declare const importSecret: <A extends SecretAlgorithm>(input: Redacted.Redacted<{
|
|
495
|
+
readonly kid?: string;
|
|
496
|
+
readonly alg?: string;
|
|
497
|
+
readonly use?: string;
|
|
498
|
+
readonly key_ops?: readonly string[];
|
|
499
|
+
readonly kty: "oct";
|
|
500
|
+
readonly k: string;
|
|
501
|
+
}>, algorithm: A) => Effect.Effect<SecretKey<A>, JoseError, never>;
|
|
502
|
+
/**
|
|
503
|
+
* Exports a public key as a JWK carrying its `alg`, `kid`, and `use: "sig"`.
|
|
504
|
+
*
|
|
505
|
+
* @see {@link importPublic}
|
|
506
|
+
* @see {@link exportPrivate}
|
|
507
|
+
*
|
|
508
|
+
* @stability unstable
|
|
509
|
+
* @category encoding
|
|
510
|
+
* @since 4.1.1
|
|
511
|
+
*/
|
|
512
|
+
export declare const exportPublic: (key: PublicKey) => Effect.Effect<PublicJwk, JoseError>;
|
|
513
|
+
/**
|
|
514
|
+
* Exports a private key as a JWK carrying its `alg`, `kid`, and `use: "sig"`.
|
|
515
|
+
*
|
|
516
|
+
* @see {@link importPrivate}
|
|
517
|
+
*
|
|
518
|
+
* @stability unstable
|
|
519
|
+
* @category encoding
|
|
520
|
+
* @since 4.1.1
|
|
521
|
+
*/
|
|
522
|
+
export declare const exportPrivate: (key: PrivateKey) => Effect.Effect<Redacted.Redacted<PrivateJwk>, JoseError>;
|
|
523
|
+
/**
|
|
524
|
+
* Exports a public key as SPKI DER bytes, or as PEM text with `format: "pem"`.
|
|
525
|
+
*
|
|
526
|
+
* @see {@link importSpki}
|
|
527
|
+
* @see {@link exportPublic} for JWK output
|
|
528
|
+
*
|
|
529
|
+
* @stability unstable
|
|
530
|
+
* @category encoding
|
|
531
|
+
* @since 4.1.1
|
|
532
|
+
*/
|
|
533
|
+
export declare function exportSpki(key: PublicKey, options: {
|
|
534
|
+
readonly format: "pem";
|
|
535
|
+
}): Effect.Effect<string, JoseError>;
|
|
536
|
+
export declare function exportSpki(key: PublicKey, options?: {
|
|
537
|
+
readonly format?: "der" | undefined;
|
|
538
|
+
}): Effect.Effect<Uint8Array, JoseError>;
|
|
539
|
+
export declare function exportSpki(key: PublicKey, options?: {
|
|
540
|
+
readonly format?: "der" | "pem" | undefined;
|
|
541
|
+
}): Effect.Effect<Uint8Array | string, JoseError>;
|
|
542
|
+
/**
|
|
543
|
+
* Exports a private key as redacted PKCS#8 DER bytes, or redacted PEM text with `format: "pem"`.
|
|
544
|
+
*
|
|
545
|
+
* @see {@link importPkcs8}
|
|
546
|
+
* @see {@link exportPrivate} for JWK output
|
|
547
|
+
*
|
|
548
|
+
* @stability unstable
|
|
549
|
+
* @category encoding
|
|
550
|
+
* @since 4.1.1
|
|
551
|
+
*/
|
|
552
|
+
export declare function exportPkcs8(key: PrivateKey, options: {
|
|
553
|
+
readonly format: "pem";
|
|
554
|
+
}): Effect.Effect<Redacted.Redacted<string>, JoseError>;
|
|
555
|
+
export declare function exportPkcs8(key: PrivateKey, options?: {
|
|
556
|
+
readonly format?: "der" | undefined;
|
|
557
|
+
}): Effect.Effect<Redacted.Redacted<Uint8Array>, JoseError>;
|
|
558
|
+
export declare function exportPkcs8(key: PrivateKey, options?: {
|
|
559
|
+
readonly format?: "der" | "pem" | undefined;
|
|
560
|
+
}): Effect.Effect<Redacted.Redacted<Uint8Array | string>, JoseError>;
|
|
561
|
+
/**
|
|
562
|
+
* A JWK or imported key whose thumbprint can be computed. Private and secret
|
|
563
|
+
* JWKs must be redacted.
|
|
564
|
+
*
|
|
565
|
+
* @stability unstable
|
|
566
|
+
* @category models
|
|
567
|
+
* @since 4.1.1
|
|
568
|
+
*/
|
|
569
|
+
export type ThumbprintInput = PublicJwk | Redacted.Redacted<PrivateJwk | SecretJwk> | PublicKey | PrivateKey | SecretKey;
|
|
570
|
+
/**
|
|
571
|
+
* Computes an RFC 7638 JWK thumbprint, encoded as unpadded base64url.
|
|
572
|
+
*
|
|
573
|
+
* **Details**
|
|
574
|
+
*
|
|
575
|
+
* Uses SHA-256 by default; SHA-384 and SHA-512 are also supported. Only required
|
|
576
|
+
* key members are hashed, so metadata does not affect the result. Asymmetric
|
|
577
|
+
* private keys have the same thumbprint as their public keys. A secret key's
|
|
578
|
+
* thumbprint is a hash of the secret, so treat it as sensitive.
|
|
579
|
+
*
|
|
580
|
+
* @see {@link thumbprintUri}
|
|
581
|
+
*
|
|
582
|
+
* @stability unstable
|
|
583
|
+
* @category cryptography
|
|
584
|
+
* @since 4.1.1
|
|
585
|
+
*/
|
|
586
|
+
export declare const thumbprint: (input: ThumbprintInput, hash?: Digest.Algorithm | undefined) => Effect.Effect<string, JoseError, Digest.Digest>;
|
|
587
|
+
/**
|
|
588
|
+
* Computes an RFC 9278 JWK thumbprint URI using SHA-256 by default.
|
|
589
|
+
*
|
|
590
|
+
* @see {@link thumbprint} for supported inputs and hashes
|
|
591
|
+
*
|
|
592
|
+
* @stability unstable
|
|
593
|
+
* @category cryptography
|
|
594
|
+
* @since 4.1.1
|
|
595
|
+
*/
|
|
596
|
+
export declare const thumbprintUri: (input: ThumbprintInput, hash?: Digest.Algorithm) => Effect.Effect<string, JoseError, Digest.Digest>;
|
|
597
|
+
//# sourceMappingURL=Jwk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Jwk.d.ts","sourceRoot":"","sources":["../../src/jose/Jwk.ts"],"names":[],"mappings":"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"}
|