@livestore/utils 0.2.0-dev.2 → 0.3.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 (109) hide show
  1. package/dist/.tsbuildinfo.json +1 -1
  2. package/dist/NoopTracer.js +1 -1
  3. package/dist/NoopTracer.js.map +1 -1
  4. package/dist/base64.d.ts +1 -1
  5. package/dist/base64.d.ts.map +1 -1
  6. package/dist/base64.js.map +1 -1
  7. package/dist/effect/BucketQueue.d.ts +7 -0
  8. package/dist/effect/BucketQueue.d.ts.map +1 -0
  9. package/dist/effect/BucketQueue.js +16 -0
  10. package/dist/effect/BucketQueue.js.map +1 -0
  11. package/dist/effect/Effect.d.ts +6 -1
  12. package/dist/effect/Effect.d.ts.map +1 -1
  13. package/dist/effect/Effect.js +24 -10
  14. package/dist/effect/Effect.js.map +1 -1
  15. package/dist/effect/Logger.d.ts +3 -0
  16. package/dist/effect/Logger.d.ts.map +1 -0
  17. package/dist/effect/Logger.js +10 -0
  18. package/dist/effect/Logger.js.map +1 -0
  19. package/dist/effect/Schema/index.d.ts.map +1 -1
  20. package/dist/effect/Schema/index.js +1 -1
  21. package/dist/effect/Schema/index.js.map +1 -1
  22. package/dist/effect/Schema/msgpack.d.ts +1 -1
  23. package/dist/effect/Schema/msgpack.d.ts.map +1 -1
  24. package/dist/effect/TaskTracing.d.ts +5 -0
  25. package/dist/effect/TaskTracing.d.ts.map +1 -0
  26. package/dist/effect/TaskTracing.js +38 -0
  27. package/dist/effect/TaskTracing.js.map +1 -0
  28. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts +13 -0
  29. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -0
  30. package/dist/effect/WebChannel/broadcastChannelWithAck.js +88 -0
  31. package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -0
  32. package/dist/effect/WebChannel/common.d.ts +16 -0
  33. package/dist/effect/WebChannel/common.d.ts.map +1 -0
  34. package/dist/effect/WebChannel/common.js +4 -0
  35. package/dist/effect/WebChannel/common.js.map +1 -0
  36. package/dist/effect/WebChannel.d.ts +55 -25
  37. package/dist/effect/WebChannel.d.ts.map +1 -1
  38. package/dist/effect/WebChannel.js +133 -15
  39. package/dist/effect/WebChannel.js.map +1 -1
  40. package/dist/effect/WebLock.d.ts +4 -0
  41. package/dist/effect/WebLock.d.ts.map +1 -1
  42. package/dist/effect/WebLock.js +61 -0
  43. package/dist/effect/WebLock.js.map +1 -1
  44. package/dist/effect/WebSocket.d.ts +19 -0
  45. package/dist/effect/WebSocket.d.ts.map +1 -0
  46. package/dist/effect/WebSocket.js +53 -0
  47. package/dist/effect/WebSocket.js.map +1 -0
  48. package/dist/effect/index.d.ts +6 -2
  49. package/dist/effect/index.d.ts.map +1 -1
  50. package/dist/effect/index.js +10 -2
  51. package/dist/effect/index.js.map +1 -1
  52. package/dist/env.d.ts +5 -0
  53. package/dist/env.d.ts.map +1 -0
  54. package/dist/env.js +25 -0
  55. package/dist/env.js.map +1 -0
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +3 -12
  59. package/dist/index.js.map +1 -1
  60. package/dist/nanoid/index.browser.d.ts +2 -0
  61. package/dist/nanoid/index.browser.d.ts.map +1 -0
  62. package/dist/nanoid/index.browser.js +3 -0
  63. package/dist/nanoid/index.browser.js.map +1 -0
  64. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +5 -0
  65. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +1 -0
  66. package/dist/node/ChildProcessRunner/ChildProcessRunner.js +55 -0
  67. package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +1 -0
  68. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +10 -0
  69. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +1 -0
  70. package/dist/node/ChildProcessRunner/ChildProcessWorker.js +46 -0
  71. package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +1 -0
  72. package/dist/node/mod.d.ts +22 -0
  73. package/dist/node/mod.d.ts.map +1 -0
  74. package/dist/node/mod.js +83 -0
  75. package/dist/node/mod.js.map +1 -0
  76. package/dist/node-vitest/mod.d.ts +2 -0
  77. package/dist/node-vitest/mod.d.ts.map +1 -0
  78. package/dist/node-vitest/mod.js +2 -0
  79. package/dist/node-vitest/mod.js.map +1 -0
  80. package/dist/node-vitest/polyfill.d.ts +2 -0
  81. package/dist/node-vitest/polyfill.d.ts.map +1 -0
  82. package/dist/node-vitest/polyfill.js +3 -0
  83. package/dist/node-vitest/polyfill.js.map +1 -0
  84. package/dist/object/index.d.ts.map +1 -1
  85. package/dist/object/pick.d.ts.map +1 -1
  86. package/package.json +50 -15
  87. package/src/NoopTracer.ts +1 -1
  88. package/src/base64.ts +1 -1
  89. package/src/effect/BucketQueue.ts +22 -0
  90. package/src/effect/Effect.ts +41 -17
  91. package/src/effect/Logger.ts +17 -0
  92. package/src/effect/Schema/index.ts +1 -1
  93. package/src/effect/TaskTracing.ts +43 -0
  94. package/src/effect/WebChannel/broadcastChannelWithAck.ts +126 -0
  95. package/src/effect/WebChannel/common.ts +17 -0
  96. package/src/effect/WebChannel.ts +223 -49
  97. package/src/effect/WebLock.ts +75 -0
  98. package/src/effect/WebSocket.ts +72 -0
  99. package/src/effect/index.ts +14 -1
  100. package/src/env.ts +31 -0
  101. package/src/index.ts +3 -11
  102. package/src/nanoid/index.browser.ts +2 -0
  103. package/src/node/ChildProcessRunner/ChildProcessRunner.ts +63 -0
  104. package/src/node/ChildProcessRunner/ChildProcessWorker.ts +66 -0
  105. package/src/node/mod.ts +115 -0
  106. package/src/node-vitest/mod.ts +1 -0
  107. package/src/node-vitest/polyfill.ts +1 -0
  108. package/tmp/effect-deferred-repro.ts +29 -0
  109. package/tmp/effect-semaphore-repro.ts +93 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAIrD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAoB1C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,GAAM,EAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAyB,EAAQ,EAAE;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,EAAE,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,IAAa,EAAK,EAAE;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAA;IACf,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,QAAQ,CAAA;QACR,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAQ,EAAQ,EAAE;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GACf,CAAkC,GAAM,EAAE,EAAE,CAC5C,CAAC,GAAM,EAAQ,EAAE,CACf,GAAG,CAAC,GAAG,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAExG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,KAA2B,EAA6B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAErH;;;GAGG;AACH,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,cAAqB;IAChD,QAAQ,CAAA;IACR,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;AACxG,CAAC;AAED,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,KAAK,EAAE,EAAE,CAAC;QACZ,QAAQ,CAAA;IACV,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,WAAoB,EAAE,GAAY,EAAQ,EAAE;IACtE,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAA;QACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,GAAM,EAAK,EAAE;IAC3C,QAAQ,CAAA;IACR,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,MAAc,EAAU,EAAE;IACvD,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAS,EAAE;IACvD,QAAQ,CAAA;IACR,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAI5B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,CAAgB,EAAK,EAAE;IACpD,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAQ,CAAS,EAAE,CAAA;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AAUD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAY,EAAE;IAC5D,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAc,EAAE,EAAU,EAAE,EAAE;IACrD,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,eAAe,GAAG,KAAK,CAAA;IAE3B,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,eAAe,EAAE,CAAC;YACpB,EAAE,EAAE,CAAA;YACJ,eAAe,GAAG,KAAK,CAAA;YACvB,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,KAAK,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,GAAG,EAAE;QACV,IAAI,UAAU,EAAE,CAAC;YACf,eAAe,GAAG,IAAI,CAAA;YACtB,OAAM;QACR,CAAC;QAED,EAAE,EAAE,CAAA;QACJ,UAAU,GAAG,IAAI,CAAA;QACjB,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAqB,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IAC5C,uDAAuD;IACvD,4EAA4E;IAC5E,OAAO,MAAM,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,KAAK,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAS,EACT,GAAS,EACsB,EAAE;IACjC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,GAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAoC,EAAK,EAAK,EAAE;IACpF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE9C,OAAO,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC,CAAQ,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAA8B,EAAK,EAAK,EAAE;IACpE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAA;IAExD,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QACtB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC,CAAQ,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAA8B,EAAiB,EAAE;IAChF,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAA6B,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,UAAU,CAAA;AAErG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAU,EAAwB,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAA;AAEjH,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE;IAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;IACxD,CAAC;SAAM,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { nanoid } from 'nanoid/index.browser.js';
