@evolu/common 7.2.3 → 7.4.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 (92) hide show
  1. package/dist/src/Buffer.d.ts +2 -1
  2. package/dist/src/Buffer.d.ts.map +1 -1
  3. package/dist/src/Buffer.js +1 -0
  4. package/dist/src/Callbacks.d.ts +1 -1
  5. package/dist/src/Callbacks.d.ts.map +1 -1
  6. package/dist/src/Callbacks.js +1 -1
  7. package/dist/src/Console.d.ts +1 -9
  8. package/dist/src/Console.d.ts.map +1 -1
  9. package/dist/src/Console.js +1 -41
  10. package/dist/src/Function.d.ts +61 -0
  11. package/dist/src/Function.d.ts.map +1 -1
  12. package/dist/src/Function.js +19 -0
  13. package/dist/src/Object.d.ts +16 -0
  14. package/dist/src/Object.d.ts.map +1 -1
  15. package/dist/src/Object.js +16 -0
  16. package/dist/src/Redacted.d.ts +89 -0
  17. package/dist/src/Redacted.d.ts.map +1 -0
  18. package/dist/src/Redacted.js +48 -0
  19. package/dist/src/Result.d.ts +36 -29
  20. package/dist/src/Result.d.ts.map +1 -1
  21. package/dist/src/Sqlite.d.ts +9 -7
  22. package/dist/src/Sqlite.d.ts.map +1 -1
  23. package/dist/src/Sqlite.js +8 -0
  24. package/dist/src/Task.d.ts.map +1 -1
  25. package/dist/src/Task.js +6 -4
  26. package/dist/src/Type.d.ts +34 -10
  27. package/dist/src/Type.d.ts.map +1 -1
  28. package/dist/src/Type.js +82 -202
  29. package/dist/src/index.d.ts +1 -0
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +1 -0
  32. package/dist/src/local-first/Db.d.ts +1 -5
  33. package/dist/src/local-first/Db.d.ts.map +1 -1
  34. package/dist/src/local-first/Db.js +109 -108
  35. package/dist/src/local-first/Evolu.d.ts +3 -0
  36. package/dist/src/local-first/Evolu.d.ts.map +1 -1
  37. package/dist/src/local-first/Evolu.js +6 -7
  38. package/dist/src/local-first/LocalAuth.d.ts +2 -2
  39. package/dist/src/local-first/Owner.d.ts +7 -0
  40. package/dist/src/local-first/Owner.d.ts.map +1 -1
  41. package/dist/src/local-first/Protocol.d.ts.map +1 -1
  42. package/dist/src/local-first/Protocol.js +10 -10
  43. package/dist/src/local-first/Public.d.ts +6 -1
  44. package/dist/src/local-first/Public.d.ts.map +1 -1
  45. package/dist/src/local-first/Public.js +6 -1
  46. package/dist/src/local-first/PublicKysely.js +1 -1
  47. package/dist/src/local-first/Query.d.ts +54 -6
  48. package/dist/src/local-first/Query.d.ts.map +1 -1
  49. package/dist/src/local-first/Query.js +130 -11
  50. package/dist/src/local-first/Relay.d.ts.map +1 -1
  51. package/dist/src/local-first/Relay.js +17 -18
  52. package/dist/src/local-first/Schema.d.ts +15 -14
  53. package/dist/src/local-first/Schema.d.ts.map +1 -1
  54. package/dist/src/local-first/Schema.js +43 -51
  55. package/dist/src/local-first/Storage.d.ts +2 -2
  56. package/dist/src/local-first/Storage.d.ts.map +1 -1
  57. package/dist/src/local-first/Storage.js +2 -6
  58. package/dist/src/local-first/Sync.d.ts +9 -4
  59. package/dist/src/local-first/Sync.d.ts.map +1 -1
  60. package/dist/src/local-first/Sync.js +132 -59
  61. package/dist/src/local-first/index.d.ts +9 -2
  62. package/dist/src/local-first/index.d.ts.map +1 -1
  63. package/dist/src/local-first/index.js +9 -2
  64. package/package.json +3 -4
  65. package/src/Buffer.ts +2 -1
  66. package/src/Callbacks.ts +1 -1
  67. package/src/Console.ts +1 -10
  68. package/src/Function.ts +74 -0
  69. package/src/Object.ts +20 -0
  70. package/src/Redacted.ts +118 -0
  71. package/src/Result.ts +38 -29
  72. package/src/Sqlite.ts +18 -7
  73. package/src/Task.ts +6 -4
  74. package/src/Type.ts +148 -20
  75. package/src/index.ts +1 -0
  76. package/src/local-first/Db.ts +181 -209
  77. package/src/local-first/Evolu.ts +9 -6
  78. package/src/local-first/LocalAuth.ts +2 -2
  79. package/src/local-first/Owner.ts +8 -0
  80. package/src/local-first/Protocol.ts +10 -16
  81. package/src/local-first/Public.ts +6 -1
  82. package/src/local-first/PublicKysely.ts +1 -1
  83. package/src/local-first/Query.ts +216 -21
  84. package/src/local-first/Relay.ts +20 -24
  85. package/src/local-first/Schema.ts +83 -70
  86. package/src/local-first/Storage.ts +3 -8
  87. package/src/local-first/Sync.ts +190 -66
  88. package/src/local-first/index.ts +9 -2
  89. package/dist/src/local-first/Diff.d.ts +0 -43
  90. package/dist/src/local-first/Diff.d.ts.map +0 -1
  91. package/dist/src/local-first/Diff.js +0 -97
  92. package/src/local-first/Diff.ts +0 -144
