@ttsc/unplugin 0.8.0 → 0.9.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.
Files changed (66) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -16
  3. package/lib/api.js +13 -18
  4. package/lib/api.js.map +1 -1
  5. package/lib/api.mjs +4 -0
  6. package/lib/api.mjs.map +1 -0
  7. package/lib/bun.js +13 -12
  8. package/lib/bun.js.map +1 -1
  9. package/lib/bun.mjs +31 -0
  10. package/lib/bun.mjs.map +1 -0
  11. package/lib/core/index.d.ts +2 -2
  12. package/lib/core/index.js +28 -18
  13. package/lib/core/index.js.map +1 -1
  14. package/lib/core/index.mjs +46 -0
  15. package/lib/core/index.mjs.map +1 -0
  16. package/lib/core/options.d.ts +3 -3
  17. package/lib/core/options.js +5 -5
  18. package/lib/core/options.js.map +1 -1
  19. package/lib/core/options.mjs +14 -0
  20. package/lib/core/options.mjs.map +1 -0
  21. package/lib/core/transform.d.ts +10 -2
  22. package/lib/core/transform.js +264 -119
  23. package/lib/core/transform.js.map +1 -1
  24. package/lib/core/transform.mjs +446 -0
  25. package/lib/core/transform.mjs.map +1 -0
  26. package/lib/esbuild.js +9 -8
  27. package/lib/esbuild.js.map +1 -1
  28. package/lib/esbuild.mjs +6 -0
  29. package/lib/esbuild.mjs.map +1 -0
  30. package/lib/farm.js +9 -8
  31. package/lib/farm.js.map +1 -1
  32. package/lib/farm.mjs +6 -0
  33. package/lib/farm.mjs.map +1 -0
  34. package/lib/index.js +10 -8
  35. package/lib/index.js.map +1 -1
  36. package/lib/index.mjs +6 -0
  37. package/lib/index.mjs.map +1 -0
  38. package/lib/next.js +10 -9
  39. package/lib/next.js.map +1 -1
  40. package/lib/next.mjs +18 -0
  41. package/lib/next.mjs.map +1 -0
  42. package/lib/rolldown.js +9 -8
  43. package/lib/rolldown.js.map +1 -1
  44. package/lib/rolldown.mjs +6 -0
  45. package/lib/rolldown.mjs.map +1 -0
  46. package/lib/rollup.js +9 -8
  47. package/lib/rollup.js.map +1 -1
  48. package/lib/rollup.mjs +6 -0
  49. package/lib/rollup.mjs.map +1 -0
  50. package/lib/rspack.js +9 -8
  51. package/lib/rspack.js.map +1 -1
  52. package/lib/rspack.mjs +6 -0
  53. package/lib/rspack.mjs.map +1 -0
  54. package/lib/vite.js +9 -8
  55. package/lib/vite.js.map +1 -1
  56. package/lib/vite.mjs +6 -0
  57. package/lib/vite.mjs.map +1 -0
  58. package/lib/webpack.js +9 -8
  59. package/lib/webpack.js.map +1 -1
  60. package/lib/webpack.mjs +6 -0
  61. package/lib/webpack.mjs.map +1 -0
  62. package/package.json +30 -18
  63. package/src/bun.ts +1 -1
  64. package/src/core/index.ts +16 -4
  65. package/src/core/options.ts +3 -3
  66. package/src/core/transform.ts +306 -61