2
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../src/nanoid/index.browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,3 @@
1
+ // @ts-expect-error TODO
2
+ export { nanoid } from 'nanoid/index.browser.js';
3
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../src/nanoid/index.browser.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as Runner from '@effect/platform/WorkerRunner';
2
+ import * as Layer from 'effect/Layer';
3
+ /** @internal */
4
+ export declare const layer: Layer.Layer<Runner.PlatformRunner, never, never>;
5
+ //# sourceMappingURL=ChildProcessRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildProcessRunner.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAOvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAkDrC,gBAAgB;AAChB,eAAO,MAAM,KAAK,kDAA2D,CAAA"}
@@ -0,0 +1,55 @@
1
+ /* eslint-disable prefer-arrow/prefer-arrow-functions */
2
+ import process from 'node:process';
3
+ import { WorkerError } from '@effect/platform/WorkerError';
4
+ import * as Runner from '@effect/platform/WorkerRunner';
5
+ import { FiberId } from 'effect';
6
+ import * as Context from 'effect/Context';
7
+ import * as Deferred from 'effect/Deferred';
8
+ import * as Effect from 'effect/Effect';
9
+ import * as Exit from 'effect/Exit';
10
+ import * as FiberSet from 'effect/FiberSet';
11
+ import * as Layer from 'effect/Layer';
12
+ import * as Runtime from 'effect/Runtime';
13
+ import * as Scope from 'effect/Scope';
14
+ const platformRunnerImpl = Runner.PlatformRunner.of({
15
+ [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
16
+ start() {
17
+ return Effect.gen(function* () {
18
+ if (!process.send) {
19
+ return yield* new WorkerError({ reason: 'spawn', cause: new Error('not in a child process') });
20
+ }
21
+ const port = {
22
+ postMessage: (message) => process.send(message),
23
+ on: (event, handler) => process.on(event, handler),
24
+ close: () => process.disconnect(),
25
+ };
26
+ const send = (_portId, message, _transfers) => Effect.sync(() => port.postMessage([1, message] /*, transfers as any*/));
27
+ const run = (handler) => Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
28
+ const runtime = (yield* Effect.runtime()).pipe(Runtime.updateContext(Context.omit(Scope.Scope)));
29
+ const fiberSet = yield* FiberSet.make();
30
+ const runFork = Runtime.runFork(runtime);
31
+ port.on('message', (message) => {
32
+ if (message[0] === 0) {
33
+ FiberSet.unsafeAdd(fiberSet, runFork(restore(handler(0, message[1]))));
34
+ }
35
+ else {
36
+ Deferred.unsafeDone(fiberSet.deferred, Exit.interrupt(FiberId.none));
37
+ port.close();
38
+ }
39
+ });
40
+ port.on('messageerror', (cause) => {
41
+ Deferred.unsafeDone(fiberSet.deferred, new WorkerError({ reason: 'decode', cause }));
42
+ });
43
+ port.on('error', (cause) => {
44
+ Deferred.unsafeDone(fiberSet.deferred, new WorkerError({ reason: 'unknown', cause }));
45
+ });
46
+ port.postMessage([0]);
47
+ return (yield* restore(FiberSet.join(fiberSet)));
48
+ }).pipe(Effect.scoped));
49
+ return { run, send };
50
+ });
51
+ },
52
+ });
53
+ /** @internal */
54
+ export const layer = Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
55
+ //# sourceMappingURL=ChildProcessRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildProcessRunner.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type * as ChildProcess from 'node:child_process';
2
+ import * as Worker from '@effect/platform/Worker';
3
+ import * as Layer from 'effect/Layer';
4
+ /** @internal */
5
+ export declare const layerWorker: Layer.Layer<Worker.PlatformWorker, never, never>;
6
+ /** @internal */
7
+ export declare const layerManager: Layer.Layer<Worker.WorkerManager, never, never>;
8
+ /** @internal */
9
+ export declare const layer: (spawn: (id: number) => ChildProcess.ChildProcess) => Layer.Layer<Worker.Spawner | Worker.WorkerManager, never, never>;
10
+ //# sourceMappingURL=ChildProcessWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildProcessWorker.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAKjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAgDrC,gBAAgB;AAChB,eAAO,MAAM,WAAW,kDAA2D,CAAA;AAEnF,gBAAgB;AAChB,eAAO,MAAM,YAAY,iDAAkD,CAAA;AAE3E,gBAAgB;AAChB,eAAO,MAAM,KAAK,UAAW,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,CAAC,YAAY,qEACf,CAAA"}
@@ -0,0 +1,46 @@
1
+ /* eslint-disable prefer-arrow/prefer-arrow-functions */
2
+ import * as Worker from '@effect/platform/Worker';
3
+ import { WorkerError } from '@effect/platform/WorkerError';
4
+ import * as Deferred from 'effect/Deferred';
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Exit from 'effect/Exit';
7
+ import * as Layer from 'effect/Layer';
8
+ import * as Scope from 'effect/Scope';
9
+ const platformWorkerImpl = Worker.makePlatform()({
10
+ setup({ scope, worker: childProcess }) {
11
+ return Effect.flatMap(Deferred.make(), (exitDeferred) => {
12
+ childProcess.on('exit', () => {
13
+ Deferred.unsafeDone(exitDeferred, Exit.void);
14
+ });
15
+ return Effect.as(Scope.addFinalizer(scope, Effect.suspend(() => {
16
+ childProcess.send([1]);
17
+ return Deferred.await(exitDeferred);
18
+ }).pipe(Effect.interruptible, Effect.timeout(5000), Effect.catchAllCause(() => Effect.sync(() => childProcess.kill())))), {
19
+ postMessage: (message) => childProcess.send(message),
20
+ on: (event, handler) => childProcess.on(event, handler),
21
+ });
22
+ });
23
+ },
24
+ listen({ deferred, emit, port }) {
25
+ port.on('message', (message) => {
26
+ emit(message);
27
+ });
28
+ port.on('messageerror', (cause) => {
29
+ Deferred.unsafeDone(deferred, new WorkerError({ reason: 'decode', cause }));
30
+ });
31
+ port.on('error', (cause) => {
32
+ Deferred.unsafeDone(deferred, new WorkerError({ reason: 'unknown', cause }));
33
+ });
34
+ port.on('exit', (code) => {
35
+ Deferred.unsafeDone(deferred, new WorkerError({ reason: 'unknown', cause: new Error(`exited with code ${code}`) }));
36
+ });
37
+ return Effect.void;
38
+ },
39
+ });
40
+ /** @internal */
41
+ export const layerWorker = Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
42
+ /** @internal */
43
+ export const layerManager = Layer.provide(Worker.layerManager, layerWorker);
44
+ /** @internal */
45
+ export const layer = (spawn) => Layer.merge(layerManager, Worker.layerSpawner(spawn));
46
+ //# sourceMappingURL=ChildProcessWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildProcessWorker.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type * as otel from '@opentelemetry/api';
2
+ import { Effect, Layer } from 'effect';
3
+ import type { ParentSpan } from 'effect/Tracer';
4
+ import type { OtelTracer } from '../effect/index.js';
5
+ export * as Cli from '@effect/cli';
6
+ export * as PlatformBun from '@effect/platform-bun';
7
+ export * as PlatformNode from '@effect/platform-node';
8
+ export * as SocketServer from '@effect/experimental/SocketServer';
9
+ export * as OtelResource from '@effect/opentelemetry/Resource';
10
+ export { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
11
+ export { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
12
+ export * as OtelNodeSdk from '@effect/opentelemetry/NodeSdk';
13
+ export * as ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.js';
14
+ export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.js';
15
+ export declare const OtelLiveHttp: ({ serviceName, rootSpanName, skipLogUrl, }?: {
16
+ serviceName?: string;
17
+ rootSpanName?: string;
18
+ skipLogUrl?: boolean;
19
+ }) => Layer.Layer<OtelTracer.OtelTracer | ParentSpan, never, never>;
20
+ export declare const logTraceUiUrlForSpan: (printMsg?: (url: string) => string) => (span: otel.Span) => Effect.Effect<string | undefined, never, never>;
21
+ export declare const getTracingBackendUrl: (span: otel.Span) => Effect.Effect<string | undefined, never, never>;
22
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAK/C,OAAO,EAAU,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,mCAAmC,CAAA;AACjE,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAC9E,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAE5D,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAOhF,eAAO,MAAM,YAAY,gDAItB;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,KAAK,CAAC,KAAK,CACzF,UAAU,CAAC,UAAU,GAAG,UAAU,EAClC,KAAK,EACL,KAAK,CAqC6B,CAAA;AAEpC,eAAO,MAAM,oBAAoB,cAAe,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,YAAY,IAAI,CAAC,IAAI,oDAazF,CAAA;AAEH,eAAO,MAAM,oBAAoB,SAAU,IAAI,CAAC,IAAI,oDAqBhD,CAAA"}
@@ -0,0 +1,83 @@
1
+ import * as OtelNodeSdk from '@effect/opentelemetry/NodeSdk';
2
+ import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
3
+ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
4
+ import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
5
+ import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
6
+ import { Config, Effect, Layer } from 'effect';
7
+ import { tapCauseLogPretty } from '../effect/Effect.js';
8
+ // import { tapCauseLogPretty } from '../effect/Effect.js'
9
+ export * as Cli from '@effect/cli';
10
+ export * as PlatformBun from '@effect/platform-bun';
11
+ export * as PlatformNode from '@effect/platform-node';
12
+ export * as SocketServer from '@effect/experimental/SocketServer';
13
+ export * as OtelResource from '@effect/opentelemetry/Resource';
14
+ export { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
15
+ export { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
16
+ export * as OtelNodeSdk from '@effect/opentelemetry/NodeSdk';
17
+ export * as ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.js';
18
+ export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.js';
19
+ // Enable debug logging for OpenTelemetry
20
+ // otel.diag.setLogger(new otel.DiagConsoleLogger(), otel.DiagLogLevel.ERROR)
21
+ // export const OtelLiveHttp = (args: any): Layer.Layer<never> => Layer.empty
22
+ export const OtelLiveHttp = ({ serviceName, rootSpanName, skipLogUrl, } = {}) => Effect.gen(function* () {
23
+ const config = yield* Config.all({
24
+ exporterUrlTracing: Config.string('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'),
25
+ exporterUrlMracing: Config.string('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'),
26
+ serviceName: serviceName
27
+ ? Config.succeed(serviceName)
28
+ : Config.string('OTEL_SERVICE_NAME').pipe(Config.withDefault('overtone-node-utils-default-service')),
29
+ rootSpanName: rootSpanName
30
+ ? Config.succeed(rootSpanName)
31
+ : Config.string('OTEL_ROOT_SPAN_NAME').pipe(Config.withDefault('RootSpan')),
32
+ }).pipe(tapCauseLogPretty, Effect.orDie);
33
+ const resource = { serviceName: config.serviceName };
34
+ // METRICS
35
+ const metricExporter = new OTLPMetricExporter({ url: config.exporterUrlMracing });
36
+ const metricReader = new PeriodicExportingMetricReader({
37
+ exporter: metricExporter,
38
+ exportIntervalMillis: 1000,
39
+ });
40
+ // TRACING
41
+ const OtelLive = OtelNodeSdk.layer(() => ({
42
+ resource,
43
+ metricReader,
44
+ spanProcessor: new BatchSpanProcessor(new OTLPTraceExporter({ url: config.exporterUrlTracing, headers: {} })),
45
+ }));
46
+ const RootSpanLive = Layer.span(config.rootSpanName, {
47
+ attributes: { config },
48
+ onEnd: skipLogUrl ? undefined : (span) => logTraceUiUrlForSpan()(span.span),
49
+ });
50
+ return RootSpanLive.pipe(Layer.provideMerge(OtelLive));
51
+ }).pipe(Layer.unwrapEffect);
52
+ export const logTraceUiUrlForSpan = (printMsg) => (span) => getTracingBackendUrl(span).pipe(Effect.tap((url) => {
53
+ if (url === undefined) {
54
+ console.warn('No tracing backend url found');
55
+ }
56
+ else {
57
+ if (printMsg) {
58
+ console.log(printMsg(url));
59
+ }
60
+ else {
61
+ console.log(`Trace URL: ${url}`);
62
+ }
63
+ }
64
+ }));
65
+ export const getTracingBackendUrl = (span) => Effect.gen(function* () {
66
+ const endpoint = yield* Config.string('TRACING_UI_ENDPOINT').pipe(Config.option, Effect.orDie);
67
+ if (endpoint._tag === 'None')
68
+ return;
69
+ const traceId = span.spanContext().traceId;
70
+ // Grafana + Tempo
71
+ const grafanaEndpoint = endpoint.value;
72
+ const searchParams = new URLSearchParams({
73
+ orgId: '1',
74
+ left: JSON.stringify({
75
+ datasource: 'tempo',
76
+ queries: [{ query: traceId, queryType: 'traceql', refId: 'A' }],
77
+ range: { from: 'now-1h', to: 'now' },
78
+ }),
79
+ });
80
+ // TODO make dynamic via env var
81
+ return `${grafanaEndpoint}/explore?${searchParams.toString()}`;
82
+ });
83
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * as Vitest from '@effect/vitest';
2
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node-vitest/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * as Vitest from '@effect/vitest';
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node-vitest/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=polyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../src/node-vitest/polyfill.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ process.stdout.isTTY = true;
2
+ export {};
3
+ //# sourceMappingURL=polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../../src/node-vitest/polyfill.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AAEzB,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE3F,eAAO,MAAM,eAAe,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,OAChE,IAAI,YACC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,KAAK,KAC7D,GAAG,CAAe,IAAV,MAAM,IAAI,GAAG,KAAK,GAG5B,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAG,OAAO,CAAC,CAAC,CAAsC,CAAA;AAErH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,KAAG,GAAG,CAAe,IAAV,MAAM,IAAI,GAAG,CAAC,GAI9F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AAEzB,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE3F,eAAO,MAAM,eAAe,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,OAChE,IAAI,YACC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,KAAK,KAC7D,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,KAAK,GAG5B,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAG,OAAO,CAAC,CAAC,CAAsC,CAAA;AAErH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,KAAG,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,GAI9F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/object/pick.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAAA;AACxG,KAAK,WAAW,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CAAE,CAAA;AAC1D,KAAK,YAAY,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AACrF,KAAK,WAAW,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAE3D,eAAO,MAAM,IAAI,GAAI,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,OAAO,GAAG,QAAQ,IAAI,EAAE,KAAG,WAAW,CAAC,GAAG,CAAS,IAAJ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAE,CAK7G,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,EAAE,KAAK,OACzD,GAAG,QACF,IAAI,EAAE,aACD,KAAK,KACf,WAAW,CAAC,GAAG,CAAS,IAAJ,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,GAAG,KAUtD,CAAA"}
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/object/pick.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAAA;AACxG,KAAK,WAAW,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CAAE,CAAA;AAC1D,KAAK,YAAY,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AACrF,KAAK,WAAW,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAE3D,eAAO,MAAM,IAAI,GAAI,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,OAAO,GAAG,QAAQ,IAAI,EAAE,KAAG,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAE,CAK7G,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,EAAE,KAAK,OACzD,GAAG,QACF,IAAI,EAAE,aACD,KAAK,KACf,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,GAAG,KAUtD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/utils",
3
- "version": "0.2.0-dev.2",
3
+ "version": "0.3.0-dev.0",
4
4
  "sideEffects": [
5
5
  "./dist/global.js"
6
6
  ],
@@ -18,11 +18,24 @@
18
18
  },
19
19
  "./nanoid": {
20
20
  "types": "./dist/nanoid/index.d.ts",
21
+ "react-native": "./dist/nanoid/index.browser.js",
21
22
  "default": "./dist/nanoid/index.js"
22
23
  },
23
24
  "./effect": {
24
25
  "types": "./dist/effect/index.d.ts",
25
26
  "default": "./dist/effect/index.js"
27
+ },
28
+ "./node": {
29
+ "types": "./dist/node/mod.d.ts",
30
+ "default": "./dist/node/mod.js"
31
+ },
32
+ "./node-vitest": {
33
+ "types": "./dist/node-vitest/mod.d.ts",
34
+ "default": "./dist/node-vitest/mod.js"
35
+ },
36
+ "./node-vitest-polyfill": {
37
+ "types": "./dist/node-vitest/polyfill.d.ts",
38
+ "default": "./dist/node-vitest/polyfill.js"
26
39
  }
27
40
  },
28
41
  "react-native": "./dist/index.js",
@@ -35,8 +48,17 @@
35
48
  "./nanoid": [
36
49
  "./dist/nanoid/index.d.ts"
37
50
  ],
38
- "effect": [
39
- "./dist/effect"
51
+ "./effect": [
52
+ "./dist/effect/index.d.ts"
53
+ ],
54
+ "./node": [
55
+ "./dist/node/mod.d.ts"
56
+ ],
57
+ "./node-vitest": [
58
+ "./dist/node-vitest/mod.d.ts"
59
+ ],
60
+ "./node-vitest-polyfill": [
61
+ "./dist/node-vitest/polyfill.d.ts"
40
62
  ]
41
63
  }
42
64
  },
@@ -44,25 +66,38 @@
44
66
  "msgpackr": "^1.11.2",
45
67
  "nanoid": "^5.0.7",
46
68
  "pretty-bytes": "^6.1.1",
47
- "@livestore/db-schema": "0.2.0-dev.2"
69
+ "@livestore/db-schema": "0.3.0-dev.0"
48
70
  },