@@ -49,7 +49,7 @@ export declare class BufferError extends Error {
49
49
  * https://blog.mozilla.org/nnethercote/2014/11/04/please-grow-your-buffers-exponentially
50
50
  */
51
51
  export interface Buffer {
52
- /** Returns the total allocated size of the buffer. */
52
+ /** Returns the current capacity of the buffer. */
53
53
  getCapacity: () => NonNegativeInt;
54
54
  /** Returns the current number of bytes stored in the buffer. */
55
55
  getLength: () => NonNegativeInt;
@@ -88,5 +88,6 @@ export interface Buffer {
88
88
  */
89
89
  unwrap: () => Uint8Array;
90
90
  }
91
+ /** Creates a {@link Buffer} for efficient byte operations. */
91
92
  export declare const createBuffer: (arrayLike?: Uint8Array | ArrayLike<number>) => Buffer;
92
93
  //# sourceMappingURL=Buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["../../src/Buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAM5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,MAAM;IACrB,sDAAsD;IACtD,WAAW,EAAE,MAAM,cAAc,CAAC;IAElC,gEAAgE;IAChE,SAAS,EAAE,MAAM,cAAc,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEtD;;;OAGG;IACH,KAAK,EAAE,MAAM,cAAc,CAAC;IAE5B;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,UAAU,CAAC;IAE1C;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,MAAM,UAAU,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KACzC,MA4DF,CAAC"}
1
+ {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["../../src/Buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAM5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,MAAM;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,cAAc,CAAC;IAElC,gEAAgE;IAChE,SAAS,EAAE,MAAM,cAAc,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEtD;;;OAGG;IACH,KAAK,EAAE,MAAM,cAAc,CAAC;IAE5B;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,UAAU,CAAC;IAE1C;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,MAAM,UAAU,CAAC;CAC1B;AAED,8DAA8D;AAC9D,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KACzC,MA4DF,CAAC"}
@@ -11,6 +11,7 @@ export class BufferError extends Error {
11
11
  Error.captureStackTrace(this, this.constructor);
12
12
  }
13
13
  }
14
+ /** Creates a {@link Buffer} for efficient byte operations. */
14
15
  export const createBuffer = (arrayLike) => {
15
16
  let value = arrayLike
16
17
  ? new globalThis.Uint8Array(arrayLike)
@@ -48,6 +48,6 @@ export interface Callbacks<T = undefined> {
48
48
  }
49
49
  /** Unique identifier for a callback in {@link Callbacks}. */
50
50
  export type CallbackId = Id & Brand<"Callback">;
51
- /** Creates a new {@link Callbacks}. */
51
+ /** Creates a {@link Callbacks} registry for managing callbacks. */
52
52
  export declare const createCallbacks: <T = undefined>(deps: RandomBytesDep) => Callbacks<T>;
53
53
  //# sourceMappingURL=Callbacks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,SAAS;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,UAAU,CAAC;IAE9D,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,SAAS,GACjC,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,GAC7B,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;CAC3C;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAEhD,uCAAuC;AACvC,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,SAAS,EAC3C,MAAM,cAAc,KACnB,SAAS,CAAC,CAAC,CAsBb,CAAC"}
1
+ {"version":3,"file":"Callbacks.d.ts","sourceRoot":"","sources":["../../src/Callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,SAAS;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,UAAU,CAAC;IAE9D,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,SAAS,GACjC,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,GAC7B,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;CAC3C;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAEhD,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,SAAS,EAC3C,MAAM,cAAc,KACnB,SAAS,CAAC,CAAC,CAsBb,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { createId } from "./Type.js";
2
- /** Creates a new {@link Callbacks}. */
2
+ /** Creates a {@link Callbacks} registry for managing callbacks. */
3
3
  export const createCallbacks = (deps) => {
4
4
  const callbackMap = new Map();
5
5
  return {
@@ -1,6 +1,4 @@
1
1
  /**
2
- * Cross-platform console
3
- *
4
2
  * Console abstraction for Chrome 123+, Firefox 125+, Safari 18.1+, Node.js
5
3
  * 22.x+, and React Native 0.75+. Includes methods guaranteed to be available in
6
4
  * these environments and expected to remain compatible in future versions.
@@ -35,12 +33,6 @@
35
33
  * }
36
34
  * }
37
35
  * ```
38
- *
39
- * @module
40
- */
41
- /**
42
- * Cross-platform Console interface for Chrome 123+, Firefox 125+, Safari 18.1+,
43
- * Node.js 22.x+, and React Native 0.75+
44
36
  */
45
37
  export interface Console {
46
38
  /** Controls whether console methods produce output (default: true) */
@@ -87,7 +79,7 @@ export interface ConsoleConfig {
87
79
  */
88
80
  readonly enableLogging?: boolean;
89
81
  }
90
- /** Creates a console instance using the global console. */
82
+ /** Creates a {@link Console} for logging with configurable output. */
91
83
  export declare const createConsole: (config?: ConsoleConfig) => Console;
92
84
  export interface ConsoleWithTimeConfig extends ConsoleConfig {
93
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnC,2DAA2D;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpC,gCAAgC;IAChC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpC,+BAA+B;IAC/B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAErC,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B,0DAA0D;IAC1D,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEvD,6CAA6C;IAC7C,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,2DAA2D;IAC3D,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1C,uCAAuC;IACvC,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE9D,yEAAyE;IACzE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,6CAA6C;IAC7C,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,qEAAqE;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAE9E,oDAAoD;IACpD,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,2DAA2D;AAC3D,eAAO,MAAM,aAAa,GAAI,SAAQ,aAAkB,KAAG,OAgE1D,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC;CACjD;AAED,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,GAChC,SAAQ,qBAAqD,KAC5D,OAmDF,CAAC"}
1
+ {"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../../src/Console.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,OAAO;IACtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnC,2DAA2D;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpC,gCAAgC;IAChC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpC,+BAA+B;IAC/B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAErC,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B,0DAA0D;IAC1D,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAEvD,6CAA6C;IAC7C,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,2DAA2D;IAC3D,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1C,uCAAuC;IACvC,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE9D,yEAAyE;IACzE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,6CAA6C;IAC7C,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,qEAAqE;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAE9E,oDAAoD;IACpD,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,sEAAsE;AACtE,eAAO,MAAM,aAAa,GAAI,SAAQ,aAAkB,KAAG,OAgE1D,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC;CACjD;AAED,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,GAChC,SAAQ,qBAAqD,KAC5D,OAmDF,CAAC"}
@@ -1,44 +1,4 @@
1
- /**
2
- * Cross-platform console
3
- *
4
- * Console abstraction for Chrome 123+, Firefox 125+, Safari 18.1+, Node.js
5
- * 22.x+, and React Native 0.75+. Includes methods guaranteed to be available in
6
- * these environments and expected to remain compatible in future versions.
7
- * Output formatting may vary (e.g., interactive UI in browsers vs. text in
8
- * Node.js/React Native), but functionality is consistent across platforms.
9
- *
10
- * **Convention**: Use a tag (e.g., `[db]`) as the first argument for log
11
- * filtering.
12
- *
13
- * ### Example
14
- *
15
- * ```ts
16
- * deps.console.log("[evolu]", "createEvoluInstance", { name });
17
- * ```
18
- *
19
- * **Tip**: In browser dev tools, you can filter logs by tag (e.g., `[db]`) to
20
- * quickly find relevant messages. In Node.js, use `grep` to filter output:
21
- *
22
- * ```bash
23
- * node app.js | grep "\[relay\]" # Show only relay logs
24
- * node app.js | grep -E "\[db\]|\[sql\]" # Show db and sql logs
25
- * node app.js | grep -v "\[debug\]" # Hide debug logs
26
- * ```
27
- *
28
- * Or add to package.json scripts:
29
- *
30
- * ```json
31
- * {
32
- * "scripts": {
33
- * "dev:relay": "node app.js | grep \"\\[relay\\]\"",
34
- * "dev:db": "node app.js | grep -E \"\\[db\\]|\\[sql\\]\""
35
- * }
36
- * }
37
- * ```
38
- *
39
- * @module
40
- */
41
- /** Creates a console instance using the global console. */
1
+ /** Creates a {@link Console} for logging with configurable output. */
42
2
  export const createConsole = (config = {}) => {
43
3
  const instance = {
44
4
  enabled: config.enableLogging ?? false,
@@ -1,3 +1,5 @@
1
+ import { NonEmptyArray, NonEmptyReadonlyArray } from "./Array.js";
2
+ import { ReadonlyRecord } from "./Object.js";
1
3
  /**
2
4
  * Helper function to ensure exhaustive matching in a switch statement. Throws
3
5
  * an error if an unhandled case is encountered.
@@ -28,7 +30,66 @@
28
30
  * ```
29
31
  */
30
32
  export declare const exhaustiveCheck: (value: never) => never;
33
+ /**
34
+ * Returns the input value unchanged.
35
+ *
36
+ * Useful as a default transformation, placeholder callback, or when a function
37
+ * is required but no transformation is needed.
38
+ *
39
+ * ### Example
40
+ *
41
+ * ```ts
42
+ * const values = [1, 2, 3];
43
+ * const same = values.map(identity); // [1, 2, 3]
44
+ *
45
+ * const getTransform = (shouldDouble: boolean) =>
46
+ * shouldDouble ? (x: number) => x * 2 : identity;
47
+ * ```
48
+ */
31
49
  export declare const identity: <A>(a: A) => A;
50
+ /**
51
+ * Casts an array, set, record, or map to its readonly counterpart.
52
+ *
53
+ * Zero runtime cost — returns the same value with a readonly type. Use this to
54
+ * enforce immutability at the type level. Preserves {@link NonEmptyArray} as
55
+ * {@link NonEmptyReadonlyArray}.
56
+ *
57
+ * ### Example
58
+ *
59
+ * ```ts
60
+ * // Array literals become NonEmptyReadonlyArray
61
+ * const items = readonly([1, 2, 3]);
62
+ * // Type: NonEmptyReadonlyArray<number>
63
+ *
64
+ * // NonEmptyArray is preserved as NonEmptyReadonlyArray
65
+ * const nonEmpty: NonEmptyArray<number> = [1, 2, 3];
66
+ * const readonlyNonEmpty = readonly(nonEmpty);
67
+ * // Type: NonEmptyReadonlyArray<number>
68
+ *
69
+ * // Regular arrays become ReadonlyArray
70
+ * const arr: Array<number> = getNumbers();
71
+ * const readonlyArr = readonly(arr);
72
+ * // Type: ReadonlyArray<number>
73
+ *
74
+ * // Sets, Records, and Maps
75
+ * const ids = readonly(new Set(["a", "b"]));
76
+ * // Type: ReadonlySet<string>
77
+ *
78
+ * const users: Record<UserId, string> = { ... };
79
+ * const readonlyUsers = readonly(users);
80
+ * // Type: ReadonlyRecord<UserId, string>
81
+ *
82
+ * const lookup = readonly(new Map([["key", "value"]]));
83
+ * // Type: ReadonlyMap<string, string>
84
+ * ```
85
+ *
86
+ * @experimental
87
+ */
88
+ export declare function readonly<T>(array: NonEmptyArray<T>): NonEmptyReadonlyArray<T>;
89
+ export declare function readonly<T>(array: Array<T>): ReadonlyArray<T>;
90
+ export declare function readonly<T>(set: Set<T>): ReadonlySet<T>;
91
+ export declare function readonly<K, V>(map: Map<K, V>): ReadonlyMap<K, V>;
92
+ export declare function readonly<K extends keyof any, V>(record: Record<K, V>): ReadonlyRecord<K, V>;
32
93
  /**
33
94
  * A function that delays computation and returns a value of type T.
34
95
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Function.d.ts","sourceRoot":"","sources":["../../src/Function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,KAAG,KAE9C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,CAAM,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAmB,CAAC;AAC1D,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,SAAS,CAAmB,CAAC;AACpE,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAc,CAAC;AACrD,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAc,CAAC;AACrD,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,KAAK,CAAe,CAAC"}
1
+ {"version":3,"file":"Function.d.ts","sourceRoot":"","sources":["../../src/Function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,KAAG,KAE9C,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,CAAM,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC/E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACzD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAWxB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAmB,CAAC;AAC1D,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,SAAS,CAAmB,CAAC;AACpE,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAc,CAAC;AACrD,eAAO,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAc,CAAC;AACrD,eAAO,MAAM,UAAU,EAAE,SAAS,CAAC,KAAK,CAAe,CAAC"}
@@ -30,7 +30,26 @@
30
30
  export const exhaustiveCheck = (value) => {
31
31
  throw new Error(`exhaustiveCheck unhandled case: ${JSON.stringify(value)}`);
32
32
  };
33
+ /**
34
+ * Returns the input value unchanged.
35
+ *
36
+ * Useful as a default transformation, placeholder callback, or when a function
37
+ * is required but no transformation is needed.
38
+ *
39
+ * ### Example
40
+ *
41
+ * ```ts
42
+ * const values = [1, 2, 3];
43
+ * const same = values.map(identity); // [1, 2, 3]
44
+ *
45
+ * const getTransform = (shouldDouble: boolean) =>
46
+ * shouldDouble ? (x: number) => x * 2 : identity;
47
+ * ```
48
+ */
33
49
  export const identity = (a) => a;
50
+ export function readonly(value) {
51
+ return value;
52
+ }
34
53
  export const constVoid = () => undefined;
35
54
  export const constUndefined = () => undefined;
36
55
  export const constNull = () => null;
@@ -52,5 +52,21 @@ export declare const excludeProp: <T extends object, K extends keyof T>(obj: T,
52
52
  * ```
53
53
  */
54
54
  export declare const createRecord: <K extends string = string, V = unknown>() => Record<K, V>;
55
+ /**
56
+ * Safely gets a property from a record, returning `undefined` if the key
57
+ * doesn't exist.
58
+ *
59
+ * TypeScript's `Record<K, V>` type assumes all keys exist, but at runtime
60
+ * accessing a non-existent key returns `undefined`. This helper provides proper
61
+ * typing for that case without needing a type assertion.
62
+ *
63
+ * ### Example
64
+ *
65
+ * ```ts
66
+ * const users: Record<string, User> = { alice: { name: "Alice" } };
67
+ * const user = getProperty(users, "bob"); // User | undefined
68
+ * ```
69
+ */
70
+ export declare const getProperty: <K extends string, V>(record: ReadonlyRecord<K, V>, key: string) => V | undefined;
55
71
  export {};
56
72
  //# sourceMappingURL=Object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../src/Object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAC2B,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAG5E,KAAK,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,QAAQ,CAAC,KACR,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAGK,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAC9C,QAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAC1B,cAAc,CAAC,CAAC,EAAE,CAAC,CAMK,CAAC;AAE5B,wDAAwD;AACxD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAC7D,KAAK,CAAC,EACN,MAAM,CAAC,EACP,YAAY,OAAO,KAClB,OAAO,SAAS,SAAS,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAM/C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,OAAK,MAAM,CAC5E,CAAC,EACD,CAAC,CACqC,CAAC"}
1
+ {"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../src/Object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAC2B,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAG5E,KAAK,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,QAAQ,CAAC,KACR,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAGK,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAC9C,QAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAC1B,cAAc,CAAC,CAAC,EAAE,CAAC,CAMK,CAAC;AAE5B,wDAAwD;AACxD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAC7D,KAAK,CAAC,EACN,MAAM,CAAC,EACP,YAAY,OAAO,KAClB,OAAO,SAAS,SAAS,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAM/C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,OAAK,MAAM,CAC5E,CAAC,EACD,CAAC,CACqC,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7C,QAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,KAAK,MAAM,KACV,CAAC,GAAG,SAA2D,CAAC"}
@@ -55,3 +55,19 @@ export const excludeProp = (obj, prop, condition) => {
55
55
  * ```
56
56
  */
57
57
  export const createRecord = () => Object.create(null);
58
+ /**
59
+ * Safely gets a property from a record, returning `undefined` if the key
60
+ * doesn't exist.
61
+ *
62
+ * TypeScript's `Record<K, V>` type assumes all keys exist, but at runtime
63
+ * accessing a non-existent key returns `undefined`. This helper provides proper
64
+ * typing for that case without needing a type assertion.
65
+ *
66
+ * ### Example
67
+ *
68
+ * ```ts
69
+ * const users: Record<string, User> = { alice: { name: "Alice" } };
70
+ * const user = getProperty(users, "bob"); // User | undefined
71
+ * ```
72
+ */
73
+ export const getProperty = (record, key) => (key in record ? record[key] : undefined);
@@ -0,0 +1,89 @@
1
+ import type { Brand } from "./Brand.js";
2
+ import type { Eq } from "./Eq.js";
3
+ /**
4
+ * A wrapper type that prevents sensitive values from being accidentally exposed
5
+ * through logging, serialization, or inspection.
6
+ *
7
+ * The wrapped value is hidden and can only be accessed explicitly via
8
+ * {@link revealRedacted}. All standard methods (`toString`, `toJSON`, and
9
+ * Node.js inspect) return `<redacted>`.
10
+ *
11
+ * For type-level distinction between different secrets, use branded types.
12
+ *
13
+ * The actual value lives in a `WeakMap`, so it never appears as a property and
14
+ * is automatically garbage collected when the wrapper is dropped. This is
15
+ * better than a class with a private field because private fields are still
16
+ * visible in devtools. Symbols can't be used because they don't support custom
17
+ * `toString`.
18
+ *
19
+ * Implements `Disposable` for automatic cleanup via the `using` syntax.
20
+ *
21
+ * ### Example
22
+ *
23
+ * ```ts
24
+ * // Define branded types for your secrets
25
+ * type ApiKey = string & Brand<"ApiKey">;
26
+ * type DbPassword = string & Brand<"DbPassword">;
27
+ *
28
+ * // Wrap them with Redacted for safe passing
29
+ * type RedactedApiKey = Redacted<ApiKey>;
30
+ * type RedactedDbPassword = Redacted<DbPassword>;
31
+ *
32
+ * // Create a redacted secret
33
+ * const apiKey: ApiKey = "secret-123" as ApiKey;
34
+ * const redactedKey: RedactedApiKey = createRedacted(apiKey);
35
+ *
36
+ * console.log(redactedKey); // <redacted>
37
+ * console.log(revealRedacted(redactedKey)); // secret-123
38
+ *
39
+ * // Type safety: RedactedApiKey ≠ RedactedDbPassword
40
+ * const fetchUser = (key: RedactedApiKey) => {
41
+ * const value: ApiKey = revealRedacted(key);
42
+ * // use value...
43
+ * };
44
+ *
45
+ * fetchUser(redactedKey); // ✅
46
+ * // fetchUser(createRedacted("x" as DbPassword)); // ❌ type error
47
+ *
48
+ * // Automatic cleanup with `using`
49
+ * {
50
+ * using secret = createRedacted("sensitive" as ApiKey);
51
+ * // ... use secret ...
52
+ * } // automatically wiped from memory
53
+ * ```
54
+ *
55
+ * @experimental
56
+ */
57
+ export interface Redacted<A> extends Brand<"Redacted">, Disposable {
58
+ /** The inner type. Useful for inference via `typeof redacted.Type`. */
59
+ readonly Type: A;
60
+ }
61
+ /** Creates a {@link Redacted} wrapper for a sensitive value. */
62
+ export declare const createRedacted: <A>(value: A) => Redacted<A>;
63
+ /**
64
+ * Reveals the original value from a {@link Redacted} wrapper.
65
+ *
66
+ * This is a separate function rather than a method on {@link Redacted} to make
67
+ * access visually explicit and easy to grep in code reviews. Accessing
68
+ * sensitive values should feel intentional, not convenient.
69
+ */
70
+ export declare const revealRedacted: <A>(redacted: Redacted<A>) => A;
71
+ /** Checks if a value is a {@link Redacted} wrapper. */
72
+ export declare const isRedacted: (value: unknown) => value is Redacted<unknown>;
73
+ /**
74
+ * Creates an {@link Eq} for {@link Redacted} values based on an equality function
75
+ * for the underlying type.
76
+ *
77
+ * ### Example
78
+ *
79
+ * ```ts
80
+ * type ApiKey = string & Brand<"ApiKey">;
81
+ * const eqRedactedApiKey = createEqRedacted<ApiKey>(eqString);
82
+ *
83
+ * const a = createRedacted("x" as ApiKey);
84
+ * const b = createRedacted("x" as ApiKey);
85
+ * eqRedactedApiKey(a, b); // true
86
+ * ```
87
+ */
88
+ export declare const createEqRedacted: <A>(eq: Eq<A>) => Eq<Redacted<A>>;
89
+ //# sourceMappingURL=Redacted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redacted.d.ts","sourceRoot":"","sources":["../../src/Redacted.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU;IAChE,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CAClB;AAED,gEAAgE;AAChE,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,QAAQ,CAAC,CAAC,CAItD,CAAC;AAaF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,CAGzD,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,CAG7B,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,GAC1B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAEY,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { assert } from "./Assert.js";
2
+ /** Creates a {@link Redacted} wrapper for a sensitive value. */
3
+ export const createRedacted = (value) => {
4
+ const redacted = Object.create(proto);
5
+ registry.set(redacted, value);
6
+ return redacted;
7
+ };
8
+ const proto = {
9
+ toString: () => redactedString,
10
+ toJSON: () => redactedString,
11
+ [Symbol.for("nodejs.util.inspect.custom")]: () => redactedString,
12
+ [Symbol.dispose]() {
13
+ registry.delete(this);
14
+ },
15
+ };
16
+ const redactedString = "<redacted>";
17
+ const registry = new WeakMap();
18
+ /**
19
+ * Reveals the original value from a {@link Redacted} wrapper.
20
+ *
21
+ * This is a separate function rather than a method on {@link Redacted} to make
22
+ * access visually explicit and easy to grep in code reviews. Accessing
23
+ * sensitive values should feel intentional, not convenient.
24
+ */
25
+ export const revealRedacted = (redacted) => {
26
+ assert(registry.has(redacted), "Redacted value was not in registry");
27
+ return registry.get(redacted);
28
+ };
29
+ /** Checks if a value is a {@link Redacted} wrapper. */
30
+ export const isRedacted = (value) => typeof value === "object" &&
31
+ value !== null &&
32
+ Object.getPrototypeOf(value) === proto;
33
+ /**
34
+ * Creates an {@link Eq} for {@link Redacted} values based on an equality function
35
+ * for the underlying type.
36
+ *
37
+ * ### Example
38
+ *
39
+ * ```ts
40
+ * type ApiKey = string & Brand<"ApiKey">;
41
+ * const eqRedactedApiKey = createEqRedacted<ApiKey>(eqString);
42
+ *
43
+ * const a = createRedacted("x" as ApiKey);
44
+ * const b = createRedacted("x" as ApiKey);
45
+ * eqRedactedApiKey(a, b); // true
46
+ * ```
47
+ */
48
+ export const createEqRedacted = (eq) => (x, y) => eq(revealRedacted(x), revealRedacted(y));
@@ -82,19 +82,22 @@
82
82
  * };
83
83
  * ```
84
84
  *
85
+ * For lazy, cancellable async operations, see {@link Task}.
86
+ *
85
87
  * ### Naming convention
86
88
  *
87
- * - For values: `const user = getUser()`
88
- * - For a single void operation: `const result = foo()`
89
- * - For multiple void operations: use descriptive names for all
89
+ * - **For values you need:** use a name without Result suffix (`user`, `config`)
90
+ * - **For void operations:** use `result` (no value to name)
91
+ *
92
+ * For multiple void operations, use block scopes to avoid potentially long
93
+ * names like `createBaseTablesResult`, `createRelayTablesResult`, or counters
94
+ * like `result1`, `result2`:
90
95
  *
91
96
  * ```ts
92
97
  * const processUser = () => {
93
- * // we have a value
94
98
  * const user = getUser();
95
99
  * if (!user.ok) return user;
96
100
  *
97
- * // single void operation
98
101
  * const result = saveToDatabase(user.value);
99
102
  * if (!result.ok) return result;
100
103
  *
@@ -102,12 +105,15 @@
102
105
  * };
103
106
  *
104
107
  * const setupDatabase = () => {
105
- * // multiple void operations - use descriptive names
106
- * const baseTables = createBaseTables();
107
- * if (!baseTables.ok) return baseTables;
108
- *
109
- * const relayTables = createRelayTables();
110
- * if (!relayTables.ok) return relayTables;
108
+ * // Multiple void operations - use block scopes to avoid name clash
109
+ * {
110
+ * const result = createBaseTables();
111
+ * if (!result.ok) return result;
112
+ * }
113
+ * {
114
+ * const result = createRelayTables();
115
+ * if (!result.ok) return result;
116
+ * }
111
117
  *
112
118
  * return ok();
113
119
  * };
@@ -124,30 +130,31 @@
124
130
  * schema, and initializes the database, stopping on the first error:
125
131
  *
126
132
  * ```ts
127
- * const resetResult = deps.sqlite.transaction(() => {
128
- * const dropAllTablesResult = dropAllTables(deps);
129
- * if (!dropAllTablesResult.ok) return dropAllTablesResult;
133
+ * const result = deps.sqlite.transaction(() => {
134
+ * const result = dropAllTables(deps);
135
+ * if (!result.ok) return result;
130
136
  *
131
137
  * if (message.restore) {
132
138
  * const dbSchema = getDbSchema(deps)();
133
139
  * if (!dbSchema.ok) return dbSchema;
134
140
  *
135
- * const ensureDbSchemaResult = ensureDbSchema(deps)(
136
- * message.restore.dbSchema,
137
- * dbSchema.value,
138
- * );
139
- * if (!ensureDbSchemaResult.ok) return ensureDbSchemaResult;
140
- *
141
- * const initializeDbResult = initializeDb(deps)(
142
- * message.restore.mnemonic,
143
- * );
144
- * if (!initializeDbResult.ok) return initializeDbResult;
141
+ * {
142
+ * const result = ensureDbSchema(deps)(
143
+ * message.restore.dbSchema,
144
+ * dbSchema.value,
145
+ * );
146
+ * if (!result.ok) return result;
147
+ * }
148
+ * {
149
+ * const result = initializeDb(deps)(message.restore.mnemonic);
150
+ * if (!result.ok) return result;
151
+ * }
145
152
  * }
146
153
  * return ok();
147
154
  * });
148
155
  *
149
- * if (!resetResult.ok) {
150
- * deps.postMessage({ type: "onError", error: resetResult.error });
156
+ * if (!result.ok) {
157
+ * deps.postMessage({ type: "onError", error: result.error });
151
158
  * return;
152
159
  * }
153
160
  * ```
@@ -254,13 +261,13 @@
254
261
  * ```ts
255
262
  * // ✅ Safe to return void - unsafe code is wrapped and error is handled
256
263
  * const processData = (data: string): void => {
257
- * const parseResult = trySync(
264
+ * const result = trySync(
258
265
  * () => JSON.parse(data),
259
266
  * (error) => ({ type: "ParseError", message: String(error) }),
260
267
  * );
261
268
  *
262
- * if (!parseResult.ok) {
263
- * logError(parseResult.error);
269
+ * if (!result.ok) {
270
+ * logError(result.error);
264
271
  * return;
265
272
  * }
266
273
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/Result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8UG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,mCAAmC;AACnC,MAAM,WAAW,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAC5C,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAC7C,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/B,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAKvC;;;;;;;;;GASG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAA2B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAMvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,GAAG,IAC1B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,IAAI,MAAM,CAAC,EACX,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,KAC9B,MAAM,CAAC,CAAC,EAAE,CAAC,CAMb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,EAAE,CAAC,EACjC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAIpB,CAAC"}
1
+ {"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/Result.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqVG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,mCAAmC;AACnC,MAAM,WAAW,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAC5C,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAC7C,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/B,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAKvC;;;;;;;;;GASG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAA2B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAMvD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,GAAG,IAC1B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,IAAI,MAAM,CAAC,EACX,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,KAC9B,MAAM,CAAC,CAAC,EAAE,CAAC,CAMb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,EAAE,CAAC,EACjC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAIpB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Brand } from "./Brand.js";
2
2
  import { ConsoleDep } from "./Console.js";
3
3
  import { EncryptionKey } from "./Crypto.js";
4
+ import { Eq } from "./Eq.js";
4
5
  import { TransferableError } from "./Error.js";
5
6
  import { Result } from "./Result.js";
6
7
  import { SimpleName } from "./Type.js";
@@ -18,8 +19,8 @@ export interface CreateSqliteDriverDep {
18
19
  readonly createSqliteDriver: CreateSqliteDriver;
19
20
  }
20
21
  export interface SqliteDriverOptions {
21
- memory?: boolean;
22
- encryptionKey?: EncryptionKey | undefined;
22
+ readonly memory?: boolean;
23
+ readonly encryptionKey?: EncryptionKey | undefined;
23
24
  }
24
25
  /**
25
26
  * Cross-platform SQLite abstraction.
@@ -49,7 +50,7 @@ export interface SqliteQuery {
49
50
  readonly options?: SqliteQueryOptions;
50
51
  }
51
52
  /** A type representing a sanitized SQL string. */
52
- export type SafeSql = string & Brand<"TimestampString">;
53
+ export type SafeSql = string & Brand<"SafeSql">;
53
54
  /**
54
55
  * A value that can be stored in Sqlite.
55
56
  *
@@ -58,6 +59,7 @@ export type SafeSql = string & Brand<"TimestampString">;
58
59
  */
59
60
  export declare const SqliteValue: import("./Type.js").UnionType<[import("./Type.js").Type<"Null", null, null, import("./Type.js").NullError, null, import("./Type.js").NullError>, import("./Type.js").Type<"String", string, string, import("./Type.js").StringError, string, import("./Type.js").StringError>, import("./Type.js").Type<"Number", number, number, import("./Type.js").NumberError, number, import("./Type.js").NumberError>, import("./Type.js").Type<"Uint8Array", Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, import("./Type.js").Uint8ArrayError, Uint8Array<ArrayBufferLike>, import("./Type.js").Uint8ArrayError>]>;
60
61
  export type SqliteValue = typeof SqliteValue.Type;
62
+ export declare const eqSqliteValue: Eq<SqliteValue>;
61
63
  export interface SqliteQueryOptions {
62
64
  /**
63
65
  * If set to `true`, logs the time taken to execute the SQL query. Useful for
@@ -103,12 +105,12 @@ export interface PreparedStatements<P> extends Disposable {
103
105
  }
104
106
  export declare const createPreparedStatementsCache: <P>(factory: (sql: SafeSql) => P, disposeFn: (statement: P) => void) => PreparedStatements<P>;
105
107
  export interface SqlIdentifier {
106
- type: "SqlIdentifier";
107
- sql: SafeSql;
108
+ readonly type: "SqlIdentifier";
109
+ readonly sql: SafeSql;
108
110
  }
109
111
  export interface RawSql {
110
- type: "RawSql";
111
- sql: string;
112
+ readonly type: "RawSql";
113
+ readonly sql: string;
112
114
  }
113
115
  export type SqlTemplateParam = SqliteValue | SqlIdentifier | RawSql;
114
116
  /**
@@ -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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"}