@livestore/utils 0.0.0-snapshot-909cdd1ac2fd591945c2be2b0f53e14d87f3c9d4

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 (169) hide show
  1. package/dist/.tsbuildinfo.json +1 -0
  2. package/dist/Deferred.d.ts +10 -0
  3. package/dist/Deferred.d.ts.map +1 -0
  4. package/dist/Deferred.js +21 -0
  5. package/dist/Deferred.js.map +1 -0
  6. package/dist/NoopTracer.d.ts +10 -0
  7. package/dist/NoopTracer.d.ts.map +1 -0
  8. package/dist/NoopTracer.js +52 -0
  9. package/dist/NoopTracer.js.map +1 -0
  10. package/dist/base64.d.ts +13 -0
  11. package/dist/base64.d.ts.map +1 -0
  12. package/dist/base64.js +117 -0
  13. package/dist/base64.js.map +1 -0
  14. package/dist/browser.d.ts +3 -0
  15. package/dist/browser.d.ts.map +1 -0
  16. package/dist/browser.js +28 -0
  17. package/dist/browser.js.map +1 -0
  18. package/dist/cuid/cuid.browser.d.ts +18 -0
  19. package/dist/cuid/cuid.browser.d.ts.map +1 -0
  20. package/dist/cuid/cuid.browser.js +80 -0
  21. package/dist/cuid/cuid.browser.js.map +1 -0
  22. package/dist/cuid/cuid.node.d.ts +18 -0
  23. package/dist/cuid/cuid.node.d.ts.map +1 -0
  24. package/dist/cuid/cuid.node.js +83 -0
  25. package/dist/cuid/cuid.node.js.map +1 -0
  26. package/dist/effect/Effect.d.ts +28 -0
  27. package/dist/effect/Effect.d.ts.map +1 -0
  28. package/dist/effect/Effect.js +82 -0
  29. package/dist/effect/Effect.js.map +1 -0
  30. package/dist/effect/Error.d.ts +11 -0
  31. package/dist/effect/Error.d.ts.map +1 -0
  32. package/dist/effect/Error.js +7 -0
  33. package/dist/effect/Error.js.map +1 -0
  34. package/dist/effect/Schedule.d.ts +4 -0
  35. package/dist/effect/Schedule.d.ts.map +1 -0
  36. package/dist/effect/Schedule.js +5 -0
  37. package/dist/effect/Schedule.js.map +1 -0
  38. package/dist/effect/Scheduler.d.ts +4 -0
  39. package/dist/effect/Scheduler.d.ts.map +1 -0
  40. package/dist/effect/Scheduler.js +10 -0
  41. package/dist/effect/Scheduler.js.map +1 -0
  42. package/dist/effect/Schema/debug-diff.d.ts +12 -0
  43. package/dist/effect/Schema/debug-diff.d.ts.map +1 -0
  44. package/dist/effect/Schema/debug-diff.js +51 -0
  45. package/dist/effect/Schema/debug-diff.js.map +1 -0
  46. package/dist/effect/Schema/debug-diff.test.d.ts +2 -0
  47. package/dist/effect/Schema/debug-diff.test.d.ts.map +1 -0
  48. package/dist/effect/Schema/debug-diff.test.js +91 -0
  49. package/dist/effect/Schema/debug-diff.test.js.map +1 -0
  50. package/dist/effect/Schema/index.d.ts +18 -0
  51. package/dist/effect/Schema/index.d.ts.map +1 -0
  52. package/dist/effect/Schema/index.js +29 -0
  53. package/dist/effect/Schema/index.js.map +1 -0
  54. package/dist/effect/Schema/msgpack.d.ts +3 -0
  55. package/dist/effect/Schema/msgpack.d.ts.map +1 -0
  56. package/dist/effect/Schema/msgpack.js +7 -0
  57. package/dist/effect/Schema/msgpack.js.map +1 -0
  58. package/dist/effect/ServiceContext.d.ts +37 -0
  59. package/dist/effect/ServiceContext.d.ts.map +1 -0
  60. package/dist/effect/ServiceContext.js +55 -0
  61. package/dist/effect/ServiceContext.js.map +1 -0
  62. package/dist/effect/Stream.d.ts +10 -0
  63. package/dist/effect/Stream.d.ts.map +1 -0
  64. package/dist/effect/Stream.js +17 -0
  65. package/dist/effect/Stream.js.map +1 -0
  66. package/dist/effect/SubscriptionRef.d.ts +11 -0
  67. package/dist/effect/SubscriptionRef.d.ts.map +1 -0
  68. package/dist/effect/SubscriptionRef.js +5 -0
  69. package/dist/effect/SubscriptionRef.js.map +1 -0
  70. package/dist/effect/WebChannel.d.ts +30 -0
  71. package/dist/effect/WebChannel.d.ts.map +1 -0
  72. package/dist/effect/WebChannel.js +44 -0
  73. package/dist/effect/WebChannel.js.map +1 -0
  74. package/dist/effect/WebLock.d.ts +9 -0
  75. package/dist/effect/WebLock.d.ts.map +1 -0
  76. package/dist/effect/WebLock.js +73 -0
  77. package/dist/effect/WebLock.js.map +1 -0
  78. package/dist/effect/index.d.ts +21 -0
  79. package/dist/effect/index.d.ts.map +1 -0
  80. package/dist/effect/index.js +20 -0
  81. package/dist/effect/index.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/global.d.ts +5 -0
  87. package/dist/global.d.ts.map +1 -0
  88. package/dist/global.js +2 -0
  89. package/dist/global.js.map +1 -0
  90. package/dist/guards.d.ts +6 -0
  91. package/dist/guards.d.ts.map +1 -0
  92. package/dist/guards.js +6 -0
  93. package/dist/guards.js.map +1 -0
  94. package/dist/index.d.ts +76 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +176 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/misc.d.ts +3 -0
  99. package/dist/misc.d.ts.map +1 -0
  100. package/dist/misc.js +24 -0
  101. package/dist/misc.js.map +1 -0
  102. package/dist/nanoid/index.d.ts +2 -0
  103. package/dist/nanoid/index.d.ts.map +1 -0
  104. package/dist/nanoid/index.js +2 -0
  105. package/dist/nanoid/index.js.map +1 -0
  106. package/dist/object/index.d.ts +10 -0
  107. package/dist/object/index.d.ts.map +1 -0
  108. package/dist/object/index.js +10 -0
  109. package/dist/object/index.js.map +1 -0
  110. package/dist/object/omit.d.ts +3 -0
  111. package/dist/object/omit.d.ts.map +1 -0
  112. package/dist/object/omit.js +14 -0
  113. package/dist/object/omit.js.map +1 -0
  114. package/dist/object/pick.d.ts +14 -0
  115. package/dist/object/pick.d.ts.map +1 -0
  116. package/dist/object/pick.js +17 -0
  117. package/dist/object/pick.js.map +1 -0
  118. package/dist/promise.d.ts +6 -0
  119. package/dist/promise.d.ts.map +1 -0
  120. package/dist/promise.js +27 -0
  121. package/dist/promise.js.map +1 -0
  122. package/dist/set.d.ts +2 -0
  123. package/dist/set.d.ts.map +1 -0
  124. package/dist/set.js +10 -0
  125. package/dist/set.js.map +1 -0
  126. package/dist/string.d.ts +5 -0
  127. package/dist/string.d.ts.map +1 -0
  128. package/dist/string.js +8 -0
  129. package/dist/string.js.map +1 -0
  130. package/dist/time.d.ts +12 -0
  131. package/dist/time.d.ts.map +1 -0
  132. package/dist/time.js +22 -0
  133. package/dist/time.js.map +1 -0
  134. package/package.json +74 -0
  135. package/src/Deferred.ts +24 -0
  136. package/src/NoopTracer.ts +75 -0
  137. package/src/ambient.d.ts +3 -0
  138. package/src/base64.ts +123 -0
  139. package/src/browser.ts +32 -0
  140. package/src/cuid/cuid.browser.ts +95 -0
  141. package/src/cuid/cuid.node.ts +103 -0
  142. package/src/effect/Effect.ts +180 -0
  143. package/src/effect/Error.ts +6 -0
  144. package/src/effect/Schedule.ts +10 -0
  145. package/src/effect/Scheduler.ts +14 -0
  146. package/src/effect/Schema/debug-diff.test.ts +102 -0
  147. package/src/effect/Schema/debug-diff.ts +58 -0
  148. package/src/effect/Schema/index.ts +58 -0
  149. package/src/effect/Schema/msgpack.ts +8 -0
  150. package/src/effect/ServiceContext.ts +108 -0
  151. package/src/effect/Stream.ts +63 -0
  152. package/src/effect/SubscriptionRef.ts +22 -0
  153. package/src/effect/WebChannel.ts +116 -0
  154. package/src/effect/WebLock.ts +95 -0
  155. package/src/effect/index.ts +91 -0
  156. package/src/fast-deep-equal.ts +72 -0
  157. package/src/global.ts +5 -0
  158. package/src/guards.ts +8 -0
  159. package/src/index.ts +240 -0
  160. package/src/misc.ts +26 -0
  161. package/src/nanoid/index.ts +1 -0
  162. package/src/object/index.ts +24 -0
  163. package/src/object/omit.ts +17 -0
  164. package/src/object/pick.ts +27 -0
  165. package/src/promise.ts +43 -0
  166. package/src/set.ts +10 -0
  167. package/src/string.ts +9 -0
  168. package/src/time.ts +25 -0
  169. package/tsconfig.json +10 -0