49
71
  "peerDependencies": {
50
- "@effect/experimental": "^0.30.13",
51
- "@effect/opentelemetry": "^0.39.7",
52
- "@effect/platform": "^0.69.12",
53
- "@effect/platform-browser": "^0.48.12",
72
+ "@effect/cli": "^0.50.2",
73
+ "@effect/experimental": "^0.36.1",
74
+ "@effect/opentelemetry": "^0.42.1",
75
+ "@effect/platform": "^0.72.1",
76
+ "@effect/platform-browser": "^0.51.1",
77
+ "@effect/platform-bun": "^0.52.1",
78
+ "@effect/platform-node": "^0.68.1",
79
+ "@effect/vitest": "^0.16.1",
54
80
  "@opentelemetry/api": "^1.9.0",
55
- "effect": "^3.10.7"
81
+ "effect": "^3.11.7"
56
82
  },
57
83
  "devDependencies": {
58
- "@effect/experimental": "0.32.3",
59
- "@effect/opentelemetry": "0.39.12",
60
- "@effect/platform": "0.69.19",
61
- "@effect/platform-browser": "0.48.19",
84
+ "@effect/cli": "^0.51.1",
85
+ "@effect/experimental": "0.36.1",
86
+ "@effect/opentelemetry": "0.42.1",
87
+ "@effect/platform": "0.72.1",
88
+ "@effect/platform-browser": "0.51.1",
89
+ "@effect/platform-bun": "0.52.1",
90
+ "@effect/platform-node": "0.68.1",
91
+ "@effect/vitest": "0.16.1",
62
92
  "@opentelemetry/api": "^1.9.0",
63
- "@types/node": "^22.8.5",
93
+ "@opentelemetry/exporter-metrics-otlp-http": "0.57.0",
94
+ "@opentelemetry/exporter-trace-otlp-http": "0.57.0",
95
+ "@opentelemetry/sdk-metrics": "1.30.0",
96
+ "@opentelemetry/sdk-trace-base": "1.30.0",
97
+ "@opentelemetry/sdk-trace-node": "1.30.0",
98
+ "@types/node": "22.10.5",
64
99
  "@types/web": "^0.0.175",
65
- "effect": "3.10.12",
100
+ "effect": "3.12.1",
66
101
  "vitest": "^2.1.4"
67
102
  },
