@ix-xs/node-comfort 2.0.0 → 2.1.0

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.
Files changed (77) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +32 -30
  3. package/index.js +3 -3
  4. package/package.json +8 -7
  5. package/src/Arr.js +222 -58
  6. package/src/Async.js +322 -90
  7. package/src/Cache.js +148 -44
  8. package/src/Checker.js +257 -26
  9. package/src/Cli.js +404 -145
  10. package/src/Color.js +224 -83
  11. package/src/Crypto.js +481 -106
  12. package/src/Emitter.js +104 -37
  13. package/src/Env.js +176 -42
  14. package/src/FS.js +203 -60
  15. package/src/Func.js +226 -76
  16. package/src/Http.js +311 -149
  17. package/src/Id.js +281 -96
  18. package/src/Logger.js +302 -78
  19. package/src/Num.js +182 -60
  20. package/src/Obj.js +340 -125
  21. package/src/SQLite.js +426 -105
  22. package/src/Schema.js +602 -87
  23. package/src/Str.js +316 -86
  24. package/src/Sys.js +197 -54
  25. package/src/Time.js +572 -317
  26. package/src/Utils.js +62 -41
  27. package/src/errors.js +54 -11
  28. package/src/internal/shared.js +415 -0
  29. package/types/index.d.ts +59 -17
  30. package/types/src/Arr.d.ts +78 -0
  31. package/types/src/Arr.d.ts.map +1 -1
  32. package/types/src/Async.d.ts +52 -1
  33. package/types/src/Async.d.ts.map +1 -1
  34. package/types/src/Cache.d.ts +33 -7
  35. package/types/src/Cache.d.ts.map +1 -1
  36. package/types/src/Checker.d.ts +155 -2
  37. package/types/src/Checker.d.ts.map +1 -1
  38. package/types/src/Cli.d.ts +97 -15
  39. package/types/src/Cli.d.ts.map +1 -1
  40. package/types/src/Color.d.ts +7 -1
  41. package/types/src/Color.d.ts.map +1 -1
  42. package/types/src/Crypto.d.ts +99 -13
  43. package/types/src/Crypto.d.ts.map +1 -1
  44. package/types/src/Emitter.d.ts +36 -17
  45. package/types/src/Emitter.d.ts.map +1 -1
  46. package/types/src/Env.d.ts +31 -1
  47. package/types/src/Env.d.ts.map +1 -1
  48. package/types/src/FS.d.ts +36 -5
  49. package/types/src/FS.d.ts.map +1 -1
  50. package/types/src/Func.d.ts +147 -19
  51. package/types/src/Func.d.ts.map +1 -1
  52. package/types/src/Http.d.ts +113 -43
  53. package/types/src/Http.d.ts.map +1 -1
  54. package/types/src/Id.d.ts +60 -8
  55. package/types/src/Id.d.ts.map +1 -1
  56. package/types/src/Logger.d.ts +53 -2
  57. package/types/src/Logger.d.ts.map +1 -1
  58. package/types/src/Num.d.ts +48 -7
  59. package/types/src/Num.d.ts.map +1 -1
  60. package/types/src/Obj.d.ts +67 -4
  61. package/types/src/Obj.d.ts.map +1 -1
  62. package/types/src/SQLite.d.ts +123 -14
  63. package/types/src/SQLite.d.ts.map +1 -1
  64. package/types/src/Schema.d.ts +256 -7
  65. package/types/src/Schema.d.ts.map +1 -1
  66. package/types/src/Str.d.ts +49 -1
  67. package/types/src/Str.d.ts.map +1 -1
  68. package/types/src/Sys.d.ts +51 -6
  69. package/types/src/Sys.d.ts.map +1 -1
  70. package/types/src/Time.d.ts +130 -34
  71. package/types/src/Time.d.ts.map +1 -1
  72. package/types/src/Utils.d.ts +15 -11
  73. package/types/src/Utils.d.ts.map +1 -1
  74. package/types/src/errors.d.ts +27 -3
  75. package/types/src/errors.d.ts.map +1 -1
  76. package/types/src/internal/shared.d.ts +123 -0
  77. package/types/src/internal/shared.d.ts.map +1 -0
