@livestore/utils 0.0.54-dev.26 → 0.0.54-dev.28

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 (122) hide show
  1. package/dist/.tsbuildinfo.json +1 -1
  2. package/dist/Deferred.d.ts.map +1 -1
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/effect/Effect.d.ts.map +1 -1
  5. package/dist/effect/Effect.js +13 -8
  6. package/dist/effect/Effect.js.map +1 -1
  7. package/dist/effect/Scheduler.d.ts +4 -0
  8. package/dist/effect/Scheduler.d.ts.map +1 -0
  9. package/dist/effect/Scheduler.js +10 -0
  10. package/dist/effect/Scheduler.js.map +1 -0
  11. package/dist/effect/Schema/debug-diff.d.ts +13 -0
  12. package/dist/effect/Schema/debug-diff.d.ts.map +1 -0
  13. package/dist/effect/Schema/debug-diff.js +51 -0
  14. package/dist/effect/Schema/debug-diff.js.map +1 -0
  15. package/dist/effect/Schema/debug-diff.test.d.ts +2 -0
  16. package/dist/effect/Schema/debug-diff.test.d.ts.map +1 -0
  17. package/dist/effect/Schema/debug-diff.test.js +91 -0
  18. package/dist/effect/Schema/debug-diff.test.js.map +1 -0
  19. package/dist/effect/{Schema.d.ts → Schema/index.d.ts} +2 -1
  20. package/dist/effect/Schema/index.d.ts.map +1 -0
  21. package/dist/effect/{Schema.js → Schema/index.js} +3 -2
  22. package/dist/effect/Schema/index.js.map +1 -0
  23. package/dist/effect/ServiceContext.d.ts.map +1 -1
  24. package/dist/effect/Stream.d.ts.map +1 -1
  25. package/dist/effect/SubscriptionRef.d.ts.map +1 -1
  26. package/dist/effect/WebLock.d.ts +1 -1
  27. package/dist/effect/WebLock.d.ts.map +1 -1
  28. package/dist/effect/WebLock.js +18 -7
  29. package/dist/effect/WebLock.js.map +1 -1
  30. package/dist/effect/browser-worker-tmp/BrowserWorker.d.ts +21 -0
  31. package/dist/effect/browser-worker-tmp/BrowserWorker.d.ts.map +1 -0
  32. package/dist/effect/browser-worker-tmp/BrowserWorker.js +17 -0
  33. package/dist/effect/browser-worker-tmp/BrowserWorker.js.map +1 -0
  34. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.d.ts +12 -0
  35. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.d.ts.map +1 -0
  36. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.js +8 -0
  37. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.js.map +1 -0
  38. package/dist/effect/browser-worker-tmp/internal/worker.d.ts +9 -0
  39. package/dist/effect/browser-worker-tmp/internal/worker.d.ts.map +1 -0
  40. package/dist/effect/browser-worker-tmp/internal/worker.js +56 -0
  41. package/dist/effect/browser-worker-tmp/internal/worker.js.map +1 -0
  42. package/dist/effect/browser-worker-tmp/internal/workerRunner.d.ts +5 -0
  43. package/dist/effect/browser-worker-tmp/internal/workerRunner.d.ts.map +1 -0
  44. package/dist/effect/browser-worker-tmp/internal/workerRunner.js +100 -0
  45. package/dist/effect/browser-worker-tmp/internal/workerRunner.js.map +1 -0
  46. package/dist/effect/browser-worker-tmp/port-platform-runner.d.ts +5 -0
  47. package/dist/effect/browser-worker-tmp/port-platform-runner.d.ts.map +1 -0
  48. package/dist/effect/{port-platform-runner.js → browser-worker-tmp/port-platform-runner.js} +3 -3
  49. package/dist/effect/browser-worker-tmp/port-platform-runner.js.map +1 -0
  50. package/dist/effect/index.d.ts +9 -5
  51. package/dist/effect/index.d.ts.map +1 -1
  52. package/dist/effect/index.js +11 -5
  53. package/dist/effect/index.js.map +1 -1
  54. package/dist/effect/platform-worker.d.ts +2 -0
  55. package/dist/effect/platform-worker.d.ts.map +1 -0
  56. package/dist/effect/platform-worker.js +2 -0
  57. package/dist/effect/platform-worker.js.map +1 -0
  58. package/dist/effect/worker-tmp/Worker.d.ts +290 -0
  59. package/dist/effect/worker-tmp/Worker.d.ts.map +1 -0
  60. package/dist/effect/worker-tmp/Worker.js +62 -0
  61. package/dist/effect/worker-tmp/Worker.js.map +1 -0
  62. package/dist/effect/worker-tmp/WorkerError.d.ts +63 -0
  63. package/dist/effect/worker-tmp/WorkerError.d.ts.map +1 -0
  64. package/dist/effect/worker-tmp/WorkerError.js +54 -0
  65. package/dist/effect/worker-tmp/WorkerError.js.map +1 -0
  66. package/dist/effect/worker-tmp/WorkerRunner.d.ts +119 -0
  67. package/dist/effect/worker-tmp/WorkerRunner.d.ts.map +1 -0
  68. package/dist/effect/worker-tmp/WorkerRunner.js +32 -0
  69. package/dist/effect/worker-tmp/WorkerRunner.js.map +1 -0
  70. package/dist/effect/worker-tmp/internal/worker.d.ts +36 -0
  71. package/dist/effect/worker-tmp/internal/worker.d.ts.map +1 -0
  72. package/dist/effect/worker-tmp/internal/worker.js +242 -0
  73. package/dist/effect/worker-tmp/internal/worker.js.map +1 -0
  74. package/dist/effect/worker-tmp/internal/workerError.d.ts +4 -0
  75. package/dist/effect/worker-tmp/internal/workerError.d.ts.map +1 -0
  76. package/dist/effect/worker-tmp/internal/workerError.js +3 -0
  77. package/dist/effect/worker-tmp/internal/workerError.js.map +1 -0
  78. package/dist/effect/worker-tmp/internal/workerRunner.d.ts +21 -0
  79. package/dist/effect/worker-tmp/internal/workerRunner.d.ts.map +1 -0
  80. package/dist/effect/worker-tmp/internal/workerRunner.js +136 -0
  81. package/dist/effect/worker-tmp/internal/workerRunner.js.map +1 -0
  82. package/dist/fast-deep-equal.d.ts +2 -0
  83. package/dist/fast-deep-equal.d.ts.map +1 -0
  84. package/dist/fast-deep-equal.js +79 -0
  85. package/dist/fast-deep-equal.js.map +1 -0
  86. package/dist/guards.d.ts.map +1 -1
  87. package/dist/index.d.ts +2 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +13 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/object/index.d.ts.map +1 -1
  92. package/dist/object/omit.d.ts.map +1 -1
  93. package/dist/object/pick.d.ts +1 -1
  94. package/dist/object/pick.d.ts.map +1 -1
  95. package/dist/promise.d.ts.map +1 -1
  96. package/dist/set.d.ts.map +1 -1
  97. package/package.json +17 -16
  98. package/src/effect/Effect.ts +13 -11
  99. package/src/effect/Scheduler.ts +14 -0
  100. package/src/effect/Schema/debug-diff.test.ts +102 -0
  101. package/src/effect/Schema/debug-diff.ts +59 -0
  102. package/src/effect/{Schema.ts → Schema/index.ts} +2 -1
  103. package/src/effect/WebLock.ts +36 -26
  104. package/src/effect/browser-worker-tmp/BrowserWorker.ts +26 -0
  105. package/src/effect/browser-worker-tmp/BrowserWorkerRunner.ts +14 -0
  106. package/src/effect/browser-worker-tmp/internal/worker.ts +71 -0
  107. package/src/effect/browser-worker-tmp/internal/workerRunner.ts +119 -0
  108. package/src/effect/{port-platform-runner.ts → browser-worker-tmp/port-platform-runner.ts} +4 -3
  109. package/src/effect/index.ts +10 -5
  110. package/src/effect/worker-tmp/Worker.ts +374 -0
  111. package/src/effect/worker-tmp/WorkerError.ts +80 -0
  112. package/src/effect/worker-tmp/WorkerRunner.ts +181 -0
  113. package/src/effect/worker-tmp/internal/worker.ts +415 -0
  114. package/src/effect/worker-tmp/internal/workerError.ts +6 -0
  115. package/src/effect/worker-tmp/internal/workerRunner.ts +236 -0
  116. package/src/fast-deep-equal.ts +72 -0
  117. package/src/index.ts +12 -1
  118. package/dist/effect/Schema.d.ts.map +0 -1
  119. package/dist/effect/Schema.js.map +0 -1
  120. package/dist/effect/port-platform-runner.d.ts +0 -5
  121. package/dist/effect/port-platform-runner.d.ts.map +0 -1
  122. package/dist/effect/port-platform-runner.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ /* eslint-disable no-var */
