@livestore/utils 0.4.0-dev.9 → 0.5.0-dev.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 (316) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/NoopTracer.d.ts +7 -8
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/NoopTracer.js +13 -15
  5. package/dist/NoopTracer.js.map +1 -1
  6. package/dist/NoopTracer.test.d.ts +2 -0
  7. package/dist/NoopTracer.test.d.ts.map +1 -0
  8. package/dist/NoopTracer.test.js +17 -0
  9. package/dist/NoopTracer.test.js.map +1 -0
  10. package/dist/binary.js +1 -1
  11. package/dist/binary.js.map +1 -1
  12. package/dist/browser/Opfs/Opfs.d.ts +201 -0
  13. package/dist/browser/Opfs/Opfs.d.ts.map +1 -0
  14. package/dist/browser/Opfs/Opfs.js +170 -0
  15. package/dist/browser/Opfs/Opfs.js.map +1 -0
  16. package/dist/browser/Opfs/debug-utils.d.ts +20 -0
  17. package/dist/browser/Opfs/debug-utils.d.ts.map +1 -0
  18. package/dist/browser/Opfs/debug-utils.js +95 -0
  19. package/dist/browser/Opfs/debug-utils.js.map +1 -0
  20. package/dist/browser/Opfs/mod.d.ts +4 -0
  21. package/dist/browser/Opfs/mod.d.ts.map +1 -0
  22. package/dist/browser/Opfs/mod.js +4 -0
  23. package/dist/browser/Opfs/mod.js.map +1 -0
  24. package/dist/browser/Opfs/utils.d.ts +71 -0
  25. package/dist/browser/Opfs/utils.d.ts.map +1 -0
  26. package/dist/browser/Opfs/utils.js +227 -0
  27. package/dist/browser/Opfs/utils.js.map +1 -0
  28. package/dist/browser/QuotaExceededError.d.ts +60 -0
  29. package/dist/browser/QuotaExceededError.d.ts.map +1 -0
  30. package/dist/browser/QuotaExceededError.js +2 -0
  31. package/dist/browser/QuotaExceededError.js.map +1 -0
  32. package/dist/browser/WebChannelBrowser.d.ts +22 -0
  33. package/dist/browser/WebChannelBrowser.d.ts.map +1 -0
  34. package/dist/browser/WebChannelBrowser.js +87 -0
  35. package/dist/browser/WebChannelBrowser.js.map +1 -0
  36. package/dist/browser/WebError.d.ts +389 -0
  37. package/dist/browser/WebError.d.ts.map +1 -0
  38. package/dist/browser/WebError.js +423 -0
  39. package/dist/browser/WebError.js.map +1 -0
  40. package/dist/browser/WebError.test.d.ts +2 -0
  41. package/dist/browser/WebError.test.d.ts.map +1 -0
  42. package/dist/browser/WebError.test.js +46 -0
  43. package/dist/browser/WebError.test.js.map +1 -0
  44. package/dist/browser/WebLock.d.ts.map +1 -0
  45. package/dist/{effect → browser}/WebLock.js +21 -21
  46. package/dist/browser/WebLock.js.map +1 -0
  47. package/dist/{browser.d.ts → browser/detect.d.ts} +1 -1
  48. package/dist/browser/detect.d.ts.map +1 -0
  49. package/dist/{browser.js → browser/detect.js} +7 -7
  50. package/dist/browser/detect.js.map +1 -0
  51. package/dist/browser/mod.d.ts +8 -0
  52. package/dist/browser/mod.d.ts.map +1 -0
  53. package/dist/browser/mod.js +8 -0
  54. package/dist/browser/mod.js.map +1 -0
  55. package/dist/cuid/cuid.browser.js +1 -1
  56. package/dist/cuid/cuid.browser.js.map +1 -1
  57. package/dist/cuid/cuid.node.js +1 -1
  58. package/dist/cuid/cuid.node.js.map +1 -1
  59. package/dist/effect/Debug.d.ts +38 -0
  60. package/dist/effect/Debug.d.ts.map +1 -0
  61. package/dist/effect/Debug.js +350 -0
  62. package/dist/effect/Debug.js.map +1 -0
  63. package/dist/effect/Effect.d.ts +91 -22
  64. package/dist/effect/Effect.d.ts.map +1 -1
  65. package/dist/effect/Effect.js +126 -38
  66. package/dist/effect/Effect.js.map +1 -1
  67. package/dist/effect/Effect.test.d.ts +2 -0
  68. package/dist/effect/Effect.test.d.ts.map +1 -0
  69. package/dist/effect/Effect.test.js +72 -0
  70. package/dist/effect/Effect.test.js.map +1 -0
  71. package/dist/effect/Error.d.ts +4 -6
  72. package/dist/effect/Error.d.ts.map +1 -1
  73. package/dist/effect/Error.js +1 -1
  74. package/dist/effect/Error.js.map +1 -1
  75. package/dist/effect/Logger.d.ts +0 -6
  76. package/dist/effect/Logger.d.ts.map +1 -1
  77. package/dist/effect/Logger.js +0 -32
  78. package/dist/effect/Logger.js.map +1 -1
  79. package/dist/effect/OtelTracer.d.ts +1 -1
  80. package/dist/effect/OtelTracer.d.ts.map +1 -1
  81. package/dist/effect/OtelTracer.js +2 -3
  82. package/dist/effect/OtelTracer.js.map +1 -1
  83. package/dist/effect/RpcClient.d.ts +7 -7
  84. package/dist/effect/RpcClient.d.ts.map +1 -1
  85. package/dist/effect/RpcClient.js +74 -54
  86. package/dist/effect/RpcClient.js.map +1 -1
  87. package/dist/effect/Schedule.d.ts +1 -1
  88. package/dist/effect/Schedule.d.ts.map +1 -1
  89. package/dist/effect/Schedule.js +2 -2
  90. package/dist/effect/Schedule.js.map +1 -1
  91. package/dist/effect/Schema/debug-diff.d.ts +1 -1
  92. package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
  93. package/dist/effect/Schema/debug-diff.js +9 -10
  94. package/dist/effect/Schema/debug-diff.js.map +1 -1
  95. package/dist/effect/Schema/debug-diff.test.js +7 -4
  96. package/dist/effect/Schema/debug-diff.test.js.map +1 -1
  97. package/dist/effect/Schema/index.d.ts +28 -18
  98. package/dist/effect/Schema/index.d.ts.map +1 -1
  99. package/dist/effect/Schema/index.js +55 -28
  100. package/dist/effect/Schema/index.js.map +1 -1
  101. package/dist/effect/Stream.d.ts +13 -5
  102. package/dist/effect/Stream.d.ts.map +1 -1
  103. package/dist/effect/Stream.js +19 -12
  104. package/dist/effect/Stream.js.map +1 -1
  105. package/dist/effect/Stream.test.js +12 -12
  106. package/dist/effect/Stream.test.js.map +1 -1
  107. package/dist/effect/Subscribable.d.ts +9 -3
  108. package/dist/effect/Subscribable.d.ts.map +1 -1
  109. package/dist/effect/Subscribable.js +20 -35
  110. package/dist/effect/Subscribable.js.map +1 -1
  111. package/dist/effect/SubscriptionRef.d.ts +5 -6
  112. package/dist/effect/SubscriptionRef.d.ts.map +1 -1
  113. package/dist/effect/SubscriptionRef.js +2 -3
  114. package/dist/effect/SubscriptionRef.js.map +1 -1
  115. package/dist/effect/TaskTracing.d.ts +1 -1
  116. package/dist/effect/TaskTracing.d.ts.map +1 -1
  117. package/dist/effect/TaskTracing.js +12 -16
  118. package/dist/effect/TaskTracing.js.map +1 -1
  119. package/dist/effect/WebChannel/WebChannel.d.ts +11 -30
  120. package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
  121. package/dist/effect/WebChannel/WebChannel.js +70 -125
  122. package/dist/effect/WebChannel/WebChannel.js.map +1 -1
  123. package/dist/effect/WebChannel/WebChannel.test.js +16 -16
  124. package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
  125. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
  126. package/dist/effect/WebChannel/broadcastChannelWithAck.js +20 -13
  127. package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
  128. package/dist/effect/WebChannel/common.d.ts +17 -18
  129. package/dist/effect/WebChannel/common.d.ts.map +1 -1
  130. package/dist/effect/WebChannel/common.js +7 -7
  131. package/dist/effect/WebChannel/common.js.map +1 -1
  132. package/dist/effect/WebSocket.d.ts +4 -6
  133. package/dist/effect/WebSocket.d.ts.map +1 -1
  134. package/dist/effect/WebSocket.js +17 -17
  135. package/dist/effect/WebSocket.js.map +1 -1
  136. package/dist/effect/WebSocket.test.js +2 -2
  137. package/dist/effect/WebSocket.test.js.map +1 -1
  138. package/dist/effect/mod.browser-build.test.d.ts +2 -0
  139. package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
  140. package/dist/effect/mod.browser-build.test.js +18 -0
  141. package/dist/effect/mod.browser-build.test.js.map +1 -0
  142. package/dist/effect/mod.d.ts +30 -0
  143. package/dist/effect/mod.d.ts.map +1 -0
  144. package/dist/effect/mod.js +30 -0
  145. package/dist/effect/mod.js.map +1 -0
  146. package/dist/effect/spanEvent.d.ts +12 -0
  147. package/dist/effect/spanEvent.d.ts.map +1 -0
  148. package/dist/effect/spanEvent.js +12 -0
  149. package/dist/effect/spanEvent.js.map +1 -0
  150. package/dist/effect/spanEvent.test.d.ts +2 -0
  151. package/dist/effect/spanEvent.test.d.ts.map +1 -0
  152. package/dist/effect/spanEvent.test.js +79 -0
  153. package/dist/effect/spanEvent.test.js.map +1 -0
  154. package/dist/env.d.ts.map +1 -1
  155. package/dist/env.js +1 -1
  156. package/dist/env.js.map +1 -1
  157. package/dist/fast-deep-equal.d.ts.map +1 -1
  158. package/dist/fast-deep-equal.js +9 -10
  159. package/dist/fast-deep-equal.js.map +1 -1
  160. package/dist/global.d.ts +3 -0
  161. package/dist/global.d.ts.map +1 -1
  162. package/dist/global.js.map +1 -1
  163. package/dist/misc.d.ts +9 -1
  164. package/dist/misc.d.ts.map +1 -1
  165. package/dist/misc.js +12 -4
  166. package/dist/misc.js.map +1 -1
  167. package/dist/mod.d.ts +177 -20
  168. package/dist/mod.d.ts.map +1 -1
  169. package/dist/mod.js +159 -22
  170. package/dist/mod.js.map +1 -1
  171. package/dist/node/mod.d.ts +45 -6
  172. package/dist/node/mod.d.ts.map +1 -1
  173. package/dist/node/mod.js +51 -9
  174. package/dist/node/mod.js.map +1 -1
  175. package/dist/object/index.d.ts +0 -9
  176. package/dist/object/index.d.ts.map +1 -1
  177. package/dist/object/index.js +0 -9
  178. package/dist/object/index.js.map +1 -1
  179. package/dist/object/stringify-object.js +2 -2
  180. package/dist/object/stringify-object.js.map +1 -1
  181. package/dist/object/stringify-object.test.js.map +1 -1
  182. package/dist/qr.d.ts +38 -0
  183. package/dist/qr.d.ts.map +1 -0
  184. package/dist/qr.js +109 -0
  185. package/dist/qr.js.map +1 -0
  186. package/dist/set.js +1 -1
  187. package/dist/set.js.map +1 -1
  188. package/dist/string.d.ts +0 -2
  189. package/dist/string.d.ts.map +1 -1
  190. package/dist/string.js +0 -2
  191. package/dist/string.js.map +1 -1
  192. package/package.json +61 -55
  193. package/src/NoopTracer.test.ts +20 -0
  194. package/src/NoopTracer.ts +28 -37
  195. package/src/binary.ts +1 -1
  196. package/src/browser/Opfs/Opfs.ts +463 -0
  197. package/src/browser/Opfs/debug-utils.ts +154 -0
  198. package/src/browser/Opfs/mod.ts +3 -0
  199. package/src/browser/Opfs/utils.ts +297 -0
  200. package/src/browser/QuotaExceededError.ts +60 -0
  201. package/src/browser/WebChannelBrowser.ts +145 -0
  202. package/src/browser/WebError.test.ts +66 -0
  203. package/src/browser/WebError.ts +587 -0
  204. package/src/{effect → browser}/WebLock.ts +27 -28
  205. package/src/{browser.ts → browser/detect.ts} +6 -6
  206. package/src/browser/mod.ts +8 -0
  207. package/src/cuid/cuid.browser.ts +1 -1
  208. package/src/cuid/cuid.node.ts +1 -1
  209. package/src/effect/Debug.ts +477 -0
  210. package/src/effect/Effect.test.ts +117 -0
  211. package/src/effect/Effect.ts +174 -79
  212. package/src/effect/Error.ts +1 -1
  213. package/src/effect/Logger.ts +0 -48
  214. package/src/effect/OtelTracer.ts +2 -3
  215. package/src/effect/RpcClient.ts +85 -65
  216. package/src/effect/Schedule.ts +4 -5
  217. package/src/effect/Schema/debug-diff.test.ts +7 -7
  218. package/src/effect/Schema/debug-diff.ts +11 -12
  219. package/src/effect/Schema/index.ts +121 -57
  220. package/src/effect/Stream.test.ts +14 -13
  221. package/src/effect/Stream.ts +23 -16
  222. package/src/effect/Subscribable.ts +31 -42
  223. package/src/effect/SubscriptionRef.ts +9 -13
  224. package/src/effect/TaskTracing.ts +13 -16
  225. package/src/effect/WebChannel/WebChannel.test.ts +24 -24
  226. package/src/effect/WebChannel/WebChannel.ts +102 -192
  227. package/src/effect/WebChannel/broadcastChannelWithAck.ts +25 -15
  228. package/src/effect/WebChannel/common.ts +16 -17
  229. package/src/effect/WebSocket.test.ts +2 -2
  230. package/src/effect/WebSocket.ts +20 -16
  231. package/src/effect/mod.browser-build.test.ts +19 -0
  232. package/src/effect/{index.ts → mod.ts} +43 -69
  233. package/src/effect/spanEvent.test.ts +92 -0
  234. package/src/effect/spanEvent.ts +17 -0
  235. package/src/env.ts +2 -1
  236. package/src/fast-deep-equal.ts +9 -10
  237. package/src/global.ts +4 -2
  238. package/src/misc.ts +13 -5
  239. package/src/mod.ts +188 -32
  240. package/src/node/mod.ts +57 -12
  241. package/src/object/index.ts +0 -24
  242. package/src/object/stringify-object.test.ts +1 -0
  243. package/src/object/stringify-object.ts +2 -2
  244. package/src/qr.ts +125 -0
  245. package/src/set.ts +1 -1
  246. package/src/string.ts +0 -3
  247. package/dist/.tsbuildinfo.json +0 -1
  248. package/dist/browser.d.ts.map +0 -1
  249. package/dist/browser.js.map +0 -1
  250. package/dist/effect/BucketQueue.d.ts +0 -20
  251. package/dist/effect/BucketQueue.d.ts.map +0 -1
  252. package/dist/effect/BucketQueue.js +0 -34
  253. package/dist/effect/BucketQueue.js.map +0 -1
  254. package/dist/effect/Scheduler.d.ts +0 -4
  255. package/dist/effect/Scheduler.d.ts.map +0 -1
  256. package/dist/effect/Scheduler.js +0 -9
  257. package/dist/effect/Scheduler.js.map +0 -1
  258. package/dist/effect/ServiceContext.d.ts +0 -37
  259. package/dist/effect/ServiceContext.d.ts.map +0 -1
  260. package/dist/effect/ServiceContext.js +0 -55
  261. package/dist/effect/ServiceContext.js.map +0 -1
  262. package/dist/effect/WebLock.d.ts.map +0 -1
  263. package/dist/effect/WebLock.js.map +0 -1
  264. package/dist/effect/index.d.ts +0 -32
  265. package/dist/effect/index.d.ts.map +0 -1
  266. package/dist/effect/index.js +0 -35
  267. package/dist/effect/index.js.map +0 -1
  268. package/dist/guards.d.ts +0 -6
  269. package/dist/guards.d.ts.map +0 -1
  270. package/dist/guards.js +0 -6
  271. package/dist/guards.js.map +0 -1
  272. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
  273. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
  274. package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -122
  275. package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
  276. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -2
  277. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
  278. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -218
  279. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
  280. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
  281. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
  282. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
  283. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
  284. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
  285. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
  286. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
  287. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
  288. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
  289. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
  290. package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
  291. package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
  292. package/dist/object/omit.d.ts +0 -3
  293. package/dist/object/omit.d.ts.map +0 -1
  294. package/dist/object/omit.js +0 -14
  295. package/dist/object/omit.js.map +0 -1
  296. package/dist/object/pick.d.ts +0 -14
  297. package/dist/object/pick.d.ts.map +0 -1
  298. package/dist/object/pick.js +0 -17
  299. package/dist/object/pick.js.map +0 -1
  300. package/dist/time.d.ts +0 -12
  301. package/dist/time.d.ts.map +0 -1
  302. package/dist/time.js +0 -22
  303. package/dist/time.js.map +0 -1
  304. package/src/effect/BucketQueue.ts +0 -49
  305. package/src/effect/Scheduler.ts +0 -13
  306. package/src/effect/ServiceContext.ts +0 -108
  307. package/src/guards.ts +0 -8
  308. package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -135
  309. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -302
  310. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
  311. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -66
  312. package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -168
  313. package/src/object/omit.ts +0 -17
  314. package/src/object/pick.ts +0 -27
  315. package/src/time.ts +0 -25
  316. /package/dist/{effect → browser}/WebLock.d.ts +0 -0
