subay 0.0.3

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 huangguisen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # 🌱 Sen
2
+
3
+ A lightweight reactive UI library with state management and template rendering.
4
+
5
+ ## ✨ Features
6
+
7
+ - **Reactive State Management**: Create observable values and computed properties
8
+ - **Template Rendering**: Use tagged template literals for HTML and SVG
9
+ - **Efficient DOM Updates**: Optimized rendering with minimal DOM operations
10
+ - **TypeScript Support**: Full TypeScript integration
11
+
12
+ ## πŸ“¦ Installation
13
+
14
+ ```bash
15
+ npm install subay
16
+ ```
17
+
18
+ ## πŸ”§ Basic Usage
19
+
20
+ ### πŸ”„ Reactive State
21
+
22
+ ```javascript
23
+ import { o, S } from 'subay';
24
+
25
+ // Create an observable value
26
+ const count = o(0);
27
+
28
+ // Create a computed property
29
+ const doubled = S(() => count() * 2);
30
+
31
+ // Update the value
32
+ count(5);
33
+ console.log(doubled()); // Output: 10
34
+ ```
35
+
36
+ ### 🎨 Template Rendering
37
+
38
+ ```javascript
39
+ import { html, o } from 'subay';
40
+
41
+ const name = o('World');
42
+ const count = o(0);
43
+
44
+ document.body.append(
45
+ ...html`
46
+ <div>
47
+ <h1>Hello ${name}!</h1>
48
+ <p>Count: ${count}</p>
49
+ <button onclick="${() => count(count() + 1)}">Increment</button>
50
+ <button onclick="${() => name('Sen')}">Change Name</button>
51
+ </div>
52
+ `,
53
+ );
54
+ ```
55
+
56
+ ### πŸ“‹ List Rendering
57
+
58
+ ```javascript
59
+ import { html, o, map } from 'subay';
60
+
61
+ const items = o(['Apple', 'Banana', 'Cherry']);
62
+
63
+ document.body.append(
64
+ ...html`
65
+ <ul>
66
+ ${map(
67
+ () => items(),
68
+ (item) => html` <li>${item}</li> `,
69
+ )}
70
+ </ul>
71
+ <button onclick="${() => items([...items(), 'Date'])}">Add Item</button>
72
+ `,
73
+ );
74
+ ```
75
+
76
+ ## πŸ“š Core API
77
+
78
+ ### βš™οΈ State Management
79
+
80
+ - **`o(value)`**: Create an observable value
81
+ - **`S(fn, initialValue?)`**: Create a computed property
82
+ - **`root(fn)`**: Create a root context for reactive computations
83
+ - **`cleanup(fn)`**: Register a cleanup function
84
+ - **`transaction(fn)`**: Batch multiple updates
85
+ - **`sample(fn)`**: Run a function without tracking dependencies
86
+
87
+ ### πŸ–ΌοΈ Rendering
88
+
89
+ - **`html`**: Tagged template literal for HTML
90
+ - **`svg`**: Tagged template literal for SVG
91
+ - **`map(arrayFn, itemFn)`**: Render a list of items
92
+
93
+ ### πŸ› οΈ Utilities
94
+
95
+ - **`isObservable(value)`**: Check if a value is an observable
96
+ - **`isComputed(value)`**: Check if a value is a computed property
97
+ - **`isReactive(value)`**: Check if a value is reactive
98
+ - **`subscribe(fn)`**: Subscribe to changes
99
+ - **`unsubscribe(fn)`**: Unsubscribe from changes
100
+
101
+ ## πŸ“„ License
102
+
103
+ MIT License - see the [LICENSE](LICENSE) file for details.
package/lib/h.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare const map: <T>(array: () => T[], f: (item: T) => Node[]) => Node[];
2
+ export declare const svg: (segments: TemplateStringsArray, ...values: any[]) => Node[];
3
+ export declare const html: (segments: TemplateStringsArray, ...values: any[]) => Node[];
4
+ //# sourceMappingURL=h.d.ts.map
package/lib/h.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"h.d.ts","sourceRoot":"","sources":["../src/h.ts"],"names":[],"mappings":"AAgXA,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,KAAG,IAAI,EAmDrE,CAAC;AAoIF,eAAO,MAAM,GAAG,aAdD,oBAAoB,aAAa,GAAG,EAAE,KAAG,IAAI,EAmB3D,CAAC;AACF,eAAO,MAAM,IAAI,aApBF,oBAAoB,aAAa,GAAG,EAAE,KAAG,IAAI,EAyB3D,CAAC"}
package/lib/h.js ADDED
@@ -0,0 +1,450 @@
1
+ import { cleanup, isReactive, root, S, sample } from './s.js';
2
+ const cache = new Map();
3
+ const MarkStart = 's' + Math.random().toString(36).slice(2);
4
+ const MarkEnd = 'e' + Math.random().toString(36).slice(2);
5
+ const MarkReg = new RegExp(`([\\s\\S]*?)${MarkStart}(\\d+)${MarkEnd}([\\s\\S]*?)(?=${MarkStart}\\d+${MarkEnd}|$)`, 'g');
6
+ const BlankText = /\s*\n\s*/g;
7
+ const domParser = new DOMParser();
8
+ const parseText = (data) => {
9
+ const result = [];
10
+ data = data.replace(BlankText, '');
11
+ if (data.includes(MarkStart) && data.includes(MarkEnd)) {
12
+ for (const res of data.matchAll(MarkReg)) {
13
+ const [, prefix, index, suffix] = res;
14
+ if (prefix) {
15
+ result.push(prefix);
16
+ }
17
+ if (index) {
18
+ result.push(Number(index));
19
+ }
20
+ if (suffix) {
21
+ result.push(suffix);
22
+ }
23
+ }
24
+ }
25
+ else if (data) {
26
+ result.push(data);
27
+ }
28
+ return result;
29
+ };
30
+ const unparseText = (data, values) => {
31
+ if (data.length === 1) {
32
+ if (typeof data[0] === 'number') {
33
+ return values[data[0]];
34
+ }
35
+ return data[0];
36
+ }
37
+ return S(() => {
38
+ return data
39
+ .map((it) => {
40
+ if (typeof it === 'number') {
41
+ const value = values[it];
42
+ if (typeof value === 'function') {
43
+ return value();
44
+ }
45
+ return value;
46
+ }
47
+ return it;
48
+ })
49
+ .join('');
50
+ });
51
+ };
52
+ const parse = (docType, wrapSource, unwrapNode, segments, indexMap) => {
53
+ if (cache.has(segments)) {
54
+ return cache.get(segments);
55
+ }
56
+ const htmlStr = segments
57
+ .flatMap((segment, index, { length }) => {
58
+ if (index === length - 1) {
59
+ return [segment];
60
+ }
61
+ return [segment, MarkStart, indexMap[index], MarkEnd];
62
+ })
63
+ .join('');
64
+ const wrappedHtmlStr = wrapSource(htmlStr);
65
+ const document = domParser.parseFromString(wrappedHtmlStr, docType);
66
+ const dom2treenode = (domNodeList) => {
67
+ const nodeList = [];
68
+ for (let item = domNodeList.item(0), nextSibling = item?.nextSibling, index = 0; item != null; item = nextSibling, nextSibling = nextSibling?.nextSibling, index++) {
69
+ do
70
+ remove_and_dec_index: {
71
+ if (item.nodeType === Node.ELEMENT_NODE) {
72
+ const el = item;
73
+ const tag = parseText(el.tagName.toLowerCase());
74
+ const isVariableElem = tag.length > 1 || typeof tag[0] === 'number';
75
+ nodeList.push({
76
+ ns: el.namespaceURI,
77
+ type: 2,
78
+ tag,
79
+ attrs: Array.from(el.attributes).flatMap((attr) => {
80
+ const name = parseText(attr.nodeName);
81
+ const value = parseText(attr.value);
82
+ const isVariableAttr = name.length > 1 ||
83
+ typeof name[0] === 'number' ||
84
+ value.length > 1 ||
85
+ typeof value[0] === 'number';
86
+ if (!isVariableElem && !isVariableAttr) {
87
+ return [];
88
+ }
89
+ else {
90
+ el.removeAttribute(attr.nodeName);
91
+ }
92
+ return [
93
+ {
94
+ type: 3,
95
+ name,
96
+ value,
97
+ },
98
+ ];
99
+ }),
100
+ content: el.childNodes.length > 0 ? dom2treenode(el.childNodes) : [],
101
+ sourceNode: isVariableElem ? null : el,
102
+ sourceIndex: index,
103
+ });
104
+ if (!isVariableElem) {
105
+ break remove_and_dec_index;
106
+ }
107
+ }
108
+ else if (item.nodeType === Node.TEXT_NODE) {
109
+ const data = item.data;
110
+ const result = parseText(data);
111
+ if (result.length > 0) {
112
+ nodeList.push({
113
+ type: 1,
114
+ data: result,
115
+ });
116
+ }
117
+ }
118
+ item.remove();
119
+ index--;
120
+ }
121
+ while (false);
122
+ }
123
+ return nodeList;
124
+ };
125
+ const rootList = unwrapNode(document);
126
+ const treeNode = dom2treenode(rootList);
127
+ cache.set(segments, treeNode);
128
+ return treeNode;
129
+ };
130
+ const element = (ns, sourceNode, tagName, child) => {
131
+ if (typeof tagName === 'function') {
132
+ return fragment(() => {
133
+ const realTagName = tagName();
134
+ if (typeof realTagName === 'string') {
135
+ return element(ns, null, realTagName, child);
136
+ }
137
+ return [];
138
+ });
139
+ }
140
+ if (typeof tagName !== 'string') {
141
+ return [];
142
+ }
143
+ const el = sourceNode || (ns ? document.createElementNS(ns, tagName) : document.createElement(tagName));
144
+ S(() => {
145
+ const subnodes = child(el);
146
+ if (subnodes.length === 0) {
147
+ return;
148
+ }
149
+ if (!el.firstChild) {
150
+ el.append(...subnodes);
151
+ }
152
+ else {
153
+ for (let left = el.firstElementChild, rightIndex = 0; rightIndex < subnodes.length; rightIndex++) {
154
+ const right = subnodes[rightIndex];
155
+ if (left === right) {
156
+ left = left.nextElementSibling;
157
+ }
158
+ else {
159
+ el.insertBefore(right, left);
160
+ }
161
+ }
162
+ }
163
+ });
164
+ cleanup(() => el.remove());
165
+ return [el];
166
+ };
167
+ const fragment = (child) => {
168
+ const firstNode = document.createComment('start-frag');
169
+ cleanup(() => firstNode.remove());
170
+ const tempArray = [firstNode];
171
+ S(() => {
172
+ const c = child(firstNode);
173
+ const carr = Array.isArray(c) ? c : [c];
174
+ const nodified = carr.map((c) => {
175
+ if (c instanceof Node) {
176
+ return c;
177
+ }
178
+ const node = document.createTextNode(c);
179
+ cleanup(() => node.remove());
180
+ return node;
181
+ });
182
+ if (firstNode.isConnected) {
183
+ firstNode.after(...nodified);
184
+ }
185
+ else {
186
+ tempArray.push(...nodified);
187
+ }
188
+ });
189
+ return tempArray;
190
+ };
191
+ function arrTrans(a, b, a2b, dela, keep) {
192
+ const aLen = a.length;
193
+ const bLen = b.length;
194
+ if (a === b || (aLen === 0 && bLen === 0)) {
195
+ return;
196
+ }
197
+ let start = 0;
198
+ const minLen = Math.min(aLen, bLen);
199
+ while (start < minLen && a[start] === b[start]) {
200
+ start++;
201
+ }
202
+ let end = 0;
203
+ while (end < minLen - start && a[aLen - 1 - end] === b[bLen - 1 - end]) {
204
+ end++;
205
+ }
206
+ const aMidLen = aLen - start - end;
207
+ const bMidLen = bLen - start - end;
208
+ if (aMidLen === 0 && bMidLen === 0) {
209
+ for (let i = 0; i < start; i++) {
210
+ keep(a[i]);
211
+ }
212
+ for (let i = 0; i < end; i++) {
213
+ keep(a[aLen - end + i]);
214
+ }
215
+ return;
216
+ }
217
+ const bIndexMap = new Map();
218
+ for (let i = 0; i < bMidLen; i++) {
219
+ bIndexMap.set(b[start + i], i);
220
+ }
221
+ const indices = [];
222
+ for (let i = 0; i < aMidLen; i++) {
223
+ const val = a[start + i];
224
+ const bIdx = bIndexMap.get(val);
225
+ if (bIdx !== undefined) {
226
+ indices.push(bIdx);
227
+ }
228
+ }
229
+ const tails = [];
230
+ const parents = new Array(indices.length).fill(-1);
231
+ const tailIndices = [];
232
+ for (let i = 0; i < indices.length; i++) {
233
+ const idx = indices[i];
234
+ let left = 0;
235
+ let right = tails.length;
236
+ while (left < right) {
237
+ const mid = (left + right) >> 1;
238
+ if (tails[mid] < idx) {
239
+ left = mid + 1;
240
+ }
241
+ else {
242
+ right = mid;
243
+ }
244
+ }
245
+ const pos = left;
246
+ if (pos === tails.length) {
247
+ tails.push(idx);
248
+ tailIndices.push(i);
249
+ }
250
+ else {
251
+ tails[pos] = idx;
252
+ tailIndices[pos] = i;
253
+ }
254
+ if (pos > 0) {
255
+ parents[i] = tailIndices[pos - 1];
256
+ }
257
+ }
258
+ const keepSet = new Set();
259
+ let curr = tailIndices.length > 0 ? tailIndices[tailIndices.length - 1] : -1;
260
+ while (curr !== -1) {
261
+ const bIdx = indices[curr];
262
+ keepSet.add(b[start + bIdx]);
263
+ curr = parents[curr];
264
+ }
265
+ for (let i = 0; i < start; i++) {
266
+ keep(a[i]);
267
+ }
268
+ for (let i = 0; i < aMidLen; i++) {
269
+ const val = a[start + i];
270
+ if (!keepSet.has(val)) {
271
+ dela(val);
272
+ }
273
+ }
274
+ for (let i = 0; i < bMidLen; i++) {
275
+ const val = b[start + i];
276
+ if (keepSet.has(val)) {
277
+ keep(val);
278
+ }
279
+ else {
280
+ a2b(val);
281
+ }
282
+ }
283
+ for (let i = 0; i < end; i++) {
284
+ keep(a[aLen - end + i]);
285
+ }
286
+ }
287
+ export const map = (array, f) => {
288
+ return fragment((headNode) => {
289
+ cleanup(() => {
290
+ mapState()._itemDestroyer.forEach((f) => f());
291
+ });
292
+ const createItem = (item) => {
293
+ return root((destroyItem) => {
294
+ const domNodes = f(item);
295
+ return [destroyItem, domNodes];
296
+ });
297
+ };
298
+ const mapState = S((preState = {
299
+ _arrayValue: [],
300
+ _domNodesOfItem: [],
301
+ _itemDestroyer: [],
302
+ }) => {
303
+ const currentArrayValue = array();
304
+ const preArrayValue = preState._arrayValue;
305
+ const newState = {
306
+ _arrayValue: currentArrayValue,
307
+ _domNodesOfItem: [],
308
+ _itemDestroyer: [],
309
+ };
310
+ arrTrans(preArrayValue, currentArrayValue, (newItem) => {
311
+ const [destroyer, domNodes] = createItem(newItem);
312
+ const preNode = newState._domNodesOfItem.at(-1)?.at(-1) ?? headNode;
313
+ preNode.after(...domNodes);
314
+ newState._domNodesOfItem.push(domNodes);
315
+ newState._itemDestroyer.push(destroyer);
316
+ }, (oldItem) => {
317
+ const i = preArrayValue.indexOf(oldItem);
318
+ preState._itemDestroyer[i]();
319
+ }, (oldItem) => {
320
+ const i = preArrayValue.indexOf(oldItem);
321
+ newState._domNodesOfItem.push(preState._domNodesOfItem[i]);
322
+ newState._itemDestroyer.push(preState._itemDestroyer[i]);
323
+ });
324
+ return newState;
325
+ });
326
+ return sample(() => mapState()._domNodesOfItem.flat());
327
+ });
328
+ };
329
+ const isPropertyOf = (domEl, traitName) => {
330
+ let descriptor;
331
+ do {
332
+ descriptor = Object.getOwnPropertyDescriptor(domEl, traitName);
333
+ domEl = Object.getPrototypeOf(domEl);
334
+ } while (domEl && !descriptor);
335
+ if (!descriptor) {
336
+ return false;
337
+ }
338
+ if (false === descriptor.writable) {
339
+ return false;
340
+ }
341
+ if (descriptor.get && !descriptor.set) {
342
+ return false;
343
+ }
344
+ return true;
345
+ };
346
+ const attribute = (node, key, val) => {
347
+ if (typeof key !== 'function' && !isReactive(val)) {
348
+ if (!node) {
349
+ return;
350
+ }
351
+ if (!(node instanceof Element)) {
352
+ return;
353
+ }
354
+ const isProp = isPropertyOf(node, key);
355
+ if (isProp) {
356
+ const preValue = node[key];
357
+ node[key] = val;
358
+ cleanup(() => {
359
+ node[key] = preValue;
360
+ });
361
+ }
362
+ else {
363
+ node.setAttribute(key, val);
364
+ cleanup(() => {
365
+ node.removeAttribute(key);
366
+ });
367
+ }
368
+ }
369
+ else {
370
+ S(() => {
371
+ attribute(node, typeof key === 'function' ? key() : key, isReactive(val) ? val() : val);
372
+ });
373
+ }
374
+ };
375
+ const spreadAttrs = (node, value) => {
376
+ S(() => {
377
+ const attrs = value();
378
+ for (const key in attrs) {
379
+ attribute(node, key, attrs[key]);
380
+ }
381
+ });
382
+ };
383
+ const tree2dom = (ns, node, values) => {
384
+ if (node.type === 1) {
385
+ return node.data.flatMap((part) => {
386
+ if (typeof part === 'string') {
387
+ const textNode = document.createTextNode(part);
388
+ cleanup(() => textNode.remove());
389
+ return textNode;
390
+ }
391
+ else if (typeof part === 'number') {
392
+ const value = values[part];
393
+ if (typeof value === 'function') {
394
+ return fragment(value);
395
+ }
396
+ else {
397
+ const textNode = document.createTextNode(String(value));
398
+ cleanup(() => textNode.remove());
399
+ return textNode;
400
+ }
401
+ }
402
+ return [];
403
+ });
404
+ }
405
+ else {
406
+ const { attrs, content, tag, sourceNode } = node;
407
+ const tagValue = unparseText(tag, values);
408
+ const currentNs = node.ns ?? ns;
409
+ return element(currentNs, sourceNode, tagValue, (node) => {
410
+ for (const { name, value } of attrs) {
411
+ if (name[0] === '...' && typeof name[1] === 'number') {
412
+ spreadAttrs(node, unparseText(name.slice(1), values));
413
+ }
414
+ else {
415
+ attribute(node, unparseText(name, values), unparseText(value, values));
416
+ }
417
+ }
418
+ return content.flatMap((t) => tree2dom(currentNs, t, values));
419
+ });
420
+ }
421
+ };
422
+ const cloneTreeNode = (treeNode, parentNode) => {
423
+ if (treeNode.type === 1) {
424
+ return treeNode;
425
+ }
426
+ else {
427
+ if (!treeNode.sourceNode) {
428
+ return treeNode;
429
+ }
430
+ const currentNode = parentNode ?
431
+ parentNode.childNodes.item(treeNode.sourceIndex)
432
+ : treeNode.sourceNode.cloneNode(true);
433
+ return {
434
+ ...treeNode,
435
+ sourceNode: currentNode,
436
+ content: treeNode.content.map((node) => cloneTreeNode(node, currentNode)),
437
+ };
438
+ }
439
+ };
440
+ const tag = (ns, docType, wrapSource, unwrapNode) => (segments, ...values) => {
441
+ const tree = parse(docType, wrapSource, unwrapNode, segments, values.map((it) => values.indexOf(it)));
442
+ const clonedTree = tree.map((tree) => cloneTreeNode(tree, null));
443
+ return fragment(() => {
444
+ return clonedTree.flatMap((item) => tree2dom(ns, item, values));
445
+ });
446
+ };
447
+ const svgns = 'http://www.w3.org/2000/svg';
448
+ export const svg = tag(svgns, 'text/xml', (svg) => `<svg xmlns="${svgns}">${svg}</svg>`, (doc) => doc.firstChild.childNodes);
449
+ export const html = tag(null, 'text/html', (html) => html, (doc) => doc.body.childNodes);
450
+ //# sourceMappingURL=h.js.map
package/lib/h.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"h.js","sourceRoot":"","sources":["../src/h.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './s.js';
2
+ export * from './h.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './s.js';
2
+ export * from './h.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
package/lib/s.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ interface IS<T> {
2
+ (): T;
3
+ }
4
+ interface IO<T> {
5
+ (): T;
6
+ (nextValue: T): T;
7
+ }
8
+ export declare const root: <T>(fn: (destroy: () => void) => T) => T;
9
+ export declare const S: <T>(fn: (pv: T | undefined) => T, value?: T) => IS<T>;
10
+ export declare const o: <T>(value: T) => IO<T>;
11
+ export declare const cleanup: <T extends () => void>(f: T) => T;
12
+ export declare const transaction: <T>(f: () => T) => T;
13
+ export { o as observable };
14
+ export declare const sample: <T>(f: () => T) => T;
15
+ export declare const isListening: () => boolean;
16
+ export declare const subscribe: (f: () => void) => () => void;
17
+ export declare const unsubscribe: (f: () => void) => void;
18
+ export declare const isObservable: (o: any) => o is IO<any>;
19
+ export declare const isComputed: (o: any) => o is IS<any>;
20
+ export declare const isReactive: (o: any) => o is IO<any> | IS<any>;
21
+ //# sourceMappingURL=s.d.ts.map
package/lib/s.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s.d.ts","sourceRoot":"","sources":["../src/s.ts"],"names":[],"mappings":"AAoBA,UAAU,EAAE,CAAC,CAAC;IACV,IAAI,CAAC,CAAC;CACT;AAED,UAAU,EAAE,CAAC,CAAC;IACV,IAAI,CAAC,CAAC;IACN,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;CACrB;AAYD,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,KAAG,CAYxD,CAAC;AACF,eAAO,MAAM,CAAC,GAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAG,EAAE,CAAC,CAAC,CA2BlE,CAAC;AACF,eAAO,MAAM,CAAC,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,EAAE,CAAC,CAAC,CA0DnC,CAAC;AAcF,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,IAAI,EAAE,GAAG,CAAC,KAAG,CAKpD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAG,CAgB3C,CAAC;AAEF,OAAO,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;AAE3B,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAG,CAMtC,CAAC;AAEF,eAAO,MAAM,WAAW,eAAwB,CAAC;AAEjD,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,IAAI,eAGtC,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,IAAI,SAKxC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAA4B,CAAC;AAC9E,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAA6B,CAAC;AAC7E,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAA0B,CAAC"}
package/lib/s.js ADDED
@@ -0,0 +1,217 @@
1
+ let currentUpdate = undefined;
2
+ const NoValue = Symbol();
3
+ let triggerQueue = undefined;
4
+ const fun2s = new WeakMap();
5
+ class Reactive {
6
+ }
7
+ class Observable extends Reactive {
8
+ }
9
+ class Computation extends Reactive {
10
+ }
11
+ const cProto = new Computation();
12
+ const oProto = new Observable();
13
+ export const root = (fn) => {
14
+ const backup = currentUpdate;
15
+ const rootUpdate = (() => { });
16
+ resetUpdate(rootUpdate);
17
+ rootUpdate._dirty = false;
18
+ currentUpdate = rootUpdate;
19
+ const result = fn(() => {
20
+ recycleUpdate(rootUpdate);
21
+ currentUpdate = undefined;
22
+ });
23
+ currentUpdate = backup;
24
+ return result;
25
+ };
26
+ export const S = (fn, value) => {
27
+ const data = () => {
28
+ if (update._dirty) {
29
+ update();
30
+ }
31
+ else if (currentUpdate) {
32
+ update._whoINeed.forEach((t) => t._data());
33
+ }
34
+ return value;
35
+ };
36
+ Object.setPrototypeOf(data, cProto);
37
+ const update = (() => {
38
+ const backup = currentUpdate;
39
+ recycleUpdate(update);
40
+ update._dirty = false;
41
+ currentUpdate = update;
42
+ value = fn(value);
43
+ currentUpdate = backup;
44
+ });
45
+ if (currentUpdate) {
46
+ currentUpdate._whoIOwn.push(update);
47
+ }
48
+ resetUpdate(update);
49
+ update();
50
+ fun2s.set(fn, update);
51
+ const namedData = namedFunc(data, fn.name);
52
+ update._displayName = namedData.name;
53
+ return namedData;
54
+ };
55
+ export const o = (value) => {
56
+ function data(nextValue) {
57
+ if (arguments.length === 0) {
58
+ if (currentUpdate) {
59
+ if (!currentUpdate._whoINeed.includes(trigger)) {
60
+ currentUpdate._whoINeed.push(trigger);
61
+ }
62
+ if (!trigger._whoNeedMe.includes(currentUpdate)) {
63
+ trigger._whoNeedMe.push(currentUpdate);
64
+ }
65
+ }
66
+ return value;
67
+ }
68
+ if (triggerQueue) {
69
+ if (trigger._pendingValue === NoValue) {
70
+ triggerQueue.push(trigger);
71
+ }
72
+ trigger._pendingValue = nextValue;
73
+ return nextValue;
74
+ }
75
+ value = nextValue;
76
+ const backup = currentUpdate;
77
+ currentUpdate = undefined;
78
+ const whoNeedMeLasttime = trigger._whoNeedMe.filter((it) => {
79
+ return it._whoINeed.includes(trigger);
80
+ });
81
+ whoNeedMeLasttime.forEach((u) => {
82
+ u._dirty = true;
83
+ });
84
+ trigger._whoNeedMe = [];
85
+ whoNeedMeLasttime.forEach((u) => {
86
+ if (u._dirty) {
87
+ u();
88
+ }
89
+ });
90
+ currentUpdate = backup;
91
+ return value;
92
+ }
93
+ Object.setPrototypeOf(data, oProto);
94
+ const namedData = namedFunc(data);
95
+ const trigger = {
96
+ _whoNeedMe: [],
97
+ _data: data,
98
+ _pendingValue: NoValue,
99
+ _displayName: namedData.name,
100
+ };
101
+ return namedData;
102
+ };
103
+ const recycleUpdate = (update) => {
104
+ update._whoIOwn.forEach(recycleUpdate);
105
+ update._dirty = false;
106
+ update._onCleanupCallback.forEach((f) => f());
107
+ resetUpdate(update);
108
+ };
109
+ const resetUpdate = (update) => {
110
+ update._whoINeed = [];
111
+ update._whoIOwn = [];
112
+ update._onCleanupCallback = [];
113
+ };
114
+ export const cleanup = (f) => {
115
+ if (currentUpdate) {
116
+ currentUpdate._onCleanupCallback.push(f);
117
+ }
118
+ return f;
119
+ };
120
+ export const transaction = (f) => {
121
+ const fallback = triggerQueue;
122
+ triggerQueue = [];
123
+ const result = f();
124
+ const workedQueue = triggerQueue;
125
+ triggerQueue = fallback;
126
+ workedQueue.forEach((t) => {
127
+ if (t._pendingValue !== NoValue) {
128
+ const pv = t._pendingValue;
129
+ t._pendingValue = NoValue;
130
+ t._data(pv);
131
+ }
132
+ });
133
+ return result;
134
+ };
135
+ export { o as observable };
136
+ export const sample = (f) => {
137
+ const fallback = currentUpdate;
138
+ currentUpdate = undefined;
139
+ const value = f();
140
+ currentUpdate = fallback;
141
+ return value;
142
+ };
143
+ export const isListening = () => !!currentUpdate;
144
+ export const subscribe = (f) => {
145
+ S(f);
146
+ return () => unsubscribe(f);
147
+ };
148
+ export const unsubscribe = (f) => {
149
+ const update = fun2s.get(f);
150
+ if (update) {
151
+ recycleUpdate(update);
152
+ }
153
+ };
154
+ export const isObservable = (o) => o instanceof Observable;
155
+ export const isComputed = (o) => o instanceof Computation;
156
+ export const isReactive = (o) => o instanceof Reactive;
157
+ const url2src = new Map();
158
+ const getLeftName = function getLeftName() {
159
+ const stack = new Error().stack;
160
+ if (!stack) {
161
+ return null;
162
+ }
163
+ const urlRegex = /((?:\w+:\/\/)[-a-zA-Z0-9:@;?&=\/%\+\.\*!'\(\),\$_\{\}\^~\[\]`#|]+):(\d+):(\d+)/;
164
+ const lines = stack.split('\n');
165
+ const currentLineIndex = lines.findIndex((line) => {
166
+ return line.includes(import.meta.url) && line.includes(getLeftName.name);
167
+ });
168
+ if (currentLineIndex > -1) {
169
+ const offset = 3;
170
+ const line = lines[currentLineIndex + offset];
171
+ if (!line) {
172
+ return null;
173
+ }
174
+ const location = line.match(urlRegex);
175
+ if (!location) {
176
+ return null;
177
+ }
178
+ const url = location[1];
179
+ const lineNo = location[2];
180
+ const colNo = location[3];
181
+ if (!url || !lineNo || !colNo) {
182
+ return null;
183
+ }
184
+ let src;
185
+ if (url2src.has(url)) {
186
+ src = url2src.get(url);
187
+ }
188
+ else {
189
+ const xhr = new XMLHttpRequest();
190
+ xhr.open('GET', url, false);
191
+ xhr.send();
192
+ src = xhr.responseText;
193
+ url2src.set(url, src);
194
+ }
195
+ const reg = new RegExp(`(?:.*\n){${Number(lineNo) - 1}}.{${Number(colNo) - 1}}`);
196
+ const segment = src.match(reg);
197
+ if (!segment) {
198
+ return null;
199
+ }
200
+ return segment[0].match(/(\w+)\s*=\s*$/)?.[1];
201
+ }
202
+ return null;
203
+ };
204
+ const namedFunc = (f, fallback) => {
205
+ if (typeof __SEN_DEV__ === 'undefined') {
206
+ return f;
207
+ }
208
+ const leftName = getLeftName() ?? fallback;
209
+ if (!leftName) {
210
+ return f;
211
+ }
212
+ const g = new Function(`return function ${leftName} (...args) {return ${leftName}._(...args)}`)();
213
+ g._ = f;
214
+ Object.setPrototypeOf(g, Object.getPrototypeOf(f));
215
+ return g;
216
+ };
217
+ //# sourceMappingURL=s.js.map
package/lib/s.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s.js","sourceRoot":"","sources":["../src/s.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "subay",
3
+ "version": "0.0.3",
4
+ "description": "A lightweight reactive UI library with state management and template rendering",
5
+ "keywords": [
6
+ "reactive",
7
+ "ui",
8
+ "state management",
9
+ "template",
10
+ "dom"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/j-sen/subay.git"
15
+ },
16
+ "homepage": "https://github.com/j-sen/subay",
17
+ "license": "MIT",
18
+ "author": "j-sen",
19
+ "type": "module",
20
+ "exports": {
21
+ ".": {
22
+ "import": "./lib/index.js",
23
+ "types": "./lib/index.d.ts"
24
+ }
25
+ },
26
+ "devDependencies": {
27
+ "typescript": "^5.9.3"
28
+ },
29
+ "scripts": {
30
+ "test": "echo \"Error: no test specified\" && exit 1",
31
+ "build": "tsc -b ./tsconfig.json"
32
+ }
33
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "resolveJsonModule": true,
8
+ "allowJs": true,
9
+ "checkJs": false,
10
+ "jsx": "preserve",
11
+ "strict": true,
12
+ "noUnusedLocals": true,
13
+ "noUnusedParameters": true,
14
+ "noFallthroughCasesInSwitch": true,
15
+ "noImplicitReturns": true,
16
+ "noUncheckedIndexedAccess": true,
17
+ "noImplicitOverride": true,
18
+ "noPropertyAccessFromIndexSignature": false,
19
+ "allowUnusedLabels": false,
20
+ "allowUnreachableCode": false,
21
+ "exactOptionalPropertyTypes": false,
22
+ "esModuleInterop": true,
23
+ "skipLibCheck": true,
24
+ "forceConsistentCasingInFileNames": true,
25
+ "isolatedModules": false,
26
+ "verbatimModuleSyntax": false,
27
+ "declaration": true,
28
+ "declarationMap": true,
29
+ "sourceMap": true,
30
+ "removeComments": true,
31
+ "preserveConstEnums": false,
32
+ "newLine": "lf",
33
+ "stripInternal": false,
34
+ "emitDecoratorMetadata": false,
35
+ "experimentalDecorators": false,
36
+ "useDefineForClassFields": true,
37
+ "baseUrl": ".",
38
+ "composite": true,
39
+ "rootDir": "./src",
40
+ "outDir": "./lib"
41
+ },
42
+ "include": ["./src/**/*.ts"]
43
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/s.ts","./src/h.ts","./src/index.ts"],"fileIdsList":[[60],[60,61]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"21ae777adbd5340f5a14b0f27dc44d7d2fa860a1d54958615e9711c7b2b7c342","signature":"e0c907b12a4bf1d2548e1cdf77cbc911a1ed6f47fbd98cf27a321adc824a8a36"},{"version":"fedee36e150307f7b3f93f210d62e3d964adbb74709d755ff1e516ae9238700f","signature":"59f5066ee5ada636a1b7d7ee07ada8f4b26a6cf5d0fea261ede77bd8c9f97770"},{"version":"39b529ef4cf25f9d6c2488dd81603483bead0236d7001cfa499614bd0b2e5af5","signature":"0f24571b7c41aae4d4165d39cd6191c45d98fc08ed6243286cf0b5df3e38d353"}],"root":[[60,62]],"options":{"allowJs":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":false,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"experimentalDecorators":false,"jsx":1,"module":99,"newLine":1,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./lib","preserveConstEnums":false,"removeComments":true,"rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":false,"target":9,"useDefineForClassFields":true,"verbatimModuleSyntax":false},"referencedMap":[[61,1],[62,2]],"latestChangedDtsFile":"./lib/index.d.ts","version":"5.9.3"}