effect-app 4.0.0-beta.27 → 4.0.0-beta.271
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/CHANGELOG.md +1269 -0
- package/dist/Array.d.ts +2 -1
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +4 -4
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Config/SecretURL.d.ts +3 -1
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +3 -6
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
- package/dist/Config/internal/configSecretURL.js +2 -2
- package/dist/Config.d.ts +2 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +8 -0
- package/dist/ConfigProvider.d.ts +2 -0
- package/dist/ConfigProvider.d.ts.map +1 -0
- package/dist/ConfigProvider.js +6 -0
- package/dist/{ServiceMap.d.ts → Context.d.ts} +18 -20
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +67 -0
- package/dist/Effect.d.ts +10 -9
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +5 -8
- package/dist/Emailer.d.ts +51 -0
- package/dist/Emailer.d.ts.map +1 -0
- package/dist/Emailer.js +7 -0
- package/dist/Function.d.ts.map +1 -1
- package/dist/Layer.d.ts +10 -6
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +3 -2
- package/dist/Model/Repository/Registry.d.ts +22 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +18 -0
- package/dist/Model/Repository/ext.d.ts +60 -0
- package/dist/Model/Repository/ext.d.ts.map +1 -0
- package/dist/Model/Repository/ext.js +122 -0
- package/dist/Model/Repository/internal/internal.d.ts +63 -0
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
- package/dist/Model/Repository/internal/internal.js +430 -0
- package/dist/Model/Repository/legacy.d.ts +21 -0
- package/dist/Model/Repository/legacy.d.ts.map +1 -0
- package/dist/Model/Repository/legacy.js +2 -0
- package/dist/Model/Repository/makeRepo.d.ts +54 -0
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
- package/dist/Model/Repository/makeRepo.js +27 -0
- package/dist/Model/Repository/service.d.ts +121 -0
- package/dist/Model/Repository/service.d.ts.map +1 -0
- package/dist/Model/Repository/service.js +2 -0
- package/dist/Model/Repository/validation.d.ts +58 -0
- package/dist/Model/Repository/validation.d.ts.map +1 -0
- package/dist/Model/Repository/validation.js +32 -0
- package/dist/Model/Repository.d.ts +7 -0
- package/dist/Model/Repository.d.ts.map +1 -0
- package/dist/Model/Repository.js +7 -0
- package/dist/Model/dsl.d.ts +33 -0
- package/dist/Model/dsl.d.ts.map +1 -0
- package/dist/Model/dsl.js +43 -0
- package/dist/Model/filter/filterApi.d.ts +30 -0
- package/dist/Model/filter/filterApi.d.ts.map +1 -0
- package/dist/Model/filter/filterApi.js +2 -0
- package/dist/Model/filter/types/errors.d.ts +29 -0
- package/dist/Model/filter/types/errors.d.ts.map +1 -0
- package/dist/Model/filter/types/errors.js +2 -0
- package/dist/Model/filter/types/fields.d.ts +15 -0
- package/dist/Model/filter/types/fields.d.ts.map +1 -0
- package/dist/Model/filter/types/fields.js +2 -0
- package/dist/Model/filter/types/path/common.d.ts +316 -0
- package/dist/Model/filter/types/path/common.d.ts.map +1 -0
- package/dist/Model/filter/types/path/common.js +2 -0
- package/dist/Model/filter/types/path/eager.d.ts +94 -0
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
- package/dist/Model/filter/types/path/eager.js +36 -0
- package/dist/Model/filter/types/path/index.d.ts +4 -0
- package/dist/Model/filter/types/path/index.d.ts.map +1 -0
- package/dist/Model/filter/types/path/index.js +3 -0
- package/dist/Model/filter/types/utils.d.ts +79 -0
- package/dist/Model/filter/types/utils.d.ts.map +1 -0
- package/dist/Model/filter/types/utils.js +2 -0
- package/dist/Model/filter/types/validator.d.ts +30 -0
- package/dist/Model/filter/types/validator.d.ts.map +1 -0
- package/dist/Model/filter/types/validator.js +2 -0
- package/dist/Model/filter/types.d.ts +5 -0
- package/dist/Model/filter/types.d.ts.map +1 -0
- package/dist/Model/filter/types.js +7 -0
- package/dist/Model/query/dsl.d.ts +493 -0
- package/dist/Model/query/dsl.d.ts.map +1 -0
- package/dist/Model/query/dsl.js +376 -0
- package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/Model/query/new-kid-interpreter.js +336 -0
- package/dist/Model/query.d.ts +15 -0
- package/dist/Model/query.d.ts.map +1 -0
- package/dist/Model/query.js +3 -0
- package/dist/Model.d.ts +5 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +5 -0
- package/dist/NonEmptySet.d.ts +3 -1
- package/dist/NonEmptySet.d.ts.map +1 -1
- package/dist/NonEmptySet.js +2 -2
- package/dist/Option.d.ts +1 -0
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +3 -1
- package/dist/Pure.d.ts +7 -5
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +17 -14
- package/dist/QueueMaker.d.ts +13 -0
- package/dist/QueueMaker.d.ts.map +1 -0
- package/dist/QueueMaker.js +4 -0
- package/dist/RequestContext.d.ts +208 -0
- package/dist/RequestContext.d.ts.map +1 -0
- package/dist/RequestContext.js +54 -0
- package/dist/Schema/Class.d.ts +157 -19
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +214 -17
- package/dist/Schema/FastCheck.d.ts.map +1 -1
- package/dist/Schema/SchemaParser.d.ts +5 -0
- package/dist/Schema/SchemaParser.d.ts.map +1 -0
- package/dist/Schema/SchemaParser.js +6 -0
- package/dist/Schema/SpecialJsonSchema.d.ts +34 -0
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
- package/dist/Schema/SpecialJsonSchema.js +118 -0
- package/dist/Schema/SpecialOpenApi.d.ts +32 -0
- package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
- package/dist/Schema/SpecialOpenApi.js +123 -0
- package/dist/Schema/brand.d.ts +4 -2
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +3 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +7 -4
- package/dist/Schema/ext.d.ts +338 -55
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +358 -53
- package/dist/Schema/moreStrings.d.ts +82 -36
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +49 -42
- package/dist/Schema/numbers.d.ts +34 -21
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +55 -12
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +6 -3
- package/dist/Schema/strings.d.ts +18 -4
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +1 -5
- package/dist/Schema.d.ts +213 -7
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +190 -11
- package/dist/Set.d.ts +4 -1
- package/dist/Set.d.ts.map +1 -1
- package/dist/Set.js +3 -2
- package/dist/Store.d.ts +170 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +121 -0
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +4 -2
- package/dist/_ext/misc.d.ts +4 -1
- package/dist/_ext/misc.d.ts.map +1 -1
- package/dist/_ext/misc.js +4 -2
- package/dist/_ext/ord.ext.d.ts +2 -1
- package/dist/_ext/ord.ext.d.ts.map +1 -1
- package/dist/_ext/ord.ext.js +2 -2
- package/dist/client/InvalidationKeys.d.ts +29 -0
- package/dist/client/InvalidationKeys.d.ts.map +1 -0
- package/dist/client/InvalidationKeys.js +33 -0
- package/dist/client/apiClientFactory.d.ts +19 -31
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +104 -34
- package/dist/client/clientFor.d.ts +52 -18
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +9 -1
- package/dist/client/errors.d.ts +82 -27
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +75 -19
- package/dist/client/makeClient.d.ts +494 -32
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +66 -24
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/faker.d.ts.map +1 -1
- package/dist/http/Request.d.ts +1 -1
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +2 -2
- package/dist/ids.d.ts +42 -14
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +30 -5
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/middleware.d.ts +13 -7
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +14 -8
- package/dist/rpc/Invalidation.d.ts +420 -0
- package/dist/rpc/Invalidation.d.ts.map +1 -0
- package/dist/rpc/Invalidation.js +168 -0
- package/dist/rpc/MiddlewareMaker.d.ts +11 -7
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +59 -38
- package/dist/rpc/RpcContextMap.d.ts +3 -3
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +14 -10
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/rpc.d.ts +1 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -2
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +40 -0
- package/dist/setupRequest.d.ts +19 -0
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +69 -0
- package/dist/toast.d.ts +51 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +34 -0
- package/dist/transform.d.ts +1 -1
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +4 -5
- package/dist/utils/effectify.d.ts +1 -1
- package/dist/utils/effectify.d.ts.map +1 -1
- package/dist/utils/effectify.js +2 -2
- package/dist/utils/extend.d.ts.map +1 -1
- package/dist/utils/gen.d.ts +4 -4
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logLevel.d.ts +2 -2
- package/dist/utils/logLevel.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +4 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +4 -4
- package/dist/utils.d.ts +34 -39
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +33 -37
- package/dist/validation/validators.d.ts.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/withToast.d.ts +30 -0
- package/dist/withToast.d.ts.map +1 -0
- package/dist/withToast.js +64 -0
- package/package.json +22 -247
- package/src/Array.ts +5 -5
- package/src/Chunk.ts +3 -3
- package/src/Config/SecretURL.ts +6 -3
- package/src/Config/internal/configSecretURL.ts +2 -2
- package/src/Config.ts +7 -0
- package/src/ConfigProvider.ts +5 -0
- package/src/{ServiceMap.ts → Context.ts} +56 -63
- package/src/Effect.ts +14 -16
- package/src/Emailer.ts +51 -0
- package/src/Inputify.type.ts +1 -1
- package/src/Layer.ts +11 -7
- package/src/Model/Repository/Registry.ts +35 -0
- package/src/Model/Repository/ext.ts +375 -0
- package/src/Model/Repository/internal/internal.ts +741 -0
- package/src/Model/Repository/legacy.ts +29 -0
- package/src/Model/Repository/makeRepo.ts +145 -0
- package/src/Model/Repository/service.ts +676 -0
- package/src/Model/Repository/validation.ts +31 -0
- package/src/Model/Repository.ts +6 -0
- package/src/Model/dsl.ts +129 -0
- package/src/Model/filter/filterApi.ts +60 -0
- package/src/Model/filter/types/errors.ts +47 -0
- package/src/Model/filter/types/fields.ts +50 -0
- package/src/Model/filter/types/path/common.ts +404 -0
- package/src/Model/filter/types/path/eager.ts +329 -0
- package/src/Model/filter/types/path/index.ts +4 -0
- package/src/Model/filter/types/utils.ts +128 -0
- package/src/Model/filter/types/validator.ts +46 -0
- package/src/Model/filter/types.ts +6 -0
- package/src/Model/query/dsl.ts +2694 -0
- package/src/Model/query/new-kid-interpreter.ts +484 -0
- package/src/Model/query.ts +13 -0
- package/src/Model.ts +4 -0
- package/src/NonEmptySet.ts +6 -4
- package/src/Option.ts +2 -0
- package/src/Pure.ts +22 -20
- package/src/QueueMaker.ts +19 -0
- package/src/RequestContext.ts +95 -0
- package/src/Schema/Class.ts +517 -59
- package/src/Schema/SchemaParser.ts +12 -0
- package/src/Schema/SpecialJsonSchema.ts +139 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +22 -2
- package/src/Schema/email.ts +9 -4
- package/src/Schema/ext.ts +446 -91
- package/src/Schema/moreStrings.ts +147 -68
- package/src/Schema/numbers.ts +97 -28
- package/src/Schema/phoneNumber.ts +9 -5
- package/src/Schema/strings.ts +23 -14
- package/src/Schema.ts +389 -25
- package/src/Set.ts +6 -2
- package/src/Store.ts +277 -0
- package/src/_ext/Array.ts +4 -2
- package/src/_ext/misc.ts +4 -1
- package/src/_ext/ord.ext.ts +2 -1
- package/src/client/InvalidationKeys.ts +50 -0
- package/src/client/apiClientFactory.ts +234 -135
- package/src/client/clientFor.ts +105 -34
- package/src/client/errors.ts +100 -29
- package/src/client/makeClient.ts +594 -73
- package/src/client.ts +5 -4
- package/src/http/Request.ts +3 -3
- package/src/http.ts +1 -1
- package/src/ids.ts +33 -6
- package/src/index.ts +20 -23
- package/src/middleware.ts +13 -9
- package/src/rpc/Invalidation.ts +261 -0
- package/src/rpc/MiddlewareMaker.ts +88 -80
- package/src/rpc/README.md +2 -2
- package/src/rpc/RpcContextMap.ts +7 -6
- package/src/rpc/RpcMiddleware.ts +19 -13
- package/src/rpc.ts +4 -4
- package/src/runtime.ts +56 -0
- package/src/setupRequest.ts +134 -0
- package/src/toast.ts +54 -0
- package/src/transform.ts +4 -4
- package/src/utils/effectify.ts +1 -1
- package/src/utils/gen.ts +8 -8
- package/src/utils/logLevel.ts +1 -1
- package/src/utils/logger.ts +4 -3
- package/src/utils.ts +85 -158
- package/src/validation.ts +2 -2
- package/src/withToast.ts +133 -0
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/dist/secretURL.test.d.ts.map +1 -0
- package/test/dist/special.test.d.ts.map +1 -0
- package/test/moreStrings.test.ts +1 -1
- package/test/rpc.test.ts +46 -6
- package/test/schema.test.ts +459 -30
- package/test/secretURL.test.ts +160 -0
- package/test/special.test.ts +1026 -0
- package/test/utils.test.ts +7 -7
- package/tsconfig.base.json +6 -5
- package/tsconfig.json +3 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +29 -29
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -123
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -29
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
- package/eslint.config.mjs +0 -26
- package/src/Operations.ts +0 -55
package/dist/Schema/Class.d.ts
CHANGED
|
@@ -1,32 +1,170 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type * as Cause from "effect/Cause";
|
|
2
2
|
import * as S from "effect/Schema";
|
|
3
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
4
|
+
import { copyOrigin } from "../utils.js";
|
|
3
5
|
type ClassAnnotations<Self> = S.Annotations.Declaration<Self, readonly [any]>;
|
|
4
6
|
export interface EnhancedClass<Self, SchemaS extends S.Top & {
|
|
5
|
-
readonly fields: Struct.Fields;
|
|
6
|
-
}, Inherited> extends S.Class<Self, SchemaS, Inherited
|
|
7
|
+
readonly fields: S.Struct.Fields;
|
|
8
|
+
}, Inherited> extends S.Class<Self, SchemaS, Inherited> {
|
|
9
|
+
/**
|
|
10
|
+
* See `copyOrigin` docs in `utils.ts` for return-type design details.
|
|
11
|
+
*/
|
|
12
|
+
readonly copy: ReturnType<typeof copyOrigin<new (_: any) => Self>>;
|
|
7
13
|
}
|
|
8
14
|
type MissingSelfGeneric<Usage extends string, Params extends string = ""> = `Missing \`Self\` generic - use \`class Self extends ${Usage}<Self>()(${Params}{ ... })\``;
|
|
9
|
-
|
|
10
|
-
pick: <P extends keyof Fields>(...keys: readonly P[]) => Pick<Fields, P>;
|
|
11
|
-
omit: <P extends keyof Fields>(...keys: readonly P[]) => Omit<Fields, P>;
|
|
12
|
-
}
|
|
13
|
-
type HasFields<Fields extends Struct.Fields> = {
|
|
15
|
+
type HasFields<Fields extends S.Struct.Fields> = {
|
|
14
16
|
readonly fields: Fields;
|
|
15
17
|
} | {
|
|
16
18
|
readonly from: HasFields<Fields>;
|
|
17
19
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
type ClassOptions = {
|
|
21
|
+
readonly strict?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const ExtendedSchemaNoEncoded: unique symbol;
|
|
24
|
+
export type ExtendedSchemaNoEncoded = typeof ExtendedSchemaNoEncoded;
|
|
25
|
+
type WithEncoded<SchemaS extends S.Top, Encoded> = Omit<SchemaS, "Encoded"> & {
|
|
26
|
+
readonly Encoded: Encoded;
|
|
27
|
+
};
|
|
28
|
+
type ExtendedSchema<SchemaS extends S.Top, Encoded> = [Encoded] extends [ExtendedSchemaNoEncoded] ? SchemaS : WithEncoded<SchemaS, Encoded>;
|
|
29
|
+
export type Class<Self, S extends S.Top & {
|
|
30
|
+
readonly fields: S.Struct.Fields;
|
|
31
|
+
}, Inherited> = EnhancedClass<Self, S, Inherited>;
|
|
32
|
+
/**
|
|
33
|
+
* Like `Schema.Class`, but the resulting class accepts plain objects matching
|
|
34
|
+
* the struct schema during encoding — not only `instanceof` or type-id
|
|
35
|
+
* checks.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import * as Schema from "effect/Schema"
|
|
40
|
+
* import { Class } from "./Class.js"
|
|
41
|
+
*
|
|
42
|
+
* class A extends Class<A>("A")({ a: Schema.String }) {}
|
|
43
|
+
*
|
|
44
|
+
* // Construction works as normal:
|
|
45
|
+
* new A({ a: "hello" })
|
|
46
|
+
*
|
|
47
|
+
* // Encoding accepts plain objects:
|
|
48
|
+
* Schema.encodeUnknownSync(A)({ a: "hello" }) // { a: "hello" }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare const Class: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"Class"> : EnhancedClass<Self, ExtendedSchema<S.Struct<Fields>, Encoded>, Brand>;
|
|
52
|
+
/**
|
|
53
|
+
* Like `Schema.TaggedClass`, but the resulting class accepts plain objects
|
|
54
|
+
* matching the struct schema during encoding.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import * as Schema from "effect/Schema"
|
|
59
|
+
* import { TaggedClass } from "./Class.js"
|
|
60
|
+
*
|
|
61
|
+
* class Circle extends TaggedClass<Circle>()("Circle", {
|
|
62
|
+
* radius: Schema.Number
|
|
63
|
+
* }) {}
|
|
64
|
+
*
|
|
65
|
+
* Schema.encodeUnknownSync(Circle)({ _tag: "Circle", radius: 5 })
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare const TaggedClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedClass"> : EnhancedClass<Self, ExtendedSchema<S.Struct<{
|
|
20
69
|
readonly _tag: S.tag<Tag>;
|
|
21
|
-
} & Fields>,
|
|
22
|
-
export declare const
|
|
23
|
-
export
|
|
24
|
-
readonly Encoded: SelfFrom;
|
|
25
|
-
}, {}> {
|
|
26
|
-
readonly _tag: Tag;
|
|
27
|
-
}
|
|
28
|
-
export declare const ExtendedTaggedClass: <Self, SelfFrom>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>) => EnhancedTaggedClass<Self, Tag, {
|
|
70
|
+
} & Fields>, Encoded>, Brand>;
|
|
71
|
+
export declare const ErrorClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"ErrorClass"> : EnhancedClass<Self, ExtendedSchema<S.Struct<Fields>, Encoded>, Cause.YieldableError & Brand>;
|
|
72
|
+
export declare const TaggedErrorClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedErrorClass"> : EnhancedClass<Self, ExtendedSchema<S.Struct<{
|
|
29
73
|
readonly _tag: S.tag<Tag>;
|
|
30
|
-
} & Fields
|
|
74
|
+
} & Fields>, Encoded>, Cause.YieldableError & Brand>;
|
|
75
|
+
export interface Opaque<Self, Encoded, SchemaS extends S.Top, Brand> extends S.Opaque<Self, ExtendedSchema<SchemaS, Encoded>, Brand> {
|
|
76
|
+
}
|
|
77
|
+
export declare const Opaque: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(schema: S) => Opaque<Self, Encoded, S, Brand> & Omit<S, keyof S.Top>;
|
|
78
|
+
/**
|
|
79
|
+
* Like {@link Opaque}, but the class **instance type is exactly `Self`** (the supplied
|
|
80
|
+
* decoded `Type`) instead of the structurally-computed `struct["Type"] & Brand`.
|
|
81
|
+
*
|
|
82
|
+
* Stock `Opaque` types the instance as `struct["Type"] & Brand` and only overrides the
|
|
83
|
+
* schema's `Type`/`Encoded` *members* with `Self`/`Encoded`. So `make`/`copy`/consumers
|
|
84
|
+
* still resolve the struct's mapped `Type`. With a codegen-supplied pre-expanded literal
|
|
85
|
+
* `Type` interface, `OpaqueType` lets all of those resolve a single **named** interface
|
|
86
|
+
* (resolved once per checker) instead of re-deriving the mapped `Type` — cutting
|
|
87
|
+
* instantiation on `Type`-touching consumers.
|
|
88
|
+
*
|
|
89
|
+
* Use with `class X extends OpaqueType<X.Type, X.Encoded>()(struct) {}` where `X.Type`
|
|
90
|
+
* and `X.Encoded` are generated literal interfaces (see `@effect-app/eslint-codegen-model`,
|
|
91
|
+
* `static` + `type` mode).
|
|
92
|
+
*
|
|
93
|
+
* KNOWN GAP — **no branding**: the instance type is a plain structural `Self`, so opaque
|
|
94
|
+
* types of identical shape are mutually assignable. (Stock `Opaque` is also structural by
|
|
95
|
+
* default — `Brand` defaults to `{}` — so this only differs if you passed a non-default
|
|
96
|
+
* `Brand`.) Re-introducing a nominal brand on top of a supplied `Self` (e.g. branding the
|
|
97
|
+
* generated `Type` interface) is not yet implemented.
|
|
98
|
+
*
|
|
99
|
+
* NOTE: only `Type` (via `Self`) and `Encoded` are supplied statically here; `make`'s input
|
|
100
|
+
* (`~type.make.in`) and other derived members are still computed from the struct. See
|
|
101
|
+
* a future `OpaqueShape`-style helper if those also need to be supplied.
|
|
102
|
+
*/
|
|
103
|
+
export interface OpaqueType<Self, Encoded, SchemaS extends S.Top, Brand> extends S.Opaque<Self, ExtendedSchema<SchemaS, Encoded>, Brand> {
|
|
104
|
+
new (_: never): Self;
|
|
105
|
+
}
|
|
106
|
+
export declare const OpaqueType: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(schema: S) => OpaqueType<Self, Encoded, S, Brand> & Omit<S, keyof S.Top>;
|
|
107
|
+
type ExtendedShape<SchemaS extends S.Top, Encoded, MakeIn> = Omit<SchemaS, "Encoded" | "~type.make.in"> & {
|
|
108
|
+
readonly Encoded: Encoded;
|
|
109
|
+
readonly "~type.make.in": MakeIn;
|
|
110
|
+
};
|
|
111
|
+
type OpaqueFacadeConstructorArgs<MakeIn> = {} extends MakeIn ? [props?: MakeIn, options?: S.MakeOptions] : [props: MakeIn, options?: S.MakeOptions];
|
|
112
|
+
type OpaqueFacadeInput<DecodingServices, EncodingServices> = S.Top & {
|
|
113
|
+
readonly DecodingServices: DecodingServices;
|
|
114
|
+
readonly EncodingServices: EncodingServices;
|
|
115
|
+
};
|
|
116
|
+
type OpaqueFacadeStatics<SchemaS extends S.Top> = Omit<SchemaS, Exclude<keyof S.Top, "to"> | "prototype">;
|
|
117
|
+
/**
|
|
118
|
+
* Like {@link OpaqueType}, but ALSO supplies a static **make-input** shape, so
|
|
119
|
+
* `make`/`copy` resolve a named `MakeIn` interface instead of re-deriving the struct's
|
|
120
|
+
* mapped `~type.make.in`. Use with codegen-supplied `X.Type` / `X.Encoded` / `X.Make`:
|
|
121
|
+
*
|
|
122
|
+
* ```ts
|
|
123
|
+
* class X extends OpaqueShape<X.Type, X.Encoded, X.Make>()(struct) {}
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* `decode`/`encode` already use the supplied `Type`/`Encoded` (they read the schema's
|
|
127
|
+
* `Type`/`Encoded` members, which are `Self`/`Encoded` here) — no separate override needed.
|
|
128
|
+
*
|
|
129
|
+
* NOTE — measured gain is modest (~5%): the struct passed to the wrapper is still
|
|
130
|
+
* constructed in full (definition cost dominates); the static shapes only cheapen
|
|
131
|
+
* consumer-side reads of `Type`/`Encoded`/`MakeIn`. Same `no-branding` gap as
|
|
132
|
+
* {@link OpaqueType}.
|
|
133
|
+
*/
|
|
134
|
+
export interface OpaqueShape<Self, Encoded, MakeIn, SchemaS extends S.Top, Brand> extends S.Opaque<Self, ExtendedShape<SchemaS, Encoded, MakeIn>, Brand> {
|
|
135
|
+
new (_: never): Self;
|
|
136
|
+
}
|
|
137
|
+
export declare const OpaqueShape: <Self, Encoded, MakeIn, Brand = {}>() => <S extends S.Top>(schema: S) => OpaqueShape<Self, Encoded, MakeIn, S, Brand> & Omit<S, keyof S.Top>;
|
|
138
|
+
/**
|
|
139
|
+
* Shallow public view for generated model facades.
|
|
140
|
+
*
|
|
141
|
+
* The runtime value can still be the full private schema class, but emitted
|
|
142
|
+
* declarations expose only named `Type` / `Encoded` / `Make` interfaces and a
|
|
143
|
+
* small static surface. This keeps downstream project references from pulling
|
|
144
|
+
* the private struct field map back through `typeof Model`.
|
|
145
|
+
*/
|
|
146
|
+
export interface OpaqueFacade<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
|
|
147
|
+
new (...args: OpaqueFacadeConstructorArgs<MakeIn>): Self & Brand;
|
|
148
|
+
readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
|
|
149
|
+
}
|
|
150
|
+
export declare function OpaqueFacade<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}>(): <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS) => OpaqueFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
|
|
151
|
+
export interface OpaqueFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
|
|
152
|
+
new (...args: OpaqueFacadeConstructorArgs<MakeIn>): Brand;
|
|
153
|
+
readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
|
|
154
|
+
}
|
|
155
|
+
export declare function OpaqueFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}>(): <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS) => OpaqueFacadeClass<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
|
|
156
|
+
/**
|
|
157
|
+
* Like {@link OpaqueFacadeClass}, but for error models (`TaggedErrorClass` /
|
|
158
|
+
* `ErrorClass`). The decoded instance type carries `Cause.YieldableError`, so
|
|
159
|
+
* `yield* new MyError(...)`, `Effect.fail(myError)`, and `instanceof` all keep
|
|
160
|
+
* working through the facade — the runtime `_X` is the real error class (the
|
|
161
|
+
* facade `X extends ...(_X)` inherits its prototype), and the type reflects it.
|
|
162
|
+
* Nothing is lost vs the underlying error class.
|
|
163
|
+
*/
|
|
164
|
+
export interface OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
|
|
165
|
+
new (...args: OpaqueFacadeConstructorArgs<MakeIn>): Cause.YieldableError & Brand;
|
|
166
|
+
readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
|
|
167
|
+
}
|
|
168
|
+
export declare function OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}>(): <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS) => OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
|
|
31
169
|
export {};
|
|
32
170
|
//# sourceMappingURL=Class.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../src/Schema/Class.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../src/Schema/Class.ts"],"names":[],"mappings":"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"}
|
package/dist/Schema/Class.js
CHANGED
|
@@ -1,22 +1,219 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
3
|
import * as S from "effect/Schema";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
5
|
+
import * as SchemaIssue from "effect/SchemaIssue";
|
|
6
|
+
import { copyOrigin } from "../utils.js";
|
|
7
|
+
import { concurrencyUnbounded } from "./ext.js";
|
|
8
|
+
import * as SchemaParser from "./SchemaParser.js";
|
|
9
|
+
/**
|
|
10
|
+
* Build a modified Declaration that accepts struct-matching values during
|
|
11
|
+
* encoding, given the original Declaration and the class's fields.
|
|
12
|
+
*/
|
|
13
|
+
function makeRelaxedDeclaration(ast, fields, cls) {
|
|
14
|
+
const parseOptions = ast.annotations?.["parseOptions"];
|
|
15
|
+
const structSchema = S.Struct(fields);
|
|
16
|
+
const annotatedStruct = parseOptions ? S.toType(structSchema).annotate({ parseOptions }) : S.toType(structSchema);
|
|
17
|
+
const decodeStruct = SchemaParser.decodeUnknownEffect(annotatedStruct);
|
|
18
|
+
return new SchemaAST.Declaration(ast.typeParameters, () => (input, self, options) => {
|
|
19
|
+
if (input instanceof cls) {
|
|
20
|
+
return Effect.succeed(input);
|
|
21
|
+
}
|
|
22
|
+
if (input !== null && typeof input === "object") {
|
|
23
|
+
return decodeStruct(input, options);
|
|
24
|
+
}
|
|
25
|
+
return Effect.fail(new SchemaIssue.InvalidType(self, Option.some(input)));
|
|
26
|
+
}, ast.annotations, ast.checks, ast.encoding, ast.context);
|
|
27
|
+
}
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Class — like Schema.Class but with relaxed encoding
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
/**
|
|
32
|
+
* Like `Schema.Class`, but the resulting class accepts plain objects matching
|
|
33
|
+
* the struct schema during encoding — not only `instanceof` or type-id
|
|
34
|
+
* checks.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import * as Schema from "effect/Schema"
|
|
39
|
+
* import { Class } from "./Class.ts"
|
|
40
|
+
*
|
|
41
|
+
* class A extends Class<A>("A")({ a: Schema.String }) {}
|
|
42
|
+
*
|
|
43
|
+
* // Construction works as normal:
|
|
44
|
+
* new A({ a: "hello" })
|
|
45
|
+
*
|
|
46
|
+
* // Encoding accepts plain objects:
|
|
47
|
+
* Schema.encodeUnknownSync(A)({ a: "hello" }) // { a: "hello" }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export const Class = (identifier) => (fields, annotations, options) => {
|
|
51
|
+
const relaxed = options?.strict === false;
|
|
52
|
+
// Build the original Schema.Class
|
|
53
|
+
const Base = S.Class(identifier)(fields, { ...concurrencyUnbounded, ...annotations });
|
|
54
|
+
// Get the original ast getter from the base class
|
|
55
|
+
const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
|
|
56
|
+
// Cache per-class to avoid recomputing
|
|
57
|
+
const astCache = new WeakMap();
|
|
58
|
+
const copyCache = new WeakMap();
|
|
59
|
+
return class extends Base {
|
|
60
|
+
static get copy() {
|
|
61
|
+
let cached = copyCache.get(this);
|
|
62
|
+
if (cached === undefined) {
|
|
63
|
+
cached = copyOrigin(this);
|
|
64
|
+
copyCache.set(this, cached);
|
|
65
|
+
}
|
|
66
|
+
return cached;
|
|
67
|
+
}
|
|
68
|
+
static get ast() {
|
|
69
|
+
let cached = astCache.get(this);
|
|
70
|
+
if (cached !== undefined)
|
|
71
|
+
return cached;
|
|
72
|
+
// Call the original getter with `this` bound to the actual user class,
|
|
73
|
+
// so getClassSchema(this) creates a schema that uses `new this(...)`.
|
|
74
|
+
const originalAst = originalAstDescriptor.get.call(this);
|
|
75
|
+
cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
|
|
76
|
+
astCache.set(this, cached);
|
|
77
|
+
return cached;
|
|
78
|
+
}
|
|
79
|
+
static mapFields(f, options) {
|
|
80
|
+
return Base.mapFields(f, options).annotate(concurrencyUnbounded);
|
|
81
|
+
}
|
|
10
82
|
};
|
|
11
83
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
// TaggedClass — like Schema.TaggedClass but with relaxed encoding
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
/**
|
|
88
|
+
* Like `Schema.TaggedClass`, but the resulting class accepts plain objects
|
|
89
|
+
* matching the struct schema during encoding.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* import * as Schema from "effect/Schema"
|
|
94
|
+
* import { TaggedClass } from "./Class.ts"
|
|
95
|
+
*
|
|
96
|
+
* class Circle extends TaggedClass<Circle>()("Circle", {
|
|
97
|
+
* radius: Schema.Number
|
|
98
|
+
* }) {}
|
|
99
|
+
*
|
|
100
|
+
* Schema.encodeUnknownSync(Circle)({ _tag: "Circle", radius: 5 })
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export const TaggedClass = (identifier) => (tag, fields, annotations, options) => {
|
|
104
|
+
const relaxed = options?.strict === false;
|
|
105
|
+
const Base = S.TaggedClass(identifier)(tag, fields, { ...concurrencyUnbounded, ...annotations });
|
|
106
|
+
const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
|
|
107
|
+
const astCache = new WeakMap();
|
|
108
|
+
const copyCache = new WeakMap();
|
|
109
|
+
return class extends Base {
|
|
110
|
+
static get copy() {
|
|
111
|
+
let cached = copyCache.get(this);
|
|
112
|
+
if (cached === undefined) {
|
|
113
|
+
cached = copyOrigin(this);
|
|
114
|
+
copyCache.set(this, cached);
|
|
115
|
+
}
|
|
116
|
+
return cached;
|
|
117
|
+
}
|
|
118
|
+
static get ast() {
|
|
119
|
+
let cached = astCache.get(this);
|
|
120
|
+
if (cached !== undefined)
|
|
121
|
+
return cached;
|
|
122
|
+
const originalAst = originalAstDescriptor.get.call(this);
|
|
123
|
+
cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
|
|
124
|
+
astCache.set(this, cached);
|
|
125
|
+
return cached;
|
|
126
|
+
}
|
|
127
|
+
static mapFields(f, options) {
|
|
128
|
+
return Base.mapFields(f, options).annotate(concurrencyUnbounded);
|
|
129
|
+
}
|
|
18
130
|
};
|
|
19
131
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// ErrorClass — like Schema.ErrorClass but with relaxed encoding
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
export const ErrorClass = (identifier) => (fields, annotations, options) => {
|
|
136
|
+
const relaxed = options?.strict === false;
|
|
137
|
+
const Base = S.ErrorClass(identifier)(fields, { ...concurrencyUnbounded, ...annotations });
|
|
138
|
+
const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
|
|
139
|
+
const astCache = new WeakMap();
|
|
140
|
+
const copyCache = new WeakMap();
|
|
141
|
+
return class extends Base {
|
|
142
|
+
static get copy() {
|
|
143
|
+
let cached = copyCache.get(this);
|
|
144
|
+
if (cached === undefined) {
|
|
145
|
+
cached = copyOrigin(this);
|
|
146
|
+
copyCache.set(this, cached);
|
|
147
|
+
}
|
|
148
|
+
return cached;
|
|
149
|
+
}
|
|
150
|
+
static get ast() {
|
|
151
|
+
let cached = astCache.get(this);
|
|
152
|
+
if (cached !== undefined)
|
|
153
|
+
return cached;
|
|
154
|
+
const originalAst = originalAstDescriptor.get.call(this);
|
|
155
|
+
cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
|
|
156
|
+
astCache.set(this, cached);
|
|
157
|
+
return cached;
|
|
158
|
+
}
|
|
159
|
+
static mapFields(f, options) {
|
|
160
|
+
return Base.mapFields(f, options).annotate(concurrencyUnbounded);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
// TaggedErrorClass — like Schema.TaggedErrorClass but with relaxed encoding
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
export const TaggedErrorClass = (identifier) => (tag, fields, annotations, options) => {
|
|
168
|
+
const relaxed = options?.strict === false;
|
|
169
|
+
const Base = S.TaggedErrorClass(identifier)(tag, fields, { ...concurrencyUnbounded, ...annotations });
|
|
170
|
+
const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
|
|
171
|
+
const astCache = new WeakMap();
|
|
172
|
+
const copyCache = new WeakMap();
|
|
173
|
+
return class extends Base {
|
|
174
|
+
static get copy() {
|
|
175
|
+
let cached = copyCache.get(this);
|
|
176
|
+
if (cached === undefined) {
|
|
177
|
+
cached = copyOrigin(this);
|
|
178
|
+
copyCache.set(this, cached);
|
|
179
|
+
}
|
|
180
|
+
return cached;
|
|
181
|
+
}
|
|
182
|
+
static get ast() {
|
|
183
|
+
let cached = astCache.get(this);
|
|
184
|
+
if (cached !== undefined)
|
|
185
|
+
return cached;
|
|
186
|
+
const originalAst = originalAstDescriptor.get.call(this);
|
|
187
|
+
cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
|
|
188
|
+
astCache.set(this, cached);
|
|
189
|
+
return cached;
|
|
190
|
+
}
|
|
191
|
+
static mapFields(f, options) {
|
|
192
|
+
return Base.mapFields(f, options).annotate(concurrencyUnbounded);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
export const Opaque = S.Opaque;
|
|
197
|
+
export const OpaqueType = S.Opaque;
|
|
198
|
+
export const OpaqueShape = S.Opaque;
|
|
199
|
+
export function OpaqueFacade() {
|
|
200
|
+
return (schema) => schema;
|
|
201
|
+
}
|
|
202
|
+
export function OpaqueFacadeClass() {
|
|
203
|
+
return (schema) => {
|
|
204
|
+
// Make the result constructable (like `S.Opaque`), so the private `_X` may be a
|
|
205
|
+
// plain `S.Struct`/`S.TaggedStruct` (lighter type) — not only an `S.Opaque` class —
|
|
206
|
+
// while `export class X extends ...(_X)` still works.
|
|
207
|
+
class Facade {
|
|
208
|
+
}
|
|
209
|
+
return Object.setPrototypeOf(Facade, schema);
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export function OpaqueErrorFacadeClass() {
|
|
213
|
+
return (schema) => {
|
|
214
|
+
class Facade {
|
|
215
|
+
}
|
|
216
|
+
return Object.setPrototypeOf(Facade, schema);
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL0NsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxLQUFLLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUMvQyxPQUFPLEtBQUssWUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBd0NqRDs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixHQUEwQixFQUMxQixNQUF1QixFQUN2QixHQUFRO0lBRVIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLGNBQWMsQ0FBdUMsQ0FBQTtJQUM1RixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2pILE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUV0RSxPQUFPLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FDOUIsR0FBRyxDQUFDLGNBQWMsRUFDbEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFjLEVBQUUs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastCheck.d.ts","sourceRoot":"","sources":["../../src/Schema/FastCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAErC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;AAEnB,YAAY,EAAE,EAAE,EAAE,CAAA;AAElB,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,WAAW,QAAyB,CAAA;AAIjD,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"FastCheck.d.ts","sourceRoot":"","sources":["../../src/Schema/FastCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAErC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;AAEnB,YAAY,EAAE,EAAE,EAAE,CAAA;AAElB,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,WAAW,QAAyB,CAAA;AAIjD,eAAO,MAAM,WAAW,QAAS,MAAM,OAAO,MAAM,UAAU,EAAE,yBACsB,CAAA;AAGtF,eAAO,MAAM,WAAW,QAAS,MAAM,OAAO,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACL,CAAA;AAItF,eAAO,MAAM,OAAO,QAAS,MAAM,OAAO,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as SchemaParser from "effect/SchemaParser";
|
|
2
|
+
export * from "effect/SchemaParser";
|
|
3
|
+
export declare const decodeEffectConcurrently: typeof SchemaParser.decodeEffect;
|
|
4
|
+
export declare const decodeUnknownEffectConcurrently: typeof SchemaParser.decodeUnknownEffect;
|
|
5
|
+
//# sourceMappingURL=SchemaParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaParser.d.ts","sourceRoot":"","sources":["../../src/Schema/SchemaParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAA;AAGnD,cAAc,qBAAqB,CAAA;AAEnC,eAAO,MAAM,wBAAwB,EAAE,OAAO,YAAY,CAAC,YAE1D,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,OAAO,YAAY,CAAC,mBAEjE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as SchemaParser from "effect/SchemaParser";
|
|
2
|
+
import { withDefaultParseOptions } from "./ext.js";
|
|
3
|
+
export * from "effect/SchemaParser";
|
|
4
|
+
export const decodeEffectConcurrently = withDefaultParseOptions(SchemaParser.decodeEffect);
|
|
5
|
+
export const decodeUnknownEffectConcurrently = withDefaultParseOptions(SchemaParser.decodeUnknownEffect);
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZW1hUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9TY2hlbWFQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFlBQVksTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFbEQsY0FBYyxxQkFBcUIsQ0FBQTtBQUVuQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBcUMsdUJBQXVCLENBQy9GLFlBQVksQ0FBQyxZQUFZLENBQzFCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBNEMsdUJBQXVCLENBQzdHLFlBQVksQ0FBQyxtQkFBbUIsQ0FDakMsQ0FBQSJ9
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpecialJsonSchema — A variant of Schema.toJsonSchemaDocument that
|
|
3
|
+
* post-processes the output (e.g. flattens simple allOf).
|
|
4
|
+
*/
|
|
5
|
+
import type * as JsonSchema from "effect/JsonSchema";
|
|
6
|
+
import type * as Schema from "effect/Schema";
|
|
7
|
+
/**
|
|
8
|
+
* Converts a schema to a JSON Schema Document (draft-2020-12), with
|
|
9
|
+
* post-processing that flattens simple allOf entries.
|
|
10
|
+
*/
|
|
11
|
+
export declare function specialJsonSchemaDocument(schema: Schema.Top, options?: Schema.ToJsonSchemaOptions): JsonSchema.Document<"draft-2020-12">;
|
|
12
|
+
/**
|
|
13
|
+
* Flattens `allOf` entries into the parent when the parent already has a
|
|
14
|
+
* `type` and every `allOf` entry is a plain constraint object (no `$ref`,
|
|
15
|
+
* no `type`). Merged properties from `allOf` entries win on conflict.
|
|
16
|
+
*/
|
|
17
|
+
export declare function flattenSimpleAllOf(obj: unknown): unknown;
|
|
18
|
+
/**
|
|
19
|
+
* Recursively removes `additionalProperties: false` from JSON Schema objects.
|
|
20
|
+
* Only removes when the value is exactly `false` -- other values are left intact.
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeAdditionalPropertiesFalse(obj: unknown): unknown;
|
|
23
|
+
/**
|
|
24
|
+
* Flattens nested `anyOf` entries: if an anyOf entry is itself just `{ anyOf: [...] }`
|
|
25
|
+
* with no other keys, its children are inlined. If only one item remains, the anyOf
|
|
26
|
+
* wrapper is removed entirely.
|
|
27
|
+
*/
|
|
28
|
+
export declare function flattenNestedAnyOf(obj: unknown): unknown;
|
|
29
|
+
/**
|
|
30
|
+
* Applies JSON Schema post-processing: flattens simple allOf,
|
|
31
|
+
* flattens nested anyOf, then strips additionalProperties: false.
|
|
32
|
+
*/
|
|
33
|
+
export declare function postProcessJsonSchema(obj: JsonSchema.JsonSchema): JsonSchema.JsonSchema;
|
|
34
|
+
//# sourceMappingURL=SpecialJsonSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecialJsonSchema.d.ts","sourceRoot":"","sources":["../../src/Schema/SpecialJsonSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAG5C;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,GAAG,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,mBAAmB,GACnC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAYtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA6BxD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAerE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuCxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAEvF"}
|