@steambrew/ttc 3.1.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun.lock +70 -0
- package/dist/index.js +71 -4
- package/package.json +3 -1
- package/src/logger.ts +2 -4
- package/src/transpiler.ts +70 -3
package/bun.lock
CHANGED
|
@@ -25,12 +25,14 @@
|
|
|
25
25
|
"glob": "^11.0.2",
|
|
26
26
|
"magic-string": "^0.30.17",
|
|
27
27
|
"rollup": "^4.42.0",
|
|
28
|
+
"rollup-plugin-esbuild": "^6.0.0",
|
|
28
29
|
"rollup-plugin-inject-process-env": "^1.3.1",
|
|
29
30
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
30
31
|
"rollup-plugin-scss": "^4.0.1",
|
|
31
32
|
"sass": "^1.89.1",
|
|
32
33
|
"terser": "^5.43.1",
|
|
33
34
|
"tslib": "^2.8.1",
|
|
35
|
+
"typescript": ">=5.0.0",
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
38
|
"@types/babel__traverse": "^7.20.7",
|
|
@@ -234,6 +236,58 @@
|
|
|
234
236
|
|
|
235
237
|
"@babel/types": ["@babel/types@7.27.6", "", { "dependencies": { "@babel/helper-string-parser": "7.27.1", "@babel/helper-validator-identifier": "7.27.1" } }, "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q=="],
|
|
236
238
|
|
|
239
|
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="],
|
|
240
|
+
|
|
241
|
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="],
|
|
242
|
+
|
|
243
|
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="],
|
|
244
|
+
|
|
245
|
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="],
|
|
246
|
+
|
|
247
|
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="],
|
|
248
|
+
|
|
249
|
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="],
|
|
250
|
+
|
|
251
|
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="],
|
|
252
|
+
|
|
253
|
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="],
|
|
254
|
+
|
|
255
|
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="],
|
|
256
|
+
|
|
257
|
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="],
|
|
258
|
+
|
|
259
|
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="],
|
|
260
|
+
|
|
261
|
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="],
|
|
262
|
+
|
|
263
|
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="],
|
|
264
|
+
|
|
265
|
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="],
|
|
266
|
+
|
|
267
|
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="],
|
|
268
|
+
|
|
269
|
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="],
|
|
270
|
+
|
|
271
|
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="],
|
|
272
|
+
|
|
273
|
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="],
|
|
274
|
+
|
|
275
|
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="],
|
|
276
|
+
|
|
277
|
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="],
|
|
278
|
+
|
|
279
|
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="],
|
|
280
|
+
|
|
281
|
+
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="],
|
|
282
|
+
|
|
283
|
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="],
|
|
284
|
+
|
|
285
|
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="],
|
|
286
|
+
|
|
287
|
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="],
|
|
288
|
+
|
|
289
|
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="],
|
|
290
|
+
|
|
237
291
|
"@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "5.1.2", "string-width-cjs": "npm:string-width@4.2.3", "strip-ansi": "7.1.0", "strip-ansi-cjs": "npm:strip-ansi@6.0.1", "wrap-ansi": "8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="],
|
|
238
292
|
|
|
239
293
|
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "1.2.1", "@jridgewell/sourcemap-codec": "1.5.0", "@jridgewell/trace-mapping": "0.3.25" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="],
|
|
@@ -404,6 +458,10 @@
|
|
|
404
458
|
|
|
405
459
|
"emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
|
|
406
460
|
|
|
461
|
+
"es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="],
|
|
462
|
+
|
|
463
|
+
"esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="],
|
|
464
|
+
|
|
407
465
|
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
|
|
408
466
|
|
|
409
467
|
"estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
|
|
@@ -424,6 +482,8 @@
|
|
|
424
482
|
|
|
425
483
|
"gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="],
|
|
426
484
|
|
|
485
|
+
"get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="],
|
|
486
|
+
|
|
427
487
|
"glob": ["glob@11.0.2", "", { "dependencies": { "foreground-child": "3.3.1", "jackspeak": "4.1.1", "minimatch": "10.0.1", "minipass": "7.1.2", "package-json-from-dist": "1.0.1", "path-scurry": "2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ=="],
|
|
428
488
|
|
|
429
489
|
"globals": ["globals@11.12.0", "", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="],
|
|
@@ -486,6 +546,8 @@
|
|
|
486
546
|
|
|
487
547
|
"path-scurry": ["path-scurry@2.0.0", "", { "dependencies": { "lru-cache": "11.1.0", "minipass": "7.1.2" } }, "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg=="],
|
|
488
548
|
|
|
549
|
+
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
|
|
550
|
+
|
|
489
551
|
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
|
490
552
|
|
|
491
553
|
"picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="],
|
|
@@ -506,8 +568,12 @@
|
|
|
506
568
|
|
|
507
569
|
"resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "2.16.1", "path-parse": "1.0.7", "supports-preserve-symlinks-flag": "1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
|
|
508
570
|
|
|
571
|
+
"resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
|
|
572
|
+
|
|
509
573
|
"rollup": ["rollup@4.42.0", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.42.0", "@rollup/rollup-android-arm64": "4.42.0", "@rollup/rollup-darwin-arm64": "4.42.0", "@rollup/rollup-darwin-x64": "4.42.0", "@rollup/rollup-freebsd-arm64": "4.42.0", "@rollup/rollup-freebsd-x64": "4.42.0", "@rollup/rollup-linux-arm-gnueabihf": "4.42.0", "@rollup/rollup-linux-arm-musleabihf": "4.42.0", "@rollup/rollup-linux-arm64-gnu": "4.42.0", "@rollup/rollup-linux-arm64-musl": "4.42.0", "@rollup/rollup-linux-loongarch64-gnu": "4.42.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.42.0", "@rollup/rollup-linux-riscv64-gnu": "4.42.0", "@rollup/rollup-linux-riscv64-musl": "4.42.0", "@rollup/rollup-linux-s390x-gnu": "4.42.0", "@rollup/rollup-linux-x64-gnu": "4.42.0", "@rollup/rollup-linux-x64-musl": "4.42.0", "@rollup/rollup-win32-arm64-msvc": "4.42.0", "@rollup/rollup-win32-ia32-msvc": "4.42.0", "@rollup/rollup-win32-x64-msvc": "4.42.0", "fsevents": "2.3.3" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw=="],
|
|
510
574
|
|
|
575
|
+
"rollup-plugin-esbuild": ["rollup-plugin-esbuild@6.2.1", "", { "dependencies": { "debug": "^4.4.0", "es-module-lexer": "^1.6.0", "get-tsconfig": "^4.10.0", "unplugin-utils": "^0.2.4" }, "peerDependencies": { "esbuild": ">=0.18.0", "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" } }, "sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA=="],
|
|
576
|
+
|
|
511
577
|
"rollup-plugin-inject-process-env": ["rollup-plugin-inject-process-env@1.3.1", "", { "dependencies": { "magic-string": "0.25.9" } }, "sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ=="],
|
|
512
578
|
|
|
513
579
|
"rollup-plugin-polyfill-node": ["rollup-plugin-polyfill-node@0.13.0", "", { "dependencies": { "@rollup/plugin-inject": "5.0.5" }, "peerDependencies": { "rollup": "4.42.0" } }, "sha512-FYEvpCaD5jGtyBuBFcQImEGmTxDTPbiHjJdrYIp+mFIwgXiXabxvKUK7ZT9P31ozu2Tqm9llYQMRWsfvTMTAOw=="],
|
|
@@ -568,6 +634,8 @@
|
|
|
568
634
|
|
|
569
635
|
"unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.1.0", "", {}, "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w=="],
|
|
570
636
|
|
|
637
|
+
"unplugin-utils": ["unplugin-utils@0.2.5", "", { "dependencies": { "pathe": "^2.0.3", "picomatch": "^4.0.3" } }, "sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg=="],
|
|
638
|
+
|
|
571
639
|
"update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "3.2.0", "picocolors": "1.1.1" }, "peerDependencies": { "browserslist": "4.25.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
|
|
572
640
|
|
|
573
641
|
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
|
@@ -596,6 +664,8 @@
|
|
|
596
664
|
|
|
597
665
|
"strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
|
|
598
666
|
|
|
667
|
+
"unplugin-utils/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
|
668
|
+
|
|
599
669
|
"wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
|
600
670
|
|
|
601
671
|
"wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "8.0.0", "is-fullwidth-code-point": "3.0.0", "strip-ansi": "6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,8 @@ import resolve, { nodeResolve } from '@rollup/plugin-node-resolve';
|
|
|
11
11
|
import replace from '@rollup/plugin-replace';
|
|
12
12
|
import terser from '@rollup/plugin-terser';
|
|
13
13
|
import typescript from '@rollup/plugin-typescript';
|
|
14
|
+
import esbuild from 'rollup-plugin-esbuild';
|
|
15
|
+
import ts from 'typescript';
|
|
14
16
|
import url from '@rollup/plugin-url';
|
|
15
17
|
import nodePolyfills from 'rollup-plugin-polyfill-node';
|
|
16
18
|
import { watch, rollup } from 'rollup';
|
|
@@ -54,7 +56,7 @@ const Logger = {
|
|
|
54
56
|
if (buildType === 'dev')
|
|
55
57
|
meta.push('no type checking');
|
|
56
58
|
if (sysfsCount)
|
|
57
|
-
meta.push(`${sysfsCount}
|
|
59
|
+
meta.push(`${sysfsCount} bundled file${sysfsCount > 1 ? 's' : ''}`);
|
|
58
60
|
if (envCount)
|
|
59
61
|
meta.push(`${envCount} env var${envCount > 1 ? 's' : ''}`);
|
|
60
62
|
console.log(`${chalk.green('Finished')} ${buildType} in ${elapsed} ` + chalk.dim('(' + meta.join(', ') + ')'));
|
|
@@ -604,6 +606,65 @@ function stripPluginPrefix(message) {
|
|
|
604
606
|
}
|
|
605
607
|
class BuildFailedError extends Error {
|
|
606
608
|
}
|
|
609
|
+
function tsconfigPathsPlugin(tsconfigPath) {
|
|
610
|
+
const absPath = path.resolve(tsconfigPath);
|
|
611
|
+
const configDir = path.dirname(absPath);
|
|
612
|
+
const { config, error } = ts.readConfigFile(absPath, ts.sys.readFile);
|
|
613
|
+
if (error)
|
|
614
|
+
return { name: 'tsconfig-paths' };
|
|
615
|
+
const { options } = ts.parseJsonConfigFileContent(config, ts.sys, configDir);
|
|
616
|
+
const baseUrl = options.baseUrl ?? null;
|
|
617
|
+
const pathsBase = options.pathsBasePath ?? configDir;
|
|
618
|
+
const paths = options.paths ?? {};
|
|
619
|
+
function resolveWithExtensions(base) {
|
|
620
|
+
for (const ext of ['', '.ts', '.tsx', '.js', '.jsx', '/index.ts', '/index.tsx']) {
|
|
621
|
+
if (fs.existsSync(base + ext))
|
|
622
|
+
return base + ext;
|
|
623
|
+
}
|
|
624
|
+
return null;
|
|
625
|
+
}
|
|
626
|
+
return {
|
|
627
|
+
name: 'tsconfig-paths',
|
|
628
|
+
async resolveId(source, importer) {
|
|
629
|
+
for (const [pattern, targets] of Object.entries(paths)) {
|
|
630
|
+
if (!targets.length)
|
|
631
|
+
continue;
|
|
632
|
+
const isWild = pattern.endsWith('/*');
|
|
633
|
+
if (isWild) {
|
|
634
|
+
const prefix = pattern.slice(0, -2);
|
|
635
|
+
if (source === prefix || source.startsWith(prefix + '/')) {
|
|
636
|
+
const rest = source.startsWith(prefix + '/') ? source.slice(prefix.length + 1) : '';
|
|
637
|
+
const targetBase = path.resolve(pathsBase, targets[0].replace('*', rest));
|
|
638
|
+
const resolved = resolveWithExtensions(targetBase);
|
|
639
|
+
if (resolved) {
|
|
640
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
641
|
+
if (result)
|
|
642
|
+
return result;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
else if (source === pattern) {
|
|
647
|
+
const targetBase = path.resolve(pathsBase, targets[0]);
|
|
648
|
+
const resolved = resolveWithExtensions(targetBase);
|
|
649
|
+
if (resolved) {
|
|
650
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
651
|
+
if (result)
|
|
652
|
+
return result;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
if (baseUrl && !source.startsWith('.') && !source.startsWith('/') && !source.startsWith('\0') && !source.startsWith('@')) {
|
|
657
|
+
const resolved = resolveWithExtensions(path.resolve(baseUrl, source));
|
|
658
|
+
if (resolved) {
|
|
659
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
660
|
+
if (result)
|
|
661
|
+
return result;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
return null;
|
|
665
|
+
},
|
|
666
|
+
};
|
|
667
|
+
}
|
|
607
668
|
class MillenniumBuild {
|
|
608
669
|
isExternal(id) {
|
|
609
670
|
const hint = this.forbidden.get(id);
|
|
@@ -666,8 +727,12 @@ class FrontendBuild extends MillenniumBuild {
|
|
|
666
727
|
this.forbidden = new Map([['@steambrew/webkit', 'use @steambrew/client in the frontend module']]);
|
|
667
728
|
}
|
|
668
729
|
plugins(sysfsPlugin) {
|
|
669
|
-
const
|
|
730
|
+
const tsconfigPath = resolveTsConfig(this.frontendDir);
|
|
731
|
+
const tsPlugin = this.props.minify
|
|
732
|
+
? typescript({ tsconfig: tsconfigPath, compilerOptions: { outDir: undefined } })
|
|
733
|
+
: esbuild({ tsconfig: tsconfigPath, target: 'esnext', jsx: 'automatic' });
|
|
670
734
|
return [
|
|
735
|
+
...(this.props.minify ? [] : [tsconfigPathsPlugin(tsconfigPath)]),
|
|
671
736
|
tsPlugin,
|
|
672
737
|
url({ include: ['**/*.gif', '**/*.webm', '**/*.svg'], limit: 0, fileName: '[hash][extname]' }),
|
|
673
738
|
insertMillennium(BuildTarget.Plugin, this.props),
|
|
@@ -715,8 +780,10 @@ class WebkitBuild extends MillenniumBuild {
|
|
|
715
780
|
this.forbidden = new Map([['@steambrew/client', 'use @steambrew/webkit in the webkit module']]);
|
|
716
781
|
}
|
|
717
782
|
async plugins(sysfsPlugin) {
|
|
718
|
-
const
|
|
783
|
+
const webkitTsconfig = './webkit/tsconfig.json';
|
|
784
|
+
const tsPlugin = this.props.minify ? typescript({ tsconfig: webkitTsconfig }) : esbuild({ tsconfig: webkitTsconfig, target: 'esnext', jsx: 'automatic' });
|
|
719
785
|
const base = [
|
|
786
|
+
...(this.props.minify ? [] : [tsconfigPathsPlugin(webkitTsconfig)]),
|
|
720
787
|
insertMillennium(BuildTarget.Webkit, this.props),
|
|
721
788
|
tsPlugin,
|
|
722
789
|
url({ include: ['**/*.mp4', '**/*.webm', '**/*.ogg'], limit: 0, fileName: '[name][extname]', destDir: 'dist/assets' }),
|
|
@@ -732,7 +799,7 @@ class WebkitBuild extends MillenniumBuild {
|
|
|
732
799
|
'webkit.Millennium.exposeObj(': 'webkit.Millennium.exposeObj(exports, ',
|
|
733
800
|
'client.BindPluginSettings()': 'client.BindPluginSettings(pluginName)',
|
|
734
801
|
}),
|
|
735
|
-
babel({ presets: ['@babel/preset-env', '@babel/preset-react'], babelHelpers: 'bundled' }),
|
|
802
|
+
...(this.props.minify ? [babel({ presets: ['@babel/preset-env', '@babel/preset-react'], babelHelpers: 'bundled' })] : []),
|
|
736
803
|
...(Object.keys(env).length > 0 ? [injectProcessEnv(env)] : []),
|
|
737
804
|
];
|
|
738
805
|
const merged = await withUserPlugins(base);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steambrew/ttc",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@rollup/plugin-replace": "^6.0.2",
|
|
33
33
|
"@rollup/plugin-terser": "^0.4.4",
|
|
34
34
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
35
|
+
"typescript": ">=5.0.0",
|
|
35
36
|
"@rollup/plugin-url": "^8.0.2",
|
|
36
37
|
"@rollup/pluginutils": "^5.1.4",
|
|
37
38
|
"chalk": "^5.4.1",
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
"glob": "^11.0.2",
|
|
41
42
|
"magic-string": "^0.30.17",
|
|
42
43
|
"rollup": "^4.42.0",
|
|
44
|
+
"rollup-plugin-esbuild": "^6.0.0",
|
|
43
45
|
"rollup-plugin-inject-process-env": "^1.3.1",
|
|
44
46
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
45
47
|
"rollup-plugin-scss": "^4.0.1",
|
package/src/logger.ts
CHANGED
|
@@ -3,9 +3,7 @@ import { readFileSync } from 'fs';
|
|
|
3
3
|
import path, { dirname } from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
5
|
|
|
6
|
-
const version: string = JSON.parse(
|
|
7
|
-
readFileSync(path.resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf8'),
|
|
8
|
-
).version;
|
|
6
|
+
const version: string = JSON.parse(readFileSync(path.resolve(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf8')).version;
|
|
9
7
|
|
|
10
8
|
interface DoneOptions {
|
|
11
9
|
elapsedMs: number;
|
|
@@ -40,7 +38,7 @@ const Logger = {
|
|
|
40
38
|
const elapsed = `${(elapsedMs / 1000).toFixed(2)}s`;
|
|
41
39
|
const meta: string[] = [`ttc v${version}`];
|
|
42
40
|
if (buildType === 'dev') meta.push('no type checking');
|
|
43
|
-
if (sysfsCount) meta.push(`${sysfsCount}
|
|
41
|
+
if (sysfsCount) meta.push(`${sysfsCount} bundled file${sysfsCount > 1 ? 's' : ''}`);
|
|
44
42
|
if (envCount) meta.push(`${envCount} env var${envCount > 1 ? 's' : ''}`);
|
|
45
43
|
console.log(`${chalk.green('Finished')} ${buildType} in ${elapsed} ` + chalk.dim('(' + meta.join(', ') + ')'));
|
|
46
44
|
},
|
package/src/transpiler.ts
CHANGED
|
@@ -5,6 +5,8 @@ import resolve, { nodeResolve } from '@rollup/plugin-node-resolve';
|
|
|
5
5
|
import replace from '@rollup/plugin-replace';
|
|
6
6
|
import terser from '@rollup/plugin-terser';
|
|
7
7
|
import typescript from '@rollup/plugin-typescript';
|
|
8
|
+
import esbuild from 'rollup-plugin-esbuild';
|
|
9
|
+
import ts from 'typescript';
|
|
8
10
|
import url from '@rollup/plugin-url';
|
|
9
11
|
import nodePolyfills from 'rollup-plugin-polyfill-node';
|
|
10
12
|
import chalk from 'chalk';
|
|
@@ -136,6 +138,65 @@ function stripPluginPrefix(message: string): string {
|
|
|
136
138
|
|
|
137
139
|
class BuildFailedError extends Error {}
|
|
138
140
|
|
|
141
|
+
function tsconfigPathsPlugin(tsconfigPath: string): InputPluginOption {
|
|
142
|
+
const absPath = path.resolve(tsconfigPath);
|
|
143
|
+
const configDir = path.dirname(absPath);
|
|
144
|
+
|
|
145
|
+
const { config, error } = ts.readConfigFile(absPath, ts.sys.readFile);
|
|
146
|
+
if (error) return { name: 'tsconfig-paths' };
|
|
147
|
+
|
|
148
|
+
const { options } = ts.parseJsonConfigFileContent(config, ts.sys, configDir);
|
|
149
|
+
const baseUrl = options.baseUrl ?? null;
|
|
150
|
+
const pathsBase = (options.pathsBasePath as string | undefined) ?? configDir;
|
|
151
|
+
const paths = options.paths ?? {};
|
|
152
|
+
|
|
153
|
+
function resolveWithExtensions(base: string): string | null {
|
|
154
|
+
for (const ext of ['', '.ts', '.tsx', '.js', '.jsx', '/index.ts', '/index.tsx']) {
|
|
155
|
+
if (fs.existsSync(base + ext)) return base + ext;
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
name: 'tsconfig-paths',
|
|
162
|
+
async resolveId(source: string, importer: string | undefined) {
|
|
163
|
+
for (const [pattern, targets] of Object.entries(paths)) {
|
|
164
|
+
if (!targets.length) continue;
|
|
165
|
+
const isWild = pattern.endsWith('/*');
|
|
166
|
+
if (isWild) {
|
|
167
|
+
const prefix = pattern.slice(0, -2);
|
|
168
|
+
if (source === prefix || source.startsWith(prefix + '/')) {
|
|
169
|
+
const rest = source.startsWith(prefix + '/') ? source.slice(prefix.length + 1) : '';
|
|
170
|
+
const targetBase = path.resolve(pathsBase, targets[0].replace('*', rest));
|
|
171
|
+
const resolved = resolveWithExtensions(targetBase);
|
|
172
|
+
if (resolved) {
|
|
173
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
174
|
+
if (result) return result;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
} else if (source === pattern) {
|
|
178
|
+
const targetBase = path.resolve(pathsBase, targets[0]);
|
|
179
|
+
const resolved = resolveWithExtensions(targetBase);
|
|
180
|
+
if (resolved) {
|
|
181
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
182
|
+
if (result) return result;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (baseUrl && !source.startsWith('.') && !source.startsWith('/') && !source.startsWith('\0') && !source.startsWith('@')) {
|
|
188
|
+
const resolved = resolveWithExtensions(path.resolve(baseUrl, source));
|
|
189
|
+
if (resolved) {
|
|
190
|
+
const result = await this.resolve(resolved, importer, { skipSelf: true });
|
|
191
|
+
if (result) return result;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return null;
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
139
200
|
abstract class MillenniumBuild {
|
|
140
201
|
protected abstract readonly externals: ReadonlySet<string>;
|
|
141
202
|
protected abstract readonly forbidden: ReadonlyMap<string, string>;
|
|
@@ -209,9 +270,13 @@ class FrontendBuild extends MillenniumBuild {
|
|
|
209
270
|
}
|
|
210
271
|
|
|
211
272
|
protected plugins(sysfsPlugin: InputPluginOption): InputPluginOption[] {
|
|
212
|
-
const
|
|
273
|
+
const tsconfigPath = resolveTsConfig(this.frontendDir);
|
|
274
|
+
const tsPlugin = this.props.minify
|
|
275
|
+
? typescript({ tsconfig: tsconfigPath, compilerOptions: { outDir: undefined } })
|
|
276
|
+
: esbuild({ tsconfig: tsconfigPath, target: 'esnext', jsx: 'automatic' });
|
|
213
277
|
|
|
214
278
|
return [
|
|
279
|
+
...(this.props.minify ? [] : [tsconfigPathsPlugin(tsconfigPath)]),
|
|
215
280
|
tsPlugin,
|
|
216
281
|
url({ include: ['**/*.gif', '**/*.webm', '**/*.svg'], limit: 0, fileName: '[hash][extname]' }),
|
|
217
282
|
insertMillennium(BuildTarget.Plugin, this.props),
|
|
@@ -262,9 +327,11 @@ class WebkitBuild extends MillenniumBuild {
|
|
|
262
327
|
}
|
|
263
328
|
|
|
264
329
|
protected async plugins(sysfsPlugin: InputPluginOption): Promise<InputPluginOption[]> {
|
|
265
|
-
const
|
|
330
|
+
const webkitTsconfig = './webkit/tsconfig.json';
|
|
331
|
+
const tsPlugin = this.props.minify ? typescript({ tsconfig: webkitTsconfig }) : esbuild({ tsconfig: webkitTsconfig, target: 'esnext', jsx: 'automatic' });
|
|
266
332
|
|
|
267
333
|
const base: InputPluginOption[] = [
|
|
334
|
+
...(this.props.minify ? [] : [tsconfigPathsPlugin(webkitTsconfig)]),
|
|
268
335
|
insertMillennium(BuildTarget.Webkit, this.props),
|
|
269
336
|
tsPlugin,
|
|
270
337
|
url({ include: ['**/*.mp4', '**/*.webm', '**/*.ogg'], limit: 0, fileName: '[name][extname]', destDir: 'dist/assets' }),
|
|
@@ -280,7 +347,7 @@ class WebkitBuild extends MillenniumBuild {
|
|
|
280
347
|
'webkit.Millennium.exposeObj(': 'webkit.Millennium.exposeObj(exports, ',
|
|
281
348
|
'client.BindPluginSettings()': 'client.BindPluginSettings(pluginName)',
|
|
282
349
|
}),
|
|
283
|
-
babel({ presets: ['@babel/preset-env', '@babel/preset-react'], babelHelpers: 'bundled' }),
|
|
350
|
+
...(this.props.minify ? [babel({ presets: ['@babel/preset-env', '@babel/preset-react'], babelHelpers: 'bundled' })] : []),
|
|
284
351
|
...(Object.keys(env).length > 0 ? [injectProcessEnv(env)] : []),
|
|
285
352
|
];
|
|
286
353
|
|