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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlHeaders.d.ts","sourceRoot":"","sources":["../../src/internal/graphqlHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"graphqlHeaders.d.ts","sourceRoot":"","sources":["../../src/internal/graphqlHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAItC,eAAO,MAAM,aAAa,+HAKzB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,SAAS,OAAO,MAAM,KAAG,QAAQ,CAAC,QAAQ,GAAG,SAI5F,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Headers from "../http/Headers.js";
|
|
2
|
+
import * as Result from "../Result.js";
|
|
2
3
|
import * as Schema from "../Schema.js";
|
|
3
4
|
import * as SchemaGetter from "../SchemaGetter.js";
|
|
4
5
|
// Keep headers branded at runtime while encoding only their string entries.
|
|
@@ -8,4 +9,14 @@ export const HeadersSchema = /*#__PURE__*/Schema.Record(Schema.String, Schema.St
|
|
|
8
9
|
...headers
|
|
9
10
|
}))
|
|
10
11
|
}));
|
|
12
|
+
/**
|
|
13
|
+
* Parses a `Retry-After` header value, either whole seconds or an HTTP date,
|
|
14
|
+
* into a `Duration` measured from `now` (epoch milliseconds). Anything else,
|
|
15
|
+
* such as `1.5` or `-1`, yields `undefined`.
|
|
16
|
+
*/
|
|
17
|
+
export const parseRetryAfter = (value, now) => {
|
|
18
|
+
if (value === undefined) return undefined;
|
|
19
|
+
const retryAfter = Headers.parseRetryAfter(value);
|
|
20
|
+
return Result.isSuccess(retryAfter) ? Headers.retryAfterDelay(retryAfter.success, now) : undefined;
|
|
21
|
+
};
|
|
11
22
|
//# sourceMappingURL=graphqlHeaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlHeaders.js","names":[],"sources":["../../src/internal/graphqlHeaders.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphqlHeaders.js","names":[],"sources":["../../src/internal/graphqlHeaders.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB;AAC7C,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,YAAY,MAAM,oBAAoB;AAElD;AACA,OAAO,MAAM,aAAa,gBAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,cAC3E,MAAM,CAAC,QAAQ,cAAC,MAAM,CAAC,OAAO,CAAkB,OAAO,CAAC,SAAS,CAAC,EAAE;EAClE,MAAM,eAAE,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;EACjD,MAAM,eAAE,YAAY,CAAC,SAAS,CAAE,OAAO,KAAM;IAAE,GAAG;EAAO,CAAE,CAAC;CAC7D,CAAC,CACH;AAED;;;;;AAKA,OAAO,MAAM,eAAe,GAAG,CAAC,KAAyB,EAAE,GAAW,KAAmC;EACvG,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,SAAS;EACzC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;EACjD,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS;AACpG,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonParser.d.ts","sourceRoot":"","sources":["../../src/internal/jsonParser.ts"],"names":[],"mappings":"AA0BA,KAAK,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAE/B,eAAO,MAAM,WAAW,SAAU,MAAM,MAAM,MAAM,UAAU,MAAM,KAAG,WAMtE,CAAA;AAgBD,eAAO,MAAM,KAAK,SAAU,MAAM,UAAU,MAAM,KAAG,OAgQpD,CAAA"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
const json5Space = /(?:[\t\n\v\f\r \u00A0\u2028\u2029\uFEFF\p{Zs}]|\/\/[^\n\r\u2028\u2029]*|\/\*[^]*?\*\/)*/uy;
|
|
2
|
+
const idStart = /[$_\p{ID_Start}]/u;
|
|
3
|
+
const idPart = /[$\u200C\u200D\p{ID_Continue}]/u;
|
|
4
|
+
const idName = /[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*/uy;
|
|
5
|
+
const hexDigits = /[\da-fA-F]*/y;
|
|
6
|
+
const isDigit = code => code >= 0x30 && code <= 0x39;
|
|
7
|
+
const isAsciiIdPart = code => code >= 0x61 && code <= 0x7a || code >= 0x41 && code <= 0x5a || isDigit(code) || code === 0x5f || code === 0x24;
|
|
8
|
+
const jsoncSpace = /(?:[ \t\r\n]|\/\/[^\r\n]*|\/\*[^]*?\*\/)*/uy;
|
|
9
|
+
const jsonNumber = /-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/y;
|
|
10
|
+
// The escapes JSON and JSON5 share, indexed by the character after the backslash.
|
|
11
|
+
// A null prototype keeps absent entries from resolving to inherited properties.
|
|
12
|
+
const escapes = /*#__PURE__*/Object.create(null);
|
|
13
|
+
for (const [escape, value] of ["\"\"", "\\\\", "//", "b\b", "f\f", "n\n", "r\r", "t\t"]) {
|
|
14
|
+
escapes[/*#__PURE__*/escape.charCodeAt(0)] = value;
|
|
15
|
+
}
|
|
16
|
+
// Runs of string content that need no further inspection.
|
|
17
|
+
const json5Double = /[^"\\\n\r]*/y;
|
|
18
|
+
const json5Single = /[^'\\\n\r]*/y;
|
|
19
|
+
// JSON forbids unescaped U+0000 through U+001F.
|
|
20
|
+
// oxlint-disable-next-line no-control-regex
|
|
21
|
+
const jsonDouble = /[^"\\\x00-\x1f]*/y;
|
|
22
|
+
export const syntaxError = (text, at, format) => {
|
|
23
|
+
const json5 = format === "JSON5";
|
|
24
|
+
const lines = text.slice(0, at).split(json5 ? /\r\n|[\n\r\u2028\u2029]/ : /\r\n|[\n\r]/);
|
|
25
|
+
return new SyntaxError(`Invalid ${json5 ? "JSON5" : "JSONC"} at line ${lines.length}, column ${lines[lines.length - 1].length + 1}`);
|
|
26
|
+
};
|
|
27
|
+
const set = (object, key, value) => {
|
|
28
|
+
// Members are own data properties, as with JSON.parse. Assignment creates one unless
|
|
29
|
+
// the key is inherited (`__proto__`, `constructor`, added accessors, ...), where it
|
|
30
|
+
// could run a setter or throw, so inherited keys are defined directly.
|
|
31
|
+
if (key in Object.prototype) {
|
|
32
|
+
Object.defineProperty(object, key, {
|
|
33
|
+
value,
|
|
34
|
+
writable: true,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true
|
|
37
|
+
});
|
|
38
|
+
} else object[key] = value;
|
|
39
|
+
};
|
|
40
|
+
// JSONC only uses the strict mode to locate errors after JSON.parse fails.
|
|
41
|
+
export const parse = (text, format) => {
|
|
42
|
+
const json5 = format === "JSON5";
|
|
43
|
+
const space = json5 ? json5Space : jsoncSpace;
|
|
44
|
+
// JSON strings forbid raw characters below U+0020; JSON5 strings only forbid line breaks.
|
|
45
|
+
const plainFloor = json5 ? 0 : 0x20;
|
|
46
|
+
let i = 0;
|
|
47
|
+
const fail = at => {
|
|
48
|
+
throw syntaxError(text, at, format);
|
|
49
|
+
};
|
|
50
|
+
/** Skips whitespace and comments, rejecting a `/` that starts neither. */
|
|
51
|
+
const skip = () => {
|
|
52
|
+
// ASCII whitespace dominates formatted documents; the pattern handles the rest.
|
|
53
|
+
let code = text.charCodeAt(i);
|
|
54
|
+
while (code === 0x20 || code === 0x0a || code === 0x0d || code === 0x09) code = text.charCodeAt(++i);
|
|
55
|
+
if (code > 0x20 && code !== 0x2f && code < 0xa0) return;
|
|
56
|
+
space.lastIndex = i;
|
|
57
|
+
space.test(text);
|
|
58
|
+
i = space.lastIndex;
|
|
59
|
+
if (text.charCodeAt(i) === 0x2f) {
|
|
60
|
+
fail(text.charAt(i + 1) === "*" ? text.length : i + 1);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/** Advances past a sticky pattern at `i`, returning the matched length. */
|
|
64
|
+
const run = pattern => {
|
|
65
|
+
pattern.lastIndex = i;
|
|
66
|
+
const length = pattern.test(text) ? pattern.lastIndex - i : 0;
|
|
67
|
+
i += length;
|
|
68
|
+
return length;
|
|
69
|
+
};
|
|
70
|
+
const word = (literal, result) => {
|
|
71
|
+
if (!text.startsWith(literal, i)) {
|
|
72
|
+
let at = i;
|
|
73
|
+
while (text.charAt(at) === literal[at - i]) at++;
|
|
74
|
+
fail(at);
|
|
75
|
+
}
|
|
76
|
+
i += literal.length;
|
|
77
|
+
return result;
|
|
78
|
+
};
|
|
79
|
+
const hex = count => {
|
|
80
|
+
let value = 0;
|
|
81
|
+
for (const end = i + count; i < end; i++) {
|
|
82
|
+
const code = text.charCodeAt(i);
|
|
83
|
+
const lower = code | 0x20;
|
|
84
|
+
if (isDigit(code)) value = value * 16 + code - 0x30;else if (lower >= 0x61 && lower <= 0x66) value = value * 16 + lower - 0x57;else fail(i);
|
|
85
|
+
}
|
|
86
|
+
return String.fromCharCode(value);
|
|
87
|
+
};
|
|
88
|
+
const number = () => {
|
|
89
|
+
if (!json5) {
|
|
90
|
+
const start = i;
|
|
91
|
+
if (run(jsonNumber) === 0) fail(i);
|
|
92
|
+
return Number(text.slice(start, i));
|
|
93
|
+
}
|
|
94
|
+
let code = text.charCodeAt(i);
|
|
95
|
+
let sign = 1;
|
|
96
|
+
if (code === 0x2b || code === 0x2d) {
|
|
97
|
+
if (code === 0x2d) sign = -1;
|
|
98
|
+
code = text.charCodeAt(++i);
|
|
99
|
+
}
|
|
100
|
+
const start = i;
|
|
101
|
+
if (code === 0x49) return word("Infinity", sign * Infinity);
|
|
102
|
+
if (code === 0x4e) return word("NaN", NaN);
|
|
103
|
+
if (code === 0x30 && (text.charCodeAt(i + 1) | 0x20) === 0x78) {
|
|
104
|
+
i += 2;
|
|
105
|
+
if (run(hexDigits) === 0) fail(i);
|
|
106
|
+
return sign * Number(text.slice(start, i));
|
|
107
|
+
}
|
|
108
|
+
// Integers below 2^53 are accumulated directly; anything else goes through Number.
|
|
109
|
+
let integer = 0;
|
|
110
|
+
if (code === 0x30) code = text.charCodeAt(++i);else if (isDigit(code)) {
|
|
111
|
+
do {
|
|
112
|
+
integer = integer * 10 + code - 0x30;
|
|
113
|
+
code = text.charCodeAt(++i);
|
|
114
|
+
} while (isDigit(code));
|
|
115
|
+
} else if (code !== 0x2e) fail(i);
|
|
116
|
+
if (code !== 0x2e && code !== 0x65 && code !== 0x45 && i - start < 16) return sign * integer;
|
|
117
|
+
if (code === 0x2e) {
|
|
118
|
+
const fraction = ++i;
|
|
119
|
+
while (isDigit(text.charCodeAt(i))) i++;
|
|
120
|
+
// A leading decimal point needs digits after it; a trailing one does not.
|
|
121
|
+
if (i === fraction && fraction === start + 1) fail(i);
|
|
122
|
+
code = text.charCodeAt(i);
|
|
123
|
+
}
|
|
124
|
+
if (code === 0x65 || code === 0x45) {
|
|
125
|
+
code = text.charCodeAt(++i);
|
|
126
|
+
if (code === 0x2b || code === 0x2d) i++;
|
|
127
|
+
const exponent = i;
|
|
128
|
+
while (isDigit(text.charCodeAt(i))) i++;
|
|
129
|
+
if (i === exponent) fail(i);
|
|
130
|
+
}
|
|
131
|
+
return sign * Number(text.slice(start, i));
|
|
132
|
+
};
|
|
133
|
+
const string = quote => {
|
|
134
|
+
const plain = quote === 0x27 ? json5Single : json5 ? json5Double : jsonDouble;
|
|
135
|
+
let result = "";
|
|
136
|
+
for (i++;;) {
|
|
137
|
+
// Plain content runs until the quote, an escape, a line break, a control character
|
|
138
|
+
// JSON forbids, or the end of input, where `code` is NaN and fails the last test.
|
|
139
|
+
const start = i;
|
|
140
|
+
let code = text.charCodeAt(i);
|
|
141
|
+
// Short runs are cheaper to scan by hand; long runs are handed to the pattern.
|
|
142
|
+
const handoff = i + 24;
|
|
143
|
+
while (code !== quote && code !== 0x5c && code !== 0x0a && code !== 0x0d && code >= plainFloor) {
|
|
144
|
+
if (++i === handoff) {
|
|
145
|
+
run(plain);
|
|
146
|
+
code = text.charCodeAt(i);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
code = text.charCodeAt(i);
|
|
150
|
+
}
|
|
151
|
+
result += text.slice(start, i);
|
|
152
|
+
i++;
|
|
153
|
+
if (code === quote) return result;
|
|
154
|
+
// Anything else that stops a plain run is an escape or a forbidden character.
|
|
155
|
+
if (code !== 0x5c) fail(i - 1);
|
|
156
|
+
const escape = text.charCodeAt(i++);
|
|
157
|
+
const simple = escapes[escape];
|
|
158
|
+
if (simple !== undefined) result += simple;else if (escape === 0x75) result += hex(4);else if (!json5 || i > text.length || escape >= 0x31 && escape <= 0x39) fail(i - 1);else if (escape === 0x76) result += "\v";else if (escape === 0x78) result += hex(2);else if (escape === 0x30) {
|
|
159
|
+
if (isDigit(text.charCodeAt(i))) fail(i);
|
|
160
|
+
result += "\0";
|
|
161
|
+
} else if (escape === 0x0d) {
|
|
162
|
+
// A CR LF line continuation contributes nothing, like a single line terminator.
|
|
163
|
+
if (text.charCodeAt(i) === 0x0a) i++;
|
|
164
|
+
} else if (escape !== 0x0a && escape !== 0x2028 && escape !== 0x2029) result += text[i - 1];
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const identifier = () => {
|
|
168
|
+
const start = i;
|
|
169
|
+
let code = text.charCodeAt(i);
|
|
170
|
+
if (isAsciiIdPart(code) && !isDigit(code)) {
|
|
171
|
+
do code = text.charCodeAt(++i); while (isAsciiIdPart(code));
|
|
172
|
+
// Past an ASCII name, only an escape or a non-ASCII character can continue it.
|
|
173
|
+
if (code !== 0x5c && !(code >= 0x80)) return text.slice(start, i);
|
|
174
|
+
i = start;
|
|
175
|
+
}
|
|
176
|
+
run(idName);
|
|
177
|
+
let name = text.slice(start, i);
|
|
178
|
+
if (name !== "" && text.charAt(i) !== "\\") return name;
|
|
179
|
+
// Escapes are validated one code point at a time.
|
|
180
|
+
for (;;) {
|
|
181
|
+
const at = i;
|
|
182
|
+
const valid = name === "" ? idStart : idPart;
|
|
183
|
+
let c = String.fromCodePoint(text.codePointAt(i) ?? 0);
|
|
184
|
+
if (c === "\\") {
|
|
185
|
+
if (text.charAt(i + 1) !== "u") fail(i + 1);
|
|
186
|
+
i += 2;
|
|
187
|
+
c = hex(4);
|
|
188
|
+
if (!valid.test(c)) fail(at);
|
|
189
|
+
} else if (i < text.length && valid.test(c)) i += c.length;else if (name === "") fail(i);else return name;
|
|
190
|
+
name += c;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
const stack = [];
|
|
194
|
+
/**
|
|
195
|
+
* Reads a value at `i`, which must already be past any whitespace. Opening a
|
|
196
|
+
* collection returns `undefined`; the collection is completed later.
|
|
197
|
+
*/
|
|
198
|
+
const value = () => {
|
|
199
|
+
const code = text.charCodeAt(i);
|
|
200
|
+
switch (code) {
|
|
201
|
+
case 0x7b:
|
|
202
|
+
stack.push({
|
|
203
|
+
object: true,
|
|
204
|
+
value: {},
|
|
205
|
+
key: "",
|
|
206
|
+
first: true
|
|
207
|
+
});
|
|
208
|
+
i++;
|
|
209
|
+
return undefined;
|
|
210
|
+
case 0x5b:
|
|
211
|
+
stack.push({
|
|
212
|
+
object: false,
|
|
213
|
+
value: [],
|
|
214
|
+
first: true
|
|
215
|
+
});
|
|
216
|
+
i++;
|
|
217
|
+
return undefined;
|
|
218
|
+
case 0x22:
|
|
219
|
+
return string(0x22);
|
|
220
|
+
case 0x27:
|
|
221
|
+
return json5 ? string(0x27) : fail(i);
|
|
222
|
+
case 0x6e:
|
|
223
|
+
return word("null", null);
|
|
224
|
+
case 0x74:
|
|
225
|
+
return word("true", true);
|
|
226
|
+
case 0x66:
|
|
227
|
+
return word("false", false);
|
|
228
|
+
case 0x2b:
|
|
229
|
+
case 0x2d:
|
|
230
|
+
case 0x2e:
|
|
231
|
+
case 0x49:
|
|
232
|
+
case 0x4e:
|
|
233
|
+
return number();
|
|
234
|
+
}
|
|
235
|
+
return isDigit(code) ? number() : fail(i);
|
|
236
|
+
};
|
|
237
|
+
/** After a member: consumes a comma unless the collection ends. */
|
|
238
|
+
const separated = close => {
|
|
239
|
+
skip();
|
|
240
|
+
const code = text.charCodeAt(i);
|
|
241
|
+
if (code === close) return;
|
|
242
|
+
if (code !== 0x2c) fail(i);
|
|
243
|
+
i++;
|
|
244
|
+
skip();
|
|
245
|
+
if (!json5 && text.charCodeAt(i) === close) fail(i);
|
|
246
|
+
};
|
|
247
|
+
skip();
|
|
248
|
+
let result = value();
|
|
249
|
+
// An explicit stack keeps deep nesting off the call stack.
|
|
250
|
+
while (stack.length > 0) {
|
|
251
|
+
const frame = stack[stack.length - 1];
|
|
252
|
+
const close = frame.object ? 0x7d : 0x5d;
|
|
253
|
+
if (frame.first) skip();else separated(close);
|
|
254
|
+
if (text.charCodeAt(i) === close) {
|
|
255
|
+
stack.pop();
|
|
256
|
+
i++;
|
|
257
|
+
const parent = stack[stack.length - 1];
|
|
258
|
+
if (parent === undefined) result = frame.value;else if (parent.object) set(parent.value, parent.key, frame.value);else parent.value.push(frame.value);
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
frame.first = false;
|
|
262
|
+
if (!frame.object) {
|
|
263
|
+
const item = value();
|
|
264
|
+
if (item !== undefined) frame.value.push(item);
|
|
265
|
+
} else {
|
|
266
|
+
const quote = text.charCodeAt(i);
|
|
267
|
+
if (!json5 && quote !== 0x22) fail(i);
|
|
268
|
+
const key = quote === 0x22 || quote === 0x27 ? string(quote) : identifier();
|
|
269
|
+
skip();
|
|
270
|
+
if (text.charCodeAt(i++) !== 0x3a) fail(i - 1);
|
|
271
|
+
skip();
|
|
272
|
+
const item = value();
|
|
273
|
+
if (item === undefined) frame.key = key;else set(frame.value, key, item);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
skip();
|
|
277
|
+
if (i < text.length) fail(i);
|
|
278
|
+
return result;
|
|
279
|
+
};
|
|
280
|
+
//# sourceMappingURL=jsonParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonParser.js","names":[],"sources":["../../src/internal/jsonParser.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/** @internal */
|
|
2
2
|
export const sqlCleanupBatchSize = 1000;
|
|
3
|
+
/**
|
|
4
|
+
* Percent-encodes `%` and `:` so the result contains no `:` and distinct inputs
|
|
5
|
+
* stay distinct.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export const escapeKeySegment = segment => segment.replace(/%/g, "%25").replace(/:/g, "%3A");
|
|
3
10
|
/**
|
|
4
11
|
* Key prefix for a persistence store. The store id is escaped so the namespace
|
|
5
12
|
* always ends at its first `:`, and distinct store / key pairs never collide.
|
|
6
13
|
*
|
|
7
14
|
* @internal
|
|
8
15
|
*/
|
|
9
|
-
export const storeNamespace = storeId => `${storeId
|
|
16
|
+
export const storeNamespace = storeId => `${escapeKeySegment(storeId)}:`;
|
|
10
17
|
/** @internal */
|
|
11
18
|
export const escapeRedisGlob = pattern => pattern.replace(/[\\*?[\]]/g, "\\$&");
|
|
12
19
|
//# sourceMappingURL=persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","names":[],"sources":["../../src/internal/persistence.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,OAAO,MAAM,mBAAmB,GAAG,IAAI;AAEvC;;;;;;AAMA,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"persistence.js","names":[],"sources":["../../src/internal/persistence.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,OAAO,MAAM,mBAAmB,GAAG,IAAI;AAEvC;;;;;;AAMA,OAAO,MAAM,gBAAgB,GAAI,OAAe,IAAa,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AAE9G;;;;;;AAMA,OAAO,MAAM,cAAc,GAAI,OAAe,IAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG;AAE1F;AACA,OAAO,MAAM,eAAe,GAAI,OAAe,IAAa,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC","ignoreList":[]}
|
package/dist/internal/request.js
CHANGED
|
@@ -41,8 +41,34 @@ const makeBatchMap = resolver => {
|
|
|
41
41
|
delete: key => MutableHashMap.remove(map, key)
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
|
-
const batchPool = [];
|
|
45
44
|
const pendingBatches = /*#__PURE__*/new WeakMap();
|
|
45
|
+
// Batches are built outside `addEntry` so their callbacks do not share a closure
|
|
46
|
+
// context with per-request entries, which would keep completed requests alive.
|
|
47
|
+
const makeBatch = (key, context, resolver, map) => {
|
|
48
|
+
const batch = {
|
|
49
|
+
key,
|
|
50
|
+
context,
|
|
51
|
+
resolver,
|
|
52
|
+
map,
|
|
53
|
+
entrySet: new Set(),
|
|
54
|
+
entries: new Set(),
|
|
55
|
+
delayEffect: effect.flatMap(withFiber(delayFiber => {
|
|
56
|
+
// Reentrant delay callbacks may fill the batch and interrupt this fiber.
|
|
57
|
+
batch.fiber = delayFiber;
|
|
58
|
+
return batch.resolver.delay;
|
|
59
|
+
}), _ => runBatch(batch)),
|
|
60
|
+
run: effect.onExit(effect.suspend(() => batch.resolver.runAll(Array.from(batch.entries), batch.key)), exit => {
|
|
61
|
+
for (const entry of batch.entrySet) {
|
|
62
|
+
entry.completeUnsafe(exit._tag === "Success" ? exitDie(new Error("Effect.request: RequestResolver did not complete request", {
|
|
63
|
+
cause: entry.request
|
|
64
|
+
})) : exit);
|
|
65
|
+
}
|
|
66
|
+
batch.entries.clear();
|
|
67
|
+
return effect.void;
|
|
68
|
+
})
|
|
69
|
+
};
|
|
70
|
+
return batch;
|
|
71
|
+
};
|
|
46
72
|
const addEntry = (resolver, request, resume, fiber) => {
|
|
47
73
|
let batchMap = pendingBatches.get(resolver);
|
|
48
74
|
if (!batchMap) {
|
|
@@ -70,46 +96,7 @@ const addEntry = (resolver, request, resume, fiber) => {
|
|
|
70
96
|
batch = batchMap.get(key);
|
|
71
97
|
const isNewBatch = batch === undefined;
|
|
72
98
|
if (!batch) {
|
|
73
|
-
|
|
74
|
-
batch = batchPool.pop();
|
|
75
|
-
batch.key = key;
|
|
76
|
-
batch.context = fiber.context;
|
|
77
|
-
batch.resolver = resolver;
|
|
78
|
-
batch.map = batchMap;
|
|
79
|
-
} else {
|
|
80
|
-
const newBatch = {
|
|
81
|
-
key,
|
|
82
|
-
context: fiber.context,
|
|
83
|
-
resolver,
|
|
84
|
-
map: batchMap,
|
|
85
|
-
entrySet: new Set(),
|
|
86
|
-
entries: new Set(),
|
|
87
|
-
delayEffect: effect.flatMap(withFiber(delayFiber => {
|
|
88
|
-
// Reentrant delay callbacks may fill the batch and interrupt this fiber.
|
|
89
|
-
newBatch.fiber = delayFiber;
|
|
90
|
-
return newBatch.resolver.delay;
|
|
91
|
-
}), _ => runBatch(newBatch)),
|
|
92
|
-
run: effect.onExit(effect.suspend(() => newBatch.resolver.runAll(Array.from(newBatch.entries), newBatch.key)), exit => {
|
|
93
|
-
for (const entry of newBatch.entrySet) {
|
|
94
|
-
entry.completeUnsafe(exit._tag === "Success" ? exitDie(new Error("Effect.request: RequestResolver did not complete request", {
|
|
95
|
-
cause: entry.request
|
|
96
|
-
})) : exit);
|
|
97
|
-
}
|
|
98
|
-
newBatch.entries.clear();
|
|
99
|
-
if (batchPool.length < 128) {
|
|
100
|
-
newBatch.entrySet.clear();
|
|
101
|
-
newBatch.key = undefined;
|
|
102
|
-
newBatch.context = undefined;
|
|
103
|
-
newBatch.fiber = undefined;
|
|
104
|
-
newBatch.resolver = undefined;
|
|
105
|
-
newBatch.map = undefined;
|
|
106
|
-
batchPool.push(newBatch);
|
|
107
|
-
}
|
|
108
|
-
return effect.void;
|
|
109
|
-
})
|
|
110
|
-
};
|
|
111
|
-
batch = newBatch;
|
|
112
|
-
}
|
|
99
|
+
batch = makeBatch(key, fiber.context, resolver, batchMap);
|
|
113
100
|
batchMap.set(key, batch);
|
|
114
101
|
}
|
|
115
102
|
batch.entrySet.add(entry);
|
|
@@ -118,7 +105,7 @@ const addEntry = (resolver, request, resume, fiber) => {
|
|
|
118
105
|
const delayFiber = effect.runForkWith(fiber.context)(batch.delayEffect, {
|
|
119
106
|
scheduler: fiber.cache.scheduler
|
|
120
107
|
});
|
|
121
|
-
// A synchronous delay may have already run
|
|
108
|
+
// A synchronous delay may have already run this batch.
|
|
122
109
|
if (completed || batchMap.get(key) !== batch) return entry;
|
|
123
110
|
batch.fiber = delayFiber;
|
|
124
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","names":[],"sources":["../../src/internal/request.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,eAAe;AAIxC,SAAS,IAAI,QAAQ,gBAAgB;AACrC,OAAO,KAAK,cAAc,MAAM,sBAAsB;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc;AAEtC,SAAS,SAAS,QAAQ,eAAe;AAEzC,SAAS,SAAS,QAAQ,iBAAiB;AAC3C,SAAS,OAAO,EAAE,QAAQ,EAAE,SAAS,QAAQ,WAAW;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa;AAErC;AACA,OAAO,MAAM,OAAO,gBAgBhB,IAAI,CACN,CAAC,EACD,CACE,IAAO,EACP,QAAiE,KAK/D;EACF,MAAM,YAAY,GAAI,QAA4B,IAChD,MAAM,CAAC,QAAQ,CAIZ,MAAM,IAAI;IACX,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,EAAG,CAAC;IACzE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;EAC1C,CAAC,CAAC;EACJ,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC7F,CAAC,CACF;AAED;AACA,OAAO,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,OAIC,KACa;EACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE;IAC7D,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,KAAK,EAAE;MAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS;IAAC;GAC5D,CAAC;EACF,OAAO,MAAM,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;AACzD,CAAC;AAED;;;;;;AAMA,OAAO,MAAM,cAAc,gBAAG,IAAI,OAAO,EAAY;AASrD,MAAM,YAAY,GAAI,QAA8B,IAAc;EAChE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,GAAG,EAAE;EAC5D,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAkB;EAClD,OAAO;IACL,GAAG,EAAG,GAAG,IAAK,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjE,GAAG,EAAG,GAAG,IAAK,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAC1C,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IACxD,MAAM,EAAG,GAAG,IAAK,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;GAChD;AACH,CAAC;AAcD,MAAM,
|
|
1
|
+
{"version":3,"file":"request.js","names":[],"sources":["../../src/internal/request.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -471,7 +471,8 @@ export function fromJsonSchemaMultiDocument(document, options, singleRoot = fals
|
|
|
471
471
|
return out;
|
|
472
472
|
}
|
|
473
473
|
case "Union":
|
|
474
|
-
|
|
474
|
+
// Finite primitive literal sets intersect without expansion, so they can be duplicated across branches.
|
|
475
|
+
return !isLiteralSet(representation) && (representation.types.length > 1 || representation.types.some(hasChoices));
|
|
475
476
|
case "Arrays":
|
|
476
477
|
return representation.elements.some(element => hasChoices(element.type)) || representation.rest.some(hasChoices);
|
|
477
478
|
case "Objects":
|
|
@@ -496,14 +497,14 @@ export function fromJsonSchemaMultiDocument(document, options, singleRoot = fals
|
|
|
496
497
|
if (representation._tag !== "Literal") return undefined;
|
|
497
498
|
return representation.literal;
|
|
498
499
|
}
|
|
500
|
+
function isLiteralSet(union) {
|
|
501
|
+
return (union.options?.mode ?? "anyOf") === "anyOf" && union.types.every(type => literalValue(type) !== undefined);
|
|
502
|
+
}
|
|
499
503
|
function intersectLiteralUnions(left, right, path) {
|
|
500
|
-
if ((left
|
|
501
|
-
return undefined;
|
|
502
|
-
}
|
|
504
|
+
if (!isLiteralSet(left) || !isLiteralSet(right)) return undefined;
|
|
503
505
|
const rightByValue = new Map();
|
|
504
506
|
for (const representation of right.types) {
|
|
505
507
|
const value = literalValue(representation);
|
|
506
|
-
if (value === undefined) return undefined;
|
|
507
508
|
const previous = rightByValue.get(value);
|
|
508
509
|
rightByValue.set(value, {
|
|
509
510
|
...representation,
|
|
@@ -512,9 +513,7 @@ export function fromJsonSchemaMultiDocument(document, options, singleRoot = fals
|
|
|
512
513
|
}
|
|
513
514
|
const types = [];
|
|
514
515
|
for (const representation of left.types) {
|
|
515
|
-
const
|
|
516
|
-
if (value === undefined) return undefined;
|
|
517
|
-
const match = rightByValue.get(value);
|
|
516
|
+
const match = rightByValue.get(literalValue(representation));
|
|
518
517
|
if (match !== undefined) types.push(intersect(representation, annotate(match, right), path));
|
|
519
518
|
}
|
|
520
519
|
return makeUnion(left, types);
|