@@ -0,0 +1,79 @@
1
+ import { describe, expect, it } from '@effect/vitest';
2
+ import { Effect, Tracer } from 'effect';
3
+ import { spanEvent } from "./spanEvent.js";
4
+ /**
5
+ * Creates a test tracer that captures span events for assertion,
6
+ * using only the public `Tracer` API (no internal NativeSpan access).
7
+ * Each span records its own events, retrievable by span name.
8
+ */
9
+ const makeTestTracer = () => {
10
+ const spanEvents = new Map();
11
+ const tracer = Tracer.make({
12
+ span(options) {
13
+ const events = [];
14
+ spanEvents.set(options.name, events);
15
+ const attributes = new Map();
16
+ return {
17
+ _tag: 'Span',
18
+ name: options.name,
19
+ spanId: `test-${options.name}`,
20
+ traceId: 'test-trace',
21
+ parent: options.parent,
22
+ annotations: options.annotations,
23
+ status: { _tag: 'Started', startTime: options.startTime },
24
+ attributes,
25
+ links: options.links,
26
+ sampled: true,
27
+ kind: options.kind,
28
+ end() { },
29
+ attribute(key, value) {
30
+ attributes.set(key, value);
31
+ },
32
+ event(eventName, _startTime, attrs) {
33
+ events.push({ name: eventName, attributes: attrs });
34
+ },
35
+ addLinks() { },
36
+ };
37
+ },
38
+ });
39
+ return {
40
+ tracer,
41
+ getEvents: (spanName) => spanEvents.get(spanName) ?? [],
42
+ };
43
+ };
44
+ describe('spanEvent', () => {
45
+ it.effect('should emit a span event with the given message', () => {
46
+ const { tracer, getEvents } = makeTestTracer();
47
+ return Effect.gen(function* () {
48
+ yield* spanEvent('test-event');
49
+ const events = getEvents('test-span');
50
+ expect(events).toHaveLength(1);
51
+ expect(events[0].name).toBe('test-event');
52
+ }).pipe(Effect.withSpan('test-span'), Effect.withTracer(tracer));
53
+ });
54
+ it.effect('should emit a span event with attributes', () => {
55
+ const { tracer, getEvents } = makeTestTracer();
56
+ return Effect.gen(function* () {
57
+ yield* spanEvent('event-with-attrs', { key1: 'value1', key2: 42 });
58
+ const events = getEvents('test-span');
59
+ expect(events).toHaveLength(1);
60
+ expect(events[0].name).toBe('event-with-attrs');
61
+ expect(events[0].attributes).toMatchObject({ key1: 'value1', key2: 42 });
62
+ }).pipe(Effect.withSpan('test-span'), Effect.withTracer(tracer));
63
+ });
64
+ it.effect('should emit to the nearest enclosing span', () => {
65
+ const { tracer, getEvents } = makeTestTracer();
66
+ return Effect.gen(function* () {
67
+ yield* spanEvent('outer-event');
68
+ yield* spanEvent('inner-event').pipe(Effect.withSpan('inner-span'));
69
+ const outerEvents = getEvents('outer-span');
70
+ const innerEvents = getEvents('inner-span');
71
+ expect(outerEvents).toHaveLength(1);
72
+ expect(outerEvents[0].name).toBe('outer-event');
73
+ expect(innerEvents).toHaveLength(1);
74
+ expect(innerEvents[0].name).toBe('inner-event');
75
+ }).pipe(Effect.withSpan('outer-span'), Effect.withTracer(tracer));
76
+ });
77
+ it.effect('should be a no-op when no span is in context', () => spanEvent('orphan-event'));
78
+ });
79
+ //# sourceMappingURL=spanEvent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spanEvent.test.js","sourceRoot":"","sources":["../../src/effect/spanEvent.test.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAY3C,CAAA;AAGD,eAAO,MAAM,aAAa,SAAsF,CAAA;AAEhH,iDAAiD;AACjD,eAAO,MAAM,MAAM,SAA4D,CAAA;AAE/E,eAAO,MAAM,KAAK,SAAuB,CAAA;AAEzC,eAAO,MAAM,MAAM,SAA6B,CAAA;AAEhD,eAAO,MAAM,eAAe,SAA0E,CAAA"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAY3C,CAAA;AAGD,eAAO,MAAM,aAAa,SAAsF,CAAA;AAEhH,iDAAiD;AACjD,eAAO,MAAM,MAAM,SAA4D,CAAA;AAE/E,eAAO,MAAM,KAAK,SAAuB,CAAA;AAEzC,eAAO,MAAM,MAAM,SAA6B,CAAA;AAEhD,eAAO,MAAM,eAAe,SACwF,CAAA"}
package/dist/env.js CHANGED
@@ -17,5 +17,5 @@ export const TRACE_VERBOSE = env('LS_TRACE_VERBOSE') !== undefined || env('VITE_
17
17
  export const LS_DEV = envTruish(env('LS_DEV')) || envTruish(env('VITE_LS_DEV'));
18
18
  export const IS_CI = envTruish(env('CI'));
19
19
  export const IS_BUN = typeof Bun !== 'undefined';
20
- export const IS_REACT_NATIVE = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
20
+ export const IS_REACT_NATIVE = typeof navigator !== 'undefined' && navigator['product'] === 'ReactNative';
21
21
  //# sourceMappingURL=env.js.map
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAsB,EAAE;IACtD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAA;AAEhH,iDAAiD;AACjD,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,WAAW,CAAA;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,CAAA"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAsB,EAAE;IACtD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAA;AAEhH,iDAAiD;AACjD,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,WAAW,CAAA;AAEhD,MAAM,CAAC,MAAM,eAAe,GAC1B,OAAO,SAAS,KAAK,WAAW,IAAK,SAAgD,CAAC,SAAS,CAAC,KAAK,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fast-deep-equal.d.ts","sourceRoot":"","sources":["../src/fast-deep-equal.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAmEzC,CAAA"}
1
+ {"version":3,"file":"fast-deep-equal.d.ts","sourceRoot":"","sources":["../src/fast-deep-equal.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,OAkEzC,CAAA"}
@@ -3,20 +3,20 @@
3
3
  export const deepEqual = (a, b) => {
4
4
  if (a === b)
5
5
  return true;
6
- if (a && b && typeof a === 'object' && typeof b === 'object') {
6
+ if (a != null && b != null && typeof a === 'object' && typeof b === 'object') {
7
7
  if (a.constructor !== b.constructor)
8
8
  return false;
9
9
  let length;
10
10
  let i;
11
11
  let keys;
12
- if (Array.isArray(a)) {
12
+ if (Array.isArray(a) === true) {
13
13
  length = a.length;
14
14
  // @ts-expect-error ...
15
15
  if (length !== b.length)
16
16
  return false;
17
17
  for (i = length; i-- !== 0;)
18
18
  // @ts-expect-error ...
19
- if (!deepEqual(a[i], b[i]))
19
+ if (deepEqual(a[i], b[i]) === false)
20
20
  return false;
21
21
  return true;
22
22
  }
@@ -24,10 +24,10 @@ export const deepEqual = (a, b) => {
24
24
  if (a.size !== b.size)
25
25
  return false;
26
26
  for (i of a.entries())
27
- if (!b.has(i[0]))
27
+ if (b.has(i[0]) === false)
28
28
  return false;
29
29
  for (i of a.entries())
30
- if (!deepEqual(i[1], b.get(i[0])))
30
+ if (deepEqual(i[1], b.get(i[0])) === false)
31
31
  return false;
32
32
  return true;
33
33
  }
@@ -35,11 +35,11 @@ export const deepEqual = (a, b) => {
35
35
  if (a.size !== b.size)
36
36
  return false;
37
37
  for (i of a.entries())
38
- if (!b.has(i[0]))
38
+ if (b.has(i[0]) === false)
39
39
  return false;
40
40
  return true;
41
41
  }
42
- if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
42
+ if (ArrayBuffer.isView(a) === true && ArrayBuffer.isView(b) === true) {
43
43
  // @ts-expect-error ...
44
44
  length = a.length;
45
45
  // @ts-expect-error ...
@@ -63,18 +63,17 @@ export const deepEqual = (a, b) => {
63
63
  if (length !== Object.keys(b).length)
64
64
  return false;
65
65
  for (i = length; i-- !== 0;)
66
- if (!Object.hasOwn(b, keys[i]))
66
+ if (Object.hasOwn(b, keys[i]) === false)
67
67
  return false;
68
68
  for (i = length; i-- !== 0;) {
69
69
  const key = keys[i];
70
70
  // @ts-expect-error ...
71
- if (!deepEqual(a[key], b[key]))
71
+ if (deepEqual(a[key], b[key]) === false)
72
72
  return false;
73
73
  }
74
74
  return true;
75
75
  }
76
76
  // true if both NaN, false otherwise
77
- // biome-ignore lint/suspicious/noSelfCompare: comparing to itself is fine here
78
77
  return a !== a && b !== b;
79
78
  };
80
79
  //# sourceMappingURL=fast-deep-equal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fast-deep-equal.js","sourceRoot":"","sources":["../src/fast-deep-equal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fast-deep-equal.js","sourceRoot":"","sources":["../src/fast-deep-equal.ts"],"names":[],"mappings":"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"}
package/dist/global.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  declare global {
2
2
  export type TODO<_Reason extends string = 'unknown'> = any;
3
3
  export type UNUSED<_Reason extends string = 'unknown'> = any;
4
+ interface ImportMeta {
5
+ main: boolean;
6
+ }
4
7
  }
5
8
  export {};
6
9
  //# sourceMappingURL=global.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,MAAM,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,IAAI,GAAG,CAAA;IAC1D,MAAM,MAAM,MAAM,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,IAAI,GAAG,CAAA;CAC7D;AAED,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,MAAM,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,IAAI,GAAG,CAAA;IAC1D,MAAM,MAAM,MAAM,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,IAAI,GAAG,CAAA;IAE5D,UAAU,UAAU;QAClB,IAAI,EAAE,OAAO,CAAA;KACd;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":""}
package/dist/misc.d.ts CHANGED
@@ -2,5 +2,13 @@ export declare const isDevEnv: () => string | boolean | undefined;
2
2
  export declare const objectToString: (error: any) => string;
3
3
  export declare const tryAsFunctionAndNew: <TArg, TResult>(fnOrConstructor: ((arg: TArg) => TResult) | (new (arg: TArg) => TResult), arg: TArg) => TResult;
4
4
  export declare const envTruish: (env: string | undefined) => boolean;
5
- export declare const shouldNeverHappen: (msg?: string, ...args: any[]) => never;
5
+ /**
6
+ * Logs and throws for impossible states, pausing at a breakpoint in development.
7
+ *
8
+ * @param msg - The error message to log and pass to the error.
9
+ * @param args - Arbitrary arguments to include in the log.
10
+ *
11
+ * @see {@link dieDebugger} for the Effect equivalent.
12
+ */
13
+ export declare const shouldNeverHappen: (msg?: string, ...args: ReadonlyArray<unknown>) => never;
6
14
  //# sourceMappingURL=misc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,oCAiBpB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,KAAG,MAW3C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,IAAI,EAAE,OAAO,EAC/C,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,EACxE,KAAK,IAAI,KACR,OAQF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,SAAS,YACgC,CAAA;AAEjF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,KAAG,KAQhE,CAAA"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,oCAiBpB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,KAAG,MAW3C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,IAAI,EAAE,OAAO,EAC/C,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,EACxE,KAAK,IAAI,KACR,OAQF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,SAAS,YACgC,CAAA;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAG,KAQjF,CAAA"}
package/dist/misc.js CHANGED
@@ -7,8 +7,8 @@ export const isDevEnv = () => {
7
7
  if (import.meta.env !== undefined) {
8
8
  return import.meta.env.DEV;
9
9
  }
10
- // @ts-expect-error Only exists in Expo / RN
11
- if (globalThis?.__DEV__) {
10
+ const globals = globalThis;
11
+ if (globals.__DEV__ === true) {
12
12
  return true;
13
13
  }
14
14
  return false;
@@ -36,10 +36,18 @@ export const tryAsFunctionAndNew = (fnOrConstructor, arg) => {
36
36
  }
37
37
  };
38
38
  export const envTruish = (env) => env !== undefined && env.toLowerCase() !== 'false' && env.toLowerCase() !== '0';
39
+ /**
40
+ * Logs and throws for impossible states, pausing at a breakpoint in development.
41
+ *
42
+ * @param msg - The error message to log and pass to the error.
43
+ * @param args - Arbitrary arguments to include in the log.
44
+ *
45
+ * @see {@link dieDebugger} for the Effect equivalent.
46
+ */
39
47
  export const shouldNeverHappen = (msg, ...args) => {
40
48
  console.error(msg, ...args);
41
- if (isDevEnv()) {
42
- // biome-ignore lint/suspicious/noDebugger: debugging
49
+ if (isDevEnv() === true) {
50
+ // oxlint-disable-next-line eslint(no-debugger) -- intentional breakpoint during development
43
51
  debugger;
44
52
  }
45
53
  throw new Error(`This should never happen: ${msg}`);
package/dist/misc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;IAC9C,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC5B,CAAC;IAED,4CAA4C;IAC5C,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7B,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,CAAA;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,+BAA+B,CAAC,EAAE,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,eAAwE,EACxE,GAAS,EACA,EAAE;IACX,IAAI,CAAC;QACH,0CAA0C;QAC1C,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,uCAAuC;QACvC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAuB,EAAE,EAAE,CACnD,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;AAEjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,GAAG,IAAW,EAAS,EAAE;IACvE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAC3B,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,qDAAqD;QACrD,QAAQ,CAAA;IACV,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;AACrD,CAAC,CAAA"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;IAC9C,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,UAA4E,CAAA;IAC5F,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7B,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,CAAA;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,+BAA+B,CAAC,EAAE,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,eAAwE,EACxE,GAAS,EACA,EAAE;IACX,IAAI,CAAC;QACH,0CAA0C;QAC1C,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,uCAAuC;QACvC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAuB,EAAE,EAAE,CACnD,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,GAAG,IAA4B,EAAS,EAAE;IACxF,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAC3B,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QACxB,4FAA4F;QAC5F,QAAQ,CAAA;IACV,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;AACrD,CAAC,CAAA"}
package/dist/mod.d.ts CHANGED
@@ -1,85 +1,242 @@
1
1
  export { default as prettyBytes } from 'pretty-bytes';
2
2
  export * as base64 from './base64.ts';
3
3
  export * from './binary.ts';
4
- export * from './browser.ts';
5
4
  export * from './Deferred.ts';
6
5
  export * from './env.ts';
7
6
  export * from './fast-deep-equal.ts';
8
- export * from './guards.ts';
9
7
  export * from './misc.ts';
10
8
  export * from './NoopTracer.ts';
11
9
  export * from './object/index.ts';
12
10
  export * from './promise.ts';
11
+ export * as QR from './qr.ts';
13
12
  export * from './set.ts';
14
13
  export * from './string.ts';
15
- export * from './time.ts';
16
14
  import type * as otel from '@opentelemetry/api';
17
15
  import type { Types } from 'effect';
18
- export type Prettify<T> = T extends infer U ? {
19
- [K in keyof U]: Prettify<U[K]>;
20
- } : never;
21
- export type TypeEq<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
22
- /** `A` is subtype of `B` */
16
+ /**
17
+ * Type-level subtype check. Returns `true` if `A` extends `B`.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * type Test1 = IsSubtype<'foo', string> // true
22
+ * type Test2 = IsSubtype<string, 'foo'> // false
23
+ * ```
24
+ */
23
25
  export type IsSubtype<A, B> = A extends B ? true : false;
26
+ /** Compile-time assertion that `T` is `true`. Useful for type tests. */
24
27
  export type AssertTrue<T extends true> = T;
25
- export type Writeable<T> = {
26
- -readonly [P in keyof T]: T[P];
27
- };
28
- export type DeepWriteable<T> = {
29
- -readonly [P in keyof T]: DeepWriteable<T[P]>;
30
- };
28
+ /** Makes all properties of `T` nullable (allows `null`). */
31
29
  export type Nullable<T> = {
32
30
  [K in keyof T]: T[K] | null;
33
31
  };
32
+ /** Union of JavaScript primitive types. */
34
33
  export type Primitive = null | undefined | string | number | boolean | symbol | bigint;
34
+ /**
35
+ * Creates a union type that allows specific literals while still accepting the base type.
36
+ * Useful for string/number enums with autocomplete support.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * type Status = LiteralUnion<'pending' | 'active', string>
41
+ * // Allows 'pending', 'active', or any other string
42
+ * ```
43
+ */
35
44
  export type LiteralUnion<LiteralType, BaseType extends Primitive> = LiteralType | (BaseType & Record<never, never>);
45
+ /** Extracts the value type for key `K` from object type `T`, or `never` if key doesn't exist. */
36
46
  export type GetValForKey<T, K> = K extends keyof T ? T[K] : never;
47
+ /** Accepts either a single value or a readonly array of values. */
37
48
  export type SingleOrReadonlyArray<T> = T | ReadonlyArray<T>;
49
+ /** Returns a Promise that resolves after `ms` milliseconds. */
38
50
  export declare const sleep: (ms: number) => Promise<unknown>;
51
+ /**
52
+ * Creates a mutable reference object with a `current` property.
53
+ * Similar to React's `useRef` but works outside of React.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const counter = ref(0)
58
+ * counter.current += 1
59
+ * ```
60
+ */
39
61
  export declare const ref: <T>(val: T) => {
40
62
  current: T;
41
63
  };
64
+ /**
65
+ * Calls a function `n` times with the current index.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * times(3, (i) => console.log(i)) // logs 0, 1, 2
70
+ * ```
71
+ */
42
72
  export declare const times: (n: number, fn: (index: number) => {}) => void;
73
+ /**
74
+ * Wraps a function call in a try/catch that triggers the debugger on error.
75
+ * Useful for debugging exceptions during development.
76
+ */
43
77
  export declare const debugCatch: <T>(try_: () => T) => T;
78
+ /**
79
+ * Recursively removes `undefined` values from an object or array in place.
80
+ * Mutates the input value.
81
+ */
44
82
  export declare const recRemoveUndefinedValues: (val: any) => void;
45
83
  /**
46
84
  * Replace non-alphanumeric characters with a dash.
47
85
  */
48
86
  export declare const sluggify: (str: string, separator?: string) => string;
87
+ /**
88
+ * Creates a property accessor function for use in pipelines.
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const users = [{ name: 'Alice' }, { name: 'Bob' }]
93
+ * const names = users.map(prop('name')) // ['Alice', 'Bob']
94
+ * ```
95
+ */
49
96
  export declare const prop: <T extends {}, K extends keyof T>(key: K) => (obj: T) => T[K];
97
+ /** Capitalizes the first letter of a string. */
50
98
  export declare const capitalizeFirstLetter: (str: string) => string;
51
- export declare const isReadonlyArray: <I, T>(value: ReadonlyArray<I> | T) => value is ReadonlyArray<I>;
52
99
  /**
53
100
  * Use this to make assertion at end of if-else chain that all members of a
54
101
  * union have been accounted for.
55
102
  */
56
- export declare function casesHandled(unexpectedCase: never): never;
103
+ export declare const casesHandled: (unexpectedCase: never) => never;
104
+ /**
105
+ * Throws if the condition is false. Use for runtime assertions that should never fail.
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * assertNever(user !== undefined, 'User must be loaded')
110
+ * ```
111
+ */
57
112
  export declare const assertNever: (failIfFalse: boolean, msg?: string) => void;
113
+ /**
114
+ * Identity function that triggers the debugger. Useful for debugging pipelines.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * data.pipe(transform, debuggerPipe, format) // Pauses debugger here
119
+ * ```
120
+ */
58
121
  export declare const debuggerPipe: <T>(val: T) => T;
122
+ /**
123
+ * Placeholder for unimplemented code paths. Triggers debugger and throws.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const parseFormat = (format: Format) => {
128
+ * switch (format) {
129
+ * case 'json': return parseJson
130
+ * case 'xml': return notYetImplemented('XML parsing')
131
+ * }
132
+ * }
133
+ * ```
134
+ */
59
135
  export declare const notYetImplemented: (msg?: string) => never;
136
+ /** A function that does nothing. Useful as a default callback. */
60
137
  export declare const noop: () => void;
138
+ /** A function that returns a value of type `T`. */
61
139
  export type Thunk<T> = () => T;
140
+ /**
141
+ * If the input is a function, calls it and returns the result. Otherwise returns the value directly.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * unwrapThunk(5) // 5
146
+ * unwrapThunk(() => 5) // 5
147
+ * ```
148
+ */
62
149
  export declare const unwrapThunk: <T>(_: T | (() => T)) => T;
150
+ /**
151
+ * Transforms nullable fields (those that include `null`) into optional fields.
152
+ * Useful for converting database schemas to TypeScript types.
153
+ */
63
154
  export type NullableFieldsToOptional<T> = Types.Simplify<Partial<T> & {
64
155
  [K in keyof T as null extends T[K] ? K : never]?: Exclude<T[K], null>;
65
156
  } & {
66
157
  [K in keyof T as null extends T[K] ? never : K]: T[K];
67
158
  }>;
68
- /** `end` is not included */
159
+ /**
160
+ * Creates an array of numbers from `start` (inclusive) to `end` (exclusive).
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * range(0, 5) // [0, 1, 2, 3, 4]
165
+ * range(3, 7) // [3, 4, 5, 6]
166
+ * ```
167
+ */
69
168
  export declare const range: (start: number, end: number) => number[];
169
+ /**
170
+ * Rate-limits function calls to at most once per `ms` milliseconds.
171
+ * Trailing calls are preserved—if called during the wait period, the function
172
+ * will be called again after the timeout.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * const throttledSave = throttle(() => saveData(), 1000)
177
+ * throttledSave() // Executes immediately
178
+ * throttledSave() // Queued, executes after 1 second
179
+ * throttledSave() // Ignored (already queued)
180
+ * ```
181
+ */
70
182
  export declare const throttle: (fn: () => void, ms: number) => () => void;
183
+ /**
184
+ * Generates a W3C Trace Context `traceparent` header from an OpenTelemetry span.
185
+ * @see https://www.w3.org/TR/trace-context/#examples-of-http-traceparent-headers
186
+ */
71
187
  export declare const getTraceParentHeader: (parentSpan: otel.Span) => string;
188
+ /**
189
+ * Asserts that a tagged union value has a specific tag, narrowing its type.
190
+ * Throws if the tag doesn't match.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * type Result = { _tag: 'ok'; value: number } | { _tag: 'error'; message: string }
195
+ * const result: Result = ...
196
+ * const ok = assertTag(result, 'ok') // Type is { _tag: 'ok'; value: number }
197
+ * ```
198
+ */
72
199
  export declare const assertTag: <TObj extends {
73
200
  _tag: string;
74
201
  }, TTag extends TObj["_tag"]>(obj: TObj, tag: TTag) => Extract<TObj, {
75
202
  _tag: TTag;
76
203
  }>;
204
+ /**
205
+ * Memoizes a function by JSON-stringifying its arguments as the cache key.
206
+ * Suitable for functions with serializable arguments.
207
+ *
208
+ * @example
209
+ * ```ts
210
+ * const expensiveCalc = memoizeByStringifyArgs((a: number, b: number) => {
211
+ * console.log('Computing...')
212
+ * return a + b
213
+ * })
214
+ * expensiveCalc(1, 2) // logs 'Computing...', returns 3
215
+ * expensiveCalc(1, 2) // returns 3 (cached, no log)
216
+ * ```
217
+ */
77
218
  export declare const memoizeByStringifyArgs: <T extends (...args: any[]) => any>(fn: T) => T;
219
+ /**
220
+ * Memoizes a single-argument function using reference equality for cache lookup.
221
+ * Suitable for functions where arguments are objects that should be compared by reference.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * const processUser = memoizeByRef((user: User) => expensiveTransform(user))
226
+ * processUser(userA) // Computes
227
+ * processUser(userA) // Returns cached (same reference)
228
+ * processUser(userB) // Computes (different reference)
229
+ * ```
230
+ */
78
231
  export declare const memoizeByRef: <T extends (arg: any) => any>(fn: T) => T;
232
+ /** Type guard that checks if a value is a non-empty string. */
79
233
  export declare const isNonEmptyString: (str: string | undefined | null) => str is string;
80
- export declare const isPromise: (value: any) => value is Promise<unknown>;
81
- export declare const isIterable: <T>(value: any) => value is Iterable<T>;
82
- /** This utility "lies" as a means of compat with libs that don't explicitly type optionals as unioned with `undefined`. */
234
+ /**
235
+ * Type-level utility that removes `undefined` from all property types.
236
+ * Used for compatibility with libraries that don't type optionals as `| undefined`.
237
+ *
238
+ * Note: This is a type-level lie—the runtime value is unchanged.
239
+ */
83
240
  export declare const omitUndefineds: <T extends Record<keyof any, unknown>>(rec: T) => { [K in keyof T]: Exclude<T[K], undefined>; };
84
241
  export { objectToString as errorToString } from './misc.ts';
85
242
  //# sourceMappingURL=mod.d.ts.map
package/dist/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AAEzB,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAInC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAA;AAExF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAE7G,4BAA4B;AAC5B,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AACxD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAC7D,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAEhF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAAE,CAAA;AAEzD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAEtF,MAAM,MAAM,YAAY,CAAC,WAAW,EAAE,QAAQ,SAAS,SAAS,IAAI,WAAW,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEjE,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAE3D,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBAAsD,CAAA;AAEtF,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,KAAK,CAAC,KAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAwB,CAAA;AAEpE,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,EAAE,KAAG,IAI5D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,MAAM,MAAM,CAAC,KAAG,CAQ7C,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,KAAK,GAAG,KAAG,IAYnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,kBAAe,WAA4C,CAAA;AAEjG,eAAO,MAAM,IAAI,GACd,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,CAAC,MACvC,KAAK,CAAC,KAAG,CAAC,CAAC,CAAC,CACH,CAAA;AAEZ,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,KAAG,MAAoD,CAAA;AAExG,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,KAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAAyB,CAAA;AAErH;;;GAGG;AAEH,wBAAgB,YAAY,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,CAIzD;AAED,eAAO,MAAM,WAAW,GAAI,aAAa,OAAO,EAAE,MAAM,MAAM,KAAG,IAMhE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,KAAK,CAAC,KAAG,CAIxC,CAAA;AAUD,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,KAIhD,CAAA;AAED,eAAO,MAAM,IAAI,YAAW,CAAA;AAE5B,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAA;AAE9B,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAG,CAMjD,CAAA;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CACtD,OAAO,CAAC,CAAC,CAAC,GAAG;KACV,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;CACtE,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACtD,CACF,CAAA;AAED,4BAA4B;AAC5B,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAGxD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,eAwBlD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,YAAY,IAAI,CAAC,IAAI,WAKzD,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,EAChF,KAAK,IAAI,EACT,KAAK,IAAI,KACR,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAM9B,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,KAAG,CAajF,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,IAAI,CAAC,KAAG,CAYjE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,KAAG,GAAG,IAAI,MAExE,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAsC,CAAA;AAErG,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,GAAG,KAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAmD,CAAA;AAEjH,2HAA2H;AAC3H,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,EACjE,KAAK,CAAC,KACL,GACA,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAGzC,CAAA;AAED,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}