@evolu/common 8.6.1 → 8.6.2

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.
@@ -47,7 +47,7 @@ export interface SqliteTransaction {
47
47
  /** Represents a SQL query to be executed on a {@link Sqlite} database. */
48
48
  export interface SqliteQuery {
49
49
  readonly sql: SafeSql;
50
- readonly parameters: Array<SqliteValue>;
50
+ readonly parameters: SqliteQueryParameters;
51
51
  readonly options?: SqliteQueryOptions;
52
52
  }
53
53
  /** Serialized {@link SqliteQuery} used as a stable string key. */
@@ -57,13 +57,29 @@ export type SafeSql = string & Brand<"SafeSql">;
57
57
  /**
58
58
  * A value that can be stored in {@link Sqlite}.
59
59
  *
60
+ * Numeric values use {@link FiniteNumber} because JavaScript numbers also
61
+ * include `NaN` and infinities. SQLite binds `NaN` as `NULL`, while JSON
62
+ * serialization converts all non-finite numbers to `null`. Restricting numbers
63
+ * to finite values preserves them across storage and query serialization.
64
+ *
60
65
  * Note that Evolu can't support Int64 because expo-sqlite (and some others) do
61
66
  * not support it.
62
67
  */
63
- export declare const SqliteValue: import("./Type.ts").UnionType<readonly [import("./Type.ts").LiteralType<null>, import("./Type.ts").Type<"String", string, string, import("./Type.ts").TypeOfError<"String">, null, import("./Type.ts").TypeOfError<"String">, never, string, true>, import("./Type.ts").Type<"Number", number, number, import("./Type.ts").TypeOfError<"Number">, null, import("./Type.ts").TypeOfError<"Number">, never, number, true>, import("./Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.ts").ObjectTagError<"Uint8Array">, null, import("./Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>;
68
+ export declare const SqliteValue: import("./Type.ts").UnionType<readonly [import("./Type.ts").BrandType<import("./Type.ts").BrandType<import("./Type.ts").Type<"Number", number, number, import("./Type.ts").TypeOfError<"Number">, null, import("./Type.ts").TypeOfError<"Number">, never, number, true>, "NonNaN", import("./Type.ts").NonNaNError>, "Finite", import("./Type.ts").FiniteError>, import("./Type.ts").LiteralType<null>, import("./Type.ts").Type<"String", string, string, import("./Type.ts").TypeOfError<"String">, null, import("./Type.ts").TypeOfError<"String">, never, string, true>, import("./Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.ts").ObjectTagError<"Uint8Array">, null, import("./Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>;
64
69
  export type SqliteValue = typeof SqliteValue.Output;
65
- /** Equality comparison for {@link SqliteValue}. */
66
- export declare const eqSqliteValue: Eq<SqliteValue>;
70
+ /** Parameters of a {@link SqliteQuery}. */
71
+ export declare const SqliteQueryParameters: ArrayType<import("./Type.ts").UnionType<readonly [import("./Type.ts").BrandType<import("./Type.ts").BrandType<import("./Type.ts").Type<"Number", number, number, import("./Type.ts").TypeOfError<"Number">, null, import("./Type.ts").TypeOfError<"Number">, never, number, true>, "NonNaN", import("./Type.ts").NonNaNError>, "Finite", import("./Type.ts").FiniteError>, import("./Type.ts").LiteralType<null>, import("./Type.ts").Type<"String", string, string, import("./Type.ts").TypeOfError<"String">, null, import("./Type.ts").TypeOfError<"String">, never, string, true>, import("./Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.ts").ObjectTagError<"Uint8Array">, null, import("./Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>>;
72
+ export type SqliteQueryParameters = typeof SqliteQueryParameters.Output;
73
+ /**
74
+ * A value used in {@link sql} template parameters and {@link Sqlite} query
75
+ * results.
76
+ *
77
+ * It differs from {@link SqliteValue} only by using `number` instead of
78
+ * {@link FiniteNumber}.
79
+ */
80
+ export type SqliteValueInput = typeof SqliteValue.Input;
81
+ /** Equality comparison for {@link SqliteValueInput}. */
82
+ export declare const eqSqliteValue: Eq<SqliteValueInput>;
67
83
  /** Options for configuring {@link SqliteQuery} execution behavior. */
68
84
  export interface SqliteQueryOptions {
69
85
  /**
@@ -99,9 +115,9 @@ export interface SqliteExecResult<R extends SqliteRow = SqliteRow> {
99
115
  }
100
116
  /**
101
117
  * A row returned from a {@link Sqlite} query, mapping column names to
102
- * {@link SqliteValue}.
118
+ * {@link SqliteValueInput}.
103
119
  */
104
- export type SqliteRow = Record<string, SqliteValue>;
120
+ export type SqliteRow = Record<string, SqliteValueInput>;
105
121
  /**
106
122
  * SQLite driver interface.
107
123
  *
@@ -172,7 +188,7 @@ export interface RawSql extends Typed<"RawSql"> {
172
188
  readonly sql: string;
173
189
  }
174
190
  /** A parameter accepted by the {@link sql} tagged template. */
175
- export type SqlTemplateParam = SqliteValue | SqlIdentifier | RawSql;
191
+ export type SqlTemplateParam = SqliteValueInput | SqlIdentifier | RawSql;
176
192
  export declare function sql(strings: TemplateStringsArray, ...parameters: Array<SqlTemplateParam>): SqliteQuery;
177
193
  export declare namespace sql {
178
194
  var identifier: (identifier: string) => SqlIdentifier;
@@ -231,8 +247,6 @@ export declare const getSqliteSnapshot: (deps: SqliteDep) => SqliteSnapshot;
231
247
  *
232
248
  * See: https://www.sqlite.org/quirks.html#no_separate_boolean_datatype
233
249
  *
234
- * ## Tips
235
- *
236
250
  * - Use {@link sqliteTrue} and {@link sqliteFalse} constants for better
237
251
  * readability.
238
252
  * - Use {@link booleanToSqliteBoolean} and {@link sqliteBooleanToBoolean} for
@@ -1 +1 @@
1
- {"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sqlite.d.ts","sourceRoot":"","sources":["../../src/Sqlite.ts"],"names":[],"mappings":"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"}
@@ -56,24 +56,31 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
56
56
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
57
57
  });
58
58
  import { bytesToHex, hexToBytes } from "./Buffer.js";
59
- import { createEqObject, eqArrayNumber, eqString } from "./Eq.js";
59
+ import { createEqObject, eqString, eqUint8Array } from "./Eq.js";
60
60
  import { disposable } from "./Function.js";
61
61
  import { createMutableRecord, objectToEntries } from "./Object.js";
62
62
  import { ok } from "./Result.js";
63
63
  import { testCreateRun } from "./Task.js";
64
- import { array, Null, Number, object, record, set, String, testName, Uint8Array, union, } from "./Type.js";
64
+ import { array, FiniteNumber, Null, object, record, set, String, testName, Uint8Array, union, } from "./Type.js";
65
65
  /**
66
66
  * A value that can be stored in {@link Sqlite}.
67
67
  *
68
+ * Numeric values use {@link FiniteNumber} because JavaScript numbers also
69
+ * include `NaN` and infinities. SQLite binds `NaN` as `NULL`, while JSON
70
+ * serialization converts all non-finite numbers to `null`. Restricting numbers
71
+ * to finite values preserves them across storage and query serialization.
72
+ *
68
73
  * Note that Evolu can't support Int64 because expo-sqlite (and some others) do
69
74
  * not support it.
70
75
  */
71
- export const SqliteValue = /*#__PURE__*/ union(Null, String, Number, Uint8Array);
72
- /** Equality comparison for {@link SqliteValue}. */
73
- export const eqSqliteValue = (x, y) => Uint8Array.is(x) && Uint8Array.is(y) ? eqArrayNumber(x, y) : x === y;
76
+ export const SqliteValue = /*#__PURE__*/ union(FiniteNumber, Null, String, Uint8Array);
77
+ /** Parameters of a {@link SqliteQuery}. */
78
+ export const SqliteQueryParameters = /*#__PURE__*/ array(SqliteValue);
79
+ /** Equality comparison for {@link SqliteValueInput}. */
80
+ export const eqSqliteValue = (x, y) => Uint8Array.is(x) && Uint8Array.is(y) ? eqUint8Array(x, y) : x === y;
74
81
  /** Converts a {@link SqliteQuery} into a stable {@link SqliteQueryString}. */
75
82
  export const sqliteQueryToSqliteQueryString = (query) => {
76
- const params = query.parameters.map((value) => value instanceof globalThis.Uint8Array
83
+ const params = query.parameters.map((value) => Uint8Array.is(value)
77
84
  ? ["b", bytesToHex(value)]
78
85
  : ["j", value]);
79
86
  const options = query.options
@@ -318,7 +325,7 @@ export const sql = (strings, ...parameters) => {
318
325
  }
319
326
  else {
320
327
  sql += "?";
321
- values.push(param);
328
+ values.push(SqliteValue.orThrow(param));
322
329
  }
323
330
  }
324
331
  }
@@ -422,8 +429,6 @@ export const getSqliteSnapshot = (deps) => {
422
429
  *
423
430
  * See: https://www.sqlite.org/quirks.html#no_separate_boolean_datatype
424
431
  *
425
- * ## Tips
426
- *
427
432
  * - Use {@link sqliteTrue} and {@link sqliteFalse} constants for better
428
433
  * readability.
429
434
  * - Use {@link booleanToSqliteBoolean} and {@link sqliteBooleanToBoolean} for
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EACV,qBAAqB,EAGrB,YAAY,EACb,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAQL,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAqBtB,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EAGf,MAAM,aAAa,CAAC;AA+BrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GACnC,yBAAyB,GACzB,cAAc,GACd,qBAAqB,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,aAAa,SACjB,UAAU,CAAC,YAAY,CAAC,KAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAwM/D,CAAC"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../src/local-first/Db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EACV,qBAAqB,EAGrB,YAAY,EACb,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EASL,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAqBtB,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EAGf,MAAM,aAAa,CAAC;AA+BrB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GACnC,yBAAyB,GACzB,cAAc,GACd,qBAAqB,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,aAAa,SACjB,UAAU,CAAC,YAAY,CAAC,KAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAwM/D,CAAC"}
@@ -620,6 +620,7 @@ const dbChangeToColumns = (change, now) => {
620
620
  if (change.isDelete != null) {
621
621
  values = appendToArray(values, [
622
622
  "isDeleted",
623
+ // SQLite boolean values are fixed to the finite numbers 0 and 1.
623
624
  booleanToSqliteBoolean(change.isDelete),
624
625
  ]);
625
626
  }
@@ -167,7 +167,7 @@ import { type DecryptWithXChaCha20Poly1305Error, EncryptionKey, type RandomBytes
167
167
  import { type Result } from "../Result.ts";
168
168
  import { SqliteValue } from "../Sqlite.ts";
169
169
  import { type Task } from "../Task.ts";
170
- import { NonNegativeInt, PositiveInt, type Typed } from "../Type.ts";
170
+ import { FiniteNumber, NonNegativeInt, PositiveInt, type Typed } from "../Type.ts";
171
171
  import { type Owner, type OwnerError, OwnerId, OwnerWriteKey } from "./Owner.ts";
172
172
  import { type BaseRange, type CrdtMessage, DbChange, type EncryptedCrdtMessage, type EncryptedDbChange, type FingerprintRange, RangeType, type SkipRange, type StorageDep } from "./Storage.ts";
173
173
  import { NodeId, Timestamp } from "./Timestamp.ts";
@@ -413,11 +413,11 @@ export declare const applyProtocolMessageAsRelay: (inputMessage: Uint8Array, opt
413
413
  version?: NonNegativeInt) => Task<ApplyProtocolMessageAsRelayResult, ProtocolInvalidDataError, StorageDep>;
414
414
  export declare const decodeRle: <T>(buffer: Buffer, length: NonNegativeInt, decodeValue: () => T) => ReadonlyArray<T>;
415
415
  /**
416
- * Evolu uses MessagePack to handle all number variants except for
417
- * NonNegativeInt. For NonNegativeInt, Evolu provides more efficient encoding.
416
+ * Evolu uses MessagePack to handle finite numbers except for NonNegativeInt.
417
+ * For NonNegativeInt, Evolu provides more efficient encoding.
418
418
  */
419
- export declare const encodeNumber: (buffer: Buffer, number: number) => void;
420
- export declare const decodeNumber: (buffer: Buffer) => number;
419
+ export declare const encodeNumber: (buffer: Buffer, number: FiniteNumber) => void;
420
+ export declare const decodeNumber: (buffer: Buffer) => FiniteNumber;
421
421
  /**
422
422
  * Encodes an array of boolean flags into a single byte.
423
423
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../../src/local-first/Protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgKG;AAoBH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAGL,KAAK,iCAAiC,EACtC,aAAa,EAGb,KAAK,cAAc,EAGpB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAKL,YAAY,EASZ,cAAc,EAEd,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,KAAK,EACV,KAAK,UAAU,EACf,OAAO,EAGP,aAAa,EAEd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EAIrB,SAAS,EAET,KAAK,SAAS,EACd,KAAK,UAAU,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,MAAM,EACN,SAAS,EAKV,MAAM,gBAAgB,CAAC;AAaxB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,yfAG7B,CAAC;AAEP,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EACX,sBAAsB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,6eAGnC,CAAC;AACP,MAAM,MAAM,4BAA4B,GACtC,OAAO,4BAA4B,CAAC,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,EACpC,4BAA4B,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEpE,8BAA8B;AAC9B,eAAO,MAAM,eAAe,sGAAiB,CAAC;AAE9C,eAAO,MAAM,WAAW;IACtB,wEAAwE;aACxE,OAAO,EAAE,CAAC;IACV,yEAAyE;aACzE,QAAQ,EAAE,CAAC;IACX,0EAA0E;aAC1E,SAAS,EAAE,CAAC;CACJ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,gBAAgB,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAChB,UAAU,KACvB,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAUjD,CAAC;AAEF,eAAO,MAAM,iBAAiB;IAC5B,8CAA8C;aAC9C,IAAI,EAAE,CAAC;IACP,2CAA2C;aAC3C,SAAS,EAAE,CAAC;IACZ,+CAA+C;aAC/C,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,eAAO,MAAM,iBAAiB;aAC5B,OAAO,EAAE,CAAC;IACV,gDAAgD;aAChD,aAAa,EAAE,CAAC;IAChB,6CAA6C;aAC7C,UAAU,EAAE,CAAC;IACb,6CAA6C;aAC7C,UAAU,EAAE,CAAC;IACb,4CAA4C;aAC5C,SAAS,EAAE,CAAC;CACJ,CAAC;AAEX,KAAK,iBAAiB,GACpB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,8BAA8B,CAAC;AAEnC;;;GAGG;AACH,MAAM,WAAW,oBACf,SAAQ,UAAU,EAAE,KAAK,CAAC,sBAAsB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,4DAA4D;AAC5D,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,0BAA0B,CAAC;IACjF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,mFAAmF;AACnF,MAAM,WAAW,qBACf,SAAQ,UAAU,EAAE,KAAK,CAAC,uBAAuB,CAAC;CAAG;AAEvD;;;GAGG;AACH,MAAM,WAAW,kBACf,SAAQ,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC;CAAG;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBACf,SAAQ,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC;CAAG;AAEpD;;;GAGG;AACH,MAAM,WAAW,iBACf,SAAQ,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC;CAAG;AAEnD;;;;GAIG;AACH,MAAM,WAAW,8BAA+B,SAAQ,KAAK,CAAC,gCAAgC,CAAC;IAC7F,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,SACzC,cAAc,aAEZ,KAAK,YACF,qBAAqB,CAAC,WAAW,CAAC,YAClC,sBAAsB,KAC/B,eAoDF,CAAC;AAEJ,kDAAkD;AAClD,eAAO,MAAM,4BAA4B,SAChC,UAAU,GAAG,UAAU,eACpB,OAAO,qBAAqB,gBAAgB,KAAG,eAkBxD,CAAC;AAEJ,eAAO,MAAM,mCAAmC,YACrC,OAAO,KACf,eAIU,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;IAEnE,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAE7D,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC;IAEtC,QAAQ,CAAC,+BAA+B,EAAE,CACxC,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,oBAAoB,GAAG,IAAI,KACjC,OAAO,CAAC;IAEb,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,mCAAmC,KACtE,IAAI,CAAC;IAEV,QAAQ,CAAC,MAAM,EAAE,MAAM,eAAe,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC;CACrC;AAED,eAAO,MAAM,2BAA2B,YAC7B,OAAO,WACP;IACP,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC,GAAG,CACA;IACE,QAAQ,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,OAAO,WAAW,CAAC,SAAS,CAAC;CACpD,CACJ,KACA,qBA0LF,CAAC;AAEF,MAAM,WAAW,mCAAoC,SAAQ,SAAS;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,SAAS,CAAC,UAAU,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAwDzC,CAAC;AAoCF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,aAAa,CAAC,EAAE,4BAA4B,CAAC;IAE7C,sBAAsB;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,oCAAqC,SAAQ,KAAK,CAAC,UAAU,CAAC;IAC7E,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,sCAAuC,SAAQ,KAAK,CAAC,YAAY,CAAC;CAAG;AAEtF,MAAM,WAAW,qCAAsC,SAAQ,KAAK,CAAC,WAAW,CAAC;CAAG;AAEpF,MAAM,MAAM,kCAAkC,GAC1C,oCAAoC,GACpC,sCAAsC,GACtC,qCAAqC,CAAC;AAE1C,eAAO,MAAM,4BAA4B,iBAEvB,UAAU,YACf,mCAAmC,KAC3C,IAAI,CACL,kCAAkC,EAChC,wBAAwB,GACxB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,EACpB,UAAU,CAoHX,CAAC;AAEJ,MAAM,WAAW,kCAAkC;IACjD,8CAA8C;IAC9C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,iDAAiD;IACjD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAEjE,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,aAAa,CAAC,EAAE,4BAA4B,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iCAAkC,SAAQ,KAAK,CAAC,UAAU,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,eAAO,MAAM,2BAA2B,iBAEtB,UAAU,YACf,kCAAkC;AAC3C,sBAAsB;UACb,cAAc,KACtB,IAAI,CACL,iCAAiC,EACjC,wBAAwB,EACxB,UAAU,CA4JX,CAAC;AAudJ,eAAO,MAAM,SAAS,GAAI,CAAC,UACjB,MAAM,UACN,cAAc,eACT,MAAM,CAAC,KACnB,aAAa,CAAC,CAAC,CA2BjB,CAAC;AAOF;;;GAGG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,YAAY,KAAG,IAEnE,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,YAqB7C,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,SACP,aAAa,CAAC,OAAO,CAAC,KAC5B,IAQF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,WACd,MAAM,SACP,WAAW,KACjB,aAAa,CAAC,OAAO,CAQvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,SAC5B,cAAc,eACX,WAAW,OAAO,aAAa,KAAG,iBA0C3C,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,YAC1B,oBAAoB,OACxB,aAAa,KACjB,MAAM,CACP,QAAQ,EACN,iCAAiC,GACjC,wBAAwB,GACxB,8BAA8B,CA8DjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,OACT,cAAc,KAClB,IAoBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,cAiBrD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,KAAG,IAEpE,CAAC;AAEF,eAAO,MAAM,YAAY,6BAAuB,CAAC;AAEjD,eAAO,MAAM,YAAY,WAAY,MAAM,SAAS,MAAM,KAAG,IAI5D,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAI7C,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,MAAM,KAAG,IAE7D,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAG7C,CAAC;AAMF,eAAO,MAAM,iBAAiB;aAI5B,MAAM;aACN,MAAM;aACN,IAAI;aACJ,KAAK;aAIL,cAAc;aAId,WAAW;aACX,SAAS;aACT,EAAE;aACF,IAAI;aAKJ,0BAA0B;aAE1B,uBAAuB;CAIf,CAAC;AAEX,eAAO,MAAM,iBAAiB,WAAY,MAAM,SAAS,WAAW,KAAG,IAqFtE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAG,WAyDlD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,qBACpB,eAAe,gBACnB,OAAO,KACpB,OAOF,CAAC"}
@@ -187,7 +187,7 @@ import { err, ok } from "../Result.js";
187
187
  import { SqliteValue } from "../Sqlite.js";
188
188
  import { AbortError } from "../Task.js";
189
189
  import { Millis } from "../Time.js";
190
- import { Base64Url, base64UrlToUint8Array, between, DateIso, Id, IdBytes, idBytesToId, idBytesTypeValueLength, idToIdBytes, Int, Json, jsonToJsonValue, NonNegativeInt, Number, onePositiveInt, PositiveInt, uint8ArrayToBase64Url, zeroNonNegativeInt, } from "../Type.js";
190
+ import { Base64Url, base64UrlToUint8Array, between, DateIso, FiniteNumber, Id, IdBytes, idBytesToId, idBytesTypeValueLength, idToIdBytes, Int, Json, jsonToJsonValue, NonNegativeInt, onePositiveInt, PositiveInt, uint8ArrayToBase64Url, zeroNonNegativeInt, } from "../Type.js";
191
191
  import { OwnerId, OwnerIdBytes, ownerIdToOwnerIdBytes, OwnerWriteKey, ownerWriteKeyLength, } from "./Owner.js";
192
192
  import { DbChange, fingerprintSize, InfiniteUpperBound, RangeType, } from "./Storage.js";
193
193
  import { Counter, eqTimestamp, NodeId, Timestamp, TimestampBytes, timestampBytesLength, timestampBytesToTimestamp, timestampToTimestampBytes, } from "./Timestamp.js";
@@ -1177,8 +1177,8 @@ const decodeId = (buffer) => {
1177
1177
  return idBytesToId(bytes);
1178
1178
  };
1179
1179
  /**
1180
- * Evolu uses MessagePack to handle all number variants except for
1181
- * NonNegativeInt. For NonNegativeInt, Evolu provides more efficient encoding.
1180
+ * Evolu uses MessagePack to handle finite numbers except for NonNegativeInt.
1181
+ * For NonNegativeInt, Evolu provides more efficient encoding.
1182
1182
  */
1183
1183
  export const encodeNumber = (buffer, number) => {
1184
1184
  buffer.extend(packr.pack(number));
@@ -1194,7 +1194,7 @@ export const decodeNumber = (buffer) => {
1194
1194
  const endResult = NonNegativeInt.fromUnknown(end);
1195
1195
  if (!endResult.ok)
1196
1196
  throw new ProtocolDecodeError(endResult.error.type);
1197
- const numberResult = Number.fromUnknown(number);
1197
+ const numberResult = FiniteNumber.fromUnknown(number);
1198
1198
  if (!numberResult.ok)
1199
1199
  throw new ProtocolDecodeError(numberResult.error.type);
1200
1200
  buffer.shiftN(endResult.value);
@@ -1456,7 +1456,7 @@ export const encodeSqliteValue = (buffer, value) => {
1456
1456
  }
1457
1457
  else {
1458
1458
  encodeNonNegativeInt(buffer, ProtocolValueType.DateIsoWithNegativeTime);
1459
- encodeNumber(buffer, time);
1459
+ encodeNumber(buffer, FiniteNumber.orThrow(time));
1460
1460
  }
1461
1461
  return;
1462
1462
  }
@@ -5,8 +5,7 @@
5
5
  */
6
6
  import type { AliasableExpression, Expression, Simplify as KyselySimplify, RawBuilder, SelectQueryNode } from "kysely";
7
7
  import type { Brand } from "../Brand.ts";
8
- import type { SqliteQueryString } from "../Sqlite.ts";
9
- import { SqliteValue } from "../Sqlite.ts";
8
+ import type { SqliteQueryString, SqliteValueInput } from "../Sqlite.ts";
10
9
  import type { EvoluSchema } from "./Schema.ts";
11
10
  export { sql as kyselySql } from "kysely";
12
11
  export type { NotNull as KyselyNotNull } from "kysely";
@@ -74,7 +73,7 @@ export type Query<S extends EvoluSchema = EvoluSchema, R extends Row = Row> = Sq
74
73
  };
75
74
  export type InferRow<T extends Query> = T extends Query<any, infer R> ? R : never;
76
75
  export interface Row {
77
- readonly [key: string]: SqliteValue | Row | ReadonlyArray<Row>;
76
+ readonly [key: string]: SqliteValueInput | Row | ReadonlyArray<Row>;
78
77
  }
79
78
  /**
80
79
  * An improved Evolu version of Kysely's SQLite `jsonArrayFrom` helper.
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/local-first/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/local-first/Query.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { AliasNode, ColumnNode, ExpressionWrapper, IdentifierNode, sql as kysely
7
7
  import { createMutableArray } from "../Array.js";
8
8
  import { createRandomBytes } from "../Crypto.js";
9
9
  import { createMutableRecord, isPlainObject } from "../Object.js";
10
- import { eqSqliteValue, SqliteValue } from "../Sqlite.js";
10
+ import { eqSqliteValue } from "../Sqlite.js";
11
11
  import { createId, String } from "../Type.js";
12
12
  export { sql as kyselySql } from "kysely";
13
13
  /**
@@ -21,6 +21,11 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
21
21
  * Column types are Standard Schema v1 compatible — use Evolu Type, Zod,
22
22
  * Valibot, ArkType, or any library that implements Standard Schema.
23
23
  *
24
+ * Each column schema's inferred output must be compatible with SQLite. Numeric
25
+ * outputs must be assignable to {@link FiniteNumber}. Standard Schema does not
26
+ * standardize nominal brands, so a library-specific finite validator whose
27
+ * output remains `number` must brand its validated output compatibly.
28
+ *
24
29
  * Table schema defines columns that are required for table rows. For optional
25
30
  * columns, use a schema whose output type includes `null`.
26
31
  *
@@ -30,7 +35,9 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
30
35
  * import * as z from "zod";
31
36
  * import {
32
37
  * assertOk,
38
+ * assertType,
33
39
  * assertTrue,
40
+ * type FiniteNumber,
34
41
  * id,
35
42
  * NonEmptyTrimmedString100,
36
43
  * nullOr,
@@ -51,10 +58,17 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
51
58
  * assertOk(Schema.todo.title.fromUnknown("Write docs"), "Write docs");
52
59
  *
53
60
  * // Zod, or another Standard Schema library
61
+ * // Zod 4 numbers are finite by default; Evolu Type Number models all JavaScript numbers.
62
+ * const ZodFiniteNumber = z
63
+ * .number()
64
+ * .transform((value): FiniteNumber => value as FiniteNumber);
65
+ * assertType<FiniteNumber, z.output<typeof ZodFiniteNumber>>();
66
+ *
54
67
  * const ZodSchema = {
55
68
  * todo: {
56
69
  * id: TodoId,
57
70
  * title: z.string().min(1).max(100),
71
+ * position: ZodFiniteNumber,
58
72
  * isCompleted: z.union([z.literal(0), z.literal(1)]).nullable(),
59
73
  * },
60
74
  * };
@@ -244,7 +258,7 @@ export type UpsertValues<T extends TableSchema> = NullableColumnsToOptional<T> &
244
258
  export type ValidateSchemaHasId<S extends EvoluSchema> = keyof S extends infer TableName ? TableName extends keyof S ? "id" extends keyof S[TableName] ? never : SchemaValidationError<`Table "${TableName & string}" is missing required id column.`> : never : never;
245
259
  export type ValidateIdColumnType<S extends EvoluSchema> = keyof S extends infer TableName ? TableName extends keyof S ? "id" extends keyof S[TableName] ? StandardSchemaV1.InferOutput<S[TableName]["id"]> extends Id ? never : SchemaValidationError<`Table "${TableName & string}" id column output type must extend Id. Use id("${TableName & string}") from Evolu Type.`> : never : never : never;
246
260
  export type ValidateNoSystemColumns<S extends EvoluSchema> = keyof S extends infer TableName ? TableName extends keyof S ? keyof S[TableName] extends infer ColumnName ? ColumnName extends keyof S[TableName] ? ColumnName extends "createdAt" | "updatedAt" | "isDeleted" | "ownerId" ? SchemaValidationError<`Table "${TableName & string}" uses system column name "${ColumnName & string}". System columns (createdAt, updatedAt, isDeleted, ownerId) are added automatically.`> : never : never : never : never : never;
247
- export type ValidateColumnTypes<S extends EvoluSchema> = keyof S extends infer TableName ? TableName extends keyof S ? keyof S[TableName] extends infer ColumnName ? ColumnName extends keyof S[TableName] ? StandardSchemaV1.InferOutput<S[TableName][ColumnName]> extends SqliteValue ? never : SchemaValidationError<`Table "${TableName & string}" column "${ColumnName & string}" type is not compatible with SQLite. Column types must extend SqliteValue (string, number, Uint8Array, or null).`> : never : never : never : never;
261
+ export type ValidateColumnTypes<S extends EvoluSchema> = keyof S extends infer TableName ? TableName extends keyof S ? keyof S[TableName] extends infer ColumnName ? ColumnName extends keyof S[TableName] ? StandardSchemaV1.InferOutput<S[TableName][ColumnName]> extends SqliteValue | SqliteBoolean ? never : SchemaValidationError<`Table "${TableName & string}" column "${ColumnName & string}" type is not compatible with SQLite. Column types must extend SqliteValue (string, FiniteNumber, Uint8Array, or null).`> : never : never : never : never;
248
262
  /** Schema validation error that shows clear, readable messages */
249
263
  export type SchemaValidationError<Message extends string> = CompileTimeError<"Schema", Message>;
250
264
  /** Makes columns whose output type includes `null` optional. */
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/local-first/Schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAML,aAAa,EACb,KAAK,SAAS,EAGd,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,OAAO,EACP,KAAK,EAAE,EACP,OAAO,EACP,KAAK,SAAS,EACd,IAAI,EAGJ,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,EAGV,KAAK,EACL,GAAG,EACJ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,0CAA0C;AAC1C,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,MAAM,WAAW,GAAG,cAAc,CACtC,MAAM,EAEN,WAAW,CACZ,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,IAC9C,mBAAmB,CAAC,CAAC,CAAC,SAAS,KAAK,GAChC,oBAAoB,CAAC,CAAC,CAAC,SAAS,KAAK,GACnC,uBAAuB,CAAC,CAAC,CAAC,SAAS,KAAK,GACtC,mBAAmB,CAAC,CAAC,CAAC,SAAS,KAAK,GAClC,CAAC,GACD,mBAAmB,CAAC,CAAC,CAAC,GACxB,uBAAuB,CAAC,CAAC,CAAC,GAC5B,oBAAoB,CAAC,CAAC,CAAC,GACzB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE7B,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,kBAAkB,KACrD,aAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC,SAAS,GAAG,EAC7D,aAAa,EAAE,CACb,EAAE,EAAE,IAAI,CACN,MAAM,CAAC,MAAM,CACX;KACG,KAAK,IAAI,MAAM,CAAC,GAAG;QAClB,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS,IAAI,GACpD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAC9C,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;KAC1D,GAAG,aAAa;CAClB,GAAG;IACF,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,wBAAwB,EAAE;QACjC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;KAC7B,CAAC;CACH,CACF,EACD,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,eAAe,CAC/C,KACE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,kBAAkB,KACzB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,aAAa,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC;CAClC,CAKC,CAAC;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,SAAS,YAAY,IAAI,CACvE,SAAS,SAAS,MAAM,CAAC,EAEzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,EAC1C,OAAO,CAAC,EAAE,eAAe,KACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,YAAY,IACpB,QAAQ,CACV,CAAC,SAAS,QAAQ,GACd,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,QAAQ,GAChB,YAAY,CAAC,CAAC,CAAC,GACf,YAAY,CAAC,CAAC,CAAC,CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI,IAAI,CACpD,yBAAyB,CAAC,CAAC,CAAC,EAC5B,IAAI,CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI;IAChD,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;CACpD,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E,GAAG;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAC5C,yBAAyB,CAAC,CAAC,CAAC,GAAG;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;CACpC,CAAC;AAEJ,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IACnD,MAAM,CAAC,SAAS,MAAM,SAAS,GAC3B,SAAS,SAAS,MAAM,CAAC,GACvB,IAAI,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GAC7B,KAAK,GACL,qBAAqB,CAAC,UAAU,SAAS,GAAG,MAAM,kCAAkC,CAAC,GACvF,KAAK,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,WAAW,IACpD,MAAM,CAAC,SAAS,MAAM,SAAS,GAC3B,SAAS,SAAS,MAAM,CAAC,GACvB,IAAI,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GAC7B,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,GACzD,KAAK,GACL,qBAAqB,CAAC,UAAU,SAAS,GAAG,MAAM,mDAAmD,SAAS,GAAG,MAAM,qBAAqB,CAAC,GAC/I,KAAK,GACP,KAAK,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,WAAW,IACvD,MAAM,CAAC,SAAS,MAAM,SAAS,GAC3B,SAAS,SAAS,MAAM,CAAC,GACvB,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,UAAU,GACzC,UAAU,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GACnC,UAAU,SACR,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GACnD,qBAAqB,CAAC,UAAU,SAAS,GAAG,MAAM,8BAA8B,UAAU,GAAG,MAAM,uFAAuF,CAAC,GAC3L,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,IACnD,MAAM,CAAC,SAAS,MAAM,SAAS,GAC3B,SAAS,SAAS,MAAM,CAAC,GACvB,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,UAAU,GACzC,UAAU,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GACnC,gBAAgB,CAAC,WAAW,CAC1B,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CACzB,SAAS,WAAW,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,SAAS,GAAG,MAAM,aAAa,UAAU,GAAG,MAAM,mHAAmH,CAAC,GACxM,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK,CAAC;AAEZ,kEAAkE;AAClE,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,IAAI,gBAAgB,CAC1E,QAAQ,EACR,OAAO,CACR,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,WAAW,IAAI;IAC7D,QAAQ,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1E,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CAC5E,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC5E,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAE7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAGrD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,WAAW,UACrD,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,kBAC/C,aAAa,KAC5B,YAgBF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,WAAW,WAC7C,CAAC,KACT,WAAW,CAAC,CAAC,CAef,CAAC;AAEF,eAAO,MAAM,kBAAkB,SACtB,SAAS,iBACJ,YAAY,kBAAkB,YAAY,KAAG,IA+CxD,CAAC;AAEJ,eAAO,MAAM,oBAAoB,SAAU,SAAS,WAAS,YACA,CAAC;AAG9D,eAAO,MAAM,MAAM,wBASjB,CAAC"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/local-first/Schema.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  import * as Kysely from "kysely";
7
7
  import { assertNonNullable } from "../Assert.js";
8
8
  import { getOwnProp, mapObject } from "../Object.js";
9
- import { eqSqliteIndex, getSqliteSchema, sql, sqliteQueryToSqliteQueryString, SqliteBoolean, SqliteValue, } from "../Sqlite.js";
10
- import { DateIso, IdBytes, Null, nullOr, object, } from "../Type.js";
9
+ import { eqSqliteIndex, getSqliteSchema, sql, sqliteQueryToSqliteQueryString, SqliteBoolean, SqliteQueryParameters, SqliteValue, } from "../Sqlite.js";
10
+ import { assertType, DateIso, IdBytes, Null, nullOr, object, } from "../Type.js";
11
11
  import { OwnerId } from "./Owner.js";
12
12
  import { TimestampBytes } from "./Timestamp.js";
13
13
  /**
@@ -94,6 +94,7 @@ export const evoluSchemaToSqliteSchema = (schema, indexesConfig) => {
94
94
  export const createQueryBuilder = (_schema) => {
95
95
  const createQuery = (queryCallback, options) => {
96
96
  const compiledQuery = queryCallback(kysely).compile();
97
+ assertType(SqliteQueryParameters, compiledQuery.parameters);
97
98
  const sqliteQuery = {
98
99
  sql: compiledQuery.sql,
99
100
  parameters: compiledQuery.parameters,
@@ -181,9 +181,9 @@ export interface CrdtMessage {
181
181
  }
182
182
  /** Test helper for creating a simple {@link CrdtMessage}. */
183
183
  export declare const testCreateCrdtMessage: (id: Id, millis: number, name: string) => CrdtMessage;
184
- export declare const DbChangeValues: import("../Type.ts").RecordType<import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, UnionType<readonly [import("../Type.ts").LiteralType<null>, import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, import("../Type.ts").Type<"Number", number, number, import("../Type.ts").TypeOfError<"Number">, null, import("../Type.ts").TypeOfError<"Number">, never, number, true>, import("../Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("../Type.ts").ObjectTagError<"Uint8Array">, null, import("../Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>>;
184
+ export declare const DbChangeValues: import("../Type.ts").RecordType<import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, UnionType<readonly [import("../Type.ts").BrandType<import("../Type.ts").BrandType<import("../Type.ts").Type<"Number", number, number, import("../Type.ts").TypeOfError<"Number">, null, import("../Type.ts").TypeOfError<"Number">, never, number, true>, "NonNaN", import("../Type.ts").NonNaNError>, "Finite", import("../Type.ts").FiniteError>, import("../Type.ts").LiteralType<null>, import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, import("../Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("../Type.ts").ObjectTagError<"Uint8Array">, null, import("../Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>>;
185
185
  export type DbChangeValues = typeof DbChangeValues.Output;
186
- export declare const ValidDbChangeValues: import("../Type.ts").BrandType<import("../Type.ts").RecordType<import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, UnionType<readonly [import("../Type.ts").LiteralType<null>, import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, import("../Type.ts").Type<"Number", number, number, import("../Type.ts").TypeOfError<"Number">, null, import("../Type.ts").TypeOfError<"Number">, never, number, true>, import("../Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("../Type.ts").ObjectTagError<"Uint8Array">, null, import("../Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>>, "ValidDbChangeValues", ValidDbChangeValuesError>;
186
+ export declare const ValidDbChangeValues: import("../Type.ts").BrandType<import("../Type.ts").RecordType<import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, UnionType<readonly [import("../Type.ts").BrandType<import("../Type.ts").BrandType<import("../Type.ts").Type<"Number", number, number, import("../Type.ts").TypeOfError<"Number">, null, import("../Type.ts").TypeOfError<"Number">, never, number, true>, "NonNaN", import("../Type.ts").NonNaNError>, "Finite", import("../Type.ts").FiniteError>, import("../Type.ts").LiteralType<null>, import("../Type.ts").Type<"String", string, string, import("../Type.ts").TypeOfError<"String">, null, import("../Type.ts").TypeOfError<"String">, never, string, true>, import("../Type.ts").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("../Type.ts").ObjectTagError<"Uint8Array">, null, import("../Type.ts").ObjectTagError<"Uint8Array">, never, Uint8Array<ArrayBufferLike>, true>]>>, "ValidDbChangeValues", ValidDbChangeValuesError>;
187
187
  export type ValidDbChangeValues = typeof ValidDbChangeValues.Output;
188
188
  export interface ValidDbChangeValuesError extends TypeError<"ValidDbChangeValues"> {
189
189
  readonly value: DbChangeValues;
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../src/local-first/Storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../src/local-first/Storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evolu/common",
3
- "version": "8.6.1",
3
+ "version": "8.6.2",
4
4
  "description": "TypeScript library and local-first platform",
5
5
  "keywords": [
6
6
  "evolu",
package/src/Sqlite.ts CHANGED
@@ -8,19 +8,19 @@ import type { Brand } from "./Brand.ts";
8
8
  import { bytesToHex, hexToBytes } from "./Buffer.ts";
9
9
  import type { EncryptionKey } from "./Crypto.ts";
10
10
  import type { Eq } from "./Eq.ts";
11
- import { createEqObject, eqArrayNumber, eqString } from "./Eq.ts";
11
+ import { createEqObject, eqString, eqUint8Array } from "./Eq.ts";
12
12
  import { disposable } from "./Function.ts";
13
13
  import { createMutableRecord, objectToEntries } from "./Object.ts";
14
14
  import type { Result } from "./Result.ts";
15
15
  import { ok } from "./Result.ts";
16
- import { testCreateRun, type Task, type TestRunDep } from "./Task.ts";
16
+ import { type Task, testCreateRun, type TestRunDep } from "./Task.ts";
17
17
  import {
18
18
  array,
19
19
  type ArrayType,
20
+ FiniteNumber,
20
21
  type InferType,
21
22
  type Name,
22
23
  Null,
23
- Number,
24
24
  object,
25
25
  type ObjectType,
26
26
  record,
@@ -79,7 +79,7 @@ export interface SqliteTransaction {
79
79
  /** Represents a SQL query to be executed on a {@link Sqlite} database. */
80
80
  export interface SqliteQuery {
81
81
  readonly sql: SafeSql;
82
- readonly parameters: Array<SqliteValue>;
82
+ readonly parameters: SqliteQueryParameters;
83
83
  readonly options?: SqliteQueryOptions;
84
84
  }
85
85
 
@@ -92,20 +92,38 @@ export type SafeSql = string & Brand<"SafeSql">;
92
92
  /**
93
93
  * A value that can be stored in {@link Sqlite}.
94
94
  *
95
+ * Numeric values use {@link FiniteNumber} because JavaScript numbers also
96
+ * include `NaN` and infinities. SQLite binds `NaN` as `NULL`, while JSON
97
+ * serialization converts all non-finite numbers to `null`. Restricting numbers
98
+ * to finite values preserves them across storage and query serialization.
99
+ *
95
100
  * Note that Evolu can't support Int64 because expo-sqlite (and some others) do
96
101
  * not support it.
97
102
  */
98
103
  export const SqliteValue = /*#__PURE__*/ union(
104
+ FiniteNumber,
99
105
  Null,
100
106
  String,
101
- Number,
102
107
  Uint8Array,
103
108
  );
104
109
  export type SqliteValue = typeof SqliteValue.Output;
105
110
 
106
- /** Equality comparison for {@link SqliteValue}. */
107
- export const eqSqliteValue: Eq<SqliteValue> = (x, y) =>
108
- Uint8Array.is(x) && Uint8Array.is(y) ? eqArrayNumber(x, y) : x === y;
111
+ /** Parameters of a {@link SqliteQuery}. */
112
+ export const SqliteQueryParameters = /*#__PURE__*/ array(SqliteValue);
113
+ export type SqliteQueryParameters = typeof SqliteQueryParameters.Output;
114
+
115
+ /**
116
+ * A value used in {@link sql} template parameters and {@link Sqlite} query
117
+ * results.
118
+ *
119
+ * It differs from {@link SqliteValue} only by using `number` instead of
120
+ * {@link FiniteNumber}.
121
+ */
122
+ export type SqliteValueInput = typeof SqliteValue.Input;
123
+
124
+ /** Equality comparison for {@link SqliteValueInput}. */
125
+ export const eqSqliteValue: Eq<SqliteValueInput> = (x, y) =>
126
+ Uint8Array.is(x) && Uint8Array.is(y) ? eqUint8Array(x, y) : x === y;
109
127
 
110
128
  /** Options for configuring {@link SqliteQuery} execution behavior. */
111
129
  export interface SqliteQueryOptions {
@@ -139,7 +157,7 @@ export const sqliteQueryToSqliteQueryString = (
139
157
  query: SqliteQuery,
140
158
  ): SqliteQueryString => {
141
159
  const params = query.parameters.map((value) =>
142
- value instanceof globalThis.Uint8Array
160
+ Uint8Array.is(value)
143
161
  ? (["b", bytesToHex(value)] as const)
144
162
  : (["j", value] as const),
145
163
  );
@@ -157,7 +175,9 @@ export const sqliteQueryStringToSqliteQuery = (
157
175
  ): SqliteQuery => {
158
176
  const [sql, paramsArr, optionsArr] = JSON.parse(query) as [
159
177
  SafeSql,
160
- Array<readonly ["b", string] | readonly ["j", string | number | null]>,
178
+ Array<
179
+ readonly ["b", string] | readonly ["j", string | FiniteNumber | null]
180
+ >,
161
181
  Array<Array<string | number | null>>,
162
182
  ];
163
183
 
@@ -184,9 +204,9 @@ export interface SqliteExecResult<R extends SqliteRow = SqliteRow> {
184
204
 
185
205
  /**
186
206
  * A row returned from a {@link Sqlite} query, mapping column names to
187
- * {@link SqliteValue}.
207
+ * {@link SqliteValueInput}.
188
208
  */
189
- export type SqliteRow = Record<string, SqliteValue>;
209
+ export type SqliteRow = Record<string, SqliteValueInput>;
190
210
 
191
211
  /**
192
212
  * SQLite driver interface.
@@ -423,7 +443,7 @@ export interface RawSql extends Typed<"RawSql"> {
423
443
  }
424
444
 
425
445
  /** A parameter accepted by the {@link sql} tagged template. */
426
- export type SqlTemplateParam = SqliteValue | SqlIdentifier | RawSql;
446
+ export type SqlTemplateParam = SqliteValueInput | SqlIdentifier | RawSql;
427
447
 
428
448
  /**
429
449
  * Creates a safe SQL query using a tagged template literal.
@@ -484,7 +504,7 @@ export const sql = (
484
504
  sql += param.sql;
485
505
  } else {
486
506
  sql += "?";
487
- values.push(param);
507
+ values.push(SqliteValue.orThrow(param));
488
508
  }
489
509
  }
490
510
  }
@@ -647,8 +667,6 @@ export const getSqliteSnapshot = (deps: SqliteDep): SqliteSnapshot => {
647
667
  *
648
668
  * See: https://www.sqlite.org/quirks.html#no_separate_boolean_datatype
649
669
  *
650
- * ## Tips
651
- *
652
670
  * - Use {@link sqliteTrue} and {@link sqliteFalse} constants for better
653
671
  * readability.
654
672
  * - Use {@link booleanToSqliteBoolean} and {@link sqliteBooleanToBoolean} for
@@ -45,6 +45,7 @@ import { callback, type Run, type Task } from "../Task.ts";
45
45
  import { Millis, millisToDateIso, type TimeDep } from "../Time.ts";
46
46
  import {
47
47
  assertType,
48
+ type FiniteNumber,
48
49
  Id,
49
50
  IdBytes,
50
51
  idBytesToId,
@@ -942,7 +943,8 @@ const dbChangeToColumns = (change: DbChange, now: Millis) => {
942
943
  if (change.isDelete != null) {
943
944
  values = appendToArray(values, [
944
945
  "isDeleted",
945
- booleanToSqliteBoolean(change.isDelete),
946
+ // SQLite boolean values are fixed to the finite numbers 0 and 1.
947
+ booleanToSqliteBoolean(change.isDelete) as FiniteNumber,
946
948
  ]);
947
949
  }
948
950
 
@@ -217,6 +217,7 @@ import {
217
217
  base64UrlToUint8Array,
218
218
  between,
219
219
  DateIso,
220
+ FiniteNumber,
220
221
  Id,
221
222
  IdBytes,
222
223
  idBytesToId,
@@ -226,7 +227,6 @@ import {
226
227
  Json,
227
228
  jsonToJsonValue,
228
229
  NonNegativeInt,
229
- Number,
230
230
  onePositiveInt,
231
231
  PositiveInt,
232
232
  type Typed,
@@ -1775,14 +1775,14 @@ const decodeId = (buffer: Buffer): Id => {
1775
1775
  };
1776
1776
 
1777
1777
  /**
1778
- * Evolu uses MessagePack to handle all number variants except for
1779
- * NonNegativeInt. For NonNegativeInt, Evolu provides more efficient encoding.
1778
+ * Evolu uses MessagePack to handle finite numbers except for NonNegativeInt.
1779
+ * For NonNegativeInt, Evolu provides more efficient encoding.
1780
1780
  */
1781
- export const encodeNumber = (buffer: Buffer, number: number): void => {
1781
+ export const encodeNumber = (buffer: Buffer, number: FiniteNumber): void => {
1782
1782
  buffer.extend(packr.pack(number));
1783
1783
  };
1784
1784
 
1785
- export const decodeNumber = (buffer: Buffer): number => {
1785
+ export const decodeNumber = (buffer: Buffer): FiniteNumber => {
1786
1786
  let number: unknown;
1787
1787
  let end: unknown;
1788
1788
 
@@ -1798,7 +1798,7 @@ export const decodeNumber = (buffer: Buffer): number => {
1798
1798
  const endResult = NonNegativeInt.fromUnknown(end);
1799
1799
  if (!endResult.ok) throw new ProtocolDecodeError(endResult.error.type);
1800
1800
 
1801
- const numberResult = Number.fromUnknown(number);
1801
+ const numberResult = FiniteNumber.fromUnknown(number);
1802
1802
  if (!numberResult.ok) throw new ProtocolDecodeError(numberResult.error.type);
1803
1803
 
1804
1804
  buffer.shiftN(endResult.value);
@@ -2140,7 +2140,7 @@ export const encodeSqliteValue = (buffer: Buffer, value: SqliteValue): void => {
2140
2140
  buffer,
2141
2141
  ProtocolValueType.DateIsoWithNegativeTime,
2142
2142
  );
2143
- encodeNumber(buffer, time);
2143
+ encodeNumber(buffer, FiniteNumber.orThrow(time));
2144
2144
  }
2145
2145
  return;
2146
2146
  }
@@ -26,8 +26,8 @@ import type { Brand } from "../Brand.ts";
26
26
  import { createRandomBytes } from "../Crypto.ts";
27
27
  import type { ReadonlyRecord } from "../Object.ts";
28
28
  import { createMutableRecord, isPlainObject } from "../Object.ts";
29
- import type { SqliteQueryString } from "../Sqlite.ts";
30
- import { eqSqliteValue, SqliteValue } from "../Sqlite.ts";
29
+ import type { SqliteQueryString, SqliteValueInput } from "../Sqlite.ts";
30
+ import { eqSqliteValue } from "../Sqlite.ts";
31
31
  import { createId, String } from "../Type.ts";
32
32
  import type { EvoluSchema } from "./Schema.ts";
33
33
 
@@ -107,7 +107,7 @@ export type InferRow<T extends Query> =
107
107
 
108
108
  export interface Row {
109
109
  readonly [key: string]:
110
- | SqliteValue
110
+ | SqliteValueInput
111
111
  // for evoluJsonObjectFrom
112
112
  | Row
113
113
  // for evoluJsonArrayFrom
@@ -400,8 +400,8 @@ export const makePatches = (
400
400
  for (const key in previousRow)
401
401
  if (
402
402
  !eqSqliteValue(
403
- previousRow[key] as SqliteValue,
404
- nextRow[key] as SqliteValue,
403
+ previousRow[key] as SqliteValueInput,
404
+ nextRow[key] as SqliteValueInput,
405
405
  )
406
406
  ) {
407
407
  replaceAtPatches.push({ op: "replaceAt", value: nextRow, index: i });
@@ -19,11 +19,14 @@ import {
19
19
  type SqliteIndex,
20
20
  type SqliteQuery,
21
21
  type SqliteQueryOptions,
22
+ SqliteQueryParameters,
22
23
  type SqliteSchema,
23
24
  SqliteValue,
24
25
  } from "../Sqlite.ts";
25
26
  import {
27
+ assertType,
26
28
  DateIso,
29
+ type FiniteNumber,
27
30
  type Id,
28
31
  IdBytes,
29
32
  type InferType,
@@ -54,6 +57,11 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
54
57
  * Column types are Standard Schema v1 compatible — use Evolu Type, Zod,
55
58
  * Valibot, ArkType, or any library that implements Standard Schema.
56
59
  *
60
+ * Each column schema's inferred output must be compatible with SQLite. Numeric
61
+ * outputs must be assignable to {@link FiniteNumber}. Standard Schema does not
62
+ * standardize nominal brands, so a library-specific finite validator whose
63
+ * output remains `number` must brand its validated output compatibly.
64
+ *
57
65
  * Table schema defines columns that are required for table rows. For optional
58
66
  * columns, use a schema whose output type includes `null`.
59
67
  *
@@ -63,7 +71,9 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
63
71
  * import * as z from "zod";
64
72
  * import {
65
73
  * assertOk,
74
+ * assertType,
66
75
  * assertTrue,
76
+ * type FiniteNumber,
67
77
  * id,
68
78
  * NonEmptyTrimmedString100,
69
79
  * nullOr,
@@ -84,10 +94,17 @@ export type AnyStandardSchemaV1 = StandardSchemaV1<any, any>;
84
94
  * assertOk(Schema.todo.title.fromUnknown("Write docs"), "Write docs");
85
95
  *
86
96
  * // Zod, or another Standard Schema library
97
+ * // Zod 4 numbers are finite by default; Evolu Type Number models all JavaScript numbers.
98
+ * const ZodFiniteNumber = z
99
+ * .number()
100
+ * .transform((value): FiniteNumber => value as FiniteNumber);
101
+ * assertType<FiniteNumber, z.output<typeof ZodFiniteNumber>>();
102
+ *
87
103
  * const ZodSchema = {
88
104
  * todo: {
89
105
  * id: TodoId,
90
106
  * title: z.string().min(1).max(100),
107
+ * position: ZodFiniteNumber,
91
108
  * isCompleted: z.union([z.literal(0), z.literal(1)]).nullable(),
92
109
  * },
93
110
  * };
@@ -377,11 +394,10 @@ export type ValidateColumnTypes<S extends EvoluSchema> =
377
394
  ? TableName extends keyof S
378
395
  ? keyof S[TableName] extends infer ColumnName
379
396
  ? ColumnName extends keyof S[TableName]
380
- ? StandardSchemaV1.InferOutput<
381
- S[TableName][ColumnName]
382
- > extends SqliteValue
397
+ ? StandardSchemaV1.InferOutput<S[TableName][ColumnName]> extends
398
+ SqliteValue | SqliteBoolean
383
399
  ? never
384
- : SchemaValidationError<`Table "${TableName & string}" column "${ColumnName & string}" type is not compatible with SQLite. Column types must extend SqliteValue (string, number, Uint8Array, or null).`>
400
+ : SchemaValidationError<`Table "${TableName & string}" column "${ColumnName & string}" type is not compatible with SQLite. Column types must extend SqliteValue (string, FiniteNumber, Uint8Array, or null).`>
385
401
  : never
386
402
  : never
387
403
  : never
@@ -492,11 +508,10 @@ export const createQueryBuilder = <S extends EvoluSchema>(
492
508
  ): CreateQuery<S> => {
493
509
  const createQuery: CreateQuery<S> = (queryCallback, options) => {
494
510
  const compiledQuery = queryCallback(kysely as never).compile();
511
+ assertType(SqliteQueryParameters, compiledQuery.parameters);
495
512
  const sqliteQuery: SqliteQuery = {
496
513
  sql: compiledQuery.sql as SafeSql,
497
- parameters: compiledQuery.parameters as NonNullable<
498
- SqliteQuery["parameters"]
499
- >,
514
+ parameters: compiledQuery.parameters,
500
515
  ...(options && { options }),
501
516
  };
502
517