cindel 1.0.3 → 1.0.5
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 +115 -22
- package/dist/client/file-loader.d.ts +26 -2
- package/dist/client/file-loader.d.ts.map +1 -1
- package/dist/client/hmr-client.d.ts +15 -1
- package/dist/client/hmr-client.d.ts.map +1 -1
- package/dist/client/stub.d.ts +2 -0
- package/dist/client/stub.d.ts.map +1 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.iife.js +195 -27
- package/dist/client.iife.js.map +4 -4
- package/dist/client.iife.min.js +1 -1
- package/dist/client.iife.min.js.map +4 -4
- package/dist/client.js +195 -27
- package/dist/client.js.map +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/cindel)
|
|
6
6
|
[](https://bundlephobia.com/package/cindel@latest)
|
|
7
7
|
[](LICENSE)
|
|
8
|
+
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
## Features
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
- No runtime dependencies, so it works in any modern browser
|
|
32
33
|
- Event system with `on`, `once`, and `off` for connect, disconnect, reload, add, remove, etc.
|
|
33
34
|
- IIFE build compatible with userscript managers (Tampermonkey, Greasemonkey) via `@require`
|
|
35
|
+
- Iframe injection via `postMessage` for Private Network Access restricted environments
|
|
34
36
|
|
|
35
37
|
---
|
|
36
38
|
|
|
@@ -387,25 +389,30 @@ process.on("SIGINT", () => server.stop().then(() => process.exit(0)));
|
|
|
387
389
|
- **`string`** treated as a full WebSocket URL
|
|
388
390
|
- **`object`** full config, see below
|
|
389
391
|
|
|
390
|
-
| Option | Type | Default
|
|
391
|
-
| ------------------- | ------------------------------------ |
|
|
392
|
-
| `port` | `number` |
|
|
393
|
-
| `host` | `string` | `'localhost'`
|
|
394
|
-
| `secure` | `boolean` | `false`
|
|
395
|
-
| `wsUrl` | `string` |
|
|
396
|
-
| `httpUrl` | `string` |
|
|
397
|
-
| `wsPath` | `string` | `'/hmr'`
|
|
398
|
-
| `autoReconnect` | `boolean` | `true`
|
|
399
|
-
| `reconnectDelay` | `number` | `2000`
|
|
400
|
-
| `maxReconnectDelay` | `number` | `30000`
|
|
401
|
-
| `skipOnReconnect` | `boolean` | `true`
|
|
402
|
-
| `skip` | `string[]` |
|
|
403
|
-
| `filterSkip` | `(file, allFiles) => boolean` |
|
|
404
|
-
| `cold` | `string[]` |
|
|
405
|
-
| `filterCold` | `(file) => boolean` |
|
|
406
|
-
| `getOverrideTarget` | `(file, allFiles) => string \| null` |
|
|
407
|
-
| `onFileLoaded` | `(file) => void` |
|
|
408
|
-
| `
|
|
392
|
+
| Option | Type | Default | Description |
|
|
393
|
+
| ------------------- | ------------------------------------ | ------------- | ----------------------------------------------------------------- |
|
|
394
|
+
| `port` | `number` | | Port number |
|
|
395
|
+
| `host` | `string` | `'localhost'` | Hostname |
|
|
396
|
+
| `secure` | `boolean` | `false` | Use `wss://` and `https://` |
|
|
397
|
+
| `wsUrl` | `string` | | Explicit WebSocket URL, overrides host/port |
|
|
398
|
+
| `httpUrl` | `string` | | Explicit HTTP base URL for file fetching |
|
|
399
|
+
| `wsPath` | `string` | `'/hmr'` | WebSocket path |
|
|
400
|
+
| `autoReconnect` | `boolean` | `true` | Reconnect on disconnect with exponential backoff |
|
|
401
|
+
| `reconnectDelay` | `number` | `2000` | Base reconnect delay in ms |
|
|
402
|
+
| `maxReconnectDelay` | `number` | `30000` | Maximum reconnect delay cap in ms |
|
|
403
|
+
| `skipOnReconnect` | `boolean` | `true` | Skip files already loaded in the page when the server reconnects |
|
|
404
|
+
| `skip` | `string[]` | | Glob patterns for files to never load |
|
|
405
|
+
| `filterSkip` | `(file, allFiles) => boolean` | | Custom skip logic, OR'd with `skip` |
|
|
406
|
+
| `cold` | `string[]` | | Glob patterns that emit a `cold` event instead of reloading |
|
|
407
|
+
| `filterCold` | `(file) => boolean` | | Custom cold logic, OR'd with `cold` |
|
|
408
|
+
| `getOverrideTarget` | `(file, allFiles) => string \| null` | | Map an override file to the original it replaces |
|
|
409
|
+
| `onFileLoaded` | `(file) => void` | | Called after each file is loaded or reloaded |
|
|
410
|
+
| `loadOrder` | `Stage[]` | | Extra stages prepended before the built-in sorting |
|
|
411
|
+
| `sortFiles` | `(files) => string[]` | | Fully replaces the default sort. When set, `loadOrder` is ignored |
|
|
412
|
+
| `iframe` | `boolean \| Object` | | Forward files to an iframe via `postMessage` |
|
|
413
|
+
| `iframe.target` | `Window \| HTMLIFrameElement` | | Target a specific same-origin iframe, skips auto-discovery |
|
|
414
|
+
| `iframe.origin` | `string` | `'*'` | Validates incoming handshake responses |
|
|
415
|
+
| `iframe.css` | `'iframe' \| 'parent' \| 'both'` | `'iframe'` | Where CSS files are loaded when `iframe` is set |
|
|
409
416
|
|
|
410
417
|
### Methods
|
|
411
418
|
|
|
@@ -470,7 +477,7 @@ client
|
|
|
470
477
|
|
|
471
478
|
### Skip and Cold Filters
|
|
472
479
|
|
|
473
|
-
`skip` prevents files from ever being loaded by the client. `cold` marks files that
|
|
480
|
+
`skip` prevents files from ever being loaded by the client. `cold` marks files that emit a `cold` event instead of being hot-reloaded, what happens next is up to your `cold` event handler. Both options accept glob patterns, a custom filter function, or both combined via OR logic. Client and server `cold` patterns are merged on connect.
|
|
474
481
|
|
|
475
482
|
> **Note:** Glob patterns are always relative to the project root, not the watched directory.
|
|
476
483
|
|
|
@@ -486,7 +493,7 @@ new HMRClient({
|
|
|
486
493
|
return allFiles.includes(file.replace(".override.js", ".js"));
|
|
487
494
|
},
|
|
488
495
|
|
|
489
|
-
// These files
|
|
496
|
+
// These files emit a cold event instead of being hot-reloaded
|
|
490
497
|
cold: ["**/*.cold.js", "src/bootstrap.js"],
|
|
491
498
|
|
|
492
499
|
// Custom cold logic
|
|
@@ -496,6 +503,92 @@ new HMRClient({
|
|
|
496
503
|
|
|
497
504
|
---
|
|
498
505
|
|
|
506
|
+
### Load Order
|
|
507
|
+
|
|
508
|
+
When the client receives the initial file list it sorts them before loading. The default order is:
|
|
509
|
+
|
|
510
|
+
1. CSS before JS: stylesheets load first so scripts never run against an unstyled page
|
|
511
|
+
2. Cold files first: files that require a full page reload are loaded before hot-swappable ones
|
|
512
|
+
3. Alphabetical: stable tiebreaker within each group
|
|
513
|
+
|
|
514
|
+
`loadOrder` lets you prepend extra stages to the pipeline without giving up the built-in sorting. Each stage is detected by how many arguments it takes:
|
|
515
|
+
|
|
516
|
+
- **One argument** `f => boolean` return `true` to load that file earlier, `false` to leave it in its normal position
|
|
517
|
+
- **Two arguments** `(a, b) => number` works exactly like a standard `Array.sort` callback
|
|
518
|
+
|
|
519
|
+
The first stage to return a non-zero result wins; the built-in stages always follow as a fallback.
|
|
520
|
+
|
|
521
|
+
```js
|
|
522
|
+
new HMRClient({
|
|
523
|
+
port: 1338,
|
|
524
|
+
|
|
525
|
+
loadOrder: [
|
|
526
|
+
// Load the bootstrap file before everything else
|
|
527
|
+
(f) => f === "src/bootstrap.js",
|
|
528
|
+
|
|
529
|
+
// Load files in the core/ directory before others
|
|
530
|
+
(f) => f.startsWith("core/"),
|
|
531
|
+
|
|
532
|
+
// Higher-level files first (fewer path segments)
|
|
533
|
+
(a, b) => a.split("/").length - b.split("/").length,
|
|
534
|
+
],
|
|
535
|
+
});
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
Each stage is tried in order. The first one that produces a difference between two files decides which loads first. If a stage sees no difference, the next one is tried. The built-in stages (CSS-first, cold-first, alphabetical) always follow as a final fallback.
|
|
539
|
+
|
|
540
|
+
When you need total control over the load order, pass `sortFiles` instead. It receives the full file list and must return a sorted copy. The built-in stages and any `loadOrder` are completely bypassed.
|
|
541
|
+
|
|
542
|
+
```js
|
|
543
|
+
new HMRClient({
|
|
544
|
+
port: 1338,
|
|
545
|
+
|
|
546
|
+
sortFiles: (files) => {
|
|
547
|
+
const order = ["src/reset.css", "src/theme.css", "src/bootstrap.js"];
|
|
548
|
+
return [
|
|
549
|
+
// Pinned files in explicit order
|
|
550
|
+
...order.filter((f) => files.includes(f)),
|
|
551
|
+
// Everything else, alphabetical
|
|
552
|
+
...files.filter((f) => !order.includes(f)).sort(),
|
|
553
|
+
];
|
|
554
|
+
},
|
|
555
|
+
});
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
### Iframe Injection
|
|
561
|
+
|
|
562
|
+
When your project runs inside an `<iframe>` on a third-party domain, the browser's Private Network Access policy blocks the iframe from reaching `localhost` directly. The `iframe` option works around this by fetching files in the parent page and forwarding them to the iframe via `postMessage`.
|
|
563
|
+
|
|
564
|
+
Call `stub()` once inside the iframe via a userscript or existing inline script:
|
|
565
|
+
|
|
566
|
+
```js
|
|
567
|
+
HMR.stub();
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
Then configure the client in the parent:
|
|
571
|
+
|
|
572
|
+
```js
|
|
573
|
+
new HMR.HMRClient({
|
|
574
|
+
port: 1338,
|
|
575
|
+
iframe: true,
|
|
576
|
+
});
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
The client listens for the stub's ready signal and attaches automatically. Reattachment is automatic if the iframe reloads or is replaced. In the rare case of multiple same-origin iframes all running stub, pass `iframe.target` to target a specific one, but reattachment is then your responsibility.
|
|
580
|
+
|
|
581
|
+
```js
|
|
582
|
+
iframe: {
|
|
583
|
+
target: document.querySelector('iframe#html5game'),
|
|
584
|
+
css: 'both', // 'iframe' (default) | 'parent' | 'both'
|
|
585
|
+
}
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
> `.mjs` files are forwarded as `<script type="module">` blocks, preserving ES module semantics. Bare specifiers and relative imports will not resolve, only self-contained modules are supported.
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
499
592
|
### Override Detection
|
|
500
593
|
|
|
501
594
|
Override detection lets you maintain a parallel directory of replacement files that shadow originals without modifying them. When an override changes, the client unloads the original before loading the override.
|
|
@@ -536,7 +629,7 @@ new HMRClient({
|
|
|
536
629
|
| Import path | Environment | Description |
|
|
537
630
|
| ------------------------------------- | ----------- | -------------------- |
|
|
538
631
|
| `cindel` or `cindel/server` | Node / Bun | `HMRServer` |
|
|
539
|
-
| `cindel/client` | Browser ESM | `HMRClient`
|
|
632
|
+
| `cindel/client` | Browser ESM | `HMRClient`, `stub` |
|
|
540
633
|
| `https://cdn.jsdelivr.net/npm/cindel` | Browser CDN | Exposes `window.HMR` |
|
|
541
634
|
|
|
542
635
|
---
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
/** Handles loading and hot reloading of JavaScript and CSS files via blob URLs. */
|
|
2
2
|
export class FileLoader {
|
|
3
|
-
constructor(httpUrl: any
|
|
3
|
+
constructor(httpUrl: any, { iframeTarget, iframeOrigin, css }?: {
|
|
4
|
+
iframeTarget?: any;
|
|
5
|
+
iframeOrigin?: string;
|
|
6
|
+
css?: string;
|
|
7
|
+
});
|
|
4
8
|
httpUrl: any;
|
|
9
|
+
/**
|
|
10
|
+
* When set, JS and module files are fetched in the parent context and forwarded
|
|
11
|
+
* to this window via postMessage instead of being injected as DOM elements.
|
|
12
|
+
* CSS routing is controlled separately by the `css` option.
|
|
13
|
+
* @type {Window | null}
|
|
14
|
+
*/
|
|
15
|
+
iframeTarget: Window | null;
|
|
16
|
+
/** @type {string} */
|
|
17
|
+
iframeOrigin: string;
|
|
18
|
+
/**
|
|
19
|
+
* Controls where CSS files go when `iframeTarget` is set.
|
|
20
|
+
* - `'iframe'` -> forward only, skip parent injection (default)
|
|
21
|
+
* - `'parent'` -> load normally in parent, do not forward
|
|
22
|
+
* - `'both'` -> load in parent via `<link>` and forward to iframe
|
|
23
|
+
* @type {'iframe' | 'parent' | 'both'}
|
|
24
|
+
*/
|
|
25
|
+
css: "iframe" | "parent" | "both";
|
|
5
26
|
/**
|
|
6
27
|
* Debounce state per file. Stores { timeout, resolvers[] } so that
|
|
7
28
|
* when a rapid second change clears the first timeout, the first
|
|
@@ -20,12 +41,15 @@ export class FileLoader {
|
|
|
20
41
|
*/
|
|
21
42
|
versions: Map<string, number>;
|
|
22
43
|
loadFile(path: any): Promise<any>;
|
|
23
|
-
loadCSS(path: any): Promise<
|
|
44
|
+
loadCSS(path: any): Promise<boolean>;
|
|
45
|
+
_loadCSSInParent(path: any, url: any): Promise<any>;
|
|
24
46
|
loadModule(path: any): Promise<boolean>;
|
|
25
47
|
loadScript(path: any): Promise<any>;
|
|
26
48
|
reloadFile(path: any): Promise<any>;
|
|
27
49
|
_flushReload(path: any): Promise<void>;
|
|
28
50
|
removeFile(path: any): Promise<void>;
|
|
29
51
|
makeUrl(path: any): string;
|
|
52
|
+
_post(message: any): void;
|
|
53
|
+
_inject(kind: any, code: any, file: any): void;
|
|
30
54
|
}
|
|
31
55
|
//# sourceMappingURL=file-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-loader.d.ts","sourceRoot":"","sources":["../../src/client/file-loader.js"],"names":[],"mappings":"AAAA,mFAAmF;AACnF;IACE
|
|
1
|
+
{"version":3,"file":"file-loader.d.ts","sourceRoot":"","sources":["../../src/client/file-loader.js"],"names":[],"mappings":"AAAA,mFAAmF;AACnF;IACE;;;;OAiCC;IAhCC,aAAsB;IACtB;;;;;OAKG;IACH,cAFU,MAAM,GAAG,IAAI,CAES;IAChC,qBAAqB;IACrB,cADW,MAAM,CACe;IAChC;;;;;;OAMG;IACH,KAFU,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAExB;IACd;;;;;OAKG;IACH,WAFU,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,UAAU,CAAA;KAAE,CAAC,CAEvC;IAC1B;;;;;OAKG;IACH,UAFU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEJ;IAG3B,kCAOC;IAKD,qCAwBC;IAED,oDAmBC;IAED,wCAcC;IAED,oCAwBC;IAKD,oCAeC;IAED,uCAUC;IAED,qCAsBC;IAGD,2BAIC;IAGD,0BAEC;IAGD,+CAEC;CACF"}
|
|
@@ -46,7 +46,12 @@ export class HMRClient {
|
|
|
46
46
|
* @param {function(string): boolean} [options.filterCold] - Custom cold file logic. Receives `(filePath)`. Combined with `cold` via OR.
|
|
47
47
|
* @param {function(string, string[]): string|null} [options.getOverrideTarget] - Given a changed file, return the path of the original it replaces, or `null`. Receives `(filePath, allFiles)`. When matched, the original is unloaded before the override loads.
|
|
48
48
|
* @param {function(string): void} [options.onFileLoaded] - Called after each file loads or reloads. Receives `(filePath)`.
|
|
49
|
-
* @param {function(string[]): string[]} [options.sortFiles] - Custom sort for the initial file load order.
|
|
49
|
+
* @param {function(string[]): string[]} [options.sortFiles] - Custom sort for the initial file load order. When provided, replaces `defaultSortFiles` entirely and `loadOrder` is ignored.
|
|
50
|
+
* @param {Array<Function>} [options.loadOrder] - Stages prepended before the built-in sort (CSS-first, cold-first, alphabetical). One argument: return true to load that file first. Two arguments: works like a normal sort callback.
|
|
51
|
+
* @param {boolean | Object} [options.iframe] - Forward files to an iframe via `postMessage` (for Private Network Access restricted environments). Pass `true` for defaults.
|
|
52
|
+
* @param {Window | HTMLIFrameElement} [options.iframe.target] - Target a specific same-origin iframe directly, skipping auto-discovery. Reattachment is not automatic.
|
|
53
|
+
* @param {string} [options.iframe.origin] - The iframe's origin used to validate incoming handshake responses. Defaults to `'*'`.
|
|
54
|
+
* @param {'iframe'|'parent'|'both'} [options.iframe.css='iframe'] - Where CSS files are loaded when `iframe` is set.
|
|
50
55
|
*/
|
|
51
56
|
constructor(options: {
|
|
52
57
|
wsUrl?: string;
|
|
@@ -66,6 +71,8 @@ export class HMRClient {
|
|
|
66
71
|
getOverrideTarget?: (arg0: string, arg1: string[]) => string | null;
|
|
67
72
|
onFileLoaded?: (arg0: string) => void;
|
|
68
73
|
sortFiles?: (arg0: string[]) => string[];
|
|
74
|
+
loadOrder?: Array<Function>;
|
|
75
|
+
iframe?: boolean | any;
|
|
69
76
|
});
|
|
70
77
|
wsUrl: any;
|
|
71
78
|
httpUrl: any;
|
|
@@ -82,6 +89,7 @@ export class HMRClient {
|
|
|
82
89
|
allFiles: any[];
|
|
83
90
|
getOverrideTarget: (arg0: string, arg1: string[]) => string | null;
|
|
84
91
|
onFileLoaded: (arg0: string) => void;
|
|
92
|
+
loadOrder: Function[];
|
|
85
93
|
sortFiles: any;
|
|
86
94
|
socket: WebSocket;
|
|
87
95
|
reconnectAttempts: number;
|
|
@@ -90,6 +98,10 @@ export class HMRClient {
|
|
|
90
98
|
_reconnectTimer: NodeJS.Timeout;
|
|
91
99
|
_messageQueue: any[];
|
|
92
100
|
_processingMessages: boolean;
|
|
101
|
+
_iframeTarget: any;
|
|
102
|
+
_iframeOrigin: any;
|
|
103
|
+
_stubManaged: boolean;
|
|
104
|
+
_onReattach: (e: any) => Promise<void>;
|
|
93
105
|
fileLoader: FileLoader;
|
|
94
106
|
/** @type {Map<string, string>} - Maps override file -> original file */
|
|
95
107
|
overrideMap: Map<string, string>;
|
|
@@ -174,6 +186,8 @@ export class HMRClient {
|
|
|
174
186
|
emit(event: any, ...args: any[]): void;
|
|
175
187
|
_enqueueMessage(data: any): void;
|
|
176
188
|
_drainMessageQueue(): Promise<void>;
|
|
189
|
+
_waitForStub(): Promise<any>;
|
|
190
|
+
_listenForReattach(): void;
|
|
177
191
|
/**
|
|
178
192
|
* Connect to the HMR server
|
|
179
193
|
* @returns {Promise<void>}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr-client.d.ts","sourceRoot":"","sources":["../../src/client/hmr-client.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACE
|
|
1
|
+
{"version":3,"file":"hmr-client.d.ts","sourceRoot":"","sources":["../../src/client/hmr-client.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,qBAvBG;QAAyB,KAAK,GAAtB,MAAM;QACW,OAAO,GAAxB,MAAM;QACY,UAAU,GAA5B,OAAO;QACU,IAAI,GAArB,MAAM;QACW,IAAI,GAArB,MAAM;QACY,MAAM,GAAxB,OAAO;QACW,aAAa,GAA/B,OAAO;QACU,cAAc,GAA/B,MAAM;QACW,iBAAiB,GAAlC,MAAM;QACY,eAAe,GAAjC,OAAO;QACY,IAAI,GAAvB,MAAM,EAAE;QACsC,UAAU,GAAxD,CAAS,IAAM,EAAN,MAAM,EAAE,IAAQ,EAAR,MAAM,EAAE,KAAG,OAAO;QAChB,IAAI,GAAvB,MAAM,EAAE;QAC4B,UAAU,GAA9C,CAAS,IAAM,EAAN,MAAM,KAAG,OAAO;QACyB,iBAAiB,GAAnE,CAAS,IAAM,EAAN,MAAM,EAAE,IAAQ,EAAR,MAAM,EAAE,KAAG,MAAM,GAAC,IAAI;QACN,YAAY,GAA7C,CAAS,IAAM,EAAN,MAAM,KAAG,IAAI;QACiB,SAAS,GAAhD,CAAS,IAAQ,EAAR,MAAM,EAAE,KAAG,MAAM,EAAE;QACF,SAAS,GAAnC,KAAK,UAAU;QACY,MAAM,GAAjC,OAAO,MAAS;KACxB,EAwFF;IA9EC,WAAkB;IAClB,aAAsB;IACtB,oBAAsB;IAEtB,+BAAyD;IACzD,uBAA+C;IAC/C,uBAAiD;IACjD,0BAAwD;IACxD,yBAAqD;IAGrD,wBAAsC;IACtC,oBA5BkB,MAAM,KAAG,OAAO,CA4BQ;IAG1C,oBAAiF;IACjF,gBAAuE;IAGvE,gBAAkB;IAElB,0BApCkB,MAAM,QAAE,MAAM,EAAE,KAAG,MAAM,GAAC,IAAI,CAoCO;IACvD,qBApCkB,MAAM,KAAG,IAAI,CAoCc;IAC7C,sBAAqC;IACrC,eAAmE;IAEnE,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAwB;IACxB,6BAA8B;IAC9B,gCAA2B;IAI3B,qBAAuB;IACvB,6BAAgC;IAShC,mBAAiC;IACjC,mBAAiC;IAIjC,sBAAiD;IAGjD,uCAAuB;IAEvB,uBAIE;IAEF,wEAAwE;IACxE,aADW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CACF;IAC5B,uFAAuF;IACvF,qBADW,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CACC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYC;IAGH,oCAkBC;IAED,8CAcC;IAED,mCAIC;IAED,sEAoDC;IAED,kCA0BC;IAED,4CAgDC;IAED,8EAkEC;IAED,2CA4CC;IAED,wCA6CC;IAED;;;;;OAKG;IACH,UAJW,MAAM,GAAC,QAAQ,GAAC,KAAK,GAAC,QAAQ,GAAC,MAAM,GAAC,SAAS,GAAC,YAAY,GAAC,OAAO,sBAElE,SAAS,CAQrB;IAED;;;;;OAKG;IACH,YAJW,MAAM,GAAC,QAAQ,GAAC,KAAK,GAAC,QAAQ,GAAC,MAAM,GAAC,SAAS,GAAC,YAAY,GAAC,OAAO,sBAElE,SAAS,CASrB;IAED;;;;;OAKG;IACH,WAJW,MAAM,GAAC,QAAQ,GAAC,KAAK,GAAC,QAAQ,GAAC,MAAM,GAAC,SAAS,GAAC,YAAY,GAAC,OAAO,sBAElE,SAAS,CAoBrB;IAED,uCAQC;IAMD,iCAGC;IAED,oCAWC;IAID,6BAsBC;IAKD,2BAoBC;IAED;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAwGzB;IAED;;OAEG;IACH,mBAgBC;CACF;2BA1uB0B,kBAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../src/client/stub.js"],"names":[],"mappings":"AAAA,6BAmCC"}
|
package/dist/client.d.ts
CHANGED