2
+
3
+ // Copied from fast-deep-equal
4
+ // MIT License
5
+
6
+ export const deepEqual = <T>(a: T, b: T): boolean => {
7
+ if (a === b) return true
8
+
9
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
10
+ if (a.constructor !== b.constructor) return false
11
+
12
+ var length, i, keys
13
+ if (Array.isArray(a)) {
14
+ length = a.length
15
+ // @ts-expect-error ...
16
+ if (length != b.length) return false
17
+ for (i = length; i-- !== 0; )
18
+ // @ts-expect-error ...
19
+ if (!deepEqual(a[i], b[i])) return false
20
+ return true
21
+ }
22
+
23
+ if (a instanceof Map && b instanceof Map) {
24
+ if (a.size !== b.size) return false
25
+ for (i of a.entries()) if (!b.has(i[0])) return false
26
+ for (i of a.entries()) if (!deepEqual(i[1], b.get(i[0]))) return false
27
+ return true
28
+ }
29
+
30
+ if (a instanceof Set && b instanceof Set) {
31
+ if (a.size !== b.size) return false
32
+ for (i of a.entries()) if (!b.has(i[0])) return false
33
+ return true
34
+ }
35
+
36
+ if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
37
+ // @ts-expect-error ...
38
+ length = a.length
39
+ // @ts-expect-error ...
40
+ if (length != b.length) return false
41
+ for (i = length; i-- !== 0; )
42
+ // @ts-expect-error ...
43
+ if (a[i] !== b[i]) return false
44
+ return true
45
+ }
46
+
47
+ // @ts-expect-error ...
48
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags
49
+ if (a.valueOf !== undefined && a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()
50
+ if (a.toString !== undefined && a.toString !== Object.prototype.toString) return a.toString() === b.toString()
51
+
52
+ keys = Object.keys(a)
53
+ length = keys.length
54
+ if (length !== Object.keys(b).length) return false
55
+
56
+ for (i = length; i-- !== 0; )
57
+ // @ts-expect-error ...
58
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false
59
+
60
+ for (i = length; i-- !== 0; ) {
61
+ var key = keys[i]
62
+
63
+ // @ts-expect-error ...
64
+ if (!deepEqual(a[key], b[key])) return false
65
+ }
66
+
67
+ return true
68
+ }
69
+
70
+ // true if both NaN, false otherwise
71
+ return a !== a && b !== b
72
+ }
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export * from './set.js'
8
8
  export * from './browser.js'
