@e280/stz 0.2.13 → 0.2.15

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.
package/README.md CHANGED
@@ -111,6 +111,32 @@ await nap(900)
111
111
  // wait for 900 milliseconds
112
112
  ```
113
113
 
114
+ ### 🍏 all
115
+ > it's just sugar for `Promise.all`
116
+
117
+ ```ts
118
+ import {all} from "@e280/stz"
119
+
120
+ await all(
121
+ nap(500),
122
+ Promise.resolve("hello"),
123
+ fetch("whatever.json"),
124
+ )
125
+ ```
126
+
127
+ ### 🍏 concurrent
128
+ > sugar for `Promise.all`, but returns named things as an object
129
+
130
+ ```ts
131
+ import {concurrent} from "@e280/stz"
132
+
133
+ cons {slept, hello, whatever} = await concurrent({
134
+ slept: nap(500),
135
+ hello: Promise.resolve("hello"),
136
+ whatever: fetch("whatever.json"),
137
+ })
138
+ ```
139
+
114
140
  ### 🍏 disposer
115
141
  > easy trash management
116
142
 
@@ -153,9 +179,9 @@ import {disposer} from "@e280/stz"
153
179
  > extended js Map
154
180
  - many are saying it's *"The Deluxe Mapping Experience"*
155
181
  ```ts
156
- import {MapG} from "@e280/stz"
182
+ import {GMap} from "@e280/stz"
157
183
 