@@ -59,7 +59,7 @@ export type FormatNumberOptions = {
59
59
  /**
60
60
  * `"percent"` multiplies by 100 and adds `%`.
61
61
  */
62
- style?: "decimal" | "percent" | undefined;
62
+ style?: "percent" | "decimal" | undefined;
63
63
  /**
64
64
  * Any `Intl` unit: `"kilometer"`, `"celsius"`, `"megabyte"`...
65
65
  */
@@ -71,7 +71,7 @@ export type FormatNumberOptions = {
71
71
  /**
72
72
  * When to show the sign. `"exceptZero"` gives `+5`.
73
73
  */
74
- signDisplay?: "always" | "auto" | "never" | "exceptZero" | undefined;
74
+ signDisplay?: "auto" | "always" | "never" | "exceptZero" | undefined;
75
75
  /**
76
76
  * Thousands separators. Defaults to `true`.
77
77
  */
@@ -92,7 +92,7 @@ export type CurrencyOptions = {
92
92
  /**
93
93
  * `€`, `€`, `EUR` or `euros`. Defaults to `"symbol"`.
94
94
  */
95
- display?: "symbol" | "code" | "name" | "narrowSymbol" | undefined;
95
+ display?: "symbol" | "name" | "code" | "narrowSymbol" | undefined;
96
96
  /**
97
97
  * Show negative amounts in parentheses, like `($5.00)`.
98
98
  */
@@ -121,8 +121,8 @@ export type VarianceOptions = {
121
121
  sample?: boolean | undefined;
122
122
  };
123
123
  /**
124
- * Sets the default language of `format`, `currency`, `percent`,
125
- * `abbreviate`, `ordinal` and `formatBytes`.
124
+ * Sets the default language of `format`, `currency`, `ordinal` and
125
+ * `formatBytes`.
126
126
  *
127
127
  * @example
128
128
  * num.setLocale("fr");
@@ -293,15 +293,26 @@ export function random(min?: number, max?: number): number;
293
293
  */
294
294
  export function randomInt(min: number, max: number): number;
295
295
  /**
296
- * Adds up numbers.
296
+ * Adds up numbers, without the drift of a naive loop.
297
297
  *
298
298
  * @example
299
- * num.sum([1, 2, 3]); // 6
299
+ * num.sum([1, 2, 3]); // 6
300
+ * num.sum([0.1, 0.2, 0.3]); // 0.6, where a plain loop gives 0.6000000000000001
300
301
  *
301
302
  * @param {Iterable<number>} values
302
303
  * @returns {number}
303
304
  */
304
305
  export function sum(values: Iterable<number>): number;
306
+ /**
307
+ * Multiplies numbers. An empty list gives `1`.
308
+ *
309
+ * @example
310
+ * num.product([2, 3, 4]); // 24
311
+ *
312
+ * @param {Iterable<number>} values
313
+ * @returns {number}
314
+ */
315
+ export function product(values: Iterable<number>): number;
305
316
  /**
306
317
  * The mean, or `0` for an empty list.
307
318
  *
@@ -370,6 +381,7 @@ export function stdDev(values: Iterable<number>, options?: VarianceOptions): num
370
381
  export function percentile(values: Iterable<number>, p: number): number;
371
382
  /**
372
383
  * The smallest number. Unlike `Math.min(...array)`, huge arrays are fine.
384
+ * Like `Math.min`, a `NaN` in the list gives `NaN`.
373
385
  *
374
386
  * @param {Iterable<number>} values
375
387
  * @returns {number | undefined} `undefined` for an empty list.
@@ -377,6 +389,7 @@ export function percentile(values: Iterable<number>, p: number): number;
377
389
  export function min(values: Iterable<number>): number | undefined;
378
390
  /**
379
391
  * The largest number. Unlike `Math.max(...array)`, huge arrays are fine.
392
+ * Like `Math.max`, a `NaN` in the list gives `NaN`.
380
393
  *
381
394
  * @param {Iterable<number>} values
382
395
  * @returns {number | undefined} `undefined` for an empty list.
@@ -395,6 +408,20 @@ export function max(values: Iterable<number>): number | undefined;
395
408
  * @returns {number}
396
409
  */
397
410
  export function percent(value: number, total: number, decimals?: number): number;
411
+ /**
412
+ * How much a value changed, in percent. Going from `0` to anything else is
413
+ * an infinite change.
414
+ *
415
+ * @example
416
+ * num.percentChange(80, 100); // 25
417
+ * num.percentChange(100, 80); // -20
418
+ *
419
+ * @param {number} from
420
+ * @param {number} to
421
+ * @param {number} [decimals=2]
422
+ * @returns {number}
423
+ */
424
+ export function percentChange(from: number, to: number, decimals?: number): number;
398
425
  /**
399
426
  * Greatest common divisor.
400
427
  *
@@ -562,6 +589,20 @@ export function abbreviate(value: number, decimals?: number): string;
562
589
  * @returns {string}
563
590
  */
564
591
  export function thousands(value: number | string, separator?: string): string;
592
+ /**
593
+ * Pads the integer part with zeros (or another character).
594
+ *
595
+ * @example
596
+ * num.pad(7, 3); // "007"
597
+ * num.pad(-7, 3); // "-007"
598
+ * num.pad(3.5, 2); // "03.5"
599
+ *
600
+ * @param {number} value
601
+ * @param {number} length Digits wanted before the decimal point.
602
+ * @param {string} [char="0"]
603
+ * @returns {string}
604
+ */
605
+ export function pad(value: number, length: number, char?: string): string;
565
606
  /**
566
607
  * Adds the ordinal suffix: 1st, 2nd, 3rd... in several languages.
567
608
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Num.d.ts","sourceRoot":"","sources":["../../src/Num.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Num.d.ts","sourceRoot":"","sources":["../../src/Num.js"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  declare namespace _exports {
2
- export { PathLeaf, Paths, NullishToUndefined, PathValue, PathStep, PathInput, DeepReadonly, Change, MergeOptions, CompactOptions };
2
+ export { PathLeaf, Paths, NullishToUndefined, PathValue, PathStep, PathInput, DeepReadonly, Change, MergeOptions, SortKeysOptions, CompactOptions };
3
3
  }
4
4
  declare namespace _exports {
5
5
  export { clone };
@@ -10,6 +10,7 @@ declare namespace _exports {
10
10
  export { diff };
11
11
  export { get };
12
12
  export { set };
13
+ export { update };
13
14
  export { unset };
14
15
  export { has };
15
16
  export { pick };
@@ -22,6 +23,8 @@ declare namespace _exports {
22
23
  export { compact };
23
24
  export { flatten };
24
25
  export { unflatten };
26
+ export { paths };
27
+ export { sortKeys };
25
28
  export { keys };
26
29
  export { entries };
27
30
  export { fromEntries };
@@ -85,6 +88,19 @@ type MergeOptions = {
85
88
  */
86
89
  skipUndefined?: boolean | undefined;
87
90
  };
91
+ /**
92
+ * Options for `sortKeys()`.
93
+ */
94
+ type SortKeysOptions = {
95
+ /**
96
+ * Sort nested objects too, arrays included. Defaults to `true`. With `false`, only the first level is copied and sorted: what it holds is shared with the original.
97
+ */
98
+ deep?: boolean | undefined;
99
+ /**
100
+ * How to order two keys. Defaults to code-unit order, which is stable across machines.
101
+ */
102
+ compare?: ((a: string, b: string) => number) | undefined;
103
+ };
88
104
  /**
89
105
  * Options for `compact()`.
90
106
  */
@@ -99,8 +115,9 @@ type CompactOptions = {
99
115
  removeEmpty?: boolean | undefined;
100
116
  };
101
117
  /**
102
- * Deep copy. Uses `structuredClone` when it can, and falls back to a copy
103
- * that keeps functions and class prototypes.
118
+ * Deep copy. Unlike `structuredClone`, it keeps functions and class
119
+ * instances (with their prototype), and it's faster on plain data. Shared
120
+ * references and cycles are preserved.
104
121
  *
105
122
  * @example
106
123
  * const copy = obj.clone({ a: { b: [1, 2] }, when: new Date() });
@@ -263,6 +280,21 @@ declare function get<T, P extends string, F>(object: T, path: P | Paths<T> | Rea
263
280
  * @returns {T}
264
281
  */
265
282
  declare function set<T>(object: T, path: PathInput<T>, value: unknown): T;
283
+ /**
284
+ * Returns a copy where the value at `path` is replaced by what `updater`
285
+ * returns for it. Handy for counters and lists.
286
+ *
287
+ * @example
288
+ * obj.update(state, "stats.visits", (n = 0) => n + 1);
289
+ * obj.update(cart, "items", (items = []) => [...items, product]);
290
+ *
291
+ * @template T
292
+ * @param {T} object
293
+ * @param {PathInput<T>} path
294
+ * @param {(value: any) => unknown} updater Gets the current value, `undefined` if there's none.
295
+ * @returns {T}
296
+ */
297
+ declare function update<T>(object: T, path: PathInput<T>, updater: (value: any) => unknown): T;
266
298
  /**
267
299
  * Returns a copy without the property at `path`.
268
300
  *
@@ -407,6 +439,31 @@ declare function flatten(object: object, prefix?: string): Record<string, unknow
407
439
  * @returns {Record<string, any>}
408
440
  */
409
441
  declare function unflatten(object: Record<string, unknown>): Record<string, any>;
442
+ /**
443
+ * Every leaf path of an object, in dotted form. Arrays count as leaves.
444
+ *
445
+ * @example
446
+ * obj.paths({ db: { host: "x", port: 5432 }, tags: ["a"] }); // ["db.host", "db.port", "tags"]
447
+ *
448
+ * @param {object} object
449
+ * @returns {string[]}
450
+ */
451
+ declare function paths(object: object): string[];
452
+ /**
453
+ * A copy with its keys in order, nested objects included. Two objects with
454
+ * the same content then give the same JSON, which makes stable hashes,
455
+ * cache keys and readable diffs.
456
+ *
457
+ * @example
458
+ * obj.sortKeys({ b: 1, a: { d: 1, c: 2 } }); // { a: { c: 2, d: 1 }, b: 1 }
459
+ * nc.crypto.hash(JSON.stringify(obj.sortKeys(payload)));
460
+ *
461
+ * @template T
462
+ * @param {T} object
463
+ * @param {SortKeysOptions} [options]
464
+ * @returns {T}
465
+ */
466
+ declare function sortKeys<T>(object: T, options?: SortKeysOptions): T;
410
467
  /**
411
468
  * `Object.keys`, but typed with the object's actual keys.
412
469
  *
@@ -451,7 +508,13 @@ declare function fromEntries<K extends PropertyKey, V>(pairs: Iterable<readonly
451
508
  */
452
509
  declare function size(value: unknown): number;
453
510
  /**
454
- * Does the object have no own keys? `null` and `undefined` count as empty.
511
+ * Is there nothing in it? No own keys for an object, no entries for a Map
512
+ * or a Set. `null` and `undefined` count as empty; a date, a regular
513
+ * expression and an error never do.
514
+ *
515
+ * @example
516
+ * obj.isEmpty({}); // true
517
+ * obj.isEmpty(new Map([["a", 1]])); // false
455
518
  *
456
519
  * @param {unknown} object
457
520
  * @returns {boolean}
@@ -1 +1 @@
1
- {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../src/Obj.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../src/Obj.js"],"names":[],"mappings":"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"}
@@ -41,8 +41,9 @@ declare class SQLite<R = Record<string, any>> {
41
41
  lastInsertRowid: number | bigint;
42
42
  };
43
43
  /**
44
- * Runs a query and returns the first row. When it reads a single table,
45
- * JSON and boolean columns are converted.
44
+ * Runs a query and returns the first row. JSON and boolean columns are
45
+ * converted like in `get()`, joins and renamed columns included. On Node.js
46
+ * before 22.16, that only works for a query on a single table.
46
47
  *
47
48
  * @example
48
49
  * const user = db.queryOne("SELECT * FROM users WHERE email = ?", [email]);
@@ -201,6 +202,25 @@ declare class SQLite<R = Record<string, any>> {
201
202
  * @throws {SQLiteError}
202
203
  */
203
204
  getAll<T = R>(tableName: string, where?: Where<R>, options?: QueryOptions): T[];
205
+ /**
206
+ * One page of the rows that match, with what a pager needs to draw itself.
207
+ *
208
+ * @example
209
+ * const { items, pages, hasNext } = db.paginate("posts", { status: "published" }, {
210
+ * page: 3,
211
+ * perPage: 20,
212
+ * orderBy: "created_at",
213
+ * direction: "DESC",
214
+ * });
215
+ *
216
+ * @template [T=R]
217
+ * @param {string} tableName
218
+ * @param {Where<R>} [where]
219
+ * @param {PaginateOptions} [options]
220
+ * @returns {import("./Arr").Page<T>} A page past the end gives the last one.
221
+ * @throws {SQLiteError}
222
+ */
223
+ paginate<T = R>(tableName: string, where?: Where<R>, options?: PaginateOptions): import("./Arr").Page<T>;
204
224
  /**
205
225
  * Counts the rows that match.
206
226
  *
@@ -232,26 +252,30 @@ declare class SQLite<R = Record<string, any>> {
232
252
  *
233
253
  * @example
234
254
  * const { lastInsertRowid } = db.insert("users", { email: "ada@example.com", settings: { theme: "dark" } });
255
+ * db.insert("tags", { label: "news" }, { onConflict: "ignore" }); // no error if it's already there
235
256
  *
236
257
  * @param {string} tableName
237
258
  * @param {Partial<R> & Record<string, unknown>} data
259
+ * @param {InsertOptions} [options]
238
260
  * @returns {InsertResult}
239
261
  * @throws {SQLiteError} On a constraint failure; `sqliteCode` tells you which, like `"SQLITE_CONSTRAINT_UNIQUE"`.
240
262
  */
241
- insert(tableName: string, data: Partial<R> & Record<string, unknown>): InsertResult;
263
+ insert(tableName: string, data: Partial<R> & Record<string, unknown>, options?: InsertOptions): InsertResult;
242
264
  /**
243
265
  * Inserts many rows in one transaction: all or nothing, and much faster
244
266
  * than one by one.
245
267
  *
246
268
  * @example
247
269
  * db.insertMany("products", rowsFromCsv);
270
+ * db.insertMany("tags", labels.map((label) => ({ label })), { onConflict: "ignore" });
248
271
  *
249
272
  * @param {string} tableName
250
- * @param {Array<Partial<R> & Record<string, unknown>>} rows
273
+ * @param {Iterable<Partial<R> & Record<string, unknown>>} rows
274
+ * @param {InsertOptions} [options]
251
275
  * @returns {ChangeResult}
252
276
  * @throws {SQLiteError} If a row fails; nothing is inserted then.
253
277
  */
254
- insertMany(tableName: string, rows: Array<Partial<R> & Record<string, unknown>>): ChangeResult;
278
+ insertMany(tableName: string, rows: Iterable<Partial<R> & Record<string, unknown>>, options?: InsertOptions): ChangeResult;
255
279
  /**
256
280
  * Updates the rows that match. The filter is required, so a forgotten
257
281
  * condition can't rewrite the whole table.
@@ -306,6 +330,23 @@ declare class SQLite<R = Record<string, any>> {
306
330
  * @throws {SQLiteError}
307
331
  */
308
332
  delete(tableName: string, where: Where<R>): ChangeResult;
333
+ /**
334
+ * Adds to number columns in one statement, so two requests at the same
335
+ * moment both count. Reading the value, adding to it and writing it back
336
+ * would lose one of them. Negative numbers subtract; an empty column
337
+ * counts as 0.
338
+ *
339
+ * @example
340
+ * db.increment("posts", { views: 1 }, { id: post.id });
341
+ * db.increment("accounts", { balance: -25, withdrawals: 1 }, { id: account.id });
342
+ *
343
+ * @param {string} tableName
344
+ * @param {Partial<Record<keyof R & string, number>> & Record<string, number>} amounts Column names and how much to add.
345
+ * @param {Where<R>} where
346
+ * @returns {ChangeResult}
347
+ * @throws {SQLiteError}
348
+ */
349
+ increment(tableName: string, amounts: Partial<Record<keyof R & string, number>> & Record<string, number>, where: Where<R>): ChangeResult;
309
350
  /**
310
351
  * Shortcuts bound to one table, so you don't repeat its name.
311
352
  *
@@ -326,16 +367,17 @@ declare class SQLite<R = Record<string, any>> {
326
367
  *
327
368
  * @example
328
369
  * db.transaction(() => {
329
- * db.update("accounts", { balance: from.balance - amount }, { id: from.id });
330
- * db.update("accounts", { balance: to.balance + amount }, { id: to.id });
370
+ * db.increment("accounts", { balance: -amount }, { id: from.id });
371
+ * db.increment("accounts", { balance: amount }, { id: to.id });
331
372
  * });
332
373
  *
333
374
  * @template T
334
375
  * @param {() => T} callback Can be async; the commit then waits for it.
376
+ * @param {TransactionOptions} [options]
335
377
  * @returns {T}
336
378
  * @throws Whatever `callback` threw, after rolling back.
337
379
  */
338
- transaction<T>(callback: () => T): T;
380
+ transaction<T>(callback: () => T, options?: TransactionOptions): T;
339
381
  /** Whether a transaction is open. */
340
382
  get inTransaction(): boolean;
341
383
  /**
@@ -416,7 +458,7 @@ declare class SQLite<R = Record<string, any>> {
416
458
  #private;
417
459
  }
418
460
  declare namespace SQLite {
419
- export { ColumnType, ForeignKeyAction, ColumnDefinition, TableConstraint, IndexDefinition, TableDefinition, WhereOperators, Where, WhereValue, SortDirection, QueryOptions, SQLiteOptions, InsertResult, ChangeResult, ColumnInfo, Migration, TableHandle };
461
+ export { ColumnType, ForeignKeyAction, ColumnDefinition, TableConstraint, IndexDefinition, TableDefinition, WhereOperators, Where, WhereValue, SortDirection, QueryOptions, SQLiteOptions, InsertResult, ChangeResult, ColumnInfo, Migration, TableHandle, InsertOptions, PaginateOptions, TransactionOptions, _Reader };
420
462
  }
421
463
  /**
422
464
  * A column type. `JSON` and `BOOLEAN` columns give you back objects and
@@ -443,9 +485,13 @@ type ColumnDefinition = {
443
485
  notNull?: boolean | undefined;
444
486
  unique?: boolean | undefined;
445
487
  /**
446
- * Objects work for JSON columns, booleans for BOOLEAN ones.
488
+ * Objects work for JSON columns, booleans for BOOLEAN ones. `"CURRENT_TIMESTAMP"`, `"CURRENT_DATE"` and `"CURRENT_TIME"` mean the moment of the insert.
447
489
  */
448
490
  defaultValue?: unknown;
491
+ /**
492
+ * A default computed by SQLite, like `"(unixepoch())"` or `"(lower(hex(randomblob(16))))"`. Written into the table as is: never build it from user input.
493
+ */
494
+ defaultExpression?: string | undefined;
449
495
  /**
450
496
  * Allowed values.
451
497
  */
@@ -581,8 +627,13 @@ type WhereOperators = {
581
627
  * A filter. Each key is a column: a value means "equals", `null` means
582
628
  * `IS NULL`, an array means "one of", and an object uses operators. Keys
583
629
  * combine with AND; use `$or` and `$and` for the rest.
630
+ *
631
+ * A key with dots looks inside a JSON column: `"settings.theme"` is the
632
+ * `theme` key of the `settings` column, `"tags.0"` the first item of `tags`.
584
633
  */
585
634
  type Where<R = Record<string, any>> = { [K in keyof R]?: WhereValue; } & {
635
+ [path: `${string}.${string}`]: WhereValue;
636
+ } & {
586
637
  $or?: Where<R>[];
587
638
  $and?: Where<R>[];
588
639
  };
@@ -641,9 +692,13 @@ type SQLiteOptions = {
641
692
  */
642
693
  foreignKeys?: boolean | undefined;
643
694
  /**
644
- * How long to wait for a lock held by another connection, in ms. Defaults to `5000`.
695
+ * How long to wait for a lock held by another connection, in ms or like `"5s"`. Defaults to 5 seconds.
696
+ */
697
+ busyTimeout?: string | number | undefined;
698
+ /**
699
+ * How hard SQLite pushes each commit to the disk. With `wal`, `"NORMAL"` writes several times faster and can't corrupt the file; a power cut may undo the last commits. Defaults to SQLite's own setting, `"FULL"`.
645
700
  */
646
- busyTimeout?: number | undefined;
701
+ synchronous?: "OFF" | "NORMAL" | "FULL" | "EXTRA" | undefined;
647
702
  readOnly?: boolean | undefined;
648
703
  };
649
704
  /**
@@ -695,18 +750,26 @@ type TableHandle<R = Record<string, any>> = {
695
750
  * All matching rows.
696
751
  */
697
752
  getAll: (where?: Where<R>, options?: QueryOptions) => R[];
753
+ /**
754
+ * One page of matching rows.
755
+ */
756
+ paginate: (where?: Where<R>, options?: PaginateOptions) => import("./Arr").Page<R>;
698
757
  /**
699
758
  * Inserts a row.
700
759
  */
701
- insert: (data: Partial<R>) => InsertResult;
760
+ insert: (data: Partial<R>, options?: InsertOptions) => InsertResult;
702
761
  /**
703
762
  * Inserts rows in one transaction.
704
763
  */
705
- insertMany: (rows: Array<Partial<R>>) => ChangeResult;
764
+ insertMany: (rows: Iterable<Partial<R>>, options?: InsertOptions) => ChangeResult;
706
765
  /**
707
766
  * Updates matching rows.
708
767
  */
709
768
  update: (data: Partial<R>, where: Where<R>) => ChangeResult;
769
+ /**
770
+ * Adds to number columns.
771
+ */
772
+ increment: (amounts: Partial<Record<keyof R & string, number>>, where: Where<R>) => ChangeResult;
710
773
  /**
711
774
  * Inserts, or updates on conflict.
712
775
  */
@@ -730,4 +793,50 @@ type TableHandle<R = Record<string, any>> = {
730
793
  ok: true;
731
794
  };
732
795
  };
796
+ /**
797
+ * Options for `insert()` and `insertMany()`.
798
+ */
799
+ type InsertOptions = {
800
+ /**
801
+ * What to do when a row clashes with an existing one: `"ignore"` skips it, `"replace"` deletes the old row first. By default, the insert fails.
802
+ */
803
+ onConflict?: "replace" | "ignore" | undefined;
804
+ };
805
+ /**
806
+ * Options for `paginate()`.
807
+ */
808
+ type PaginateOptions = {
809
+ /**
810
+ * Starts at 1, which is the default.
811
+ */
812
+ page?: number | undefined;
813
+ /**
814
+ * Defaults to `20`.
815
+ */
816
+ perPage?: number | undefined;
817
+ /**
818
+ * Give one: without it, SQLite is free to return the rows in any order.
819
+ */
820
+ orderBy?: string | (string | [string, SortDirection])[] | undefined;
821
+ direction?: SortDirection | undefined;
822
+ columns?: string[] | undefined;
823
+ };
824
+ /**
825
+ * Options for `transaction()`.
826
+ */
827
+ type TransactionOptions = {
828
+ /**
829
+ * Take the write lock right away, instead of on the first write. Use it for read-then-write work when several processes share the database: they then wait for each other instead of failing with `SQLITE_BUSY`.
830
+ */
831
+ immediate?: boolean | undefined;
832
+ };
833
+ /**
834
+ * A prepared query and what's needed to turn its rows into objects.
835
+ */
836
+ type _Reader = {
837
+ stmt: import("node:sqlite").StatementSync;
838
+ names: string[] | undefined;
839
+ kinds: Uint8Array | undefined;
840
+ table: string | undefined;
841
+ };
733
842
  //# sourceMappingURL=SQLite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLite.d.ts","sourceRoot":"","sources":["../../src/SQLite.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLite.d.ts","sourceRoot":"","sources":["../../src/SQLite.js"],"names":[],"mappings":"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"}