@evolu/common 3.0.12 → 3.0.14
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 +2 -2
- package/dist/src/Crdt.d.ts.map +1 -1
- package/dist/src/Crdt.js +6 -6
- package/dist/src/Crypto.d.ts +1 -1
- package/dist/src/Crypto.d.ts.map +1 -1
- package/dist/src/Db.d.ts +7 -7
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Evolu.d.ts +4 -4
- package/dist/src/Evolu.d.ts.map +1 -1
- package/dist/src/Model.d.ts +11 -11
- package/dist/src/Model.d.ts.map +1 -1
- package/dist/src/Model.js +3 -3
- package/package.json +5 -5
- package/src/Crdt.ts +6 -6
- package/src/Crypto.ts +4 -2
- package/src/Db.ts +7 -6
- package/src/Evolu.ts +4 -4
- package/src/Model.ts +4 -4
package/dist/src/Crdt.d.ts
CHANGED
|
@@ -22,10 +22,10 @@ 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.BrandSchema<number, number & Brand.Brand<"Millis">>;
|
|
25
|
+
export declare const Millis: S.BrandSchema<never, number, number & Brand.Brand<"Millis">>;
|
|
26
26
|
export type Millis = S.Schema.To<typeof Millis>;
|
|
27
27
|
export declare const initialMillis: number & Brand.Brand<"Millis">;
|
|
28
|
-
export declare const Counter: S.BrandSchema<number, number & Brand.Brand<"Counter">>;
|
|
28
|
+
export declare const Counter: S.BrandSchema<never, number, number & Brand.Brand<"Counter">>;
|
|
29
29
|
export type Counter = S.Schema.To<typeof Counter>;
|
|
30
30
|
export type TimestampHash = number & Brand.Brand<"TimestampHash">;
|
|
31
31
|
export type TimestampString = string & Brand.Brand<"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,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ7C,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":"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"}
|
package/dist/src/Crdt.js
CHANGED
|
@@ -23,9 +23,9 @@ export const AllowedTimeRange = {
|
|
|
23
23
|
* fixed.
|
|
24
24
|
*/
|
|
25
25
|
export const Millis = S.number.pipe(S.greaterThan(AllowedTimeRange.greaterThan), S.lessThan(AllowedTimeRange.lessThan), S.brand("Millis"));
|
|
26
|
-
export const initialMillis = S.
|
|
26
|
+
export const initialMillis = S.decodeSync(Millis)(AllowedTimeRange.greaterThan + 1);
|
|
27
27
|
export const Counter = S.number.pipe(S.between(0, 65535), S.brand("Counter"));
|
|
28
|
-
const initialCounter = S.
|
|
28
|
+
const initialCounter = S.decodeSync(Counter)(0);
|
|
29
29
|
export const timestampToString = (t) => [
|
|
30
30
|
new Date(t.millis).toISOString(),
|
|
31
31
|
t.counter.toString(16).toUpperCase().padStart(4, "0"),
|
|
@@ -40,7 +40,7 @@ export const unsafeTimestampFromString = (s) => {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
export const timestampToHash = (t) => murmurhash(timestampToString(t));
|
|
43
|
-
const syncNodeId = S.
|
|
43
|
+
const syncNodeId = S.decodeSync(NodeId)("0000000000000000");
|
|
44
44
|
export const makeSyncTimestamp = (millis = initialMillis) => ({
|
|
45
45
|
millis,
|
|
46
46
|
counter: initialCounter,
|
|
@@ -53,7 +53,7 @@ export const makeInitialTimestamp = NanoId.pipe(Effect.flatMap(({ nanoidAsNodeId
|
|
|
53
53
|
})));
|
|
54
54
|
export const Time = Context.Tag();
|
|
55
55
|
export const TimeLive = Layer.succeed(Time, Time.of({
|
|
56
|
-
now: Effect.suspend(() => S.
|
|
56
|
+
now: Effect.suspend(() => S.decode(Millis)(Date.now())).pipe(Effect.catchTag("ParseError", () => Effect.fail({
|
|
57
57
|
_tag: "TimestampTimeOutOfRangeError",
|
|
58
58
|
}))),
|
|
59
59
|
}));
|
|
@@ -70,8 +70,8 @@ const getNextMillis = (millis) => Effect.gen(function* (_) {
|
|
|
70
70
|
}));
|
|
71
71
|
return next;
|
|
72
72
|
});
|
|
73
|
-
const incrementCounter = (counter) => pipe(Number.increment(counter), S.
|
|
74
|
-
const counterMin = S.
|
|
73
|
+
const incrementCounter = (counter) => pipe(Number.increment(counter), S.decodeEither(Counter), Either.mapLeft(() => ({ _tag: "TimestampCounterOverflowError" })));
|
|
74
|
+
const counterMin = S.decodeSync(Counter)(0);
|
|
75
75
|
export const sendTimestamp = (timestamp) => Effect.gen(function* (_) {
|
|
76
76
|
const millis = yield* _(getNextMillis([timestamp.millis]));
|
|
77
77
|
const counter = millis === timestamp.millis
|
package/dist/src/Crypto.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface NanoId {
|
|
|
25
25
|
readonly nanoidAsNodeId: Effect.Effect<never, never, NodeId>;
|
|
26
26
|
}
|
|
27
27
|
export declare const NanoId: Context.Tag<NanoId, NanoId>;
|
|
28
|
-
export declare const NodeId: S.BrandSchema<string, string & Brand.Brand<"NodeId">>;
|
|
28
|
+
export declare const NodeId: S.BrandSchema<never, string, string & Brand.Brand<"NodeId">>;
|
|
29
29
|
export type NodeId = S.Schema.To<typeof NodeId>;
|
|
30
30
|
export declare const NanoIdLive: Layer.Layer<never, never, NanoId>;
|
|
31
31
|
export declare const slip21Derive: (seed: Uint8Array, path: ReadonlyArray<string>) => Effect.Effect<never, never, Uint8Array>;
|
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,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,QAAQ,KACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,KAAK,2BAAuB,CAAC;AAE1C,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,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,MAAM,6BAAwB,CAAC;AAE5C,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,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,EAAE,CACf,QAAQ,EAAE,QAAQ,KACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,KAAK,EAAE,CACd,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;CAC3D;AAED,eAAO,MAAM,KAAK,2BAAuB,CAAC;AAE1C,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,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,MAAM,6BAAwB,CAAC;AAE5C,eAAO,MAAM,MAAM,8DAGlB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC;AAIhD,eAAO,MAAM,UAAU,mCAMtB,CAAC;AAIF,eAAO,MAAM,YAAY,SACjB,UAAU,QACV,cAAc,MAAM,CAAC,KAC1B,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAWrC,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,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAE7C,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,UAAU,KACnB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,SAAS,mCAA2B,CAAC;AAElD,eAAO,MAAM,aAAa,sCAgBzB,CAAC"}
|
package/dist/src/Db.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ type TableSchema = ReadonlyRecord.ReadonlyRecord<Value> & {
|
|
|
37
37
|
* });
|
|
38
38
|
* type TodoTable = S.Schema.To<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<{ readonly [K in Exclude<keyof Fields, S.FromOptionalKeys<Fields>>]: S.Schema.From<Fields[K]>; } & { readonly [K_1 in S.FromOptionalKeys<Fields>]?: S.Schema.From<Fields[K_1]>; } & {
|
|
40
|
+
export declare const table: <Fields extends TableFields>(fields: Fields) => ValidateFieldsTypes<Fields> extends true ? ValidateFieldsNames<Fields> extends true ? ValidateFieldsHasId<Fields> extends true ? S.Schema<never, Types.Simplify<{ readonly [K in Exclude<keyof Fields, S.FromOptionalKeys<Fields>>]: S.Schema.From<Fields[K]>; } & { readonly [K_1 in S.FromOptionalKeys<Fields>]?: S.Schema.From<Fields[K_1]>; } & {
|
|
41
41
|
readonly createdAt: string;
|
|
42
42
|
readonly updatedAt: string;
|
|
43
43
|
readonly isDeleted: number;
|
|
@@ -46,7 +46,7 @@ export declare const table: <Fields extends TableFields>(fields: Fields) => Vali
|
|
|
46
46
|
readonly updatedAt: string & Brand.Brand<"SqliteDate">;
|
|
47
47
|
readonly isDeleted: number & Brand.Brand<"SqliteBoolean">;
|
|
48
48
|
}>> : 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.">;
|
|
49
|
-
declare const ReservedColumns: S.Schema<{
|
|
49
|
+
declare const ReservedColumns: S.Schema<never, {
|
|
50
50
|
readonly createdAt: string;
|
|
51
51
|
readonly updatedAt: string;
|
|
52
52
|
readonly isDeleted: number;
|
|
@@ -55,8 +55,8 @@ declare const ReservedColumns: S.Schema<{
|
|
|
55
55
|
readonly updatedAt: string & Brand.Brand<"SqliteDate">;
|
|
56
56
|
readonly isDeleted: number & Brand.Brand<"SqliteBoolean">;
|
|
57
57
|
}>;
|
|
58
|
-
type TableFields = Record<string, S.Schema<any, any>>;
|
|
59
|
-
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 _I, infer A> ? A extends Value ? true : false : never : never : never;
|
|
58
|
+
type TableFields = Record<string, S.Schema<never, any, any>>;
|
|
59
|
+
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<never, infer _I, infer A> ? A extends Value ? true : false : never : never : never;
|
|
60
60
|
type ValidateFieldsNames<Fields extends TableFields> = keyof Fields extends infer K ? K extends keyof Fields ? K extends "createdAt" | "updatedAt" | "isDeleted" ? false : true : never : never;
|
|
61
61
|
type ValidateFieldsHasId<Fields extends TableFields> = "id" extends keyof Fields ? true : false;
|
|
62
62
|
/**
|
|
@@ -74,7 +74,7 @@ type ValidateFieldsHasId<Fields extends TableFields> = "id" extends keyof Fields
|
|
|
74
74
|
* });
|
|
75
75
|
* type Database = S.Schema.To<typeof Database>;
|
|
76
76
|
*/
|
|
77
|
-
export declare const database: <Fields extends S.StructFields>(fields: Fields) => S.Schema<Types.Simplify<S.FromStruct<Fields>>, Types.Simplify<S.ToStruct<Fields>>>;
|
|
77
|
+
export declare const database: <Fields extends S.StructFields>(fields: Fields) => S.Schema<S.Schema.Context<Fields[keyof Fields]>, Types.Simplify<S.FromStruct<Fields>>, Types.Simplify<S.ToStruct<Fields>>>;
|
|
78
78
|
declare const __queryBrand: unique symbol;
|
|
79
79
|
/**
|
|
80
80
|
* The query is an SQL query serialized as a string with a branded type
|
|
@@ -120,12 +120,12 @@ export interface Table {
|
|
|
120
120
|
readonly name: string;
|
|
121
121
|
readonly columns: ReadonlyArray<string>;
|
|
122
122
|
}
|
|
123
|
-
export declare const schemaToTables: (schema: S.Schema<any, any>) => Tables;
|
|
123
|
+
export declare const schemaToTables: (schema: S.Schema<never, any, any>) => Tables;
|
|
124
124
|
export declare const transaction: <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Sqlite | R, E, A>;
|
|
125
125
|
export interface NoSuchTableOrColumnError {
|
|
126
126
|
readonly _tag: "NoSuchTableOrColumnError";
|
|
127
127
|
}
|
|
128
|
-
export declare const SqliteNoSuchTableOrColumnError: S.Schema<{
|
|
128
|
+
export declare const SqliteNoSuchTableOrColumnError: S.Schema<never, {
|
|
129
129
|
readonly message: string;
|
|
130
130
|
}, {
|
|
131
131
|
readonly message: string;
|
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;AAG3C,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,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,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,WAAW,CAAC,CAAC;AAExE,KAAK,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IACxD,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Evolu.d.ts
CHANGED
|
@@ -177,7 +177,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
177
177
|
* import * as S from "@effect/schema/Schema";
|
|
178
178
|
*
|
|
179
179
|
* // Evolu uses the Schema to enforce domain model.
|
|
180
|
-
* const title = S.
|
|
180
|
+
* const title = S.decodeSync(Evolu.NonEmptyString1000)("A title");
|
|
181
181
|
*
|
|
182
182
|
* const { id } = evolu.create("todo", { title }, () => {
|
|
183
183
|
* // onComplete callback
|
|
@@ -204,7 +204,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
204
204
|
* import * as S from "@effect/schema/Schema";
|
|
205
205
|
*
|
|
206
206
|
* // Evolu uses the Schema to enforce domain model.
|
|
207
|
-
* const title = S.
|
|
207
|
+
* const title = S.decodeSync(Evolu.NonEmptyString1000)("A title");
|
|
208
208
|
* evolu.update("todo", { id, title });
|
|
209
209
|
*
|
|
210
210
|
* // To delete a row, set `isDeleted` to true.
|
|
@@ -223,7 +223,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
223
223
|
* Ensure tables and columns defined in {@link DatabaseSchema} exist in the
|
|
224
224
|
* database.
|
|
225
225
|
*/
|
|
226
|
-
readonly ensureSchema: <From, To extends S>(schema: S.Schema<From, To>) => void;
|
|
226
|
+
readonly ensureSchema: <From, To extends S>(schema: S.Schema<never, From, To>) => void;
|
|
227
227
|
/**
|
|
228
228
|
* Force sync with Evolu Server.
|
|
229
229
|
*
|
|
@@ -298,6 +298,6 @@ type Castable<T> = {
|
|
|
298
298
|
};
|
|
299
299
|
/** EvoluCommonLive has only platform independent side-effects. */
|
|
300
300
|
export declare const EvoluCommonLive: Layer.Layer<Config | FlushSync | AppState | DbWorker, never, Evolu<DatabaseSchema>>;
|
|
301
|
-
export declare const makeCreateEvolu: (EvoluLive: Layer.Layer<Config, never, Evolu>) => <From, To extends DatabaseSchema>(schema: S.Schema<From, To>, config?: Partial<Config>) => Evolu<To>;
|
|
301
|
+
export declare const makeCreateEvolu: (EvoluLive: Layer.Layer<Config, never, Evolu>) => <From, To extends DatabaseSchema>(schema: S.Schema<never, From, To>, config?: Partial<Config>) => Evolu<To>;
|
|
302
302
|
export {};
|
|
303
303
|
//# sourceMappingURL=Evolu.d.ts.map
|
package/dist/src/Evolu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../src/Evolu.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Evolu.d.ts","sourceRoot":"","sources":["../../src/Evolu.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Model.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as Brand from "effect/Brand";
|
|
|
4
4
|
* Branded Id Schema for any table Id. To create Id Schema for a specific table,
|
|
5
5
|
* use {@link id}.
|
|
6
6
|
*/
|
|
7
|
-
export declare const Id: S.BrandSchema<string, string & Brand.Brand<"Id">>;
|
|
7
|
+
export declare const Id: S.BrandSchema<never, string, string & Brand.Brand<"Id">>;
|
|
8
8
|
export type Id = S.Schema.To<typeof Id>;
|
|
9
9
|
/**
|
|
10
10
|
* A factory function to create {@link Id} Schema for a specific table.
|
|
@@ -16,20 +16,20 @@ export type Id = S.Schema.To<typeof Id>;
|
|
|
16
16
|
* const TodoId = id("Todo");
|
|
17
17
|
* type TodoId = S.Schema.To<typeof TodoId>;
|
|
18
18
|
*/
|
|
19
|
-
export declare const id: <T extends string>(table: T) => S.BrandSchema<string, string & Brand.Brand<"Id"> & Brand.Brand<T>>;
|
|
19
|
+
export declare const id: <T extends string>(table: T) => S.BrandSchema<never, string, string & Brand.Brand<"Id"> & Brand.Brand<T>>;
|
|
20
20
|
/**
|
|
21
21
|
* SQLite doesn't support the Date type, so Evolu uses SqliteDate instead. Use
|
|
22
22
|
* the {@link cast} helper to cast SqliteDate from Date and back.
|
|
23
23
|
* https://www.sqlite.org/quirks.html#no_separate_datetime_datatype
|
|
24
24
|
*/
|
|
25
|
-
export declare const SqliteDate: S.BrandSchema<string, string & Brand.Brand<"SqliteDate">>;
|
|
25
|
+
export declare const SqliteDate: S.BrandSchema<never, string, string & Brand.Brand<"SqliteDate">>;
|
|
26
26
|
export type SqliteDate = S.Schema.To<typeof SqliteDate>;
|
|
27
27
|
/**
|
|
28
28
|
* SQLite doesn't support the boolean type, so Evolu uses SqliteBoolean instead.
|
|
29
29
|
* Use the {@link cast} helper to cast SqliteBoolean from boolean and back.
|
|
30
30
|
* https://www.sqlite.org/quirks.html#no_separate_boolean_datatype
|
|
31
31
|
*/
|
|
32
|
-
export declare const SqliteBoolean: S.BrandSchema<number, number & Brand.Brand<"SqliteBoolean">>;
|
|
32
|
+
export declare const SqliteBoolean: S.BrandSchema<never, number, number & Brand.Brand<"SqliteBoolean">>;
|
|
33
33
|
export type SqliteBoolean = S.Schema.To<typeof SqliteBoolean>;
|
|
34
34
|
/**
|
|
35
35
|
* A helper for casting types not supported by SQLite. SQLite doesn't support
|
|
@@ -55,7 +55,7 @@ export declare function cast(value: SqliteDate): Date;
|
|
|
55
55
|
* not automatically parsed to a JSON object or array when retrieved. Use String
|
|
56
56
|
* schema for all string-based schemas.
|
|
57
57
|
*/
|
|
58
|
-
export declare const String: S.BrandSchema<string, string & Brand.Brand<"String">>;
|
|
58
|
+
export declare const String: S.BrandSchema<never, string, string & Brand.Brand<"String">>;
|
|
59
59
|
export type String = S.Schema.To<typeof String>;
|
|
60
60
|
/**
|
|
61
61
|
* A string with a maximum length of 1000 characters.
|
|
@@ -64,9 +64,9 @@ export type String = S.Schema.To<typeof String>;
|
|
|
64
64
|
* import * as S from "@effect/schema/Schema";
|
|
65
65
|
* import { String1000 } from "@evolu/react";
|
|
66
66
|
*
|
|
67
|
-
* S.
|
|
67
|
+
* S.decode(String1000)(value);
|
|
68
68
|
*/
|
|
69
|
-
export declare const String1000: S.BrandSchema<string, string & Brand.Brand<"String"> & Brand.Brand<"String1000">>;
|
|
69
|
+
export declare const String1000: S.BrandSchema<never, string, string & Brand.Brand<"String"> & Brand.Brand<"String1000">>;
|
|
70
70
|
export type String1000 = S.Schema.To<typeof String1000>;
|
|
71
71
|
/**
|
|
72
72
|
* A nonempty string with a maximum length of 1000 characters.
|
|
@@ -75,9 +75,9 @@ export type String1000 = S.Schema.To<typeof String1000>;
|
|
|
75
75
|
* import * as S from "@effect/schema/Schema";
|
|
76
76
|
* import { NonEmptyString1000 } from "@evolu/react";
|
|
77
77
|
*
|
|
78
|
-
* S.
|
|
78
|
+
* S.decode(NonEmptyString1000)(value);
|
|
79
79
|
*/
|
|
80
|
-
export declare const NonEmptyString1000: S.BrandSchema<string, string & Brand.Brand<"String"> & Brand.Brand<"NonEmptyString1000">>;
|
|
80
|
+
export declare const NonEmptyString1000: S.BrandSchema<never, string, string & Brand.Brand<"String"> & Brand.Brand<"NonEmptyString1000">>;
|
|
81
81
|
export type NonEmptyString1000 = S.Schema.To<typeof NonEmptyString1000>;
|
|
82
82
|
/**
|
|
83
83
|
* A positive integer.
|
|
@@ -86,8 +86,8 @@ export type NonEmptyString1000 = S.Schema.To<typeof NonEmptyString1000>;
|
|
|
86
86
|
* import * as S from "@effect/schema/Schema";
|
|
87
87
|
* import { PositiveInt } from "@evolu/react";
|
|
88
88
|
*
|
|
89
|
-
* S.
|
|
89
|
+
* S.decode(PositiveInt)(value);
|
|
90
90
|
*/
|
|
91
|
-
export declare const PositiveInt: S.BrandSchema<number, number & Brand.Brand<"PositiveInt">>;
|
|
91
|
+
export declare const PositiveInt: S.BrandSchema<never, number, number & Brand.Brand<"PositiveInt">>;
|
|
92
92
|
export type PositiveInt = S.Schema.To<typeof PositiveInt>;
|
|
93
93
|
//# 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;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC;;;GAGG;AACH,eAAO,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC;;;GAGG;AACH,eAAO,MAAM,EAAE,0DAAyD,CAAC;AACzE,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AAExC;;;;;;;;;GASG;AACH,eAAO,MAAM,EAAE,2GAGU,CAAC;AAE1B;;;;GAIG;AACH,eAAO,MAAM,UAAU,kEAGtB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,aAAa,qEAIzB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D;;;;;;;;;;;;;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,8DAclB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,0FAAwD,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,kGAI9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,mEAIvB,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/src/Model.js
CHANGED
|
@@ -61,7 +61,7 @@ export const String = S.string.pipe(S.filter((s) => {
|
|
|
61
61
|
* import * as S from "@effect/schema/Schema";
|
|
62
62
|
* import { String1000 } from "@evolu/react";
|
|
63
63
|
*
|
|
64
|
-
* S.
|
|
64
|
+
* S.decode(String1000)(value);
|
|
65
65
|
*/
|
|
66
66
|
export const String1000 = String.pipe(S.maxLength(1000), S.brand("String1000"));
|
|
67
67
|
/**
|
|
@@ -71,7 +71,7 @@ export const String1000 = String.pipe(S.maxLength(1000), S.brand("String1000"));
|
|
|
71
71
|
* import * as S from "@effect/schema/Schema";
|
|
72
72
|
* import { NonEmptyString1000 } from "@evolu/react";
|
|
73
73
|
*
|
|
74
|
-
* S.
|
|
74
|
+
* S.decode(NonEmptyString1000)(value);
|
|
75
75
|
*/
|
|
76
76
|
export const NonEmptyString1000 = String.pipe(S.minLength(1), S.maxLength(1000), S.brand("NonEmptyString1000"));
|
|
77
77
|
/**
|
|
@@ -81,6 +81,6 @@ export const NonEmptyString1000 = String.pipe(S.minLength(1), S.maxLength(1000),
|
|
|
81
81
|
* import * as S from "@effect/schema/Schema";
|
|
82
82
|
* import { PositiveInt } from "@evolu/react";
|
|
83
83
|
*
|
|
84
|
-
* S.
|
|
84
|
+
* S.decode(PositiveInt)(value);
|
|
85
85
|
*/
|
|
86
86
|
export const PositiveInt = S.number.pipe(S.int(), S.positive(), S.brand("PositiveInt"));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolu/common",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.14",
|
|
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",
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"nanoid": "^5.0.4"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@effect/schema": "^0.
|
|
55
|
+
"@effect/schema": "^0.61.2",
|
|
56
56
|
"@protobuf-ts/plugin": "^2.9.3",
|
|
57
57
|
"@protobuf-ts/protoc": "^2.9.3",
|
|
58
58
|
"array-shuffle": "^3.0.0",
|
|
59
|
-
"effect": "2.
|
|
59
|
+
"effect": "2.2.2",
|
|
60
60
|
"eslint": "^8.56.0",
|
|
61
61
|
"typescript": "^5.3.3",
|
|
62
62
|
"vitest": "^1.2.1",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"eslint-config-evolu": "1.0.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@effect/schema": "^0.
|
|
68
|
-
"effect": "2.
|
|
67
|
+
"@effect/schema": "^0.61.2",
|
|
68
|
+
"effect": "2.2.2"
|
|
69
69
|
},
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
package/src/Crdt.ts
CHANGED
|
@@ -44,14 +44,14 @@ export const Millis = S.number.pipe(
|
|
|
44
44
|
|
|
45
45
|
export type Millis = S.Schema.To<typeof Millis>;
|
|
46
46
|
|
|
47
|
-
export const initialMillis = S.
|
|
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
52
|
export type Counter = S.Schema.To<typeof Counter>;
|
|
53
53
|
|
|
54
|
-
const initialCounter = S.
|
|
54
|
+
const initialCounter = S.decodeSync(Counter)(0);
|
|
55
55
|
|
|
56
56
|
export type TimestampHash = number & Brand.Brand<"TimestampHash">;
|
|
57
57
|
|
|
@@ -76,7 +76,7 @@ export const unsafeTimestampFromString = (s: TimestampString): Timestamp => {
|
|
|
76
76
|
export const timestampToHash = (t: Timestamp): TimestampHash =>
|
|
77
77
|
murmurhash(timestampToString(t)) as TimestampHash;
|
|
78
78
|
|
|
79
|
-
const syncNodeId = S.
|
|
79
|
+
const syncNodeId = S.decodeSync(NodeId)("0000000000000000");
|
|
80
80
|
|
|
81
81
|
export const makeSyncTimestamp = (
|
|
82
82
|
millis: Millis = initialMillis,
|
|
@@ -106,7 +106,7 @@ export const Time = Context.Tag<Time>();
|
|
|
106
106
|
export const TimeLive = Layer.succeed(
|
|
107
107
|
Time,
|
|
108
108
|
Time.of({
|
|
109
|
-
now: Effect.suspend(() => S.
|
|
109
|
+
now: Effect.suspend(() => S.decode(Millis)(Date.now())).pipe(
|
|
110
110
|
Effect.catchTag("ParseError", () =>
|
|
111
111
|
Effect.fail<TimestampTimeOutOfRangeError>({
|
|
112
112
|
_tag: "TimestampTimeOutOfRangeError",
|
|
@@ -177,11 +177,11 @@ const incrementCounter = (
|
|
|
177
177
|
): Either.Either<TimestampCounterOverflowError, Counter> =>
|
|
178
178
|
pipe(
|
|
179
179
|
Number.increment(counter),
|
|
180
|
-
S.
|
|
180
|
+
S.decodeEither(Counter),
|
|
181
181
|
Either.mapLeft(() => ({ _tag: "TimestampCounterOverflowError" })),
|
|
182
182
|
);
|
|
183
183
|
|
|
184
|
-
const counterMin = S.
|
|
184
|
+
const counterMin = S.decodeSync(Counter)(0);
|
|
185
185
|
|
|
186
186
|
export const sendTimestamp = (
|
|
187
187
|
timestamp: Timestamp,
|
package/src/Crypto.ts
CHANGED
|
@@ -45,8 +45,10 @@ export interface NanoId {
|
|
|
45
45
|
|
|
46
46
|
export const NanoId = Context.Tag<NanoId>();
|
|
47
47
|
|
|
48
|
-
export const NodeId
|
|
49
|
-
S.
|
|
48
|
+
export const NodeId = S.string.pipe(
|
|
49
|
+
S.pattern(/^[\w-]{16}$/),
|
|
50
|
+
S.brand("NodeId"),
|
|
51
|
+
);
|
|
50
52
|
export type NodeId = S.Schema.To<typeof NodeId>;
|
|
51
53
|
|
|
52
54
|
const nanoidForNodeId = customAlphabet("0123456789abcdef", 16);
|
package/src/Db.ts
CHANGED
|
@@ -73,6 +73,7 @@ export const table = <Fields extends TableFields>(
|
|
|
73
73
|
? ValidateFieldsNames<Fields> extends true
|
|
74
74
|
? ValidateFieldsHasId<Fields> extends true
|
|
75
75
|
? S.Schema<
|
|
76
|
+
never,
|
|
76
77
|
Types.Simplify<
|
|
77
78
|
S.FromStruct<Fields> & S.Schema.From<typeof ReservedColumns>
|
|
78
79
|
>,
|
|
@@ -91,7 +92,7 @@ const ReservedColumns = S.struct({
|
|
|
91
92
|
isDeleted: SqliteBoolean,
|
|
92
93
|
});
|
|
93
94
|
|
|
94
|
-
type TableFields = Record<string, S.Schema<any, any>>;
|
|
95
|
+
type TableFields = Record<string, S.Schema<never, any, any>>;
|
|
95
96
|
|
|
96
97
|
type ValidateFieldsTypes<Fields extends TableFields> =
|
|
97
98
|
keyof Fields extends infer K
|
|
@@ -99,7 +100,7 @@ type ValidateFieldsTypes<Fields extends TableFields> =
|
|
|
99
100
|
? Fields[K] extends TableFields
|
|
100
101
|
? ValidateFieldsTypes<Fields[K]>
|
|
101
102
|
: // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
102
|
-
Fields[K] extends S.Schema<infer _I, infer A>
|
|
103
|
+
Fields[K] extends S.Schema<never, infer _I, infer A>
|
|
103
104
|
? A extends Value
|
|
104
105
|
? true
|
|
105
106
|
: false
|
|
@@ -258,9 +259,9 @@ export interface Table {
|
|
|
258
259
|
|
|
259
260
|
// https://github.com/Effect-TS/schema/releases/tag/v0.18.0
|
|
260
261
|
const getPropertySignatures = <I extends { [K in keyof A]: any }, A>(
|
|
261
|
-
schema: S.Schema<I, A>,
|
|
262
|
-
): { [K in keyof A]: S.Schema<I[K], A[K]> } => {
|
|
263
|
-
const out: Record<PropertyKey, S.Schema<any>> = {};
|
|
262
|
+
schema: S.Schema<never, I, A>,
|
|
263
|
+
): { [K in keyof A]: S.Schema<never, I[K], A[K]> } => {
|
|
264
|
+
const out: Record<PropertyKey, S.Schema<never, any, any>> = {};
|
|
264
265
|
const propertySignatures = AST.getPropertySignatures(schema.ast);
|
|
265
266
|
for (let i = 0; i < propertySignatures.length; i++) {
|
|
266
267
|
const propertySignature = propertySignatures[i];
|
|
@@ -270,7 +271,7 @@ const getPropertySignatures = <I extends { [K in keyof A]: any }, A>(
|
|
|
270
271
|
return out as any;
|
|
271
272
|
};
|
|
272
273
|
|
|
273
|
-
export const schemaToTables = (schema: S.Schema<any, any>): Tables =>
|
|
274
|
+
export const schemaToTables = (schema: S.Schema<never, any, any>): Tables =>
|
|
274
275
|
pipe(
|
|
275
276
|
getPropertySignatures(schema),
|
|
276
277
|
ReadonlyRecord.toEntries,
|
package/src/Evolu.ts
CHANGED
|
@@ -215,7 +215,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
215
215
|
* import * as S from "@effect/schema/Schema";
|
|
216
216
|
*
|
|
217
217
|
* // Evolu uses the Schema to enforce domain model.
|
|
218
|
-
* const title = S.
|
|
218
|
+
* const title = S.decodeSync(Evolu.NonEmptyString1000)("A title");
|
|
219
219
|
*
|
|
220
220
|
* const { id } = evolu.create("todo", { title }, () => {
|
|
221
221
|
* // onComplete callback
|
|
@@ -243,7 +243,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
243
243
|
* import * as S from "@effect/schema/Schema";
|
|
244
244
|
*
|
|
245
245
|
* // Evolu uses the Schema to enforce domain model.
|
|
246
|
-
* const title = S.
|
|
246
|
+
* const title = S.decodeSync(Evolu.NonEmptyString1000)("A title");
|
|
247
247
|
* evolu.update("todo", { id, title });
|
|
248
248
|
*
|
|
249
249
|
* // To delete a row, set `isDeleted` to true.
|
|
@@ -266,7 +266,7 @@ export interface Evolu<S extends DatabaseSchema = DatabaseSchema> {
|
|
|
266
266
|
* database.
|
|
267
267
|
*/
|
|
268
268
|
readonly ensureSchema: <From, To extends S>(
|
|
269
|
-
schema: S.Schema<From, To>,
|
|
269
|
+
schema: S.Schema<never, From, To>,
|
|
270
270
|
) => void;
|
|
271
271
|
|
|
272
272
|
/**
|
|
@@ -743,7 +743,7 @@ export const EvoluCommonLive = EvoluCommon.pipe(
|
|
|
743
743
|
export const makeCreateEvolu =
|
|
744
744
|
(EvoluLive: Layer.Layer<Config, never, Evolu>) =>
|
|
745
745
|
<From, To extends DatabaseSchema>(
|
|
746
|
-
schema: S.Schema<From, To>,
|
|
746
|
+
schema: S.Schema<never, From, To>,
|
|
747
747
|
config?: Partial<Config>,
|
|
748
748
|
): Evolu<To> => {
|
|
749
749
|
// For https://nextjs.org/docs/architecture/fast-refresh etc.
|
package/src/Model.ts
CHANGED
|
@@ -21,7 +21,7 @@ export type Id = S.Schema.To<typeof Id>;
|
|
|
21
21
|
*/
|
|
22
22
|
export const id = <T extends string>(
|
|
23
23
|
table: T,
|
|
24
|
-
): S.BrandSchema<string, string & Brand.Brand<"Id"> & Brand.Brand<T>> =>
|
|
24
|
+
): S.BrandSchema<never, string, string & Brand.Brand<"Id"> & Brand.Brand<T>> =>
|
|
25
25
|
Id.pipe(S.brand(table));
|
|
26
26
|
|
|
27
27
|
/**
|
|
@@ -105,7 +105,7 @@ export type String = S.Schema.To<typeof String>;
|
|
|
105
105
|
* import * as S from "@effect/schema/Schema";
|
|
106
106
|
* import { String1000 } from "@evolu/react";
|
|
107
107
|
*
|
|
108
|
-
* S.
|
|
108
|
+
* S.decode(String1000)(value);
|
|
109
109
|
*/
|
|
110
110
|
export const String1000 = String.pipe(S.maxLength(1000), S.brand("String1000"));
|
|
111
111
|
export type String1000 = S.Schema.To<typeof String1000>;
|
|
@@ -117,7 +117,7 @@ export type String1000 = S.Schema.To<typeof String1000>;
|
|
|
117
117
|
* import * as S from "@effect/schema/Schema";
|
|
118
118
|
* import { NonEmptyString1000 } from "@evolu/react";
|
|
119
119
|
*
|
|
120
|
-
* S.
|
|
120
|
+
* S.decode(NonEmptyString1000)(value);
|
|
121
121
|
*/
|
|
122
122
|
export const NonEmptyString1000 = String.pipe(
|
|
123
123
|
S.minLength(1),
|
|
@@ -133,7 +133,7 @@ export type NonEmptyString1000 = S.Schema.To<typeof NonEmptyString1000>;
|
|
|
133
133
|
* import * as S from "@effect/schema/Schema";
|
|
134
134
|
* import { PositiveInt } from "@evolu/react";
|
|
135
135
|
*
|
|
136
|
-
* S.
|
|
136
|
+
* S.decode(PositiveInt)(value);
|
|
137
137
|
*/
|
|
138
138
|
export const PositiveInt = S.number.pipe(
|
|
139
139
|
S.int(),
|