158
- const map = new MapG<number, string>([
184
+ const map = new GMap<number, string>([
159
185
  [1, "hello"],
160
186
  [2, "world"],
161
187
  ])
@@ -173,13 +199,13 @@ import {disposer} from "@e280/stz"
173
199
 
174
200
  #### GSet
175
201
  > extended js Set
176
- - `new SetG<T>()`
202
+ - `new GSet<T>()`
177
203
  - `set.adds(item1, item2, item3)` — add multiple items without a for-loop
178
204
  - `set.deletes(item1, item2, item3)` — add multiple items without a for-loop
179
205
 
180
206
  #### GWeakMap
181
207
  > extended js WeakMap
182
- - `new WeakMapG<K, V>()`
208
+ - `new GWeakMap<K, V>()`
183
209
  - `weakMap.require(key)` — returns value for key.. if missing, throw an error
184
210
  - `weakMap.guarantee(key, makeFn)` — returns the value for key.. if missing, run `makeFn` to set and return the value
185
211
 
@@ -255,6 +281,20 @@ fn()
255
281
  // coolAction is only called once here, other calls are redundant
256
282
  ```
257
283
 
284
+ ### 🍏 `microbounce(fn)`
285
+ > collapse multiple calls into a single call (uses queueMicrotask under the hood)
286
+
287
+ it's like `debounce(0, fn)` but more efficient by using queueMicrotask instead of setTimeout
288
+
289
+ ```ts
290
+ import {microbounce} from "@e280/stz"
291
+
292
+ const fn = microbounce(async() => coolAction())
293
+ fn()
294
+ fn()
295
+ fn() // previous calls are redundant
296
+ ```
297
+
258
298
  ### 🍏 `cycle(fn)`
259
299
  > execute a function over and over again, back to back
260
300
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
@@ -27,8 +27,8 @@
27
27
  "_tscw": "tsc -w"
28
28
  },
29
29
  "devDependencies": {
30
- "@e280/science": "^0.1.2",
31
- "@types/node": "^24.7.2",
30
+ "@e280/science": "^0.1.4",
31
+ "@types/node": "^24.10.1",
32
32
  "npm-run-all": "^4.1.5",
33
33
  "typescript": "^5.9.3"
34
34
  },
package/s/all.ts ADDED
@@ -0,0 +1,6 @@
1
+
2
+ /** it's just minimal-syntax sugar for Promise.all */
3
+ export async function all<Promises extends Promise<any>[]>(...promises: Promises) {
4
+ return await Promise.all(promises)
5
+ }
6
+
@@ -0,0 +1,74 @@
1
+
2
+ import {nap} from "../nap.js"
3
+ import {microbounce} from "./microbounce.js"
4
+ import {Science, expect} from "@e280/science"
5
+
6
+ export default Science.suite({
7
+ "reduces many calls into one": Science.test(async() => {
8
+ let count = 0
9
+ const increment = microbounce(() => { count += 1 })
10
+ increment()
11
+ increment()
12
+ increment()
13
+ await nap(10)
14
+ expect(count).is(1)
15
+ }),
16
+
17
+ "uses last args": Science.test(async() => {
18
+ let count = 0
19
+ const add = microbounce((n: number) => { count += n })
20
+ add(1)
21
+ add(2)
22
+ add(3)
23
+ await nap(10)
24
+ expect(count).is(3)
25
+ }),
26
+
27
+ "last return is promised": Science.test(async() => {
28
+ let count = 0
29
+ const hit = microbounce((n: number) => {
30
+ count++
31
+ return n
32
+ })
33
+ hit(101)
34
+ hit(102)
35
+ const last = await hit(103)
36
+ expect(count).is(1)
37
+ expect(last).is(103)
38
+ }),
39
+
40
+ "last return type for async looks good": Science.test(async() => {
41
+ let count = 0
42
+ const hit = microbounce(async(n: number) => {
43
+ count++
44
+ return n
45
+ })
46
+ hit(101)
47
+ hit(102)
48
+ const last = await hit(103)
49
+ expect(count).is(1)
50
+ expect(last).is(103)
51
+ }),
52
+
53
+ "do it twice": Science.test(async() => {
54
+ {
55
+ let count = 0
56
+ const increment = microbounce(() => { count += 1 })
57
+ increment()
58
+ increment()
59
+ increment()
60
+ await nap(10)
61
+ expect(count).is(1)
62
+ }
63
+ {
64
+ let count = 0
65
+ const increment = microbounce(() => { count += 1 })
66
+ increment()
67
+ increment()
68
+ increment()
69
+ await nap(10)
70
+ expect(count).is(1)
71
+ }
72
+ }),
73
+ })
74
+
@@ -0,0 +1,27 @@
1
+
2
+ import {defer, Deferred} from "../defer.js"
3
+
4
+ export function microbounce<F extends (...params: any[]) => any>(fn: F) {
5
+ let scheduled: {
6
+ params: any[]
7
+ deferred: Deferred<any>
8
+ } | null = null
9
+
10
+ return ((...params: any[]) => {
11
+ if (scheduled) {
12
+ scheduled.params = params
13
+ }
14
+ else {
15
+ scheduled = {params, deferred: defer()}
16
+ queueMicrotask(() => {
17
+ const {params, deferred} = scheduled!
18
+ scheduled = null
19
+ Promise.resolve(fn(...params))
20
+ .then(deferred.resolve)
21
+ .catch(deferred.reject)
22
+ })
23
+ }
24
+ return scheduled.deferred.promise
25
+ }) as ((...params: Parameters<F>) => Promise<Awaited<ReturnType<F>>>)
26
+ }
27
+
package/s/index.ts CHANGED
@@ -11,6 +11,7 @@ export * from "./data/bytes.js"
11
11
  export * from "./data/txt.js"
12
12
 
13
13
  export * from "./debounce/debounce.js"
14
+ export * from "./debounce/microbounce.js"
14
15
  export * from "./debounce/types.js"
15
16
 
16
17
  export * from "./deep/index.js"
@@ -24,6 +25,7 @@ export * from "./queue/queue.js"
24
25
 
25
26
  export * from "./toq/index.js"
26
27
 
28
+ export * from "./all.js"
27
29
  export * from "./coalesce.js"
28
30
  export * from "./collect.js"
29
31
  export * from "./concurrent.js"
package/s/tests.test.ts CHANGED
@@ -3,6 +3,7 @@ import {Science} from "@e280/science"
3
3
 
4
4
  import data from "./data/data.test.js"
5
5
  import debounce from "./debounce/debounce.test.js"
6
+ import microbounce from "./debounce/microbounce.test.js"
6
7
  import deep from "./deep/index.test.js"
7
8
  import queue from "./queue/queue.test.js"
8
9
  import toq from "./toq/toq.test.js"
@@ -10,6 +11,7 @@ import toq from "./toq/toq.test.js"
10
11
  await Science.run({
11
12
  data,
12
13
  debounce,
14
+ microbounce,
13
15
  deep,
14
16
  queue,
15
17
  toq,
package/x/all.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ /** it's just minimal-syntax sugar for Promise.all */
2
+ export declare function all<Promises extends Promise<any>[]>(...promises: Promises): Promise<{ -readonly [P in keyof Promises]: Awaited<Promises[P]>; }>;
package/x/all.js ADDED
@@ -0,0 +1,5 @@
1
+ /** it's just minimal-syntax sugar for Promise.all */
2
+ export async function all(...promises) {
3
+ return await Promise.all(promises);
4
+ }
5
+ //# sourceMappingURL=all.js.map
package/x/all.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../s/all.ts"],"names":[],"mappings":"AACA,qDAAqD;AACrD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAkC,GAAG,QAAkB;IAC/E,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC"}
package/x/data/txt.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export declare const txt: Readonly<{
2
2
  fromBytes(bytes: Uint8Array): string;
3
- toBytes(string: string): Uint8Array<ArrayBufferLike>;
3
+ toBytes(string: string): NodeJS.NonSharedUint8Array;
4
4
  /** @deprecated renamed to `fromBytes` */
5
5
  string(bytes: Uint8Array): string;
6
6
  /** @deprecated renamed to `toBytes` */
7
- bytes(string: string): Uint8Array<ArrayBufferLike>;
7
+ bytes(string: string): NodeJS.NonSharedUint8Array;
8
8
  }>;
9
9
  /** @deprecated renamed to `txt` */
10
10
  export declare const Txt: Readonly<{
11
11
  fromBytes(bytes: Uint8Array): string;
12
- toBytes(string: string): Uint8Array<ArrayBufferLike>;
12
+ toBytes(string: string): NodeJS.NonSharedUint8Array;
13
13
  /** @deprecated renamed to `fromBytes` */
14
14
  string(bytes: Uint8Array): string;
15
15
  /** @deprecated renamed to `toBytes` */
16
- bytes(string: string): Uint8Array<ArrayBufferLike>;
16
+ bytes(string: string): NodeJS.NonSharedUint8Array;
17
17
  }>;
@@ -0,0 +1 @@
1
+ export declare function microbounce<F extends (...params: any[]) => any>(fn: F): ((...params: Parameters<F>) => Promise<Awaited<ReturnType<F>>>);
@@ -0,0 +1,21 @@
1
+ import { defer } from "../defer.js";
2
+ export function microbounce(fn) {
3
+ let scheduled = null;
4
+ return ((...params) => {
5
+ if (scheduled) {
6
+ scheduled.params = params;
7
+ }
8
+ else {
9
+ scheduled = { params, deferred: defer() };
10
+ queueMicrotask(() => {
11
+ const { params, deferred } = scheduled;
12
+ scheduled = null;
13
+ Promise.resolve(fn(...params))
14
+ .then(deferred.resolve)
15
+ .catch(deferred.reject);
16
+ });
17
+ }
18
+ return scheduled.deferred.promise;
19
+ });
20
+ }
21
+ //# sourceMappingURL=microbounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microbounce.js","sourceRoot":"","sources":["../../s/debounce/microbounce.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAW,MAAM,aAAa,CAAA;AAE3C,MAAM,UAAU,WAAW,CAAsC,EAAK;IACrE,IAAI,SAAS,GAGF,IAAI,CAAA;IAEf,OAAO,CAAC,CAAC,GAAG,MAAa,EAAE,EAAE;QAC5B,IAAI,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;aACI,CAAC;YACL,SAAS,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAC,CAAA;YACvC,cAAc,CAAC,GAAG,EAAE;gBACnB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,SAAU,CAAA;gBACrC,SAAS,GAAG,IAAI,CAAA;gBAChB,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;qBAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;qBACtB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;QACH,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAA;IAClC,CAAC,CAAoE,CAAA;AACtE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Science } from "@e280/science";
2
+ declare const _default: {
3
+ "reduces many calls into one": Science.Test;
4
+ "uses last args": Science.Test;
5
+ "last return is promised": Science.Test;
6
+ "last return type for async looks good": Science.Test;
7
+ "do it twice": Science.Test;
8
+ };
9
+ export default _default;
@@ -0,0 +1,68 @@
1
+ import { nap } from "../nap.js";
2
+ import { microbounce } from "./microbounce.js";
3
+ import { Science, expect } from "@e280/science";
4
+ export default Science.suite({
5
+ "reduces many calls into one": Science.test(async () => {
6
+ let count = 0;
7
+ const increment = microbounce(() => { count += 1; });
8
+ increment();
9
+ increment();
10
+ increment();
11
+ await nap(10);
12
+ expect(count).is(1);
13
+ }),
14
+ "uses last args": Science.test(async () => {
15
+ let count = 0;
16
+ const add = microbounce((n) => { count += n; });
17
+ add(1);
18
+ add(2);
19
+ add(3);
20
+ await nap(10);
21
+ expect(count).is(3);
22
+ }),
23
+ "last return is promised": Science.test(async () => {
24
+ let count = 0;
25
+ const hit = microbounce((n) => {
26
+ count++;
27
+ return n;
28
+ });
29
+ hit(101);
30
+ hit(102);
31
+ const last = await hit(103);
32
+ expect(count).is(1);
33
+ expect(last).is(103);
34
+ }),
35
+ "last return type for async looks good": Science.test(async () => {
36
+ let count = 0;
37
+ const hit = microbounce(async (n) => {
38
+ count++;
39
+ return n;
40
+ });
41
+ hit(101);
42
+ hit(102);
43
+ const last = await hit(103);
44
+ expect(count).is(1);
45
+ expect(last).is(103);
46
+ }),
47
+ "do it twice": Science.test(async () => {
48
+ {
49
+ let count = 0;
50
+ const increment = microbounce(() => { count += 1; });
51
+ increment();
52
+ increment();
53
+ increment();
54
+ await nap(10);
55
+ expect(count).is(1);
56
+ }
57
+ {
58
+ let count = 0;
59
+ const increment = microbounce(() => { count += 1; });
60
+ increment();
61
+ increment();
62
+ increment();
63
+ await nap(10);
64
+ expect(count).is(1);
65
+ }
66
+ }),
67
+ });
68
+ //# sourceMappingURL=microbounce.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microbounce.test.js","sourceRoot":"","sources":["../../s/debounce/microbounce.test.ts"],"names":[],"mappings":"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"}
package/x/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from "./data/base-x.js";
9
9
  export * from "./data/bytes.js";
10
10
  export * from "./data/txt.js";
11
11
  export * from "./debounce/debounce.js";
12
+ export * from "./debounce/microbounce.js";
12
13
  export * from "./debounce/types.js";
13
14
  export * from "./deep/index.js";
14
15
  export * from "./g/map.js";
@@ -17,6 +18,7 @@ export * from "./g/set.js";
17
18
  export * from "./g/weak-map.js";
18
19
  export * from "./queue/queue.js";
19
20
  export * from "./toq/index.js";
21
+ export * from "./all.js";
20
22
  export * from "./coalesce.js";
21
23
  export * from "./collect.js";
22
24
  export * from "./concurrent.js";
package/x/index.js CHANGED
@@ -9,6 +9,7 @@ export * from "./data/base-x.js";
9
9
  export * from "./data/bytes.js";
10
10
  export * from "./data/txt.js";
11
11
  export * from "./debounce/debounce.js";
12
+ export * from "./debounce/microbounce.js";
12
13
  export * from "./debounce/types.js";
13
14
  export * from "./deep/index.js";
14
15
  export * from "./g/map.js";
@@ -17,6 +18,7 @@ export * from "./g/set.js";
17
18
  export * from "./g/weak-map.js";
18
19
  export * from "./queue/queue.js";
19
20
  export * from "./toq/index.js";
21
+ export * from "./all.js";
20
22
  export * from "./coalesce.js";
21
23
  export * from "./collect.js";
22
24
  export * from "./concurrent.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAE/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAE/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
package/x/tests.test.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { Science } from "@e280/science";
2
2
  import data from "./data/data.test.js";
3
3
  import debounce from "./debounce/debounce.test.js";
4
+ import microbounce from "./debounce/microbounce.test.js";
4
5
  import deep from "./deep/index.test.js";
5
6
  import queue from "./queue/queue.test.js";
6
7
  import toq from "./toq/toq.test.js";
7
8
  await Science.run({
8
9
  data,
9
10
  debounce,
11
+ microbounce,
10
12
  deep,
11
13
  queue,
12
14
  toq,
@@ -1 +1 @@
1
- {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,IAAI,MAAM,qBAAqB,CAAA;AACtC,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,IAAI,MAAM,sBAAsB,CAAA;AACvC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,GAAG,MAAM,mBAAmB,CAAA;AAEnC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,GAAG;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,IAAI,MAAM,qBAAqB,CAAA;AACtC,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,WAAW,MAAM,gCAAgC,CAAA;AACxD,OAAO,IAAI,MAAM,sBAAsB,CAAA;AACvC,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,GAAG,MAAM,mBAAmB,CAAA;AAEnC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,IAAI;IACJ,QAAQ;IACR,WAAW;IACX,IAAI;IACJ,KAAK;IACL,GAAG;CACH,CAAC,CAAA"}