@vyredo/module-kit 0.0.0-stage → 0.1.0
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 +154 -2
- package/dist/bind.d.ts +26 -0
- package/dist/boundary.d.ts +9 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +2 -0
- package/dist/config.d.ts +10 -0
- package/dist/discover.d.ts +22 -0
- package/dist/follower.d.ts +21 -0
- package/dist/generate.d.ts +49 -0
- package/dist/graph.d.ts +22 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +1 -0
- package/dist/members.d.ts +10 -0
- package/dist/paths.d.ts +5 -0
- package/dist/runtime.d.ts +29 -0
- package/dist/runtime.js +1 -0
- package/dist/scan.d.ts +3 -0
- package/dist/supervisor.d.ts +146 -0
- package/dist/types.d.ts +207 -0
- package/dist/vite.d.ts +13 -0
- package/dist/vite.js +1 -0
- package/package.json +72 -4
package/README.md
CHANGED
|
@@ -1,3 +1,155 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @vyredo/module-kit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Point it at a folder, and every subfolder with a `manifest.ts` becomes an isolated module:
|
|
4
|
+
|
|
5
|
+
- **Manifests** declare each module's id and what it depends on.
|
|
6
|
+
- **Dependency checks** refuse unknown ids, self-references, an id in both lists and cycles, and keep core modules apart.
|
|
7
|
+
- **Isolation**: each module gets its own `tsconfig.json`. In it, the import alias resolves only the modules that module declared, and only their public paths, so the editor flags an undeclared dependency as you type.
|
|
8
|
+
- **Boundary check**: a CI-ready check of every import, with the same rules, for code the editor never opened.
|
|
9
|
+
- **Realms** (optional): split each module into `node/`, `browser/`, `worker/` or any names you choose, and code in one realm can't import another.
|
|
10
|
+
- **Typed clients over [`@vyredo/rpc-bus`](../rpc-bus)** (optional): call any module's public members from anywhere, with the class's own types.
|
|
11
|
+
- **Runtime host**: starts modules in dependency order and answers their calls on the bus.
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -D @vyredo/module-kit typescript-6@npm:typescript@^6.0.3
|
|
17
|
+
npm install @vyredo/rpc-bus # only for the rpc clients and the runtime host
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Layout
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
src/modules/ <- `root`
|
|
24
|
+
Session/
|
|
25
|
+
manifest.ts <- makes the folder a module
|
|
26
|
+
shared/types.ts <- public: other modules may import it
|
|
27
|
+
node/index.ts <- the node realm's class (realms on)
|
|
28
|
+
browser/index.ts <- the browser realm's class
|
|
29
|
+
node/services/... <- private to Session
|
|
30
|
+
Replay/
|
|
31
|
+
manifest.ts
|
|
32
|
+
index.ts <- the module's class (realms off)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The search stops at a folder with a `manifest.ts`, so a module's own subfolders are never modules. Folders named `node_modules`, `.generated`, `shared`, a realm, or listed in `ignore` are never searched.
|
|
36
|
+
|
|
37
|
+
## Manifest
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
// src/modules/Replay/manifest.ts
|
|
41
|
+
import { defineManifest } from "@vyredo/module-kit/runtime";
|
|
42
|
+
|
|
43
|
+
export default defineManifest({
|
|
44
|
+
id: "Replay", // unique; an identifier
|
|
45
|
+
version: "1.0.0",
|
|
46
|
+
requireModules: ["Session"], // starts after Session; may call it
|
|
47
|
+
optionalModules: ["Score"], // may call Score when it is there
|
|
48
|
+
// core: true, // available to every module without listing
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The kit reads the literal from the file and never runs it, so values must be literals. `defineManifest(...)`, `satisfies` and `as const` are all fine.
|
|
53
|
+
|
|
54
|
+
## The class: what a module exposes
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
// src/modules/Session/node/index.ts
|
|
58
|
+
import { createSession } from "./services/create";
|
|
59
|
+
|
|
60
|
+
export default class SessionNode {
|
|
61
|
+
public Create = createSession; // public: any module may call it
|
|
62
|
+
List = async () => []; // no modifier: public too
|
|
63
|
+
protected Sweep = async (p: { olderThanMs: number }) => 0; // only Session itself
|
|
64
|
+
private cache = new Map(); // never exposed
|
|
65
|
+
onStart = () => () => this.cache.clear(); // hook; returns a cleanup
|
|
66
|
+
onStop = () => {}; // hook
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Exposed members are methods, and properties initialised with a function or a reference to one. Members take one object parameter. Don't give it a `type` field: the bus uses `type` for the event name and overwrites it.
|
|
71
|
+
|
|
72
|
+
## Config: `module-kit.config.json`
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"root": "src/modules",
|
|
77
|
+
"realms": ["node", "browser"],
|
|
78
|
+
"alias": "@modules",
|
|
79
|
+
"publicPaths": ["manifest.ts", "shared/**"],
|
|
80
|
+
"tsconfigBase": "tsconfig.base.json",
|
|
81
|
+
"rpc": { "bus": { "from": "./src/bus", "name": "getBus" } }
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Only `root` is required. Paths are relative to the config file.
|
|
86
|
+
|
|
87
|
+
| Field | Default | Meaning |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `realms` | none | Realm folders. Without it, each module has one class in `index.ts`. |
|
|
90
|
+
| `alias` | `@modules` | The import prefix: `@modules/Session`. |
|
|
91
|
+
| `publicPaths` | `["manifest.ts", "shared/**"]` | What other modules may import. `.generated/**` is always public. |
|
|
92
|
+
| `tsconfigBase` | none | What each module's tsconfig extends. Its own `paths` are carried over. |
|
|
93
|
+
| `rpc` | none | Generate rpc-bus clients. `from` exports a function `name()` that returns the bus. |
|
|
94
|
+
| `ignore` | `[]` | More folder names never searched for modules. |
|
|
95
|
+
|
|
96
|
+
## Commands
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npx module-kit generate # scan, check, write .generated/ and each module's tsconfig.json
|
|
100
|
+
npx module-kit generate --check # write nothing; exit 1 if anything is stale (CI)
|
|
101
|
+
npx module-kit check # the boundary check only
|
|
102
|
+
npx module-kit scan [--json] # the modules in start order
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Calling another module
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
// src/modules/Replay/node/services/replay.ts
|
|
109
|
+
import { Session } from "@modules/Session"; // the client (rpc)
|
|
110
|
+
import type { SessionRow } from "@modules/Session/shared/types"; // a public path
|
|
111
|
+
|
|
112
|
+
export const replay = async (p: { id: string }): Promise<SessionRow> =>
|
|
113
|
+
Session.Node.Create({ id: p.id }); // typed from SessionNode.Create
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
A module calls its own protected members through `@modules/<Id>/protected` (`SessionProtected.Node.Sweep(...)`). This is how one realm reaches the other.
|
|
117
|
+
|
|
118
|
+
To make the alias resolve in the app's own build, extend `<root>/.generated/tsconfig.paths.json`, or feed `<root>/.generated/aliases.json` to your bundler.
|
|
119
|
+
|
|
120
|
+
## The rules `check` enforces
|
|
121
|
+
|
|
122
|
+
1. Another module is reached only through `@modules/<Id>`, either its client or one of its public paths. A relative path into another module's folder is refused.
|
|
123
|
+
2. A **value** import of another module needs it in `requireModules` or `optionalModules`. Type-only imports and core modules don't.
|
|
124
|
+
3. `@modules/<Id>/protected` is only for module `<Id>` itself.
|
|
125
|
+
4. With realms, a realm folder never imports a different realm, and `shared/` imports none.
|
|
126
|
+
5. `.generated/surface*` files are imported with `import type` only, because they load the realm class.
|
|
127
|
+
|
|
128
|
+
## Runtime host
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import { createEventBus } from "@vyredo/rpc-bus";
|
|
132
|
+
import { createModuleHost } from "@vyredo/module-kit/runtime";
|
|
133
|
+
import modules from "./modules/.generated/registry.node";
|
|
134
|
+
|
|
135
|
+
const host = createModuleHost({ modules, bus: createEventBus("main", { transports: [/* ... */] }) });
|
|
136
|
+
await host.startAll(); // in start order; a failing module is logged and the rest still start
|
|
137
|
+
await host.stop("Session"); // its dependents keep running
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Dependencies decide start order and nothing else. A module whose required module is down still starts, with a warning. Stopping a module never stops the modules that use it. Calls to a stopped module reject with `"<Id> is not running"` and log a warning. `host.status()` and `host.onChange()` report each module's state (`stopped`, `starting`, `running`, `failed`).
|
|
141
|
+
|
|
142
|
+
## What is generated
|
|
143
|
+
|
|
144
|
+
| File | What it is |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `<module>/.generated/surface.<realm>.ts` | The class's public members (`Pick`) and its protected ones (re-exposed through a subclass, so their types come from TypeScript itself) |
|
|
147
|
+
| `<module>/.generated/api.ts` | `<Id>Api` (what others see) and `<Id>ProtectedApi` |
|
|
148
|
+
| `<module>/.generated/client.ts`, `client.protected.ts` | The rpc-bus clients `<Id>` and `<Id>Protected` |
|
|
149
|
+
| `<module>/.generated/index.ts`, `protected.ts` | What `@modules/<Id>` and `@modules/<Id>/protected` resolve to |
|
|
150
|
+
| `<module>/tsconfig.json` | The module's isolated program |
|
|
151
|
+
| `<root>/.generated/modules.json` | The scan: modules, start order, members and events |
|
|
152
|
+
| `<root>/.generated/registry[.<realm>].ts` | The classes and manifest facts, for the host |
|
|
153
|
+
| `<root>/.generated/aliases.json`, `tsconfig.paths.json` | The alias table, for a bundler and for the app's tsconfig |
|
|
154
|
+
|
|
155
|
+
Generated files carry a header. Only files with that header are ever overwritten or removed, so a hand-written `tsconfig.json` in a module folder is reported, never replaced.
|
package/dist/bind.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Member } from "./types";
|
|
2
|
+
/** The part of `EventBus` the host needs. */
|
|
3
|
+
export interface HostBus {
|
|
4
|
+
on(channel: string, cb: (event: {
|
|
5
|
+
type: string;
|
|
6
|
+
}) => unknown, claims?: string[]): string;
|
|
7
|
+
off(channel: string, handlerId: string): void;
|
|
8
|
+
}
|
|
9
|
+
export interface HostLogger {
|
|
10
|
+
info(message: string, meta?: Record<string, unknown>): void;
|
|
11
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
12
|
+
error(message: string, meta?: Record<string, unknown>): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Bind a module instance's members on the bus: one handler on the module's
|
|
16
|
+
* channel claiming every member's event, calling the member with the request's
|
|
17
|
+
* params (the event without its `type`). For a host of your own; `createModuleHost`
|
|
18
|
+
* uses it. Returns the handler id and an unbind, or null for a class with no members.
|
|
19
|
+
*/
|
|
20
|
+
export declare function bindModule(bus: HostBus, entry: {
|
|
21
|
+
id: string;
|
|
22
|
+
members: readonly Member[];
|
|
23
|
+
}, instance: object): {
|
|
24
|
+
handlerId: string;
|
|
25
|
+
unbind: () => void;
|
|
26
|
+
} | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Issue, ModuleGraph, ResolvedConfig } from "./types";
|
|
2
|
+
export interface ImportRef {
|
|
3
|
+
spec: string;
|
|
4
|
+
typeOnly: boolean;
|
|
5
|
+
line: number;
|
|
6
|
+
}
|
|
7
|
+
/** Every module specifier a file names, and whether each is type-only. */
|
|
8
|
+
export declare function importsOf(file: string): ImportRef[];
|
|
9
|
+
export declare function checkBoundaries(graph: ModuleGraph, config: ResolvedConfig): Issue[];
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const _0x19204c=_0x5936;(function(_0x2fe60f,_0x4c39da){const _0x1882f=_0x5936,_0x551518=_0x2fe60f();while(!![]){try{const _0x4d77c=-parseInt(_0x1882f(0x1f0))/0x1*(parseInt(_0x1882f(0x1d6))/0x2)+parseInt(_0x1882f(0x250))/0x3+parseInt(_0x1882f(0x17f))/0x4*(-parseInt(_0x1882f(0x280))/0x5)+parseInt(_0x1882f(0x1fc))/0x6+-parseInt(_0x1882f(0x28c))/0x7*(parseInt(_0x1882f(0x2d6))/0x8)+parseInt(_0x1882f(0x235))/0x9*(-parseInt(_0x1882f(0x183))/0xa)+-parseInt(_0x1882f(0x2cc))/0xb*(-parseInt(_0x1882f(0x298))/0xc);if(_0x4d77c===_0x4c39da)break;else _0x551518['push'](_0x551518['shift']());}catch(_0x4c9ed7){_0x551518['push'](_0x551518['shift']());}}}(_0x37dd,0x62ab5));import{resolve as _0x4228e2}from'node:path';import{existsSync as _0x31aab7,readFileSync as _0x2e1c26}from'node:fs';import{dirname as _0x82f005,resolve as _0x398133}from'node:path';var de=_0x19204c(0x2a1),ce=/^[a-z][a-z0-9]*$/;function Ge(_0x20b8b3,_0x5bb17e){const _0x29ea31=_0x19204c;if(!_0x20b8b3[_0x29ea31(0x25a)])throw new Error(_0x29ea31(0x2c1));let _0x1d98d8=_0x20b8b3[_0x29ea31(0x22a)]&&_0x20b8b3[_0x29ea31(0x22a)][_0x29ea31(0x1fb)]>0x0?[..._0x20b8b3['realms']]:null;for(let _0x1c26be of _0x1d98d8??[])if(!ce[_0x29ea31(0x295)](_0x1c26be))throw new Error('module-kit:\x20realm\x20\x22'+_0x1c26be+_0x29ea31(0x1f4));if(_0x1d98d8&&new Set(_0x1d98d8)[_0x29ea31(0x1be)]!==_0x1d98d8[_0x29ea31(0x1fb)])throw new Error(_0x29ea31(0x200));let _0x455de7=(_0x20b8b3[_0x29ea31(0x290)]??_0x29ea31(0x241))[_0x29ea31(0x223)](/\/+$/,'');if(!_0x455de7)throw new Error(_0x29ea31(0x2c4));for(let [_0x59aa44,_0xac5af]of Object[_0x29ea31(0x2bf)](_0x20b8b3[_0x29ea31(0x1a7)]??{})){if(!ce[_0x29ea31(0x295)](_0x59aa44))throw new Error('module-kit:\x20view\x20\x22'+_0x59aa44+_0x29ea31(0x1f4));for(let _0x2b7595 of _0xac5af)if(!_0x1d98d8?.[_0x29ea31(0x282)](_0x2b7595))throw new Error(_0x29ea31(0x1e6)+_0x59aa44+_0x29ea31(0x266)+_0x2b7595+_0x29ea31(0x29b));}for(let _0x55b331 of _0x20b8b3[_0x29ea31(0x19f)]??[]){if(_0x55b331['view']&&!(_0x20b8b3[_0x29ea31(0x1a7)]??{})[_0x55b331[_0x29ea31(0x2d8)]])throw new Error(_0x29ea31(0x217)+_0x55b331[_0x29ea31(0x2a8)]+_0x29ea31(0x26b)+_0x55b331['view']+_0x29ea31(0x17e));if(_0x55b331[_0x29ea31(0x2b9)]==='write'&&!_0x55b331[_0x29ea31(0x296)])throw new Error(_0x29ea31(0x217)+_0x55b331[_0x29ea31(0x2a8)]+_0x29ea31(0x1a3));}for(let _0x5c85c3 of Object[_0x29ea31(0x27b)](_0x20b8b3[_0x29ea31(0x188)]??{}))if(!/^[A-Za-z0-9_-]+$/[_0x29ea31(0x295)](_0x5c85c3)||_0x5c85c3==='protected')throw new Error(_0x29ea31(0x29e)+_0x5c85c3+_0x29ea31(0x25f));return{'cwd':_0x5bb17e,'root':_0x398133(_0x5bb17e,_0x20b8b3[_0x29ea31(0x25a)]),'realms':_0x1d98d8,'alias':_0x455de7,'publicPaths':_0x20b8b3[_0x29ea31(0x19b)]?[..._0x20b8b3[_0x29ea31(0x19b)]]:[_0x29ea31(0x231),_0x29ea31(0x2b6)],'ignore':new Set([_0x29ea31(0x215),_0x29ea31(0x178),_0x29ea31(0x233),_0x29ea31(0x278),..._0x1d98d8??[],..._0x20b8b3['ignore']??[]]),'tsconfigBase':_0x20b8b3[_0x29ea31(0x258)]?_0x398133(_0x5bb17e,_0x20b8b3[_0x29ea31(0x258)]):null,'rpc':_0x20b8b3[_0x29ea31(0x27d)]??null,'manifestFields':{..._0x20b8b3[_0x29ea31(0x1b7)]??{}},'hooks':_0x20b8b3[_0x29ea31(0x203)]?[..._0x20b8b3[_0x29ea31(0x203)]]:[_0x29ea31(0x1b6),_0x29ea31(0x207)],'timeoutsField':_0x20b8b3[_0x29ea31(0x205)]??_0x29ea31(0x21e),'exports':{..._0x20b8b3['exports']??{}},'callUp':_0x20b8b3['callUp']??_0x29ea31(0x29a),'tsconfigPaths':[..._0x20b8b3[_0x29ea31(0x19f)]??[]],'plugins':(_0x20b8b3[_0x29ea31(0x237)]??[])[_0x29ea31(0x26f)](_0x55e3b1=>_0x398133(_0x5bb17e,_0x55e3b1)),'views':Object[_0x29ea31(0x228)](Object[_0x29ea31(0x2bf)](_0x20b8b3[_0x29ea31(0x1a7)]??{})['map'](([_0x109bdc,_0xd9d4ef])=>[_0x109bdc,[..._0xd9d4ef]])),'checkExclude':[..._0x20b8b3['checkExclude']??[]],'tsconfig':{'compilerOptions':{..._0x20b8b3['tsconfig']?.[_0x29ea31(0x272)]??{}},'exclude':[..._0x20b8b3[_0x29ea31(0x273)]?.[_0x29ea31(0x28b)]??[]]}};}function ue(_0x2d1888){const _0x46205f=_0x19204c;let _0x2b9038=_0x398133(_0x2d1888);if(!_0x31aab7(_0x2b9038))throw new Error(_0x46205f(0x27c)+_0x2b9038);let _0x3e87e3;try{_0x3e87e3=JSON[_0x46205f(0x229)](_0x2e1c26(_0x2b9038,_0x46205f(0x1af)));}catch(_0x2759ba){throw new Error(_0x46205f(0x18e)+_0x2b9038+_0x46205f(0x2b4)+_0x2759ba[_0x46205f(0x1d0)]);}return Ge(_0x3e87e3,_0x82f005(_0x2b9038));}var fe=_0x472ad4=>_0x472ad4[0x0][_0x19204c(0x25e)]()+_0x472ad4[_0x19204c(0x26a)](0x1);import{existsSync as _0x4884fd,readdirSync as _0x3fc4a4,readFileSync as _0x1e849b,statSync as _0x4fab40}from'node:fs';import{dirname as _0x508828,join as _0x2bb2ca,relative as _0x5d5627,resolve as _0x192d4c,sep as _0x566154}from'node:path';import _0x827672 from'typescript-6';import{relative as _0x3ff0de,sep as _0x1b6a17}from'node:path';var y=_0x21ffce=>_0x21ffce[_0x19204c(0x1ff)](_0x1b6a17)[_0x19204c(0x277)]('/');function Y(_0x203000,_0x499e07){const _0x324190=_0x19204c;let _0x30ac37=y(_0x3ff0de(_0x203000,_0x499e07))[_0x324190(0x223)](/\.tsx?$/,'');return _0x30ac37[_0x324190(0x1a8)]('./')||_0x30ac37[_0x324190(0x1a8)]('../')?_0x30ac37:'./'+_0x30ac37;}function W(_0x51bf8a,_0x1d8084){const _0x2f6a9f=_0x19204c;let _0x8ce092='';for(let _0x2974f2=0x0;_0x2974f2<_0x51bf8a[_0x2f6a9f(0x1fb)];_0x2974f2++){let _0x56c521=_0x51bf8a[_0x2974f2];if(_0x56c521==='*'&&_0x51bf8a[_0x2974f2+0x1]==='*'){let _0x5b8d8b=_0x51bf8a[_0x2974f2+0x2]==='/';_0x8ce092+=_0x5b8d8b?'(?:.*/)?':'.*',_0x2974f2+=_0x5b8d8b?0x2:0x1;}else _0x56c521==='*'?_0x8ce092+=_0x2f6a9f(0x197):_0x8ce092+=_0x56c521[_0x2f6a9f(0x223)](/[.+?^${}()|[\]\\]/g,'\x5c$&');}return _0x51bf8a[_0x2f6a9f(0x22e)](_0x2f6a9f(0x249))&&(_0x8ce092=_0x8ce092[_0x2f6a9f(0x26a)](0x0,-0x3)+_0x2f6a9f(0x2bb)),new RegExp('^'+_0x8ce092+'$')[_0x2f6a9f(0x295)](_0x1d8084);}var He=/\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/,Ze=new Set([_0x19204c(0x215),_0x19204c(0x178)]);function Xe(_0x3952b7){const _0x17ec88=_0x19204c;let _0x33eeec=_0x1e849b(_0x3952b7,_0x17ec88(0x1af)),_0x18f2de=_0x827672['createSourceFile'](_0x3952b7,_0x33eeec,_0x827672['ScriptTarget']['ES2022'],!0x0,/x$/['test'](_0x3952b7)?_0x827672[_0x17ec88(0x26c)][_0x17ec88(0x185)]:_0x827672['ScriptKind']['TS']),_0x4165ac=[],_0x5b8e00=_0x44ddf4=>_0x18f2de[_0x17ec88(0x28f)](_0x44ddf4[_0x17ec88(0x1cd)](_0x18f2de))['line']+0x1,_0x520eff=(_0x4b803c,_0x2e88c9,_0x11a419)=>{const _0x5ea242=_0x17ec88;_0x4b803c&&(_0x827672[_0x5ea242(0x1ab)](_0x4b803c)||_0x827672[_0x5ea242(0x194)](_0x4b803c))&&_0x4165ac[_0x5ea242(0x1d5)]({'spec':_0x4b803c[_0x5ea242(0x286)],'typeOnly':_0x2e88c9,'line':_0x5b8e00(_0x11a419)});},_0x7436e9=_0x392a78=>{const _0x3a4dff=_0x17ec88;if(_0x827672[_0x3a4dff(0x216)](_0x392a78)){let _0x5c51ad=_0x392a78['importClause'],_0x24d283=!!_0x5c51ad&&(_0x5c51ad['isTypeOnly']||!_0x5c51ad[_0x3a4dff(0x17b)]&&!!_0x5c51ad[_0x3a4dff(0x2a2)]&&_0x827672[_0x3a4dff(0x210)](_0x5c51ad[_0x3a4dff(0x2a2)])&&_0x5c51ad['namedBindings'][_0x3a4dff(0x2c9)][_0x3a4dff(0x1fb)]>0x0&&_0x5c51ad['namedBindings']['elements'][_0x3a4dff(0x1d1)](_0x5d769f=>_0x5d769f['isTypeOnly']));_0x520eff(_0x392a78['moduleSpecifier'],_0x24d283,_0x392a78);}else{if(_0x827672[_0x3a4dff(0x1da)](_0x392a78)&&_0x392a78[_0x3a4dff(0x25d)]){let _0x11ca6d=_0x392a78['isTypeOnly']||!!_0x392a78[_0x3a4dff(0x2b5)]&&_0x827672[_0x3a4dff(0x274)](_0x392a78[_0x3a4dff(0x2b5)])&&_0x392a78['exportClause'][_0x3a4dff(0x2c9)][_0x3a4dff(0x1fb)]>0x0&&_0x392a78[_0x3a4dff(0x2b5)][_0x3a4dff(0x2c9)]['every'](_0x3edbe7=>_0x3edbe7[_0x3a4dff(0x23b)]);_0x520eff(_0x392a78[_0x3a4dff(0x25d)],_0x11ca6d,_0x392a78);}else _0x827672[_0x3a4dff(0x2b1)](_0x392a78)&&_0x827672[_0x3a4dff(0x201)](_0x392a78[_0x3a4dff(0x275)])?_0x520eff(_0x392a78[_0x3a4dff(0x275)]['expression'],_0x392a78[_0x3a4dff(0x23b)],_0x392a78):_0x827672['isCallExpression'](_0x392a78)&&(_0x392a78[_0x3a4dff(0x1d2)][_0x3a4dff(0x242)]===_0x827672[_0x3a4dff(0x180)][_0x3a4dff(0x2b2)]||_0x827672[_0x3a4dff(0x23a)](_0x392a78[_0x3a4dff(0x1d2)])&&_0x392a78[_0x3a4dff(0x1d2)][_0x3a4dff(0x286)]==='require')?_0x520eff(_0x392a78[_0x3a4dff(0x1b9)][0x0],!0x1,_0x392a78):_0x827672[_0x3a4dff(0x236)](_0x392a78)&&_0x827672[_0x3a4dff(0x1c0)](_0x392a78['argument'])&&_0x520eff(_0x392a78[_0x3a4dff(0x1c6)][_0x3a4dff(0x2b0)],!0x0,_0x392a78);}_0x827672['forEachChild'](_0x392a78,_0x7436e9);};return _0x7436e9(_0x18f2de),_0x4165ac;}function me(_0x45441e,_0x3f96e4=[]){const _0x452c63=_0x19204c;for(let _0x2a0e32 of _0x3fc4a4(_0x45441e,{'withFileTypes':!0x0}))_0x2a0e32[_0x452c63(0x186)]()?Ze[_0x452c63(0x281)](_0x2a0e32[_0x452c63(0x17b)])||me(_0x2bb2ca(_0x45441e,_0x2a0e32['name']),_0x3f96e4):He[_0x452c63(0x295)](_0x2a0e32['name'])&&!_0x2a0e32[_0x452c63(0x17b)][_0x452c63(0x22e)]('.d.ts')&&_0x3f96e4[_0x452c63(0x1d5)](_0x2bb2ca(_0x45441e,_0x2a0e32[_0x452c63(0x17b)]));return _0x3f96e4;}function Ye(_0x3c36e6,_0x108506){const _0x2fdb21=_0x19204c;let _0x51e958=_0x192d4c(_0x508828(_0x3c36e6),_0x108506);return[_0x51e958,...[_0x2fdb21(0x2d1),'.tsx',_0x2fdb21(0x27e),_0x2fdb21(0x230)][_0x2fdb21(0x26f)](_0x1a05d8=>_0x51e958[_0x2fdb21(0x223)](/\.js$/,'')+_0x1a05d8),_0x2bb2ca(_0x51e958,_0x2fdb21(0x2ae)),_0x2bb2ca(_0x51e958,'index.tsx')][_0x2fdb21(0x25b)](_0x243dd0=>_0x4884fd(_0x243dd0)&&_0x4fab40(_0x243dd0)['isFile']())??_0x51e958;}function pe(_0x476d99,_0x26f80d){const _0x29d9fa=_0x19204c;let _0x2f2341=[],_0x10aaf8=new Map(_0x476d99['modules'][_0x29d9fa(0x26f)](_0x41428=>[_0x41428['id'],_0x41428])),_0x1ee3a0=_0x1f524e=>_0x2bb2ca(_0x26f80d['root'],_0x1f524e[_0x29d9fa(0x1bb)]),_0x36fc2f=[..._0x476d99[_0x29d9fa(0x25c)]][_0x29d9fa(0x264)]((_0x51e008,_0x7300a4)=>_0x7300a4[_0x29d9fa(0x1bb)][_0x29d9fa(0x1fb)]-_0x51e008[_0x29d9fa(0x1bb)][_0x29d9fa(0x1fb)]),_0x31da8=_0x2f84a9=>_0x36fc2f[_0x29d9fa(0x25b)](_0x31ec47=>_0x2f84a9===_0x1ee3a0(_0x31ec47)||_0x2f84a9[_0x29d9fa(0x1a8)](_0x1ee3a0(_0x31ec47)+_0x566154)),_0xe88842=new Set(_0x26f80d['realms']??[]),_0x9f088a=(_0x26629d,_0x4cdf83)=>{const _0xb0aee0=_0x29d9fa;let _0x5b59fa=y(_0x5d5627(_0x1ee3a0(_0x26629d),_0x4cdf83))[_0xb0aee0(0x1ff)]('/')[0x0];return _0xe88842['has'](_0x5b59fa)||_0x5b59fa===_0xb0aee0(0x233)?_0x5b59fa:null;},_0xd35e51=_0x1b6cb0=>_0x1b6cb0 in _0x26f80d['exports']||_0x1b6cb0['startsWith'](_0x29d9fa(0x23d))||_0x26f80d[_0x29d9fa(0x19b)]['some'](_0x3b05f8=>W(_0x3b05f8,_0x1b6cb0)||W(_0x3b05f8,_0x1b6cb0+_0x29d9fa(0x2d1))||W(_0x3b05f8,_0x1b6cb0+_0x29d9fa(0x1ce))),_0x327931=_0x40ee1e=>{let _0x123700=new Set(),_0x363fde=_0x1e1bd6=>{const _0x24d72b=_0x5936;for(let _0x48601e of _0x476d99[_0x24d72b(0x25c)])_0x123700[_0x24d72b(0x281)](_0x48601e['id'])||!(_0x48601e[_0x24d72b(0x253)][_0x24d72b(0x282)](_0x1e1bd6)||_0x48601e[_0x24d72b(0x1e1)][_0x24d72b(0x282)](_0x1e1bd6))||(_0x123700[_0x24d72b(0x2be)](_0x48601e['id']),_0x363fde(_0x48601e['id']));};return _0x363fde(_0x40ee1e),_0x123700;};for(let _0x35997a of _0x476d99[_0x29d9fa(0x25c)]){let _0x408deb=new Set([..._0x35997a[_0x29d9fa(0x253)],..._0x35997a[_0x29d9fa(0x1e1)]]),_0x3f92c=_0x26f80d[_0x29d9fa(0x1c3)]==='allow'?_0x327931(_0x35997a['id']):new Set();for(let _0x5d120c of me(_0x1ee3a0(_0x35997a))){let _0x1cc636=y(_0x5d5627(_0x26f80d['root'],_0x5d120c));if(_0x26f80d[_0x29d9fa(0x2e1)][_0x29d9fa(0x22c)](_0x47aefb=>W(_0x47aefb,_0x1cc636)))continue;let _0x84ebe2=y(_0x5d5627(_0x26f80d[_0x29d9fa(0x1a9)],_0x5d120c)),_0x1e6792=_0x9f088a(_0x35997a,_0x5d120c),_0x1c279d=(_0x1372f2,_0x171437)=>_0x2f2341[_0x29d9fa(0x1d5)]({'file':_0x84ebe2,'line':_0x1372f2,'message':_0x171437}),_0x1a3107=(_0x57ae50,_0x4b7866,_0x1bef00)=>{const _0x2713d5=_0x29d9fa;let _0x38da7a=_0x9f088a(_0x35997a,_0x1bef00);!_0x38da7a||_0x38da7a===_0x2713d5(0x233)||!_0x1e6792||_0x38da7a===_0x1e6792||_0x1c279d(_0x57ae50,_0x1e6792===_0x2713d5(0x233)?_0x2713d5(0x27f)+_0x38da7a+'\x20realm\x20('+_0x4b7866+_0x2713d5(0x18d):_0x1e6792+'\x20code\x20may\x20not\x20import\x20the\x20'+_0x38da7a+_0x2713d5(0x192)+_0x4b7866+')');};for(let _0x549f8e of Xe(_0x5d120c)){let {spec:_0x2c6916,typeOnly:_0x4c9f78,line:_0x25c4dc}=_0x549f8e;if(_0x2c6916===_0x26f80d[_0x29d9fa(0x290)]||_0x2c6916['startsWith'](_0x26f80d[_0x29d9fa(0x290)]+'/')){let [_0x3af1da='',..._0x52e5de]=_0x2c6916[_0x29d9fa(0x26a)](_0x26f80d[_0x29d9fa(0x290)]['length']+0x1)[_0x29d9fa(0x1ff)]('/'),_0x3dd920=_0x52e5de[_0x29d9fa(0x277)]('/'),_0x51552a=_0x10aaf8[_0x29d9fa(0x1bf)](_0x3af1da);if(!_0x51552a){_0x1c279d(_0x25c4dc,_0x2c6916+_0x29d9fa(0x1b3)+_0x3af1da+'\x22');continue;}if(_0x51552a['id']===_0x35997a['id']){_0x3dd920&&_0x3dd920!==_0x29d9fa(0x267)&&_0x1a3107(_0x25c4dc,_0x2c6916,_0x2bb2ca(_0x1ee3a0(_0x35997a),_0x3dd920));continue;}if(_0x3dd920==='protected'){_0x1c279d(_0x25c4dc,_0x2c6916+_0x29d9fa(0x199)+_0x35997a['id']+_0x29d9fa(0x1ad)+_0x51552a['id']+'\x27s');continue;}if(_0x3dd920&&!_0xd35e51(_0x3dd920)){_0x1c279d(_0x25c4dc,_0x2c6916+_0x29d9fa(0x246)+_0x51552a['id']+_0x29d9fa(0x2c0)+[_0x29d9fa(0x2c3),..._0x26f80d[_0x29d9fa(0x19b)],_0x29d9fa(0x18c)]['join'](',\x20')+')');continue;}/^\.generated\/surface/[_0x29d9fa(0x295)](_0x3dd920)&&!_0x4c9f78&&_0x1c279d(_0x25c4dc,_0x2c6916+':\x20import\x20a\x20surface\x20file\x20with\x20`import\x20type`\x20only;\x20it\x20loads\x20the\x20realm\x20class'),!_0x4c9f78&&!_0x51552a[_0x29d9fa(0x2d3)]&&!_0x408deb[_0x29d9fa(0x281)](_0x51552a['id'])&&!_0x3f92c['has'](_0x51552a['id'])&&_0x1c279d(_0x25c4dc,_0x35997a['id']+_0x29d9fa(0x255)+_0x51552a['id']+'\x20('+_0x2c6916+')\x20without\x20declaring\x20it:\x20add\x20\x22'+_0x51552a['id']+_0x29d9fa(0x212));continue;}if(!_0x2c6916[_0x29d9fa(0x1a8)]('.')&&!_0x2c6916[_0x29d9fa(0x1a8)]('/'))continue;let _0x5584f7=Ye(_0x5d120c,_0x2c6916),_0x95aa71=_0x31da8(_0x5584f7);if(_0x95aa71){if(_0x95aa71['id']!==_0x35997a['id']){let _0x518dd8=y(_0x5d5627(_0x1ee3a0(_0x95aa71),_0x5584f7))['replace'](/\.(tsx?|mts|js)$/,'')[_0x29d9fa(0x223)](/\/index$/,'');_0x1c279d(_0x25c4dc,_0x2c6916+'\x20reaches\x20into\x20'+_0x95aa71['id']+_0x29d9fa(0x1ef)+_0x26f80d[_0x29d9fa(0x290)]+'/'+_0x95aa71['id']+(_0xd35e51(_0x518dd8)&&_0x518dd8?'/'+_0x518dd8:''));continue;}/[\\/]\.generated[\\/]surface[^\\/]*$/[_0x29d9fa(0x295)](_0x5584f7['replace'](/\.ts$/,''))&&!_0x4c9f78&&_0x1c279d(_0x25c4dc,_0x2c6916+':\x20import\x20a\x20surface\x20file\x20with\x20`import\x20type`\x20only;\x20it\x20loads\x20the\x20realm\x20class'),_0x1a3107(_0x25c4dc,_0x2c6916,_0x5584f7);}}}}return _0x2f2341;}import{createRequire as _0xf9faf5}from'node:module';import{join as _0x287ac4}from'node:path';import{pathToFileURL as _0x59dc7b}from'node:url';import{existsSync as _0x21fbd9,mkdirSync as _0x5b4b39,readdirSync as _0x4038d3,readFileSync as _0xd02df5,rmSync as _0x2a6de7,writeFileSync as _0x455ecd}from'node:fs';import{dirname as _0x20ad06,join as _0x2eeb7e,relative as _0x70c76d,resolve as _0x423331}from'node:path';import _0x3101ff from'typescript-6';var M=_0x19204c(0x2d4),D=_0x19204c(0x19d),st={'suffix':'','realms':null},te=(_0x5b67cc,_0x4cc096)=>_0x4cc096[_0x19204c(0x22a)]?_0x5b67cc[_0x19204c(0x22a)][_0x19204c(0x240)](_0x511f79=>_0x511f79[_0x19204c(0x19a)]===null||_0x4cc096['realms'][_0x19204c(0x282)](_0x511f79[_0x19204c(0x19a)])):_0x5b67cc['realms'],$e=_0x4230fa=>_0x4230fa[_0x19204c(0x19a)]?'surface.'+_0x4230fa[_0x19204c(0x19a)]+_0x19204c(0x2d1):_0x19204c(0x2a3),v=(_0x3d7b1d,_0x2dd562,_0x485a6d)=>''+_0x3d7b1d['id']+(_0x2dd562['key']??'')+_0x485a6d,ye=_0x1f1cba=>_0x1f1cba['length']?_0x1f1cba[_0x19204c(0x26f)](_0x43565e=>JSON[_0x19204c(0x2aa)](_0x43565e))[_0x19204c(0x277)](_0x19204c(0x1a4)):'never';function it(_0x44e088,_0x1f89cf){const _0x324857=_0x19204c;let _0x420e6e=v(_0x44e088,_0x1f89cf,'Class'),_0x527f4c=_0x1f89cf['members'][_0x324857(0x240)](_0x328d7f=>_0x328d7f[_0x324857(0x1db)]===_0x324857(0x2d0))[_0x324857(0x26f)](_0x1bdb2f=>_0x1bdb2f[_0x324857(0x17b)]),_0x232093=_0x1f89cf[_0x324857(0x177)][_0x324857(0x240)](_0x233fd8=>_0x233fd8[_0x324857(0x1db)]==='protected')[_0x324857(0x26f)](_0x31151e=>_0x31151e[_0x324857(0x17b)]),_0x14b92b='../'+_0x1f89cf[_0x324857(0x2a8)][_0x324857(0x223)](/\.tsx?$/,''),_0x493cf5=[M,_0x324857(0x190)+_0x44e088['id']+_0x324857(0x23c)+(_0x1f89cf[_0x324857(0x19a)]??_0x324857(0x1e8))+_0x324857(0x209),_0x324857(0x1e2),_0x324857(0x1a6)+_0x420e6e+_0x324857(0x1dd)+JSON[_0x324857(0x2aa)](_0x14b92b)+';','','/**\x20What\x20every\x20module\x20may\x20call.\x20*/','export\x20type\x20'+v(_0x44e088,_0x1f89cf,_0x324857(0x226))+_0x324857(0x2db)+_0x420e6e+',\x20'+ye(_0x527f4c)+'>;'];return _0x232093[_0x324857(0x1fb)]===0x0?_0x493cf5[_0x324857(0x1d5)]('',_0x324857(0x1dc)+v(_0x44e088,_0x1f89cf,_0x324857(0x2e0))+_0x324857(0x1f7)):_0x493cf5[_0x324857(0x1d5)]('',_0x324857(0x2d7),_0x324857(0x283)+v(_0x44e088,_0x1f89cf,_0x324857(0x28a))+_0x324857(0x2c6)+_0x420e6e+'\x20{',..._0x232093[_0x324857(0x26f)](_0x433a55=>_0x324857(0x1ac)+JSON['stringify'](_0x324857(0x1f8)+_0x433a55)+_0x324857(0x21c)+JSON['stringify'](_0x433a55)+'];'),'}','',_0x324857(0x1e9)+_0x44e088['id']+_0x324857(0x288),_0x324857(0x1dc)+v(_0x44e088,_0x1f89cf,_0x324857(0x2e0))+_0x324857(0x2df),..._0x232093['map'](_0x239b61=>'\x20\x20'+JSON[_0x324857(0x2aa)](_0x239b61)+':\x20'+v(_0x44e088,_0x1f89cf,'Surface')+'['+JSON[_0x324857(0x2aa)](_0x324857(0x1f8)+_0x239b61)+'];'),'};'),_0x493cf5[_0x324857(0x277)]('\x0a')+'\x0a';}function nt(_0x3ad4f3,_0x495cb3){const _0x24b801=_0x19204c;let _0x4ef640={..._0x3ad4f3,'realms':te(_0x3ad4f3,_0x495cb3)},_0x4ea5de=_0x4ef640[_0x24b801(0x22a)][_0x24b801(0x26f)](_0x49d76f=>_0x24b801(0x1cc)+v(_0x4ef640,_0x49d76f,_0x24b801(0x226))+',\x20'+v(_0x4ef640,_0x49d76f,_0x24b801(0x2e0))+'\x20}\x20from\x20\x22./'+$e(_0x49d76f)[_0x24b801(0x223)](/\.ts$/,'')+'\x22;'),_0x350c32,_0x565e8d;if(_0x4ef640[_0x24b801(0x22a)]['length']===0x0)_0x350c32='{}',_0x565e8d='{}';else{if(_0x4ef640[_0x24b801(0x22a)][0x0]['key']===null){let _0x469b21=_0x4ef640[_0x24b801(0x22a)][0x0];_0x350c32=v(_0x4ef640,_0x469b21,_0x24b801(0x226)),_0x565e8d=v(_0x4ef640,_0x469b21,'Public')+_0x24b801(0x1a5)+v(_0x4ef640,_0x469b21,_0x24b801(0x2e0));}else _0x350c32='{\x0a'+_0x4ef640['realms'][_0x24b801(0x26f)](_0x2b52b4=>'\x20\x20'+_0x2b52b4[_0x24b801(0x251)]+':\x20'+v(_0x4ef640,_0x2b52b4,'Public')+';')[_0x24b801(0x277)]('\x0a')+'\x0a}',_0x565e8d='{\x0a'+_0x4ef640[_0x24b801(0x22a)]['map'](_0x433492=>'\x20\x20'+_0x433492[_0x24b801(0x251)]+':\x20'+v(_0x4ef640,_0x433492,_0x24b801(0x226))+_0x24b801(0x1a5)+v(_0x4ef640,_0x433492,_0x24b801(0x2e0))+';')[_0x24b801(0x277)]('\x0a')+'\x0a}';}return[M,..._0x4ea5de,'',_0x24b801(0x1cf)+_0x4ef640['id']+_0x24b801(0x1df)+(_0x4ef640['realms'][0x0]?.['key']?_0x24b801(0x29c):'')+'.\x20*/',_0x24b801(0x1dc)+_0x4ef640['id']+'Api\x20=\x20'+_0x350c32+';','','/**\x20'+_0x4ef640['id']+_0x24b801(0x2cf),_0x24b801(0x1dc)+_0x4ef640['id']+'ProtectedApi\x20=\x20'+_0x565e8d+';',''][_0x24b801(0x277)]('\x0a');}function rt(_0x410afd,_0x5eaf82,_0x4d5286){const _0x3eb27d=_0x19204c;return te(_0x410afd,_0x4d5286)[_0x3eb27d(0x1f2)](_0x405579=>_0x405579[_0x3eb27d(0x177)][_0x3eb27d(0x240)](_0x1a9f6d=>_0x5eaf82(_0x1a9f6d['visibility']))[_0x3eb27d(0x26f)](_0x22d7e6=>[_0x405579['key']?_0x405579[_0x3eb27d(0x251)]+'.'+_0x22d7e6[_0x3eb27d(0x17b)]:_0x22d7e6[_0x3eb27d(0x17b)],_0x22d7e6['event']]));}function he(_0xf6ed6d,_0x3bc620,_0x4e9d60,_0x5e1667,_0x301a4b){const _0x28181f=_0x19204c;let _0x4b662e=_0x4e9d60[_0x28181f(0x27d)][_0x28181f(0x227)],_0x183376=_0x4b662e[_0x28181f(0x265)][_0x28181f(0x1a8)]('.')?Y(_0x3bc620,_0x423331(_0x4e9d60[_0x28181f(0x1a9)],_0x4b662e['from'])):_0x4b662e[_0x28181f(0x265)],_0xb1583d=rt(_0xf6ed6d,_0x53864b=>_0x5e1667===_0x28181f(0x267)||_0x53864b===_0x28181f(0x2d0),_0x301a4b),_0x31f32b=te(_0xf6ed6d,_0x301a4b)[_0x28181f(0x1f2)](_0x43d318=>_0x43d318[_0x28181f(0x177)][_0x28181f(0x240)](_0x27a1c9=>_0x27a1c9[_0x28181f(0x247)]!==void 0x0&&(_0x5e1667===_0x28181f(0x267)||_0x27a1c9[_0x28181f(0x1db)]==='public'))['map'](_0x11505f=>[_0x43d318['key']?_0x43d318[_0x28181f(0x251)]+'.'+_0x11505f[_0x28181f(0x17b)]:_0x11505f[_0x28181f(0x17b)],_0x11505f[_0x28181f(0x247)]])),_0x40adcd=_0x5e1667===_0x28181f(0x2d0)?_0xf6ed6d['id']:_0xf6ed6d['id']+_0x28181f(0x2e0),_0x1f8e4e=_0x5e1667==='public'?_0xf6ed6d['id']+_0x28181f(0x179):_0xf6ed6d['id']+_0x28181f(0x1c1);return[M,_0x28181f(0x190)+(_0x5e1667==='public'?_0xf6ed6d['id']+_0x28181f(0x27a)+_0xf6ed6d['id']+_0x28181f(0x24b):_0xf6ed6d['id']+_0x28181f(0x289)),_0x28181f(0x1ed),_0x28181f(0x18a)+_0x4b662e['name']+_0x28181f(0x2cb)+JSON['stringify'](_0x183376)+';',_0x28181f(0x1cc)+_0x1f8e4e+_0x28181f(0x1ca)+_0x301a4b[_0x28181f(0x1d9)]+'\x22;','',_0x28181f(0x20b)+_0x4b662e[_0x28181f(0x17b)]+_0x28181f(0x1a0),'','export\x20const\x20'+_0x40adcd+_0x28181f(0x204)+_0x1f8e4e+',\x20'+ye(_0xb1583d['map'](([_0x22e5a6])=>_0x22e5a6))+'>('+JSON[_0x28181f(0x2aa)](_0xf6ed6d['id'])+_0x28181f(0x196),..._0xb1583d[_0x28181f(0x26f)](([_0x4fbbf9,_0x30f077])=>'\x20\x20'+JSON[_0x28181f(0x2aa)](_0x4fbbf9)+':\x20'+JSON['stringify'](_0x30f077)+','),..._0x31f32b[_0x28181f(0x1fb)]>0x0?[_0x28181f(0x2dd),..._0x31f32b[_0x28181f(0x26f)](([_0x1bf2dd,_0x1d0eb9])=>'\x20\x20'+JSON[_0x28181f(0x2aa)](_0x1bf2dd)+':\x20'+_0x1d0eb9+',')]:[],_0x28181f(0x2dc),''][_0x28181f(0x277)]('\x0a');}function ot(_0x45198f,_0x5464e2,_0x36bfb2){const _0xe552fc=_0x19204c;return[M,_0xe552fc(0x214)+_0x5464e2[_0xe552fc(0x290)]+'/'+_0x45198f['id']+_0xe552fc(0x24d)+(_0x36bfb2[_0xe552fc(0x22a)]?_0xe552fc(0x195)+_0x36bfb2[_0xe552fc(0x22a)][_0xe552fc(0x277)](',\x20'):'')+'.','export\x20type\x20{\x20'+_0x45198f['id']+_0xe552fc(0x29f)+_0x36bfb2[_0xe552fc(0x1d9)]+'\x22;',..._0x5464e2[_0xe552fc(0x27d)]?['export\x20{\x20'+_0x45198f['id']+_0xe552fc(0x1b8)+_0x36bfb2[_0xe552fc(0x1d9)]+'\x22;']:[],'']['join']('\x0a');}function at(_0x4681bd,_0x418ece,_0x482282){const _0x44f5a0=_0x19204c;return[M,_0x44f5a0(0x214)+_0x418ece[_0x44f5a0(0x290)]+'/'+_0x4681bd['id']+_0x44f5a0(0x2a9)+_0x4681bd['id']+_0x44f5a0(0x268),_0x44f5a0(0x2c5)+_0x4681bd['id']+'ProtectedApi\x20}\x20from\x20\x22./api'+_0x482282['suffix']+'\x22;',..._0x418ece['rpc']?[_0x44f5a0(0x1b4)+_0x4681bd['id']+'Protected\x20}\x20from\x20\x22./client.protected'+_0x482282[_0x44f5a0(0x1d9)]+'\x22;']:[],''][_0x44f5a0(0x277)]('\x0a');}function Z(_0x49b59a,_0x42d088,_0x577644,_0x1cae1f=_0x21fbd9,_0x58b6de){const _0x221f82=_0x19204c;let _0x3e0fc7=_0x58b6de?'.'+_0x58b6de:'',_0xd8bf85=new Map(),_0x14bcc6=_0x42d088['rpc']?.[_0x221f82(0x227)],_0x250515=_0x14bcc6?.[_0x221f82(0x23e)]?.[_0x577644?_0x221f82(0x193):_0x58b6de??_0x221f82(0x193)];_0x14bcc6&&_0x250515&&_0xd8bf85[_0x221f82(0x293)](_0x14bcc6[_0x221f82(0x265)],[_0x423331(_0x42d088[_0x221f82(0x1a9)],_0x250515)]);let _0x36286c=_0x577644?new Set([_0x577644['id'],..._0x577644['requires'],..._0x577644[_0x221f82(0x1e1)],..._0x49b59a[_0x221f82(0x25c)]['filter'](_0x15c195=>_0x15c195[_0x221f82(0x2d3)])[_0x221f82(0x26f)](_0x56b106=>_0x56b106['id'])]):null;for(let _0x9a9171 of _0x49b59a[_0x221f82(0x25c)]){if(_0x36286c&&!_0x36286c['has'](_0x9a9171['id']))continue;let _0x51e6e4=_0x2eeb7e(_0x42d088[_0x221f82(0x25a)],_0x9a9171[_0x221f82(0x1bb)]);_0xd8bf85[_0x221f82(0x293)](_0x42d088[_0x221f82(0x290)]+'/'+_0x9a9171['id'],[_0x2eeb7e(_0x51e6e4,_0x221f82(0x1d7)+_0x3e0fc7+_0x221f82(0x2d1))]);for(let [_0x3ef8ef,_0x486125]of Object[_0x221f82(0x2bf)](_0x42d088[_0x221f82(0x188)]))_0x1cae1f(_0x2eeb7e(_0x51e6e4,_0x486125))&&_0xd8bf85[_0x221f82(0x293)](_0x42d088[_0x221f82(0x290)]+'/'+_0x9a9171['id']+'/'+_0x3ef8ef,[_0x2eeb7e(_0x51e6e4,_0x486125)]);if((!_0x577644||_0x577644['id']===_0x9a9171['id'])&&_0xd8bf85['set'](_0x42d088['alias']+'/'+_0x9a9171['id']+_0x221f82(0x248),[_0x2eeb7e(_0x51e6e4,_0x221f82(0x1f1)+_0x3e0fc7+'.ts')]),_0x577644&&_0x577644['id']!==_0x9a9171['id']){for(let _0xec1881 of _0x42d088['publicPaths'])_0xec1881[_0x221f82(0x22e)](_0x221f82(0x249))?_0xd8bf85[_0x221f82(0x293)](_0x42d088['alias']+'/'+_0x9a9171['id']+'/'+_0xec1881[_0x221f82(0x26a)](0x0,-0x3)+'/*',[_0x2eeb7e(_0x51e6e4,_0xec1881[_0x221f82(0x26a)](0x0,-0x3),'*')]):_0xec1881[_0x221f82(0x282)]('*')||_0xd8bf85[_0x221f82(0x293)](_0x42d088[_0x221f82(0x290)]+'/'+_0x9a9171['id']+'/'+_0xec1881[_0x221f82(0x223)](/\.tsx?$/,''),[_0x2eeb7e(_0x51e6e4,_0xec1881)]);}else _0xd8bf85[_0x221f82(0x293)](_0x42d088[_0x221f82(0x290)]+'/'+_0x9a9171['id']+'/*',[_0x2eeb7e(_0x51e6e4,'*')]);}return _0xd8bf85;}var se=(_0x1ee8af,_0x2e031b)=>_0x2e031b===_0x1ee8af['alias']||_0x2e031b['startsWith'](_0x1ee8af[_0x19204c(0x290)]+'/')||_0x1ee8af[_0x19204c(0x27d)]?.[_0x19204c(0x227)][_0x19204c(0x23e)]!==void 0x0&&_0x2e031b===_0x1ee8af[_0x19204c(0x27d)][_0x19204c(0x227)]['from'];function lt(_0x425195,_0x5e3df1,_0x195efc){const _0x5dcc9e=_0x19204c;let _0x4838da=_0x3101ff['readConfigFile'](_0x5e3df1,_0x3101ff['sys'][_0x5dcc9e(0x26e)]),_0x140d41=_0x4838da['config']?.[_0x5dcc9e(0x272)]?.[_0x5dcc9e(0x208)]??{},_0x450009=_0x4838da[_0x5dcc9e(0x17d)]?.['compilerOptions']?.[_0x5dcc9e(0x1fd)],_0x1e3e8c=_0x423331(_0x20ad06(_0x5e3df1),_0x450009??'.'),_0x2ed90f={};for(let [_0x161691,_0x45353e]of Object['entries'](_0x140d41))se(_0x425195,_0x161691)||(_0x2ed90f[_0x161691]=_0x45353e[_0x5dcc9e(0x26f)](_0x5387cd=>J(_0x195efc,_0x423331(_0x1e3e8c,_0x5387cd))));return _0x2ed90f;}function ct(_0x383cc7,_0x19ce33){const _0x5a0045=_0x19204c;if(!_0x383cc7[_0x5a0045(0x258)])return{};let _0x2e801c=_0x3101ff[_0x5a0045(0x1b5)](_0x383cc7[_0x5a0045(0x258)],_0x3101ff[_0x5a0045(0x19c)]['readFile']),_0x12a1f3=_0x2e801c[_0x5a0045(0x17d)]?.[_0x5a0045(0x272)]?.[_0x5a0045(0x208)]??{},_0x485895=_0x2e801c[_0x5a0045(0x17d)]?.[_0x5a0045(0x272)]?.['baseUrl'],_0x28a130=_0x423331(_0x20ad06(_0x383cc7[_0x5a0045(0x258)]),_0x485895??'.'),_0x153adc={};for(let [_0xdf04bd,_0x3c62f9]of Object[_0x5a0045(0x2bf)](_0x12a1f3))se(_0x383cc7,_0xdf04bd)||(_0x153adc[_0xdf04bd]=_0x3c62f9[_0x5a0045(0x26f)](_0x1b6cd5=>J(_0x19ce33,_0x423331(_0x28a130,_0x1b6cd5))));return _0x153adc;}var J=(_0xc1b965,_0x5652cf)=>{const _0x44a01c=_0x19204c;let _0x2e98ca=y(_0x70c76d(_0xc1b965,_0x5652cf));return _0x2e98ca['startsWith']('./')||_0x2e98ca[_0x44a01c(0x1a8)](_0x44a01c(0x2ba))?_0x2e98ca:'./'+_0x2e98ca;};function ee(_0x59a32d,_0x3cc2ed){const _0x89cdbe=_0x19204c;return Object['fromEntries']([..._0x3cc2ed][_0x89cdbe(0x264)](([_0xa1632f],[_0x2060a6])=>_0xa1632f[_0x89cdbe(0x1b2)](_0x2060a6))[_0x89cdbe(0x26f)](([_0x47bbae,_0x2fe092])=>[_0x47bbae,_0x2fe092[_0x89cdbe(0x26f)](_0x4e2f58=>J(_0x59a32d,_0x4e2f58))]));}function dt(_0x37098d,_0x15c6d2,_0x341d54,_0x5d6095){const _0x4d00e8=_0x19204c;let _0x49efee=_0x2eeb7e(_0x15c6d2[_0x4d00e8(0x25a)],_0x341d54[_0x4d00e8(0x1bb)]),_0x1beb06={'$comment':D+':\x20'+_0x341d54['id']+_0x4d00e8(0x285),..._0x15c6d2['tsconfigBase']?{'extends':J(_0x49efee,_0x15c6d2[_0x4d00e8(0x258)])}:{},'compilerOptions':{..._0x15c6d2[_0x4d00e8(0x273)][_0x4d00e8(0x272)],'paths':{...ct(_0x15c6d2,_0x49efee),...ee(_0x49efee,Z(_0x37098d,_0x15c6d2,_0x341d54,_0x5d6095))}},'include':[_0x4d00e8(0x222)],..._0x15c6d2[_0x4d00e8(0x273)][_0x4d00e8(0x28b)]['length']>0x0?{'exclude':[..._0x15c6d2[_0x4d00e8(0x273)][_0x4d00e8(0x28b)]]}:{}};return JSON[_0x4d00e8(0x2aa)](_0x1beb06,null,0x2)+'\x0a';}function ut(_0x5dd8e3,_0x36d766,_0x372e32){const _0x102f75=_0x19204c;let _0xce5c31=_0x2eeb7e(_0x36d766[_0x102f75(0x25a)],'.generated'),_0x58e3bc=_0x5dd8e3[_0x102f75(0x25c)][_0x102f75(0x26f)](_0x1cdf73=>({'m':_0x1cdf73,'r':_0x1cdf73[_0x102f75(0x22a)][_0x102f75(0x25b)](_0x2735c1=>_0x2735c1[_0x102f75(0x19a)]===_0x372e32)}))[_0x102f75(0x240)](_0x4932b7=>_0x4932b7['r']!==void 0x0);return[M,_0x102f75(0x28d)+(_0x372e32?_0x372e32+'\x20':'')+_0x102f75(0x2de),'import\x20type\x20{\x20RegistryEntry\x20}\x20from\x20\x22@vyredo/module-kit/runtime\x22;',..._0x58e3bc[_0x102f75(0x26f)](({m:_0x1a4d99,r:_0x42267b},_0x359e7d)=>_0x102f75(0x2ab)+_0x359e7d+_0x102f75(0x1dd)+JSON[_0x102f75(0x2aa)](Y(_0xce5c31,_0x2eeb7e(_0x36d766[_0x102f75(0x25a)],_0x1a4d99['path'],_0x42267b[_0x102f75(0x2a8)])))+';'),'',_0x102f75(0x2bd),..._0x58e3bc[_0x102f75(0x26f)](({m:_0x3e876d,r:_0x5c20ed},_0xef6e92)=>'\x20\x20'+JSON['stringify']({'id':_0x3e876d['id'],'version':_0x3e876d['version'],'core':_0x3e876d[_0x102f75(0x2d3)],'requires':_0x3e876d[_0x102f75(0x253)],'optional':_0x3e876d['optional'],'startOrder':_0x3e876d[_0x102f75(0x184)],'realm':_0x5c20ed[_0x102f75(0x251)],'members':_0x5c20ed[_0x102f75(0x177)],'hooks':_0x5c20ed[_0x102f75(0x203)],'extra':_0x3e876d[_0x102f75(0x202)]})[_0x102f75(0x223)](/}$/,',\x20Class:\x20M'+_0xef6e92+'\x20}')+','),'];','',_0x102f75(0x1bd),''][_0x102f75(0x277)]('\x0a');}function ft(_0x2e4af9,_0x4bafa6,_0x5bc0c7=[]){const _0x47d44d=_0x19204c;let _0x46ea31=new Map(),_0x5a8a11={'graph':_0x2e4af9,'config':_0x4bafa6,'header':M,'dirOf':_0x1d4757=>_0x2eeb7e(_0x4bafa6[_0x47d44d(0x25a)],_0x1d4757[_0x47d44d(0x1bb)])};for(let _0x14e894 of _0x5bc0c7){let _0x4dad3f=_0x14e894[_0x47d44d(0x17a)](_0x5a8a11);for(let [_0x5c00f1,_0x9ba9c4]of _0x4dad3f instanceof Map?_0x4dad3f:Object[_0x47d44d(0x2bf)](_0x4dad3f)){let _0x396c46=_0x423331(_0x5c00f1);if(_0x46ea31['has'](_0x396c46))throw new Error(_0x47d44d(0x232)+_0x14e894[_0x47d44d(0x17b)]+_0x47d44d(0x2a7)+_0x396c46+_0x47d44d(0x21a));_0x46ea31['set'](_0x396c46,_0x9ba9c4);}}let _0x3e6edb=_0xdb347=>_0x46ea31[_0x47d44d(0x281)](_0xdb347)||_0x21fbd9(_0xdb347),_0x4c031f=(_0x1f7e92,_0x182904)=>{const _0x328621=_0x47d44d;if(_0x46ea31[_0x328621(0x281)](_0x1f7e92))throw new Error(_0x328621(0x1eb)+_0x1f7e92+_0x328621(0x1b1));_0x46ea31[_0x328621(0x293)](_0x1f7e92,_0x182904);},_0x3bbe05=[st,...Object[_0x47d44d(0x2bf)](_0x4bafa6[_0x47d44d(0x1a7)])[_0x47d44d(0x26f)](([_0x808676,_0x3c4f9f])=>({'suffix':'.'+_0x808676,'realms':_0x3c4f9f}))];for(let _0x3df5a7 of _0x2e4af9[_0x47d44d(0x25c)]){let _0xf8760b=_0x2eeb7e(_0x4bafa6[_0x47d44d(0x25a)],_0x3df5a7[_0x47d44d(0x1bb)]),_0x514cbe=_0x2eeb7e(_0xf8760b,_0x47d44d(0x178));for(let _0xe3e575 of _0x3df5a7[_0x47d44d(0x22a)])_0x4c031f(_0x2eeb7e(_0x514cbe,$e(_0xe3e575)),it(_0x3df5a7,_0xe3e575));for(let _0x3b14fd of _0x3bbe05){let _0x2157ea=_0x3b14fd[_0x47d44d(0x1d9)];_0x4c031f(_0x2eeb7e(_0x514cbe,_0x47d44d(0x2ac)+_0x2157ea+'.ts'),nt(_0x3df5a7,_0x3b14fd)),_0x4c031f(_0x2eeb7e(_0x514cbe,_0x47d44d(0x1fa)+_0x2157ea+'.ts'),ot(_0x3df5a7,_0x4bafa6,_0x3b14fd)),_0x4c031f(_0x2eeb7e(_0x514cbe,'protected'+_0x2157ea+_0x47d44d(0x2d1)),at(_0x3df5a7,_0x4bafa6,_0x3b14fd)),_0x4bafa6[_0x47d44d(0x27d)]&&(_0x4c031f(_0x2eeb7e(_0x514cbe,_0x47d44d(0x1d4)+_0x2157ea+'.ts'),he(_0x3df5a7,_0x514cbe,_0x4bafa6,_0x47d44d(0x2d0),_0x3b14fd)),_0x4c031f(_0x2eeb7e(_0x514cbe,'client.protected'+_0x2157ea+_0x47d44d(0x2d1)),he(_0x3df5a7,_0x514cbe,_0x4bafa6,_0x47d44d(0x267),_0x3b14fd)));}_0x4c031f(_0x2eeb7e(_0xf8760b,_0x47d44d(0x20c)),dt(_0x2e4af9,_0x4bafa6,_0x3df5a7,_0x3e6edb));}let _0x1d631a=_0x2eeb7e(_0x4bafa6['root'],_0x47d44d(0x178));for(let _0x4d0bdd of _0x4bafa6['realms']??[null])_0x4c031f(_0x2eeb7e(_0x1d631a,_0x4d0bdd?_0x47d44d(0x2c2)+_0x4d0bdd+_0x47d44d(0x2d1):'registry.ts'),ut(_0x2e4af9,_0x4bafa6,_0x4d0bdd));for(let _0x160bc6 of[void 0x0,...Object[_0x47d44d(0x27b)](_0x4bafa6[_0x47d44d(0x1a7)])]){let _0x14cd9d=_0x160bc6?'.'+_0x160bc6:'',_0x45c934=Z(_0x2e4af9,_0x4bafa6,void 0x0,_0x3e6edb,_0x160bc6),_0x2246c3=Object[_0x47d44d(0x228)]([..._0x45c934][_0x47d44d(0x264)](([_0x1d6ac0],[_0xc841f6])=>_0x1d6ac0[_0x47d44d(0x1b2)](_0xc841f6))[_0x47d44d(0x26f)](([_0x53b5d3,_0x3f7911])=>[_0x53b5d3,y(_0x70c76d(_0x4bafa6[_0x47d44d(0x1a9)],_0x3f7911[0x0]))])),_0x3fecfd=_0x160bc6?'\x20for\x20the\x20\x22'+_0x160bc6+_0x47d44d(0x1ba):'';_0x4c031f(_0x2eeb7e(_0x1d631a,'aliases'+_0x14cd9d+'.json'),JSON[_0x47d44d(0x2aa)]({'$comment':D+_0x47d44d(0x1de)+_0x3fecfd+_0x47d44d(0x2d2),..._0x2246c3},null,0x2)+'\x0a'),_0x4c031f(_0x2eeb7e(_0x1d631a,_0x47d44d(0x254)+_0x14cd9d+_0x47d44d(0x225)),JSON[_0x47d44d(0x2aa)]({'$comment':D+_0x47d44d(0x276)+_0x3fecfd+_0x47d44d(0x2d2),'compilerOptions':{'paths':ee(_0x1d631a,_0x45c934)}},null,0x2)+'\x0a');}for(let _0x5538f4 of _0x4bafa6[_0x47d44d(0x19f)]['filter'](_0x28bd99=>_0x28bd99[_0x47d44d(0x2b9)]===_0x47d44d(0x218))){let _0x14df87=_0x423331(_0x4bafa6[_0x47d44d(0x1a9)],_0x5538f4[_0x47d44d(0x2a8)]),_0x57b9a2=_0x20ad06(_0x14df87),_0x39a102={...lt(_0x4bafa6,_0x423331(_0x4bafa6['cwd'],_0x5538f4[_0x47d44d(0x296)]),_0x57b9a2),...ee(_0x57b9a2,Z(_0x2e4af9,_0x4bafa6,void 0x0,_0x3e6edb,_0x5538f4['view']))};_0x4c031f(_0x14df87,JSON[_0x47d44d(0x2aa)]({'$comment':D+':\x20'+y(_0x70c76d(_0x4bafa6[_0x47d44d(0x1a9)],_0x423331(_0x4bafa6['cwd'],_0x5538f4['inherit'])))+_0x47d44d(0x2cd)+(_0x5538f4['view']?_0x47d44d(0x252)+_0x5538f4[_0x47d44d(0x2d8)]+_0x47d44d(0x260):'')+_0x47d44d(0x2d2),'compilerOptions':{'paths':_0x39a102}},null,0x2)+'\x0a');}let _0x2292eb=_0x2eeb7e(_0x1d631a,xe),_0x435ee9=[..._0x46ea31[_0x47d44d(0x27b)](),_0x2292eb][_0x47d44d(0x26f)](_0x3cce6c=>y(_0x70c76d(_0x4bafa6[_0x47d44d(0x1a9)],_0x3cce6c)))[_0x47d44d(0x264)]();return _0x46ea31['set'](_0x2292eb,JSON[_0x47d44d(0x2aa)]({'$comment':D+_0x47d44d(0x234),'modules':_0x2e4af9[_0x47d44d(0x25c)],'files':_0x435ee9},null,0x2)+'\x0a'),_0x46ea31;}var xe='module-kit.json';function _0x37dd(){const _0x21876c=['igL0C2vSzIbTyxKGAw1WB3j0igL0lG','iIbTDxn0igjLigfUigLKzw50AwzPzxiGkgXLDhrLCNmSigrPz2L0CYWGxYbVCIaKoYbUB3qGC3rHCNrPBMCGD2L0AcbHigrPz2L0kq','C2XPy2u','iIbUyw1LCYb2Awv3ici','u2nYAxb0s2LUza','AxngDw5JDgLVBKv4ChjLC3nPB24','CMvHzezPBgu','BwfW','ycbLBNrYAwvZig11C3qGyMuGye5HBwu6idXUDw1Izxi+ya','AxnZDwvZ','y29TCgLSzxjpChrPB25Z','DhnJB25MAwC','Axnoyw1Lzev4Cg9YDhm','Bw9KDwXLuMvMzxjLBMnL','oIbLEhrLBMqGDgHPCYbMCM9TihrOzsbHChaNCYb0C2nVBMzPzW','AM9PBG','x19MAxH0DxjLC19F','AxndywXSrxHWCMvZC2LVBG','j3mGy2XPzw50oIbLDMvYEsbTB2r1BguGy2fSBhmG','A2v5CW','Bw9KDwXLlwTPDdOGBM8Gy29UzMLNigf0ia','CNbJ','lM10CW','C2HHCMvKignVzguGBwf5ig5VDcbPBxbVCNqGDgHLia','nte2nu12v0zjvq','AgfZ','Aw5JBhvKzxm','zxHWB3j0igfIC3rYywn0ignSyxnZia','BwfUAwzLC3q','j3mGChjVz3jHBs4GvgHLigfSAwfZihjLC29SDMvZig9UBhKGDgHLig1VzhvSzxmGAxqGzgvJBgfYzxmUierpie5pvcbfreLulG','Dgv4Da','zgvSzxrL','igL0C2vSzIbTyxKGy2fSBcWGDgHYB3vNAcbPDhmGChjVDgvJDgvKignSAwvUDc4GkI8','j3mGy2XPzw50ihrVigL0C2vSzJOGAxrZihb1yMXPyYbHBMqGChjVDgvJDgvKig1LBwjLCNmU','u3vYzMfJzq','zxHJBhvKzq','mJa1mtm2ne9rzePgAa','lY8GrxzLCNKG','Dw5RBM93BIbTyw5PzMvZDcbMAwvSzcaI','z2v0tgLUzufUzenOyxjHy3rLCK9Mug9ZAxrPB24','ywXPyxm','C3rYAw5N','AxnqyxjLBNrOzxnPEMvKrxHWCMvZC2LVBG','C2v0','Bw9KDwXLlwTPDdOGysbZCgXPy2vKihrZy29UzMLNig5LzwrZigeGycjWyxrOCYi6ihTGigXPBMuGB2yGAxrZig93BG','DgvZDa','Aw5OzxjPDa','z2vUzxjHDgvK','mJu0otG4uKfZD3n2','z2vUzxjHDgu','CMvMDxnL','iIWGD2HPy2GGAxmGBM90igLUigbYzwfSBxnG','lcbIEsbYzwfSBq','igXPC3rZihrOzsbTB2r1BguGAxrZzwXM','Bw9KDwXLlwTPDdOGzxHWB3j0ici','qxbPih0GzNjVBsaIlI9HCgK','DMfSDwvZ','Bw9KDwXLlwTPDc5JB25MAwCUANnVBG','BMfTzwrcAw5KAw5NCW','C3vYzMfJzs50CW','BwfUAwzLC3qGzMLLBgqGiG','u3rHDgLJs2v5D29Yza','mc4WlJa','iIb3CML0zxmG','zMLSzq','l3bYB3rLy3rLzgaGCMvZB2X2zxmGDg86ig9UBhKG','C3rYAw5NAwz5','Aw1WB3j0ie0','yxbP','igLZigeGBgLMzwn5y2XLigHVB2S6igXLyxzLigL0ihDPDgHVDxqGyhb1yMXPy2a','Aw5KzxGUDhm','igXPC3rZigeGBw9KDwXLihr3AwnL','BgL0zxjHBa','AxnjBxbVCNrfCxvHBhnezwnSyxjHDgLVBG','sw1WB3j0s2v5D29Yza','igLZC3vLkhmP','igLZig5VDcb2ywXPzcbku09ooIa','zxHWB3j0q2XHDxnL','C2HHCMvKlYOQ','D3jPDhrLBG','AxnoDw1LCMLJtgL0zxjHBa','Bw9Kzq','lI4V','kd86lY4Qkt8','ChjVCgvYDgLLCW','zxHWB3j0ignVBNn0ig1VzhvSzxm6ifjLz2LZDhj5rw50CNLBxsa9ifS','ywrK','zw50CMLLCW','j3mGChvIBgLJihbHDgHZicG','Bw9KDwXLlwTPDdOGyhjVB3rGigLZihjLCxvPCMvK','CMvNAxn0CNKU','kgnSAwvUDcK','Bw9KDwXLlwTPDdOGygfSAwfZycbJyw5UB3qGyMuGzw1WDhK','zxHWB3j0ihr5CguGEYa','igv4DgvUzhmG','iNbHDgHZiG','yhn0yxrPyYa','zwXLBwvUDhm','ig1VzhvSzsHZksWGyM91BMrHCMLLCYbpsW','ih0GzNjVBsa','odaZs0zOEwnf','j3mGCgf0AhmGCgX1CYb0AguGBw9KDwXLigfSAwfZzxm','zxHLyW','igfZigL0ihnLzxmGAxrZzwXMoIbWDwjSAwmGyw5KihbYB3rLy3rLzcbTzw1IzxjZlIaQlW','ChvIBgLJ','lNrZ','lIbetYbot1qGrurjvc4','y29Yzq','lY8Gqxv0BY1Nzw5LCMf0zwqGyNKGqhz5CMvKBY9TB2r1BguTA2L0lIbetYbot1qGrurjvc4','B3b0Aw9UywXnB2r1BgvZ','oeTNCMXivq','lYOQie5LDMvYigLUC3rHBNrPyxrLzdOGCMuTzxHWB3nLCYb0AguGChjVDgvJDgvKig1LBwjLCNmGC28GDgHLAxiGDhLWzxmGy2fUigjLig5HBwvKlIaQlW','DMLLDW','iIbPCYbHignVCMuGBw9KDwXLoYbJB3jLig1VzhvSzxmGyxjLigf2ywLSywjSzsb0BYbLDMvYEsbTB2r1BguSigrVig5VDcbSAxn0ihrOzw0','yxjYyxK','id0GugLJAZW','FsK7','FsWGEW','Bw9KDwXLignSyxnZigLUihn0yxj0ig9YzgvYlcb3AxrOigL0CYbTyw5PzMvZDcbMywn0CZOGD2HHDcb0AguGCNvUDgLTzsbOB3n0ihn0yxj0CY4','id0GEW','uhjVDgvJDgvK','y2HLy2TfEgnSDwrL','BwvTyMvYCW','lMDLBMvYyxrLza','qxbP','zMLSzxm','BMfTzq','igzPBguOCYKGy2HHBMDLza','y29UzMLN','iIWGD2HPy2GGyhzPzxDZycbKB2vZig5VDcbKzwzPBMu','mtC2neT3vvbQAa','u3LUDgf4s2LUza','z2v0tw9KAwzPzxjZ','CMvXDwLYzu1VzhvSzxm','mJCZmteXmfDZq2jXyW','C3rHCNrpCMrLCG','vfny','AxneAxjLy3rVCNK','ig11C3qGzgvMyxvSDc1LEhbVCNqGysbWBhvNAw4Gkg9YigeGzNvUy3rPB24GB2yGDgHLignVBMzPzYDZigrPCMvJDg9YEsbYzxr1CM5PBMCGB25Lkq','zxHWB3j0CW','Bw9KDwXLlwTPDdOGBM90igDLBMvYyxrLzcWGDgHLihnJyw4GAgfZigLZC3vLCW','Aw1WB3j0ihSG','zgLY','lMDLBMvYyxrLzc8QkG','ktOGC2HHCMvKlYbYDw5ZigLUigv2zxj5ihjLywXT','Bw9KDwXLlwTPDdOG','ANnVBG','lY8G','DgHLig1VzhvSzsbYB290igrVzxmGBM90igv4Axn0','ihjLywXTicG','zgvMyxvSDa','AxnoB1n1yNn0Axr1DgLVBLrLBxbSyxrLtgL0zxjHBa','igzVCIbHignVBNn1BwvYihrOyxqGC2vLCYa','lcb7','w14VxsO','AxnqCM9Wzxj0EufJy2vZC0v4ChjLC3nPB24','oIbHig1VzhvSzsDZihbYB3rLy3rLzcbJBgLLBNqGAxmGAxrZig93BJSG','CMvHBg0','ChvIBgLJugf0Ahm','C3LZ','qhz5CMvKBY9TB2r1BguTA2L0','C2nHBG','DhnJB25MAwDqyxrOCW','kcKPoW','zMLUzeLUzgv4','AxnqCM9Wzxj0EufZC2LNBM1LBNq','iIbPCYaID3jPDguIigfUzcbUzwvKCYbGAw5OzxjPDga','ihWG','icyG','Aw1WB3j0ia','DMLLD3m','C3rHCNrZv2L0Aa','y3DK','AxnqCML2yxrLswrLBNrPzMLLCG','AxntDhjPBMDmAxrLCMfS','icbYzwfKB25SEsa','ig1HEsbUB3qGAw1WB3j0ia','CMvWzwf0','DxrMoa','z3jHCgG','lcb3AgLJAcb0AguGA2L0ihDYAxrLCYbPDhnLBgy','Bg9JywXLq29TCgfYzq','oIb0AgvYzsbPCYbUBYbTB2r1BguGiG','zxHWB3j0ihSG','CMvHzenVBMzPz0zPBgu','B25tDgfYDa','BwfUAwzLC3rgAwvSzhm','ih0GzNjVBsaIlI9JBgLLBNq','yxjNDw1LBNrZ','iIb2Awv3','Cgf0Aa','uhjPDMf0zuTLExDVCMq','zxHWB3j0igrLzMf1BhqGBw9KDwXLCZS','C2L6zq','z2v0','AxnmAxrLCMfSvhLWzu5Vzgu','uhjVDgvJDgvKqxbP','yxjYyxKGB2yGC3rYAw5NCW','y2fSBfvW','rvmYmdiY','AwDUB3jL','yxjNDw1LBNq','Cg9W','AxndBgfZC0rLy2XHCMf0Aw9U','AxnfEhbVCNrfCxvHBhm','ih0GzNjVBsaIlI9HCgK','zxjYB3i','Aw1WB3j0ihr5CguGEYa','z2v0u3rHCNq','lNrZEa','lYOQia','BwvZC2fNzq','zxzLCNK','zxHWCMvZC2LVBG','iIWGD2HPy2GGAxmGBM90igfUigv4Cg9ZzwqGBwvTyMvY','y2XPzw50','ChvZAa','mte0tLD0zgnr','lMDLBMvYyxrLzc9PBMrLEa','iIbUyw1LCYbUBYbLEgLZDgLUzYbTB2r1Bgu','C3vMzML4','AxnfEhbVCNrezwnSyxjHDgLVBG','DMLZAwjPBgL0Eq','zxHWB3j0ihr5CguG','igzYB20G','oIbHBgLHCYaTpIbMAwXL','igfZig90AgvYig1VzhvSzxmGC2vLigL0oIbPDhmGChvIBgLJig1LBwjLCNm','iIbPCYbHBhjLywr5ihvZzwqGyNKG','B3b0Aw9UywW','lY8GDgHPCYbMAwXLig9UBhKGD2L0AcbGAw1WB3j0ihr5CgvGoIbHihzHBhvLigLTCg9YDcbWDwXSCYb0AguGCMvHBg0NCYbJB2rLigLUlG','yM9VBgvHBG','DMvYC2LVBG','CgfKu3rHCNq','Bw9KDwXLlwTPDdOGDMLLDYaI','igv4Axn0CYbHBMqGD2fZig5VDcbNzw5LCMf0zwq7ig1VDMuGAxqGyxnPzgu','Bw9KDwXL','lYOQifDOyxqGB25SEsa','AxnqCM9Wzxj0EurLy2XHCMf0Aw9U','Bw9KDwXLlwTPDdOGysbWBhvNAw4GD3jPDgvZia','AxnpyMPLy3rmAxrLCMfSrxHWCMvZC2LVBG','Aw1WB3j0ihSGBwfRzvjLBw90zvDPDgGGFsbMCM9TicjaDNLYzwrVl3jWyY1IDxmIoW','icHJB3jLkq','j3mGzM9SzgvYoIbPBxbVCNqGAxqGyxmG','mteYodDvwK1SzKy','lMDLBMvYyxrLzc9WCM90zwn0zwq','zMXHDe1HCa','C3rHDgvTzw50CW','iIbTDxn0igjLigXVD2vYy2fZzsbSzxr0zxjZigfUzcbKAwDPDhmSihn0yxj0Aw5NihDPDgGGysbSzxr0zxi','uhvIBgLJs2v5D29Yza','AwrLBNrPzMLLCG','id0GE307','x19WCM90zwn0zwrF','yxjNDG','Aw5KzxG','BgvUz3rO','mJu5otq1ohLYy1HwtW','yMfZzvvYBa','y3jLyxrLu291CMnLrMLSzq','C3bSAxq','Bw9KDwXLlwTPDdOGyhjLywXTC2aGBgLZDhmGysbYzwfSBsb0D2LJzq','AxnfEhrLCM5HBe1VzhvSzvjLzMvYzw5Jzq','zxH0CMe','Ag9VA3m','id0GCMvTB3rLpa','DgLTzw91DhngAwvSza','CMvZB2X2zq','B25tDg9W','Cgf0Ahm','ignSyxnZlcbHCYb0ExbLCY4GsxqGAw1WB3j0CYb0AguGy2XHC3mGyNKGDMfSDwuSihnVigLTCg9YDa','BwfUAwzLC3qUDhmGBxvZDcbGzxHWB3j0igrLzMf1BhrGigfUig9IAMvJDcbSAxrLCMfSicHVChrPB25HBgX5ihrOCM91z2GGzgvMAw5LtwfUAwzLC3qP','y29UC3qGCMvTB3rLid0GBwfRzvjLBw90zvDPDgGOkcKGpt4G','DhnJB25MAwCUANnVBG','u2nYAxb0vgfYz2v0','AhjLzG','Aw5PDgLHBgL6zxi','Axnoyw1LzeLTCg9YDhm','AxnnzxrOB2rezwnSyxjHDgLVBG','iIb0BYbYzxf1AxjLtw9KDwXLCYbVCIbVChrPB25HBe1VzhvSzxm','Bg9N','lY8Gv2HHDcbG','BM9Kzv9TB2r1BgvZ','AxnjBxbVCNrezwnSyxjHDgLVBG','Bw9KDwXLlwTPDdOGDhnJB25MAwDqyxrOCYaI','D3jPDgu','Bw9KDwXLlwTPDdOGz2vUzxjHDgvKigzPBgvZigfYzsbZDgfSztSGCNvUigbTB2r1BguTA2L0igDLBMvYyxrLydO','lcb3AgLJAcbHBM90AgvYihbSDwDPBIb3CML0zxmGDg9V','iIbTyxKGBM90igrLCgvUzcbVBIbUB24Ty29YzsbTB2r1BguGiG','id0GDgHPC1S','AxnbCNjHEq','DgLTzw91Dhm','y29YzsbTB2r1BguGiG','BwfUAwzLC3qGBMvLzhmGyw4GygLKya','BgLUzq','lI8QkI8Q','CMvWBgfJzq','AxnbCNjVD0z1BMn0Aw9U','lMPZB24','uhvIBgLJ','yNvZ','zNjVBuvUDhjPzxm','CgfYC2u','CMvHBg1Z','AxnbC0v4ChjLC3nPB24','C29Tzq','Aw5KzxHpzG','zw5KC1DPDgG','zNvUy3rPB24','lMPZ','BwfUAwzLC3qUDhm','Bw9KDwXLlwTPDdOGCgX1z2LUici','C2HHCMvK','oIb0AguGC2nHBIWGyw5Kigv2zxj5igzPBguGAxqGz2vUzxjHDgvKlIbetYbot1qGrurjvc4','ourhvwnlAG','AxnjBxbVCNruExbLtM9Kzq','CgX1z2LUCW','icHYzw1VDMvKkq','AxntyxrPC2zPzxnfEhbYzxnZAw9U','AxnjzgvUDgLMAwvY','AxnuExbLt25SEq','j3mG','lMDLBMvYyxrLzc8','DgfYz2v0CW','DgHLBG','zMLSDgvY','qg1VzhvSzxm','A2LUza','ls1OzwXW','C3bSAwnL','uhjVDgvJDgvKs2v5D29Yza','oIbUB3qGB25Lig9Mia','DgLTzw91De1Z','l3bYB3rLy3rLza','lYOQ','zgvWzw5Kzw5JEsbJEwnSztOG','ihrOCM91z2GGAxqU','AxnfEhbVCNrbC3nPz25Tzw50','ycbYzxnVBhzLCYb0BW','zgvMAw5LtwfUAwzLC3q','B2jQzwn0','mJu0ndeYvKjuqKXb','A2v5','icH0AguGiG','CMvXDwLYzxm','DhnJB25MAwCUCgf0Ahm','ihvZzxmG','y2HLy2S','AxnbCNjHEuXPDgvYywXfEhbYzxnZAw9U','DhnJB25MAwDcyxnL','Bw9KDwXLigLKici','CM9VDa','zMLUza','Bw9KDwXLCW','Bw9KDwXLu3bLy2LMAwvY','Dg9vChbLCKnHC2u','iIbTDxn0igjLig9UzsbWyxrOihnLz21LBNqGB3rOzxiGDgHHBIaIChjVDgvJDgvKiG','iIb2Awv3kq','zxHPDenVzgu','Bw9KDwXLlwTPDdOGysaUDhmGCgX1z2LUig5LzwrZigb0C3HGigLUC3rHBgXLzcbPBIb0AguGChjVAMvJDa','ycbTDxn0igjLigfUig9IAMvJDcbSAxrLCMfSig9Mig51BwjLCNm','C29YDa','zNjVBq','iIbUyw1LCYbYzwfSBsaI','ChjVDgvJDgvK'];_0x37dd=function(){return _0x21876c;};return _0x37dd();}function mt(_0x57aa7b){const _0x446601=_0x19204c;let _0x140074=_0x2eeb7e(_0x57aa7b[_0x446601(0x25a)],_0x446601(0x178),xe);if(!_0x21fbd9(_0x140074))return new Set();try{let _0x5e06a8=JSON[_0x446601(0x229)](_0xd02df5(_0x140074,_0x446601(0x1af)))[_0x446601(0x17a)]??[];return new Set(_0x5e06a8[_0x446601(0x26f)](_0x5d9cdf=>_0x423331(_0x57aa7b[_0x446601(0x1a9)],_0x5d9cdf)));}catch{return new Set();}}function we(_0x34fa2e,_0x54a026){const _0x447b44=_0x19204c;if(_0x54a026[_0x447b44(0x281)](_0x34fa2e))return!0x0;if(!_0x21fbd9(_0x34fa2e))return!0x1;let _0x2bb261=_0xd02df5(_0x34fa2e,_0x447b44(0x1af))['slice'](0x0,0xc8);return _0x2bb261[_0x447b44(0x1a8)](M)||_0x2bb261[_0x447b44(0x282)]('\x22'+D);}function pt(_0x89bfe7,_0x2eead6,_0x1bc9bb,_0x561360){const _0xb18e31=_0x19204c;let _0x642910=new Set([..._0x561360][_0xb18e31(0x240)](_0x24f264=>!_0x1bc9bb['has'](_0x24f264)&&_0x21fbd9(_0x24f264))),_0x5a399a=[_0x2eeb7e(_0x2eead6[_0xb18e31(0x25a)],'.generated'),..._0x89bfe7['modules'][_0xb18e31(0x26f)](_0x407a46=>_0x2eeb7e(_0x2eead6[_0xb18e31(0x25a)],_0x407a46[_0xb18e31(0x1bb)],_0xb18e31(0x178)))];for(let _0x16af51 of _0x5a399a)if(_0x21fbd9(_0x16af51))for(let _0x22a829 of _0x4038d3(_0x16af51,{'withFileTypes':!0x0})){let _0x36c995=_0x2eeb7e(_0x16af51,_0x22a829[_0xb18e31(0x17b)]);_0x22a829['isFile']()&&!_0x1bc9bb[_0xb18e31(0x281)](_0x36c995)&&we(_0x36c995,new Set())&&_0x642910[_0xb18e31(0x2be)](_0x36c995);}return[..._0x642910][_0xb18e31(0x264)]();}function Se(_0x31e228,_0x11c6a5,_0x359539={}){const _0x973bfc=_0x19204c;let _0x254578=ft(_0x31e228,_0x11c6a5,_0x359539[_0x973bfc(0x237)]),_0x2c04ec=mt(_0x11c6a5),_0x4dd06d=[];for(let [_0x3cae50,_0x3ed46e]of _0x254578)if(!(_0x21fbd9(_0x3cae50)&&_0xd02df5(_0x3cae50,_0x973bfc(0x1af))===_0x3ed46e)){if(_0x21fbd9(_0x3cae50)&&!we(_0x3cae50,_0x2c04ec))throw new Error(_0x973bfc(0x18e)+y(_0x70c76d(_0x11c6a5['cwd'],_0x3cae50))+_0x973bfc(0x1e7));_0x4dd06d[_0x973bfc(0x1d5)](y(_0x70c76d(_0x11c6a5[_0x973bfc(0x1a9)],_0x3cae50))),_0x359539['check']||(_0x5b4b39(_0x20ad06(_0x3cae50),{'recursive':!0x0}),_0x455ecd(_0x3cae50,_0x3ed46e));}for(let _0x58451e of _0x11c6a5[_0x973bfc(0x19f)]['filter'](_0x419ed7=>_0x419ed7[_0x973bfc(0x2b9)]===_0x973bfc(0x244))){let _0xebd154=_0x423331(_0x11c6a5['cwd'],_0x58451e[_0x973bfc(0x2a8)]),_0xbbeeb3=_0xd02df5(_0xebd154,'utf8'),_0x35eed0=_0x20ad06(_0xebd154),_0x27349a=gt(_0xbbeeb3,_0x11c6a5,Object[_0x973bfc(0x228)]([...Z(_0x31e228,_0x11c6a5,void 0x0,void 0x0,_0x58451e['view'])][_0x973bfc(0x26f)](([_0x3270cb,_0x18fa68])=>[_0x3270cb,_0x18fa68[_0x973bfc(0x26f)](_0x4253f8=>J(_0x35eed0,_0x4253f8))])));_0x27349a!==_0xbbeeb3&&(_0x4dd06d[_0x973bfc(0x1d5)](y(_0x70c76d(_0x11c6a5[_0x973bfc(0x1a9)],_0xebd154))),_0x359539['check']||_0x455ecd(_0xebd154,_0x27349a));}let _0x1a7f23=pt(_0x31e228,_0x11c6a5,_0x254578,_0x2c04ec)['map'](_0x3342dd=>(_0x359539[_0x973bfc(0x256)]||_0x2a6de7(_0x3342dd),y(_0x70c76d(_0x11c6a5[_0x973bfc(0x1a9)],_0x3342dd))));return{'written':_0x4dd06d,'removed':_0x1a7f23};}var Q=/^\s*"/;function gt(_0x5356c1,_0x15002a,_0x3a6adc){const _0x368655=_0x19204c;let _0xd665dd=_0x5356c1[_0x368655(0x282)]('\x0d\x0a')?'\x0d\x0a':'\x0a',_0x7792d=_0x5356c1[_0x368655(0x1ff)](/\r?\n/),_0x3cff3f=_0x7792d[_0x368655(0x1a1)](_0x556d0b=>/^\s*"paths"\s*:\s*\{\s*$/[_0x368655(0x295)](_0x556d0b));if(_0x3cff3f<0x0)throw new Error(_0x368655(0x294));let _0x4852cc=-0x1;for(let _0x435c4a=_0x3cff3f+0x1;_0x435c4a<_0x7792d[_0x368655(0x1fb)];_0x435c4a++)if(/^\s*\}/[_0x368655(0x295)](_0x7792d[_0x435c4a])){_0x4852cc=_0x435c4a;break;}if(_0x4852cc<0x0)throw new Error('module-kit:\x20the\x20tsconfig\x27s\x20`paths`\x20object\x20is\x20never\x20closed');let _0x515d8c=_0x433d7f=>/^\s*"([^"]+)"\s*:/[_0x368655(0x2ce)](_0x433d7f)?.[0x1],_0x5223f6=_0x7792d[_0x368655(0x26a)](_0x3cff3f+0x1,_0x4852cc)['find'](_0x48933b=>Q['test'](_0x48933b)),_0x3c6abb=_0x5223f6?_0x5223f6[_0x368655(0x26a)](0x0,_0x5223f6[_0x368655(0x22d)]('\x22')):'\x20'[_0x368655(0x1ae)](_0x7792d[_0x3cff3f][_0x368655(0x22d)](_0x368655(0x2c7))+0x2),_0x31e9b6=_0x7792d[_0x368655(0x26a)](_0x3cff3f+0x1,_0x4852cc)[_0x368655(0x240)](_0x271cf0=>{let _0x3dd4fa=_0x515d8c(_0x271cf0);return _0x3dd4fa===void 0x0||!se(_0x15002a,_0x3dd4fa);}),_0x2506e3=[...Object[_0x368655(0x27b)](_0x3a6adc)[_0x368655(0x264)]()[_0x368655(0x26f)](_0x13a002=>''+_0x3c6abb+JSON[_0x368655(0x2aa)](_0x13a002)+':\x20'+JSON[_0x368655(0x2aa)](_0x3a6adc[_0x13a002])+','),..._0x31e9b6],_0x280e75=-0x1;for(let _0x575291=0x0;_0x575291<_0x2506e3[_0x368655(0x1fb)];_0x575291++)Q[_0x368655(0x295)](_0x2506e3[_0x575291])&&(_0x280e75=_0x575291);_0x280e75>=0x0&&(_0x2506e3[_0x280e75]=_0x2506e3[_0x280e75][_0x368655(0x223)](/,\s*$/,''));for(let _0x2b4989=0x0;_0x2b4989<_0x280e75;_0x2b4989++)Q[_0x368655(0x295)](_0x2506e3[_0x2b4989])&&!/,\s*$/[_0x368655(0x295)](_0x2506e3[_0x2b4989])&&(_0x2506e3[_0x2b4989]=_0x2506e3[_0x2b4989][_0x368655(0x223)](/\s*$/,'')+',');return[..._0x7792d['slice'](0x0,_0x3cff3f+0x1),..._0x2506e3,..._0x7792d[_0x368655(0x26a)](_0x4852cc)]['join'](_0xd665dd);}import{existsSync as _0x34ca1d}from'node:fs';import{join as _0x2bc043,relative as _0x42bc2b}from'node:path';import{existsSync as _0x42147e,readdirSync as _0x10e8f2,readFileSync as _0x11a860}from'node:fs';import{join as _0x41ee19,relative as _0x43d1a5}from'node:path';import _0x2ab9f5 from'typescript-6';function be(_0x834bc8){const _0xf03f96=_0x19204c;return _0x10e8f2(_0x834bc8,{'withFileTypes':!0x0})['filter'](_0x27d846=>_0x27d846[_0xf03f96(0x186)]())[_0xf03f96(0x26f)](_0x45dc45=>_0x45dc45['name'])[_0xf03f96(0x264)]();}function yt(_0x112740){const _0x4df5d1=_0x19204c;let _0x33aa9f=[],_0x2400dc=_0x30bf35=>{const _0x14886d=_0x5936;if(_0x42147e(_0x41ee19(_0x30bf35,'manifest.ts'))){_0x33aa9f[_0x14886d(0x1d5)](_0x30bf35);return;}for(let _0x1f13e0 of be(_0x30bf35))!_0x112740[_0x14886d(0x1c5)][_0x14886d(0x281)](_0x1f13e0)&&!_0x1f13e0['startsWith']('.')&&_0x2400dc(_0x41ee19(_0x30bf35,_0x1f13e0));};for(let _0x49abd9 of be(_0x112740[_0x4df5d1(0x25a)]))!_0x112740['ignore'][_0x4df5d1(0x281)](_0x49abd9)&&!_0x49abd9[_0x4df5d1(0x1a8)]('.')&&_0x2400dc(_0x41ee19(_0x112740[_0x4df5d1(0x25a)],_0x49abd9));return _0x33aa9f;}function ne(_0xe3e030){const _0x109c25=_0x19204c;for(;;)if(_0x2ab9f5['isSatisfiesExpression'](_0xe3e030)||_0x2ab9f5[_0x109c25(0x22b)](_0xe3e030)||_0x2ab9f5[_0x109c25(0x292)](_0xe3e030))_0xe3e030=_0xe3e030[_0x109c25(0x1d2)];else{if(_0x2ab9f5[_0x109c25(0x279)](_0xe3e030)&&_0xe3e030[_0x109c25(0x1b9)][_0x109c25(0x1fb)]===0x1&&_0x2ab9f5['isIdentifier'](_0xe3e030[_0x109c25(0x1d2)])&&_0xe3e030[_0x109c25(0x1d2)][_0x109c25(0x286)]===_0x109c25(0x24e))_0xe3e030=_0xe3e030[_0x109c25(0x1b9)][0x0];else return _0xe3e030;}}function xt(_0x3a329b){const _0x4d1b22=_0x19204c;let _0x40e3d3=ne(_0x3a329b);if(_0x2ab9f5[_0x4d1b22(0x1ab)](_0x40e3d3)||_0x2ab9f5[_0x4d1b22(0x194)](_0x40e3d3))return _0x40e3d3['text'];if(_0x40e3d3['kind']===_0x2ab9f5['SyntaxKind']['TrueKeyword'])return!0x0;if(_0x40e3d3[_0x4d1b22(0x242)]===_0x2ab9f5[_0x4d1b22(0x180)]['FalseKeyword'])return!0x1;if(_0x2ab9f5[_0x4d1b22(0x257)](_0x40e3d3)){let _0x567c30=[];for(let _0x5df68b of _0x40e3d3['elements']){if(!_0x2ab9f5[_0x4d1b22(0x1ab)](_0x5df68b)&&!_0x2ab9f5[_0x4d1b22(0x194)](_0x5df68b))return;_0x567c30[_0x4d1b22(0x1d5)](_0x5df68b[_0x4d1b22(0x286)]);}return _0x567c30;}}var wt={'id':_0x19204c(0x291),'version':_0x19204c(0x291),'requireModules':_0x19204c(0x2da),'optionalModules':_0x19204c(0x2da),'core':_0x19204c(0x1e3)};function St(_0x5ad69b,_0x52e8f8,_0x4a0a4f={}){const _0x4a0c8b=_0x19204c;let _0x246ef3=_0x2ab9f5[_0x4a0c8b(0x1fe)](_0x5ad69b,_0x11a860(_0x5ad69b,_0x4a0c8b(0x1af)),_0x2ab9f5[_0x4a0c8b(0x20d)][_0x4a0c8b(0x1c4)],!0x0),_0x3a4e3a=[],_0x60c1ff={},_0x5e6fe3=_0x2a1fc1=>_0x246ef3['getLineAndCharacterOfPosition'](_0x2a1fc1['getStart'](_0x246ef3))[_0x4a0c8b(0x221)]+0x1,_0xaaf510=(_0x41f89f,_0x5b9340)=>_0x3a4e3a[_0x4a0c8b(0x1d5)]({'file':_0x52e8f8,'line':_0x5e6fe3(_0x41f89f),'message':_0x5b9340}),_0x1fc5d9=_0x246ef3['statements'][_0x4a0c8b(0x25b)](_0x9c6909=>_0x2ab9f5[_0x4a0c8b(0x24c)](_0x9c6909)&&!_0x9c6909[_0x4a0c8b(0x1c9)]),_0x131a43=_0x1fc5d9?ne(_0x1fc5d9['expression']):void 0x0;if(!_0x131a43||!_0x2ab9f5[_0x4a0c8b(0x1ec)](_0x131a43))return _0xaaf510(_0x1fc5d9??_0x246ef3,_0x4a0c8b(0x20a)),{'manifest':null,'extra':_0x60c1ff,'issues':_0x3a4e3a};let _0x9a2e57={};for(let _0x990cc9 of _0x131a43[_0x4a0c8b(0x2bc)]){if(!_0x2ab9f5[_0x4a0c8b(0x1a2)](_0x990cc9)||!(_0x2ab9f5['isIdentifier'](_0x990cc9[_0x4a0c8b(0x17b)])||_0x2ab9f5[_0x4a0c8b(0x1ab)](_0x990cc9[_0x4a0c8b(0x17b)]))){_0xaaf510(_0x990cc9,'manifest\x20entries\x20must\x20be\x20plain\x20`key:\x20value`\x20pairs');continue;}let _0x4d87bc=_0x990cc9[_0x4a0c8b(0x17b)]['text'],_0x3a44db=wt[_0x4d87bc],_0x3bcfcb=_0x3a44db??_0x4a0a4f[_0x4d87bc];if(!_0x3bcfcb){_0xaaf510(_0x990cc9,_0x4a0c8b(0x28e)+_0x4d87bc+'\x22');continue;}if(_0x3bcfcb===_0x4a0c8b(0x1f6)){let _0x1ea2d6=ne(_0x990cc9['initializer']);_0x2ab9f5[_0x4a0c8b(0x23a)](_0x1ea2d6)?_0x60c1ff[_0x4d87bc]={'identifier':_0x1ea2d6[_0x4a0c8b(0x286)]}:_0xaaf510(_0x990cc9['initializer'],_0x4a0c8b(0x2a4)+_0x4d87bc+'\x22\x20must\x20name\x20a\x20value\x20(an\x20identifier)');continue;}let _0x225c8a=xt(_0x990cc9[_0x4a0c8b(0x20f)]);if(!(_0x225c8a!==void 0x0&&(_0x3bcfcb==='array'?Array[_0x4a0c8b(0x21d)](_0x225c8a):typeof _0x225c8a===_0x3bcfcb))){_0xaaf510(_0x990cc9[_0x4a0c8b(0x20f)],_0x4a0c8b(0x2a4)+_0x4d87bc+'\x22\x20must\x20be\x20a\x20literal\x20'+(_0x3bcfcb===_0x4a0c8b(0x2da)?_0x4a0c8b(0x1c2):_0x3bcfcb));continue;}_0x3a44db?_0x9a2e57[_0x4d87bc]=_0x225c8a:_0x60c1ff[_0x4d87bc]=_0x225c8a;}return typeof _0x9a2e57['id']!=_0x4a0c8b(0x291)||_0x9a2e57['id']===''?(_0xaaf510(_0x131a43,_0x4a0c8b(0x220)),{'manifest':null,'extra':_0x60c1ff,'issues':_0x3a4e3a}):{'manifest':_0x9a2e57,'extra':_0x60c1ff,'issues':_0x3a4e3a};}function ke(_0x376fb6){const _0x3dd822=_0x19204c;let _0x550496=[];return _0x42147e(_0x376fb6['root'])?{'found':yt(_0x376fb6)['map'](_0x4de687=>{const _0x476061=_0x5936;let _0x895e43=y(_0x43d1a5(_0x376fb6[_0x476061(0x1a9)],_0x41ee19(_0x4de687,_0x476061(0x231)))),_0xc7dc8d=St(_0x41ee19(_0x4de687,_0x476061(0x231)),_0x895e43,_0x376fb6[_0x476061(0x1b7)]);return _0x550496[_0x476061(0x1d5)](..._0xc7dc8d[_0x476061(0x271)]),{'dir':_0x4de687,'path':y(_0x43d1a5(_0x376fb6[_0x476061(0x25a)],_0x4de687)),'manifest':_0xc7dc8d[_0x476061(0x284)],'extra':_0xc7dc8d[_0x476061(0x202)]};}),'issues':_0x550496}:{'found':[],'issues':[{'file':y(_0x43d1a5(_0x376fb6[_0x3dd822(0x1a9)],_0x376fb6[_0x3dd822(0x25a)])),'line':0x1,'message':_0x3dd822(0x191)}]};}var bt=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Oe(_0x307275,_0x29a398){const _0x57f6e0=_0x19204c;return _0x307275[_0x57f6e0(0x240)](_0x541208=>_0x541208['manifest']!==null)['map'](_0x6d4640=>({'id':_0x6d4640[_0x57f6e0(0x284)]['id'],'core':_0x6d4640[_0x57f6e0(0x284)]['core']===!0x0,'requires':[..._0x6d4640['manifest'][_0x57f6e0(0x182)]??[]],'optional':[..._0x6d4640[_0x57f6e0(0x284)][_0x57f6e0(0x2d5)]??[]],'file':_0x29a398(_0x6d4640)}));}function Me(_0x15559d){const _0x1550bb=_0x19204c;let _0x36a1ff=[],_0xb034ec=(_0x5ac383,_0x4072a9)=>_0x36a1ff[_0x1550bb(0x1d5)]({'file':_0x5ac383[_0x1550bb(0x2a8)],'line':0x1,'message':_0x4072a9}),_0x214293=new Map();for(let _0x32aaaf of _0x15559d){let _0x5f459c=_0x214293['get'](_0x32aaaf['id']);_0x5f459c?_0xb034ec(_0x32aaaf,'module\x20id\x20\x22'+_0x32aaaf['id']+_0x1550bb(0x1e0)+_0x5f459c[_0x1550bb(0x2a8)]):_0x214293[_0x1550bb(0x293)](_0x32aaaf['id'],_0x32aaaf),bt[_0x1550bb(0x295)](_0x32aaaf['id'])||_0xb034ec(_0x32aaaf,_0x1550bb(0x259)+_0x32aaaf['id']+_0x1550bb(0x269));}for(let _0x1d1e4e of _0x15559d){for(let [_0xeebe5f,_0x2f8069]of[[_0x1550bb(0x182),_0x1d1e4e[_0x1550bb(0x253)]],[_0x1550bb(0x2d5),_0x1d1e4e['optional']]]){new Set(_0x2f8069)['size']!==_0x2f8069[_0x1550bb(0x1fb)]&&_0xb034ec(_0x1d1e4e,_0xeebe5f+_0x1550bb(0x2af));for(let _0x524133 of _0x2f8069){let _0x5630eb=_0x214293[_0x1550bb(0x1bf)](_0x524133);_0x524133===_0x1d1e4e['id']?_0xb034ec(_0x1d1e4e,_0xeebe5f+_0x1550bb(0x29d)):_0x5630eb?!_0x1d1e4e[_0x1550bb(0x2d3)]&&_0x5630eb[_0x1550bb(0x2d3)]?_0xb034ec(_0x1d1e4e,_0xeebe5f+'\x20\x22'+_0x524133+_0x1550bb(0x2d9)):_0x1d1e4e[_0x1550bb(0x2d3)]&&!_0x5630eb['core']&&_0xb034ec(_0x1d1e4e,_0x1550bb(0x21f)+_0x1d1e4e['id']+_0x1550bb(0x21b)+_0x524133+'\x22'):_0xb034ec(_0x1d1e4e,_0xeebe5f+'\x20\x22'+_0x524133+_0x1550bb(0x1d8));}}for(let _0x1c0119 of _0x1d1e4e[_0x1550bb(0x253)][_0x1550bb(0x240)](_0x1e0e68=>_0x1d1e4e['optional'][_0x1550bb(0x282)](_0x1e0e68)))_0xb034ec(_0x1d1e4e,'\x22'+_0x1c0119+'\x22\x20is\x20in\x20both\x20requireModules\x20and\x20optionalModules;\x20list\x20it\x20in\x20one');}let _0x5a9290=vt(new Map(_0x15559d[_0x1550bb(0x26f)](_0x489dc2=>[_0x489dc2['id'],Ce(_0x489dc2,_0x214293)])));return _0x5a9290&&_0xb034ec(_0x214293[_0x1550bb(0x1bf)](_0x5a9290[0x0]),_0x1550bb(0x24a)+_0x5a9290['join']('\x20->\x20')),_0x36a1ff;}function Ce(_0x29cfa9,_0x5b28fe){const _0x48f8aa=_0x19204c;let _0x380ed4=[..._0x29cfa9[_0x48f8aa(0x253)],..._0x29cfa9[_0x48f8aa(0x1e1)]][_0x48f8aa(0x240)](_0x4e54b1=>_0x5b28fe['has'](_0x4e54b1)&&_0x4e54b1!==_0x29cfa9['id']);return _0x29cfa9[_0x48f8aa(0x2d3)]?_0x380ed4:[...new Set([...[..._0x5b28fe[_0x48f8aa(0x2a0)]()][_0x48f8aa(0x240)](_0x5cc2b1=>_0x5cc2b1['core'])[_0x48f8aa(0x26f)](_0x4dd817=>_0x4dd817['id']),..._0x380ed4])];}function vt(_0x377309){const _0x4a136a=_0x19204c;let _0x2934fe=new Map(),_0x2101aa=[],_0x51fc5b=_0x2e5c2a=>{const _0x5232b6=_0x5936;_0x2934fe[_0x5232b6(0x293)](_0x2e5c2a,0x1),_0x2101aa[_0x5232b6(0x1d5)](_0x2e5c2a);for(let _0x126806 of _0x377309[_0x5232b6(0x1bf)](_0x2e5c2a)??[]){if(_0x2934fe[_0x5232b6(0x1bf)](_0x126806)===0x1)return[..._0x2101aa[_0x5232b6(0x26a)](_0x2101aa['indexOf'](_0x126806)),_0x126806];if(!_0x2934fe[_0x5232b6(0x281)](_0x126806)){let _0x591702=_0x51fc5b(_0x126806);if(_0x591702)return _0x591702;}}return _0x2101aa[_0x5232b6(0x1c7)](),_0x2934fe[_0x5232b6(0x293)](_0x2e5c2a,0x2),null;};for(let _0x2e7fd6 of[..._0x377309[_0x4a136a(0x27b)]()][_0x4a136a(0x264)]())if(!_0x2934fe[_0x4a136a(0x281)](_0x2e7fd6)){let _0x5aa050=_0x51fc5b(_0x2e7fd6);if(_0x5aa050)return _0x5aa050;}return null;}function _0x5936(_0x5c638f,_0x576d60){_0x5c638f=_0x5c638f-0x177;const _0x37dd68=_0x37dd();let _0x59364a=_0x37dd68[_0x5c638f];if(_0x5936['IRlOoJ']===undefined){var _0x1465a0=function(_0x1dbdba){const _0x32bd26='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4228e2='',_0x31aab7='';for(let _0x2e1c26=0x0,_0x82f005,_0x398133,_0x4884fd=0x0;_0x398133=_0x1dbdba['charAt'](_0x4884fd++);~_0x398133&&(_0x82f005=_0x2e1c26%0x4?_0x82f005*0x40+_0x398133:_0x398133,_0x2e1c26++%0x4)?_0x4228e2+=String['fromCharCode'](0xff&_0x82f005>>(-0x2*_0x2e1c26&0x6)):0x0){_0x398133=_0x32bd26['indexOf'](_0x398133);}for(let _0x3fc4a4=0x0,_0x1e849b=_0x4228e2['length'];_0x3fc4a4<_0x1e849b;_0x3fc4a4++){_0x31aab7+='%'+('00'+_0x4228e2['charCodeAt'](_0x3fc4a4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x31aab7);};_0x5936['lDhupf']=_0x1465a0,_0x5936['Hoqfzv']={},_0x5936['IRlOoJ']=!![];}const _0x51d917=_0x37dd68[0x0],_0x432954=_0x5c638f+_0x51d917,_0x4afbff=_0x5936['Hoqfzv'][_0x432954];return!_0x4afbff?(_0x59364a=_0x5936['lDhupf'](_0x59364a),_0x5936['Hoqfzv'][_0x432954]=_0x59364a):_0x59364a=_0x4afbff,_0x59364a;}function Ee(_0x69126f){const _0xb9f53d=_0x19204c;let _0x45eafa=new Map(_0x69126f[_0xb9f53d(0x26f)](_0x39a97f=>[_0x39a97f['id'],_0x39a97f])),_0x5a0fd5=new Map(_0x69126f[_0xb9f53d(0x26f)](_0x239c5a=>[_0x239c5a['id'],new Set(Ce(_0x239c5a,_0x45eafa))])),_0x583877=[];for(;_0x5a0fd5['size']>0x0;){let _0x1fed95=[..._0x5a0fd5][_0xb9f53d(0x240)](([,_0x33ac31])=>[..._0x33ac31][_0xb9f53d(0x1d1)](_0x14c16d=>!_0x5a0fd5[_0xb9f53d(0x281)](_0x14c16d)))[_0xb9f53d(0x26f)](([_0x6959df])=>_0x6959df)[_0xb9f53d(0x264)](),_0x29093f=_0x1fed95['length']>0x0?_0x1fed95:[..._0x5a0fd5[_0xb9f53d(0x27b)]()][_0xb9f53d(0x264)]();for(let _0xe02528 of _0x29093f)_0x583877[_0xb9f53d(0x1d5)](_0xe02528),_0x5a0fd5[_0xb9f53d(0x287)](_0xe02528);}return _0x583877;}import{readFileSync as _0x1bf0f8}from'node:fs';import _0xdd744d from'typescript-6';var j=(_0x207d55,_0x31fb23)=>(_0xdd744d['canHaveModifiers'](_0x207d55)?_0xdd744d[_0x19204c(0x181)](_0x207d55):void 0x0)?.['some'](_0x239111=>_0x239111[_0x19204c(0x242)]===_0x31fb23)??!0x1,Ot=_0xffa60f=>{const _0x53c21e=_0x19204c;if(!_0xffa60f)return!0x1;let _0x41f233=_0xffa60f;for(;_0xdd744d['isParenthesizedExpression'](_0x41f233)||_0xdd744d[_0x53c21e(0x22b)](_0x41f233)||_0xdd744d[_0x53c21e(0x239)](_0x41f233);)_0x41f233=_0x41f233[_0x53c21e(0x1d2)];return _0xdd744d[_0x53c21e(0x224)](_0x41f233)||_0xdd744d[_0x53c21e(0x26d)](_0x41f233)||_0xdd744d[_0x53c21e(0x23a)](_0x41f233)||_0xdd744d[_0x53c21e(0x198)](_0x41f233)||_0xdd744d['isCallExpression'](_0x41f233);};function Mt(_0xaeb4a4){const _0x5b4dff=_0x19204c;for(let _0x39d6c9 of _0xaeb4a4[_0x5b4dff(0x1f3)])if(_0xdd744d[_0x5b4dff(0x1c8)](_0x39d6c9)&&j(_0x39d6c9,_0xdd744d[_0x5b4dff(0x180)]['ExportKeyword'])&&j(_0x39d6c9,_0xdd744d[_0x5b4dff(0x180)]['DefaultKeyword']))return _0x39d6c9;let _0x259528=_0xaeb4a4[_0x5b4dff(0x1f3)]['find'](_0x476711=>_0xdd744d[_0x5b4dff(0x24c)](_0x476711)&&!_0x476711[_0x5b4dff(0x1c9)]&&_0xdd744d[_0x5b4dff(0x23a)](_0x476711[_0x5b4dff(0x1d2)]));if(!_0x259528)return;let _0x873a18=_0x259528[_0x5b4dff(0x1d2)][_0x5b4dff(0x286)];return _0xaeb4a4['statements'][_0x5b4dff(0x25b)](_0x3bac6b=>_0xdd744d['isClassDeclaration'](_0x3bac6b)&&_0x3bac6b[_0x5b4dff(0x17b)]?.['text']===_0x873a18);}function Re(_0x12d907,_0xfc152f,_0xc271c2={'hooks':[_0x19204c(0x1b6),_0x19204c(0x207)],'timeoutsField':'timeouts'}){const _0x15112f=_0x19204c;let _0x3c0f23=_0xdd744d[_0x15112f(0x1fe)](_0x12d907,_0x1bf0f8(_0x12d907,_0x15112f(0x1af)),_0xdd744d[_0x15112f(0x20d)][_0x15112f(0x1c4)],!0x0,_0x12d907[_0x15112f(0x22e)](_0x15112f(0x1ce))?_0xdd744d[_0x15112f(0x26c)][_0x15112f(0x185)]:_0xdd744d['ScriptKind']['TS']),_0x1f0737=[],_0x5dfac4=_0x27ae6a=>_0x3c0f23['getLineAndCharacterOfPosition'](_0x27ae6a[_0x15112f(0x1cd)](_0x3c0f23))[_0x15112f(0x221)]+0x1,_0x1c11ef=Mt(_0x3c0f23);if(!_0x1c11ef)return{'members':[],'hooks':[],'issues':[{'file':_0xfc152f,'line':0x1,'message':'must\x20`export\x20default`\x20a\x20class:\x20the\x20module\x27s\x20members\x20are\x20its\x20methods\x20and\x20function\x20properties'}]};let _0x432234=[],_0x6ad706=[],_0x418b34=new Map();for(let _0x3d4dec of _0x1c11ef[_0x15112f(0x177)]){if(!_0xdd744d[_0x15112f(0x1ea)](_0x3d4dec)||!j(_0x3d4dec,_0xdd744d[_0x15112f(0x180)]['StaticKeyword'])||!_0xdd744d['isIdentifier'](_0x3d4dec['name'])||_0x3d4dec[_0x15112f(0x17b)][_0x15112f(0x286)]!==_0xc271c2[_0x15112f(0x205)])continue;let _0x3bf092=_0x3d4dec['initializer'];if(!_0x3bf092||!_0xdd744d[_0x15112f(0x1ec)](_0x3bf092)){_0x1f0737['push']({'file':_0xfc152f,'line':_0x5dfac4(_0x3d4dec),'message':_0x15112f(0x2c8)+_0xc271c2[_0x15112f(0x205)]+_0x15112f(0x263)});continue;}for(let _0x44082e of _0x3bf092['properties'])_0xdd744d[_0x15112f(0x1a2)](_0x44082e)&&(_0xdd744d[_0x15112f(0x23a)](_0x44082e[_0x15112f(0x17b)])||_0xdd744d[_0x15112f(0x1ab)](_0x44082e[_0x15112f(0x17b)]))&&_0xdd744d[_0x15112f(0x2b8)](_0x44082e[_0x15112f(0x20f)])?_0x418b34['set'](_0x44082e['name']['text'],Number(_0x44082e[_0x15112f(0x20f)]['text']['replace'](/_/g,''))):_0x1f0737[_0x15112f(0x1d5)]({'file':_0xfc152f,'line':_0x5dfac4(_0x44082e),'message':'`static\x20'+_0xc271c2['timeoutsField']+_0x15112f(0x270)});}for(let _0x560119 of _0x1c11ef[_0x15112f(0x177)]){if(!(_0xdd744d[_0x15112f(0x1ea)](_0x560119)||_0xdd744d[_0x15112f(0x211)](_0x560119))||!_0x560119[_0x15112f(0x17b)]||_0xdd744d[_0x15112f(0x1aa)](_0x560119[_0x15112f(0x17b)])||j(_0x560119,_0xdd744d[_0x15112f(0x180)][_0x15112f(0x2a5)])||j(_0x560119,_0xdd744d[_0x15112f(0x180)][_0x15112f(0x1bc)])||!(_0xdd744d['isIdentifier'](_0x560119[_0x15112f(0x17b)])||_0xdd744d[_0x15112f(0x1ab)](_0x560119['name'])))continue;let _0x51825d=_0x560119[_0x15112f(0x17b)][_0x15112f(0x286)];if(_0xc271c2['hooks'][_0x15112f(0x282)](_0x51825d)){j(_0x560119,_0xdd744d['SyntaxKind'][_0x15112f(0x1f5)])&&_0x1f0737['push']({'file':_0xfc152f,'line':_0x5dfac4(_0x560119),'message':_0x51825d+_0x15112f(0x2ad)}),_0x6ad706[_0x15112f(0x1d5)](_0x51825d);continue;}if(_0xdd744d['isPropertyDeclaration'](_0x560119)&&!Ot(_0x560119[_0x15112f(0x20f)]))continue;let _0x541c80=_0x418b34['get'](_0x51825d);_0x432234[_0x15112f(0x1d5)]({'name':_0x51825d,'visibility':j(_0x560119,_0xdd744d[_0x15112f(0x180)][_0x15112f(0x245)])?'protected':'public',..._0x541c80!==void 0x0?{'timeoutMs':_0x541c80}:{}});}for(let _0x3911a4 of _0x418b34[_0x15112f(0x27b)]())_0x432234['some'](_0x1a980f=>_0x1a980f[_0x15112f(0x17b)]===_0x3911a4)||_0x1f0737[_0x15112f(0x1d5)]({'file':_0xfc152f,'line':_0x5dfac4(_0x1c11ef),'message':_0x15112f(0x2c8)+_0xc271c2[_0x15112f(0x205)]+'`\x20names\x20\x22'+_0x3911a4+_0x15112f(0x1d3)});return{'members':_0x432234,'hooks':_0x6ad706,'issues':_0x1f0737};}function Et(_0x167cf8,_0x19264f){const _0x3e50b0=_0x19204c;return(_0x167cf8[_0x3e50b0(0x22a)]?_0x167cf8[_0x3e50b0(0x22a)][_0x3e50b0(0x26f)](_0x372f09=>({'realm':_0x372f09,'file':_0x372f09+'/index.ts'})):[{'realm':null,'file':_0x3e50b0(0x2ae)}])[_0x3e50b0(0x240)](_0x542e10=>_0x34ca1d(_0x2bc043(_0x19264f,_0x542e10[_0x3e50b0(0x2a8)]))||_0x34ca1d(_0x2bc043(_0x19264f,_0x542e10[_0x3e50b0(0x2a8)]+'x')))[_0x3e50b0(0x26f)](_0x4c12ba=>({'realm':_0x4c12ba[_0x3e50b0(0x19a)],'file':_0x34ca1d(_0x2bc043(_0x19264f,_0x4c12ba[_0x3e50b0(0x2a8)]))?_0x4c12ba[_0x3e50b0(0x2a8)]:_0x4c12ba[_0x3e50b0(0x2a8)]+'x'}));}function Pe(_0xb0d826){const _0x5b32e7=_0x19204c;let _0x2e5929=_0x4e87dd=>y(_0x42bc2b(_0xb0d826[_0x5b32e7(0x1a9)],_0x4e87dd)),{found:_0x507279,issues:_0xad9ce2}=ke(_0xb0d826),_0x62458d=Oe(_0x507279,_0x2b0c84=>_0x2e5929(_0x2bc043(_0x2b0c84['dir'],_0x5b32e7(0x231))));_0xad9ce2[_0x5b32e7(0x1d5)](...Me(_0x62458d));let _0x588a39=Ee(_0x62458d),_0x1f74e7=[];for(let _0x33b3e8 of _0x507279){if(!_0x33b3e8[_0x5b32e7(0x284)])continue;let _0x133c5f=_0x33b3e8[_0x5b32e7(0x284)]['id'],_0x563130=Et(_0xb0d826,_0x33b3e8[_0x5b32e7(0x18b)])[_0x5b32e7(0x26f)](({realm:_0x212f56,file:_0x471bc1})=>{const _0x5d8d9a=_0x5b32e7;let _0x7f685d=Re(_0x2bc043(_0x33b3e8[_0x5d8d9a(0x18b)],_0x471bc1),_0x2e5929(_0x2bc043(_0x33b3e8[_0x5d8d9a(0x18b)],_0x471bc1)),{'hooks':_0xb0d826[_0x5d8d9a(0x203)],'timeoutsField':_0xb0d826['timeoutsField']});_0xad9ce2[_0x5d8d9a(0x1d5)](..._0x7f685d[_0x5d8d9a(0x271)]);let _0x71f2c6=_0x212f56?fe(_0x212f56):null;return{'realm':_0x212f56,'key':_0x71f2c6,'file':_0x471bc1,'hooks':_0x7f685d[_0x5d8d9a(0x203)],'members':_0x7f685d[_0x5d8d9a(0x177)]['map'](_0x4df17a=>({..._0x4df17a,'event':_0x71f2c6?_0x133c5f+':'+_0x71f2c6+':'+_0x4df17a[_0x5d8d9a(0x17b)]:_0x133c5f+':'+_0x4df17a[_0x5d8d9a(0x17b)]}))};});_0x1f74e7['push']({'id':_0x133c5f,'version':_0x33b3e8[_0x5b32e7(0x284)][_0x5b32e7(0x1e4)]??_0x5b32e7(0x2a6),'core':_0x33b3e8[_0x5b32e7(0x284)][_0x5b32e7(0x2d3)]===!0x0,'path':_0x33b3e8['path'],'requires':[..._0x33b3e8[_0x5b32e7(0x284)][_0x5b32e7(0x182)]??[]],'optional':[..._0x33b3e8[_0x5b32e7(0x284)]['optionalModules']??[]],'realms':_0x563130,'extra':_0x33b3e8[_0x5b32e7(0x202)],'startOrder':_0x588a39[_0x5b32e7(0x22d)](_0x133c5f)+0x1});}let _0x3f0bfe=_0x1f74e7[_0x5b32e7(0x240)]((_0x1e300e,_0x25d694)=>_0x1f74e7['findIndex'](_0x121a16=>_0x121a16['id']===_0x1e300e['id'])===_0x25d694);return _0x3f0bfe[_0x5b32e7(0x264)]((_0x1f289b,_0x45215e)=>_0x1f289b['startOrder']-_0x45215e['startOrder']),{'modules':_0x3f0bfe,'issues':oe(_0xad9ce2)};}var oe=_0x18cd29=>[..._0x18cd29][_0x19204c(0x264)]((_0x5286ee,_0x3cdb8c)=>_0x5286ee[_0x19204c(0x2a8)][_0x19204c(0x1b2)](_0x3cdb8c[_0x19204c(0x2a8)])||_0x5286ee[_0x19204c(0x221)]-_0x3cdb8c[_0x19204c(0x221)]||_0x5286ee['message'][_0x19204c(0x1b2)](_0x3cdb8c['message']));function Pt(_0x2ef191,_0x371754={}){const _0xcaa8c1=_0x19204c;let _0x494a4d=Pe(_0x2ef191),_0x57d2e2=oe([..._0x494a4d[_0xcaa8c1(0x271)],...pe(_0x494a4d,_0x2ef191)]),_0x1e2386=_0x371754[_0xcaa8c1(0x299)]!==!0x1&&_0x494a4d[_0xcaa8c1(0x271)][_0xcaa8c1(0x1fb)]===0x0?Se(_0x494a4d,_0x2ef191,{'check':_0x371754[_0xcaa8c1(0x256)],'plugins':_0x371754[_0xcaa8c1(0x237)]}):null;return{'graph':_0x494a4d,'issues':_0x57d2e2,'generated':_0x1e2386};}async function It(_0x18d324){const _0x1562a6=_0x19204c;if(_0x18d324['plugins'][_0x1562a6(0x22c)](_0xdddaf7=>/\.[cm]?tsx?$/['test'](_0xdddaf7))){let _0x3ecda4=_0xf9faf5(_0x287ac4(_0x18d324[_0x1562a6(0x1a9)],'package.json')),_0x58022f;try{_0x58022f=_0x3ecda4[_0x1562a6(0x206)]('tsx/esm/api');}catch{throw new Error(_0x1562a6(0x262));}let {register:_0x1f81d6}=await import(_0x59dc7b(_0x58022f)[_0x1562a6(0x20e)]);_0x1f81d6();}let _0x2b59cd=[];for(let _0x1db5b7 of _0x18d324['plugins']){let _0x1418c4=(await import(_0x59dc7b(_0x1db5b7)[_0x1562a6(0x20e)]))[_0x1562a6(0x193)];_0x1418c4&&typeof _0x1418c4==_0x1562a6(0x24f)&&_0x1562a6(0x193)in _0x1418c4&&(_0x1418c4=_0x1418c4[_0x1562a6(0x193)]);let _0x19a082=typeof _0x1418c4==_0x1562a6(0x22f)?_0x1418c4(_0x18d324[_0x1562a6(0x1a9)]):_0x1418c4;if(!_0x19a082||typeof _0x19a082[_0x1562a6(0x17a)]!='function')throw new Error(_0x1562a6(0x18e)+_0x1db5b7+_0x1562a6(0x187));_0x2b59cd['push'](_0x19a082);}return _0x2b59cd;}async function X(_0x3fa591,_0x43882a={}){const _0x5a89a6=_0x19204c;let _0x2ea334=_0x43882a['plugins']??await It(_0x3fa591),_0x3124b3=Pt(_0x3fa591,{..._0x43882a,'plugins':_0x2ea334});if(_0x3124b3[_0x5a89a6(0x297)]&&!_0x43882a[_0x5a89a6(0x256)]){let _0x398753={'graph':_0x3124b3[_0x5a89a6(0x1b0)],'config':_0x3fa591,'header':M,'dirOf':_0x18421e=>_0x287ac4(_0x3fa591[_0x5a89a6(0x25a)],_0x18421e[_0x5a89a6(0x1bb)])};for(let _0x28f957 of _0x2ea334){let _0xf189e3=await _0x28f957['after']?.(_0x398753);_0xf189e3&&_0x3124b3['generated']['written'][_0x5a89a6(0x1d5)](..._0xf189e3);}}return _0x3124b3;}var je='usage:\x20module-kit\x20<generate|check|scan>\x20[--config\x20<file>]\x20[--check]\x20[--json]';function Fe(_0x174c16,_0x5b65cb){const _0x5dac1b=_0x19204c;return _0x174c16[_0x5dac1b(0x282)]('--'+_0x5b65cb);}function jt(_0x34ac6d,_0x537d41){const _0x3cb67a=_0x19204c;let _0x2bf0bc=_0x34ac6d[_0x3cb67a(0x22d)]('--'+_0x537d41);return _0x2bf0bc>=0x0?_0x34ac6d[_0x2bf0bc+0x1]:void 0x0;}var ae=_0x55f39d=>{const _0x46648b=_0x19204c;for(let _0x11c1db of _0x55f39d)console[_0x46648b(0x1cb)]('\x20\x20'+_0x11c1db[_0x46648b(0x2a8)]+':'+_0x11c1db['line']+'\x20\x20'+_0x11c1db[_0x46648b(0x1d0)]);console[_0x46648b(0x1cb)](_0x55f39d[_0x46648b(0x1fb)]+_0x46648b(0x2b3));};async function Ft(_0xe68325){const _0x16e37b=_0x19204c;let [_0x2a6353,..._0x481bf6]=_0xe68325;if(!_0x2a6353||_0x2a6353===_0x16e37b(0x243)||_0x2a6353==='-h')return console[_0x16e37b(0x213)](je),_0x2a6353?0x0:0x1;let _0x2b4d66=ue(_0x4228e2(jt(_0x481bf6,_0x16e37b(0x17d))??de));if(_0x2a6353===_0x16e37b(0x19e)){let {graph:_0x3c284c,issues:_0x200295}=await X(_0x2b4d66,{'generate':!0x1,'plugins':[]});if(Fe(_0x481bf6,_0x16e37b(0x18f)))console['log'](JSON[_0x16e37b(0x2aa)](_0x3c284c,null,0x2));else{for(let _0x470e6a of _0x3c284c[_0x16e37b(0x25c)])console['log'](String(_0x470e6a[_0x16e37b(0x184)])[_0x16e37b(0x1e5)](0x3)+'\x20\x20'+_0x470e6a['id']+(_0x470e6a['core']?_0x16e37b(0x1ee):'')+'\x20\x20'+_0x470e6a['path']);}return _0x200295[_0x16e37b(0x1fb)]>0x0&&ae(_0x200295),_0x200295['length']>0x0?0x1:0x0;}if(_0x2a6353===_0x16e37b(0x256)){let {graph:_0x80b19e,issues:_0x5ec54c}=await X(_0x2b4d66,{'generate':!0x1,'plugins':[]});return _0x5ec54c[_0x16e37b(0x1fb)]>0x0?(ae(_0x5ec54c),0x1):(console[_0x16e37b(0x213)](_0x16e37b(0x18e)+_0x80b19e[_0x16e37b(0x25c)][_0x16e37b(0x1fb)]+_0x16e37b(0x2ca)),0x0);}if(_0x2a6353===_0x16e37b(0x299)){let _0x4aa945=Fe(_0x481bf6,'check'),{graph:_0x3c4036,issues:_0x35aa93,generated:_0x380001}=await X(_0x2b4d66,{'check':_0x4aa945});if(_0x35aa93[_0x16e37b(0x1fb)]>0x0&&ae(_0x35aa93),!_0x380001)return console[_0x16e37b(0x1cb)](_0x16e37b(0x189)),0x1;let _0x2057d4=[..._0x380001[_0x16e37b(0x2b7)],..._0x380001['removed'][_0x16e37b(0x26f)](_0x3d2807=>_0x3d2807+_0x16e37b(0x238))];if(_0x4aa945){if(_0x2057d4[_0x16e37b(0x1fb)]>0x0){console[_0x16e37b(0x1cb)](_0x16e37b(0x219));for(let _0x4a4b70 of _0x2057d4)console[_0x16e37b(0x1cb)]('\x20\x20'+_0x4a4b70);return 0x1;}return console['log'](_0x16e37b(0x18e)+_0x3c4036[_0x16e37b(0x25c)][_0x16e37b(0x1fb)]+'\x20module(s),\x20generated\x20files\x20up\x20to\x20date'),_0x35aa93['length']>0x0?0x1:0x0;}for(let _0x385e5b of _0x2057d4)console[_0x16e37b(0x213)]('\x20\x20'+_0x385e5b);return console[_0x16e37b(0x213)](_0x16e37b(0x18e)+_0x3c4036[_0x16e37b(0x25c)][_0x16e37b(0x1fb)]+'\x20module(s),\x20'+_0x2057d4[_0x16e37b(0x1fb)]+_0x16e37b(0x17c)),_0x35aa93['length']>0x0?0x1:0x0;}return console[_0x16e37b(0x1cb)](je),0x1;}Ft(process[_0x19204c(0x1f9)][_0x19204c(0x26a)](0x2))[_0x19204c(0x23f)](_0x227d79=>{const _0x1ae18e=_0x19204c;process[_0x1ae18e(0x261)]=_0x227d79;},_0x1a26c5=>{const _0x5ad3a2=_0x19204c;console['error'](_0x1a26c5 instanceof Error?_0x1a26c5[_0x5ad3a2(0x1d0)]:_0x1a26c5),process[_0x5ad3a2(0x261)]=0x1;});
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ModuleKitConfig, ResolvedConfig } from "./types";
|
|
2
|
+
export declare const CONFIG_FILE = "module-kit.config.json";
|
|
3
|
+
/** Type the config object; an identity function, for editor completion in a `.ts` config. */
|
|
4
|
+
export declare const defineConfig: (config: ModuleKitConfig) => ModuleKitConfig;
|
|
5
|
+
/** Apply the defaults to a config whose paths are relative to `cwd`. Throws on a config that cannot work. */
|
|
6
|
+
export declare function resolveConfig(config: ModuleKitConfig, cwd: string): ResolvedConfig;
|
|
7
|
+
/** Read a JSON config file; its directory is what its paths are relative to. */
|
|
8
|
+
export declare function loadConfig(file: string): ResolvedConfig;
|
|
9
|
+
/** `Node` for `node`: a realm's name in clients and event names. */
|
|
10
|
+
export declare const realmKey: (realm: string) => string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Issue, Manifest, ManifestFieldKind, ManifestValue, ResolvedConfig } from "./types";
|
|
2
|
+
/** A module folder with its manifest as written; `manifest` is null when it could not be read. */
|
|
3
|
+
export interface Discovered {
|
|
4
|
+
/** Absolute folder. */
|
|
5
|
+
dir: string;
|
|
6
|
+
/** Folder relative to the root. */
|
|
7
|
+
path: string;
|
|
8
|
+
manifest: Manifest | null;
|
|
9
|
+
/** The config's extra manifest fields this manifest sets. */
|
|
10
|
+
extra: Record<string, ManifestValue>;
|
|
11
|
+
}
|
|
12
|
+
/** Read one manifest file. `extraFields` are the config's own fields beyond the kit's. */
|
|
13
|
+
export declare function readManifest(file: string, displayFile: string, extraFields?: Readonly<Record<string, ManifestFieldKind>>): {
|
|
14
|
+
manifest: Manifest | null;
|
|
15
|
+
extra: Record<string, ManifestValue>;
|
|
16
|
+
issues: Issue[];
|
|
17
|
+
};
|
|
18
|
+
/** Every module folder under the root, with its manifest. */
|
|
19
|
+
export declare function discover(config: ResolvedConfig): {
|
|
20
|
+
found: Discovered[];
|
|
21
|
+
issues: Issue[];
|
|
22
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface FollowerOptions {
|
|
2
|
+
/** This realm's classes, by module id. A module with none here is ignored. */
|
|
3
|
+
modules: Readonly<Record<string, new () => object>>;
|
|
4
|
+
/** The hook member names. Default `onStart`, `onStop`. */
|
|
5
|
+
hooks?: {
|
|
6
|
+
start?: string;
|
|
7
|
+
stop?: string;
|
|
8
|
+
};
|
|
9
|
+
/** A start or stop that failed. Default: rethrown into the void (logged by nothing). */
|
|
10
|
+
onError?: (id: string, error: unknown) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface Follower {
|
|
13
|
+
/** The module should (or should not) be running in this realm. */
|
|
14
|
+
follow(id: string, running: boolean): void;
|
|
15
|
+
/** Every module at once: `true` for the ones that should run. Modules not named should not. */
|
|
16
|
+
followAll(running: Readonly<Record<string, boolean>>): void;
|
|
17
|
+
isRunning(id: string): boolean;
|
|
18
|
+
/** Stop every running module. */
|
|
19
|
+
stopAll(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare function createFollower(options: FollowerOptions): Follower;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ModuleGraph, ResolvedConfig, ScannedModule } from "./types";
|
|
2
|
+
export declare const HEADER = "// Auto-generated by @vyredo/module-kit. DO NOT EDIT.";
|
|
3
|
+
export interface GenerateResult {
|
|
4
|
+
/** Files whose content changed (or would, with `check`), relative to the config's directory. */
|
|
5
|
+
written: string[];
|
|
6
|
+
/** Generated files no longer produced, removed (or that would be). */
|
|
7
|
+
removed: string[];
|
|
8
|
+
}
|
|
9
|
+
/** The alias table: alias -> absolute file or folder pattern. `*` patterns follow tsconfig's `paths`. */
|
|
10
|
+
export declare function aliasTable(graph: ModuleGraph, config: ResolvedConfig, forModule?: ScannedModule, exists?: (file: string) => boolean, view?: string): Map<string, string[]>;
|
|
11
|
+
/** What a plugin is given. */
|
|
12
|
+
export interface PluginContext {
|
|
13
|
+
graph: ModuleGraph;
|
|
14
|
+
config: ResolvedConfig;
|
|
15
|
+
/** The first line the kit's own files carry; a plugin's `.ts` files may use it too. */
|
|
16
|
+
header: string;
|
|
17
|
+
/** A module's absolute folder. */
|
|
18
|
+
dirOf(m: ScannedModule): string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Adds files to a generation: absolute path -> content. A plugin's files are
|
|
22
|
+
* written, checked for drift and removed when stale exactly as the kit's own.
|
|
23
|
+
* A file it writes at a path the config's `exports` names becomes that alias.
|
|
24
|
+
*/
|
|
25
|
+
export interface Plugin {
|
|
26
|
+
name: string;
|
|
27
|
+
files(ctx: PluginContext): Map<string, string> | Record<string, string>;
|
|
28
|
+
/**
|
|
29
|
+
* Runs once every file is written (never with `check`), for a step that needs
|
|
30
|
+
* them on disk. Returns the files it changed, relative to the config's directory.
|
|
31
|
+
*/
|
|
32
|
+
after?(ctx: PluginContext): string[] | void | Promise<string[] | void>;
|
|
33
|
+
}
|
|
34
|
+
/** Every file a generation produces: absolute path -> content. */
|
|
35
|
+
export declare function render(graph: ModuleGraph, config: ResolvedConfig, plugins?: readonly Plugin[]): Map<string, string>;
|
|
36
|
+
/**
|
|
37
|
+
* Write what changed and remove what is stale. With `check`, write nothing and
|
|
38
|
+
* report what would change: a CI step fails on a non-empty result.
|
|
39
|
+
*/
|
|
40
|
+
export declare function generate(graph: ModuleGraph, config: ResolvedConfig, opts?: {
|
|
41
|
+
check?: boolean;
|
|
42
|
+
plugins?: readonly Plugin[];
|
|
43
|
+
}): GenerateResult;
|
|
44
|
+
/**
|
|
45
|
+
* Rewrite the kit's own entries inside a JSONC tsconfig's `compilerOptions.paths`:
|
|
46
|
+
* text, not a JSON round-trip, so every comment and every other entry is kept,
|
|
47
|
+
* and the trailing comma is re-balanced.
|
|
48
|
+
*/
|
|
49
|
+
export declare function splicePaths(source: string, config: ResolvedConfig, table: Record<string, string[]>): string;
|
package/dist/graph.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Discovered } from "./discover";
|
|
2
|
+
import type { Issue } from "./types";
|
|
3
|
+
export interface Node {
|
|
4
|
+
id: string;
|
|
5
|
+
core: boolean;
|
|
6
|
+
requires: string[];
|
|
7
|
+
optional: string[];
|
|
8
|
+
/** For issues: the manifest's display path. */
|
|
9
|
+
file: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function toNodes(found: Discovered[], displayFile: (d: Discovered) => string): Node[];
|
|
12
|
+
export declare function checkGraph(nodes: Node[]): Issue[];
|
|
13
|
+
/** What a module depends on: what it lists, plus every core module when it is not one. */
|
|
14
|
+
export declare function edges(n: Node, byId: Map<string, Node>): string[];
|
|
15
|
+
/** DFS with an on-stack mark; the cycle as a path, such as `["A", "B", "A"]`. */
|
|
16
|
+
export declare function findCycle(graph: Map<string, string[]>): string[] | null;
|
|
17
|
+
/**
|
|
18
|
+
* The start order: a module after everything it depends on, ties broken by id so
|
|
19
|
+
* the order is the same on every machine. Assumes `checkGraph` found no cycle; a
|
|
20
|
+
* module left on a cycle is appended in id order rather than dropped.
|
|
21
|
+
*/
|
|
22
|
+
export declare function startOrder(nodes: Node[]): string[];
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type GenerateResult, type Plugin } from "./generate";
|
|
2
|
+
import type { Issue, ModuleGraph, ResolvedConfig } from "./types";
|
|
3
|
+
export { CONFIG_FILE, defineConfig, loadConfig, resolveConfig } from "./config";
|
|
4
|
+
export { scan } from "./scan";
|
|
5
|
+
export { generate, render, aliasTable, splicePaths, HEADER, type GenerateResult, type Plugin, type PluginContext } from "./generate";
|
|
6
|
+
export { checkBoundaries, importsOf } from "./boundary";
|
|
7
|
+
export { defineManifest } from "./runtime";
|
|
8
|
+
export type * from "./types";
|
|
9
|
+
export interface RunResult {
|
|
10
|
+
graph: ModuleGraph;
|
|
11
|
+
/** Manifest, class and boundary issues together, sorted. */
|
|
12
|
+
issues: Issue[];
|
|
13
|
+
generated: GenerateResult | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Everything in one call: scan, check the boundaries, and (unless `generate` is
|
|
17
|
+
* false) generate. Nothing is written while the scan has issues, so a broken
|
|
18
|
+
* manifest never produces half a tree. `check` reports drift instead of writing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function run(config: ResolvedConfig, opts?: {
|
|
21
|
+
generate?: boolean;
|
|
22
|
+
check?: boolean;
|
|
23
|
+
plugins?: readonly Plugin[];
|
|
24
|
+
}): RunResult;
|
|
25
|
+
/**
|
|
26
|
+
* Load the config's plugin files. Each default-exports a `Plugin`, or a function
|
|
27
|
+
* of the config's directory returning one. A `.ts` plugin is loaded through the
|
|
28
|
+
* project's own `tsx`, resolved from the config's directory.
|
|
29
|
+
*/
|
|
30
|
+
export declare function loadPlugins(config: ResolvedConfig): Promise<Plugin[]>;
|
|
31
|
+
/** `run`, then each plugin's `after` once the files are written; what they changed joins `written`. */
|
|
32
|
+
export declare function runWithPlugins(config: ResolvedConfig, opts?: {
|
|
33
|
+
generate?: boolean;
|
|
34
|
+
check?: boolean;
|
|
35
|
+
plugins?: readonly Plugin[];
|
|
36
|
+
}): Promise<RunResult>;
|