@@ -1 +1 @@
1
- {"version":3,"file":"rolldown.js","sourceRoot":"","sources":["../src/rolldown.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoC;AAEpC,MAAM,QAAQ,GAA6B,eAAQ,CAAC,QAAQ,CAAC;kBAE9C,QAAQ"}
1
+ {"version":3,"file":"rolldown.js","sources":["../src/rolldown.ts"],"sourcesContent":[null],"names":["unplugin"],"mappings":";;;;;;AAEA,MAAM,QAAQ,GAA6BA,aAAQ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ import unplugin from './core/index.mjs';
2
+
3
+ const rolldown = unplugin.rolldown;
4
+
5
+ export { rolldown as default };
6
+ //# sourceMappingURL=rolldown.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolldown.mjs","sources":["../src/rolldown.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,QAAQ,GAA6B,QAAQ,CAAC;;;;"}
package/lib/rollup.js CHANGED
@@ -1,9 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const index_1 = __importDefault(require("./core/index"));
7
- const rollup = index_1.default.rollup;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('./core/index.js');
6
+
7
+ const rollup = index.default.rollup;
8
+
8
9
  exports.default = rollup;
9
- //# sourceMappingURL=rollup.js.map
10
+ //# sourceMappingURL=rollup.js.map
package/lib/rollup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.js","sourceRoot":"","sources":["../src/rollup.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoC;AAEpC,MAAM,MAAM,GAA2B,eAAQ,CAAC,MAAM,CAAC;kBAExC,MAAM"}
1
+ {"version":3,"file":"rollup.js","sources":["../src/rollup.ts"],"sourcesContent":[null],"names":["unplugin"],"mappings":";;;;;;AAEA,MAAM,MAAM,GAA2BA,aAAQ,CAAC;;;;"}
package/lib/rollup.mjs ADDED
@@ -0,0 +1,6 @@
1
+ import unplugin from './core/index.mjs';
2
+
3
+ const rollup = unplugin.rollup;
4
+
5
+ export { rollup as default };
6
+ //# sourceMappingURL=rollup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollup.mjs","sources":["../src/rollup.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAA2B,QAAQ,CAAC;;;;"}
package/lib/rspack.js CHANGED
@@ -1,9 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const index_1 = __importDefault(require("./core/index"));
7
- const rspack = index_1.default.rspack;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('./core/index.js');
6
+
7
+ const rspack = index.default.rspack;
8
+
8
9
  exports.default = rspack;
9
- //# sourceMappingURL=rspack.js.map
10
+ //# sourceMappingURL=rspack.js.map
package/lib/rspack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rspack.js","sourceRoot":"","sources":["../src/rspack.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoC;AAEpC,MAAM,MAAM,GAA2B,eAAQ,CAAC,MAAM,CAAC;kBAExC,MAAM"}
1
+ {"version":3,"file":"rspack.js","sources":["../src/rspack.ts"],"sourcesContent":[null],"names":["unplugin"],"mappings":";;;;;;AAEA,MAAM,MAAM,GAA2BA,aAAQ,CAAC;;;;"}
package/lib/rspack.mjs ADDED
@@ -0,0 +1,6 @@
1
+ import unplugin from './core/index.mjs';
2
+
3
+ const rspack = unplugin.rspack;
4
+
5
+ export { rspack as default };
6
+ //# sourceMappingURL=rspack.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rspack.mjs","sources":["../src/rspack.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAA2B,QAAQ,CAAC;;;;"}
package/lib/vite.js CHANGED
@@ -1,9 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const index_1 = __importDefault(require("./core/index"));
7
- const vite = index_1.default.vite;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('./core/index.js');
6
+
7
+ const vite = index.default.vite;
8
+
8
9
  exports.default = vite;
9
- //# sourceMappingURL=vite.js.map
10
+ //# sourceMappingURL=vite.js.map
package/lib/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoC;AAEpC,MAAM,IAAI,GAAyB,eAAQ,CAAC,IAAI,CAAC;kBAElC,IAAI"}
1
+ {"version":3,"file":"vite.js","sources":["../src/vite.ts"],"sourcesContent":[null],"names":["unplugin"],"mappings":";;;;;;AAEA,MAAM,IAAI,GAAyBA,aAAQ,CAAC;;;;"}
package/lib/vite.mjs ADDED
@@ -0,0 +1,6 @@
1
+ import unplugin from './core/index.mjs';
2
+
3
+ const vite = unplugin.vite;
4
+
5
+ export { vite as default };
6
+ //# sourceMappingURL=vite.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.mjs","sources":["../src/vite.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,IAAI,GAAyB,QAAQ,CAAC;;;;"}
package/lib/webpack.js CHANGED
@@ -1,9 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const index_1 = __importDefault(require("./core/index"));
7
- const webpack = index_1.default.webpack;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('./core/index.js');
6
+
7
+ const webpack = index.default.webpack;
8
+
8
9
  exports.default = webpack;
9
- //# sourceMappingURL=webpack.js.map
10
+ //# sourceMappingURL=webpack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoC;AAEpC,MAAM,OAAO,GAA4B,eAAQ,CAAC,OAAO,CAAC;kBAE3C,OAAO"}
1
+ {"version":3,"file":"webpack.js","sources":["../src/webpack.ts"],"sourcesContent":[null],"names":["unplugin"],"mappings":";;;;;;AAEA,MAAM,OAAO,GAA4BA,aAAQ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ import unplugin from './core/index.mjs';
2
+
3
+ const webpack = unplugin.webpack;
4
+
5
+ export { webpack as default };
6
+ //# sourceMappingURL=webpack.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.mjs","sources":["../src/webpack.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAA4B,QAAQ,CAAC;;;;"}
package/package.json CHANGED
@@ -1,52 +1,64 @@
1
1
  {
2
2
  "name": "@ttsc/unplugin",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Bundler adapters for ttsc plugins.",
5
5
  "main": "lib/index.js",
6
+ "module": "lib/index.mjs",
6
7
  "types": "lib/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
10
  "types": "./lib/index.d.ts",
11
+ "import": "./lib/index.mjs",
10
12
  "default": "./lib/index.js"
11
13
  },
12
14
  "./api": {
13
15
  "types": "./lib/api.d.ts",
16
+ "import": "./lib/api.mjs",
14
17
  "default": "./lib/api.js"
15
18
  },
16
19
  "./bun": {
17
20
  "types": "./lib/bun.d.ts",
21
+ "import": "./lib/bun.mjs",
18
22
  "default": "./lib/bun.js"
19
23
  },
20
24
  "./esbuild": {
21
25
  "types": "./lib/esbuild.d.ts",
26
+ "import": "./lib/esbuild.mjs",
22
27
  "default": "./lib/esbuild.js"
23
28
  },
24
29
  "./farm": {
25
30
  "types": "./lib/farm.d.ts",
31
+ "import": "./lib/farm.mjs",
26
32
  "default": "./lib/farm.js"
27
33
  },
28
34
  "./next": {
29
35
  "types": "./lib/next.d.ts",
36
+ "import": "./lib/next.mjs",
30
37
  "default": "./lib/next.js"
31
38
  },
32
39
  "./rolldown": {
33
40
  "types": "./lib/rolldown.d.ts",
41
+ "import": "./lib/rolldown.mjs",
34
42
  "default": "./lib/rolldown.js"
35
43
  },
36
44
  "./rollup": {
37
45
  "types": "./lib/rollup.d.ts",
46
+ "import": "./lib/rollup.mjs",
38
47
  "default": "./lib/rollup.js"
39
48
  },
40
49
  "./rspack": {
41
50
  "types": "./lib/rspack.d.ts",
51
+ "import": "./lib/rspack.mjs",
42
52
  "default": "./lib/rspack.js"
43
53
  },
44
54
  "./vite": {
45
55
  "types": "./lib/vite.d.ts",
56
+ "import": "./lib/vite.mjs",
46
57
  "default": "./lib/vite.js"
47
58
  },
48
59
  "./webpack": {
49
60
  "types": "./lib/webpack.d.ts",
61
+ "import": "./lib/webpack.mjs",
50
62
  "default": "./lib/webpack.js"
51
63
  },
52
64
  "./package.json": "./package.json"
@@ -54,10 +66,6 @@
54
66
  "publishConfig": {
55
67
  "access": "public"
56
68
  },
57
- "scripts": {
58
- "build": "rimraf lib && tsgo",
59
- "test": "pnpm run build && node --test --test-reporter=spec ../../tests/unplugin/**/*.test.cjs"
60
- },
61
69
  "keywords": [
62
70
  "ttsc",
63
71
  "unplugin",
@@ -74,22 +82,24 @@
74
82
  "src"
75
83
  ],
76
84
  "dependencies": {
77
- "diff-match-patch-es": "^1.0.1",
78
- "magic-string": "^0.30.21",
79
85
  "unplugin": "^2.3.11"
80
86
  },
81
- "peerDependencies": {
82
- "@typescript/native-preview": ">=7.0.0-dev.0",
83
- "ttsc": "^0.8.0"
84
- },
85
87
  "devDependencies": {
86
- "@types/node": "catalog:utils",
87
- "@typescript/native-preview": "catalog:tsgo",
88
+ "@rollup/plugin-commonjs": "^29.0.2",
89
+ "@rollup/plugin-node-resolve": "^16.0.3",
90
+ "@rollup/plugin-typescript": "^12.3.0",
91
+ "@types/node": "^25.3.0",
92
+ "@typescript/native-preview": "7.0.0-dev.20260508.1",
88
93
  "esbuild": "^0.25.12",
89
- "rimraf": "catalog:utils",
94
+ "rimraf": "^6.1.2",
90
95
  "rollup": "^4.60.3",
91
- "ttsc": "workspace:*",
92
- "vite": "^7.1.12"
96
+ "rollup-plugin-auto-external": "^2.0.0",
97
+ "rollup-plugin-node-externals": "^9.0.1",
98
+ "tinyglobby": "^0.2.16",
99
+ "tslib": "^2.8.1",
100
+ "typescript": "^6.0.3",
101
+ "vite": "^7.1.12",
102
+ "ttsc": "0.9.0"
93
103
  },
94
104
  "repository": {
95
105
  "type": "git",
@@ -102,5 +112,7 @@
102
112
  },
103
113
  "homepage": "https://github.com/samchon/ttsc/tree/master/packages/unplugin#readme",
104
114
  "sideEffects": false,
105
- "packageManager": "pnpm@10.6.4"
106
- }
115
+ "scripts": {
116
+ "build": "rimraf lib && tsgo --emitDeclarationOnly && rollup -c"
117
+ }
118
+ }
package/src/bun.ts CHANGED
@@ -16,7 +16,7 @@ export interface BunLikeBuild {
16
16
  ): void;
17
17
  }
