@e280/stz 0.0.0-35 → 0.0.0-37

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
@@ -1,5 +1,5 @@
1
1
 
2
- # `@e280/stz`
2
+ # 🏂 `@e280/stz`
3
3
 
4
4
  **stz** is e280's standard library of environment-agnostic typescript tools.
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.0.0-35",
3
+ "version": "0.0.0-37",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "@e280/science": "^0.0.6",
30
- "@types/node": "^24.2.0",
30
+ "@types/node": "^24.3.0",
31
31
  "npm-run-all": "^4.1.5",
32
32
  "typescript": "^5.9.2"
33
33
  },
@@ -0,0 +1,3 @@
1
+
2
+ export type Constructor<T extends {} = {}> = new(...args: any[]) => T
3
+
package/s/index.ts CHANGED
@@ -17,6 +17,7 @@ export * from "./queue/queue.js"
17
17
 
18
18
  export * from "./coalesce.js"
19
19
  export * from "./concurrent.js"
20
+ export * from "./constructor.js"
20
21
  export * from "./deadline.js"
21
22
  export * from "./dedupe.js"
22
23
  export * from "./defer.js"
@@ -32,8 +33,10 @@ export * from "./nap.js"
32
33
  export * from "./ob.js"
33
34
  export * from "./once.js"
34
35
  export * from "./pipe.js"
35
- export * from "./repeat.js"
36
36
  export * from "./pubsub.js"
37
+ export * from "./repeat.js"
38
+ export * from "./scope.js"
39
+ export * from "./templating.js"
37
40
  export * from "./time.js"
38
41
  export * from "./trash.js"
39
42
 
package/s/pipe.ts CHANGED
@@ -1,20 +1,19 @@
1
1
 
2
- export type PipeFun<I, O> = (input: I) => O
2
+ export type Piper<I, O> = (input: I) => O
3
3
 