@@ -0,0 +1,21 @@
1
+ export class Deferred {
2
+ _promise;
3
+ _resolve;
4
+ _reject;
5
+ constructor() {
6
+ this._promise = new Promise((resolve, reject) => {
7
+ this._resolve = resolve;
8
+ this._reject = reject;
9
+ });
10
+ }
11
+ get promise() {
12
+ return this._promise;
13
+ }
14
+ resolve = (value) => {
15
+ this._resolve(value);
16
+ };
17
+ reject = (reason) => {
18
+ this._reject(reason);
19
+ };
20
+ }
21
+ //# sourceMappingURL=Deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../src/Deferred.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IACF,QAAQ,CAAY;IAC7B,QAAQ,CAAsC;IAC9C,OAAO,CAAwB;IAEvC;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;YACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,OAAO,GAAG,CAAC,KAAyB,EAAQ,EAAE;QAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,GAAG,CAAC,MAAY,EAAQ,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;CACF"}
@@ -0,0 +1,10 @@
1
+ import type * as otel from '@opentelemetry/api';
2
+ export declare const makeNoopSpan: () => otel.Span;
3
+ export declare const makeNoopTracer: () => otel.Tracer;
4
+ export declare class NoopTracer {
5
+ startSpan: () => otel.Span;
6
+ startActiveSpan<F extends (span: otel.Span) => ReturnType<F>>(name: string, fn: F): ReturnType<F>;
7
+ startActiveSpan<F extends (span: otel.Span) => ReturnType<F>>(name: string, opts: otel.SpanOptions, fn: F): ReturnType<F>;
8
+ startActiveSpan<F extends (span: otel.Span) => ReturnType<F>>(name: string, opts: otel.SpanOptions, ctx: otel.Context, fn: F): ReturnType<F>;
9
+ }
10
+ //# sourceMappingURL=NoopTracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoopTracer.d.ts","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,eAAO,MAAM,YAAY,iBAyBxB,CAAA;AAED,eAAO,MAAM,cAAc,QACa,IAAI,CAAC,MAC5C,CAAA;AAED,qBAAa,UAAU;IACrB,SAAS,kBAAuB;IAEhC,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACjG,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAC1D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;IAChB,eAAe,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAC1D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;CA0BjB"}
@@ -0,0 +1,52 @@
1
+ export const makeNoopSpan = () => {
2
+ const performanceStartTime = performance.now();
3
+ const span = {
4
+ _performanceStartTime: performanceStartTime,
5
+ setAttribute: () => null,
6
+ setAttributes: () => null,
7
+ addEvent: () => null,
8
+ setStatus: () => null,
9
+ updateName: () => null,
10
+ recordException: () => null,
11
+ end: () => {
12
+ const endTime = performance.now();
13
+ const duration = endTime - performanceStartTime;
14
+ const durationSecs = duration / 1000;
15
+ const durationRestNs = (duration % 1000) * 1_000_000;
16
+ span._duration = [durationSecs, durationRestNs];
17
+ },
18
+ spanContext: () => {
19
+ return { traceId: 'noop-trace-id', spanId: 'noop-span-id' };
20
+ },
21
+ _duration: [0, 0],
22
+ };
23
+ return span;
24
+ };
25
+ export const makeNoopTracer = () => {
26
+ return new NoopTracer();
27
+ };
28
+ export class NoopTracer {
29
+ startSpan = () => makeNoopSpan();
30
+ startActiveSpan(name, arg2, arg3, arg4) {
31
+ let _opts;
32
+ let _ctx;
33
+ let fn;
34
+ if (arguments.length < 2) {
35
+ return;
36
+ }
37
+ else if (arguments.length === 2) {
38
+ fn = arg2;
39
+ }
40
+ else if (arguments.length === 3) {
41
+ _opts = arg2;
42
+ fn = arg3;
43
+ }
44
+ else {
45
+ _opts = arg2;
46
+ _ctx = arg3;
47
+ fn = arg4;
48
+ }
49
+ return fn(makeNoopSpan());
50
+ }
51
+ }
52
+ //# sourceMappingURL=NoopTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoopTracer.js","sourceRoot":"","sources":["../src/NoopTracer.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,oBAAoB,GAAwB,WAAW,CAAC,GAAG,EAAE,CAAA;IAEnE,MAAM,IAAI,GAAG;QACX,qBAAqB,EAAE,oBAAoB;QAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI;QACxB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;QACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;QACpB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;QACrB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;QACtB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI;QAC3B,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,OAAO,GAAwB,WAAW,CAAC,GAAG,EAAE,CAAA;YACtD,MAAM,QAAQ,GAAG,OAAO,GAAG,oBAAoB,CAAA;YAC/C,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAA;YACpC,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,SAAS,CACnD;YAAC,IAAY,CAAC,SAAS,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;QAC3D,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;QAC7D,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KACM,CAAA;IAEzB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,OAAO,IAAI,UAAU,EAA4B,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,OAAO,UAAU;IACrB,SAAS,GAAG,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;IAchC,eAAe,CACb,IAAY,EACZ,IAA2B,EAC3B,IAAuB,EACvB,IAAQ;QAER,IAAI,KAAmC,CAAA;QACvC,IAAI,IAA8B,CAAA;QAClC,IAAI,EAAK,CAAA;QAET,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,KAAK,GAAG,IAAoC,CAAA;YAC5C,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAoC,CAAA;YAC5C,IAAI,GAAG,IAAgC,CAAA;YACvC,EAAE,GAAG,IAAS,CAAA;QAChB,CAAC;QAED,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;IAC3B,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
3
+ * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation
4
+ * @param data
5
+ */
6
+ export declare const encode: (data: ArrayBuffer | string) => string;
7
+ /**
8
+ * Decodes a given RFC4648 base64 encoded string
9
+ * @param b64
10
+ */
11
+ export declare const decode: (b64: string) => Uint8Array;
12
+ export declare const decodeToString: (b64: string) => string;
13
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AAyEA;;;;GAIG;AACH,eAAO,MAAM,MAAM,SAAU,WAAW,GAAG,MAAM,KAAG,MA0BnD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAS,MAAM,KAAG,UASpC,CAAA;AAGD,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAAyC,CAAA"}
package/dist/base64.js ADDED
@@ -0,0 +1,117 @@
1
+ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ // https://deno.land/std/encoding/base64.ts
4
+ const base64abc = [
5
+ 'A',
6
+ 'B',
7
+ 'C',
8
+ 'D',
9
+ 'E',
10
+ 'F',
11
+ 'G',
12
+ 'H',
13
+ 'I',
14
+ 'J',
15
+ 'K',
16
+ 'L',
17
+ 'M',
18
+ 'N',
19
+ 'O',
20
+ 'P',
21
+ 'Q',
22
+ 'R',
23
+ 'S',
24
+ 'T',
25
+ 'U',
26
+ 'V',
27
+ 'W',
28
+ 'X',
29
+ 'Y',
30
+ 'Z',
31
+ 'a',
32
+ 'b',
33
+ 'c',
34
+ 'd',
35
+ 'e',
36
+ 'f',
37
+ 'g',
38
+ 'h',
39
+ 'i',
40
+ 'j',
41
+ 'k',
42
+ 'l',
43
+ 'm',
44
+ 'n',
45
+ 'o',
46
+ 'p',
47
+ 'q',
48
+ 'r',
49
+ 's',
50
+ 't',
51
+ 'u',
52
+ 'v',
53
+ 'w',
54
+ 'x',
55
+ 'y',
56
+ 'z',
57
+ '0',
58
+ '1',
59
+ '2',
60
+ '3',
61
+ '4',
62
+ '5',
63
+ '6',
64
+ '7',
65
+ '8',
66
+ '9',
67
+ '+',
68
+ '/',
69
+ ];
70
+ const textEncoder = new TextEncoder();
71
+ /**
72
+ * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
73
+ * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation
74
+ * @param data
75
+ */
76
+ export const encode = (data) => {
77
+ const uint8 = typeof data === 'string' ? textEncoder.encode(data) : data instanceof Uint8Array ? data : new Uint8Array(data);
78
+ let result = '', i;
79
+ const l = uint8.length;
80
+ for (i = 2; i < l; i += 3) {
81
+ result += base64abc[uint8[i - 2] >> 2];
82
+ result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
83
+ result += base64abc[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)];
84
+ result += base64abc[uint8[i] & 0x3f];
85
+ }
86
+ if (i === l + 1) {
87
+ // 1 octet yet to write
88
+ result += base64abc[uint8[i - 2] >> 2];
89
+ result += base64abc[(uint8[i - 2] & 0x03) << 4];
90
+ result += '==';
91
+ }
92
+ if (i === l) {
93
+ // 2 octets yet to write
94
+ result += base64abc[uint8[i - 2] >> 2];
95
+ result += base64abc[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
96
+ result += base64abc[(uint8[i - 1] & 0x0f) << 2];
97
+ result += '=';
98
+ }
99
+ return result;
100
+ };
101
+ /**
102
+ * Decodes a given RFC4648 base64 encoded string
103
+ * @param b64
104
+ */
105
+ export const decode = (b64) => {
106
+ const binString = atob(b64);
107
+ const size = binString.length;
108
+ const bytes = new Uint8Array(size);
109
+ for (let i = 0; i < size; i++) {
110
+ // eslint-disable-next-line unicorn/prefer-code-point
111
+ bytes[i] = binString.charCodeAt(i);
112
+ }
113
+ return bytes;
114
+ };
115
+ const textDecoder = new TextDecoder();
116
+ export const decodeToString = (b64) => textDecoder.decode(decode(b64));
117
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type DetectedBrowser = 'Something' | 'Opera' | 'Chrome' | 'Safari' | 'Firefox' | 'Edge' | 'Browser';
2
+ export declare const detectBrowserName: () => DetectedBrowser;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAE1G,eAAO,MAAM,iBAAiB,EAAE,MAAM,eA6BrC,CAAA"}
@@ -0,0 +1,28 @@
1
+ export const detectBrowserName = () => {
2
+ if (!navigator.userAgent) {
3
+ return 'Something';
4
+ }
5
+ const isOpera = navigator.userAgent.includes('OP');
6
+ const isChrome = navigator.userAgent.includes('Chrome') && !isOpera;
7
+ const isSafari = navigator.userAgent.includes('Safari') && !isChrome;
8
+ const isFirefox = navigator.userAgent.includes('Firefox');
9
+ const isEdge = navigator.userAgent.includes('Edg') || navigator.userAgent.includes('Trident');
10
+ // TODO: also parse out version
11
+ if (isOpera) {
12
+ return 'Opera';
13
+ }
14
+ if (isChrome) {
15
+ return 'Chrome';
16
+ }
17
+ if (isSafari) {
18
+ return 'Safari';
19
+ }
20
+ if (isFirefox) {
21
+ return 'Firefox';
22
+ }
23
+ if (isEdge) {
24
+ return 'Edge';
25
+ }
26
+ return 'Browser';
27
+ };
28
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA0B,GAAG,EAAE;IAC3D,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAA;IACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;IACpE,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAE7F,+BAA+B;IAE/B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Based on:
3
+ *
4
+ * cuid.js
5
+ * Collision-resistant UID generator for browsers and node.
6
+ * Sequential for fast db lookups and recency sorting.
7
+ * Safe for element IDs and server-side lookups.
8
+ *
9
+ * Extracted from CLCTR
10
+ *
11
+ * Copyright (c) Eric Elliott 2012
12
+ * MIT License
13
+ */
14
+ export declare const cuid: () => string;
15
+ export declare const slug: () => string;
16
+ export declare const isCuid: (stringToCheck: string) => boolean;
17
+ export declare const isSlug: (stringToCheck: string) => boolean;
18
+ //# sourceMappingURL=cuid.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuid.browser.d.ts","sourceRoot":"","sources":["../../src/cuid/cuid.browser.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAyCH,eAAO,MAAM,IAAI,cAkBhB,CAAA;AAED,eAAO,MAAM,IAAI,cAOhB,CAAA;AAED,eAAO,MAAM,MAAM,kBAAmB,MAAM,YAI3C,CAAA;AAED,eAAO,MAAM,MAAM,kBAAmB,MAAM,YAK3C,CAAA"}
@@ -0,0 +1,80 @@
1
+ /* eslint-disable unicorn/prefer-global-this */
2
+ /**
3
+ * Based on:
4
+ *
5
+ * cuid.js
6
+ * Collision-resistant UID generator for browsers and node.
7
+ * Sequential for fast db lookups and recency sorting.
8
+ * Safe for element IDs and server-side lookups.
9
+ *
10
+ * Extracted from CLCTR
11
+ *
12
+ * Copyright (c) Eric Elliott 2012
13
+ * MIT License
14
+ */
15
+ const lim = Math.pow(2, 32) - 1;
16
+ const crypto = globalThis.crypto;
17
+ const getRandomValue = () => {
18
+ return Math.abs(crypto.getRandomValues(new Uint32Array(1))[0] / lim);
19
+ };
20
+ const pad = (num, size) => {
21
+ const s = '000000000' + num;
22
+ return s.slice(s.length - size);
23
+ };
24
+ const env = typeof window === 'object' ? window : self;
25
+ const globalCount = Object.keys(env).length;
26
+ // To make it work in React Native https://github.com/paralleldrive/cuid/issues/54#issuecomment-222957293
27
+ const clientId = navigator.product === 'ReactNative'
28
+ ? 'rn'
29
+ : pad(navigator.userAgent.length.toString(36) + globalCount.toString(36), 4);
30
+ const fingerprint = () => clientId;
31
+ let c = 0;
32
+ const blockSize = 4;
33
+ const base = 36;
34
+ const discreteValues = Math.pow(base, blockSize);
35
+ const randomBlock = () => {
36
+ return pad(Math.trunc(getRandomValue() * discreteValues).toString(base), blockSize);
37
+ };
38
+ const safeCounter = () => {
39
+ c = c < discreteValues ? c : 0;
40
+ c++; // this is not subliminal
41
+ return c - 1;
42
+ };
43
+ export const cuid = () => {
44
+ // Starting with a lowercase letter makes
45
+ // it HTML element ID friendly.
46
+ const letter = 'c', // hard-coded allows for sequential access
47
+ // timestamp
48
+ // warning: this exposes the exact date and time
49
+ // that the uid was created.
50
+ timestamp = Date.now().toString(base),
51
+ // Prevent same-machine collisions.
52
+ counter = pad(safeCounter().toString(base), blockSize),
53
+ // A few chars to generate distinct ids for different
54
+ // clients (so different computers are far less
55
+ // likely to generate the same id)
56
+ print = fingerprint(),
57
+ // Grab some more chars from Math.random()
58
+ random = randomBlock() + randomBlock();
59
+ return letter + timestamp + counter + print + random;
60
+ };
61
+ export const slug = () => {
62
+ const date = Date.now().toString(36), counter = safeCounter().toString(36).slice(-4), print = fingerprint().slice(0, 1) + fingerprint().slice(-1), random = randomBlock().slice(-2);
63
+ return date.slice(-2) + counter + print + random;
64
+ };
65
+ export const isCuid = (stringToCheck) => {
66
+ if (typeof stringToCheck !== 'string')
67
+ return false;
68
+ if (stringToCheck.startsWith('c'))
69
+ return true;
70
+ return false;
71
+ };
72
+ export const isSlug = (stringToCheck) => {
73
+ if (typeof stringToCheck !== 'string')
74
+ return false;
75
+ const stringLength = stringToCheck.length;
76
+ if (stringLength >= 7 && stringLength <= 10)
77
+ return true;
78
+ return false;
79
+ };
80
+ //# sourceMappingURL=cuid.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuid.browser.js","sourceRoot":"","sources":["../../src/cuid/cuid.browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Based on:
3
+ *
4
+ * cuid.js
5
+ * Collision-resistant UID generator for browsers and node.
6
+ * Sequential for fast db lookups and recency sorting.
7
+ * Safe for element IDs and server-side lookups.
8
+ *
9
+ * Extracted from CLCTR
10
+ *
11
+ * Copyright (c) Eric Elliott 2012
12
+ * MIT License
13
+ */
14
+ export declare const cuid: () => string;
15
+ export declare const slug: () => string;
16
+ export declare const isCuid: (stringToCheck: string) => boolean;
17
+ export declare const isSlug: (stringToCheck: string) => boolean;
18
+ //# sourceMappingURL=cuid.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuid.node.d.ts","sourceRoot":"","sources":["../../src/cuid/cuid.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkDH,eAAO,MAAM,IAAI,cAkBhB,CAAA;AAED,eAAO,MAAM,IAAI,cAOhB,CAAA;AAED,eAAO,MAAM,MAAM,kBAAmB,MAAM,YAI3C,CAAA;AAED,eAAO,MAAM,MAAM,kBAAmB,MAAM,YAK3C,CAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Based on:
3
+ *
4
+ * cuid.js
5
+ * Collision-resistant UID generator for browsers and node.
6
+ * Sequential for fast db lookups and recency sorting.
7
+ * Safe for element IDs and server-side lookups.
8
+ *
9
+ * Extracted from CLCTR
10
+ *
11
+ * Copyright (c) Eric Elliott 2012
12
+ * MIT License
13
+ */
14
+ import crypto from 'node:crypto';
15
+ import os from 'node:os';
16
+ const lim = Math.pow(2, 32) - 1;
17
+ const getRandomValue = () => {
18
+ return Math.abs(crypto.randomBytes(4).readInt32BE() / lim);
19
+ };
20
+ const pad = (num, size) => {
21
+ const s = '000000000' + num;
22
+ return s.slice(s.length - size);
23
+ };
24
+ const fingerprint = () => {
25
+ const padding = 2, pid = pad(process.pid.toString(36), padding), hostname = os.hostname(), length = hostname.length, hostId = pad(hostname
26
+ .split('')
27
+ .reduce((prev, char) => {
28
+ // eslint-disable-next-line unicorn/prefer-code-point
29
+ return +prev + char.charCodeAt(0);
30
+ }, +length + 36)
31
+ .toString(36), padding);
32
+ return pid + hostId;
33
+ };
34
+ let c = 0;
35
+ const blockSize = 4;
36
+ const base = 36;
37
+ const discreteValues = Math.pow(base, blockSize);
38
+ const randomBlock = () => {
39
+ return pad(Math.trunc(getRandomValue() * discreteValues).toString(base), blockSize);
40
+ };
41
+ const safeCounter = () => {
42
+ c = c < discreteValues ? c : 0;
43
+ c++; // this is not subliminal
44
+ return c - 1;
45
+ };
46
+ export const cuid = () => {
47
+ // Starting with a lowercase letter makes
48
+ // it HTML element ID friendly.
49
+ const letter = 'c', // hard-coded allows for sequential access
50
+ // timestamp
51
+ // warning: this exposes the exact date and time
52
+ // that the uid was created.
53
+ timestamp = Date.now().toString(base),
54
+ // Prevent same-machine collisions.
55
+ counter = pad(safeCounter().toString(base), blockSize),
56
+ // A few chars to generate distinct ids for different
57
+ // clients (so different computers are far less
58
+ // likely to generate the same id)
59
+ print = fingerprint(),
60
+ // Grab some more chars from Math.random()
61
+ random = randomBlock() + randomBlock();
62
+ return letter + timestamp + counter + print + random;
63
+ };
64
+ export const slug = () => {
65
+ const date = Date.now().toString(36), counter = safeCounter().toString(36).slice(-4), print = fingerprint().slice(0, 1) + fingerprint().slice(-1), random = randomBlock().slice(-2);
66
+ return date.slice(-2) + counter + print + random;
67
+ };
68
+ export const isCuid = (stringToCheck) => {
69
+ if (typeof stringToCheck !== 'string')
70
+ return false;
71
+ if (stringToCheck.startsWith('c'))
72
+ return true;
73
+ return false;
74
+ };
75
+ export const isSlug = (stringToCheck) => {
76
+ if (typeof stringToCheck !== 'string')
77
+ return false;
78
+ const stringLength = stringToCheck.length;
79
+ if (stringLength >= 7 && stringLength <= 10)
80
+ return true;
81
+ return false;
82
+ };
83
+ //# sourceMappingURL=cuid.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cuid.node.js","sourceRoot":"","sources":["../../src/cuid/cuid.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Context, Duration, Scope } from 'effect';
2
+ import { Deferred, Effect } from 'effect';
3
+ import type { UnknownException } from 'effect/Cause';
4
+ import type { LazyArg } from 'effect/Function';
5
+ export * from 'effect/Effect';
6
+ export declare const tryAll: <Res>(fn: () => Res) => Res extends Effect.Effect<infer A, infer E, never> ? Effect.Effect<A, E | UnknownException, never> : Res extends Promise<infer A> ? Effect.Effect<A, UnknownException, never> : Effect.Effect<Res, UnknownException, never>;
7
+ export declare const acquireReleaseLog: (label: string) => Effect.Effect<void, never, Scope.Scope>;
8
+ export declare const logBefore: (...msgs: any[]) => <A, E, R>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
9
+ /** Logs both on errors and defects */
10
+ export declare const tapCauseLogPretty: <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
11
+ export declare const logWarnIfTakesLongerThan: ({ label, duration }: {
12
+ label: string;
13
+ duration: Duration.DurationInput;
14
+ }) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
15
+ export declare const logDuration: (label: string) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
16
+ export declare const tapSync: <A>(tapFn: (a: A) => unknown) => <R, E>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
17
+ export declare const debugLogEnv: (msg?: string) => Effect.Effect<Context.Context<never>>;
18
+ export declare const timeoutDie: <E1>(options: {
19
+ onTimeout: LazyArg<E1>;
20
+ duration: Duration.DurationInput;
21
+ }) => <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
22
+ export declare const timeoutDieMsg: (options: {
23
+ error: string;
24
+ duration: Duration.DurationInput;
25
+ }) => <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
26
+ export declare const toForkedDeferred: <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<Deferred.Deferred<A, E>, never, R | Scope.Scope>;
27
+ export declare const withPerformanceMeasure: (meaureLabel: string) => <R, E, A>(eff: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
28
+ //# sourceMappingURL=Effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import * as OtelTracer from '@effect/opentelemetry/Tracer';
2
+ import { Cause, Deferred, Effect, Fiber, pipe } from 'effect';
3
+ import { log } from 'effect/Console';
4
+ import { isNonEmptyString, isPromise } from '../index.js';
5
+ import { UnknownError } from './Error.js';
6
+ export * from 'effect/Effect';
7
+ // export const log = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
8
+ // Effect.sync(() => {
9
+ // console.log(message, ...rest)
10
+ // })
11
+ // export const logWarn = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
12
+ // Effect.sync(() => {
13
+ // console.warn(message, ...rest)
14
+ // })
15
+ // export const logError = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
16
+ // Effect.sync(() => {
17
+ // console.error(message, ...rest)
18
+ // })
19
+ export const tryAll = (fn) => Effect.try(() => fn()).pipe(Effect.andThen((fnRes) => Effect.isEffect(fnRes)
20
+ ? fnRes
21
+ : isPromise(fnRes)
22
+ ? Effect.promise(() => fnRes)
23
+ : Effect.succeed(fnRes)));
24
+ const getThreadName = () => {
25
+ // @ts-expect-error TODO fix types
26
+ const globalName = globalThis.name;
27
+ return isNonEmptyString(globalName)
28
+ ? globalName
29
+ : // eslint-disable-next-line unicorn/prefer-global-this
30
+ typeof window === 'object'
31
+ ? 'Browser Main Thread'
32
+ : 'unknown-thread';
33
+ };
34
+ export const acquireReleaseLog = (label) => Effect.acquireRelease(Effect.log(`${label} acquire`), (_, ex) => Effect.log(`${label} release`, ex));
35
+ export const logBefore = (...msgs) => (eff) => Effect.andThen(Effect.log(...msgs), eff);
36
+ /** Logs both on errors and defects */
37
+ export const tapCauseLogPretty = (eff) => Effect.tapErrorCause(eff, (cause) => Effect.gen(function* () {
38
+ if (Cause.isInterruptedOnly(cause)) {
39
+ // console.log('interrupted', Cause.pretty(err), err)
40
+ return;
41
+ }
42
+ const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.catchTag('NoSuchElementException', (_) => Effect.succeed(undefined)));
43
+ const threadName = getThreadName();
44
+ const firstErrLine = cause.toString().split('\n')[0];
45
+ yield* Effect.logError(`Error on ${threadName}: ${firstErrLine}`, cause).pipe((_) => span === undefined
46
+ ? _
47
+ : Effect.annotateLogs({ spanId: span.spanContext().spanId, traceId: span.spanContext().traceId })(_));
48
+ }));
49
+ export const logWarnIfTakesLongerThan = ({ label, duration }) => (eff) => Effect.gen(function* () {
50
+ const runtime = yield* Effect.runtime();
51
+ let timedOut = false;
52
+ const timeoutFiber = Effect.sleep(duration).pipe(Effect.tap(() => {
53
+ timedOut = true;
54
+ // TODO include span info
55
+ return Effect.logWarning(`${label}: Took longer than ${duration}ms`);
56
+ }), Effect.provide(runtime), Effect.runFork);
57
+ const start = Date.now();
58
+ const res = yield* eff;
59
+ if (timedOut) {
60
+ const end = Date.now();
61
+ yield* Effect.logWarning(`${label}: Actual duration: ${end - start}ms`);
62
+ }
63
+ yield* Fiber.interrupt(timeoutFiber);
64
+ return res;
65
+ });
66
+ export const logDuration = (label) => (eff) => Effect.gen(function* () {
67
+ const start = Date.now();
68
+ const res = yield* eff;
69
+ const end = Date.now();
70
+ yield* Effect.log(`${label}: ${end - start}ms`);
71
+ return res;
72
+ });
73
+ export const tapSync = (tapFn) => (eff) => Effect.tap(eff, (a) => Effect.sync(() => tapFn(a)));
74
+ export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => log(msg ?? 'debugLogEnv', env)));
75
+ export const timeoutDie = (options) => (self) => Effect.orDie(Effect.timeoutFail(options)(self));
76
+ export const timeoutDieMsg = (options) => (self) => Effect.orDie(Effect.timeoutFail({ onTimeout: () => new UnknownError({ cause: options.error }), duration: options.duration })(self));
77
+ export const toForkedDeferred = (eff) => pipe(Deferred.make(), Effect.tap((deferred) => pipe(Effect.exit(eff), Effect.flatMap((ex) => Deferred.done(deferred, ex)), tapCauseLogPretty, Effect.forkScoped)));
78
+ export const withPerformanceMeasure = (meaureLabel) => (eff) => Effect.acquireUseRelease(Effect.sync(() => performance.mark(`${meaureLabel}:start`)), () => eff, () => Effect.sync(() => {
79
+ performance.mark(`${meaureLabel}:end`);
80
+ performance.measure(meaureLabel, `${meaureLabel}:start`, `${meaureLabel}:end`);
81
+ }));
82
+ //# sourceMappingURL=Effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}