effect-app 4.0.0-beta.254 → 4.0.0-beta.255
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 +10 -0
- package/dist/Schema/moreStrings.d.ts +35 -83
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +10 -29
- package/dist/Schema/numbers.d.ts +24 -57
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +1 -6
- package/dist/Schema/strings.d.ts +16 -5
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +1 -1
- package/dist/ids.d.ts +2 -8
- package/dist/ids.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Schema/moreStrings.ts +43 -32
- package/src/Schema/numbers.ts +16 -6
- package/src/Schema/strings.ts +11 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.255
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 52a31dd: Reduce schema type complexity by exposing explicit interfaces for branded string and number schemas.
|
|
8
|
+
|
|
9
|
+
Each branded constant in `Schema/strings.ts`, `Schema/moreStrings.ts`, and `Schema/numbers.ts` now has a named interface (e.g. `NonEmptyStringSchema`, `StringIdSchema`, `PositiveIntSchema`, `UrlSchema`) annotating its `export const`. Mirrors the pattern used in `effect/Schema` itself — TypeScript reports the interface name instead of expanding the full pipe/brand/extension chain, which shrinks inferred types in consumer code and speeds up type display.
|
|
10
|
+
|
|
11
|
+
No runtime or API surface changes; `brandedStringId` now returns `BrandedStringIdSchema<Id>` (same shape as before, just named).
|
|
12
|
+
|
|
3
13
|
## 4.0.0-beta.254
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -3,6 +3,9 @@ import type { Simplify } from "effect/Types";
|
|
|
3
3
|
import { type WithDefaults } from "./ext.js";
|
|
4
4
|
import { type B } from "./schema.js";
|
|
5
5
|
import type { NonEmptyString255Brand, NonEmptyStringBrand } from "./strings.js";
|
|
6
|
+
type BrandedStringSchema<A extends string> = S.Codec<A, string> & WithDefaults<S.Codec<A, string>>;
|
|
7
|
+
type ConstructorDefaultBaseSchema<A> = S.Codec<A, string> & S.WithoutConstructorDefault;
|
|
8
|
+
type WithConstructorDefaultSchema<A> = S.withConstructorDefault<ConstructorDefaultBaseSchema<A>>;
|
|
6
9
|
/**
|
|
7
10
|
* A string that is at least 1 character long and a maximum of 50.
|
|
8
11
|
*/
|
|
@@ -15,7 +18,9 @@ export type NonEmptyString50 = string & NonEmptyString50Brand;
|
|
|
15
18
|
/**
|
|
16
19
|
* A string that is at least 1 character long and a maximum of 50.
|
|
17
20
|
*/
|
|
18
|
-
export
|
|
21
|
+
export interface NonEmptyString50Schema extends BrandedStringSchema<NonEmptyString50> {
|
|
22
|
+
}
|
|
23
|
+
export declare const NonEmptyString50: NonEmptyString50Schema;
|
|
19
24
|
/**
|
|
20
25
|
* A string that is at least 1 character long and a maximum of 64.
|
|
21
26
|
*/
|
|
@@ -28,7 +33,9 @@ export type NonEmptyString64 = string & NonEmptyString64Brand;
|
|
|
28
33
|
/**
|
|
29
34
|
* A string that is at least 1 character long and a maximum of 64.
|
|
30
35
|
*/
|
|
31
|
-
export
|
|
36
|
+
export interface NonEmptyString64Schema extends BrandedStringSchema<NonEmptyString64> {
|
|
37
|
+
}
|
|
38
|
+
export declare const NonEmptyString64: NonEmptyString64Schema;
|
|
32
39
|
/**
|
|
33
40
|
* A string that is at least 1 character long and a maximum of 80.
|
|
34
41
|
*/
|
|
@@ -41,7 +48,9 @@ export type NonEmptyString80 = string & NonEmptyString80Brand;
|
|
|
41
48
|
/**
|
|
42
49
|
* A string that is at least 1 character long and a maximum of 80.
|
|
43
50
|
*/
|
|
44
|
-
export
|
|
51
|
+
export interface NonEmptyString80Schema extends BrandedStringSchema<NonEmptyString80> {
|
|
52
|
+
}
|
|
53
|
+
export declare const NonEmptyString80: NonEmptyString80Schema;
|
|
45
54
|
/**
|
|
46
55
|
* A string that is at least 1 character long and a maximum of 100.
|
|
47
56
|
*/
|
|
@@ -54,7 +63,9 @@ export type NonEmptyString100 = string & NonEmptyString100Brand;
|
|
|
54
63
|
/**
|
|
55
64
|
* A string that is at least 1 character long and a maximum of 100.
|
|
56
65
|
*/
|
|
57
|
-
export
|
|
66
|
+
export interface NonEmptyString100Schema extends BrandedStringSchema<NonEmptyString100> {
|
|
67
|
+
}
|
|
68
|
+
export declare const NonEmptyString100: NonEmptyString100Schema;
|
|
58
69
|
/**
|
|
59
70
|
* A string that is at least 3 character long and a maximum of 255.
|
|
60
71
|
*/
|
|
@@ -67,7 +78,9 @@ export type Min3String255 = string & Min3String255Brand;
|
|
|
67
78
|
/**
|
|
68
79
|
* A string that is at least 3 character long and a maximum of 255.
|
|
69
80
|
*/
|
|
70
|
-
export
|
|
81
|
+
export interface Min3String255Schema extends BrandedStringSchema<Min3String255> {
|
|
82
|
+
}
|
|
83
|
+
export declare const Min3String255: Min3String255Schema;
|
|
71
84
|
/**
|
|
72
85
|
* A string that is at least 6 characters long and a maximum of 50.
|
|
73
86
|
*/
|
|
@@ -83,25 +96,11 @@ export type StringId = string & StringIdBrand;
|
|
|
83
96
|
* `.withConstructorDefault` => fresh `nanoid()` (construction-only; not
|
|
84
97
|
* applied during decode — see file-level note).
|
|
85
98
|
*/
|
|
86
|
-
export
|
|
87
|
-
make: (s?: string) => StringId;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
92
|
-
* file-level note.
|
|
93
|
-
*/
|
|
94
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
95
|
-
}> & import("./brand.js").BrandedSchema<S.String, StringId> & {
|
|
96
|
-
make: (s?: string) => StringId;
|
|
97
|
-
/**
|
|
98
|
-
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
99
|
-
* only when the field is omitted from `.make(...)` input. NOT applied
|
|
100
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
101
|
-
* file-level note.
|
|
102
|
-
*/
|
|
103
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
104
|
-
};
|
|
99
|
+
export interface StringIdSchema extends BrandedStringSchema<StringId> {
|
|
100
|
+
readonly make: (s?: string) => StringId;
|
|
101
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<StringId>;
|
|
102
|
+
}
|
|
103
|
+
export declare const StringId: StringIdSchema;
|
|
105
104
|
/**
|
|
106
105
|
* Build a `StringId` schema whose values are required to start with a fixed
|
|
107
106
|
* `prefix` (joined with `separator`, default `-`).
|
|
@@ -110,68 +109,14 @@ export declare const StringId: WithDefaults<import("./brand.js").BrandedSchema<S
|
|
|
110
109
|
* prefixed id. Construction-only — not applied during decode; see file-level
|
|
111
110
|
* note.
|
|
112
111
|
*/
|
|
113
|
-
export declare function prefixedStringId<Type extends StringId>(): <Prefix extends string, Separator extends string = "-">(prefix: Prefix, name: string, separator?: Separator) => WithDefaults<S.refine<Type,
|
|
114
|
-
make: (s?: string) => StringId;
|
|
115
|
-
/**
|
|
116
|
-
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
117
|
-
* only when the field is omitted from `.make(...)` input. NOT applied
|
|
118
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
119
|
-
* file-level note.
|
|
120
|
-
*/
|
|
121
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
122
|
-
}> & import("./brand.js").BrandedSchema<S.String, StringId> & {
|
|
123
|
-
make: (s?: string) => StringId;
|
|
124
|
-
/**
|
|
125
|
-
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
126
|
-
* only when the field is omitted from `.make(...)` input. NOT applied
|
|
127
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
128
|
-
* file-level note.
|
|
129
|
-
*/
|
|
130
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
131
|
-
}>> & S.refine<Type, WithDefaults<import("./brand.js").BrandedSchema<S.String, StringId> & {
|
|
132
|
-
make: (s?: string) => StringId;
|
|
133
|
-
/**
|
|
134
|
-
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
135
|
-
* only when the field is omitted from `.make(...)` input. NOT applied
|
|
136
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
137
|
-
* file-level note.
|
|
138
|
-
*/
|
|
139
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
140
|
-
}> & import("./brand.js").BrandedSchema<S.String, StringId> & {
|
|
141
|
-
make: (s?: string) => StringId;
|
|
142
|
-
/**
|
|
143
|
-
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
144
|
-
* only when the field is omitted from `.make(...)` input. NOT applied
|
|
145
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
146
|
-
* file-level note.
|
|
147
|
-
*/
|
|
148
|
-
withConstructorDefault: S.withConstructorDefault<import("./brand.js").BrandedSchema<S.String, StringId>>;
|
|
149
|
-
}> & PrefixedStringUtils<Type, Prefix, Separator>;
|
|
112
|
+
export declare function prefixedStringId<Type extends StringId>(): <Prefix extends string, Separator extends string = "-">(prefix: Prefix, name: string, separator?: Separator) => WithDefaults<S.refine<Type, import("./brand.js").BrandedSchema<S.String, StringId>>> & S.refine<Type, import("./brand.js").BrandedSchema<S.String, StringId>> & PrefixedStringUtils<Type, Prefix, Separator>;
|
|
150
113
|
/**
|
|
151
114
|
* Build a branded `StringId` schema for the given branded `Id` type.
|
|
152
115
|
*
|
|
153
116
|
* Exposes `.withConstructorDefault` that mints a fresh `nanoid()`-shaped id.
|
|
154
117
|
* Construction-only — not applied during decode; see file-level note.
|
|
155
118
|
*/
|
|
156
|
-
export declare const brandedStringId: <Id>() =>
|
|
157
|
-
/**
|
|
158
|
-
* Construction-only default: fresh `nanoid()`-shaped id. Applied only
|
|
159
|
-
* when the field is omitted from `.make(...)` input. NOT applied
|
|
160
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
161
|
-
* file-level note.
|
|
162
|
-
*/
|
|
163
|
-
withConstructorDefault: S.withConstructorDefault<S.Codec<Id, string> & S.WithoutConstructorDefault>;
|
|
164
|
-
make: () => Id;
|
|
165
|
-
} & WithDefaults<S.Codec<Id, string, never, never>>> & S.Codec<Id, string, never, never> & {
|
|
166
|
-
/**
|
|
167
|
-
* Construction-only default: fresh `nanoid()`-shaped id. Applied only
|
|
168
|
-
* when the field is omitted from `.make(...)` input. NOT applied
|
|
169
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
170
|
-
* file-level note.
|
|
171
|
-
*/
|
|
172
|
-
withConstructorDefault: S.withConstructorDefault<S.Codec<Id, string> & S.WithoutConstructorDefault>;
|
|
173
|
-
make: () => Id;
|
|
174
|
-
} & WithDefaults<S.Codec<Id, string, never, never>>;
|
|
119
|
+
export declare const brandedStringId: <Id>() => BrandedStringIdSchema<Id>;
|
|
175
120
|
export interface PrefixedStringUtils<Type extends StringId, Prefix extends string, Separator extends string> {
|
|
176
121
|
readonly make: () => Type;
|
|
177
122
|
readonly unsafeFrom: (str: string) => Type;
|
|
@@ -182,10 +127,17 @@ export interface PrefixedStringUtils<Type extends StringId, Prefix extends strin
|
|
|
182
127
|
* field is omitted from `.make(...)` input. NOT applied during decode —
|
|
183
128
|
* cannot be used to JIT-migrate database fields. See file-level note.
|
|
184
129
|
*/
|
|
185
|
-
readonly withConstructorDefault:
|
|
130
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<Type>;
|
|
131
|
+
}
|
|
132
|
+
export interface BrandedStringIdSchema<Id> extends S.Codec<Id, string>, WithDefaults<S.Codec<Id, string>> {
|
|
133
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<Id>;
|
|
134
|
+
readonly make: () => Id;
|
|
186
135
|
}
|
|
187
136
|
export interface UrlBrand extends Simplify<B.Brand<"Url"> & NonEmptyStringBrand> {
|
|
188
137
|
}
|
|
189
138
|
export type Url = string & UrlBrand;
|
|
190
|
-
export
|
|
191
|
-
|
|
139
|
+
export interface UrlSchema extends BrandedStringSchema<Url> {
|
|
140
|
+
}
|
|
141
|
+
export declare const Url: UrlSchema;
|
|
142
|
+
export {};
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZVN0cmluZ3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWEvbW9yZVN0cmluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBSTVDLE9BQU8sRUFBbUIsS0FBSyxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRS9FLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxTQUFTLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUNsRyxLQUFLLDRCQUE0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMseUJBQXlCLENBQUE7QUFDdkYsS0FBSyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLHNCQUFzQixDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFHaEc7O0dBRUc7QUFDSCxNQUFNLFdBQVcscUJBQXNCLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxxQkFBcUIsQ0FBQztDQUFHO0FBRS9HOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQTtBQUU3RDs7R0FFRztBQUNILE1BQU0sV0FBVyxzQkFBdUIsU0FBUSxtQkFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moreStrings.d.ts","sourceRoot":"","sources":["../../src/Schema/moreStrings.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAI5C,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"moreStrings.d.ts","sourceRoot":"","sources":["../../src/Schema/moreStrings.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,60 +7,41 @@ import validator from "validator";
|
|
|
7
7
|
import { fromBrand, nominal } from "./brand.js";
|
|
8
8
|
import { withDefaultMake } from "./ext.js";
|
|
9
9
|
const nonEmptyString = S.NonEmptyString;
|
|
10
|
-
/**
|
|
11
|
-
* A string that is at least 1 character long and a maximum of 50.
|
|
12
|
-
*/
|
|
13
10
|
export const NonEmptyString50 = nonEmptyString.pipe(S.check(S.isMaxLength(50)), fromBrand(nominal(), {
|
|
14
11
|
identifier: "NonEmptyString50",
|
|
15
12
|
jsonSchema: {}
|
|
16
13
|
}), withDefaultMake);
|
|
17
|
-
/**
|
|
18
|
-
* A string that is at least 1 character long and a maximum of 64.
|
|
19
|
-
*/
|
|
20
14
|
export const NonEmptyString64 = nonEmptyString.pipe(S.check(S.isMaxLength(64)), fromBrand(nominal(), {
|
|
21
15
|
identifier: "NonEmptyString64",
|
|
22
16
|
jsonSchema: {}
|
|
23
17
|
}), withDefaultMake);
|
|
24
|
-
/**
|
|
25
|
-
* A string that is at least 1 character long and a maximum of 80.
|
|
26
|
-
*/
|
|
27
18
|
export const NonEmptyString80 = nonEmptyString.pipe(S.check(S.isMaxLength(80)), fromBrand(nominal(), {
|
|
28
19
|
identifier: "NonEmptyString80",
|
|
29
20
|
jsonSchema: {}
|
|
30
21
|
}), withDefaultMake);
|
|
31
|
-
/**
|
|
32
|
-
* A string that is at least 1 character long and a maximum of 100.
|
|
33
|
-
*/
|
|
34
22
|
export const NonEmptyString100 = nonEmptyString.pipe(S.check(S.isMaxLength(100)), fromBrand(nominal(), {
|
|
35
23
|
identifier: "NonEmptyString100",
|
|
36
24
|
jsonSchema: {}
|
|
37
25
|
}), withDefaultMake);
|
|
38
|
-
/**
|
|
39
|
-
* A string that is at least 3 character long and a maximum of 255.
|
|
40
|
-
*/
|
|
41
26
|
export const Min3String255 = pipe(S.String, S.check(S.isMinLength(3), S.isMaxLength(255)), fromBrand(nominal(), {
|
|
42
27
|
identifier: "Min3String255",
|
|
43
28
|
jsonSchema: {}
|
|
44
29
|
}), withDefaultMake);
|
|
45
|
-
const makeStringId = (s) => s !== undefined ? S.decodeSync(StringId)(s) : nanoid();
|
|
46
30
|
const minLength = 6;
|
|
47
31
|
const maxLength = 50;
|
|
48
32
|
const size = 21;
|
|
49
33
|
const length = 10 * size;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
.map((_) => customRandom(urlAlphabet, size, (size) => _.subarray(0, size))());
|
|
53
|
-
/**
|
|
54
|
-
* A string that is at least 6 characters long and a maximum of 50.
|
|
55
|
-
*
|
|
56
|
-
* `.withConstructorDefault` => fresh `nanoid()` (construction-only; not
|
|
57
|
-
* applied during decode — see file-level note).
|
|
58
|
-
*/
|
|
59
|
-
export const StringId = extendM(pipe(S.String, S.check(S.isMinLength(minLength), S.isMaxLength(maxLength)), fromBrand(nominal(), {
|
|
34
|
+
/** Base `StringId` codec (without constructor default extensions). */
|
|
35
|
+
const StringIdSchemaBase = pipe(S.String, S.check(S.isMinLength(minLength), S.isMaxLength(maxLength)), fromBrand(nominal(), {
|
|
60
36
|
identifier: "StringId",
|
|
61
37
|
toArbitrary: () => (fc) => StringIdArb()(fc),
|
|
62
38
|
jsonSchema: {}
|
|
63
|
-
}))
|
|
39
|
+
}));
|
|
40
|
+
const makeStringId = (s) => s !== undefined ? S.decodeSync(StringIdSchemaBase)(s) : nanoid();
|
|
41
|
+
const StringIdArb = () => (fc) => fc
|
|
42
|
+
.uint8Array({ minLength: length, maxLength: length })
|
|
43
|
+
.map((_) => customRandom(urlAlphabet, size, (size) => _.subarray(0, size))());
|
|
44
|
+
export const StringId = extendM(StringIdSchemaBase, (s) => ({
|
|
64
45
|
make: makeStringId,
|
|
65
46
|
/**
|
|
66
47
|
* Construction-only default: fresh `nanoid()`-shaped `StringId`. Applied
|
|
@@ -86,7 +67,7 @@ export function prefixedStringId() {
|
|
|
86
67
|
const pref = `${prefix}${separator ?? "-"}`;
|
|
87
68
|
const arb = () => (fc) => StringIdArb()(fc).map((x) => (pref + x.substring(0, 50 - pref.length)));
|
|
88
69
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
89
|
-
const s =
|
|
70
|
+
const s = StringIdSchemaBase
|
|
90
71
|
.pipe(S.refine((x) => x.startsWith(pref), {
|
|
91
72
|
identifier: name
|
|
92
73
|
}), S.annotate({
|
|
@@ -136,4 +117,4 @@ export const Url = S
|
|
|
136
117
|
}), S.annotate({
|
|
137
118
|
toArbitrary: () => (fc) => fc.webUrl().map((_) => _)
|
|
138
119
|
}), withDefaultMake);
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZVN0cmluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL21vcmVTdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFFbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzFELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFxQixNQUFNLFVBQVUsQ0FBQTtBQU83RCxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFBO0FBZ0J2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBMkIsY0FBYyxDQUFDLElBQUksQ0FDekUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFCLFNBQVMsQ0FBbUIsT0FBTyxFQUFvQixFQUFFO0lBQ3ZELFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsVUFBVSxFQUFFLEVBQUU7Q0FDZixDQUFDLEVBQ0YsZUFBZSxDQUNoQixDQUFBO0FBZ0JELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUEyQixjQUFjLENBQUMsSUFBSSxDQUN6RSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDMUIsU0FBUyxDQUFtQixPQUFPLEVBQW9CLEVBQUU7SUFDdkQsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixVQUFV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
|
package/dist/Schema/numbers.d.ts
CHANGED
|
@@ -1,86 +1,53 @@
|
|
|
1
1
|
import * as S from "effect/Schema";
|
|
2
2
|
import type { Simplify } from "effect/Types";
|
|
3
|
+
import { type WithDefaults } from "./ext.js";
|
|
3
4
|
import { type B } from "./schema.js";
|
|
5
|
+
type BrandedNumberSchema<A extends number> = S.Codec<A, number> & WithDefaults<S.Codec<A, number>>;
|
|
6
|
+
type BrandedNumberSchemaWithConstructorDefault<A extends number> = BrandedNumberSchema<A> & {
|
|
7
|
+
readonly withConstructorDefault: S.Codec<A, number>;
|
|
8
|
+
};
|
|
4
9
|
export interface PositiveIntBrand extends Simplify<B.Brand<"PositiveInt"> & NonNegativeIntBrand & PositiveNumberBrand> {
|
|
5
10
|
}
|
|
6
11
|
/** Positive integer. `.withConstructorDefault` => `1` (construction-only). */
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
11
|
-
* JIT-migrate database fields. See file-level note.
|
|
12
|
-
*/
|
|
13
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Int, PositiveInt>> & import("./brand.js").BrandedSchema<S.Int, PositiveInt>>;
|
|
14
|
-
};
|
|
12
|
+
export interface PositiveIntSchema extends BrandedNumberSchemaWithConstructorDefault<PositiveInt> {
|
|
13
|
+
}
|
|
14
|
+
export declare const PositiveInt: PositiveIntSchema;
|
|
15
15
|
export type PositiveInt = number & PositiveIntBrand;
|
|
16
16
|
export interface NonNegativeIntBrand extends Simplify<B.Brand<"NonNegativeInt"> & IntBrand & NonNegativeNumberBrand> {
|
|
17
17
|
}
|
|
18
18
|
/** Non-negative integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
23
|
-
* JIT-migrate database fields. See file-level note.
|
|
24
|
-
*/
|
|
25
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Int, NonNegativeInt>> & import("./brand.js").BrandedSchema<S.Int, NonNegativeInt>>;
|
|
26
|
-
};
|
|
19
|
+
export interface NonNegativeIntSchema extends BrandedNumberSchemaWithConstructorDefault<NonNegativeInt> {
|
|
20
|
+
}
|
|
21
|
+
export declare const NonNegativeInt: NonNegativeIntSchema;
|
|
27
22
|
export type NonNegativeInt = number & NonNegativeIntBrand;
|
|
28
23
|
export interface IntBrand extends Simplify<B.Brand<"Int">> {
|
|
29
24
|
}
|
|
30
25
|
/** Integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
31
|
-
export
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
35
|
-
* JIT-migrate database fields. See file-level note.
|
|
36
|
-
*/
|
|
37
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Int, Int>> & import("./brand.js").BrandedSchema<S.Int, Int>>;
|
|
38
|
-
};
|
|
26
|
+
export interface IntSchema extends BrandedNumberSchemaWithConstructorDefault<Int> {
|
|
27
|
+
}
|
|
28
|
+
export declare const Int: IntSchema;
|
|
39
29
|
export type Int = number & IntBrand;
|
|
40
30
|
export interface PositiveNumberBrand extends Simplify<B.Brand<"PositiveNumber"> & NonNegativeNumberBrand> {
|
|
41
31
|
}
|
|
42
32
|
/** Positive finite number. `.withConstructorDefault` => `1` (construction-only). */
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
47
|
-
* JIT-migrate database fields. See file-level note.
|
|
48
|
-
*/
|
|
49
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Finite, PositiveNumber>> & import("./brand.js").BrandedSchema<S.Finite, PositiveNumber>>;
|
|
50
|
-
};
|
|
33
|
+
export interface PositiveNumberSchema extends BrandedNumberSchemaWithConstructorDefault<PositiveNumber> {
|
|
34
|
+
}
|
|
35
|
+
export declare const PositiveNumber: PositiveNumberSchema;
|
|
51
36
|
export type PositiveNumber = number & PositiveNumberBrand;
|
|
52
37
|
export interface NonNegativeNumberBrand extends Simplify<B.Brand<"NonNegativeNumber">> {
|
|
53
38
|
}
|
|
54
39
|
/** Non-negative finite number. `.withConstructorDefault` => `0` (construction-only). */
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
59
|
-
* JIT-migrate database fields. See file-level note.
|
|
60
|
-
*/
|
|
61
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Finite, NonNegativeNumber>> & import("./brand.js").BrandedSchema<S.Finite, NonNegativeNumber>>;
|
|
62
|
-
};
|
|
40
|
+
export interface NonNegativeNumberSchema extends BrandedNumberSchemaWithConstructorDefault<NonNegativeNumber> {
|
|
41
|
+
}
|
|
42
|
+
export declare const NonNegativeNumber: NonNegativeNumberSchema;
|
|
63
43
|
export type NonNegativeNumber = number & NonNegativeNumberBrand;
|
|
64
44
|
/** @deprecated Not an actual decimal */
|
|
65
|
-
export declare const NonNegativeDecimal:
|
|
66
|
-
/**
|
|
67
|
-
* Construction-only default `0`. Applied only when the field is omitted
|
|
68
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
69
|
-
* JIT-migrate database fields. See file-level note.
|
|
70
|
-
*/
|
|
71
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Finite, NonNegativeNumber>> & import("./brand.js").BrandedSchema<S.Finite, NonNegativeNumber>>;
|
|
72
|
-
};
|
|
45
|
+
export declare const NonNegativeDecimal: NonNegativeNumberSchema;
|
|
73
46
|
/** @deprecated Not an actual decimal */
|
|
74
47
|
export type NonNegativeDecimal = NonNegativeNumber;
|
|
75
48
|
/** @deprecated Not an actual decimal */
|
|
76
|
-
export declare const PositiveDecimal:
|
|
77
|
-
/**
|
|
78
|
-
* Construction-only default `1`. Applied only when the field is omitted
|
|
79
|
-
* from `.make(...)` input. NOT applied during decode — cannot be used to
|
|
80
|
-
* JIT-migrate database fields. See file-level note.
|
|
81
|
-
*/
|
|
82
|
-
withConstructorDefault: S.withConstructorDefault<import("./ext.js").WithDefaults<import("./brand.js").BrandedSchema<S.Finite, PositiveNumber>> & import("./brand.js").BrandedSchema<S.Finite, PositiveNumber>>;
|
|
83
|
-
};
|
|
49
|
+
export declare const PositiveDecimal: PositiveNumberSchema;
|
|
84
50
|
/** @deprecated Not an actual decimal */
|
|
85
51
|
export type PositiveDecimal = PositiveNumber;
|
|
86
|
-
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9udW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sS0FBSyxDQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1QyxPQUFPLEVBQW1CLEtBQUssWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzdELE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxLQUFLLG1CQUFtQixDQUFDLENBQUMsU0FBUyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7QUFDbEcsS0FBSyx5Q0FBeUMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxHQUFHO0lBQzFGLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtDQUNwRCxDQUFBO0FBRUQsTUFBTSxXQUFXLGdCQUNmLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7Q0FDcEY7QUFDRiw4RUFBOEU7QUFDOUUsTUFBTSxXQUFXLGlCQUFrQixTQUFRLHlDQUF5QyxDQUFDLFdBQVcsQ0FBQztDQUFHO0FBQ3BHLGVBQU8sTUFBTSxXQUFXLEVBQUUsaUJBY3pCLENBQUE7QUFDRCxNQUFNLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQTtBQUVuRCxNQUFNLFdBQVcsbUJBQW9CLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLEdBQUcsc0JBQXNCLENBQUM7Q0FBRztBQUN2SCxrRkFBa0Y7QUFDbEYsTUFBTSxXQUFXLG9CQUFxQixTQUFRLHlDQUF5QyxDQUFDLGNBQWMsQ0FBQztDQUFHO0FBQzFHLGVBQU8sTUFBTSxjQUFjLEVBQUUsb0JBaUI1QixDQUFBO0FBQ0QsTUFBTSxNQUFNLGNBQWMsR0FBRyxNQUFNLEdBQUcsbUJBQW1CLENBQUE7QUFFekQsTUFBTSxXQUFXLFFBQVMsU0FBUSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztDQUFHO0FBQzdELHFFQUFxRTtBQUNyRSxNQUFNLFdBQVcsU0FBVSxTQUFRLHlDQUF5QyxDQUFDLEdBQUcsQ0FBQztDQUFHO0FBQ3BGLGVBQU8sTUFBTSxHQUFHLEVBQUUsU0FVakIsQ0FBQTtBQUNELE1BQU0sTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQTtBQUVuQyxNQUFNLFdBQVcsbUJBQW9CLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxzQkFBc0IsQ0FBQztDQUFHO0FBQzVHLG9GQUFvRjtBQUNwRixNQUFNLFdBQVcsb0JBQXFCLFNBQVEseUNBQXlDLENBQUMsY0FBYyxDQUFDO0NBQUc7QUFDMUcsZUFBTyxNQUFNLGNBQWMsRUFBRSxvQkFpQjVCLENBQUE7QUFDRCxNQUFNLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQTtBQUV6RCxNQUFNLFdBQVcsc0JBQXVCLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztDQUFHO0FBQ3pGLHdGQUF3RjtBQUN4RixNQUFNLFdBQVcsdUJBQXdCLFNBQVEseUNBQXlDLENBQUMsaUJBQWlCLENBQUM7Q0FBRztBQUNoSCxlQUFPLE1BQU0saUJBQWlCLEVBQUUsdUJBbUIvQixDQUFBO0FBQ0QsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQTtBQUUvRCx3Q0FBd0M7QUFDeEMsZUFBTyxNQUFNLGtCQUFrQix5QkFBb0IsQ0FBQTtBQUNuRCx3Q0FBd0M7QUFDeEMsTUFBTSxNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixDQUFBO0FBRWxELHdDQUF3QztBQUN4QyxlQUFPLE1BQU0sZUFBZSxzQkFBaUIsQ0FBQTtBQUM3Qyx3Q0FBd0M7QUFDeEMsTUFBTSxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/Schema/numbers.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../src/Schema/numbers.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,aAAa,CAAA;AAEpC,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAClG,KAAK,yCAAyC,CAAC,CAAC,SAAS,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAC1F,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,WAAW,gBACf,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;CACpF;AACF,8EAA8E;AAC9E,MAAM,WAAW,iBAAkB,SAAQ,yCAAyC,CAAC,WAAW,CAAC;CAAG;AACpG,eAAO,MAAM,WAAW,EAAE,iBAczB,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,kFAAkF;AAClF,MAAM,WAAW,oBAAqB,SAAQ,yCAAyC,CAAC,cAAc,CAAC;CAAG;AAC1G,eAAO,MAAM,cAAc,EAAE,oBAiB5B,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,qEAAqE;AACrE,MAAM,WAAW,SAAU,SAAQ,yCAAyC,CAAC,GAAG,CAAC;CAAG;AACpF,eAAO,MAAM,GAAG,EAAE,SAUjB,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,oFAAoF;AACpF,MAAM,WAAW,oBAAqB,SAAQ,yCAAyC,CAAC,cAAc,CAAC;CAAG;AAC1G,eAAO,MAAM,cAAc,EAAE,oBAiB5B,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,wFAAwF;AACxF,MAAM,WAAW,uBAAwB,SAAQ,yCAAyC,CAAC,iBAAiB,CAAC;CAAG;AAChH,eAAO,MAAM,iBAAiB,EAAE,uBAmB/B,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,sBAAsB,CAAA;AAE/D,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,yBAAoB,CAAA;AACnD,wCAAwC;AACxC,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AAElD,wCAAwC;AACxC,eAAO,MAAM,eAAe,sBAAiB,CAAA;AAC7C,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAA"}
|
package/dist/Schema/numbers.js
CHANGED
|
@@ -13,7 +13,6 @@ import * as Effect from "effect/Effect";
|
|
|
13
13
|
import * as S from "effect/Schema";
|
|
14
14
|
import { fromBrand, nominal } from "./brand.js";
|
|
15
15
|
import { withDefaultMake } from "./ext.js";
|
|
16
|
-
/** Positive integer. `.withConstructorDefault` => `1` (construction-only). */
|
|
17
16
|
export const PositiveInt = extendM(S.Int.pipe(S.check(S.isGreaterThan(0)), fromBrand(nominal(), { identifier: "PositiveInt", jsonSchema: {} }), withDefaultMake), (s) => ({
|
|
18
17
|
/**
|
|
19
18
|
* Construction-only default `1`. Applied only when the field is omitted
|
|
@@ -22,7 +21,6 @@ export const PositiveInt = extendM(S.Int.pipe(S.check(S.isGreaterThan(0)), fromB
|
|
|
22
21
|
*/
|
|
23
22
|
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(1))))
|
|
24
23
|
}));
|
|
25
|
-
/** Non-negative integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
26
24
|
export const NonNegativeInt = extendM(S.Int.pipe(S.check(S.isGreaterThanOrEqualTo(0)), fromBrand(nominal(), {
|
|
27
25
|
identifier: "NonNegativeInt",
|
|
28
26
|
jsonSchema: {}
|
|
@@ -34,7 +32,6 @@ export const NonNegativeInt = extendM(S.Int.pipe(S.check(S.isGreaterThanOrEqualT
|
|
|
34
32
|
*/
|
|
35
33
|
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(0))))
|
|
36
34
|
}));
|
|
37
|
-
/** Integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
38
35
|
export const Int = extendM(S.Int.pipe(fromBrand(nominal(), { identifier: "Int", jsonSchema: {} }), withDefaultMake), (s) => ({
|
|
39
36
|
/**
|
|
40
37
|
* Construction-only default `0`. Applied only when the field is omitted
|
|
@@ -43,7 +40,6 @@ export const Int = extendM(S.Int.pipe(fromBrand(nominal(), { identifier: "Int",
|
|
|
43
40
|
*/
|
|
44
41
|
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(0))))
|
|
45
42
|
}));
|
|
46
|
-
/** Positive finite number. `.withConstructorDefault` => `1` (construction-only). */
|
|
47
43
|
export const PositiveNumber = extendM(S.Finite.pipe(S.check(S.isGreaterThan(0)), fromBrand(nominal(), {
|
|
48
44
|
identifier: "PositiveNumber",
|
|
49
45
|
jsonSchema: {}
|
|
@@ -55,7 +51,6 @@ export const PositiveNumber = extendM(S.Finite.pipe(S.check(S.isGreaterThan(0)),
|
|
|
55
51
|
*/
|
|
56
52
|
withConstructorDefault: s.pipe(S.withConstructorDefault(Effect.sync(() => s(1))))
|
|
57
53
|
}));
|
|
58
|
-
/** Non-negative finite number. `.withConstructorDefault` => `0` (construction-only). */
|
|
59
54
|
export const NonNegativeNumber = extendM(S
|
|
60
55
|
.Finite
|
|
61
56
|
.pipe(S.check(S.isGreaterThanOrEqualTo(0)), fromBrand(nominal(), {
|
|
@@ -73,4 +68,4 @@ export const NonNegativeNumber = extendM(S
|
|
|
73
68
|
export const NonNegativeDecimal = NonNegativeNumber;
|
|
74
69
|
/** @deprecated Not an actual decimal */
|
|
75
70
|
export const PositiveDecimal = PositiveNumber;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWEvbnVtYmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFDSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFFbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBcUIsTUFBTSxVQUFVLENBQUE7QUFhN0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFzQixPQUFPLENBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMzQixTQUFTLENBQWMsT0FBTyxFQUFlLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM3RixlQUFlLENBQ2hCLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDTjs7OztPQUlHO0lBQ0gsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2xGLENBQUMsQ0FDSCxDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUF5QixPQUFPLENBQ3pELENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BDLFNB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
|
package/dist/Schema/strings.d.ts
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import type * as B from "effect/Brand";
|
|
2
2
|
import * as S from "effect/Schema";
|
|
3
3
|
import type { Simplify } from "effect/Types";
|
|
4
|
+
import { type WithDefaults } from "./ext.js";
|
|
5
|
+
type BrandedStringSchema<A extends string> = S.Codec<A, string> & WithDefaults<S.Codec<A, string>>;
|
|
4
6
|
export type NonEmptyStringBrand = B.Brand<"NonEmptyString">;
|
|
5
7
|
export type NonEmptyString = string & NonEmptyStringBrand;
|
|
6
|
-
export
|
|
8
|
+
export interface NonEmptyStringSchema extends BrandedStringSchema<NonEmptyString> {
|
|
9
|
+
}
|
|
10
|
+
export declare const NonEmptyString: NonEmptyStringSchema;
|
|
7
11
|
export interface NonEmptyString64kBrand extends Simplify<B.Brand<"NonEmptyString64k"> & NonEmptyStringBrand> {
|
|
8
12
|
}
|
|
9
13
|
export type NonEmptyString64k = string & NonEmptyString64kBrand;
|
|
10
|
-
export
|
|
14
|
+
export interface NonEmptyString64kSchema extends BrandedStringSchema<NonEmptyString64k> {
|
|
15
|
+
}
|
|
16
|
+
export declare const NonEmptyString64k: NonEmptyString64kSchema;
|
|
11
17
|
export interface NonEmptyString2kBrand extends Simplify<B.Brand<"NonEmptyString2k"> & NonEmptyString64kBrand> {
|
|
12
18
|
}
|
|
13
19
|
export type NonEmptyString2k = string & NonEmptyString2kBrand;
|
|
14
|
-
export
|
|
20
|
+
export interface NonEmptyString2kSchema extends BrandedStringSchema<NonEmptyString2k> {
|
|
21
|
+
}
|
|
22
|
+
export declare const NonEmptyString2k: NonEmptyString2kSchema;
|
|
15
23
|
export interface NonEmptyString255Brand extends Simplify<B.Brand<"NonEmptyString255"> & NonEmptyString2kBrand> {
|
|
16
24
|
}
|
|
17
25
|
export type NonEmptyString255 = string & NonEmptyString255Brand;
|
|
18
|
-
export
|
|
19
|
-
|
|
26
|
+
export interface NonEmptyString255Schema extends BrandedStringSchema<NonEmptyString255> {
|
|
27
|
+
}
|
|
28
|
+
export declare const NonEmptyString255: NonEmptyString255Schema;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVDLE9BQU8sRUFBbUIsS0FBSyxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFN0QsS0FBSyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBRWxHLE1BQU0sTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFDM0QsTUFBTSxNQUFNLGNBQWMsR0FBRyxNQUFNLEdBQUcsbUJBQW1CLENBQUE7QUFDekQsTUFBTSxXQUFXLG9CQUFxQixTQUFRLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztDQUFHO0FBQ3BGLGVBQU8sTUFBTSxjQUFjLEVBQUUsb0JBUTFCLENBQUE7QUFFSCxNQUFNLFdBQVcsc0JBQXVCLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztDQUFHO0FBQy9HLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLEdBQUcsc0JBQXNCLENBQUE7QUFDL0QsTUFBTSxXQUFXLHVCQUF3QixTQUFRLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO0NBQUc7QUFDMUYsZUFBTyxNQUFNLGlCQUFpQixFQUFFLHVCQVM3QixDQUFBO0FBRUgsTUFBTSxXQUFXLHFCQUFzQixTQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsc0JBQXNCLENBQUM7Q0FBRztBQUNoSCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxHQUFHLHFCQUFxQixDQUFBO0FBQzdELE1BQU0sV0FBVyxzQkFBdUIsU0FBUSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztDQUFHO0FBQ3hGLGVBQU8sTUFBTSxnQkFBZ0IsRUFBRSxzQkFTNUIsQ0FBQTtBQUVILE1BQU0sV0FBVyxzQkFBdUIsU0FBUSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO0NBQUc7QUFDakgsTUFBTSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQTtBQUMvRCxNQUFNLFdBQVcsdUJBQXdCLFNBQVEsbUJBQW1CLENBQUMsaUJBQWlCLENBQUM7Q0FBRztBQUMxRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsdUJBUzdCLENBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/Schema/strings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/Schema/strings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAE7D,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAElG,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,mBAAmB,CAAA;AACzD,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB,CAAC,cAAc,CAAC;CAAG;AACpF,eAAO,MAAM,cAAc,EAAE,oBAQ1B,CAAA;AAEH,MAAM,WAAW,sBAAuB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;CAAG;AAC/G,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,sBAAsB,CAAA;AAC/D,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;CAAG;AAC1F,eAAO,MAAM,iBAAiB,EAAE,uBAS7B,CAAA;AAEH,MAAM,WAAW,qBAAsB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,sBAAsB,CAAC;CAAG;AAChH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,qBAAqB,CAAA;AAC7D,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB,CAAC,gBAAgB,CAAC;CAAG;AACxF,eAAO,MAAM,gBAAgB,EAAE,sBAS5B,CAAA;AAEH,MAAM,WAAW,sBAAuB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,qBAAqB,CAAC;CAAG;AACjH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,sBAAsB,CAAA;AAC/D,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;CAAG;AAC1F,eAAO,MAAM,iBAAiB,EAAE,uBAS7B,CAAA"}
|
package/dist/Schema/strings.js
CHANGED
|
@@ -25,4 +25,4 @@ export const NonEmptyString255 = S
|
|
|
25
25
|
identifier: "NonEmptyString255",
|
|
26
26
|
jsonSchema: {}
|
|
27
27
|
}), withDefaultMake);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWEvc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFxQixNQUFNLFVBQVUsQ0FBQTtBQU83RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXlCLENBQUM7S0FDbEQsY0FBYztLQUNkLElBQUksQ0FDSCxTQUFTLENBQWlCLE9BQU8sRUFBa0IsRUFBRTtJQUNuRCxVQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQyxFQUNGLGVBQWUsQ0FDaEIsQ0FBQTtBQUtILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUE0QixDQUFDO0tBQ3hELGNBQWM7S0FDZCxJQUFJLENBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUNqQyxTQUFTLENBQW9CLE9BQU8sRUFBcUIsRUFBRTtJQUN6RCxVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQyxFQUNGLGVBQWUsQ0FDaEIsQ0FBQTtBQUtILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUEyQixDQUFDO0tBQ3RELGNBQWM7S0FDZCxJQUFJLENBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUNoQyxTQUFTLENBQW1CLE9BQU8sRUFBb0IsRUFBRTtJQUN2RCxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQyxFQUNGLGVBQWUsQ0FDaEIsQ0FBQTtBQUtILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUE0QixDQUFDO0tBQ3hELGNBQWM7S0FDZCxJQUFJLENBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzNCLFNBQVMsQ0FBb0IsT0FBTyxFQUFxQixFQUFFO0lBQ3pELFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsVUFBVSxFQUFFLEVBQUU7Q0FDZixDQUFDLEVBQ0YsZUFBZSxDQUNoQixDQUFBIn0=
|
package/dist/ids.d.ts
CHANGED
|
@@ -44,11 +44,5 @@ export type UserProfileId = string & UserProfileIdBrand;
|
|
|
44
44
|
* Exposes `.withConstructorDefault` (fresh id) — construction-only; not
|
|
45
45
|
* applied during decode. See `./Schema/ext.ts` for the full policy note.
|
|
46
46
|
*/
|
|
47
|
-
export declare const UserProfileId: S.
|
|
48
|
-
|
|
49
|
-
make: () => UserProfileId;
|
|
50
|
-
} & S.WithDefaults<Codec<UserProfileId, string, never, never>>> & Codec<UserProfileId, string, never, never> & {
|
|
51
|
-
withConstructorDefault: S.withConstructorDefault<Codec<UserProfileId, string, never, never> & S.WithoutConstructorDefault>;
|
|
52
|
-
make: () => UserProfileId;
|
|
53
|
-
} & S.WithDefaults<Codec<UserProfileId, string, never, never>>;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsS0FBSyxLQUFLLEVBQUUsaUJBQWlCLEVBQVksS0FBSyxhQUFhLEVBQW1CLE1BQU0sbUJBQW1CLENBQUE7QUFDakksT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVDLE9BQU8sS0FBSyxDQUFDLE1BQU0sYUFBYSxDQUFBO0FBR2hDLE1BQU0sV0FBVyxjQUFlLFNBQVEsYUFBYTtJQUNuRCxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU8sTUFBTSxDQUFBO0NBQ2xDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxlQUFPLE1BQU0sU0FBUztnQkFJa0IsaUJBQWlCO0lBR25EOzs7OztPQUtHOzs7O0lBTEg7Ozs7O09BS0c7O0NBS2UsQ0FBQTtBQUV4QixNQUFNLFdBQVcsa0JBQW1CLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDO0NBQUc7QUFDakcsTUFBTSxNQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsa0JBQWtCLENBQUE7QUFDdkQ7Ozs7O0dBS0c7QUFDSCxlQUFPLE1BQU0sYUFBYTs7Ozs7OzhEQUFtQyxDQUFBIn0=
|
|
47
|
+
export declare const UserProfileId: S.BrandedStringIdSchema<UserProfileId>;
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsS0FBSyxLQUFLLEVBQUUsaUJBQWlCLEVBQVksS0FBSyxhQUFhLEVBQW1CLE1BQU0sbUJBQW1CLENBQUE7QUFDakksT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFakQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVDLE9BQU8sS0FBSyxDQUFDLE1BQU0sYUFBYSxDQUFBO0FBR2hDLE1BQU0sV0FBVyxjQUFlLFNBQVEsYUFBYTtJQUNuRCxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU8sTUFBTSxDQUFBO0NBQ2xDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxlQUFPLE1BQU0sU0FBUztnQkFJa0IsaUJBQWlCO0lBR25EOzs7OztPQUtHOzs7O0lBTEg7Ozs7O09BS0c7O0NBS2UsQ0FBQTtBQUV4QixNQUFNLFdBQVcsa0JBQW1CLFNBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDO0NBQUc7QUFDakcsTUFBTSxNQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsa0JBQWtCLENBQUE7QUFDdkQ7Ozs7O0dBS0c7QUFDSCxlQUFPLE1BQU0sYUFBYSx3Q0FBbUMsQ0FBQSJ9
|
package/dist/ids.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,KAAK,EAAE,iBAAiB,EAAY,KAAK,aAAa,EAAmB,MAAM,mBAAmB,CAAA;AACjI,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,0BAA0B,CAAA;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAGhC,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAA;AACzC;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;gBAIkB,iBAAiB;IAGnD;;;;;OAKG;;;;IALH;;;;;OAKG;;CAKe,CAAA;AAExB,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;CAAG;AACjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,kBAAkB,CAAA;AACvD;;;;;GAKG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,KAAK,EAAE,iBAAiB,EAAY,KAAK,aAAa,EAAmB,MAAM,mBAAmB,CAAA;AACjI,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,0BAA0B,CAAA;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAGhC,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAA;AACzC;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;gBAIkB,iBAAiB;IAGnD;;;;;OAKG;;;;IALH;;;;;OAKG;;CAKe,CAAA;AAExB,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;CAAG;AACjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,kBAAkB,CAAA;AACvD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,wCAAmC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.255",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"vitest": "^4.1.5"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"effect": "^4.0.0-beta.
|
|
27
|
+
"effect": "^4.0.0-beta.71"
|
|
28
28
|
},
|
|
29
29
|
"typesVersions": {
|
|
30
30
|
"*": {
|
|
@@ -21,6 +21,9 @@ import { withDefaultMake, type WithDefaults } from "./ext.js"
|
|
|
21
21
|
import { type B } from "./schema.js"
|
|
22
22
|
import type { NonEmptyString255Brand, NonEmptyStringBrand } from "./strings.js"
|
|
23
23
|
|
|
24
|
+
type BrandedStringSchema<A extends string> = S.Codec<A, string> & WithDefaults<S.Codec<A, string>>
|
|
25
|
+
type ConstructorDefaultBaseSchema<A> = S.Codec<A, string> & S.WithoutConstructorDefault
|
|
26
|
+
type WithConstructorDefaultSchema<A> = S.withConstructorDefault<ConstructorDefaultBaseSchema<A>>
|
|
24
27
|
const nonEmptyString = S.NonEmptyString
|
|
25
28
|
|
|
26
29
|
/**
|
|
@@ -36,7 +39,8 @@ export type NonEmptyString50 = string & NonEmptyString50Brand
|
|
|
36
39
|
/**
|
|
37
40
|
* A string that is at least 1 character long and a maximum of 50.
|
|
38
41
|
*/
|
|
39
|
-
export
|
|
42
|
+
export interface NonEmptyString50Schema extends BrandedStringSchema<NonEmptyString50> {}
|
|
43
|
+
export const NonEmptyString50: NonEmptyString50Schema = nonEmptyString.pipe(
|
|
40
44
|
S.check(S.isMaxLength(50)),
|
|
41
45
|
fromBrand<NonEmptyString50>(nominal<NonEmptyString50>(), {
|
|
42
46
|
identifier: "NonEmptyString50",
|
|
@@ -58,7 +62,8 @@ export type NonEmptyString64 = string & NonEmptyString64Brand
|
|
|
58
62
|
/**
|
|
59
63
|
* A string that is at least 1 character long and a maximum of 64.
|
|
60
64
|
*/
|
|
61
|
-
export
|
|
65
|
+
export interface NonEmptyString64Schema extends BrandedStringSchema<NonEmptyString64> {}
|
|
66
|
+
export const NonEmptyString64: NonEmptyString64Schema = nonEmptyString.pipe(
|
|
62
67
|
S.check(S.isMaxLength(64)),
|
|
63
68
|
fromBrand<NonEmptyString64>(nominal<NonEmptyString64>(), {
|
|
64
69
|
identifier: "NonEmptyString64",
|
|
@@ -81,7 +86,8 @@ export type NonEmptyString80 = string & NonEmptyString80Brand
|
|
|
81
86
|
* A string that is at least 1 character long and a maximum of 80.
|
|
82
87
|
*/
|
|
83
88
|
|
|
84
|
-
export
|
|
89
|
+
export interface NonEmptyString80Schema extends BrandedStringSchema<NonEmptyString80> {}
|
|
90
|
+
export const NonEmptyString80: NonEmptyString80Schema = nonEmptyString.pipe(
|
|
85
91
|
S.check(S.isMaxLength(80)),
|
|
86
92
|
fromBrand<NonEmptyString80>(nominal<NonEmptyString80>(), {
|
|
87
93
|
identifier: "NonEmptyString80",
|
|
@@ -103,7 +109,8 @@ export type NonEmptyString100 = string & NonEmptyString100Brand
|
|
|
103
109
|
/**
|
|
104
110
|
* A string that is at least 1 character long and a maximum of 100.
|
|
105
111
|
*/
|
|
106
|
-
export
|
|
112
|
+
export interface NonEmptyString100Schema extends BrandedStringSchema<NonEmptyString100> {}
|
|
113
|
+
export const NonEmptyString100: NonEmptyString100Schema = nonEmptyString.pipe(
|
|
107
114
|
S.check(S.isMaxLength(100)),
|
|
108
115
|
fromBrand<NonEmptyString100>(nominal<NonEmptyString100>(), {
|
|
109
116
|
identifier: "NonEmptyString100",
|
|
@@ -125,7 +132,8 @@ export type Min3String255 = string & Min3String255Brand
|
|
|
125
132
|
/**
|
|
126
133
|
* A string that is at least 3 character long and a maximum of 255.
|
|
127
134
|
*/
|
|
128
|
-
export
|
|
135
|
+
export interface Min3String255Schema extends BrandedStringSchema<Min3String255> {}
|
|
136
|
+
export const Min3String255: Min3String255Schema = pipe(
|
|
129
137
|
S.String,
|
|
130
138
|
S.check(S.isMinLength(3), S.isMaxLength(255)),
|
|
131
139
|
fromBrand<Min3String255>(nominal<Min3String255>(), {
|
|
@@ -145,12 +153,22 @@ export interface StringIdBrand extends Simplify<B.Brand<"StringId"> & NonEmptySt
|
|
|
145
153
|
*/
|
|
146
154
|
export type StringId = string & StringIdBrand
|
|
147
155
|
|
|
148
|
-
const makeStringId = (s?: string): StringId =>
|
|
149
|
-
s !== undefined ? S.decodeSync(StringId)(s) : nanoid() as unknown as StringId
|
|
150
156
|
const minLength = 6
|
|
151
157
|
const maxLength = 50
|
|
152
158
|
const size = 21
|
|
153
159
|
const length = 10 * size
|
|
160
|
+
/** Base `StringId` codec (without constructor default extensions). */
|
|
161
|
+
const StringIdSchemaBase = pipe(
|
|
162
|
+
S.String,
|
|
163
|
+
S.check(S.isMinLength(minLength), S.isMaxLength(maxLength)),
|
|
164
|
+
fromBrand<StringId>(nominal<StringId>(), {
|
|
165
|
+
identifier: "StringId",
|
|
166
|
+
toArbitrary: () => (fc) => StringIdArb()(fc),
|
|
167
|
+
jsonSchema: {}
|
|
168
|
+
})
|
|
169
|
+
)
|
|
170
|
+
const makeStringId = (s?: string): StringId =>
|
|
171
|
+
s !== undefined ? S.decodeSync(StringIdSchemaBase)(s) : nanoid() as unknown as StringId
|
|
154
172
|
const StringIdArb = (): S.LazyArbitrary<StringId> => (fc) =>
|
|
155
173
|
fc
|
|
156
174
|
.uint8Array({ minLength: length, maxLength: length })
|
|
@@ -161,16 +179,12 @@ const StringIdArb = (): S.LazyArbitrary<StringId> => (fc) =>
|
|
|
161
179
|
* `.withConstructorDefault` => fresh `nanoid()` (construction-only; not
|
|
162
180
|
* applied during decode — see file-level note).
|
|
163
181
|
*/
|
|
164
|
-
export
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
toArbitrary: () => (fc) => StringIdArb()(fc),
|
|
171
|
-
jsonSchema: {}
|
|
172
|
-
})
|
|
173
|
-
),
|
|
182
|
+
export interface StringIdSchema extends BrandedStringSchema<StringId> {
|
|
183
|
+
readonly make: (s?: string) => StringId
|
|
184
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<StringId>
|
|
185
|
+
}
|
|
186
|
+
export const StringId: StringIdSchema = extendM(
|
|
187
|
+
StringIdSchemaBase,
|
|
174
188
|
(s) => ({
|
|
175
189
|
make: makeStringId,
|
|
176
190
|
/**
|
|
@@ -209,7 +223,7 @@ export function prefixedStringId<Type extends StringId>() {
|
|
|
209
223
|
(x) => (pref + x.substring(0, 50 - pref.length)) as Type
|
|
210
224
|
)
|
|
211
225
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
212
|
-
const s =
|
|
226
|
+
const s = StringIdSchemaBase
|
|
213
227
|
.pipe(
|
|
214
228
|
S.refine((x: string): x is Type => x.startsWith(pref), {
|
|
215
229
|
identifier: name
|
|
@@ -241,7 +255,7 @@ export function prefixedStringId<Type extends StringId>() {
|
|
|
241
255
|
* file-level note.
|
|
242
256
|
*/
|
|
243
257
|
withConstructorDefault: schema.pipe(
|
|
244
|
-
S.withConstructorDefault<
|
|
258
|
+
S.withConstructorDefault<ConstructorDefaultBaseSchema<Type>>(
|
|
245
259
|
Effect.sync(make)
|
|
246
260
|
)
|
|
247
261
|
)
|
|
@@ -258,18 +272,9 @@ export function prefixedStringId<Type extends StringId>() {
|
|
|
258
272
|
*/
|
|
259
273
|
export const brandedStringId = <
|
|
260
274
|
Id
|
|
261
|
-
>() =>
|
|
275
|
+
>(): BrandedStringIdSchema<Id> =>
|
|
262
276
|
withDefaultMake(
|
|
263
|
-
Object.assign(Object.create(StringId), StringId) as
|
|
264
|
-
/**
|
|
265
|
-
* Construction-only default: fresh `nanoid()`-shaped id. Applied only
|
|
266
|
-
* when the field is omitted from `.make(...)` input. NOT applied
|
|
267
|
-
* during decode — cannot be used to JIT-migrate database fields. See
|
|
268
|
-
* file-level note.
|
|
269
|
-
*/
|
|
270
|
-
withConstructorDefault: S.withConstructorDefault<S.Codec<Id, string> & S.WithoutConstructorDefault>
|
|
271
|
-
make: () => Id
|
|
272
|
-
} & WithDefaults<S.Codec<Id, string>>
|
|
277
|
+
Object.assign(Object.create(StringId), StringId) as BrandedStringIdSchema<Id>
|
|
273
278
|
)
|
|
274
279
|
|
|
275
280
|
export interface PrefixedStringUtils<
|
|
@@ -286,7 +291,12 @@ export interface PrefixedStringUtils<
|
|
|
286
291
|
* field is omitted from `.make(...)` input. NOT applied during decode —
|
|
287
292
|
* cannot be used to JIT-migrate database fields. See file-level note.
|
|
288
293
|
*/
|
|
289
|
-
readonly withConstructorDefault:
|
|
294
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<Type>
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export interface BrandedStringIdSchema<Id> extends S.Codec<Id, string>, WithDefaults<S.Codec<Id, string>> {
|
|
298
|
+
readonly withConstructorDefault: WithConstructorDefaultSchema<Id>
|
|
299
|
+
readonly make: () => Id
|
|
290
300
|
}
|
|
291
301
|
|
|
292
302
|
export interface UrlBrand extends Simplify<B.Brand<"Url"> & NonEmptyStringBrand> {}
|
|
@@ -297,7 +307,8 @@ const isUrl: Refinement<string, Url> = (s: string): s is Url => {
|
|
|
297
307
|
return validator.default.isURL(s, { require_tld: false })
|
|
298
308
|
}
|
|
299
309
|
|
|
300
|
-
export
|
|
310
|
+
export interface UrlSchema extends BrandedStringSchema<Url> {}
|
|
311
|
+
export const Url: UrlSchema = S
|
|
301
312
|
.String
|
|
302
313
|
.pipe(
|
|
303
314
|
S.annotate({
|
package/src/Schema/numbers.ts
CHANGED
|
@@ -13,14 +13,20 @@ import * as Effect from "effect/Effect"
|
|
|
13
13
|
import * as S from "effect/Schema"
|
|
14
14
|
import type { Simplify } from "effect/Types"
|
|
15
15
|
import { fromBrand, nominal } from "./brand.js"
|
|
16
|
-
import { withDefaultMake } from "./ext.js"
|
|
16
|
+
import { withDefaultMake, type WithDefaults } from "./ext.js"
|
|
17
17
|
import { type B } from "./schema.js"
|
|
18
18
|
|
|
19
|
+
type BrandedNumberSchema<A extends number> = S.Codec<A, number> & WithDefaults<S.Codec<A, number>>
|
|
20
|
+
type BrandedNumberSchemaWithConstructorDefault<A extends number> = BrandedNumberSchema<A> & {
|
|
21
|
+
readonly withConstructorDefault: S.Codec<A, number>
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
export interface PositiveIntBrand
|
|
20
25
|
extends Simplify<B.Brand<"PositiveInt"> & NonNegativeIntBrand & PositiveNumberBrand>
|
|
21
26
|
{}
|
|
22
27
|
/** Positive integer. `.withConstructorDefault` => `1` (construction-only). */
|
|
23
|
-
export
|
|
28
|
+
export interface PositiveIntSchema extends BrandedNumberSchemaWithConstructorDefault<PositiveInt> {}
|
|
29
|
+
export const PositiveInt: PositiveIntSchema = extendM(
|
|
24
30
|
S.Int.pipe(
|
|
25
31
|
S.check(S.isGreaterThan(0)),
|
|
26
32
|
fromBrand<PositiveInt>(nominal<PositiveInt>(), { identifier: "PositiveInt", jsonSchema: {} }),
|
|
@@ -39,7 +45,8 @@ export type PositiveInt = number & PositiveIntBrand
|
|
|
39
45
|
|
|
40
46
|
export interface NonNegativeIntBrand extends Simplify<B.Brand<"NonNegativeInt"> & IntBrand & NonNegativeNumberBrand> {}
|
|
41
47
|
/** Non-negative integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
42
|
-
export
|
|
48
|
+
export interface NonNegativeIntSchema extends BrandedNumberSchemaWithConstructorDefault<NonNegativeInt> {}
|
|
49
|
+
export const NonNegativeInt: NonNegativeIntSchema = extendM(
|
|
43
50
|
S.Int.pipe(
|
|
44
51
|
S.check(S.isGreaterThanOrEqualTo(0)),
|
|
45
52
|
fromBrand<NonNegativeInt>(nominal<NonNegativeInt>(), {
|
|
@@ -61,7 +68,8 @@ export type NonNegativeInt = number & NonNegativeIntBrand
|
|
|
61
68
|
|
|
62
69
|
export interface IntBrand extends Simplify<B.Brand<"Int">> {}
|
|
63
70
|
/** Integer. `.withConstructorDefault` => `0` (construction-only). */
|
|
64
|
-
export
|
|
71
|
+
export interface IntSchema extends BrandedNumberSchemaWithConstructorDefault<Int> {}
|
|
72
|
+
export const Int: IntSchema = extendM(
|
|
65
73
|
S.Int.pipe(fromBrand<Int>(nominal<Int>(), { identifier: "Int", jsonSchema: {} }), withDefaultMake),
|
|
66
74
|
(s) => ({
|
|
67
75
|
/**
|
|
@@ -76,7 +84,8 @@ export type Int = number & IntBrand
|
|
|
76
84
|
|
|
77
85
|
export interface PositiveNumberBrand extends Simplify<B.Brand<"PositiveNumber"> & NonNegativeNumberBrand> {}
|
|
78
86
|
/** Positive finite number. `.withConstructorDefault` => `1` (construction-only). */
|
|
79
|
-
export
|
|
87
|
+
export interface PositiveNumberSchema extends BrandedNumberSchemaWithConstructorDefault<PositiveNumber> {}
|
|
88
|
+
export const PositiveNumber: PositiveNumberSchema = extendM(
|
|
80
89
|
S.Finite.pipe(
|
|
81
90
|
S.check(S.isGreaterThan(0)),
|
|
82
91
|
fromBrand<PositiveNumber>(nominal<PositiveNumber>(), {
|
|
@@ -98,7 +107,8 @@ export type PositiveNumber = number & PositiveNumberBrand
|
|
|
98
107
|
|
|
99
108
|
export interface NonNegativeNumberBrand extends Simplify<B.Brand<"NonNegativeNumber">> {}
|
|
100
109
|
/** Non-negative finite number. `.withConstructorDefault` => `0` (construction-only). */
|
|
101
|
-
export
|
|
110
|
+
export interface NonNegativeNumberSchema extends BrandedNumberSchemaWithConstructorDefault<NonNegativeNumber> {}
|
|
111
|
+
export const NonNegativeNumber: NonNegativeNumberSchema = extendM(
|
|
102
112
|
S
|
|
103
113
|
.Finite
|
|
104
114
|
.pipe(
|
package/src/Schema/strings.ts
CHANGED
|
@@ -2,11 +2,14 @@ import type * as B from "effect/Brand"
|
|
|
2
2
|
import * as S from "effect/Schema"
|
|
3
3
|
import type { Simplify } from "effect/Types"
|
|
4
4
|
import { fromBrand, nominal } from "./brand.js"
|
|
5
|
-
import { withDefaultMake } from "./ext.js"
|
|
5
|
+
import { withDefaultMake, type WithDefaults } from "./ext.js"
|
|
6
|
+
|
|
7
|
+
type BrandedStringSchema<A extends string> = S.Codec<A, string> & WithDefaults<S.Codec<A, string>>
|
|
6
8
|
|
|
7
9
|
export type NonEmptyStringBrand = B.Brand<"NonEmptyString">
|
|
8
10
|
export type NonEmptyString = string & NonEmptyStringBrand
|
|
9
|
-
export
|
|
11
|
+
export interface NonEmptyStringSchema extends BrandedStringSchema<NonEmptyString> {}
|
|
12
|
+
export const NonEmptyString: NonEmptyStringSchema = S
|
|
10
13
|
.NonEmptyString
|
|
11
14
|
.pipe(
|
|
12
15
|
fromBrand<NonEmptyString>(nominal<NonEmptyString>(), {
|
|
@@ -18,7 +21,8 @@ export const NonEmptyString = S
|
|
|
18
21
|
|
|
19
22
|
export interface NonEmptyString64kBrand extends Simplify<B.Brand<"NonEmptyString64k"> & NonEmptyStringBrand> {}
|
|
20
23
|
export type NonEmptyString64k = string & NonEmptyString64kBrand
|
|
21
|
-
export
|
|
24
|
+
export interface NonEmptyString64kSchema extends BrandedStringSchema<NonEmptyString64k> {}
|
|
25
|
+
export const NonEmptyString64k: NonEmptyString64kSchema = S
|
|
22
26
|
.NonEmptyString
|
|
23
27
|
.pipe(
|
|
24
28
|
S.check(S.isMaxLength(64 * 1024)),
|
|
@@ -31,7 +35,8 @@ export const NonEmptyString64k = S
|
|
|
31
35
|
|
|
32
36
|
export interface NonEmptyString2kBrand extends Simplify<B.Brand<"NonEmptyString2k"> & NonEmptyString64kBrand> {}
|
|
33
37
|
export type NonEmptyString2k = string & NonEmptyString2kBrand
|
|
34
|
-
export
|
|
38
|
+
export interface NonEmptyString2kSchema extends BrandedStringSchema<NonEmptyString2k> {}
|
|
39
|
+
export const NonEmptyString2k: NonEmptyString2kSchema = S
|
|
35
40
|
.NonEmptyString
|
|
36
41
|
.pipe(
|
|
37
42
|
S.check(S.isMaxLength(2 * 1024)),
|
|
@@ -44,7 +49,8 @@ export const NonEmptyString2k = S
|
|
|
44
49
|
|
|
45
50
|
export interface NonEmptyString255Brand extends Simplify<B.Brand<"NonEmptyString255"> & NonEmptyString2kBrand> {}
|
|
46
51
|
export type NonEmptyString255 = string & NonEmptyString255Brand
|
|
47
|
-
export
|
|
52
|
+
export interface NonEmptyString255Schema extends BrandedStringSchema<NonEmptyString255> {}
|
|
53
|
+
export const NonEmptyString255: NonEmptyString255Schema = S
|
|
48
54
|
.NonEmptyString
|
|
49
55
|
.pipe(
|
|
50
56
|
S.check(S.isMaxLength(255)),
|