effect 4.0.0-beta.84 → 4.0.0-beta.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +4 -3
- package/dist/Context.js.map +1 -1
- package/dist/Layer.js +4 -3
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +4 -3
- package/dist/LayerMap.js.map +1 -1
- package/dist/Random.d.ts +31 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +32 -0
- package/dist/Random.js.map +1 -1
- package/dist/Schema.d.ts +48 -6
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +31 -11
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +8 -7
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +190 -131
- package/dist/SchemaAST.js.map +1 -1
- package/dist/internal/effect.js +10 -10
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schema/arbitrary.js +17 -1
- package/dist/internal/schema/arbitrary.js.map +1 -1
- package/dist/internal/stackTraceLimit.d.ts +2 -0
- package/dist/internal/stackTraceLimit.d.ts.map +1 -0
- package/dist/internal/stackTraceLimit.js +40 -0
- package/dist/internal/stackTraceLimit.js.map +1 -0
- package/dist/internal/tracer.d.ts.map +1 -1
- package/dist/internal/tracer.js +4 -3
- package/dist/internal/tracer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +4 -5
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +4 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +4 -3
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/package.json +1 -1
- package/src/Context.ts +4 -5
- package/src/Layer.ts +4 -4
- package/src/LayerMap.ts +4 -3
- package/src/Random.ts +42 -0
- package/src/Schema.ts +75 -22
- package/src/SchemaAST.ts +217 -137
- package/src/internal/effect.ts +11 -11
- package/src/internal/schema/arbitrary.ts +23 -2
- package/src/internal/stackTraceLimit.ts +63 -0
- package/src/internal/tracer.ts +4 -3
- package/src/unstable/ai/Tool.ts +4 -3
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -3
- package/src/unstable/persistence/PersistedQueue.ts +1 -1
- package/src/unstable/rpc/RpcMiddleware.ts +4 -3
package/dist/Schema.js
CHANGED
|
@@ -1600,14 +1600,20 @@ function templateLiteralFromParts(parts) {
|
|
|
1600
1600
|
return new SchemaAST.TemplateLiteral(parts.map(part => isSchema(part) ? part.ast : new SchemaAST.Literal(part)));
|
|
1601
1601
|
}
|
|
1602
1602
|
/**
|
|
1603
|
-
* Creates a schema that validates strings matching
|
|
1604
|
-
*
|
|
1603
|
+
* Creates a schema that validates strings by matching ordered template literal
|
|
1604
|
+
* parts.
|
|
1605
1605
|
*
|
|
1606
1606
|
* **When to use**
|
|
1607
1607
|
*
|
|
1608
1608
|
* Use when the decoded value should remain the matched string and you do not
|
|
1609
1609
|
* need the individual template parts parsed into a tuple.
|
|
1610
1610
|
*
|
|
1611
|
+
* **Details**
|
|
1612
|
+
*
|
|
1613
|
+
* Each part can be a literal `string`, `number`, or `bigint`, or a schema whose
|
|
1614
|
+
* encoded type is `string`, `number`, or `bigint`. Checks on string, number,
|
|
1615
|
+
* and bigint schema parts are applied while matching each segment.
|
|
1616
|
+
*
|
|
1611
1617
|
* **Example** (Defining a URL path pattern)
|
|
1612
1618
|
*
|
|
1613
1619
|
* ```ts
|
|
@@ -1627,7 +1633,7 @@ export function TemplateLiteral(parts) {
|
|
|
1627
1633
|
});
|
|
1628
1634
|
}
|
|
1629
1635
|
/**
|
|
1630
|
-
* Schema for parsing template literal
|
|
1636
|
+
* Schema for parsing matched template literal strings into typed tuple parts.
|
|
1631
1637
|
*
|
|
1632
1638
|
* **When to use**
|
|
1633
1639
|
*
|
|
@@ -1637,7 +1643,8 @@ export function TemplateLiteral(parts) {
|
|
|
1637
1643
|
* **Details**
|
|
1638
1644
|
*
|
|
1639
1645
|
* Unlike {@link TemplateLiteral}, this schema decodes the matched string into a
|
|
1640
|
-
* readonly tuple with one element per schema part.
|
|
1646
|
+
* readonly tuple with one element per schema part. Checks on string, number,
|
|
1647
|
+
* and bigint schema parts are applied while matching each segment.
|
|
1641
1648
|
*
|
|
1642
1649
|
* **Example** (Parsing path parameters)
|
|
1643
1650
|
*
|
|
@@ -2015,7 +2022,18 @@ derive) {
|
|
|
2015
2022
|
};
|
|
2016
2023
|
}
|
|
2017
2024
|
/**
|
|
2018
|
-
* Defines a record
|
|
2025
|
+
* Defines a record schema whose dynamic properties are selected by a key schema
|
|
2026
|
+
* and decoded with a value schema.
|
|
2027
|
+
*
|
|
2028
|
+
* **Details**
|
|
2029
|
+
*
|
|
2030
|
+
* For dynamic keys, the key schema selects matching own properties and the
|
|
2031
|
+
* value schema decodes or encodes only those selected properties. Checks on
|
|
2032
|
+
* string, number, symbol, and template literal key schemas narrow which
|
|
2033
|
+
* properties are selected.
|
|
2034
|
+
*
|
|
2035
|
+
* For transformed key schemas, property selection is based on encoded property
|
|
2036
|
+
* names before the selected key is decoded.
|
|
2019
2037
|
*
|
|
2020
2038
|
* **Example** (Defining a string-keyed record of numbers)
|
|
2021
2039
|
*
|
|
@@ -7482,14 +7500,16 @@ function makeClass(Inherited, identifier, struct, annotations, proto) {
|
|
|
7482
7500
|
return this.rebuild(SchemaAST.appendChecks(this.ast, checks));
|
|
7483
7501
|
}
|
|
7484
7502
|
static extend(identifier) {
|
|
7485
|
-
return (
|
|
7503
|
+
return (schema, annotations) => {
|
|
7504
|
+
const extension = isStruct(schema) ? schema : Struct(schema);
|
|
7486
7505
|
const fields = {
|
|
7487
7506
|
...struct.fields,
|
|
7488
|
-
...
|
|
7507
|
+
...extension.fields
|
|
7489
7508
|
};
|
|
7490
|
-
|
|
7509
|
+
const ast = SchemaAST.struct(fields, struct.ast.checks, {
|
|
7491
7510
|
identifier
|
|
7492
|
-
})
|
|
7511
|
+
});
|
|
7512
|
+
return makeClass(this, identifier, makeStruct(SchemaAST.appendChecks(ast, extension.ast.checks), fields), annotations, proto);
|
|
7493
7513
|
};
|
|
7494
7514
|
}
|
|
7495
7515
|
static mapFields(f, options) {
|
|
@@ -8040,7 +8060,7 @@ function toCodecJsonBase(ast, recur) {
|
|
|
8040
8060
|
cause: ast
|
|
8041
8061
|
});
|
|
8042
8062
|
}
|
|
8043
|
-
return ast.recur(recur);
|
|
8063
|
+
return ast.recur(recur, SchemaAST.parameterFromString);
|
|
8044
8064
|
}
|
|
8045
8065
|
case "Union":
|
|
8046
8066
|
{
|
|
@@ -8251,7 +8271,7 @@ function serializerTree(ast, recur, onMissingAnnotation) {
|
|
|
8251
8271
|
cause: ast
|
|
8252
8272
|
});
|
|
8253
8273
|
}
|
|
8254
|
-
return ast.recur(recur);
|
|
8274
|
+
return ast.recur(recur, SchemaAST.parameterFromString);
|
|
8255
8275
|
}
|
|
8256
8276
|
case "Union":
|
|
8257
8277
|
{
|