phantom-build 0.2.1 → 0.4.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 +63 -10
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +3 -1
- package/dist/analyzer.js.map +1 -1
- package/dist/classify/lazy.d.ts.map +1 -1
- package/dist/classify/lazy.js +13 -16
- package/dist/classify/lazy.js.map +1 -1
- package/dist/cli.js +24 -9
- package/dist/cli.js.map +1 -1
- package/dist/extract/chunk-module.d.ts +21 -0
- package/dist/extract/chunk-module.d.ts.map +1 -1
- package/dist/extract/chunk-module.js +60 -45
- package/dist/extract/chunk-module.js.map +1 -1
- package/dist/extract/client-stub.d.ts +5 -5
- package/dist/extract/client-stub.d.ts.map +1 -1
- package/dist/extract/client-stub.js +17 -32
- package/dist/extract/client-stub.js.map +1 -1
- package/dist/extract/grouped-chunk-module.d.ts +35 -0
- package/dist/extract/grouped-chunk-module.d.ts.map +1 -0
- package/dist/extract/grouped-chunk-module.js +94 -0
- package/dist/extract/grouped-chunk-module.js.map +1 -0
- package/dist/extract/index.d.ts +7 -1
- package/dist/extract/index.d.ts.map +1 -1
- package/dist/extract/index.js +49 -15
- package/dist/extract/index.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +129 -16
- package/dist/plugin.js.map +1 -1
- package/dist/rspack.d.ts +3 -0
- package/dist/rspack.d.ts.map +1 -0
- package/dist/rspack.js +3 -0
- package/dist/rspack.js.map +1 -0
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -169,12 +169,11 @@ export default function CheckoutPage({ order, user }) {
|
|
|
169
169
|
**What stays static (not lazified):**
|
|
170
170
|
- Components above the fold (positions 0-1 in the JSX tree)
|
|
171
171
|
- Context providers (must hydrate before consumers)
|
|
172
|
-
-
|
|
172
|
+
- Tiny components (source files under 512 bytes — stub overhead would exceed savings)
|
|
173
173
|
|
|
174
174
|
**What gets lazified:**
|
|
175
|
-
- Components below the fold (position 2+)
|
|
175
|
+
- Components below the fold (position 2+) with meaningful source size
|
|
176
176
|
- Conditionally rendered components (`{flag && <Component />}`)
|
|
177
|
-
- Components with handlers, effects, or state (worth deferring)
|
|
178
177
|
|
|
179
178
|
## Configuration
|
|
180
179
|
|
|
@@ -184,9 +183,18 @@ phantom({
|
|
|
184
183
|
// Lower = more aggressive extraction. Default: 0.8
|
|
185
184
|
confidenceThreshold: 0.8,
|
|
186
185
|
|
|
186
|
+
// Minimum handler body size in bytes to extract. Default: 200
|
|
187
|
+
// Handlers smaller than this are left inline (stub would be bigger).
|
|
188
|
+
minHandlerSize: 200,
|
|
189
|
+
|
|
187
190
|
// Enable/disable lazy component wrapping. Default: true
|
|
188
191
|
enableLazy: true,
|
|
189
192
|
|
|
193
|
+
// Preload strategy for handler chunks. Default: 'none'
|
|
194
|
+
// 'idle' injects requestIdleCallback modulepreload for all chunks.
|
|
195
|
+
// 'none' loads chunks on-demand only (best for Lighthouse scores).
|
|
196
|
+
preloadStrategy: 'none',
|
|
197
|
+
|
|
190
198
|
// Output path for the build manifest. Default: "phantom.manifest.json"
|
|
191
199
|
manifestPath: 'phantom.manifest.json',
|
|
192
200
|
|
|
@@ -249,7 +257,7 @@ webpack.config.server.js → phantom({ ssr: true }) // no-op
|
|
|
249
257
|
|
|
250
258
|
The client build produces lazy-loaded handler chunks and `React.lazy` wrappers. The server build produces a synchronous bundle for `renderToString()` with all components inline.
|
|
251
259
|
|
|
252
|
-
**Why not strip just `React.lazy`?** Selectively removing lazy transforms while keeping handler extraction would still inject `
|
|
260
|
+
**Why not strip just `React.lazy`?** Selectively removing lazy transforms while keeping handler extraction would still inject `$p` runtime imports and dynamic `import()` calls into the server bundle. A clean no-op is simpler, produces the smallest server bundle, and avoids any SSR-incompatible code paths.
|
|
253
261
|
|
|
254
262
|
### LLM-Assisted Optimization
|
|
255
263
|
|
|
@@ -312,8 +320,9 @@ Phantom Analysis: src/components/CheckoutPage.tsx
|
|
|
312
320
|
phantom analyze <file> [options]
|
|
313
321
|
|
|
314
322
|
Options:
|
|
315
|
-
--threshold <number>
|
|
316
|
-
--
|
|
323
|
+
--threshold <number> Confidence threshold for extraction (default: 0.8)
|
|
324
|
+
--min-handler-size <number> Min handler bytes to extract (default: 200)
|
|
325
|
+
--help, -h Show this help message
|
|
317
326
|
```
|
|
318
327
|
|
|
319
328
|
## Build Manifest
|
|
@@ -377,7 +386,7 @@ Phantom processes each module through a 5-phase pipeline:
|
|
|
377
386
|
|
|
378
387
|
## How the Runtime Works
|
|
379
388
|
|
|
380
|
-
The `phantom-build/runtime` module provides `
|
|
389
|
+
The `phantom-build/runtime` module provides `$p` (the lazy handler loader), which:
|
|
381
390
|
|
|
382
391
|
1. On first invocation, dynamically imports the handler chunk
|
|
383
392
|
2. Caches the loaded function for instant subsequent calls
|
|
@@ -385,13 +394,12 @@ The `phantom-build/runtime` module provides `__phantom_lazy`, which:
|
|
|
385
394
|
4. Cleans up on failure so retries work
|
|
386
395
|
|
|
387
396
|
```ts
|
|
388
|
-
import {
|
|
397
|
+
import { $p } from 'phantom-build/runtime';
|
|
389
398
|
|
|
390
399
|
// Generated stub (you never write this — Phantom does):
|
|
391
400
|
const handleClick = (e) => {
|
|
392
401
|
e.preventDefault(); // synchronous — runs immediately
|
|
393
|
-
|
|
394
|
-
__phantom_lazy(
|
|
402
|
+
$p(
|
|
395
403
|
() => import('phantom:seg_abc123.chunk.js'),
|
|
396
404
|
'seg_abc123',
|
|
397
405
|
e, // forwarded args
|
|
@@ -417,6 +425,51 @@ import { PaymentForm, AddressForm } from './components';
|
|
|
417
425
|
|
|
418
426
|
The generated `lazy()` calls will target the actual component modules (`./components/PaymentForm`), not the barrel file — producing optimal chunk splitting.
|
|
419
427
|
|
|
428
|
+
## Benchmarks
|
|
429
|
+
|
|
430
|
+
Tested against [shadcn-admin](https://github.com/satnaing/shadcn-admin) (11k+ stars) — a production-grade admin dashboard built with React 19, Vite 6, TanStack Router, and Shadcn UI.
|
|
431
|
+
|
|
432
|
+
### Route-Level JS Reduction
|
|
433
|
+
|
|
434
|
+
Phantom reduces the JavaScript that loads when navigating to each page. Shared dependencies (React, Radix, etc.) are identical between builds — only route-specific code changes.
|
|
435
|
+
|
|
436
|
+
| Route | Baseline | Phantom | Reduction |
|
|
437
|
+
|---|---|---|---|
|
|
438
|
+
| Main layout (`_authenticated`) | 336 KB | 10.7 KB | **−97%** |
|
|
439
|
+
| Settings → Account | 52.9 KB | 1.1 KB | **−98%** |
|
|
440
|
+
| Auth → OTP | 12.6 KB | 1.2 KB | **−90%** |
|
|
441
|
+
| Settings → Notifications | 7.1 KB | 1.0 KB | **−86%** |
|
|
442
|
+
| Settings → Appearance | 4.3 KB | 1.0 KB | **−75%** |
|
|
443
|
+
| **Total (29 routes)** | **480 KB** | **77.5 KB** | **−84%** |
|
|
444
|
+
|
|
445
|
+
57 interaction handlers (modals, dialogs, dropdowns) are deferred to on-demand chunks totaling 5.3 KB. These load only when the user actually clicks.
|
|
446
|
+
|
|
447
|
+
### Lighthouse (Simulated Slow 4G + 4× CPU Throttling)
|
|
448
|
+
|
|
449
|
+
| Metric | Baseline | Phantom | Change |
|
|
450
|
+
|---|---|---|---|
|
|
451
|
+
| Performance Score | 80 | 80 | **0** |
|
|
452
|
+
| Total Blocking Time | 63 ms | 4 ms | **−94%** |
|
|
453
|
+
| First Contentful Paint | 3.19 s | 3.18 s | — |
|
|
454
|
+
| Largest Contentful Paint | 4.16 s | 4.11 s | −1% |
|
|
455
|
+
| Total Byte Weight | 479 KB | 478 KB | — |
|
|
456
|
+
|
|
457
|
+
Total Blocking Time measures how long the main thread is locked and unable to respond to user input. Phantom reduces it by 94% because route chunks contain far less JavaScript to parse and compile — with zero regression in performance score or byte weight.
|
|
458
|
+
|
|
459
|
+
### Reproduce
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
# Clone the repo and install
|
|
463
|
+
git clone https://github.com/Phoenixrr2113/phantom.git
|
|
464
|
+
cd phantom && npm install && npm run build
|
|
465
|
+
|
|
466
|
+
# Route chunk comparison
|
|
467
|
+
node benchmarks/compare-routes.mjs
|
|
468
|
+
|
|
469
|
+
# Lighthouse A/B comparison
|
|
470
|
+
node benchmarks/lighthouse-compare.mjs --runs=5
|
|
471
|
+
```
|
|
472
|
+
|
|
420
473
|
## Requirements
|
|
421
474
|
|
|
422
475
|
- Node.js >= 18
|
package/dist/analyzer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAId,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAYpB;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAyCtE;AAsQD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAId,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAYpB;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAyCtE;AAsQD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,cAAc,CAoDhB"}
|
package/dist/analyzer.js
CHANGED
|
@@ -306,7 +306,8 @@ export function analyzeModule(code, path, _options) {
|
|
|
306
306
|
}
|
|
307
307
|
// Phase 4: extraction (handler chunks + lazy transforms)
|
|
308
308
|
const confidenceThreshold = _options?.confidenceThreshold ?? 0.8;
|
|
309
|
-
const
|
|
309
|
+
const minHandlerSize = _options?.minHandlerSize ?? 200;
|
|
310
|
+
const extracted = extractModule(parsed, segments, code, confidenceThreshold, path, lazyCandidates, minHandlerSize);
|
|
310
311
|
if (extracted) {
|
|
311
312
|
return {
|
|
312
313
|
path,
|
|
@@ -315,6 +316,7 @@ export function analyzeModule(code, path, _options) {
|
|
|
315
316
|
clientCode: extracted.clientCode,
|
|
316
317
|
clientMap: extracted.clientMap,
|
|
317
318
|
chunkModules: extracted.chunkModules,
|
|
319
|
+
extractedSegmentIds: extracted.extractedSegmentIds,
|
|
318
320
|
lazyCandidates,
|
|
319
321
|
lazyKeptStatic,
|
|
320
322
|
};
|
package/dist/analyzer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/classify/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAEjB,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AAErB,uFAAuF;AACvF,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/classify/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAEjB,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,aAAa,CAAC;AAErB,uFAAuF;AACvF,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAkCtF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,WAAW,CAAC,EAAE,WAAW,GACxB,mBAAmB,CAqGrB"}
|
package/dist/classify/lazy.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { dirname, relative, resolve } from 'node:path';
|
|
2
2
|
// ── Constants ───────────────────────────────────────────────────────────
|
|
3
3
|
/**
|
|
4
|
-
* Minimum estimated
|
|
5
|
-
* Below this threshold, the Suspense boundary overhead
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Minimum estimated source size (bytes) for a component to be worth lazifying.
|
|
5
|
+
* Below this threshold, the Suspense boundary overhead (~200 bytes of wrapper
|
|
6
|
+
* code plus a loading waterfall step) exceeds the savings from code-splitting.
|
|
7
|
+
* Source files under 512 bytes are typically tiny leaf components, icons, or
|
|
8
|
+
* re-export wrappers where lazy loading would be counter-productive.
|
|
8
9
|
*/
|
|
9
|
-
const MIN_JS_COST_BYTES =
|
|
10
|
+
const MIN_JS_COST_BYTES = 512;
|
|
10
11
|
/**
|
|
11
12
|
* JSX position threshold: children at or above this index in a route-level
|
|
12
13
|
* component's render tree are assumed to be below the initial viewport.
|
|
@@ -85,7 +86,7 @@ export function detectLazyCandidates(analyzed, sourceCode, segments, componentPr
|
|
|
85
86
|
keepStatic.push({
|
|
86
87
|
localName: imp.localName,
|
|
87
88
|
source: imp.source,
|
|
88
|
-
reason: `Low JS cost (${profile.estimatedSize}B
|
|
89
|
+
reason: `Low JS cost (${profile.estimatedSize}B < ${MIN_JS_COST_BYTES}B threshold) — Suspense overhead exceeds savings`,
|
|
89
90
|
});
|
|
90
91
|
continue;
|
|
91
92
|
}
|
|
@@ -473,16 +474,12 @@ function buildReason(position, isConditional, strategy, profile) {
|
|
|
473
474
|
}
|
|
474
475
|
// ── Helpers ─────────────────────────────────────────────────────────────
|
|
475
476
|
function hasSignificantJSCost(profile) {
|
|
476
|
-
// A component
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
return true;
|
|
483
|
-
if (profile.hasState)
|
|
484
|
-
return true;
|
|
485
|
-
return false;
|
|
477
|
+
// A component must have substantial JS cost to justify the overhead of
|
|
478
|
+
// a Suspense boundary + dynamic import chunk + loading waterfall step.
|
|
479
|
+
// Handler extraction already moves expensive handler code to on-demand
|
|
480
|
+
// chunks, and effects / state are cheap to keep inline — so we rely on
|
|
481
|
+
// total estimated size as the sole gating signal.
|
|
482
|
+
return profile.estimatedSize >= MIN_JS_COST_BYTES;
|
|
486
483
|
}
|
|
487
484
|
function isPascalCase(name) {
|
|
488
485
|
return /^[A-Z][a-zA-Z0-9]*$/.test(name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/classify/lazy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/classify/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcvD,2EAA2E;AAE3E;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,wBAAwB,GAAG,wEAAwE,CAAC;AAE1G,2EAA2E;AAE3E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAwB,EACxB,UAAkB,EAClB,QAA6B,EAC7B,iBAAiD,EACjD,WAAyB;IAEzB,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,MAAM,UAAU,GAAsC,EAAE,CAAC;IAEzD,2DAA2D;IAC3D,8EAA8E;IAC9E,sEAAsE;IACtE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1F,gEAAgE;IAChE,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAErG,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE5E,yCAAyC;IACzC,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,wEAAwE;YACxE,SAAS;QACX,CAAC;QAED,uEAAuE;QACvE,sCAAsC;QACtC,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC;QACvD,MAAM,OAAO,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,IAAI,CAAC;QACjG,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpD,yEAAyE;QACzE,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,kDAAkD;aAC3D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,iFAAiF;QACjF,IAAI,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,gBAAgB,OAAO,CAAC,aAAa,OAAO,iBAAiB,kDAAkD;aACxH,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,oCAAoC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAE7D,kFAAkF;QAClF,wFAAwF;QACxF,yFAAyF;QACzF,IAAI,gBAAgB,IAAI,WAAW,GAAG,mBAAmB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChF,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,YAAY,WAAW,gDAAgD,mBAAmB,GAAG;aACtG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAE3F,IAAI,CAAC,IAAI,CAAC;YACR,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;YAC/C,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,QAAQ;YACR,aAAa,EAAE,IAAI,EAAE,oEAAoE;YACzF,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEzC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAeD;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAC3B,QAAwB,EACxB,WAAyB;IAEzB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnC,oEAAoE;QACpE,qCAAqC;QACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAE5C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,cAAc,GAAkB,IAAI,CAAC;gBACzC,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAEjC,sCAAsC;gBACtC,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,mBAAmB,CAClC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAC3B,CAAC;oBACF,IAAI,QAAQ,EAAE,CAAC;wBACb,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;wBACjC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;wBACjC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;oBACvC,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,IAAI,CAAC,KAAK;oBACrB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,cAAc;oBACd,UAAU;oBACV,YAAY;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAC1B,YAAoB,EACpB,YAAoB,EACpB,UAA6C,EAC7C,UAAkB,EAClB,WAAwB;IAExB,uDAAuD;IACvD,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhC,mDAAmD;IACnD,mEAAmE;IACnE,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5G,IAAI,cAAiF,CAAC;IACtF,IAAI,SAA6B,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC;QACnD,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE/C,wDAAwD;IACxD,MAAM,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,mEAAmE;IACnE,qEAAqE;IACrE,gFAAgF;IAChF,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,cAAc,GAAG,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEvD,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,OAAgB,CAAC;IACvG,MAAM,oBAAoB,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IAE7F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACxG,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,EAAU;IAC5C,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAC3C,OAAO,GAAG,CAAC;AACb,CAAC;AAeD;;;;;;;GAOG;AACH,SAAS,aAAa,CACpB,GAAS,EACT,cAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,wDAAwD;IACxD,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACrC,IAAK,IAAI,CAAC,IAAe,KAAK,YAAY;YAAE,OAAO;QAEnD,MAAM,GAAG,GAAG,IAMX,CAAC;QAEF,8DAA8D;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAExD,MAAM,KAAK,GAAI,IAAkC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAI,IAAgC,CAAC,GAAG,IAAI,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAa;YACtB,KAAK;YACL,GAAG;YACH,QAAQ,EAAE,OAAO,CAAC,YAAY;YAC9B,WAAW,EAAE,OAAO,CAAC,aAAa;SACnC,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2EAA2E;AAE3E;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,GAAS,EACT,cAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IAExC,oCAAoC;IACpC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC9D,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,IAAK,IAAI,CAAC,IAAe,KAAK,YAAY;YAAE,OAAO;QAEnD,MAAM,GAAG,GAAG,IAGX,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO;QAExD,0DAA0D;QAC1D,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAClD,MAAM,CAAC,GAAG,KAA0B,CAAC;YACrC,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,YAAY;gBACvB,CAAC,CAAC,IAAI,KAAK,aAAa;gBACxB,CAAC,CAAC,IAAI,KAAK,wBAAwB,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2EAA2E;AAE3E;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,QAAgB,EAAE,GAAS;IACxD,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,2CAA2C,CAAC;IACrE,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjD,gEAAgE;IAChE,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,cAAc;YAAE,OAAO;QAE3B,iDAAiD;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAI,IAA+B,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAI,IAAmC,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC3D,IAAI,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAI,IAA+B,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAI,IAAmC,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC3D,IAAI,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,2EAA2E;AAE3E;;;;GAIG;AACH,SAAS,cAAc,CACrB,WAAmB,EACnB,aAAsB,EACtB,gBAAyB,EACzB,OAAgC;IAEhC,+DAA+D;IAC/D,qCAAqC;IACrC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,4DAA4D;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,sEAAsE;QACtE,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACzC,mCAAmC;QACnC,IAAI,WAAW,IAAI,mBAAmB;YAAE,OAAO,UAAU,CAAC;IAC5D,CAAC;IAED,kEAAkE;IAClE,2DAA2D;IAC3D,IAAI,OAAO,EAAE,UAAU;QAAE,OAAO,MAAM,CAAC;IAEvC,kCAAkC;IAClC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2EAA2E;AAE3E;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,UAA2B,EAAE,GAAS;IAClE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO;IAEnC,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IAExD,kDAAkD;IAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,CAAC;gBACX,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAE/B,uBAAuB;QACvB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QAExE,kCAAkC;QAClC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC;YAClC,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;YAElF,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBACrB,2BAA2B;gBAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAC/B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,SAAS,YAAY,EAAE,EAAE,CAAC;oBAC1C,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,QAAQ,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAS,EAAE,UAAkB,EAAE,QAAgB;IACvE,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,SAAS;YAAE,OAAO,CAAC,gBAAgB;QAEvC,MAAM,MAAM,GAAI,IAAkC,CAAC,KAAK,CAAC;QACzD,MAAM,IAAI,GAAI,IAAgC,CAAC,GAAG,CAAC;QACnD,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO;QAEvD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAI,MAAoC,CAAC,KAAK,CAAC;YAC3D,MAAM,IAAI,GAAI,MAAkC,CAAC,GAAG,CAAC;YACrD,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACnC,SAAS,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2EAA2E;AAE3E,SAAS,WAAW,CAClB,QAAgB,EAChB,aAAsB,EACtB,QAA0B,EAC1B,OAAgC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,qCAAqC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,WAAW,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,2EAA2E;AAE3E,SAAS,oBAAoB,CAAC,OAAyB;IACrD,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,kDAAkD;IAClD,OAAO,OAAO,CAAC,aAAa,IAAI,iBAAiB,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9D,SAAS,uBAAuB,CAC9B,YAAoB,EACpB,cAAsB,EACtB,QAAwC;IAExC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,qEAAqE;IACrE,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAElE,uDAAuD;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,oBAAoB,CAAC,GAAS;IACrC,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,KAAK;YAAE,OAAO;QAElB,IAAI,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAI,IAA+B,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,mCAAmC;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,OAAO;YAAC,CAAC;YAClE,0DAA0D;YAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC5G,uDAAuD;YACvD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,OAAO;YAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAI,IAAsC,CAAC,WAAW,CAAC;YACjE,MAAM,UAAU,GAAI,IAAmC,CAAC,UAAU,CAAC;YAEnE,IAAI,IAAI,EAAE,CAAC;gBACT,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAClE,mEAAmE;gBACnE,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAI,IAAqC,CAAC,YAAY,CAAC;oBACzE,IAAI,YAAY,EAAE,CAAC;wBACjB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;4BAC7B,MAAM,EAAE,GAAG,CAA+B,CAAC;4BAC3C,yDAAyD;4BACzD,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gCACjC,MAAM,IAAI,GAAI,EAAE,CAAC,EAAiB,CAAC,IAAI,CAAC;gCACxC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oCAAC,KAAK,GAAG,IAAI,CAAC;oCAAC,OAAO;gCAAC,CAAC;4BACnD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mGAAmG;YACnG,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,IAAmE,CAAC;oBAC9E,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;oBACvD,IAAI,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;wBAAC,KAAK,GAAG,IAAI,CAAC;wBAAC,OAAO;oBAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAE3E;;;GAGG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;AAUtJ;;GAEG;AACH,SAAS,eAAe,CACtB,IAAa,EACb,QAAoD,EACpD,UAAuB,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;IAEhE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,+DAA+D;QAC/D,sEAAsE;QACtE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAgC,CAAC;YAClD,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,KAAK,YAAY,IAAI,QAAQ,EAAE,IAAI,KAAK,aAAa,CAAC;YAEzF,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE;gBAC/B,GAAG,OAAO;gBACV,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY;aACjE,CAAC,CAAC;YAEH,IAAI,YAAY;gBAAE,YAAY,EAAE,CAAC;QACnC,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO;IAEzC,MAAM,MAAM,GAAG,GAAsB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1B,oEAAoE;IACpE,MAAM,iBAAiB,GACrB,GAAG,CAAC,IAAI,KAAK,uBAAuB;QACpC,CAAC,GAAG,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEjC,MAAM,YAAY,GAAgB;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,iBAAiB;SAC1D,CAAC;QAEF,kDAAkD;QAClD,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACpF,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,QAA8B;IAC7D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI;YAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO;IACzC,QAAQ,CAAC,GAAsB,CAAC,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAa,EACb,MAAmB,EACnB,QAAmD;IAEnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI;YAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO;IACzC,MAAM,MAAM,GAAG,GAAsB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -10,8 +10,9 @@ Usage: phantom analyze <file> [options]
|
|
|
10
10
|
Analyze a single file and print segment classification details.
|
|
11
11
|
|
|
12
12
|
Options:
|
|
13
|
-
--threshold <number>
|
|
14
|
-
--
|
|
13
|
+
--threshold <number> Confidence threshold for extraction (default: 0.8)
|
|
14
|
+
--min-handler-size <number> Min handler bytes to extract (default: 200)
|
|
15
|
+
--help, -h Show this help message
|
|
15
16
|
`.trim());
|
|
16
17
|
}
|
|
17
18
|
function main() {
|
|
@@ -43,6 +44,17 @@ function main() {
|
|
|
43
44
|
}
|
|
44
45
|
threshold = val;
|
|
45
46
|
}
|
|
47
|
+
// Parse --min-handler-size flag
|
|
48
|
+
let minHandlerSize;
|
|
49
|
+
const minSizeIdx = args.indexOf('--min-handler-size');
|
|
50
|
+
if (minSizeIdx !== -1) {
|
|
51
|
+
const val = parseInt(args[minSizeIdx + 1], 10);
|
|
52
|
+
if (isNaN(val) || val < 0) {
|
|
53
|
+
console.error('Error: --min-handler-size must be a non-negative integer');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
minHandlerSize = val;
|
|
57
|
+
}
|
|
46
58
|
// Read and analyze the file
|
|
47
59
|
const absolutePath = resolve(filePath);
|
|
48
60
|
let code;
|
|
@@ -53,7 +65,7 @@ function main() {
|
|
|
53
65
|
console.error(`Error: Cannot read file "${absolutePath}"`);
|
|
54
66
|
process.exit(1);
|
|
55
67
|
}
|
|
56
|
-
const result = analyzeModule(code, absolutePath, { confidenceThreshold: threshold });
|
|
68
|
+
const result = analyzeModule(code, absolutePath, { confidenceThreshold: threshold, minHandlerSize });
|
|
57
69
|
// ── Output ───────────────────────────────────────────────────────
|
|
58
70
|
console.log(`\nPhantom Analysis: ${filePath}`);
|
|
59
71
|
console.log('═'.repeat(60));
|
|
@@ -65,7 +77,7 @@ function main() {
|
|
|
65
77
|
console.log(`\n ${'Name'.padEnd(30)} ${'Class'.padEnd(20)} ${'Conf'.padEnd(6)} Extracted?`);
|
|
66
78
|
console.log(` ${'─'.repeat(30)} ${'─'.repeat(20)} ${'─'.repeat(6)} ${'─'.repeat(10)}`);
|
|
67
79
|
for (const seg of result.segments) {
|
|
68
|
-
const extracted = result.
|
|
80
|
+
const extracted = result.extractedSegmentIds?.includes(seg.id) ? '✓ yes' : ' no';
|
|
69
81
|
console.log(` ${seg.name.padEnd(30)} ${seg.classification.padEnd(20)} ${seg.confidence.toFixed(2).padStart(5)} ${extracted}`);
|
|
70
82
|
if (seg.reasons.length > 0) {
|
|
71
83
|
for (const reason of seg.reasons) {
|
|
@@ -77,11 +89,14 @@ function main() {
|
|
|
77
89
|
console.log('');
|
|
78
90
|
console.log(` Segments: ${result.segments.length}`);
|
|
79
91
|
console.log(` Threshold: ${threshold}`);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
const extractedCount = result.extractedSegmentIds?.length ?? 0;
|
|
93
|
+
if (extractedCount > 0) {
|
|
94
|
+
console.log(` Chunks extracted: ${extractedCount}`);
|
|
95
|
+
if (result.chunkModules) {
|
|
96
|
+
for (const mod of result.chunkModules) {
|
|
97
|
+
const sizeKb = (Buffer.byteLength(mod.code, 'utf-8') / 1024).toFixed(1);
|
|
98
|
+
console.log(` ${mod.id} (${sizeKb} KB)`);
|
|
99
|
+
}
|
|
85
100
|
}
|
|
86
101
|
}
|
|
87
102
|
else {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wEAAwE;AAExE,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import type { ClassifiedSegment, ImportInfo, SourceMapLike } from '../types.js';
|
|
2
2
|
import type { ExtractableNode } from './client-stub.js';
|
|
3
|
+
import type { FunctionDeclaration, ImportDeclaration } from 'estree';
|
|
4
|
+
/**
|
|
5
|
+
* Build an exported FunctionDeclaration AST node for a single handler.
|
|
6
|
+
*
|
|
7
|
+
* This is the core logic shared by both `generateChunkModule()` (single handler
|
|
8
|
+
* per file) and `generateGroupedChunkModule()` (multiple handlers per file).
|
|
9
|
+
*
|
|
10
|
+
* Returns an ExportNamedDeclaration wrapping a FunctionDeclaration with the
|
|
11
|
+
* segment ID as the function name. TypeScript annotations are stripped.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildHandlerExportAST(segment: ClassifiedSegment, astNode: ExtractableNode, capturedParams: string[]): {
|
|
14
|
+
type: 'ExportNamedDeclaration';
|
|
15
|
+
declaration: FunctionDeclaration;
|
|
16
|
+
specifiers: never[];
|
|
17
|
+
source: null;
|
|
18
|
+
attributes: never[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Build ImportDeclaration AST nodes from an array of ImportInfo.
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildImportDeclarations(imports: ImportInfo[]): ImportDeclaration[];
|
|
3
24
|
/**
|
|
4
25
|
* Generate a lazy-loaded chunk module that exports the extracted function.
|
|
5
26
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-module.d.ts","sourceRoot":"","sources":["../../src/extract/chunk-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"chunk-module.d.ts","sourceRoot":"","sources":["../../src/extract/chunk-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EAEV,mBAAmB,EAEnB,iBAAiB,EAMlB,MAAM,QAAQ,CAAC;AA4EhB;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EAAE,GACvB;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,KAAK,EAAE,CAAA;CAAE,CAsC9H;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,CA6BlF;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,UAAU,EAAE,EACrB,cAAc,EAAE,MAAM,EAAE,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,CAsBtC"}
|
|
@@ -64,53 +64,17 @@ function stripTypeAnnotations(node) {
|
|
|
64
64
|
}
|
|
65
65
|
return node;
|
|
66
66
|
}
|
|
67
|
-
// ──
|
|
67
|
+
// ── Handler function AST builder (shared between single and grouped) ────
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* Output shape:
|
|
69
|
+
* Build an exported FunctionDeclaration AST node for a single handler.
|
|
72
70
|
*
|
|
73
|
-
*
|
|
71
|
+
* This is the core logic shared by both `generateChunkModule()` (single handler
|
|
72
|
+
* per file) and `generateGroupedChunkModule()` (multiple handlers per file).
|
|
74
73
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* const form = e.target;
|
|
78
|
-
* // ...handler logic
|
|
79
|
-
* }
|
|
74
|
+
* Returns an ExportNamedDeclaration wrapping a FunctionDeclaration with the
|
|
75
|
+
* segment ID as the function name. TypeScript annotations are stripped.
|
|
80
76
|
*/
|
|
81
|
-
export function
|
|
82
|
-
const body = [];
|
|
83
|
-
// 1. Import declarations
|
|
84
|
-
for (const imp of imports) {
|
|
85
|
-
const specifiers = imp.specifiers.map((spec) => {
|
|
86
|
-
if (spec.kind === 'default') {
|
|
87
|
-
return {
|
|
88
|
-
type: 'ImportDefaultSpecifier',
|
|
89
|
-
local: { type: 'Identifier', name: spec.local },
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
if (spec.kind === 'namespace') {
|
|
93
|
-
return {
|
|
94
|
-
type: 'ImportNamespaceSpecifier',
|
|
95
|
-
local: { type: 'Identifier', name: spec.local },
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
type: 'ImportSpecifier',
|
|
100
|
-
imported: { type: 'Identifier', name: spec.imported ?? spec.local },
|
|
101
|
-
local: { type: 'Identifier', name: spec.local },
|
|
102
|
-
};
|
|
103
|
-
});
|
|
104
|
-
const decl = {
|
|
105
|
-
type: 'ImportDeclaration',
|
|
106
|
-
specifiers,
|
|
107
|
-
source: { type: 'Literal', value: imp.source },
|
|
108
|
-
};
|
|
109
|
-
body.push(decl);
|
|
110
|
-
}
|
|
111
|
-
// 2. Exported function with original params + captured params
|
|
112
|
-
// Original function params come first, then captured variables from outer scope.
|
|
113
|
-
// Strip TypeScript annotations so the generated chunk is valid JavaScript.
|
|
77
|
+
export function buildHandlerExportAST(segment, astNode, capturedParams) {
|
|
114
78
|
const originalParams = stripTypeAnnotations(structuredClone(astNode.params));
|
|
115
79
|
const capturedIdentifiers = capturedParams.map((name) => ({
|
|
116
80
|
type: 'Identifier',
|
|
@@ -139,14 +103,65 @@ export function generateChunkModule(segment, astNode, imports, capturedParams, s
|
|
|
139
103
|
async: astNode.async ?? false,
|
|
140
104
|
generator: astNode.generator ?? false,
|
|
141
105
|
};
|
|
142
|
-
|
|
106
|
+
return {
|
|
143
107
|
type: 'ExportNamedDeclaration',
|
|
144
108
|
declaration: funcDecl,
|
|
145
109
|
specifiers: [],
|
|
146
110
|
source: null,
|
|
147
111
|
attributes: [],
|
|
148
112
|
};
|
|
149
|
-
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Build ImportDeclaration AST nodes from an array of ImportInfo.
|
|
116
|
+
*/
|
|
117
|
+
export function buildImportDeclarations(imports) {
|
|
118
|
+
return imports.map((imp) => {
|
|
119
|
+
const specifiers = imp.specifiers.map((spec) => {
|
|
120
|
+
if (spec.kind === 'default') {
|
|
121
|
+
return {
|
|
122
|
+
type: 'ImportDefaultSpecifier',
|
|
123
|
+
local: { type: 'Identifier', name: spec.local },
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (spec.kind === 'namespace') {
|
|
127
|
+
return {
|
|
128
|
+
type: 'ImportNamespaceSpecifier',
|
|
129
|
+
local: { type: 'Identifier', name: spec.local },
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
type: 'ImportSpecifier',
|
|
134
|
+
imported: { type: 'Identifier', name: spec.imported ?? spec.local },
|
|
135
|
+
local: { type: 'Identifier', name: spec.local },
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
return {
|
|
139
|
+
type: 'ImportDeclaration',
|
|
140
|
+
specifiers,
|
|
141
|
+
source: { type: 'Literal', value: imp.source },
|
|
142
|
+
};
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
// ── Chunk module generation ─────────────────────────────────────────────
|
|
146
|
+
/**
|
|
147
|
+
* Generate a lazy-loaded chunk module that exports the extracted function.
|
|
148
|
+
*
|
|
149
|
+
* Output shape:
|
|
150
|
+
*
|
|
151
|
+
* import { someUtil } from './utils';
|
|
152
|
+
*
|
|
153
|
+
* export function seg_abc123(e) {
|
|
154
|
+
* e.preventDefault();
|
|
155
|
+
* const form = e.target;
|
|
156
|
+
* // ...handler logic
|
|
157
|
+
* }
|
|
158
|
+
*/
|
|
159
|
+
export function generateChunkModule(segment, astNode, imports, capturedParams, sourceFilePath, sourceCode) {
|
|
160
|
+
const body = [];
|
|
161
|
+
// 1. Import declarations
|
|
162
|
+
body.push(...buildImportDeclarations(imports));
|
|
163
|
+
// 2. Exported function
|
|
164
|
+
body.push(buildHandlerExportAST(segment, astNode, capturedParams));
|
|
150
165
|
// 3. Generate code with esrap
|
|
151
166
|
const program = {
|
|
152
167
|
type: 'Program',
|