@telorun/kernel 0.29.0 → 0.30.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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Build — or reuse a cached — single-file bundle of `entryFile`, written beside
3
+ * the entry inside the installed package so the bundle's externalized bare
4
+ * imports (`@telorun/sdk`, native packages) resolve through the entry's own
5
+ * `node_modules` walk-up. Built from the pinned `name@version` package, so the
6
+ * same controller yields the same bundle in every environment — parity by
7
+ * construction.
8
+ *
9
+ * Returns `null` (caller falls back to the loose entry import) when: bundling is
10
+ * disabled, the install is a symlinked source checkout, esbuild isn't installed,
11
+ * the package dir is read-only (baked runtime), or the build fails (an
12
+ * unbundleable controller).
13
+ */
14
+ export declare function tryBuildControllerBundle(installRoot: string, entryFile: string): Promise<string | null>;
15
+ //# sourceMappingURL=bundle-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-builder.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/bundle-builder.ts"],"names":[],"mappings":"AAyGA;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuCxB"}
@@ -0,0 +1,306 @@
1
+ import { existsSync } from "node:fs";
2
+ import * as fs from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import { REALM_COLLAPSE_NAMES } from "./realm.js";
5
+ /**
6
+ * Transparent controller bundling: collapse a controller's loose `node_modules`
7
+ * dependency tree into one esbuild bundle so cold-start import reads a single
8
+ * file instead of hundreds of small ones (the k8s cold-FS latency this targets).
9
+ *
10
+ * The PURL never changes — bundling is a load-time cache over npm resolution, not
11
+ * a delivery format. {@link tryBuildControllerBundle} is a pure accelerator: it
12
+ * returns a bundle path on success, or `null` (→ caller imports the loose entry)
13
+ * whenever bundling can't or shouldn't run, and never throws.
14
+ *
15
+ * The bundle is written **next to its entry file** (inside the package), so its
16
+ * externalized bare imports (`@telorun/sdk`, native packages like
17
+ * `better-sqlite3`) resolve at runtime through the exact same `node_modules`
18
+ * walk-up the loose entry would — wherever the dep is hoisted or nested.
19
+ *
20
+ * On by default; `TELO_CONTROLLER_BUNDLE=0` (or false/no/off) is a kill-switch
21
+ * that forces loose imports. Safe to leave on: it applies only to real (copied)
22
+ * installs — symlinked `local_path` dev installs are skipped — and any build
23
+ * failure falls back to the loose import.
24
+ */
25
+ const BUNDLE_PREFIX = ".telobundle.";
26
+ function bundlingEnabled() {
27
+ const v = process.env.TELO_CONTROLLER_BUNDLE?.trim().toLowerCase();
28
+ return !(v === "0" || v === "false" || v === "no" || v === "off");
29
+ }
30
+ async function pathExists(p) {
31
+ try {
32
+ await fs.access(p);
33
+ return true;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ function sanitize(s) {
40
+ return s.replace(/[^a-zA-Z0-9._-]/g, "_");
41
+ }
42
+ async function realpathOrNull(p) {
43
+ try {
44
+ return await fs.realpath(p);
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ function isUnder(child, parent) {
51
+ const rel = path.relative(parent, child);
52
+ return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
53
+ }
54
+ const typeModuleCache = new Map();
55
+ /** Whether `entryFile` is an ES module: `.mjs` / non-`.js` (e.g. `.ts`) yes,
56
+ * `.cjs` no, `.js` per the nearest `package.json` `"type"`. */
57
+ async function isEsmEntry(entryFile) {
58
+ const ext = path.extname(entryFile).toLowerCase();
59
+ if (ext === ".mjs")
60
+ return true;
61
+ if (ext === ".cjs")
62
+ return false;
63
+ if (ext !== ".js")
64
+ return true; // .ts and friends — authored as ESM
65
+ const dir = path.dirname(entryFile);
66
+ const cached = typeModuleCache.get(dir);
67
+ if (cached !== undefined)
68
+ return cached;
69
+ let isModule = false;
70
+ let d = dir;
71
+ for (;;) {
72
+ const pj = path.join(d, "package.json");
73
+ if (await pathExists(pj)) {
74
+ try {
75
+ isModule = JSON.parse(await fs.readFile(pj, "utf8")).type === "module";
76
+ }
77
+ catch {
78
+ /* unreadable package.json → treat as CJS (skip bundling) */
79
+ }
80
+ break;
81
+ }
82
+ const parent = path.dirname(d);
83
+ if (parent === d)
84
+ break;
85
+ d = parent;
86
+ }
87
+ typeModuleCache.set(dir, isModule);
88
+ return isModule;
89
+ }
90
+ /** Memoized esbuild handle: `undefined` until first tried, `null` when absent.
91
+ * A failed dynamic import isn't reliably cached by Node, so without this every
92
+ * controller load would re-attempt (and re-fail) the import. */
93
+ let esbuildModule;
94
+ async function loadEsbuild() {
95
+ if (esbuildModule !== undefined)
96
+ return esbuildModule;
97
+ try {
98
+ esbuildModule = await import("esbuild");
99
+ }
100
+ catch {
101
+ esbuildModule = null;
102
+ }
103
+ return esbuildModule;
104
+ }
105
+ /**
106
+ * Build — or reuse a cached — single-file bundle of `entryFile`, written beside
107
+ * the entry inside the installed package so the bundle's externalized bare
108
+ * imports (`@telorun/sdk`, native packages) resolve through the entry's own
109
+ * `node_modules` walk-up. Built from the pinned `name@version` package, so the
110
+ * same controller yields the same bundle in every environment — parity by
111
+ * construction.
112
+ *
113
+ * Returns `null` (caller falls back to the loose entry import) when: bundling is
114
+ * disabled, the install is a symlinked source checkout, esbuild isn't installed,
115
+ * the package dir is read-only (baked runtime), or the build fails (an
116
+ * unbundleable controller).
117
+ */
118
+ export async function tryBuildControllerBundle(installRoot, entryFile) {
119
+ if (!bundlingEnabled())
120
+ return null;
121
+ // Only bundle a *real* install (the package physically copied under the install
122
+ // root). A `local_path` / `file:` dep is symlinked to its source checkout, so
123
+ // its entry's realpath escapes the install root — writing "next to the entry"
124
+ // there would land bundles in the committed source tree. Dev runs that way
125
+ // simply skip bundling (loose import); the production bake is a real install.
126
+ const realEntry = await realpathOrNull(entryFile);
127
+ const realRoot = await realpathOrNull(installRoot);
128
+ if (!realEntry || !realRoot || !isUnder(realEntry, realRoot))
129
+ return null;
130
+ // Only bundle ESM entries. esbuild's ESM output preserves named exports, so a
131
+ // bundled ESM controller has the same `create`/`register` shape as the loose
132
+ // one. A CJS entry, by contrast, bundles to `{ default }` only (esbuild does
133
+ // not lift CJS named exports), which the loader would reject — so skip it and
134
+ // let the loose import (where Node synthesizes the named exports) handle it.
135
+ if (!(await isEsmEntry(realEntry)))
136
+ return null;
137
+ // Beside the entry, so the bundle's externalized imports resolve through the
138
+ // entry's own node_modules walk-up (native deps may be nested under the
139
+ // controller package, not hoisted to the install root).
140
+ const bundleFile = path.join(path.dirname(realEntry), `${BUNDLE_PREFIX}${sanitize(path.basename(realEntry))}.mjs`);
141
+ if (await usableCachedBundle(bundleFile))
142
+ return bundleFile;
143
+ // Single-flight per bundle file within the process: a test run spawns many
144
+ // kernels sharing one install root, so concurrent loads of the same controller
145
+ // would otherwise each launch an esbuild over the same output.
146
+ const inFlight = buildsInFlight.get(bundleFile);
147
+ if (inFlight)
148
+ return inFlight;
149
+ const work = buildBundle(bundleFile, entryFile).finally(() => buildsInFlight.delete(bundleFile));
150
+ buildsInFlight.set(bundleFile, work);
151
+ return work;
152
+ }
153
+ const buildsInFlight = new Map();
154
+ let tmpCounter = 0;
155
+ /** A bundle that anchors path resolution to its own directory (esbuild rewrites
156
+ * `__dirname`/`__filename` to `import.meta.url`) can't be safely relocated. */
157
+ const DIR_RELATIVE = /import\.meta\.url|\b__dirname\b|\b__filename\b/;
158
+ /** A cached bundle is usable only when its `.ok` sidecar is present — written
159
+ * once after the build passed the safety guard. Checking the marker (two stats)
160
+ * avoids re-reading the whole bundle on every load. A bundle without its marker
161
+ * (written before the guard existed, a torn write, or a failed build) self-heals
162
+ * to the loose import and is cleared on a writable FS. */
163
+ async function usableCachedBundle(bundleFile) {
164
+ if ((await pathExists(okMarker(bundleFile))) && (await pathExists(bundleFile)))
165
+ return true;
166
+ await fs.rm(bundleFile, { force: true }).catch(() => { });
167
+ await fs.rm(okMarker(bundleFile), { force: true }).catch(() => { });
168
+ return false;
169
+ }
170
+ function okMarker(bundleFile) {
171
+ return `${bundleFile}.ok`;
172
+ }
173
+ async function buildBundle(bundleFile, entryFile) {
174
+ if (await usableCachedBundle(bundleFile))
175
+ return bundleFile;
176
+ const esbuild = await loadEsbuild();
177
+ if (!esbuild)
178
+ return null; // esbuild not installed → loose import
179
+ // Build in memory, then write to a unique temp and atomically rename into
180
+ // place — so a cross-process race never leaves a half-written bundle for a
181
+ // concurrent reader (or a concurrent build) to import.
182
+ const tmpFile = `${bundleFile}.${process.pid}.${tmpCounter++}.tmp`;
183
+ try {
184
+ const result = await esbuild.build({
185
+ entryPoints: [entryFile],
186
+ outfile: bundleFile,
187
+ bundle: true,
188
+ format: "esm",
189
+ platform: "node",
190
+ logLevel: "silent",
191
+ write: false,
192
+ plugins: [nativeExternalsPlugin()],
193
+ });
194
+ const out = result.outputFiles?.[0];
195
+ if (!out)
196
+ return null;
197
+ // A flattened bundle that resolves paths relative to its own directory is
198
+ // unsafe: a deep dep locating a sibling asset (e.g. http-server's
199
+ // `${__dirname}/js/standalone.js`) would miss it at the bundle's new
200
+ // location. esbuild rewrites `__dirname`/`__filename` to `import.meta.url`,
201
+ // so its presence flags this — fall back to the loose import for those.
202
+ if (DIR_RELATIVE.test(out.text)) {
203
+ if (process.env.TELO_BUNDLE_DEBUG) {
204
+ process.stderr.write(`[bundle] skipped ${entryFile}: directory-relative asset resolution\n`);
205
+ }
206
+ return null;
207
+ }
208
+ await fs.writeFile(tmpFile, out.contents);
209
+ await fs.rename(tmpFile, bundleFile);
210
+ // Marker written last: its presence means "this bundle built and passed the
211
+ // safety guard", so cache hits trust it without re-reading the bundle.
212
+ await fs.writeFile(okMarker(bundleFile), "").catch(() => { });
213
+ return bundleFile;
214
+ }
215
+ catch (err) {
216
+ if (process.env.TELO_BUNDLE_DEBUG) {
217
+ process.stderr.write(`[bundle] skipped ${entryFile}: ${err instanceof Error ? err.message.split("\n")[0] : String(err)}\n`);
218
+ }
219
+ await fs.rm(tmpFile, { force: true }).catch(() => { });
220
+ return null; // unbundleable controller → loose import
221
+ }
222
+ }
223
+ /**
224
+ * esbuild plugin deciding which bare imports stay external rather than inline:
225
+ * - `@telorun/*` framework packages — the shared runtime (incl. the realm
226
+ * `@telorun/sdk`, whose `Stream`/`InvokeError` identity must be the kernel's
227
+ * copy); inlining them is both wrong (duplicates the runtime per controller)
228
+ * and impossible (the kernel pulls in esbuild's unbundleable API);
229
+ * - `esbuild` — a build tool, never part of a controller;
230
+ * - native packages — ship a `.node` and can't be inlined;
231
+ * - packages not present in the install (optional deps like `pg-native`) —
232
+ * externalized so the build succeeds and the runtime require behaves exactly
233
+ * as it would loose (the controller's own try/catch handles the absence).
234
+ * Everything else (the controller's own files + third-party JS) inlines.
235
+ */
236
+ function nativeExternalsPlugin() {
237
+ const realm = new Set(REALM_COLLAPSE_NAMES);
238
+ const decided = new Map();
239
+ return {
240
+ name: "telo-native-externals",
241
+ setup(build) {
242
+ // A direct `.node` binary import can never be bundled.
243
+ build.onResolve({ filter: /\.node$/ }, () => ({ external: true }));
244
+ // Bare specifiers only (paths starting with `.` or `/` are relative/absolute).
245
+ build.onResolve({ filter: /^[^./]/ }, async (args) => {
246
+ if (path.isAbsolute(args.path))
247
+ return null;
248
+ const top = topPackage(args.path);
249
+ // Realm names (the identity-critical set realm.ts owns) plus the rest of
250
+ // the `@telorun/*` framework and esbuild itself — never inline these.
251
+ if (realm.has(top) || top.startsWith("@telorun/") || top === "esbuild") {
252
+ return { external: true };
253
+ }
254
+ const pkgDir = findPackageDir(top, args.resolveDir);
255
+ if (!pkgDir)
256
+ return { external: true }; // missing/optional dep → behave as loose
257
+ let isNative = decided.get(pkgDir);
258
+ if (isNative === undefined) {
259
+ isNative = await detectNative(pkgDir);
260
+ decided.set(pkgDir, isNative);
261
+ }
262
+ return isNative ? { external: true } : null;
263
+ });
264
+ },
265
+ };
266
+ }
267
+ /** Top-level package of a bare specifier: `@scope/x/y` → `@scope/x`, `a/b` → `a`. */
268
+ function topPackage(spec) {
269
+ const parts = spec.split("/");
270
+ return spec.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
271
+ }
272
+ /** Nearest `node_modules/<pkgName>` walking up from `fromDir`, or null. */
273
+ function findPackageDir(pkgName, fromDir) {
274
+ let dir = fromDir;
275
+ for (;;) {
276
+ const candidate = path.join(dir, "node_modules", ...pkgName.split("/"));
277
+ if (existsSync(path.join(candidate, "package.json")))
278
+ return candidate;
279
+ const parent = path.dirname(dir);
280
+ if (parent === dir)
281
+ return null;
282
+ dir = parent;
283
+ }
284
+ }
285
+ /** A package is native if it ships prebuilt binaries / a build output, or its
286
+ * manifest declares a node-gyp / prebuild-style native build. */
287
+ async function detectNative(pkgDir) {
288
+ if (await pathExists(path.join(pkgDir, "prebuilds")))
289
+ return true;
290
+ if (await pathExists(path.join(pkgDir, "build", "Release")))
291
+ return true;
292
+ try {
293
+ const pj = JSON.parse(await fs.readFile(path.join(pkgDir, "package.json"), "utf8"));
294
+ if (pj.gypfile || pj.binary)
295
+ return true;
296
+ const scripts = pj.scripts ?? {};
297
+ const installish = `${scripts.preinstall ?? ""} ${scripts.install ?? ""} ${scripts.postinstall ?? ""}`;
298
+ if (/node-gyp|prebuild-install|node-pre-gyp|node-gyp-build|cmake-js/.test(installish))
299
+ return true;
300
+ }
301
+ catch {
302
+ // unreadable package.json — treat as non-native; esbuild surfaces real errors
303
+ }
304
+ return false;
305
+ }
306
+ //# sourceMappingURL=bundle-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-builder.js","sourceRoot":"","sources":["../../src/controller-loaders/bundle-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"npm-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA4DlD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;AAoBlF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAS;IAE9C;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAC,CAAkB;IAEpC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,GAAE,0BAA+B;IAK9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjE;;;;;OAKG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;IA2B3F;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YAUX,sBAAsB;IAqFpC;;;;;;;OAOG;YACW,aAAa;IAe3B;;;;;;;;;;;;;;OAcG;YACW,cAAc;CAuH7B;AA+ND;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2BpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMzE;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpE;AAkLD;;;;GAIG;AACH,iBAAe,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOrE;AAED,iBAAS,0BAA0B,CACjC,YAAY,EAAE,GAAG,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAChC,MAAM,GAAG,IAAI,CAIf;AAED,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,CAAC"}
1
+ {"version":3,"file":"npm-loader.d.ts","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA6DlD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;AAoBlF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAS;IAE9C;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAC,CAAkB;IAEpC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,GAAE,0BAA+B;IAK9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjE;;;;;OAKG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC;IA2B3F;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;YAUX,sBAAsB;IAqFpC;;;;;;;OAOG;YACW,aAAa;IAe3B;;;;;;;;;;;;;;OAcG;YACW,cAAc;CAuH7B;AA+ND;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2BpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMzE;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpE;AAsLD;;;;GAIG;AACH,iBAAe,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOrE;AAED,iBAAS,0BAA0B,CACjC,YAAY,EAAE,GAAG,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAChC,MAAM,GAAG,IAAI,CAIf;AAED,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,CAAC"}
@@ -7,6 +7,7 @@ import { PackageURL } from "packageurl-js";
7
7
  import * as path from "path";
8
8
  import { fileURLToPath, pathToFileURL } from "url";
9
9
  import { promisify } from "util";
10
+ import { tryBuildControllerBundle } from "./bundle-builder.js";
10
11
  import { ControllerEnvMissingError } from "./napi-loader.js";
11
12
  import { REALM_COLLAPSE_NAMES } from "./realm.js";
12
13
  const execFileAsync = promisify(execFile);
@@ -754,6 +755,10 @@ async function loadFromInstall(installRoot, alias, subpath, purl) {
754
755
  const packageRoot = path.join(installRoot, "node_modules", alias);
755
756
  const entry = subpath ? `./${subpath}` : ".";
756
757
  const entryFile = await resolvePackageEntry(packageRoot, entry);
758
+ // Transparent bundling: import a single esbuild bundle of the entry (one file
759
+ // vs a cold loose `node_modules` tree) when available; otherwise the loose
760
+ // entry. Pure accelerator — `null` on any miss, so behavior is unchanged.
761
+ const target = (await tryBuildControllerBundle(installRoot, entryFile)) ?? entryFile;
757
762
  // ESM dynamic `import()` accepts either a relative specifier or a `file://`
758
763
  // URL — but NOT a bare absolute filesystem path. On POSIX the `/abs/path`
759
764
  // form works by happy accident; on Windows `C:\path\to\file.js` is rejected
@@ -763,7 +768,7 @@ async function loadFromInstall(installRoot, alias, subpath, purl) {
763
768
  // Dynamic `import()` always resolves to a module namespace object on
764
769
  // success; it never returns null/undefined. The only meaningful contract
765
770
  // check is whether the module exports at least one of the controller hooks.
766
- const instance = await import(pathToFileURL(entryFile).href);
771
+ const instance = await import(pathToFileURL(target).href);
767
772
  if (!instance.create && !instance.register) {
768
773
  throw new Error(`Invalid controller loaded from "${purl}": exports neither create() nor register()`);
769
774
  }
@@ -1 +1 @@
1
- {"version":3,"file":"npm-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm-loader.js","sourceRoot":"","sources":["../../src/controller-loaders/npm-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,KAAK,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,kBAAkB,GACtB,eAAe,KAAK,KAAK;IACvB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACxB,CAAC,CAAC,eAAe,KAAK,MAAM;QAC1B,CAAC,CAAC,CAAC,+BAA+B,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;AAEX;;;;GAIG;AACH,MAAM,aAAa,GAAG,KAAM,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAM,CAAC;AACpC,MAAM,aAAa,GAAG,GAAG,CAAC;AAmD1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,mBAAmB;IAuC9B,YAAY,UAAsC,EAAE;QAlCpD;;;;;;WAMG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpD;;;;WAIG;QACc,aAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAS7D;;;;;;;;WAQG;QACK,aAAQ,GAA2B,EAAE,CAAC;QAG5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAe;QACtC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,OAAe;QAEf,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACtC,WAAW,EACX,KAAK,EACL,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,EACb,OAAO,CACR,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,OAAO;YACL,MAAM;YACN,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;SACzE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3D,iFAAiF;YACjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,qEAAqE;YACrE,mDAAmD;YACnD,MAAM,IAAI,yBAAyB,CACjC,iFAAiF;gBAC/E,2DAA2D,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAEhF,2EAA2E;QAC3E,uEAAuE;QACvE,4EAA4E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;YACxC,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,qEAAqE;gBACrE,qEAAqE;gBACrE,oEAAoE;gBACpE,SAAS;YACX,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,eAAe,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,OAAO;YAChB,YAAY;SACb,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAEpD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QACzE,oEAAoE;QACpE,mEAAmE;QACnE,IACE,CAAC,MAAM,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,OAAO;YACxD,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1D,CAAC;YACD,2EAA2E;YAC3E,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACpD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAC5C,kEAAkE;YAClE,kDAAkD;YAClD,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,OAAO;YACT,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACjF,MAAM,iBAAiB,CAAC,WAAW,EAAE;gBACnC,SAAS;gBACT,YAAY;gBACZ,WAAW;gBACX,UAAU;gBACV,GAAG,kBAAkB;aACtB,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,aAAa,CACzB,WAAmB,EACnB,YAAoC;QAEpC,4EAA4E;QAC5E,4EAA4E;QAC5E,mEAAmE;QACnE,4EAA4E;QAC5E,4EAA4E;QAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,cAAc,CAC1B,WAAmB,EACnB,KAAa,EACb,IAAY,EACZ,IAAc,EACd,gBAA+B;QAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,OAAO,CAAC;QAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC;YACf,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAEjE,kEAAkE;QAClE,yEAAyE;QACzE,4DAA4D;QAC5D,4EAA4E;QAC5E,wEAAwE;QACxE,4EAA4E;QAC5E,mEAAmE;QACnE,2EAA2E;QAC3E,wEAAwE;QACxE,mEAAmE;QACnE,EAAE;QACF,qEAAqE;QACrE,uEAAuE;QACvE,gCAAgC;QAChC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAChE,IACE,gBAAgB,KAAK,IAAI;gBACzB,CAAC,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,gBAAgB,CAAC,EACpE,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,0EAA0E;YAC1E,yEAAyE;YACzE,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,IACE,UAAU,KAAK,SAAS;gBACxB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC;gBACnF,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9B,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;gBAC5C,kEAAkE;gBAClE,uDAAuD;gBACvD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;oBAChE,IACE,gBAAgB,KAAK,IAAI;wBACzB,CAAC,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,gBAAgB,CAAC,EACpE,CAAC;wBACD,OAAO;oBACT,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,mEAAmE;oBACnE,gEAAgE;oBAChE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;oBACzD,IACE,UAAU,KAAK,SAAS;wBACxB,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC;wBACnF,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9B,CAAC;wBACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;wBAClC,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,MAAM,iBAAiB,CAAC,WAAW,EAAE;oBACnC,SAAS;oBACT,YAAY;oBACZ,WAAW;oBACX,UAAU;oBACV,GAAG,kBAAkB;oBACrB,QAAQ;oBACR,sEAAsE;oBACtE,mEAAmE;oBACnE,uDAAuD;oBACvD,GAAG,KAAK,IAAI,IAAI,EAAE;iBACnB,CAAC,CAAC;gBACH,kEAAkE;gBAClE,oEAAoE;gBACpE,sDAAsD;gBACtD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtD,IAAI,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;;oBACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,wEAAwE;QACxE,kEAAkE;QAClE,4DAA4D;QAC5D,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;IACpD,CAAC;CACF;AAGD;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,wBAAwB,CAAC,IAAY;IAClD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,IAAI,GAAG,EAAE,IAAI,KAAK,+BAA+B,EAAE,CAAC;YACtF,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,2EAA2E;IAC7E,CAAC;IACD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,uEAAuE;YACvE,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;QACrC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAAI,WAAmB,EAAE,EAAoB;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClG,IAAI,MAAM,GAA4C,IAAI,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ;gBAAE,MAAM,GAAG,CAAC;YACtC,wEAAwE;YACxE,gEAAgE;YAChE,IAAI,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,gBAAgB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CACb,gDAAgD,QAAQ,GAAG;oBACzD,UAAU,gBAAgB,GAAG,KAAM,SAAS;oBAC5C,kFAAkF,CACrF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,yEAAyE;QACzE,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,uDAAuD;QACvD,MAAM,MAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,QAAQ,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,2EAA2E;QAC3E,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IACtC,IAAI,GAAG,GAAG,aAAa;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,iBAAiB;IACjB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,MAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,8BAA8B;IAC9F,IAAI,CAAC;QACH,2EAA2E;QAC3E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,kFAAkF;QAClF,OAAO,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAc;IAC1D,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,SAAS,GACb,GAAG,EAAE,IAAI,KAAK,QAAQ;YACtB,mCAAmC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,WAAW,eAAe,8DAA8D;gBACtF,uFAAuF;gBACvF,8CAA8C,CACjD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,WAAW,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,MAAM,EAAE,CAC3E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAa;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,WAAmB;IACjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACtE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,kDAAkD;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5C,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC9B,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;gBACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,uBAAuB;IACvB,MAAM,IAAI,yBAAyB,CACjC,4BAA4B,WAAW,CAAC,CAAC,CAAC,2CAA2C;QACnF,oFAAoF;QACpF,cAAc,QAAQ,GAAG,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,YAAY,CAAC,WAAmB,EAAE,OAAsB;IAC/D,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,OAAO,IAAI,QAAQ,EAAE;SAC3F,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,WAAW,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IAC1D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvE,OAAO,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB;IAChD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE,YAAY,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACjD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAkB,EAClB,WAAmB,EACnB,OAAe;IAEf,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;IAChD,MAAM,eAAe,GACnB,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACrF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC;IAC5F,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,KAAa,EACb,OAAsB,EACtB,IAAY;IAEZ,8EAA8E;IAC9E,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChE,8EAA8E;IAC9E,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,CAAC,MAAM,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC;IACrF,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,qBAAqB;IACrB,EAAE;IACF,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,4CAA4C,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,2BAA2B,GAC/B,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW;IAC5C,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;IACzC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,KAAa,EACb,aAAoC,2BAA2B;IAE/D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,WAAW,GAAQ,IAAI,CAAC;IAC5B,IAAI,MAAM,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,uEAAuE;QACvE,2EAA2E;QAC3E,kEAAkE;QAClE,qEAAqE;QACrE,kDAAkD;QAClD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,0BAA0B,eAAe,IAAI;gBAC3C,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,0BAA0B,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9F,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1E,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACzC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,8BAA8B,WAAW,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC;QAC/B,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CACjC,YAAiB,EACjB,KAAa,EACb,UAAiC;IAEjC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,OAAO,wBAAwB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAW,EACX,UAAiC,EACjC,KAAa;IAEb,IAAI,KAAK,GAAG,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACvE,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,iBAAiB;IACjB,0BAA0B;IAC1B,wBAAwB;IACxB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,2BAA2B;IAC3B,oBAAoB;CACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/kernel",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "description": "Telo Runtime - A lightweight, polyglot execution host.",
5
5
  "keywords": [
6
6
  "telo",
@@ -47,8 +47,8 @@
47
47
  "dependencies": {
48
48
  "@marcbachmann/cel-js": "^7.6.1",
49
49
  "@sinclair/typebox": "^0.34.48",
50
- "@telorun/analyzer": "0.23.2",
51
- "@telorun/templating": "0.8.0",
50
+ "@telorun/analyzer": "0.24.0",
51
+ "@telorun/templating": "0.9.0",
52
52
  "ajv": "^8.17.1",
53
53
  "ajv-formats": "^3.0.1",
54
54
  "minimatch": "^10.2.5",
@@ -61,6 +61,9 @@
61
61
  "vitest": "^2.1.8",
62
62
  "@telorun/sdk": "0.26.0"
63
63
  },
64
+ "optionalDependencies": {
65
+ "esbuild": "^0.28.1"
66
+ },
64
67
  "peerDependencies": {
65
68
  "@telorun/sdk": "*"
66
69
  },
@@ -0,0 +1,313 @@
1
+ import { existsSync } from "node:fs";
2
+ import * as fs from "node:fs/promises";
3
+ import * as path from "node:path";
4
+
5
+ import { REALM_COLLAPSE_NAMES } from "./realm.js";
6
+
7
+ /**
8
+ * Transparent controller bundling: collapse a controller's loose `node_modules`
9
+ * dependency tree into one esbuild bundle so cold-start import reads a single
10
+ * file instead of hundreds of small ones (the k8s cold-FS latency this targets).
11
+ *
12
+ * The PURL never changes — bundling is a load-time cache over npm resolution, not
13
+ * a delivery format. {@link tryBuildControllerBundle} is a pure accelerator: it
14
+ * returns a bundle path on success, or `null` (→ caller imports the loose entry)
15
+ * whenever bundling can't or shouldn't run, and never throws.
16
+ *
17
+ * The bundle is written **next to its entry file** (inside the package), so its
18
+ * externalized bare imports (`@telorun/sdk`, native packages like
19
+ * `better-sqlite3`) resolve at runtime through the exact same `node_modules`
20
+ * walk-up the loose entry would — wherever the dep is hoisted or nested.
21
+ *
22
+ * On by default; `TELO_CONTROLLER_BUNDLE=0` (or false/no/off) is a kill-switch
23
+ * that forces loose imports. Safe to leave on: it applies only to real (copied)
24
+ * installs — symlinked `local_path` dev installs are skipped — and any build
25
+ * failure falls back to the loose import.
26
+ */
27
+ const BUNDLE_PREFIX = ".telobundle.";
28
+
29
+ function bundlingEnabled(): boolean {
30
+ const v = process.env.TELO_CONTROLLER_BUNDLE?.trim().toLowerCase();
31
+ return !(v === "0" || v === "false" || v === "no" || v === "off");
32
+ }
33
+
34
+ async function pathExists(p: string): Promise<boolean> {
35
+ try {
36
+ await fs.access(p);
37
+ return true;
38
+ } catch {
39
+ return false;
40
+ }
41
+ }
42
+
43
+ function sanitize(s: string): string {
44
+ return s.replace(/[^a-zA-Z0-9._-]/g, "_");
45
+ }
46
+
47
+ async function realpathOrNull(p: string): Promise<string | null> {
48
+ try {
49
+ return await fs.realpath(p);
50
+ } catch {
51
+ return null;
52
+ }
53
+ }
54
+
55
+ function isUnder(child: string, parent: string): boolean {
56
+ const rel = path.relative(parent, child);
57
+ return rel === "" || (!rel.startsWith("..") && !path.isAbsolute(rel));
58
+ }
59
+
60
+ const typeModuleCache = new Map<string, boolean>();
61
+
62
+ /** Whether `entryFile` is an ES module: `.mjs` / non-`.js` (e.g. `.ts`) yes,
63
+ * `.cjs` no, `.js` per the nearest `package.json` `"type"`. */
64
+ async function isEsmEntry(entryFile: string): Promise<boolean> {
65
+ const ext = path.extname(entryFile).toLowerCase();
66
+ if (ext === ".mjs") return true;
67
+ if (ext === ".cjs") return false;
68
+ if (ext !== ".js") return true; // .ts and friends — authored as ESM
69
+ const dir = path.dirname(entryFile);
70
+ const cached = typeModuleCache.get(dir);
71
+ if (cached !== undefined) return cached;
72
+ let isModule = false;
73
+ let d = dir;
74
+ for (;;) {
75
+ const pj = path.join(d, "package.json");
76
+ if (await pathExists(pj)) {
77
+ try {
78
+ isModule = JSON.parse(await fs.readFile(pj, "utf8")).type === "module";
79
+ } catch {
80
+ /* unreadable package.json → treat as CJS (skip bundling) */
81
+ }
82
+ break;
83
+ }
84
+ const parent = path.dirname(d);
85
+ if (parent === d) break;
86
+ d = parent;
87
+ }
88
+ typeModuleCache.set(dir, isModule);
89
+ return isModule;
90
+ }
91
+
92
+ /** Memoized esbuild handle: `undefined` until first tried, `null` when absent.
93
+ * A failed dynamic import isn't reliably cached by Node, so without this every
94
+ * controller load would re-attempt (and re-fail) the import. */
95
+ let esbuildModule: typeof import("esbuild") | null | undefined;
96
+ async function loadEsbuild(): Promise<typeof import("esbuild") | null> {
97
+ if (esbuildModule !== undefined) return esbuildModule;
98
+ try {
99
+ esbuildModule = await import("esbuild");
100
+ } catch {
101
+ esbuildModule = null;
102
+ }
103
+ return esbuildModule;
104
+ }
105
+
106
+ /**
107
+ * Build — or reuse a cached — single-file bundle of `entryFile`, written beside
108
+ * the entry inside the installed package so the bundle's externalized bare
109
+ * imports (`@telorun/sdk`, native packages) resolve through the entry's own
110
+ * `node_modules` walk-up. Built from the pinned `name@version` package, so the
111
+ * same controller yields the same bundle in every environment — parity by
112
+ * construction.
113
+ *
114
+ * Returns `null` (caller falls back to the loose entry import) when: bundling is
115
+ * disabled, the install is a symlinked source checkout, esbuild isn't installed,
116
+ * the package dir is read-only (baked runtime), or the build fails (an
117
+ * unbundleable controller).
118
+ */
119
+ export async function tryBuildControllerBundle(
120
+ installRoot: string,
121
+ entryFile: string,
122
+ ): Promise<string | null> {
123
+ if (!bundlingEnabled()) return null;
124
+
125
+ // Only bundle a *real* install (the package physically copied under the install
126
+ // root). A `local_path` / `file:` dep is symlinked to its source checkout, so
127
+ // its entry's realpath escapes the install root — writing "next to the entry"
128
+ // there would land bundles in the committed source tree. Dev runs that way
129
+ // simply skip bundling (loose import); the production bake is a real install.
130
+ const realEntry = await realpathOrNull(entryFile);
131
+ const realRoot = await realpathOrNull(installRoot);
132
+ if (!realEntry || !realRoot || !isUnder(realEntry, realRoot)) return null;
133
+
134
+ // Only bundle ESM entries. esbuild's ESM output preserves named exports, so a
135
+ // bundled ESM controller has the same `create`/`register` shape as the loose
136
+ // one. A CJS entry, by contrast, bundles to `{ default }` only (esbuild does
137
+ // not lift CJS named exports), which the loader would reject — so skip it and
138
+ // let the loose import (where Node synthesizes the named exports) handle it.
139
+ if (!(await isEsmEntry(realEntry))) return null;
140
+
141
+ // Beside the entry, so the bundle's externalized imports resolve through the
142
+ // entry's own node_modules walk-up (native deps may be nested under the
143
+ // controller package, not hoisted to the install root).
144
+ const bundleFile = path.join(
145
+ path.dirname(realEntry),
146
+ `${BUNDLE_PREFIX}${sanitize(path.basename(realEntry))}.mjs`,
147
+ );
148
+
149
+ if (await usableCachedBundle(bundleFile)) return bundleFile;
150
+
151
+ // Single-flight per bundle file within the process: a test run spawns many
152
+ // kernels sharing one install root, so concurrent loads of the same controller
153
+ // would otherwise each launch an esbuild over the same output.
154
+ const inFlight = buildsInFlight.get(bundleFile);
155
+ if (inFlight) return inFlight;
156
+ const work = buildBundle(bundleFile, entryFile).finally(() =>
157
+ buildsInFlight.delete(bundleFile),
158
+ );
159
+ buildsInFlight.set(bundleFile, work);
160
+ return work;
161
+ }
162
+
163
+ const buildsInFlight = new Map<string, Promise<string | null>>();
164
+ let tmpCounter = 0;
165
+
166
+ /** A bundle that anchors path resolution to its own directory (esbuild rewrites
167
+ * `__dirname`/`__filename` to `import.meta.url`) can't be safely relocated. */
168
+ const DIR_RELATIVE = /import\.meta\.url|\b__dirname\b|\b__filename\b/;
169
+
170
+ /** A cached bundle is usable only when its `.ok` sidecar is present — written
171
+ * once after the build passed the safety guard. Checking the marker (two stats)
172
+ * avoids re-reading the whole bundle on every load. A bundle without its marker
173
+ * (written before the guard existed, a torn write, or a failed build) self-heals
174
+ * to the loose import and is cleared on a writable FS. */
175
+ async function usableCachedBundle(bundleFile: string): Promise<boolean> {
176
+ if ((await pathExists(okMarker(bundleFile))) && (await pathExists(bundleFile))) return true;
177
+ await fs.rm(bundleFile, { force: true }).catch(() => {});
178
+ await fs.rm(okMarker(bundleFile), { force: true }).catch(() => {});
179
+ return false;
180
+ }
181
+
182
+ function okMarker(bundleFile: string): string {
183
+ return `${bundleFile}.ok`;
184
+ }
185
+
186
+ async function buildBundle(bundleFile: string, entryFile: string): Promise<string | null> {
187
+ if (await usableCachedBundle(bundleFile)) return bundleFile;
188
+
189
+ const esbuild = await loadEsbuild();
190
+ if (!esbuild) return null; // esbuild not installed → loose import
191
+
192
+ // Build in memory, then write to a unique temp and atomically rename into
193
+ // place — so a cross-process race never leaves a half-written bundle for a
194
+ // concurrent reader (or a concurrent build) to import.
195
+ const tmpFile = `${bundleFile}.${process.pid}.${tmpCounter++}.tmp`;
196
+ try {
197
+ const result = await esbuild.build({
198
+ entryPoints: [entryFile],
199
+ outfile: bundleFile,
200
+ bundle: true,
201
+ format: "esm",
202
+ platform: "node",
203
+ logLevel: "silent",
204
+ write: false,
205
+ plugins: [nativeExternalsPlugin()],
206
+ });
207
+ const out = result.outputFiles?.[0];
208
+ if (!out) return null;
209
+ // A flattened bundle that resolves paths relative to its own directory is
210
+ // unsafe: a deep dep locating a sibling asset (e.g. http-server's
211
+ // `${__dirname}/js/standalone.js`) would miss it at the bundle's new
212
+ // location. esbuild rewrites `__dirname`/`__filename` to `import.meta.url`,
213
+ // so its presence flags this — fall back to the loose import for those.
214
+ if (DIR_RELATIVE.test(out.text)) {
215
+ if (process.env.TELO_BUNDLE_DEBUG) {
216
+ process.stderr.write(`[bundle] skipped ${entryFile}: directory-relative asset resolution\n`);
217
+ }
218
+ return null;
219
+ }
220
+ await fs.writeFile(tmpFile, out.contents);
221
+ await fs.rename(tmpFile, bundleFile);
222
+ // Marker written last: its presence means "this bundle built and passed the
223
+ // safety guard", so cache hits trust it without re-reading the bundle.
224
+ await fs.writeFile(okMarker(bundleFile), "").catch(() => {});
225
+ return bundleFile;
226
+ } catch (err) {
227
+ if (process.env.TELO_BUNDLE_DEBUG) {
228
+ process.stderr.write(
229
+ `[bundle] skipped ${entryFile}: ${err instanceof Error ? err.message.split("\n")[0] : String(err)}\n`,
230
+ );
231
+ }
232
+ await fs.rm(tmpFile, { force: true }).catch(() => {});
233
+ return null; // unbundleable controller → loose import
234
+ }
235
+ }
236
+
237
+ /**
238
+ * esbuild plugin deciding which bare imports stay external rather than inline:
239
+ * - `@telorun/*` framework packages — the shared runtime (incl. the realm
240
+ * `@telorun/sdk`, whose `Stream`/`InvokeError` identity must be the kernel's
241
+ * copy); inlining them is both wrong (duplicates the runtime per controller)
242
+ * and impossible (the kernel pulls in esbuild's unbundleable API);
243
+ * - `esbuild` — a build tool, never part of a controller;
244
+ * - native packages — ship a `.node` and can't be inlined;
245
+ * - packages not present in the install (optional deps like `pg-native`) —
246
+ * externalized so the build succeeds and the runtime require behaves exactly
247
+ * as it would loose (the controller's own try/catch handles the absence).
248
+ * Everything else (the controller's own files + third-party JS) inlines.
249
+ */
250
+ function nativeExternalsPlugin(): import("esbuild").Plugin {
251
+ const realm = new Set(REALM_COLLAPSE_NAMES);
252
+ const decided = new Map<string, boolean>();
253
+ return {
254
+ name: "telo-native-externals",
255
+ setup(build) {
256
+ // A direct `.node` binary import can never be bundled.
257
+ build.onResolve({ filter: /\.node$/ }, () => ({ external: true }));
258
+ // Bare specifiers only (paths starting with `.` or `/` are relative/absolute).
259
+ build.onResolve({ filter: /^[^./]/ }, async (args) => {
260
+ if (path.isAbsolute(args.path)) return null;
261
+ const top = topPackage(args.path);
262
+ // Realm names (the identity-critical set realm.ts owns) plus the rest of
263
+ // the `@telorun/*` framework and esbuild itself — never inline these.
264
+ if (realm.has(top) || top.startsWith("@telorun/") || top === "esbuild") {
265
+ return { external: true };
266
+ }
267
+ const pkgDir = findPackageDir(top, args.resolveDir);
268
+ if (!pkgDir) return { external: true }; // missing/optional dep → behave as loose
269
+ let isNative = decided.get(pkgDir);
270
+ if (isNative === undefined) {
271
+ isNative = await detectNative(pkgDir);
272
+ decided.set(pkgDir, isNative);
273
+ }
274
+ return isNative ? { external: true } : null;
275
+ });
276
+ },
277
+ };
278
+ }
279
+
280
+ /** Top-level package of a bare specifier: `@scope/x/y` → `@scope/x`, `a/b` → `a`. */
281
+ function topPackage(spec: string): string {
282
+ const parts = spec.split("/");
283
+ return spec.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
284
+ }
285
+
286
+ /** Nearest `node_modules/<pkgName>` walking up from `fromDir`, or null. */
287
+ function findPackageDir(pkgName: string, fromDir: string): string | null {
288
+ let dir = fromDir;
289
+ for (;;) {
290
+ const candidate = path.join(dir, "node_modules", ...pkgName.split("/"));
291
+ if (existsSync(path.join(candidate, "package.json"))) return candidate;
292
+ const parent = path.dirname(dir);
293
+ if (parent === dir) return null;
294
+ dir = parent;
295
+ }
296
+ }
297
+
298
+ /** A package is native if it ships prebuilt binaries / a build output, or its
299
+ * manifest declares a node-gyp / prebuild-style native build. */
300
+ async function detectNative(pkgDir: string): Promise<boolean> {
301
+ if (await pathExists(path.join(pkgDir, "prebuilds"))) return true;
302
+ if (await pathExists(path.join(pkgDir, "build", "Release"))) return true;
303
+ try {
304
+ const pj = JSON.parse(await fs.readFile(path.join(pkgDir, "package.json"), "utf8"));
305
+ if (pj.gypfile || pj.binary) return true;
306
+ const scripts = pj.scripts ?? {};
307
+ const installish = `${scripts.preinstall ?? ""} ${scripts.install ?? ""} ${scripts.postinstall ?? ""}`;
308
+ if (/node-gyp|prebuild-install|node-pre-gyp|node-gyp-build|cmake-js/.test(installish)) return true;
309
+ } catch {
310
+ // unreadable package.json — treat as non-native; esbuild surfaces real errors
311
+ }
312
+ return false;
313
+ }
@@ -8,6 +8,7 @@ import { PackageURL } from "packageurl-js";
8
8
  import * as path from "path";
9
9
  import { fileURLToPath, pathToFileURL } from "url";
10
10
  import { promisify } from "util";
11
+ import { tryBuildControllerBundle } from "./bundle-builder.js";
11
12
  import { ControllerEnvMissingError } from "./napi-loader.js";
12
13
  import { REALM_COLLAPSE_NAMES } from "./realm.js";
13
14
 
@@ -882,6 +883,10 @@ async function loadFromInstall(
882
883
  const packageRoot = path.join(installRoot, "node_modules", alias);
883
884
  const entry = subpath ? `./${subpath}` : ".";
884
885
  const entryFile = await resolvePackageEntry(packageRoot, entry);
886
+ // Transparent bundling: import a single esbuild bundle of the entry (one file
887
+ // vs a cold loose `node_modules` tree) when available; otherwise the loose
888
+ // entry. Pure accelerator — `null` on any miss, so behavior is unchanged.
889
+ const target = (await tryBuildControllerBundle(installRoot, entryFile)) ?? entryFile;
885
890
  // ESM dynamic `import()` accepts either a relative specifier or a `file://`
886
891
  // URL — but NOT a bare absolute filesystem path. On POSIX the `/abs/path`
887
892
  // form works by happy accident; on Windows `C:\path\to\file.js` is rejected
@@ -891,7 +896,7 @@ async function loadFromInstall(
891
896
  // Dynamic `import()` always resolves to a module namespace object on
892
897
  // success; it never returns null/undefined. The only meaningful contract
893
898
  // check is whether the module exports at least one of the controller hooks.
894
- const instance = await import(pathToFileURL(entryFile).href);
899
+ const instance = await import(pathToFileURL(target).href);
895
900
  if (!instance.create && !instance.register) {
896
901
  throw new Error(
897
902
  `Invalid controller loaded from "${purl}": exports neither create() nor register()`,