68
103
  "publishConfig": {
package/src/NoopTracer.ts CHANGED
@@ -20,7 +20,7 @@ export const makeNoopSpan = () => {
20
20
  ;(span as any)._duration = [durationSecs, durationRestNs]
21
21
  },
22
22
  spanContext: () => {
23
- return { traceId: 'noop-trace-id', spanId: 'noop-span-id' }
23
+ return { traceId: 'livestore-noop-trace-id', spanId: 'livestore-noop-span-id' }
24
24
  },
25
25
  _duration: [0, 0],
26
26
  } as unknown as otel.Span
package/src/base64.ts CHANGED
@@ -76,7 +76,7 @@ const textEncoder = new TextEncoder()
76
76
  * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation
77
77
  * @param data
78
78
  */
79
- export const encode = (data: ArrayBuffer | string): string => {
79
+ export const encode = (data: Uint8Array | string): string => {
80
80
  const uint8 =
81
81
  typeof data === 'string' ? textEncoder.encode(data) : data instanceof Uint8Array ? data : new Uint8Array(data)
82
82
  let result = '',
@@ -0,0 +1,22 @@
1
+ import { Array, STM, TRef } from 'effect'
2
+
3
+ export type BucketQueue<A> = TRef.TRef<A[]>
4
+
5
+ export const make = <A>(): STM.STM<BucketQueue<A>> => TRef.make<A[]>([])
6
+
7
+ export const offerAll = <A>(self: BucketQueue<A>, elements: ReadonlyArray<A>) =>
8
+ TRef.update(self, (bucket) => Array.appendAll(bucket, elements))
9
+
10
+ export const clear = <A>(self: BucketQueue<A>) => TRef.set(self, [])
11
+
12
+ export const takeBetween = <A>(self: BucketQueue<A>, min: number, max: number) =>
13
+ STM.gen(function* () {
14
+ const bucket = yield* TRef.get(self)
15
+ if (bucket.length < min) {
16
+ return yield* STM.retry
17
+ } else {
18
+ const elements = bucket.splice(0, Math.min(max, bucket.length))
19
+ yield* TRef.set(self, bucket)
20
+ return elements
21
+ }
22
+ })
@@ -1,6 +1,6 @@
1
1
  import * as OtelTracer from '@effect/opentelemetry/Tracer'
2
- import type { Context, Duration, Scope } from 'effect'
3
- import { Cause, Deferred, Effect, Fiber, pipe } from 'effect'
2
+ import type { Context, Duration, Scope, Stream } from 'effect'
3
+ import { Cause, Deferred, Effect, Fiber, FiberRef, HashSet, Logger, pipe } from 'effect'
4
4
  import type { UnknownException } from 'effect/Cause'
5
5
  import { log } from 'effect/Console'
6
6
  import type { LazyArg } from 'effect/Function'
@@ -56,6 +56,8 @@ const getThreadName = () => {
56
56
  export const acquireReleaseLog = (label: string) =>
57
57
  Effect.acquireRelease(Effect.log(`${label} acquire`), (_, ex) => Effect.log(`${label} release`, ex))
58
58
 
59
+ export const addFinalizerLog = (...msgs: any[]) => Effect.addFinalizer(() => Effect.log(...msgs))
60
+
59
61
  export const logBefore =
60
62
  (...msgs: any[]) =>
61
63
  <A, E, R>(eff: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
@@ -84,6 +86,27 @@ export const tapCauseLogPretty = <R, E, A>(eff: Effect.Effect<A, E, R>): Effect.
84
86
  }),
85
87
  )
86
88
 
89
+ export const eventListener = <TEvent = unknown>(
90
+ target: Stream.EventListener<TEvent>,
91
+ type: string,
92
+ handler: (event: TEvent) => Effect.Effect<void, never, never>,
93
+ options?: { once?: boolean },
94
+ ) =>
95
+ Effect.gen(function* () {
96
+ const runtime = yield* Effect.runtime<never>()
97
+
98
+ const handlerFn = (event: TEvent) => handler(event).pipe(Effect.provide(runtime), Effect.runFork)
99
+
100
+ target.addEventListener(type, handlerFn, { once: options?.once ?? false })
101
+
102
+ yield* Effect.addFinalizer(() => Effect.sync(() => target.removeEventListener(type, handlerFn)))
103
+ })
104
+
105
+ export const spanEvent = (message: any, attributes?: Record<string, any>) =>
106
+ Effect.locallyWith(Effect.log(message).pipe(Effect.annotateLogs(attributes ?? {})), FiberRef.currentLoggers, () =>
107
+ HashSet.make(Logger.tracerLogger),
108
+ )
109
+
87
110
  export const logWarnIfTakesLongerThan =
88
111
  ({ label, duration }: { label: string; duration: Duration.DurationInput }) =>
89
112
  <R, E, A>(eff: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
@@ -103,7 +126,7 @@ export const logWarnIfTakesLongerThan =
103
126
  )
104
127
 
105
128
  const start = Date.now()
106
- const res = yield* eff
129
+ const res = yield* eff.pipe(Effect.exit)
107
130
 
108
131
  if (timedOut) {
109
132
  const end = Date.now()
@@ -112,7 +135,7 @@ export const logWarnIfTakesLongerThan =
112
135
 
113
136
  yield* Fiber.interrupt(timeoutFiber)
114
137
 
115
- return res
138
+ return yield* res
116
139
  })