4
- export class Pipe<I> {
5
-
6
- static with<I>(input: I) {
7
- return new this(input)
8
- }
4
+ export function pipe<I>(input: I) {
5
+ return new Pipe(input)
6
+ }
9
7
 
8
+ export class Pipe<I> {
10
9
  #input: I
11
10
 
12
11
  constructor(input: I) {
13
12
  this.#input = input
14
13
  }
15
14
 
16
- to<O>(fun: PipeFun<I, O>) {
17
- return new Pipe(fun(this.#input))
15
+ to<O>(fn: Piper<I, O>) {
16
+ return new Pipe(fn(this.#input))
18
17
  }
19
18
 
20
19
  done() {
package/s/scope.ts ADDED
@@ -0,0 +1,80 @@
1
+
2
+ export type Scoped<Item> = [item: Item, dispose: () => void]
3
+ export type Disposable = {dispose(): void}
4
+
5
+ export function scoped<Item>(item: Item, dispose: () => void) {
6
+ return [item, dispose] as Scoped<Item>
7
+ }
8
+
9
+ export class Scope {
10
+ #disposers: (() => void)[] = []
11
+
12
+ /** add a dispose fn */
13
+ add(dispose: () => void) {
14
+ this.#disposers.push(dispose)
15
+ }
16
+
17
+ /** add a dispose fn, and return the item */
18
+ reg<Item>(item: Item, dispose: () => void) {
19
+ this.add(dispose)
20
+ return item
21
+ }
22
+
23
+ /** add a scoped item's disposer, and return the item */
24
+ register<Item>([item, dispose]: Scoped<Item>) {
25
+ this.add(dispose)
26
+ return item
27
+ }
28
+
29
+ /** register and return disposable item */
30
+ registerDisposable<Item extends Disposable>(item: Item) {
31
+ this.#disposers.push(() => item.dispose)
32
+ return item
33
+ }
34
+
35
+ /** augment a fn to register its returned scoped item */
36
+ fn<Params extends any[], Item>(fn: (...params: Params) => Scoped<Item>) {
37
+ return (...a: Params) => {
38
+ const scoped = fn(...a)
39
+ return this.register(scoped)
40
+ }
41
+ }
42
+
43
+ /** augment an async fn to register its returned scoped item */
44
+ fnAsync<Params extends any[], Item>(fn: (...params: Params) => Promise<Scoped<Item>>) {
45
+ return async(...a: Params) => {
46
+ const scoped = await fn(...a)
47
+ return this.register(scoped)
48
+ }
49
+ }
50
+
51
+ /** augment a fn to register its returned disposable item */
52
+ fnDisposable<Params extends any[], Item extends Disposable>(fn: (...params: Params) => Item) {
53
+ return (...a: Params) => {
54
+ const scoped = fn(...a)
55
+ return this.registerDisposable(scoped)
56
+ }
57
+ }
58
+
59
+ /** augment an async fn to register its returned disposable item */
60
+ fnAsyncDisposable<Params extends any[], Item extends Disposable>(fn: (...params: Params) => Promise<Item>) {
61
+ return async(...a: Params) => {
62
+ const scoped = await fn(...a)
63
+ return this.registerDisposable(scoped)
64
+ }
65
+ }
66
+
67
+ /** create a subscope that is registered, so disposing the parent will dispose the children */
68
+ sub() {
69
+ const scope = new Scope()
70
+ return this.reg(scope, () => scope.dispose())
71
+ }
72
+
73
+ /** dispose all the disposers added to this scope */
74
+ dispose() {
75
+ for (const fn of this.#disposers.reverse())
76
+ fn()
77
+ this.#disposers = []
78
+ }
79
+ }
80
+
@@ -0,0 +1,22 @@
1
+
2
+ export type TemplateParts = {
3
+ strings: TemplateStringsArray
4
+ values: any[]
5
+ }
6
+
7
+ export function templateParts(
8
+ strings: TemplateStringsArray,
9
+ ...values: any[]
10
+ ): TemplateParts {
11
+
12
+ return {strings, values}
13
+ }
14
+
15
+ export function templateString(strings: TemplateStringsArray, ...values: any[]) {
16
+ const lastIndex = strings.length - 1
17
+ return strings
18
+ .slice(0, lastIndex)
19
+ .reduce((a, b, c) => a + b + values[c], "")
20
+ + strings[lastIndex]
21
+ }
22
+
@@ -0,0 +1 @@
1
+ export type Constructor<T extends {} = {}> = new (...args: any[]) => T;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructor.js","sourceRoot":"","sources":["../s/constructor.ts"],"names":[],"mappings":""}
package/x/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from "./deep/deep.js";
12
12
  export * from "./queue/queue.js";
13
13
  export * from "./coalesce.js";
14
14
  export * from "./concurrent.js";
15
+ export * from "./constructor.js";
15
16
  export * from "./deadline.js";
16
17
  export * from "./dedupe.js";
17
18
  export * from "./defer.js";
@@ -27,7 +28,9 @@ export * from "./nap.js";
27
28
  export * from "./ob.js";
28
29
  export * from "./once.js";
29
30
  export * from "./pipe.js";
30
- export * from "./repeat.js";
31
31
  export * from "./pubsub.js";
32
+ export * from "./repeat.js";
33
+ export * from "./scope.js";
34
+ export * from "./templating.js";
32
35
  export * from "./time.js";
33
36
  export * from "./trash.js";
package/x/index.js CHANGED
@@ -12,6 +12,7 @@ export * from "./deep/deep.js";
12
12
  export * from "./queue/queue.js";
13
13
  export * from "./coalesce.js";
14
14
  export * from "./concurrent.js";
15
+ export * from "./constructor.js";
15
16
  export * from "./deadline.js";
16
17
  export * from "./dedupe.js";
17
18
  export * from "./defer.js";
@@ -27,8 +28,10 @@ export * from "./nap.js";
27
28
  export * from "./ob.js";
28
29
  export * from "./once.js";
29
30
  export * from "./pipe.js";
30
- export * from "./repeat.js";
31
31
  export * from "./pubsub.js";
32
+ export * from "./repeat.js";
33
+ export * from "./scope.js";
34
+ export * from "./templating.js";
32
35
  export * from "./time.js";
33
36
  export * from "./trash.js";
34
37
  //# sourceMappingURL=index.js.map
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,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,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,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,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
package/x/pipe.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export type PipeFun<I, O> = (input: I) => O;
1
+ export type Piper<I, O> = (input: I) => O;
2
+ export declare function pipe<I>(input: I): Pipe<I>;
2
3
  export declare class Pipe<I> {
3
4
  #private;
4
- static with<I>(input: I): Pipe<I>;
5
5
  constructor(input: I);
6
- to<O>(fun: PipeFun<I, O>): Pipe<O>;
6
+ to<O>(fn: Piper<I, O>): Pipe<O>;
7
7
  done(): I;
8
8
  }
package/x/pipe.js CHANGED
@@ -1,13 +1,13 @@
1
+ export function pipe(input) {
2
+ return new Pipe(input);
3
+ }
1
4
  export class Pipe {
2
- static with(input) {
3
- return new this(input);
4
- }
5
5
  #input;
6
6
  constructor(input) {
7
7
  this.#input = input;
8
8
  }
9
- to(fun) {
10
- return new Pipe(fun(this.#input));
9
+ to(fn) {
10
+ return new Pipe(fn(this.#input));
11
11
  }
12
12
  done() {
13
13
  return this.#input;
package/x/pipe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../s/pipe.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,IAAI;IAEhB,MAAM,CAAC,IAAI,CAAI,KAAQ;QACtB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAG;IAET,YAAY,KAAQ;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,EAAE,CAAI,GAAkB;QACvB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,IAAI;QACH,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;CACD"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../s/pipe.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,IAAI,CAAI,KAAQ;IAC/B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,OAAO,IAAI;IAChB,MAAM,CAAG;IAET,YAAY,KAAQ;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,EAAE,CAAI,EAAe;QACpB,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,IAAI;QACH,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;CACD"}
package/x/scope.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ export type Scoped<Item> = [item: Item, dispose: () => void];
2
+ export type Disposable = {
3
+ dispose(): void;
4
+ };
5
+ export declare function scoped<Item>(item: Item, dispose: () => void): Scoped<Item>;
6
+ export declare class Scope {
7
+ #private;
8
+ /** add a dispose fn */
9
+ add(dispose: () => void): void;
10
+ /** add a dispose fn, and return the item */
11
+ reg<Item>(item: Item, dispose: () => void): Item;
12
+ /** add a scoped item's disposer, and return the item */
13
+ register<Item>([item, dispose]: Scoped<Item>): Item;
14
+ /** register and return disposable item */
15
+ registerDisposable<Item extends Disposable>(item: Item): Item;
16
+ /** augment a fn to register its returned scoped item */
17
+ fn<Params extends any[], Item>(fn: (...params: Params) => Scoped<Item>): (...a: Params) => Item;
18
+ /** augment an async fn to register its returned scoped item */
19
+ fnAsync<Params extends any[], Item>(fn: (...params: Params) => Promise<Scoped<Item>>): (...a: Params) => Promise<Item>;
20
+ /** augment a fn to register its returned disposable item */
21
+ fnDisposable<Params extends any[], Item extends Disposable>(fn: (...params: Params) => Item): (...a: Params) => Item;
22
+ /** augment an async fn to register its returned disposable item */
23
+ fnAsyncDisposable<Params extends any[], Item extends Disposable>(fn: (...params: Params) => Promise<Item>): (...a: Params) => Promise<Item>;
24
+ /** create a subscope that is registered, so disposing the parent will dispose the children */
25
+ sub(): Scope;
26
+ /** dispose all the disposers added to this scope */
27
+ dispose(): void;
28
+ }
package/x/scope.js ADDED
@@ -0,0 +1,65 @@
1
+ export function scoped(item, dispose) {
2
+ return [item, dispose];
3
+ }
4
+ export class Scope {
5
+ #disposers = [];
6
+ /** add a dispose fn */
7
+ add(dispose) {
8
+ this.#disposers.push(dispose);
9
+ }
10
+ /** add a dispose fn, and return the item */
11
+ reg(item, dispose) {
12
+ this.add(dispose);
13
+ return item;
14
+ }
15
+ /** add a scoped item's disposer, and return the item */
16
+ register([item, dispose]) {
17
+ this.add(dispose);
18
+ return item;
19
+ }
20
+ /** register and return disposable item */
21
+ registerDisposable(item) {
22
+ this.#disposers.push(() => item.dispose);
23
+ return item;
24
+ }
25
+ /** augment a fn to register its returned scoped item */
26
+ fn(fn) {
27
+ return (...a) => {
28
+ const scoped = fn(...a);
29
+ return this.register(scoped);
30
+ };
31
+ }
32
+ /** augment an async fn to register its returned scoped item */
33
+ fnAsync(fn) {
34
+ return async (...a) => {
35
+ const scoped = await fn(...a);
36
+ return this.register(scoped);
37
+ };
38
+ }
39
+ /** augment a fn to register its returned disposable item */
40
+ fnDisposable(fn) {
41
+ return (...a) => {
42
+ const scoped = fn(...a);
43
+ return this.registerDisposable(scoped);
44
+ };
45
+ }
46
+ /** augment an async fn to register its returned disposable item */
47
+ fnAsyncDisposable(fn) {
48
+ return async (...a) => {
49
+ const scoped = await fn(...a);
50
+ return this.registerDisposable(scoped);
51
+ };
52
+ }
53
+ /** create a subscope that is registered, so disposing the parent will dispose the children */
54
+ sub() {
55
+ const scope = new Scope();
56
+ return this.reg(scope, () => scope.dispose());
57
+ }
58
+ /** dispose all the disposers added to this scope */
59
+ dispose() {
60
+ for (const fn of this.#disposers.reverse())
61
+ fn();
62
+ this.#disposers = [];
63
+ }
64
+ }
65
+ //# sourceMappingURL=scope.js.map
package/x/scope.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../s/scope.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,MAAM,CAAO,IAAU,EAAE,OAAmB;IAC3D,OAAO,CAAC,IAAI,EAAE,OAAO,CAAiB,CAAA;AACvC,CAAC;AAED,MAAM,OAAO,KAAK;IACjB,UAAU,GAAmB,EAAE,CAAA;IAE/B,uBAAuB;IACvB,GAAG,CAAC,OAAmB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,4CAA4C;IAC5C,GAAG,CAAO,IAAU,EAAE,OAAmB;QACxC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,wDAAwD;IACxD,QAAQ,CAAO,CAAC,IAAI,EAAE,OAAO,CAAe;QAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,0CAA0C;IAC1C,kBAAkB,CAA0B,IAAU;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,wDAAwD;IACxD,EAAE,CAA6B,EAAuC;QACrE,OAAO,CAAC,GAAG,CAAS,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CAAA;IACF,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAA6B,EAAgD;QACnF,OAAO,KAAK,EAAC,GAAG,CAAS,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CAAA;IACF,CAAC;IAED,4DAA4D;IAC5D,YAAY,CAAgD,EAA+B;QAC1F,OAAO,CAAC,GAAG,CAAS,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC,CAAA;IACF,CAAC;IAED,mEAAmE;IACnE,iBAAiB,CAAgD,EAAwC;QACxG,OAAO,KAAK,EAAC,GAAG,CAAS,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC,CAAA;IACF,CAAC;IAED,8FAA8F;IAC9F,GAAG;QACF,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,oDAAoD;IACpD,OAAO;QACN,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACzC,EAAE,EAAE,CAAA;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;CACD"}
@@ -0,0 +1,6 @@
1
+ export type TemplateParts = {
2
+ strings: TemplateStringsArray;
3
+ values: any[];
4
+ };
5
+ export declare function templateParts(strings: TemplateStringsArray, ...values: any[]): TemplateParts;
6
+ export declare function templateString(strings: TemplateStringsArray, ...values: any[]): string;
@@ -0,0 +1,11 @@
1
+ export function templateParts(strings, ...values) {
2
+ return { strings, values };
3
+ }
4
+ export function templateString(strings, ...values) {
5
+ const lastIndex = strings.length - 1;
6
+ return strings
7
+ .slice(0, lastIndex)
8
+ .reduce((a, b, c) => a + b + values[c], "")
9
+ + strings[lastIndex];
10
+ }
11
+ //# sourceMappingURL=templating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templating.js","sourceRoot":"","sources":["../s/templating.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAC3B,OAA6B,EAC7B,GAAG,MAAa;IAGjB,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA6B,EAAE,GAAG,MAAa;IAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IACpC,OAAO,OAAO;SACZ,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;UACxC,OAAO,CAAC,SAAS,CAAC,CAAA;AACvB,CAAC"}