18
18
 
19
- const sourceFilePattern = /\.[cm]?[jt]sx?$/;
19
+ const sourceFilePattern = /\.[cm]?tsx?$/;
20
20
 
21
21
  export default function bun(options?: TtscUnpluginOptions): BunLikePlugin {
22
22
  return {
package/src/core/index.ts CHANGED
@@ -3,17 +3,24 @@ import { createUnplugin } from "unplugin";
3
3
 
4
4
  import type { TtscUnpluginOptions } from "./options";
5
5
  import { resolveOptions } from "./options";
6
- import { isDeclarationFile, stripQuery, transformTtsc } from "./transform";
6
+ import {
7
+ createTtscTransformCache,
8
+ isDeclarationFile,
9
+ stripQuery,
10
+ transformTtsc,
11
+ } from "./transform";
7
12
 
8
13
  const name = "ttsc-unplugin";
9
- const sourceFilePattern = /\.[cm]?[jt]sx?$/;
14
+ const sourceFilePattern = /\.[cm]?tsx?$/;
10
15
  const nodeModulesPattern = /(?:^|[/\\])node_modules(?:[/\\]|$)/;
16
+ const virtualModulePattern = /\0/;
11
17
 
12
18
  const unpluginFactory: UnpluginFactory<
13
19
  TtscUnpluginOptions | undefined,
14
20
  false
15
21
  > = (rawOptions = {}) => {
16
22
  const options = resolveOptions(rawOptions);
23
+ const transformCache = createTtscTransformCache();
17
24
  let aliases: unknown;
18
25
 
19
26
  return {
@@ -26,6 +33,10 @@ const unpluginFactory: UnpluginFactory<
26
33
  },
27
34
  },
28
35
 
36
+ buildStart() {
37
+ transformCache.clear();
38
+ },
39
+
29
40
  transformInclude(id) {
30
41
  const file = stripQuery(id);
31
42
  return isTransformTarget(file);
@@ -36,7 +47,7 @@ const unpluginFactory: UnpluginFactory<
36
47
  if (!isTransformTarget(file)) {
37
48
  return undefined;
38
49
  }
39
- return transformTtsc(file, source, options, aliases);
50
+ return transformTtsc(file, source, options, aliases, transformCache);
40
51
  },
41
52
  };
42
53
  };
