effect-app 4.0.0-beta.99 → 4.0.1
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 +2042 -0
- package/dist/Array.d.ts +1 -17
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +3 -27
- package/dist/Chunk.d.ts +3 -27
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +4 -39
- 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 +0 -5
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +7 -5
- package/dist/ConfigProvider.d.ts +0 -37
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +5 -41
- package/dist/Context.d.ts +6 -4
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +4 -3
- package/dist/DataDependencies.d.ts +136 -0
- package/dist/DataDependencies.d.ts.map +1 -0
- package/dist/DataDependencies.js +112 -0
- package/dist/DateTime.d.ts +33 -0
- package/dist/DateTime.d.ts.map +1 -0
- package/dist/DateTime.js +18 -0
- package/dist/Effect.d.ts +3 -14
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +8 -26
- 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 +0 -4
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +1 -7
- package/dist/Layer.d.ts +6 -3
- 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/dependency.d.ts +6 -0
- package/dist/Model/Repository/dependency.d.ts.map +1 -0
- package/dist/Model/Repository/dependency.js +29 -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 +124 -0
- package/dist/Model/Repository/internal/internal.d.ts +68 -0
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
- package/dist/Model/Repository/internal/internal.js +610 -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 +71 -0
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
- package/dist/Model/Repository/makeRepo.js +30 -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 +72 -0
- package/dist/Model/Repository/validation.d.ts.map +1 -0
- package/dist/Model/Repository/validation.js +39 -0
- package/dist/Model/Repository.d.ts +8 -0
- package/dist/Model/Repository.d.ts.map +1 -0
- package/dist/Model/Repository.js +8 -0
- package/dist/Model/dsl.d.ts +34 -0
- package/dist/Model/dsl.d.ts.map +1 -0
- package/dist/Model/dsl.js +45 -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 +630 -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 +132 -0
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/Model/query/new-kid-interpreter.js +369 -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 +6 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +6 -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 -2
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +3 -7
- package/dist/Pure.d.ts +9 -7
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +20 -17
- package/dist/QueueMaker.d.ts +11 -0
- package/dist/QueueMaker.d.ts.map +1 -0
- package/dist/QueueMaker.js +11 -0
- package/dist/RequestContext.d.ts +87 -0
- package/dist/RequestContext.d.ts.map +1 -0
- package/dist/RequestContext.js +45 -0
- package/dist/RequestScopedDependencies.d.ts +21 -0
- package/dist/RequestScopedDependencies.d.ts.map +1 -0
- package/dist/RequestScopedDependencies.js +16 -0
- package/dist/Schema/Class.d.ts +163 -16
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +193 -21
- 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 +15 -2
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -1
- package/dist/Schema/SpecialJsonSchema.js +70 -12
- package/dist/Schema/SpecialOpenApi.d.ts +1 -1
- package/dist/Schema/SpecialOpenApi.js +3 -3
- package/dist/Schema/brand.d.ts +5 -5
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +6 -4
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +8 -5
- package/dist/Schema/ext.d.ts +279 -75
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +330 -72
- package/dist/Schema/moreStrings.d.ts +82 -48
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +85 -51
- package/dist/Schema/numbers.d.ts +33 -21
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +64 -12
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +6 -6
- package/dist/Schema/schema.d.ts +1 -1
- package/dist/Schema/schema.d.ts.map +1 -1
- package/dist/Schema/schema.js +2 -2
- 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 +224 -7
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +190 -24
- package/dist/SchemaAST.d.ts +2 -0
- package/dist/SchemaAST.d.ts.map +1 -0
- package/dist/SchemaAST.js +2 -0
- package/dist/Set.d.ts +4 -1
- package/dist/Set.d.ts.map +1 -1
- package/dist/Set.js +8 -6
- package/dist/Store.d.ts +215 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +113 -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/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/builtin.d.ts +2 -14
- package/dist/builtin.d.ts.map +1 -1
- package/dist/builtin.js +1 -1
- package/dist/client/InvalidationKeys.d.ts +30 -0
- package/dist/client/InvalidationKeys.d.ts.map +1 -0
- package/dist/client/InvalidationKeys.js +37 -0
- package/dist/client/apiClientFactory.d.ts +13 -8
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +154 -34
- package/dist/client/clientFor.d.ts +48 -13
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +9 -1
- package/dist/client/errors.d.ts +74 -28
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +41 -10
- package/dist/client/makeClient.d.ts +487 -32
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +47 -21
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -1
- package/dist/faker.d.ts.map +1 -1
- package/dist/http/Request.d.ts +2 -2
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +2 -2
- package/dist/http/internal/lib.d.ts +12 -12
- package/dist/http/internal/lib.d.ts.map +1 -1
- package/dist/http/internal/lib.js +13 -13
- package/dist/ids.d.ts +32 -14
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +38 -7
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/middleware.d.ts +12 -6
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +13 -7
- package/dist/migration/nativeEffect.d.ts +21 -0
- package/dist/migration/nativeEffect.d.ts.map +1 -0
- package/dist/migration/nativeEffect.js +598 -0
- package/dist/rpc/Invalidation.d.ts +1124 -0
- package/dist/rpc/Invalidation.d.ts.map +1 -0
- package/dist/rpc/Invalidation.js +178 -0
- package/dist/rpc/MiddlewareMaker.d.ts +10 -7
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +57 -37
- package/dist/rpc/RpcContextMap.d.ts +2 -2
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.d.ts +13 -10
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +2 -2
- 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 +20 -0
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +72 -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 +6 -1
- package/dist/utils/extend.d.ts.map +1 -1
- package/dist/utils/extend.js +24 -6
- 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 +2 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils.d.ts +34 -45
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +33 -49
- 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 +25 -266
- package/src/Array.ts +7 -39
- package/src/Chunk.ts +6 -55
- package/src/Config/SecretURL.ts +6 -3
- package/src/Config/internal/configSecretURL.ts +2 -2
- package/src/Config.ts +6 -13
- package/src/ConfigProvider.ts +4 -47
- package/src/Context.ts +9 -8
- package/src/DataDependencies.ts +171 -0
- package/src/DateTime.ts +473 -0
- package/src/Effect.ts +10 -32
- package/src/Emailer.ts +51 -0
- package/src/Function.ts +0 -7
- package/src/Inputify.type.ts +1 -1
- package/src/Layer.ts +8 -5
- package/src/Model/Repository/Registry.ts +35 -0
- package/src/Model/Repository/dependency.ts +32 -0
- package/src/Model/Repository/ext.ts +374 -0
- package/src/Model/Repository/internal/internal.ts +987 -0
- package/src/Model/Repository/legacy.ts +29 -0
- package/src/Model/Repository/makeRepo.ts +168 -0
- package/src/Model/Repository/service.ts +676 -0
- package/src/Model/Repository/validation.ts +38 -0
- package/src/Model/Repository.ts +7 -0
- package/src/Model/dsl.ts +130 -0
- package/src/Model/filter/filterApi.ts +78 -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 +3092 -0
- package/src/Model/query/new-kid-interpreter.ts +531 -0
- package/src/Model/query.ts +13 -0
- package/src/Model.ts +5 -0
- package/src/NonEmptySet.ts +6 -4
- package/src/Option.ts +3 -8
- package/src/Pure.ts +20 -17
- package/src/QueueMaker.ts +11 -0
- package/src/RequestContext.ts +48 -0
- package/src/RequestScopedDependencies.ts +45 -0
- package/src/Schema/Class.ts +550 -56
- package/src/Schema/SchemaParser.ts +12 -0
- package/src/Schema/SpecialJsonSchema.ts +75 -7
- package/src/Schema/SpecialOpenApi.ts +5 -5
- package/src/Schema/brand.ts +27 -12
- package/src/Schema/email.ts +9 -7
- package/src/Schema/ext.ts +405 -95
- package/src/Schema/moreStrings.ts +213 -88
- package/src/Schema/numbers.ts +107 -29
- package/src/Schema/phoneNumber.ts +8 -9
- package/src/Schema/schema.ts +1 -1
- package/src/Schema/strings.ts +23 -14
- package/src/Schema.ts +403 -46
- package/src/SchemaAST.ts +1 -0
- package/src/Set.ts +10 -5
- package/src/Store.ts +325 -0
- package/src/_ext/Array.ts +4 -2
- package/src/_ext/ord.ext.ts +2 -1
- package/src/builtin-json.d.ts +24 -0
- package/src/builtin.ts +16 -21
- package/src/client/InvalidationKeys.ts +55 -0
- package/src/client/apiClientFactory.ts +295 -129
- package/src/client/clientFor.ts +101 -33
- package/src/client/errors.ts +66 -20
- package/src/client/makeClient.ts +519 -60
- package/src/client.ts +6 -4
- package/src/http/Request.ts +4 -4
- package/src/http/internal/lib.ts +12 -12
- package/src/http.ts +1 -1
- package/src/ids.ts +45 -8
- package/src/index.ts +20 -16
- package/src/middleware.ts +12 -8
- package/src/migration/nativeEffect.ts +645 -0
- package/src/rpc/Invalidation.ts +278 -0
- package/src/rpc/MiddlewareMaker.ts +86 -79
- package/src/rpc/README.md +2 -2
- package/src/rpc/RpcContextMap.ts +4 -4
- package/src/rpc/RpcMiddleware.ts +18 -13
- package/src/rpc.ts +4 -4
- package/src/runtime.ts +57 -0
- package/src/setupRequest.ts +138 -0
- package/src/toast.ts +54 -0
- package/src/transform.ts +4 -4
- package/src/utils/effectify.ts +1 -1
- package/src/utils/extend.ts +24 -5
- package/src/utils/gen.ts +7 -7
- package/src/utils/logLevel.ts +1 -1
- package/src/utils/logger.ts +3 -2
- package/src/utils.ts +85 -175
- package/src/validation.ts +2 -2
- package/src/withToast.ts +133 -0
- package/test/dateTimeLocal.test.ts +55 -0
- package/test/dist/dateTimeLocal.test.d.ts.map +1 -0
- package/test/dist/nativeEffectMigration.test.d.ts.map +1 -0
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/dist/rpcMiddlewareContext.test.d.ts.map +1 -0
- package/test/moreStrings.test.ts +55 -10
- package/test/nativeEffectMigration.test.ts +77 -0
- package/test/rpc.test.ts +28 -11
- package/test/rpcMiddlewareContext.test.ts +63 -0
- package/test/schema.test.ts +318 -55
- package/test/secretURL.test.ts +4 -1
- package/test/special.test.ts +663 -131
- package/test/utils.test.ts +5 -5
- package/tsconfig.base.json +6 -4
- package/tsconfig.json +9 -1
- package/tsconfig.src.json +29 -29
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -124
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -29
- package/dist/_ext/date.d.ts +0 -15
- package/dist/_ext/date.d.ts.map +0 -1
- package/dist/_ext/date.js +0 -16
- package/dist/_ext/misc.d.ts +0 -14
- package/dist/_ext/misc.d.ts.map +0 -1
- package/dist/_ext/misc.js +0 -17
- package/eslint.config.mjs +0 -26
- package/src/Operations.ts +0 -55
- package/src/_ext/date.ts +0 -27
- package/src/_ext/misc.ts +0 -46
- package/tsconfig.json.bak +0 -12
package/dist/Schema/ext.js
CHANGED
|
@@ -1,14 +1,69 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* # `withConstructorDefault` policy
|
|
5
|
+
*
|
|
6
|
+
* The `withConstructorDefault` properties exported throughout this module
|
|
7
|
+
* (and from `numbers.ts`, `moreStrings.ts`, `ids.ts`) attach a default value
|
|
8
|
+
* that is **only** applied during construction — i.e. when the field is
|
|
9
|
+
* omitted from the input to a Schema constructor / `.make(...)` call.
|
|
10
|
+
*
|
|
11
|
+
* They are **NOT** applied during `decode` (JSON, database rows, RPC payloads,
|
|
12
|
+
* etc.). Decoding a payload with a missing field will still fail with a parse
|
|
13
|
+
* error, exactly as if the default were not present.
|
|
14
|
+
*
|
|
15
|
+
* Concretely this means `withConstructorDefault` MUST NOT be relied on as a
|
|
16
|
+
* just-in-time migration mechanism for database fields. If a stored record is
|
|
17
|
+
* missing a newly added field, the constructor default will not fill it in on
|
|
18
|
+
* read — decoding will fail.
|
|
19
|
+
*
|
|
20
|
+
* ## Don't reach for `withDecodingDefault*` either
|
|
21
|
+
*
|
|
22
|
+
* The sibling `withDecodingDefaultType` (and `withDecodingDefault`) extensions
|
|
23
|
+
* exist, but they are discouraged for migrating persisted data. A missing
|
|
24
|
+
* field in a stored record is just as likely to be data corruption as it is
|
|
25
|
+
* an old-shape document; silently substituting a default hides the problem
|
|
26
|
+
* and can poison downstream aggregates.
|
|
27
|
+
*
|
|
28
|
+
* Prefer an **explicit, preferably versioned** migration of database data
|
|
29
|
+
* (a schema-version field, a one-shot backfill, or a transform on read that
|
|
30
|
+
* is gated on an explicit version marker) over shoving missing fields under
|
|
31
|
+
* the rug with a decode-time default.
|
|
32
|
+
*/
|
|
33
|
+
import * as Config from "effect/Config";
|
|
34
|
+
import * as Effect from "effect/Effect";
|
|
35
|
+
import { pipe } from "effect/Function";
|
|
36
|
+
import * as Function from "effect/Function";
|
|
37
|
+
import * as Option from "effect/Option";
|
|
38
|
+
import * as Order from "effect/Order";
|
|
4
39
|
import * as S from "effect/Schema";
|
|
5
|
-
import
|
|
40
|
+
import * as SchemaIssue from "effect/SchemaIssue";
|
|
41
|
+
import * as SchemaTransformation from "effect/SchemaTransformation";
|
|
42
|
+
import * as Struct from "effect/Struct";
|
|
6
43
|
import * as Context from "../Context.js";
|
|
7
|
-
import
|
|
8
|
-
|
|
44
|
+
import * as SchemaAST from "../SchemaAST.js";
|
|
45
|
+
import { extendM } from "../utils.js";
|
|
46
|
+
const concurrencySetting = Effect.runSync(Config
|
|
47
|
+
.Literal("unbounded", "SCHEMA_CONCURRENCY")
|
|
48
|
+
.pipe(Config.orElse(() => Config.Number("SCHEMA_CONCURRENCY")), Config.option));
|
|
49
|
+
export const DefaultParseOptions = {
|
|
50
|
+
concurrency: Option.getOrElse(concurrencySetting, () => "unbounded")
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Parse-options annotation used on schema constructors for decode paths where callers
|
|
54
|
+
* cannot currently pass parse options (notably some RPC / HttpApi integration paths).
|
|
55
|
+
*
|
|
56
|
+
* Keep this annotation in place so those framework-managed decodes still run with
|
|
57
|
+
* unbounded concurrency by default.
|
|
58
|
+
*/
|
|
59
|
+
export const concurrencyUnbounded = { parseOptions: DefaultParseOptions };
|
|
60
|
+
export const withDefaultParseOptions = (decode, defaultParseOptions = DefaultParseOptions) => ((schema) => {
|
|
61
|
+
const run = decode(schema);
|
|
62
|
+
return (input, options) => run(input, { ...defaultParseOptions, ...options });
|
|
63
|
+
});
|
|
9
64
|
const DateString = S.String.annotate({
|
|
10
|
-
identifier: "
|
|
11
|
-
description: "
|
|
65
|
+
identifier: "DateOrInvalid",
|
|
66
|
+
description: "an ISO 8601 date string that will be decoded as a Date (may be invalid)",
|
|
12
67
|
format: "date-time"
|
|
13
68
|
});
|
|
14
69
|
/**
|
|
@@ -20,66 +75,146 @@ const DateString = S.String.annotate({
|
|
|
20
75
|
* Encoding:
|
|
21
76
|
* - A `Date` is encoded as a `string`.
|
|
22
77
|
*
|
|
78
|
+
* Use this when the Encoded form must be JSON (`string`). Domain models should
|
|
79
|
+
* prefer {@link Date}, whose Encoded form is `Date`; JSON stores convert via
|
|
80
|
+
* `Schema.toCodecJson`.
|
|
81
|
+
*
|
|
23
82
|
* @since 4.0.0
|
|
24
83
|
*/
|
|
25
84
|
export const DateFromString = DateString.pipe(S.decodeTo(S.Date, SchemaTransformation.dateFromString));
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
85
|
+
const dateHelpers = (s) => ({
|
|
86
|
+
/**
|
|
87
|
+
* Construction-only default `new Date()`. Applied only when the field is
|
|
88
|
+
* omitted from `.make(...)` input. NOT applied during decode — cannot be
|
|
89
|
+
* used to JIT-migrate database fields. See file-level note.
|
|
90
|
+
*/
|
|
91
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new globalThis.Date()))),
|
|
92
|
+
/**
|
|
93
|
+
* Decode-time default `new Date()`. **Discouraged for persisted data:** a
|
|
94
|
+
* missing field may be data corruption, not an old-shape document; silently
|
|
95
|
+
* substituting `new Date()` hides the problem. Prefer an explicit,
|
|
96
|
+
* preferably versioned migration over a decode-time fallback. See
|
|
97
|
+
* file-level note.
|
|
98
|
+
*/
|
|
99
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new globalThis.Date())))
|
|
39
100
|
});
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
*/
|
|
101
|
+
/** Like the default Schema `Date` (Encoded is `Date`) with default helpers. */
|
|
102
|
+
export const Date = extendM(S.Date, dateHelpers);
|
|
103
|
+
/** Like the default Schema `Boolean` but with default helpers. */
|
|
43
104
|
export const Boolean = Object.assign(S.Boolean, {
|
|
44
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Construction-only default `false`. Applied only when the field is
|
|
107
|
+
* omitted from `.make(...)` input. NOT applied during decode — cannot be
|
|
108
|
+
* used to JIT-migrate database fields. See file-level note.
|
|
109
|
+
*/
|
|
110
|
+
withConstructorDefault: S.Boolean.pipe(S.withConstructorDefault(Effect.succeed(false))),
|
|
111
|
+
/**
|
|
112
|
+
* Decode-time default `false`. **Discouraged for persisted data:** a
|
|
113
|
+
* missing field may be data corruption, not an old-shape document; silently
|
|
114
|
+
* substituting `false` hides the problem. Prefer an explicit, preferably
|
|
115
|
+
* versioned migration over a decode-time fallback. See file-level note.
|
|
116
|
+
*/
|
|
45
117
|
withDecodingDefaultType: S.Boolean.pipe(S.withDecodingDefaultType(Effect.succeed(false)))
|
|
46
118
|
});
|
|
47
119
|
/**
|
|
48
|
-
* You probably want to use `Finite` instead of this.
|
|
49
|
-
*
|
|
120
|
+
* You probably want to use `Finite` instead of this. Like the default Schema
|
|
121
|
+
* `Number` but with default helpers.
|
|
50
122
|
*/
|
|
51
123
|
export const Number = Object.assign(S.Number, {
|
|
52
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Construction-only default `0`. Applied only when the field is omitted
|
|
126
|
+
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
127
|
+
* JIT-migrate database fields. See file-level note.
|
|
128
|
+
*/
|
|
129
|
+
withConstructorDefault: S.Number.pipe(S.withConstructorDefault(Effect.succeed(0))),
|
|
130
|
+
/**
|
|
131
|
+
* Decode-time default `0`. **Discouraged for persisted data:** a missing
|
|
132
|
+
* field may be data corruption, not an old-shape document; silently
|
|
133
|
+
* substituting `0` hides the problem. Prefer an explicit, preferably
|
|
134
|
+
* versioned migration over a decode-time fallback. See file-level note.
|
|
135
|
+
*/
|
|
53
136
|
withDecodingDefaultType: S.Number.pipe(S.withDecodingDefaultType(Effect.succeed(0)))
|
|
54
137
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
withDefault: S.Finite.pipe(S.withConstructorDefault(Effect.succeed(0))),
|
|
60
|
-
withDecodingDefaultType: S.Finite.pipe(S.withDecodingDefaultType(Effect.succeed(0)))
|
|
138
|
+
// Generation-only: native Arbitrary otherwise samples up to ±Number.MAX_VALUE, so
|
|
139
|
+
// derived totals overflow to Infinity. Validation and JSON Schema are unaffected.
|
|
140
|
+
const realisticFiniteSamples = S.makeFilter(() => undefined, {
|
|
141
|
+
arbitraryConstraint: { order: Order.Number, minimum: -1_000_000, maximum: 1_000_000 }
|
|
61
142
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
143
|
+
const FiniteSchema = S.Finite.pipe(S.check(realisticFiniteSamples));
|
|
144
|
+
/** Like the default Schema `Finite` but with default helpers. */
|
|
145
|
+
export const Finite = Object.assign(FiniteSchema, {
|
|
146
|
+
/**
|
|
147
|
+
* Construction-only default `0`. Applied only when the field is omitted
|
|
148
|
+
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
149
|
+
* JIT-migrate database fields. See file-level note.
|
|
150
|
+
*/
|
|
151
|
+
withConstructorDefault: FiniteSchema.pipe(S.withConstructorDefault(Effect.succeed(0))),
|
|
152
|
+
/**
|
|
153
|
+
* Decode-time default `0`. **Discouraged for persisted data:** a missing
|
|
154
|
+
* field may be data corruption, not an old-shape document; silently
|
|
155
|
+
* substituting `0` hides the problem. Prefer an explicit, preferably
|
|
156
|
+
* versioned migration over a decode-time fallback. See file-level note.
|
|
157
|
+
*/
|
|
158
|
+
withDecodingDefaultType: FiniteSchema.pipe(S.withDecodingDefaultType(Effect.succeed(0)))
|
|
159
|
+
});
|
|
160
|
+
/** Like the default Schema `Literals` but with default helpers. Default value is `literals[0]`. */
|
|
65
161
|
export const Literals = (literals) => pipe(S.Literals(literals), (s) => Object.assign(s, {
|
|
162
|
+
/** Override the default literal value used by `withConstructorDefault` / `withDecodingDefaultType`. */
|
|
66
163
|
changeDefault: (a) => {
|
|
67
164
|
return Object.assign(S.Literals(literals), {
|
|
68
165
|
Default: a,
|
|
69
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Construction-only default. Applied only when the field is
|
|
168
|
+
* omitted from `.make(...)` input. NOT applied during decode —
|
|
169
|
+
* cannot be used to JIT-migrate database fields. See file-level
|
|
170
|
+
* note.
|
|
171
|
+
*/
|
|
172
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.succeed(a))),
|
|
173
|
+
/**
|
|
174
|
+
* Decode-time default. **Discouraged for persisted data:** a
|
|
175
|
+
* missing field may be data corruption, not an old-shape
|
|
176
|
+
* document; silently substituting hides the problem. Prefer an
|
|
177
|
+
* explicit, preferably versioned migration over a decode-time
|
|
178
|
+
* fallback. See file-level note.
|
|
179
|
+
*/
|
|
70
180
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(a)))
|
|
71
181
|
}); // todo: copy annotations from original?
|
|
72
182
|
},
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- load-bearing: Object.assign widens the field type without it, breaking `expectTypeOf(l.Default).toEqualTypeOf<"a">()` in tests
|
|
73
184
|
Default: literals[0],
|
|
74
|
-
|
|
185
|
+
/**
|
|
186
|
+
* Construction-only default `literals[0]`. Applied only when the
|
|
187
|
+
* field is omitted from `.make(...)` input. NOT applied during
|
|
188
|
+
* decode — cannot be used to JIT-migrate database fields. See
|
|
189
|
+
* file-level note.
|
|
190
|
+
*/
|
|
191
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.succeed(literals[0]))),
|
|
192
|
+
/**
|
|
193
|
+
* Decode-time default `literals[0]`. **Discouraged for persisted
|
|
194
|
+
* data:** a missing field may be data corruption, not an old-shape
|
|
195
|
+
* document; silently substituting hides the problem. Prefer an
|
|
196
|
+
* explicit, preferably versioned migration over a decode-time
|
|
197
|
+
* fallback. See file-level note.
|
|
198
|
+
*/
|
|
75
199
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(literals[0])))
|
|
76
200
|
}));
|
|
77
|
-
/**
|
|
78
|
-
* Like the default Schema `Array` but with `withDefault` => []
|
|
79
|
-
*/
|
|
201
|
+
/** Like the default Schema `Array` but with default helpers. */
|
|
80
202
|
export function Array(value) {
|
|
81
|
-
return pipe(S.Array(value), (s) => Object.assign(s, {
|
|
82
|
-
|
|
203
|
+
return pipe(S.Array(value).annotate(concurrencyUnbounded), (s) => Object.assign(s, {
|
|
204
|
+
/**
|
|
205
|
+
* Construction-only default `[]`. Applied only when the field is
|
|
206
|
+
* omitted from `.make(...)` input. NOT applied during decode —
|
|
207
|
+
* cannot be used to JIT-migrate database fields. See file-level
|
|
208
|
+
* note.
|
|
209
|
+
*/
|
|
210
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => []))),
|
|
211
|
+
/**
|
|
212
|
+
* Decode-time default `[]`. **Discouraged for persisted data:** a
|
|
213
|
+
* missing field may be data corruption, not an old-shape document;
|
|
214
|
+
* silently substituting `[]` hides the problem. Prefer an explicit,
|
|
215
|
+
* preferably versioned migration over a decode-time fallback. See
|
|
216
|
+
* file-level note.
|
|
217
|
+
*/
|
|
83
218
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => [])))
|
|
84
219
|
}));
|
|
85
220
|
}
|
|
@@ -89,7 +224,7 @@ export function Array(value) {
|
|
|
89
224
|
export const ReadonlySetFromArray = (value) => {
|
|
90
225
|
const from = S
|
|
91
226
|
.Array(value)
|
|
92
|
-
.annotate({ expected: "an array of unique items that will be decoded as a ReadonlySet" });
|
|
227
|
+
.annotate({ ...concurrencyUnbounded, expected: "an array of unique items that will be decoded as a ReadonlySet" });
|
|
93
228
|
const to = S.instanceOf(Set);
|
|
94
229
|
const schema = from.pipe(S.decodeTo(to, SchemaTransformation.transform({
|
|
95
230
|
decode: (arr) => new Set(arr),
|
|
@@ -103,7 +238,10 @@ export const ReadonlySetFromArray = (value) => {
|
|
|
103
238
|
export const ReadonlyMapFromArray = (pair) => {
|
|
104
239
|
const from = S
|
|
105
240
|
.Array(S.Tuple([pair.key, pair.value]))
|
|
106
|
-
.annotate({
|
|
241
|
+
.annotate({
|
|
242
|
+
...concurrencyUnbounded,
|
|
243
|
+
expected: "an array of key-value tuples that will be decoded as a ReadonlyMap"
|
|
244
|
+
});
|
|
107
245
|
const to = S.instanceOf(Map);
|
|
108
246
|
const schema = from.pipe(S.decodeTo(to, SchemaTransformation.transform({
|
|
109
247
|
decode: (arr) => new Map(arr),
|
|
@@ -111,32 +249,107 @@ export const ReadonlyMapFromArray = (pair) => {
|
|
|
111
249
|
})));
|
|
112
250
|
return schema;
|
|
113
251
|
};
|
|
114
|
-
/**
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
252
|
+
/** Like the default Schema `ReadonlySet` (Encoded is `Set`) with default helpers. */
|
|
253
|
+
export const ReadonlySet = (value) => pipe(S.ReadonlySet(value), (s) => Object.assign(s, {
|
|
254
|
+
/**
|
|
255
|
+
* Construction-only default `new Set()`. Applied only when the field
|
|
256
|
+
* is omitted from `.make(...)` input. NOT applied during decode —
|
|
257
|
+
* cannot be used to JIT-migrate database fields. See file-level
|
|
258
|
+
* note.
|
|
259
|
+
*/
|
|
260
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new Set()))),
|
|
261
|
+
/**
|
|
262
|
+
* Decode-time default `new Set()`. **Discouraged for persisted
|
|
263
|
+
* data:** a missing field may be data corruption, not an old-shape
|
|
264
|
+
* document; silently substituting an empty set hides the problem.
|
|
265
|
+
* Prefer an explicit, preferably versioned migration over a
|
|
266
|
+
* decode-time fallback. See file-level note.
|
|
267
|
+
*/
|
|
119
268
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new Set())))
|
|
120
269
|
}));
|
|
121
|
-
/**
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
270
|
+
/** Like the default Schema `ReadonlyMap` (Encoded is `Map`) with default helpers. */
|
|
271
|
+
export const ReadonlyMap = (pair) => pipe(S.ReadonlyMap(pair.key, pair.value), (s) => Object.assign(s, {
|
|
272
|
+
/**
|
|
273
|
+
* Construction-only default `new Map()`. Applied only when the field
|
|
274
|
+
* is omitted from `.make(...)` input. NOT applied during decode —
|
|
275
|
+
* cannot be used to JIT-migrate database fields. See file-level
|
|
276
|
+
* note.
|
|
277
|
+
*/
|
|
278
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new Map()))),
|
|
279
|
+
/**
|
|
280
|
+
* Decode-time default `new Map()`. **Discouraged for persisted
|
|
281
|
+
* data:** a missing field may be data corruption, not an old-shape
|
|
282
|
+
* document; silently substituting an empty map hides the problem.
|
|
283
|
+
* Prefer an explicit, preferably versioned migration over a
|
|
284
|
+
* decode-time fallback. See file-level note.
|
|
285
|
+
*/
|
|
126
286
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new Map())))
|
|
127
287
|
}));
|
|
128
|
-
/**
|
|
129
|
-
* Like the default Schema `NullOr` but with `withDefault` => null
|
|
130
|
-
*/
|
|
288
|
+
/** Like the default Schema `NullOr` but with default helpers. */
|
|
131
289
|
export const NullOr = (self) => pipe(S.NullOr(self), (s) => Object.assign(s, {
|
|
132
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Construction-only default `null`. Applied only when the field is
|
|
292
|
+
* omitted from `.make(...)` input. NOT applied during decode —
|
|
293
|
+
* cannot be used to JIT-migrate database fields. See file-level
|
|
294
|
+
* note.
|
|
295
|
+
*/
|
|
296
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.succeed(null))),
|
|
297
|
+
/**
|
|
298
|
+
* Decode-time default `null`. **Discouraged for persisted data:** a
|
|
299
|
+
* missing field may be data corruption, not an old-shape document;
|
|
300
|
+
* silently substituting `null` hides the problem. Prefer an
|
|
301
|
+
* explicit, preferably versioned migration over a decode-time
|
|
302
|
+
* fallback. See file-level note.
|
|
303
|
+
*/
|
|
133
304
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(null)))
|
|
134
305
|
}));
|
|
306
|
+
/**
|
|
307
|
+
* Attach a `withConstructorDefault` of `new Date()` to any schema.
|
|
308
|
+
*
|
|
309
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
310
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
311
|
+
* JIT-migrate database fields. See file-level note.
|
|
312
|
+
*/
|
|
135
313
|
export const defaultDate = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new global.Date())));
|
|
314
|
+
/**
|
|
315
|
+
* Attach a `withConstructorDefault` of `false` to any schema.
|
|
316
|
+
*
|
|
317
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
318
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
319
|
+
* JIT-migrate database fields. See file-level note.
|
|
320
|
+
*/
|
|
136
321
|
export const defaultBool = (schema) => schema.pipe(S.withConstructorDefault(Effect.succeed(false)));
|
|
322
|
+
/**
|
|
323
|
+
* Attach a `withConstructorDefault` of `null` to any schema.
|
|
324
|
+
*
|
|
325
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
326
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
327
|
+
* JIT-migrate database fields. See file-level note.
|
|
328
|
+
*/
|
|
137
329
|
export const defaultNullable = (schema) => schema.pipe(S.withConstructorDefault(Effect.succeed(null)));
|
|
330
|
+
/**
|
|
331
|
+
* Attach a `withConstructorDefault` of `[]` to any schema.
|
|
332
|
+
*
|
|
333
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
334
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
335
|
+
* JIT-migrate database fields. See file-level note.
|
|
336
|
+
*/
|
|
138
337
|
export const defaultArray = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => [])));
|
|
338
|
+
/**
|
|
339
|
+
* Attach a `withConstructorDefault` of `new Map()` to any schema.
|
|
340
|
+
*
|
|
341
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
342
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
343
|
+
* JIT-migrate database fields. See file-level note.
|
|
344
|
+
*/
|
|
139
345
|
export const defaultMap = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new Map())));
|
|
346
|
+
/**
|
|
347
|
+
* Attach a `withConstructorDefault` of `new Set()` to any schema.
|
|
348
|
+
*
|
|
349
|
+
* **Construction-only.** Applied only when the field is omitted from
|
|
350
|
+
* `.make(...)` input. NOT applied during decode — cannot be used to
|
|
351
|
+
* JIT-migrate database fields. See file-level note.
|
|
352
|
+
*/
|
|
140
353
|
export const defaultSet = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new Set())));
|
|
141
354
|
export const withDefaultMake = (s) => {
|
|
142
355
|
const a = Object.assign(S.decodeSync(s), s);
|
|
@@ -156,40 +369,85 @@ export const withDefaultMake = (s) => {
|
|
|
156
369
|
// }[keyof P[B.BrandTypeId]]
|
|
157
370
|
// export type UnionToIntersection3<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I
|
|
158
371
|
// : never
|
|
159
|
-
|
|
160
|
-
|
|
372
|
+
/** Union of core `Schema.Date` (Date objects) and string-encoded `DateFromString`, with default helpers. */
|
|
373
|
+
export const inputDate = extendM(S.Union([S.Date, DateFromString]), (s) => ({
|
|
374
|
+
/**
|
|
375
|
+
* Construction-only default `new Date()`. Applied only when the field is
|
|
376
|
+
* omitted from `.make(...)` input. NOT applied during decode — cannot be
|
|
377
|
+
* used to JIT-migrate database fields. See file-level note.
|
|
378
|
+
*/
|
|
379
|
+
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new globalThis.Date()))),
|
|
380
|
+
/**
|
|
381
|
+
* Decode-time default `new Date()`. **Discouraged for persisted data:** a
|
|
382
|
+
* missing field may be data corruption, not an old-shape document;
|
|
383
|
+
* silently substituting `new Date()` hides the problem. Prefer an
|
|
384
|
+
* explicit, preferably versioned migration over a decode-time fallback.
|
|
385
|
+
* See file-level note.
|
|
386
|
+
*/
|
|
161
387
|
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new globalThis.Date())))
|
|
162
388
|
}));
|
|
163
389
|
// TODO: v4 migration — makeOpt used internal PropertySignature types that are removed in v4
|
|
164
390
|
// Simplified to use v4's S.optional / S.optionalKey directly
|
|
165
391
|
export function makeOptional(t) {
|
|
166
|
-
return
|
|
392
|
+
return Struct.keys(t).reduce((prev, cur) => {
|
|
167
393
|
prev[cur] = S.optional(t[cur]);
|
|
168
394
|
return prev;
|
|
169
395
|
}, {});
|
|
170
396
|
}
|
|
397
|
+
// `replaceContext` is `@internal` in `effect/SchemaAST` (stripped from its public types, though the
|
|
398
|
+
// export itself still ships in the compiled JS). Effect's own `withConstructorDefault` goes through the
|
|
399
|
+
// same function internally, so this mirrors an existing code path rather than reaching for something
|
|
400
|
+
// novel, but it's still an internal API that could move or disappear without a signal.
|
|
401
|
+
const SchemaASTInternal = SchemaAST;
|
|
402
|
+
/**
|
|
403
|
+
* A `Struct.Lambda` that removes a field's `withConstructorDefault`, if any.
|
|
404
|
+
* Compose with `Struct.pick`/`Struct.omit` via `Struct.map` to derive a
|
|
405
|
+
* partial-update schema from a "create" schema without inheriting defaults
|
|
406
|
+
* that would resurrect omitted fields in `.make(...)` output:
|
|
407
|
+
*
|
|
408
|
+
* ```ts
|
|
409
|
+
* import { flow } from "effect/Function"
|
|
410
|
+
* import * as Struct from "effect/Struct"
|
|
411
|
+
* import * as S from "effect-app/Schema"
|
|
412
|
+
*
|
|
413
|
+
* const Person = S.Struct({
|
|
414
|
+
* id: S.String,
|
|
415
|
+
* name: S.String.pipe(S.optionalKey, S.withConstructorDefault(() => ""))
|
|
416
|
+
* })
|
|
417
|
+
*
|
|
418
|
+
* const UpdatePerson = Person.mapFields(
|
|
419
|
+
* flow(Struct.omit(["id"]), Struct.map(S.dropConstructorDefault))
|
|
420
|
+
* )
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
export const dropConstructorDefault = Struct.lambda((schema) => {
|
|
424
|
+
const context = schema.ast.context;
|
|
425
|
+
if (!context?.constructorDefault)
|
|
426
|
+
return schema;
|
|
427
|
+
return schema.rebuild(SchemaASTInternal.replaceContext(schema.ast, new SchemaAST.Context(context.isOptional, context.isMutable, undefined, context.annotations)));
|
|
428
|
+
});
|
|
171
429
|
export function makeExactOptional(t) {
|
|
172
|
-
return
|
|
173
|
-
prev[cur] = S.optionalKey(t[cur]);
|
|
430
|
+
return Struct.keys(t).reduce((prev, cur) => {
|
|
431
|
+
prev[cur] = dropConstructorDefault(S.optionalKey(t[cur]));
|
|
174
432
|
return prev;
|
|
175
433
|
}, {});
|
|
176
434
|
}
|
|
177
435
|
/** A version of transform which is only a one way mapping of From->To */
|
|
178
|
-
export const transformTo = (from, to, decode) => from.pipe(S.decodeTo(to, SchemaTransformation.
|
|
436
|
+
export const transformTo = (from, to, decode) => from.pipe(S.decodeTo(to, SchemaTransformation.transformEffect({
|
|
179
437
|
decode: (input, options) => Effect.sync(() => decode(input, options)),
|
|
180
|
-
encode: (i) => Effect.fail(new SchemaIssue.Forbidden(
|
|
438
|
+
encode: (i) => Effect.fail(new SchemaIssue.Forbidden({ message: "One way schema transformation, encoding is not allowed" }, i))
|
|
181
439
|
})));
|
|
182
|
-
/** A version of
|
|
183
|
-
export const transformToOrFail = (from, to, decode) => from.pipe(S.decodeTo(to, SchemaTransformation.
|
|
440
|
+
/** A version of transformEffect which is only a one way mapping of From->To */
|
|
441
|
+
export const transformToOrFail = (from, to, decode) => from.pipe(S.decodeTo(to, SchemaTransformation.transformEffect({
|
|
184
442
|
decode,
|
|
185
|
-
encode: (i) => Effect.fail(new SchemaIssue.Forbidden(
|
|
443
|
+
encode: (i) => Effect.fail(new SchemaIssue.Forbidden({ message: "One way schema transformation, encoding is not allowed" }, i))
|
|
186
444
|
})));
|
|
187
|
-
export const provide = (self, context) => {
|
|
445
|
+
export const provide = Function.dual(2, (self, context) => {
|
|
188
446
|
const prov = Effect.provide(context);
|
|
189
447
|
return self.pipe(S.middlewareDecoding((effect) => prov(effect)), S.middlewareEncoding((effect) => prov(effect)));
|
|
190
|
-
};
|
|
191
|
-
export const contextFromServices =
|
|
448
|
+
});
|
|
449
|
+
export const contextFromServices = Effect.fnUntraced(function* (self, ...services) {
|
|
192
450
|
const context = Context.pick(...services)(yield* Effect.context());
|
|
193
451
|
return provide(self, context);
|
|
194
452
|
});
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWtCLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNoRyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBVWxELHVFQUF1RTtBQUV2RSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsNERBQTREO0lBQ3pFLE1BQU0sRUFBRSxXQUFXO0NBQ3BCLENBQUMsQ0FBQTtBQVVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1CLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFFdEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUU7SUFDaEQsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxJ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
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHdEQUF3RDtBQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxvQkFBb0IsTUFBTSw2QkFBNkIsQ0FBQTtBQUNuRSxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEtBQUssU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFVckMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUN2QyxNQUFNO0tBQ0gsT0FBTyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQztLQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ2pGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBMkI7SUFDekQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBb0IsQ0FBQztDQUM5RSxDQUFBO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQVcsQ0FBQTtBQUlsRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxNQUFjLEVBQ2QsbUJBQW1CLEdBQTJCLG1CQUFtQixFQUN6RCxFQUFFLENBQ1YsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO0lBQ2YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFCLE9BQU8sQ0FBQyxLQUFVLEVBQUUsT0FBZ0MsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQzdHLENBQUMsQ0FBVyxDQUFBO0FBRWQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbkMsVUFBVSxFQUFFLGVBQWU7SUFDM0IsV0FBVyxFQUFFLHlFQUF5RTtJQUN0RixNQUFNLEVBQUUsV0FBVztDQUNwQixDQUFDLENBQUE7QUFVRjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBbUIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtBQUV0SCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQzs7OztPQUlHO0lBQ0gsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEc7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Q0FDckcsQ0FBQyxDQUFBO0FBRUYsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVoRCxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUM5Qzs7OztPQUlHO0lBQ0gsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2Rjs7Ozs7T0FLRztJQUNILHVCQUF1QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Q0FDMUYsQ0FBQyxDQUFBO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUM1Qzs7OztPQUlHO0lBQ0gsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRjs7Ozs7T0FLRztJQUNILHVCQUF1QixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDckYsQ0FBQyxDQUFBO0FBRUYsa0ZBQWtGO0FBQ2xGLGtGQUFrRjtBQUNsRixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxVQUFVLENBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFO0lBQ25FLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUU7Q0FDdEYsQ0FBQyxDQUFBO0FBQ0YsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUE7QUFFbkUsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtJQUNoRDs7OztPQUlHO0lBQ0gsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RGOzs7OztPQUtHO0lBQ0gsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3pGLENBQUMsQ0FBQTtBQUVGLG1HQUFtRztBQUNuRyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBaUUsUUFBa0IsRUFBRSxFQUFFLENBQzdHLElBQUksQ0FDRixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUNwQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7SUFDZix1R0FBdUc7SUFDdkcsYUFBYSxFQUFFLENBQTZCLENBQUksRUFBRSxFQUFFO1FBQ2xELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sRUFBRSxDQUFDO1lBQ1Y7Ozs7O2VBS0c7WUFDSCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0U7Ozs7OztlQU1HO1lBQ0gsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlFLENBQUMsQ0FBQSxDQUFDLHdDQUF3QztJQUM3QyxDQUFDO0lBQ0QsOE1BQThNO0lBQzlNLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFnQjtJQUNuQzs7Ozs7T0FLRztJQUNILHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRjs7Ozs7O09BTUc7SUFDSCx1QkFBdUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDeEYsQ0FBQyxDQUNMLENBQUE7QUFFSCxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLEtBQUssQ0FBNEIsS0FBa0I7SUFDakUsT0FBTyxJQUFJLENBQ1QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1FBQ2Y7Ozs7O1dBS0c7UUFDSCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0U7Ozs7OztXQU1HO1FBQ0gsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ2xGLENBQUMsQ0FDTCxDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBNEIsS0FBa0IsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sSUFBSSxHQUFHLENBQUM7U0FDWCxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ1osUUFBUSxDQUFDLEVBQUUsR0FBRyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsZ0VBQWdFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BILE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFtRCxDQUFBO0lBQzlFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQ3RCLENBQUMsQ0FBQyxRQUFRLENBQ1IsRUFBRSxFQUNGLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUM3QixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBcUM7UUFDakUsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQzFCLENBQUMsQ0FDSCxDQUNGLENBQUE7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBcUQsSUFHeEYsRUFBRSxFQUFFO0lBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQztTQUNYLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN0QyxRQUFRLENBQUM7UUFDUixHQUFHLG9CQUFvQjtRQUN2QixRQUFRLEVBQUUsb0VBQW9FO0tBQy9FLENBQUMsQ0FBQTtJQUNKLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUUxQixDQUFBO0lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDdEIsQ0FBQyxDQUFDLFFBQVEsQ0FDUixFQUFFLEVBQ0Ysb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQzdCLE1BQU0sRUFBRSxDQUNOLEdBQUcsRUFDSCxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUF3RDtRQUN4RSxNQUFNLEVBQUUsQ0FDTixHQUFHLEVBQ0gsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQVEsQ0FBQyxLQUFLO0tBQ3JDLENBQUMsQ0FDSCxDQUNGLENBQUE7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBNEIsS0FBa0IsRUFBRSxFQUFFLENBQzNFLElBQUksQ0FDRixDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUNwQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7SUFDZjs7Ozs7T0FLRztJQUNILHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVCLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUF1QixDQUFDLENBQUMsQ0FDNUU7SUFDRDs7Ozs7O09BTUc7SUFDSCx1QkFBdUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM3QixDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLENBQzdFO0NBQ0YsQ0FBQyxDQUNMLENBQUE7QUFFSCxxRkFBcUY7QUFDckYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQXFELElBRy9FLEVBQUUsRUFBRSxDQUNILElBQUksQ0FDRixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNuQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7SUFDZjs7Ozs7T0FLRztJQUNILHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEY7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUN6RixDQUFDLENBQ0wsQ0FBQTtBQUVILGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBdUIsSUFBWSxFQUFFLEVBQUUsQ0FDM0QsSUFBSSxDQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQ2QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO0lBQ2Y7Ozs7O09BS0c7SUFDSCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUU7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0NBQ2pGLENBQUMsQ0FDTCxDQUFBO0FBRUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQXFELE1BQWMsRUFBRSxFQUFFLENBQ2hHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFN0U7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQXFELE1BQWMsRUFBRSxFQUFFLENBQ2hHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRTlEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFxRCxNQUFjLEVBQUUsRUFBRSxDQUNwRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUU3RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBcUQsTUFBYyxFQUFFLEVBQUUsQ0FDakcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFOUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQXFELE1BQWMsRUFBRSxFQUFFLENBQy9GLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVyRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBcUQsTUFBYyxFQUFFLEVBQUUsQ0FDL0YsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFxQixDQUFPLEVBQUUsRUFBRTtJQUM3RCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBUSxDQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNCLE9BQU8sQ0FBQyxDQUFBO0lBRVIsd0NBQXdDO0FBQzFDLENBQUMsQ0FBQTtBQU9ELCtEQUErRDtBQUMvRCxrREFBa0Q7QUFDbEQseUVBQXlFO0FBQ3pFLElBQUk7QUFFSiwrQ0FBK0M7QUFDL0MsaUVBQWlFO0FBQ2pFLDZCQUE2QjtBQUM3QixRQUFRO0FBQ1IsY0FBYztBQUNkLDRCQUE0QjtBQUM1QixvSEFBb0g7QUFDcEgsWUFBWTtBQUVaLDRHQUE0RztBQUM1RyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUNqQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNOOzs7O09BSUc7SUFDSCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRzs7Ozs7O09BTUc7SUFDSCx1QkFBdUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztDQUNyRyxDQUFDLENBQ0gsQ0FBQTtBQUlELDRGQUE0RjtBQUM1Riw2REFBNkQ7QUFDN0QsTUFBTSxVQUFVLFlBQVksQ0FDMUIsQ0FBTTtJQUlOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBUSxDQUFDLENBQUE7UUFDckMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUE7QUFDZixDQUFDO0FBc0JELG9HQUFvRztBQUNwRyx3R0FBd0c7QUFDeEcscUdBQXFHO0FBQ3JHLHVGQUF1RjtBQUN2RixNQUFNLGlCQUFpQixHQUFHLFNBRXpCLENBQUE7QUFPRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBaUMsTUFBTSxDQUFDLE1BQU0sQ0FDL0UsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNULE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFBO0lBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0JBQWtCO1FBQUUsT0FBTyxNQUFNLENBQUE7SUFDL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUNuQixpQkFBaUIsQ0FBQyxjQUFjLENBQzlCLE1BQU0sQ0FBQyxHQUFHLEVBQ1YsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUM3RixDQUNGLENBQUE7QUFDSCxDQUFDLENBQ0YsQ0FBQTtBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsQ0FBTTtJQUtOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBUSxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFBRSxFQUFTLENBQUMsQ0FBQTtBQUNmLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLElBQVUsRUFDVixFQUFNLEVBQ04sTUFHa0IsRUFDbEIsRUFBRSxDQUNGLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxDQUFDLFFBQVEsQ0FDUixFQUFFLEVBQ0Ysb0JBQW9CLENBQUMsZUFBZSxDQUFDO0lBQ25DLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxPQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxNQUFNLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUNULElBQUksV0FBVyxDQUFDLFNBQVMsQ0FDdkIsRUFBRSxPQUFPLEVBQUUsd0RBQXdELEVBQUUsRUFDckUsQ0FBQyxDQUNGLENBQ0Y7Q0FDSixDQUFDLENBQ0gsQ0FDRixDQUFBO0FBRUgsK0VBQStFO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLElBQVUsRUFDVixFQUFNLEVBQ04sTUFHd0QsRUFDeEQsRUFBRSxDQUNGLElBQUksQ0FBQyxJQUFJLENBQ1AsQ0FBQyxDQUFDLFFBQVEsQ0FDUixFQUFFLEVBQ0Ysb0JBQW9CLENBQUMsZUFBZSxDQUFDO0lBQ25DLE1BQU07SUFDTixNQUFNLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUNULElBQUksV0FBVyxDQUFDLFNBQVMsQ0FDdkIsRUFBRSxPQUFPLEVBQUUsd0RBQXdELEVBQUUsRUFDckUsQ0FBQyxDQUNGLENBQ0Y7Q0FDSixDQUFDLENBQ0gsQ0FDRixDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUdoQixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUF3QixJQUFVLEVBQUUsT0FBMkIsRUFBMEIsRUFBRTtJQUM5RyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FDZCxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUM5QyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUMvQyxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUc1RCxJQUFVLEVBQUUsR0FBRyxRQUFjO0lBQzdCLE1BQU0sT0FBTyxHQUE4RCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQ2xHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQTRDLENBQ2xFLENBQUE7SUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDL0IsQ0FBQyxDQVVBLENBQUEifQ==
|