117
140
 
118
141
  export const logDuration =
@@ -185,19 +208,20 @@ const getSpanTrace = () => {
185
208
  return 'No current fiber'
186
209
  }
187
210
 
188
- const msg = Effect.runSync(
189
- Effect.fail({ message: '' }).pipe(
190
- Effect.withParentSpan(fiberOption.value.currentSpan),
191
- Effect.catchAllCause((cause) => Effect.succeed(cause.toString())),
192
- ),
193
- )
194
-
195
- // remove the first line
196
- return msg
197
- .split('\n')
198
- .slice(1)
199
- .map((_) => _.trim().replace('at ', ''))
200
- .join('\n')
211
+ return ''
212
+ // const msg = Effect.runSync(
213
+ // Effect.fail({ message: '' }).pipe(
214
+ // Effect.withParentSpan(fiberOption.value.currentSpan),
215
+ // Effect.catchAllCause((cause) => Effect.succeed(cause.toString())),
216
+ // ),
217
+ // )
218
+
219
+ // // remove the first line
220
+ // return msg
221
+ // .split('\n')
222
+ // .slice(1)
223
+ // .map((_) => _.trim().replace('at ', ''))
224
+ // .join('\n')
201
225
  }
202
226
 
203
227
  const logSpanTrace = () => console.log(getSpanTrace())
@@ -0,0 +1,17 @@
1
+ import { Logger } from 'effect'
2
+
3
+ export * from 'effect/Logger'
4
+
5
+ const defaultDateFormat = (date: Date): string =>
6
+ `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date
7
+ .getSeconds()
8
+ .toString()
9
+ .padStart(2, '0')}.${date.getMilliseconds().toString().padStart(3, '0')}`
10
+
11
+ export const prettyWithThread = (threadName: string) =>
12
+ Logger.replace(
13
+ Logger.defaultLogger,
14
+ Logger.prettyLogger({
15
+ formatDate: (date) => `${defaultDateFormat(date)} ${threadName}`,
16
+ }),
17
+ )