@@ -48,13 +59,14 @@ export type {
48
59
  TtscUnpluginCompilerOptionsJson,
49
60
  TtscUnpluginOptions,
50
61
  } from "./options";
51
- export { resolveOptions, transformTtsc, unplugin };
62
+ export { createTtscTransformCache, resolveOptions, transformTtsc, unplugin };
52
63
 
53
64
  export default unplugin;
54
65
 
55
66
  function isTransformTarget(id: string): boolean {
56
67
  return (
57
68
  sourceFilePattern.test(id) &&
69
+ !virtualModulePattern.test(id) &&
58
70
  !isDeclarationFile(id) &&
59
71
  !nodeModulesPattern.test(id)
60
72
  );
@@ -22,9 +22,9 @@ export interface TtscUnpluginOptions {
22
22
  /**
23
23
  * `ttsc` plugin entries.
24
24
  *
25
- * `undefined` reads `compilerOptions.plugins` from the project config,
26
- * `false` disables project plugins, and an array overrides the project
27
- * plugin list.
25
+ * `undefined` reads project plugins from `compilerOptions.plugins` and
26
+ * directly installed package markers, `false` disables project plugins, and
27
+ * an array overrides the project plugin list.
28
28
  */
29
29
  plugins?: readonly ITtscProjectPluginConfig[] | false;
30
30
  }