@evolu/common 4.0.3 → 4.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/Crdt.d.ts +4 -4
- package/dist/src/Crdt.d.ts.map +1 -1
- package/dist/src/Crypto.d.ts +2 -2
- package/dist/src/Crypto.d.ts.map +1 -1
- package/dist/src/Db.d.ts +14 -20
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +3 -3
- package/dist/src/Model.d.ts +17 -21
- package/dist/src/Model.d.ts.map +1 -1
- package/dist/src/Model.js +2 -5
- package/package.json +10 -10
- package/src/Crdt.ts +2 -2
- package/src/Crypto.ts +1 -1
- package/src/Db.ts +6 -6
- package/src/Model.ts +10 -14
package/dist/src/Crdt.d.ts
CHANGED
|
@@ -22,11 +22,11 @@ export declare const AllowedTimeRange: {
|
|
|
22
22
|
* the device clock is out of range, Evolu will not store data until it's
|
|
23
23
|
* fixed.
|
|
24
24
|
*/
|
|
25
|
-
export declare const Millis: S.
|
|
26
|
-
export type Millis = S.Schema.
|
|
25
|
+
export declare const Millis: S.brand<S.Schema<number, number, never>, "Millis">;
|
|
26
|
+
export type Millis = S.Schema.Type<typeof Millis>;
|
|
27
27
|
export declare const initialMillis: number & Brand.Brand<"Millis">;
|
|
28
|
-
export declare const Counter: S.
|
|
29
|
-
export type Counter = S.Schema.
|
|
28
|
+
export declare const Counter: S.brand<S.Schema<number, number, never>, "Counter">;
|
|
29
|
+
export type Counter = S.Schema.Type<typeof Counter>;
|
|
30
30
|
export type TimestampHash = number & Brand.Brand<"TimestampHash">;
|
|
31
31
|
export type TimestampString = string & Brand.Brand<"TimestampString">;
|
|
32
32
|
export declare const timestampToString: (t: Timestamp) => TimestampString;
|
package/dist/src/Crdt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crdt.d.ts","sourceRoot":"","sources":["../../src/Crdt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQtD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Crdt.d.ts","sourceRoot":"","sources":["../../src/Crdt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQtD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,oDAIlB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,aAAa,gCAEzB,CAAC;AAEF,eAAO,MAAM,OAAO,qDAAyD,CAAC;AAC9E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,CAAC;AAIpD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEtE,eAAO,MAAM,iBAAiB,MAAO,SAAS,KAAG,eAKjB,CAAC;AAEjC,eAAO,MAAM,yBAAyB,MAAO,eAAe,KAAG,SAO9D,CAAC;AAEF,eAAO,MAAM,eAAe,MAAO,SAAS,KAAG,aACI,CAAC;AAIpD,eAAO,MAAM,iBAAiB,YACpB,MAAM,KACb,SAID,CAAC;AAEH,eAAO,MAAM,oBAAoB,kDAShC,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACnE;AAED,eAAO,MAAM,IAAI,yBAA6C,CAAC;AAE/D,eAAO,MAAM,QAAQ,iCAWpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,6BAA6B,GAC7B,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;CAChD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;CAC/C;AAuCD,eAAO,MAAM,aAAa,cACb,SAAS,KACnB,aAAa,CACd,SAAS,EACP,mBAAmB,GACnB,6BAA6B,GAC7B,4BAA4B,EAC9B,IAAI,GAAG,MAAM,CASX,CAAC;AAEL,eAAO,MAAM,gBAAgB;oBAIX,SAAS;qBACR,SAAS;MACxB,aAAa,CACf,SAAS,EACP,mBAAmB,GACnB,6BAA6B,GAC7B,2BAA2B,GAC3B,4BAA4B,EAC9B,IAAI,GAAG,MAAM,CAuBX,CAAC;AAEL;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAExE,eAAO,MAAM,iBAAiB,YAAoC,CAAC;AAEnE,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEpD,KAAK,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAEnD,eAAO,MAAM,sBAAsB,WAAY,MAAM,mBAGrB,CAAC;AAgCjC,eAAO,MAAM,oBAAoB,cACnB,SAAS,YACd,UAAU,KAAG,UAQnB,CAAC;AASJ,eAAO,MAAM,eAAe,UACnB,UAAU,SACV,UAAU,KAChB,aAAa,CAAC,MAAM,CAqDtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,MAAO,UAAU,KAAG,gBACZ,CAAC;AAExC,eAAO,MAAM,0BAA0B,MAAO,gBAAgB,KAAG,UACpC,CAAC"}
|
package/dist/src/Crypto.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ export interface NanoIdGenerator {
|
|
|
26
26
|
}
|
|
27
27
|
export declare const NanoIdGenerator: Context.Tag<NanoIdGenerator, NanoIdGenerator>;
|
|
28
28
|
export type NanoId = string & Brand.Brand<"NanoId">;
|
|
29
|
-
export declare const NodeId: S.
|
|
30
|
-
export type NodeId = S.Schema.
|
|
29
|
+
export declare const NodeId: S.brand<S.Schema<string, string, never>, "NodeId">;
|
|
30
|
+
export type NodeId = S.Schema.Type<typeof NodeId>;
|
|
31
31
|
export declare const NanoIdGeneratorLive: Layer.Layer<NanoIdGenerator, never, never>;
|
|
32
32
|
export declare const slip21Derive: (seed: Uint8Array, path: ReadonlyArray<string>) => Effect.Effect<Uint8Array>;
|
|
33
33
|
/** Alias to xsalsa20poly1305, for compatibility with libsodium/nacl */
|
package/dist/src/Crypto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/Crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAM3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEnE,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,KAAK,2BAA+C,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,+CAE3B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEpD,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/Crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAM3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEnE,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,KAAK,2BAA+C,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,+CAE3B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEpD,eAAO,MAAM,MAAM,oDAGlB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC;AAIlD,eAAO,MAAM,mBAAmB,4CAM/B,CAAC;AAIF,eAAO,MAAM,YAAY,SACjB,UAAU,QACV,cAAc,MAAM,CAAC,KAC1B,aAAa,CAAC,UAAU,CAWvB,CAAC;AAEL,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,UAAU,KAClB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE/B,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,UAAU,KACnB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,mCAAuD,CAAC;AAE9E,eAAO,MAAM,aAAa,sCAgBzB,CAAC"}
|
package/dist/src/Db.d.ts
CHANGED
|
@@ -28,25 +28,21 @@ type TableSchema = ReadonlyRecord.ReadonlyRecord<string, Value> & {
|
|
|
28
28
|
*
|
|
29
29
|
* @example
|
|
30
30
|
* const TodoId = id("Todo");
|
|
31
|
-
* type TodoId = S.Schema.
|
|
31
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
32
32
|
*
|
|
33
33
|
* const TodoTable = table({
|
|
34
34
|
* id: TodoId,
|
|
35
35
|
* title: NonEmptyString1000,
|
|
36
36
|
* isCompleted: S.nullable(SqliteBoolean),
|
|
37
37
|
* });
|
|
38
|
-
* type TodoTable = S.Schema.
|
|
38
|
+
* type TodoTable = S.Schema.Type<typeof TodoTable>;
|
|
39
39
|
*/
|
|
40
|
-
export declare const table: <Fields extends TableFields>(fields: Fields) => ValidateFieldsTypes<Fields> extends true ? ValidateFieldsNames<Fields> extends true ? ValidateFieldsHasId<Fields> extends true ? S.Schema<Types.Simplify<S.
|
|
41
|
-
declare const ReservedColumns: S.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
readonly createdAt: string;
|
|
47
|
-
readonly updatedAt: string;
|
|
48
|
-
readonly isDeleted: number;
|
|
49
|
-
}, never>;
|
|
40
|
+
export declare const table: <Fields extends TableFields>(fields: Fields) => ValidateFieldsTypes<Fields> extends true ? ValidateFieldsNames<Fields> extends true ? ValidateFieldsHasId<Fields> extends true ? S.Schema<Types.Simplify<S.Struct.Type<Fields> & S.Schema.Type<typeof ReservedColumns>>, Types.Simplify<S.Struct.Encoded<Fields> & S.Schema.Encoded<typeof ReservedColumns>>> : EvoluTypeError<"table() called without id column."> : EvoluTypeError<"table() called with a reserved column. Reserved columns are createdAt, updatedAt, isDeleted. Those columns are added by default."> : EvoluTypeError<"table() called with unsupported type. Supported types are null, string, number, Uint8Array, JSON Object, and JSON Array. Use SqliteDate for dates and SqliteBoolean for booleans.">;
|
|
41
|
+
declare const ReservedColumns: S.struct<{
|
|
42
|
+
createdAt: S.brand<S.Schema<string, string, never>, "SqliteDate">;
|
|
43
|
+
updatedAt: S.brand<S.Schema<string, string, never>, "SqliteDate">;
|
|
44
|
+
isDeleted: S.brand<S.Schema<number, number, never>, "SqliteBoolean">;
|
|
45
|
+
}>;
|
|
50
46
|
type TableFields = Record<string, S.Schema<any>>;
|
|
51
47
|
type ValidateFieldsTypes<Fields extends TableFields> = keyof Fields extends infer K ? K extends keyof Fields ? Fields[K] extends TableFields ? ValidateFieldsTypes<Fields[K]> : Fields[K] extends S.Schema<infer A, infer _I> ? A extends Value ? true : false : never : never : never;
|
|
52
48
|
type ValidateFieldsNames<Fields extends TableFields> = keyof Fields extends infer K ? K extends keyof Fields ? K extends "createdAt" | "updatedAt" | "isDeleted" ? false : true : never : never;
|
|
@@ -64,9 +60,9 @@ type ValidateFieldsHasId<Fields extends TableFields> = "id" extends keyof Fields
|
|
|
64
60
|
* todo: TodoTable,
|
|
65
61
|
* todoCategory: TodoCategoryTable,
|
|
66
62
|
* });
|
|
67
|
-
* type Database = S.Schema.
|
|
63
|
+
* type Database = S.Schema.Type<typeof Database>;
|
|
68
64
|
*/
|
|
69
|
-
export declare const database:
|
|
65
|
+
export declare const database: typeof S.struct;
|
|
70
66
|
declare const __queryBrand: unique symbol;
|
|
71
67
|
/**
|
|
72
68
|
* The query is an SQL query serialized as a string with a branded type
|
|
@@ -119,12 +115,10 @@ export declare const transaction: <R, E, A>(effect: Effect.Effect<A, E, R>) => E
|
|
|
119
115
|
export interface NoSuchTableOrColumnError {
|
|
120
116
|
readonly _tag: "NoSuchTableOrColumnError";
|
|
121
117
|
}
|
|
122
|
-
export declare const SqliteNoSuchTableOrColumnError: S.
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
}, never>;
|
|
127
|
-
export type SqliteNoSuchTableOrColumnError = S.Schema.To<typeof SqliteNoSuchTableOrColumnError>;
|
|
118
|
+
export declare const SqliteNoSuchTableOrColumnError: S.struct<{
|
|
119
|
+
message: S.union<[S.Schema<string, string, never>, S.Schema<string, string, never>, S.Schema<string, string, never>]>;
|
|
120
|
+
}>;
|
|
121
|
+
export type SqliteNoSuchTableOrColumnError = S.Schema.Type<typeof SqliteNoSuchTableOrColumnError>;
|
|
128
122
|
export declare const someDefectToNoSuchTableOrColumnError: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, NoSuchTableOrColumnError | E, R>;
|
|
129
123
|
export declare const lazyInit: (mnemonic?: Mnemonic) => Effect.Effect<Owner, never, Sqlite | Bip39 | NanoIdGenerator>;
|
|
130
124
|
export declare const ensureSchema: (tables: Tables) => Effect.Effect<void, never, Sqlite>;
|
package/dist/src/Db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAOjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,EAAE,EAA6B,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAO9C,OAAO,EAEL,MAAM,EACN,WAAW,EACX,KAAK,EAEN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEhF,KAAK,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG;IAChE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,uCACR,MAAM,KAEb,oBAAoB,MAAM,CAAC,SAAS,IAAI,GACvC,oBAAoB,MAAM,CAAC,SAAS,IAAI,GACtC,oBAAoB,MAAM,CAAC,SAAS,IAAI,GACtC,EAAE,MAAM,CACN,MAAM,QAAQ,CACZ,EAAE,
|
|
1
|
+
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Db.js
CHANGED
|
@@ -28,14 +28,14 @@ import { makeStore } from "./Store.js";
|
|
|
28
28
|
*
|
|
29
29
|
* @example
|
|
30
30
|
* const TodoId = id("Todo");
|
|
31
|
-
* type TodoId = S.Schema.
|
|
31
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
32
32
|
*
|
|
33
33
|
* const TodoTable = table({
|
|
34
34
|
* id: TodoId,
|
|
35
35
|
* title: NonEmptyString1000,
|
|
36
36
|
* isCompleted: S.nullable(SqliteBoolean),
|
|
37
37
|
* });
|
|
38
|
-
* type TodoTable = S.Schema.
|
|
38
|
+
* type TodoTable = S.Schema.Type<typeof TodoTable>;
|
|
39
39
|
*/
|
|
40
40
|
export const table = (fields) => S.struct(fields).pipe(S.extend(ReservedColumns));
|
|
41
41
|
const ReservedColumns = S.struct({
|
|
@@ -56,7 +56,7 @@ const ReservedColumns = S.struct({
|
|
|
56
56
|
* todo: TodoTable,
|
|
57
57
|
* todoCategory: TodoCategoryTable,
|
|
58
58
|
* });
|
|
59
|
-
* type Database = S.Schema.
|
|
59
|
+
* type Database = S.Schema.Type<typeof Database>;
|
|
60
60
|
*/
|
|
61
61
|
export const database = S.struct;
|
|
62
62
|
// We use queries as keys, hence JSON.stringify.
|
package/dist/src/Model.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import * as S from "@effect/schema/Schema";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* use {@link id}.
|
|
6
|
-
*/
|
|
7
|
-
export declare const Id: S.BrandSchema<string & Brand.Brand<"Id">, string, never>;
|
|
8
|
-
export type Id = S.Schema.To<typeof Id>;
|
|
2
|
+
/** Branded Id Schema. To create Id Schema for a specific table, use {@link id}. */
|
|
3
|
+
export declare const Id: S.brand<S.Schema<string, string, never>, "Id">;
|
|
4
|
+
export type Id = S.Schema.Type<typeof Id>;
|
|
9
5
|
/**
|
|
10
6
|
* A factory function to create {@link Id} Schema for a specific table.
|
|
11
7
|
*
|
|
@@ -14,23 +10,23 @@ export type Id = S.Schema.To<typeof Id>;
|
|
|
14
10
|
* import { id } from "@evolu/react";
|
|
15
11
|
*
|
|
16
12
|
* const TodoId = id("Todo");
|
|
17
|
-
* type TodoId = S.Schema.
|
|
13
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
18
14
|
*/
|
|
19
|
-
export declare const id: <T extends string>(table: T) => S.
|
|
15
|
+
export declare const id: <T extends string>(table: T) => S.brand<S.brand<S.Schema<string, string, never>, "Id">, T>;
|
|
20
16
|
/**
|
|
21
17
|
* SQLite doesn't support the Date type, so Evolu uses SqliteDate instead. Use
|
|
22
18
|
* the {@link cast} helper to cast SqliteDate from Date and back.
|
|
23
19
|
* https://www.sqlite.org/quirks.html#no_separate_datetime_datatype
|
|
24
20
|
*/
|
|
25
|
-
export declare const SqliteDate: S.
|
|
26
|
-
export type SqliteDate = S.Schema.
|
|
21
|
+
export declare const SqliteDate: S.brand<S.Schema<string, string, never>, "SqliteDate">;
|
|
22
|
+
export type SqliteDate = S.Schema.Type<typeof SqliteDate>;
|
|
27
23
|
/**
|
|
28
24
|
* SQLite doesn't support the boolean type, so Evolu uses SqliteBoolean instead.
|
|
29
25
|
* Use the {@link cast} helper to cast SqliteBoolean from boolean and back.
|
|
30
26
|
* https://www.sqlite.org/quirks.html#no_separate_boolean_datatype
|
|
31
27
|
*/
|
|
32
|
-
export declare const SqliteBoolean: S.
|
|
33
|
-
export type SqliteBoolean = S.Schema.
|
|
28
|
+
export declare const SqliteBoolean: S.brand<S.Schema<number, number, never>, "SqliteBoolean">;
|
|
29
|
+
export type SqliteBoolean = S.Schema.Type<typeof SqliteBoolean>;
|
|
34
30
|
/**
|
|
35
31
|
* A helper for casting types not supported by SQLite. SQLite doesn't support
|
|
36
32
|
* Date nor Boolean types, so Evolu emulates them with {@link SqliteBoolean} and
|
|
@@ -55,8 +51,8 @@ export declare function cast(value: SqliteDate): Date;
|
|
|
55
51
|
* not automatically parsed to a JSON object or array when retrieved. Use String
|
|
56
52
|
* schema for all string-based schemas.
|
|
57
53
|
*/
|
|
58
|
-
export declare const String: S.
|
|
59
|
-
export type String = S.Schema.
|
|
54
|
+
export declare const String: S.brand<S.Schema<string, string, never>, "String">;
|
|
55
|
+
export type String = S.Schema.Type<typeof String>;
|
|
60
56
|
/**
|
|
61
57
|
* A string with a maximum length of 1000 characters.
|
|
62
58
|
*
|
|
@@ -66,8 +62,8 @@ export type String = S.Schema.To<typeof String>;
|
|
|
66
62
|
*
|
|
67
63
|
* S.decode(String1000)(value);
|
|
68
64
|
*/
|
|
69
|
-
export declare const String1000: S.
|
|
70
|
-
export type String1000 = S.Schema.
|
|
65
|
+
export declare const String1000: S.brand<S.Schema<string & import("effect/Brand").Brand<"String">, string, never>, "String1000">;
|
|
66
|
+
export type String1000 = S.Schema.Type<typeof String1000>;
|
|
71
67
|
/**
|
|
72
68
|
* A nonempty string with a maximum length of 1000 characters.
|
|
73
69
|
*
|
|
@@ -77,8 +73,8 @@ export type String1000 = S.Schema.To<typeof String1000>;
|
|
|
77
73
|
*
|
|
78
74
|
* S.decode(NonEmptyString1000)(value);
|
|
79
75
|
*/
|
|
80
|
-
export declare const NonEmptyString1000: S.
|
|
81
|
-
export type NonEmptyString1000 = S.Schema.
|
|
76
|
+
export declare const NonEmptyString1000: S.brand<S.Schema<string & import("effect/Brand").Brand<"String">, string, never>, "NonEmptyString1000">;
|
|
77
|
+
export type NonEmptyString1000 = S.Schema.Type<typeof NonEmptyString1000>;
|
|
82
78
|
/**
|
|
83
79
|
* A positive integer.
|
|
84
80
|
*
|
|
@@ -88,6 +84,6 @@ export type NonEmptyString1000 = S.Schema.To<typeof NonEmptyString1000>;
|
|
|
88
84
|
*
|
|
89
85
|
* S.decode(PositiveInt)(value);
|
|
90
86
|
*/
|
|
91
|
-
export declare const PositiveInt: S.
|
|
92
|
-
export type PositiveInt = S.Schema.
|
|
87
|
+
export declare const PositiveInt: S.brand<S.Schema<number, number, never>, "PositiveInt">;
|
|
88
|
+
export type PositiveInt = S.Schema.Type<typeof PositiveInt>;
|
|
93
89
|
//# sourceMappingURL=Model.d.ts.map
|
package/dist/src/Model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAG3C,mFAAmF;AACnF,eAAO,MAAM,EAAE,gDAAyD,CAAC;AACzE,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAE1C;;;;;;;;;GASG;AACH,eAAO,MAAM,EAAE,4BACN,CAAC,KACP,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CACnC,CAAC;AAE1B;;;;GAIG;AACH,eAAO,MAAM,UAAU,wDAGtB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,aAAa,2DAIzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC;AACpD,wBAAgB,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;AACpD,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC;AAC9C,wBAAgB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;AAW9C;;;;;GAKG;AACH,eAAO,MAAM,MAAM,oDAclB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,iGAAwD,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE1D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,yGAI9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,yDAIvB,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/src/Model.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as S from "@effect/schema/Schema";
|
|
2
2
|
import { maybeJson } from "./Sqlite.js";
|
|
3
|
-
/**
|
|
4
|
-
* Branded Id Schema for any table Id. To create Id Schema for a specific table,
|
|
5
|
-
* use {@link id}.
|
|
6
|
-
*/
|
|
3
|
+
/** Branded Id Schema. To create Id Schema for a specific table, use {@link id}. */
|
|
7
4
|
export const Id = S.string.pipe(S.pattern(/^[\w-]{21}$/), S.brand("Id"));
|
|
8
5
|
/**
|
|
9
6
|
* A factory function to create {@link Id} Schema for a specific table.
|
|
@@ -13,7 +10,7 @@ export const Id = S.string.pipe(S.pattern(/^[\w-]{21}$/), S.brand("Id"));
|
|
|
13
10
|
* import { id } from "@evolu/react";
|
|
14
11
|
*
|
|
15
12
|
* const TodoId = id("Todo");
|
|
16
|
-
* type TodoId = S.Schema.
|
|
13
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
17
14
|
*/
|
|
18
15
|
export const id = (table) => Id.pipe(S.brand(table));
|
|
19
16
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolu/common",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"description": "Local-first platform designed for privacy, ease of use, and no vendor lock-in to sync and backup people's lifetime data",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"evolu",
|
|
@@ -45,27 +45,27 @@
|
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@noble/ciphers": "^0.5.1",
|
|
48
|
-
"@noble/hashes": "^1.
|
|
49
|
-
"@protobuf-ts/runtime": "^2.9.
|
|
48
|
+
"@noble/hashes": "^1.4.0",
|
|
49
|
+
"@protobuf-ts/runtime": "^2.9.4",
|
|
50
50
|
"@scure/bip39": "^1.2.2",
|
|
51
51
|
"kysely": "^0.27.3",
|
|
52
52
|
"nanoid": "^5.0.6"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@effect/schema": "^0.
|
|
56
|
-
"@protobuf-ts/plugin": "^2.9.
|
|
57
|
-
"@protobuf-ts/protoc": "^2.9.
|
|
55
|
+
"@effect/schema": "^0.64.5",
|
|
56
|
+
"@protobuf-ts/plugin": "^2.9.4",
|
|
57
|
+
"@protobuf-ts/protoc": "^2.9.4",
|
|
58
58
|
"array-shuffle": "^3.0.0",
|
|
59
|
-
"effect": "2.4.
|
|
59
|
+
"effect": "2.4.7",
|
|
60
60
|
"eslint": "^8.57.0",
|
|
61
61
|
"typescript": "^5.4.2",
|
|
62
|
-
"vitest": "^1.
|
|
62
|
+
"vitest": "^1.4.0",
|
|
63
63
|
"@evolu/tsconfig": "0.0.2",
|
|
64
64
|
"eslint-config-evolu": "1.0.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@effect/schema": "^0.
|
|
68
|
-
"effect": "2.4.
|
|
67
|
+
"@effect/schema": "^0.64.5",
|
|
68
|
+
"effect": "2.4.7"
|
|
69
69
|
},
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
package/src/Crdt.ts
CHANGED
|
@@ -42,14 +42,14 @@ export const Millis = S.number.pipe(
|
|
|
42
42
|
S.brand("Millis"),
|
|
43
43
|
);
|
|
44
44
|
|
|
45
|
-
export type Millis = S.Schema.
|
|
45
|
+
export type Millis = S.Schema.Type<typeof Millis>;
|
|
46
46
|
|
|
47
47
|
export const initialMillis = S.decodeSync(Millis)(
|
|
48
48
|
AllowedTimeRange.greaterThan + 1,
|
|
49
49
|
);
|
|
50
50
|
|
|
51
51
|
export const Counter = S.number.pipe(S.between(0, 65535), S.brand("Counter"));
|
|
52
|
-
export type Counter = S.Schema.
|
|
52
|
+
export type Counter = S.Schema.Type<typeof Counter>;
|
|
53
53
|
|
|
54
54
|
const initialCounter = S.decodeSync(Counter)(0);
|
|
55
55
|
|
package/src/Crypto.ts
CHANGED
|
@@ -51,7 +51,7 @@ export const NodeId = S.string.pipe(
|
|
|
51
51
|
S.pattern(/^[\w-]{16}$/),
|
|
52
52
|
S.brand("NodeId"),
|
|
53
53
|
);
|
|
54
|
-
export type NodeId = S.Schema.
|
|
54
|
+
export type NodeId = S.Schema.Type<typeof NodeId>;
|
|
55
55
|
|
|
56
56
|
const nanoidForNodeId = customAlphabet("0123456789abcdef", 16);
|
|
57
57
|
|
package/src/Db.ts
CHANGED
|
@@ -56,14 +56,14 @@ type TableSchema = ReadonlyRecord.ReadonlyRecord<string, Value> & {
|
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* const TodoId = id("Todo");
|
|
59
|
-
* type TodoId = S.Schema.
|
|
59
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
60
60
|
*
|
|
61
61
|
* const TodoTable = table({
|
|
62
62
|
* id: TodoId,
|
|
63
63
|
* title: NonEmptyString1000,
|
|
64
64
|
* isCompleted: S.nullable(SqliteBoolean),
|
|
65
65
|
* });
|
|
66
|
-
* type TodoTable = S.Schema.
|
|
66
|
+
* type TodoTable = S.Schema.Type<typeof TodoTable>;
|
|
67
67
|
*/
|
|
68
68
|
export const table = <Fields extends TableFields>(
|
|
69
69
|
fields: Fields,
|
|
@@ -73,10 +73,10 @@ export const table = <Fields extends TableFields>(
|
|
|
73
73
|
? ValidateFieldsHasId<Fields> extends true
|
|
74
74
|
? S.Schema<
|
|
75
75
|
Types.Simplify<
|
|
76
|
-
S.
|
|
76
|
+
S.Struct.Type<Fields> & S.Schema.Type<typeof ReservedColumns>
|
|
77
77
|
>,
|
|
78
78
|
Types.Simplify<
|
|
79
|
-
S.
|
|
79
|
+
S.Struct.Encoded<Fields> & S.Schema.Encoded<typeof ReservedColumns>
|
|
80
80
|
>
|
|
81
81
|
>
|
|
82
82
|
: EvoluTypeError<"table() called without id column.">
|
|
@@ -132,7 +132,7 @@ type ValidateFieldsHasId<Fields extends TableFields> = "id" extends keyof Fields
|
|
|
132
132
|
* todo: TodoTable,
|
|
133
133
|
* todoCategory: TodoCategoryTable,
|
|
134
134
|
* });
|
|
135
|
-
* type Database = S.Schema.
|
|
135
|
+
* type Database = S.Schema.Type<typeof Database>;
|
|
136
136
|
*/
|
|
137
137
|
export const database = S.struct;
|
|
138
138
|
|
|
@@ -305,7 +305,7 @@ export const SqliteNoSuchTableOrColumnError = S.struct({
|
|
|
305
305
|
S.string.pipe(S.includes("has no column")),
|
|
306
306
|
),
|
|
307
307
|
});
|
|
308
|
-
export type SqliteNoSuchTableOrColumnError = S.Schema.
|
|
308
|
+
export type SqliteNoSuchTableOrColumnError = S.Schema.Type<
|
|
309
309
|
typeof SqliteNoSuchTableOrColumnError
|
|
310
310
|
>;
|
|
311
311
|
|
package/src/Model.ts
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import * as S from "@effect/schema/Schema";
|
|
2
|
-
import * as Brand from "effect/Brand";
|
|
3
2
|
import { maybeJson } from "./Sqlite.js";
|
|
4
3
|
|
|
5
|
-
/**
|
|
6
|
-
* Branded Id Schema for any table Id. To create Id Schema for a specific table,
|
|
7
|
-
* use {@link id}.
|
|
8
|
-
*/
|
|
4
|
+
/** Branded Id Schema. To create Id Schema for a specific table, use {@link id}. */
|
|
9
5
|
export const Id = S.string.pipe(S.pattern(/^[\w-]{21}$/), S.brand("Id"));
|
|
10
|
-
export type Id = S.Schema.
|
|
6
|
+
export type Id = S.Schema.Type<typeof Id>;
|
|
11
7
|
|
|
12
8
|
/**
|
|
13
9
|
* A factory function to create {@link Id} Schema for a specific table.
|
|
@@ -17,11 +13,11 @@ export type Id = S.Schema.To<typeof Id>;
|
|
|
17
13
|
* import { id } from "@evolu/react";
|
|
18
14
|
*
|
|
19
15
|
* const TodoId = id("Todo");
|
|
20
|
-
* type TodoId = S.Schema.
|
|
16
|
+
* type TodoId = S.Schema.Type<typeof TodoId>;
|
|
21
17
|
*/
|
|
22
18
|
export const id = <T extends string>(
|
|
23
19
|
table: T,
|
|
24
|
-
): S.
|
|
20
|
+
): S.brand<S.brand<S.Schema<string, string, never>, "Id">, T> =>
|
|
25
21
|
Id.pipe(S.brand(table));
|
|
26
22
|
|
|
27
23
|
/**
|
|
@@ -33,7 +29,7 @@ export const SqliteDate = S.string.pipe(
|
|
|
33
29
|
S.filter((s) => !isNaN(Date.parse(s))),
|
|
34
30
|
S.brand("SqliteDate"),
|
|
35
31
|
);
|
|
36
|
-
export type SqliteDate = S.Schema.
|
|
32
|
+
export type SqliteDate = S.Schema.Type<typeof SqliteDate>;
|
|
37
33
|
|
|
38
34
|
/**
|
|
39
35
|
* SQLite doesn't support the boolean type, so Evolu uses SqliteBoolean instead.
|
|
@@ -45,7 +41,7 @@ export const SqliteBoolean = S.number.pipe(
|
|
|
45
41
|
S.filter((s) => s === 0 || s === 1),
|
|
46
42
|
S.brand("SqliteBoolean"),
|
|
47
43
|
);
|
|
48
|
-
export type SqliteBoolean = S.Schema.
|
|
44
|
+
export type SqliteBoolean = S.Schema.Type<typeof SqliteBoolean>;
|
|
49
45
|
|
|
50
46
|
/**
|
|
51
47
|
* A helper for casting types not supported by SQLite. SQLite doesn't support
|
|
@@ -96,7 +92,7 @@ export const String = S.string.pipe(
|
|
|
96
92
|
),
|
|
97
93
|
S.brand("String"),
|
|
98
94
|
);
|
|
99
|
-
export type String = S.Schema.
|
|
95
|
+
export type String = S.Schema.Type<typeof String>;
|
|
100
96
|
|
|
101
97
|
/**
|
|
102
98
|
* A string with a maximum length of 1000 characters.
|
|
@@ -108,7 +104,7 @@ export type String = S.Schema.To<typeof String>;
|
|
|
108
104
|
* S.decode(String1000)(value);
|
|
109
105
|
*/
|
|
110
106
|
export const String1000 = String.pipe(S.maxLength(1000), S.brand("String1000"));
|
|
111
|
-
export type String1000 = S.Schema.
|
|
107
|
+
export type String1000 = S.Schema.Type<typeof String1000>;
|
|
112
108
|
|
|
113
109
|
/**
|
|
114
110
|
* A nonempty string with a maximum length of 1000 characters.
|
|
@@ -124,7 +120,7 @@ export const NonEmptyString1000 = String.pipe(
|
|
|
124
120
|
S.maxLength(1000),
|
|
125
121
|
S.brand("NonEmptyString1000"),
|
|
126
122
|
);
|
|
127
|
-
export type NonEmptyString1000 = S.Schema.
|
|
123
|
+
export type NonEmptyString1000 = S.Schema.Type<typeof NonEmptyString1000>;
|
|
128
124
|
|
|
129
125
|
/**
|
|
130
126
|
* A positive integer.
|
|
@@ -140,4 +136,4 @@ export const PositiveInt = S.number.pipe(
|
|
|
140
136
|
S.positive(),
|
|
141
137
|
S.brand("PositiveInt"),
|
|
142
138
|
);
|
|
143
|
-
export type PositiveInt = S.Schema.
|
|
139
|
+
export type PositiveInt = S.Schema.Type<typeof PositiveInt>;
|