9
9
  export * from './Deferred.js'
10
10
  export * from './misc.js'
11
+ export * from './fast-deep-equal.js'
11
12
  export * as base64 from './base64.js'
12
13
  export { default as prettyBytes } from 'pretty-bytes'
13
14
 
@@ -91,7 +92,7 @@ export function casesHandled(unexpectedCase: never): never {
91
92
 
92
93
  export const shouldNeverHappen = (msg?: string, ...args: any[]): never => {
93
94
  console.error(msg, ...args)
94
- if (import.meta.env.DEV || import.meta.env.VITE_DEV) {
95
+ if (isDev()) {
95
96
  debugger
96
97
  }
97
98
 
@@ -231,3 +232,13 @@ export const isPromise = (value: any): value is Promise<unknown> => typeof value
231
232
  export const isIterable = <T>(value: any): value is Iterable<T> => typeof value?.[Symbol.iterator] === 'function'
232
233
 
233
234
  export { objectToString as errorToString } from './misc.js'
235
+
236
+ const isDev = memoizeByRef(() => {
237
+ if (import.meta.env !== undefined) {
238
+ return import.meta.env.DEV || import.meta.env.VITE_DEV
239
+ } else if (typeof process !== 'undefined' && process.env !== undefined) {
240
+ return process.env.DEV
241
+ } else {
242
+ return false
243
+ }
244
+ })
@@ -1 +0,0 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAA;AAIrC,cAAc,uBAAuB,CAAA;AAKrC,eAAO,MAAM,IAAI,WAAY,OAAO,MAAM,CAAC,GAAG,CAAC,WAS9C,CAAA;;;;;AAOD,qBAAa,QAAS,SAAQ,aAgB5B;CAAG;AAEL,eAAO,MAAM,uBAAuB,oBAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,YAAY,GAAG,SAAS,SACxE,CAAC,oBAAoB,YAAY,GAAG,SAAS,KAAG,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAShG,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,cAAc,uBAAuB,CAAA;AAErC,2FAA2F;AAC3F,kDAAkD;AAClD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACV,qIAAqI,CACtI,CAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACtC,CAAC,CAAA;AAEF,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE;IAC5E,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE;QACtB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAA;QAC3C,KAAK,CAAC,eAAe,GAAG,CAAC,CAAA;QACzB,iDAAiD;QACjD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3B,KAAK,CAAC,eAAe,GAAG,aAAa,CAAA;QACrC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;QACvB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrB,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;CACH,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,uBAAuB,GAClC,CAAU,MAA8B,EAAE,OAAkC,EAAE,EAAE,CAChF,CAAC,CAAI,EAAE,eAA0C,EAAqD,EAAE,CACtG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,aAAa,CAAA;IAEnD,MAAM,OAAO,GAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CACzD,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAoB,CAAC,CAAA;AAC5D,CAAC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import * as Runner from '@effect/platform/WorkerRunner';
2
- import * as Layer from 'effect/Layer';
3
- /** @internal */
4
- export declare const layer: (port: MessagePort) => Layer.Layer<Runner.PlatformRunner, never, never>;
5
- //# sourceMappingURL=port-platform-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"port-platform-runner.d.ts","sourceRoot":"","sources":["../../src/effect/port-platform-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAIvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAkErC,gBAAgB;AAChB,eAAO,MAAM,KAAK,SAAU,WAAW,qDAAmE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"port-platform-runner.js","sourceRoot":"","sources":["../../src/effect/port-platform-runner.ts"],"names":[],"mappings":"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"}