effect-app 4.0.0-beta.12 → 4.0.0-beta.120
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 +460 -0
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config.d.ts +7 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +6 -0
- package/dist/ConfigProvider.d.ts +39 -0
- package/dist/ConfigProvider.d.ts.map +1 -0
- package/dist/ConfigProvider.js +42 -0
- package/dist/{ServiceMap.d.ts → Context.d.ts} +14 -18
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +66 -0
- package/dist/Effect.d.ts +8 -7
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +3 -2
- package/dist/Layer.d.ts +5 -4
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +1 -1
- package/dist/Operations.d.ts +108 -31
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Pure.d.ts +2 -2
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +13 -13
- package/dist/Schema/Class.d.ts +48 -10
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +120 -16
- package/dist/Schema/SpecialJsonSchema.d.ts +33 -0
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
- package/dist/Schema/SpecialJsonSchema.js +122 -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 +5 -1
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +9 -4
- package/dist/Schema/ext.d.ts +108 -46
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +112 -51
- package/dist/Schema/moreStrings.d.ts +19 -7
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +14 -9
- package/dist/Schema/numbers.d.ts +11 -11
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +10 -9
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +8 -3
- package/dist/Schema/strings.d.ts +4 -4
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema.d.ts +74 -55
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +85 -64
- package/dist/client/apiClientFactory.d.ts +11 -28
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +14 -15
- package/dist/client/clientFor.d.ts +6 -5
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/errors.d.ts +18 -9
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +35 -10
- package/dist/client/makeClient.d.ts +20 -15
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +32 -23
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +5 -5
- package/dist/ids.d.ts +2 -2
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +3 -2
- package/dist/index.d.ts +3 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -9
- package/dist/middleware.d.ts +2 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +3 -3
- package/dist/rpc/MiddlewareMaker.d.ts +4 -3
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +7 -6
- package/dist/rpc/RpcContextMap.d.ts +2 -2
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +4 -3
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/utils/gen.d.ts +1 -1
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -3
- package/dist/utils.d.ts +24 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +28 -2
- package/package.json +29 -17
- package/src/Config/SecretURL.ts +1 -1
- package/src/Config.ts +14 -0
- package/src/ConfigProvider.ts +48 -0
- package/src/{ServiceMap.ts → Context.ts} +51 -60
- package/src/Effect.ts +11 -9
- package/src/Layer.ts +5 -4
- package/src/Pure.ts +17 -18
- package/src/Schema/Class.ts +157 -30
- package/src/Schema/SpecialJsonSchema.ts +137 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +10 -3
- package/src/Schema/email.ts +10 -2
- package/src/Schema/ext.ts +189 -83
- package/src/Schema/moreStrings.ts +21 -11
- package/src/Schema/numbers.ts +9 -8
- package/src/Schema/phoneNumber.ts +8 -1
- package/src/Schema.ts +195 -104
- package/src/client/apiClientFactory.ts +24 -29
- package/src/client/clientFor.ts +6 -1
- package/src/client/errors.ts +34 -9
- package/src/client/makeClient.ts +121 -61
- package/src/http/Request.ts +7 -4
- package/src/ids.ts +2 -1
- package/src/index.ts +3 -11
- package/src/middleware.ts +2 -2
- package/src/rpc/MiddlewareMaker.ts +8 -7
- package/src/rpc/RpcContextMap.ts +6 -5
- package/src/rpc/RpcMiddleware.ts +5 -4
- package/src/utils/gen.ts +1 -1
- package/src/utils/logger.ts +2 -2
- package/src/utils.ts +30 -1
- package/test/dist/moreStrings.test.d.ts.map +1 -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 +17 -0
- package/test/rpc.test.ts +28 -6
- package/test/schema.test.ts +504 -4
- package/test/secretURL.test.ts +157 -0
- package/test/special.test.ts +862 -0
- package/test/utils.test.ts +2 -2
- package/tsconfig.base.json +0 -1
- package/tsconfig.json +0 -1
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
- package/dist/Struct.d.ts +0 -44
- package/dist/Struct.d.ts.map +0 -1
- package/dist/Struct.js +0 -29
- package/src/Struct.ts +0 -54
package/dist/Schema/ext.js
CHANGED
|
@@ -1,80 +1,145 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
-
import { Effect, Option, pipe,
|
|
3
|
+
import { Effect, Option, pipe, SchemaIssue, SchemaTransformation } from "effect";
|
|
4
4
|
import * as S from "effect/Schema";
|
|
5
|
+
import { isDateValid } from "effect/Schema";
|
|
6
|
+
import * as Context from "../Context.js";
|
|
5
7
|
import { extendM, typedKeysOf } from "../utils.js";
|
|
6
|
-
// TODO: v4 migration — withConstructorDefault signature changed, propertySignature removed
|
|
7
|
-
// Constraint relaxed from `Self extends S.Top & S.WithoutConstructorDefault` to `Self extends S.Top`
|
|
8
|
-
// because `.pipe()` widens the schema type to `Top` which doesn't satisfy `WithoutConstructorDefault`.
|
|
9
|
-
// The narrowing assertions below are safe — we're asserting "this schema hasn't had a default applied yet".
|
|
10
|
-
export const withDefaultConstructor = (makeDefault) => (self) => {
|
|
11
|
-
return S.withConstructorDefault(() => Option.some(makeDefault()))(self);
|
|
12
|
-
};
|
|
13
8
|
// TODO: v4 migration - Date is no longer by default encoded to string.
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
const DateString = S.String.annotate({
|
|
10
|
+
identifier: "Date",
|
|
11
|
+
description: "a string in ISO 8601 format that will be decoded as a Date",
|
|
12
|
+
format: "date-time"
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* A transformation schema that parses an ISO 8601 string into a `Date`.
|
|
16
|
+
*
|
|
17
|
+
* Decoding:
|
|
18
|
+
* - A `string` is decoded as a `Date`.
|
|
19
|
+
*
|
|
20
|
+
* Encoding:
|
|
21
|
+
* - A `Date` is encoded as a `string`.
|
|
22
|
+
*
|
|
23
|
+
* @since 4.0.0
|
|
24
|
+
*/
|
|
25
|
+
export const DateFromString = DateString.pipe(S.decodeTo(S.Date, SchemaTransformation.dateFromString));
|
|
18
26
|
/**
|
|
19
27
|
* Like the default Schema `Date` but from String with `withDefault` => now
|
|
20
28
|
*/
|
|
21
29
|
export const Date = Object.assign(DateFromString, {
|
|
22
|
-
withDefault: DateFromString.pipe(
|
|
30
|
+
withDefault: DateFromString.pipe(S.withConstructorDefault(Effect.sync(() => new global.Date()))),
|
|
31
|
+
withDecodingDefaultType: DateFromString.pipe(S.withDecodingDefaultType(Effect.sync(() => new global.Date())))
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Like the default Schema `DateValid` but from String with `withDefault` => now
|
|
35
|
+
*/
|
|
36
|
+
export const DateValid = Object.assign(Date.check(isDateValid()), {
|
|
37
|
+
withDefault: DateFromString.pipe(S.withConstructorDefault(Effect.sync(() => new global.Date()))),
|
|
38
|
+
withDecodingDefaultType: DateFromString.pipe(S.withDecodingDefaultType(Effect.sync(() => new global.Date())))
|
|
23
39
|
});
|
|
24
40
|
/**
|
|
25
41
|
* Like the default Schema `Boolean` but with `withDefault` => false
|
|
26
42
|
*/
|
|
27
43
|
export const Boolean = Object.assign(S.Boolean, {
|
|
28
|
-
withDefault: S.Boolean.pipe(
|
|
44
|
+
withDefault: S.Boolean.pipe(S.withConstructorDefault(Effect.succeed(false))),
|
|
45
|
+
withDecodingDefaultType: S.Boolean.pipe(S.withDecodingDefaultType(Effect.succeed(false)))
|
|
29
46
|
});
|
|
30
47
|
/**
|
|
48
|
+
* You probably want to use `Finite` instead of this.
|
|
31
49
|
* Like the default Schema `Number` but with `withDefault` => 0
|
|
32
50
|
*/
|
|
33
|
-
export const Number = Object.assign(S.Number, {
|
|
51
|
+
export const Number = Object.assign(S.Number, {
|
|
52
|
+
withDefault: S.Number.pipe(S.withConstructorDefault(Effect.succeed(0))),
|
|
53
|
+
withDecodingDefaultType: S.Number.pipe(S.withDecodingDefaultType(Effect.succeed(0)))
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Like the default Schema `Finite` but with `withDefault` => 0
|
|
57
|
+
*/
|
|
58
|
+
export const Finite = Object.assign(S.Finite, {
|
|
59
|
+
withDefault: S.Finite.pipe(S.withConstructorDefault(Effect.succeed(0))),
|
|
60
|
+
withDecodingDefaultType: S.Finite.pipe(S.withDecodingDefaultType(Effect.succeed(0)))
|
|
61
|
+
});
|
|
34
62
|
/**
|
|
35
|
-
* Like the default Schema `
|
|
63
|
+
* Like the default Schema `Literals` but with `withDefault` => literals[0]
|
|
36
64
|
*/
|
|
37
|
-
export const
|
|
65
|
+
export const Literals = (literals) => pipe(S.Literals(literals), (s) => Object.assign(s, {
|
|
38
66
|
changeDefault: (a) => {
|
|
39
67
|
return Object.assign(S.Literals(literals), {
|
|
40
68
|
Default: a,
|
|
41
|
-
withDefault: s.pipe(
|
|
69
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.succeed(a))),
|
|
70
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(a)))
|
|
42
71
|
}); // todo: copy annotations from original?
|
|
43
72
|
},
|
|
44
73
|
Default: literals[0],
|
|
45
|
-
withDefault: s.pipe(
|
|
74
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.succeed(literals[0]))),
|
|
75
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(literals[0])))
|
|
46
76
|
}));
|
|
47
77
|
/**
|
|
48
78
|
* Like the default Schema `Array` but with `withDefault` => []
|
|
49
79
|
*/
|
|
80
|
+
const co = { parseOptions: { concurrency: "unbounded" } };
|
|
81
|
+
export { co as concurrencyUnbounded };
|
|
50
82
|
export function Array(value) {
|
|
51
|
-
return pipe(S.Array(value), (s) => Object.assign(s, {
|
|
83
|
+
return pipe(S.Array(value).annotate(co), (s) => Object.assign(s, {
|
|
84
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => []))),
|
|
85
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => [])))
|
|
86
|
+
}));
|
|
52
87
|
}
|
|
53
88
|
/**
|
|
54
|
-
*
|
|
89
|
+
* An annotated `S.Array` of unique items that decodes to a `ReadonlySet`.
|
|
55
90
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
91
|
+
export const ReadonlySetFromArray = (value) => {
|
|
92
|
+
const from = S
|
|
93
|
+
.Array(value)
|
|
94
|
+
.annotate({ ...co, expected: "an array of unique items that will be decoded as a ReadonlySet" });
|
|
95
|
+
const to = S.instanceOf(Set);
|
|
96
|
+
const schema = from.pipe(S.decodeTo(to, SchemaTransformation.transform({
|
|
97
|
+
decode: (arr) => new Set(arr),
|
|
98
|
+
encode: (set) => [...set]
|
|
99
|
+
})));
|
|
100
|
+
return schema;
|
|
101
|
+
};
|
|
60
102
|
/**
|
|
61
|
-
*
|
|
103
|
+
* An annotated `S.Array` of key-value tuples that decodes to a `ReadonlyMap`.
|
|
62
104
|
*/
|
|
63
|
-
export const
|
|
105
|
+
export const ReadonlyMapFromArray = (pair) => {
|
|
106
|
+
const from = S
|
|
107
|
+
.Array(S.Tuple([pair.key, pair.value]))
|
|
108
|
+
.annotate({ ...co, expected: "an array of key-value tuples that will be decoded as a ReadonlyMap" });
|
|
109
|
+
const to = S.instanceOf(Map);
|
|
110
|
+
const schema = from.pipe(S.decodeTo(to, SchemaTransformation.transform({
|
|
111
|
+
decode: (arr) => new Map(arr),
|
|
112
|
+
encode: (map) => [...map.entries()] // fu
|
|
113
|
+
})));
|
|
114
|
+
return schema;
|
|
115
|
+
};
|
|
64
116
|
/**
|
|
65
|
-
* Like the default Schema `
|
|
117
|
+
* Like the default Schema `ReadonlySet` but from Array with `withDefault` => new Set()
|
|
66
118
|
*/
|
|
67
|
-
export const
|
|
119
|
+
export const ReadonlySet = (value) => pipe(ReadonlySetFromArray(value), (s) => Object.assign(s, {
|
|
120
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new Set()))),
|
|
121
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new Set())))
|
|
122
|
+
}));
|
|
123
|
+
/**
|
|
124
|
+
* Like the default Schema `ReadonlyMap` but from Array with `withDefault` => new Map()
|
|
125
|
+
*/
|
|
126
|
+
export const ReadonlyMap = (pair) => pipe(ReadonlyMapFromArray(pair), (s) => Object.assign(s, {
|
|
127
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new Map()))),
|
|
128
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new Map())))
|
|
129
|
+
}));
|
|
68
130
|
/**
|
|
69
131
|
* Like the default Schema `NullOr` but with `withDefault` => null
|
|
70
132
|
*/
|
|
71
|
-
export const NullOr = (self) => pipe(S.NullOr(self), (s) => Object.assign(s, {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
export const
|
|
76
|
-
export const
|
|
77
|
-
export const
|
|
133
|
+
export const NullOr = (self) => pipe(S.NullOr(self), (s) => Object.assign(s, {
|
|
134
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.succeed(null))),
|
|
135
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.succeed(null)))
|
|
136
|
+
}));
|
|
137
|
+
export const defaultDate = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new global.Date())));
|
|
138
|
+
export const defaultBool = (schema) => schema.pipe(S.withConstructorDefault(Effect.succeed(false)));
|
|
139
|
+
export const defaultNullable = (schema) => schema.pipe(S.withConstructorDefault(Effect.succeed(null)));
|
|
140
|
+
export const defaultArray = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => [])));
|
|
141
|
+
export const defaultMap = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new Map())));
|
|
142
|
+
export const defaultSet = (schema) => schema.pipe(S.withConstructorDefault(Effect.sync(() => new Set())));
|
|
78
143
|
export const withDefaultMake = (s) => {
|
|
79
144
|
const a = Object.assign(S.decodeSync(s), s);
|
|
80
145
|
Object.setPrototypeOf(a, s);
|
|
@@ -93,7 +158,10 @@ export const withDefaultMake = (s) => {
|
|
|
93
158
|
// }[keyof P[B.BrandTypeId]]
|
|
94
159
|
// export type UnionToIntersection3<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I
|
|
95
160
|
// : never
|
|
96
|
-
export const inputDate = extendM(S.Union([S.DateValid,
|
|
161
|
+
export const inputDate = extendM(S.Union([S.DateValid, Date]), (s) => ({
|
|
162
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => new globalThis.Date()))),
|
|
163
|
+
withDecodingDefaultType: s.pipe(S.withDecodingDefaultType(Effect.sync(() => new globalThis.Date())))
|
|
164
|
+
}));
|
|
97
165
|
// TODO: v4 migration — makeOpt used internal PropertySignature types that are removed in v4
|
|
98
166
|
// Simplified to use v4's S.optional / S.optionalKey directly
|
|
99
167
|
export function makeOptional(t) {
|
|
@@ -115,22 +183,15 @@ export const transformTo = (from, to, decode) => from.pipe(S.decodeTo(to, Schema
|
|
|
115
183
|
})));
|
|
116
184
|
/** A version of transformOrFail which is only a one way mapping of From->To */
|
|
117
185
|
export const transformToOrFail = (from, to, decode) => from.pipe(S.decodeTo(to, SchemaTransformation.transformOrFail({
|
|
118
|
-
decode
|
|
186
|
+
decode,
|
|
119
187
|
encode: (i) => Effect.fail(new SchemaIssue.Forbidden(Option.some(i), { message: "One way schema transformation, encoding is not allowed" }))
|
|
120
188
|
})));
|
|
121
|
-
// TODO: v4 migration — S.declare API changed (no [self] + decode/encode pattern)
|
|
122
|
-
// Need to find v4 equivalent for contextual schema wrapping
|
|
123
189
|
export const provide = (self, context) => {
|
|
124
190
|
const prov = Effect.provide(context);
|
|
125
|
-
return S
|
|
126
|
-
.declare((_u) => true) // placeholder — needs proper v4 declare
|
|
127
|
-
.pipe(S.decodeTo(self, SchemaTransformation.transformOrFail({
|
|
128
|
-
decode: (n) => prov(SchemaParser.decodeUnknownEffect(self)(n)),
|
|
129
|
-
encode: (n) => prov(SchemaParser.encodeUnknownEffect(self)(n))
|
|
130
|
-
})));
|
|
131
|
-
};
|
|
132
|
-
// TODO: v4 migration — ServiceMap.pick and S.declare pattern removed
|
|
133
|
-
export const contextFromServices = (_self, ..._services) => {
|
|
134
|
-
throw new Error("contextFromServices: not yet migrated to v4");
|
|
191
|
+
return self.pipe(S.middlewareDecoding((effect) => prov(effect)), S.middlewareEncoding((effect) => prov(effect)));
|
|
135
192
|
};
|
|
136
|
-
|
|
193
|
+
export const contextFromServices = (self, ...services) => Effect.gen(function* () {
|
|
194
|
+
const context = Context.pick(...services)(yield* Effect.context());
|
|
195
|
+
return provide(self, context);
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWtCLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNoRyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBVWxELHVFQUF1RTtBQUV2RSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsNERBQTREO0lBQ3pFLE1BQU0sRUFBRSxXQUFXO0NBQ3BCLENBQUMsQ0FBQTtBQVVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1CLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFFdEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUU7SUFDaEQsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxJ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
|
|
@@ -15,7 +15,7 @@ export type NonEmptyString50 = string & NonEmptyString50Brand;
|
|
|
15
15
|
/**
|
|
16
16
|
* A string that is at least 1 character long and a maximum of 50.
|
|
17
17
|
*/
|
|
18
|
-
export declare const NonEmptyString50: WithDefaults<S.brand<S.
|
|
18
|
+
export declare const NonEmptyString50: WithDefaults<S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100">> & S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100">;
|
|
19
19
|
/**
|
|
20
20
|
* A string that is at least 1 character long and a maximum of 64.
|
|
21
21
|
*/
|
|
@@ -28,7 +28,7 @@ export type NonEmptyString64 = string & NonEmptyString64Brand;
|
|
|
28
28
|
/**
|
|
29
29
|
* A string that is at least 1 character long and a maximum of 64.
|
|
30
30
|
*/
|
|
31
|
-
export declare const NonEmptyString64: WithDefaults<S.brand<S.
|
|
31
|
+
export declare const NonEmptyString64: WithDefaults<S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100">> & S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100">;
|
|
32
32
|
/**
|
|
33
33
|
* A string that is at least 1 character long and a maximum of 80.
|
|
34
34
|
*/
|
|
@@ -41,7 +41,7 @@ export type NonEmptyString80 = string & NonEmptyString80Brand;
|
|
|
41
41
|
/**
|
|
42
42
|
* A string that is at least 1 character long and a maximum of 80.
|
|
43
43
|
*/
|
|
44
|
-
export declare const NonEmptyString80: WithDefaults<S.brand<S.
|
|
44
|
+
export declare const NonEmptyString80: WithDefaults<S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString80" | "NonEmptyString100">> & S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString80" | "NonEmptyString100">;
|
|
45
45
|
/**
|
|
46
46
|
* A string that is at least 1 character long and a maximum of 100.
|
|
47
47
|
*/
|
|
@@ -54,7 +54,7 @@ export type NonEmptyString100 = string & NonEmptyString100Brand;
|
|
|
54
54
|
/**
|
|
55
55
|
* A string that is at least 1 character long and a maximum of 100.
|
|
56
56
|
*/
|
|
57
|
-
export declare const NonEmptyString100: WithDefaults<S.brand<S.
|
|
57
|
+
export declare const NonEmptyString100: WithDefaults<S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString100">> & S.brand<S.NonEmptyString, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString100">;
|
|
58
58
|
/**
|
|
59
59
|
* A string that is at least 3 character long and a maximum of 255.
|
|
60
60
|
*/
|
|
@@ -82,12 +82,24 @@ export type StringId = string & StringIdBrand;
|
|
|
82
82
|
*/
|
|
83
83
|
export declare const StringId: WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
84
84
|
make: () => StringId;
|
|
85
|
-
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"
|
|
85
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
86
86
|
}> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
87
87
|
make: () => StringId;
|
|
88
|
-
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"
|
|
88
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
89
89
|
};
|
|
90
|
-
export declare function prefixedStringId<Brand extends StringId>(): <Prefix extends string, Separator extends string = "-">(prefix: Prefix, name: string, separator?: Separator) => WithDefaults<S.
|
|
90
|
+
export declare function prefixedStringId<Brand extends StringId>(): <Prefix extends string, Separator extends string = "-">(prefix: Prefix, name: string, separator?: Separator) => WithDefaults<S.refine<string & Brand, WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
91
|
+
make: () => StringId;
|
|
92
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
93
|
+
}> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
94
|
+
make: () => StringId;
|
|
95
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
96
|
+
}>> & S.refine<string & Brand, WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
97
|
+
make: () => StringId;
|
|
98
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
99
|
+
}> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId"> & {
|
|
100
|
+
make: () => StringId;
|
|
101
|
+
withDefault: S.withConstructorDefault<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255" | "NonEmptyString50" | "NonEmptyString64" | "NonEmptyString80" | "NonEmptyString100" | "StringId">>;
|
|
102
|
+
}> & PrefixedStringUtils<Brand, Prefix, Separator>;
|
|
91
103
|
export declare const brandedStringId: <Brand extends StringIdBrand>() => WithDefaults<S.Codec<string & Brand, string, never, never> & {
|
|
92
104
|
make: () => string & Brand;
|
|
93
105
|
withDefault: S.withConstructorDefault<S.Codec<string & Brand, string> & S.WithoutConstructorDefault>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moreStrings.d.ts","sourceRoot":"","sources":["../../src/Schema/moreStrings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,
|
|
1
|
+
{"version":3,"file":"moreStrings.d.ts","sourceRoot":"","sources":["../../src/Schema/moreStrings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { pipe } from "effect";
|
|
1
|
+
import { Effect, pipe } from "effect";
|
|
2
2
|
import { extendM } from "effect-app/utils";
|
|
3
3
|
import * as S from "effect/Schema";
|
|
4
4
|
import { customRandom, nanoid, urlAlphabet } from "nanoid";
|
|
5
5
|
import validator from "validator";
|
|
6
6
|
import { fromBrand, nominal } from "./brand.js";
|
|
7
|
-
import {
|
|
7
|
+
import { withDefaultMake } from "./ext.js";
|
|
8
8
|
const nonEmptyString = S.NonEmptyString;
|
|
9
9
|
/**
|
|
10
10
|
* A string that is at least 1 character long and a maximum of 50.
|
|
@@ -56,11 +56,11 @@ const StringIdArb = () => (fc) => fc
|
|
|
56
56
|
export const StringId = extendM(pipe(S.String, S.check(S.isMinLength(minLength), S.isMaxLength(maxLength)), fromBrand(nominal(), {
|
|
57
57
|
identifier: "StringId",
|
|
58
58
|
title: "StringId",
|
|
59
|
-
|
|
59
|
+
toArbitrary: () => (fc) => StringIdArb()(fc),
|
|
60
60
|
jsonSchema: {}
|
|
61
61
|
})), (s) => ({
|
|
62
62
|
make: makeStringId,
|
|
63
|
-
withDefault: s.pipe(
|
|
63
|
+
withDefault: s.pipe(S.withConstructorDefault(Effect.sync(makeStringId)))
|
|
64
64
|
}))
|
|
65
65
|
.pipe(withDefaultMake);
|
|
66
66
|
// const prefixedStringIdUnsafe = (prefix: string) => StringId(prefix + StringId.make())
|
|
@@ -72,9 +72,10 @@ export function prefixedStringId() {
|
|
|
72
72
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
73
73
|
const s = StringId
|
|
74
74
|
.pipe(S.refine((x) => x.startsWith(pref), {
|
|
75
|
-
arbitrary: arb,
|
|
76
75
|
identifier: name,
|
|
77
76
|
title: name
|
|
77
|
+
}), S.annotate({
|
|
78
|
+
toArbitrary: () => (fc) => arb()(fc)
|
|
78
79
|
}));
|
|
79
80
|
const schema = s.pipe(withDefaultMake);
|
|
80
81
|
const make = () => (pref + StringId.make().substring(0, 50 - pref.length));
|
|
@@ -89,7 +90,7 @@ export function prefixedStringId() {
|
|
|
89
90
|
*/
|
|
90
91
|
prefixSafe: (str) => ex(str),
|
|
91
92
|
prefix,
|
|
92
|
-
withDefault: schema.pipe(
|
|
93
|
+
withDefault: schema.pipe(S.withConstructorDefault(Effect.sync(make)))
|
|
93
94
|
}));
|
|
94
95
|
};
|
|
95
96
|
}
|
|
@@ -99,10 +100,14 @@ const isUrl = (s) => {
|
|
|
99
100
|
};
|
|
100
101
|
export const Url = S
|
|
101
102
|
.String
|
|
102
|
-
.pipe(S.
|
|
103
|
-
|
|
103
|
+
.pipe(S.annotate({
|
|
104
|
+
title: "Url",
|
|
105
|
+
format: "uri"
|
|
106
|
+
}), S.refine(isUrl, {
|
|
104
107
|
identifier: "Url",
|
|
105
108
|
title: "Url",
|
|
106
109
|
jsonSchema: { format: "uri" }
|
|
110
|
+
}), S.annotate({
|
|
111
|
+
toArbitrary: () => (fc) => fc.webUrl().map((_) => _)
|
|
107
112
|
}), withDefaultMake);
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZVN0cmluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL21vcmVTdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDMUQsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQXFCLE1BQU0sVUFBVSxDQUFBO0FBSTdELE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUE7QUFZdkM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUNqRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDMUIsU0FBUyxDQUFDLE9BQU8sRUFBb0IsRUFBRTtJQUNyQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLEtBQUssRUFBRSxrQkFBa0I7SUFDekIsVUFBVSxFQUFFLEVBQUU7Q0FDZixDQUFDLEVBQ0YsZUFBZSxDQUNoQixDQUFBO0FBWUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUNqRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDMUIsU0FBUyxDQUFDLE9BQU8sRUFBb0IsRUFBRTtJQUNyQyxVQUFVLEVBQUUsa0JBQWtC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
|
package/dist/Schema/numbers.d.ts
CHANGED
|
@@ -4,42 +4,42 @@ import { type B } from "./schema.js";
|
|
|
4
4
|
export interface PositiveIntBrand extends Simplify<B.Brand<"PositiveInt"> & NonNegativeIntBrand & PositiveNumberBrand> {
|
|
5
5
|
}
|
|
6
6
|
export declare const PositiveInt: import("./ext.js").WithDefaults<S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber"> & {
|
|
7
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber"
|
|
7
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Int, "PositiveInt" | "NonNegativeInt" | "Int" | "NonNegativeNumber" | "PositiveNumber">>;
|
|
8
8
|
};
|
|
9
9
|
export type PositiveInt = number & PositiveIntBrand;
|
|
10
10
|
export interface NonNegativeIntBrand extends Simplify<B.Brand<"NonNegativeInt"> & IntBrand & NonNegativeNumberBrand> {
|
|
11
11
|
}
|
|
12
12
|
export declare const NonNegativeInt: import("./ext.js").WithDefaults<S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber">> & S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber"> & {
|
|
13
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber">> & S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber"
|
|
13
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber">> & S.brand<S.Int, "NonNegativeInt" | "Int" | "NonNegativeNumber">>;
|
|
14
14
|
};
|
|
15
15
|
export type NonNegativeInt = number & NonNegativeIntBrand;
|
|
16
16
|
export interface IntBrand extends Simplify<B.Brand<"Int">> {
|
|
17
17
|
}
|
|
18
18
|
export declare const Int: import("./ext.js").WithDefaults<S.brand<S.Int, "Int">> & S.brand<S.Int, "Int"> & {
|
|
19
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "Int">> & S.brand<S.Int, "Int"
|
|
19
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Int, "Int">> & S.brand<S.Int, "Int">>;
|
|
20
20
|
};
|
|
21
21
|
export type Int = number & IntBrand;
|
|
22
22
|
export interface PositiveNumberBrand extends Simplify<B.Brand<"PositiveNumber"> & NonNegativeNumberBrand> {
|
|
23
23
|
}
|
|
24
|
-
export declare const PositiveNumber: import("./ext.js").WithDefaults<S.brand<S.
|
|
25
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.
|
|
24
|
+
export declare const PositiveNumber: import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber"> & {
|
|
25
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">>;
|
|
26
26
|
};
|
|
27
27
|
export type PositiveNumber = number & PositiveNumberBrand;
|
|
28
28
|
export interface NonNegativeNumberBrand extends Simplify<B.Brand<"NonNegativeNumber">> {
|
|
29
29
|
}
|
|
30
|
-
export declare const NonNegativeNumber: import("./ext.js").WithDefaults<S.brand<S.
|
|
31
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.
|
|
30
|
+
export declare const NonNegativeNumber: import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber">> & S.brand<S.Finite, "NonNegativeNumber"> & {
|
|
31
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber">> & S.brand<S.Finite, "NonNegativeNumber">>;
|
|
32
32
|
};
|
|
33
33
|
export type NonNegativeNumber = number & NonNegativeNumberBrand;
|
|
34
34
|
/** @deprecated Not an actual decimal */
|
|
35
|
-
export declare const NonNegativeDecimal: import("./ext.js").WithDefaults<S.brand<S.
|
|
36
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.
|
|
35
|
+
export declare const NonNegativeDecimal: import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber">> & S.brand<S.Finite, "NonNegativeNumber"> & {
|
|
36
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber">> & S.brand<S.Finite, "NonNegativeNumber">>;
|
|
37
37
|
};
|
|
38
38
|
/** @deprecated Not an actual decimal */
|
|
39
39
|
export type NonNegativeDecimal = NonNegativeNumber;
|
|
40
40
|
/** @deprecated Not an actual decimal */
|
|
41
|
-
export declare const PositiveDecimal: import("./ext.js").WithDefaults<S.brand<S.
|
|
42
|
-
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.
|
|
41
|
+
export declare const PositiveDecimal: import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber"> & {
|
|
42
|
+
withDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">> & S.brand<S.Finite, "NonNegativeNumber" | "PositiveNumber">>;
|
|
43
43
|
};
|
|
44
44
|
/** @deprecated Not an actual decimal */
|
|
45
45
|
export type PositiveDecimal = PositiveNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/Schema/numbers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/Schema/numbers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,WAAW,gBACf,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;CACpF;AACF,eAAO,MAAM,WAAW;;CAOvB,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEnD,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,QAAQ,GAAG,sBAAsB,CAAC;CAAG;AACvH,eAAO,MAAM,cAAc;;CAW1B,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,mBAAmB,CAAA;AAEzD,MAAM,WAAW,QAAS,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CAAG;AAC7D,eAAO,MAAM,GAAG;;CAGf,CAAA;AACD,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEnC,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC;CAAG;AAC5G,eAAO,MAAM,cAAc;;CAW1B,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,mBAAmB,CAAA;AAEzD,MAAM,WAAW,sBAAuB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;CAAG;AACzF,eAAO,MAAM,iBAAiB;;CAa7B,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,sBAAsB,CAAA;AAE/D,wCAAwC;AACxC,eAAO,MAAM,kBAAkB;;CAAoB,CAAA;AACnD,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AAElD,wCAAwC;AACxC,eAAO,MAAM,eAAe;;CAAiB,CAAA;AAC7C,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAA"}
|
package/dist/Schema/numbers.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
1
2
|
import { extendM } from "effect-app/utils";
|
|
2
3
|
import * as S from "effect/Schema";
|
|
3
4
|
import { fromBrand, nominal } from "./brand.js";
|
|
4
|
-
import {
|
|
5
|
-
export const PositiveInt = extendM(S.Int.pipe(S.check(S.isGreaterThan(0)), fromBrand(nominal(), { identifier: "PositiveInt", title: "PositiveInt", jsonSchema: {} }), withDefaultMake), (s) => ({ withDefault: s.pipe(
|
|
5
|
+
import { withDefaultMake } from "./ext.js";
|
|
6
|
+
export const PositiveInt = extendM(S.Int.pipe(S.check(S.isGreaterThan(0)), fromBrand(nominal(), { identifier: "PositiveInt", title: "PositiveInt", jsonSchema: {} }), withDefaultMake), (s) => ({ withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(1)))) }));
|
|
6
7
|
export const NonNegativeInt = extendM(S.Int.pipe(S.check(S.isGreaterThanOrEqualTo(0)), fromBrand(nominal(), {
|
|
7
8
|
identifier: "NonNegativeInt",
|
|
8
9
|
title: "NonNegativeInt",
|
|
9
10
|
jsonSchema: {}
|
|
10
|
-
}), withDefaultMake), (s) => ({ withDefault: s.pipe(
|
|
11
|
-
export const Int = extendM(S.Int.pipe(fromBrand(nominal(), { identifier: "Int", title: "Int", jsonSchema: {} }), withDefaultMake), (s) => ({ withDefault: s.pipe(
|
|
12
|
-
export const PositiveNumber = extendM(S.
|
|
11
|
+
}), withDefaultMake), (s) => ({ withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(0)))) }));
|
|
12
|
+
export const Int = extendM(S.Int.pipe(fromBrand(nominal(), { identifier: "Int", title: "Int", jsonSchema: {} }), withDefaultMake), (s) => ({ withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(0)))) }));
|
|
13
|
+
export const PositiveNumber = extendM(S.Finite.pipe(S.check(S.isGreaterThan(0)), fromBrand(nominal(), {
|
|
13
14
|
identifier: "PositiveNumber",
|
|
14
15
|
title: "PositiveNumber",
|
|
15
16
|
jsonSchema: {}
|
|
16
|
-
}), withDefaultMake), (s) => ({ withDefault: s.pipe(
|
|
17
|
+
}), withDefaultMake), (s) => ({ withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(1)))) }));
|
|
17
18
|
export const NonNegativeNumber = extendM(S
|
|
18
|
-
.
|
|
19
|
+
.Finite
|
|
19
20
|
.pipe(S.check(S.isGreaterThanOrEqualTo(0)), fromBrand(nominal(), {
|
|
20
21
|
identifier: "NonNegativeNumber",
|
|
21
22
|
title: "NonNegativeNumber",
|
|
22
23
|
jsonSchema: {}
|
|
23
|
-
}), withDefaultMake), (s) => ({ withDefault: s.pipe(
|
|
24
|
+
}), withDefaultMake), (s) => ({ withDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(0)))) }));
|
|
24
25
|
/** @deprecated Not an actual decimal */
|
|
25
26
|
export const NonNegativeDecimal = NonNegativeNumber;
|
|
26
27
|
/** @deprecated Not an actual decimal */
|
|
27
28
|
export const PositiveDecimal = PositiveNumber;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWEvbnVtYmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBTTFDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQ2hDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMzQixTQUFTLENBQUMsT0FBTyxFQUFlLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3RHLGVBQWUsQ0FDaEIsRUFDRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3BGLENBQUE7QUFJRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUNuQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDUixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwQyxTQUFTLENBQUMsT0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phoneNumber.d.ts","sourceRoot":"","sources":["../../src/Schema/phoneNumber.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC;CAAG;AACnG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEnD,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"phoneNumber.d.ts","sourceRoot":"","sources":["../../src/Schema/phoneNumber.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC;CAAG;AACnG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAA;AAEnD,eAAO,MAAM,WAAW,oGAkBrB,CAAA"}
|
|
@@ -4,11 +4,16 @@ import { withDefaultMake } from "./ext.js";
|
|
|
4
4
|
import { Numbers } from "./FastCheck.js";
|
|
5
5
|
export const PhoneNumber = S
|
|
6
6
|
.String
|
|
7
|
-
.pipe(S.
|
|
7
|
+
.pipe(S.annotate({
|
|
8
|
+
title: "PhoneNumber",
|
|
9
|
+
description: "a phone number with at least 7 digits",
|
|
10
|
+
format: "phone"
|
|
11
|
+
}), S.refine(isValidPhone, {
|
|
8
12
|
identifier: "PhoneNumber",
|
|
9
13
|
title: "PhoneNumber",
|
|
10
14
|
description: "a phone number with at least 7 digits",
|
|
11
|
-
arbitrary: () => (fc) => Numbers(7, 10)(fc).map((_) => _),
|
|
12
15
|
jsonSchema: { format: "phone" }
|
|
16
|
+
}), S.annotate({
|
|
17
|
+
toArbitrary: () => (fc) => Numbers(7, 10)(fc).map((_) => _)
|
|
13
18
|
}), withDefaultMake);
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmVOdW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL3Bob25lTnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQU94QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQztLQUN6QixNQUFNO0tBQ04sSUFBSSxDQUNILENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDVCxLQUFLLEVBQUUsYUFBYTtJQUNwQixXQUFXLEVBQUUsdUNBQXVDO0lBQ3BELE1BQU0sRUFBRSxPQUFPO0NBQ2hCLENBQUMsRUFDRixDQUFDLENBQUMsTUFBTSxDQUFDLFlBQStDLEVBQUU7SUFDeEQsVUFBVSxFQUFFLGFBQWE7SUFDekIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsV0FBVyxFQUFFLHVDQUF1QztJQUNwRCxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0NBQ2hDLENBQUMsRUFDRixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ1QsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBZ0IsQ0FBQztDQUMzRSxDQUFDLEVBQ0YsZUFBZSxDQUNoQixDQUFBIn0=
|