@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,82 +1,64 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.transformTtsc = transformTtsc;
40
- exports.stripQuery = stripQuery;
41
- exports.isDeclarationFile = isDeclarationFile;
42
- exports.createTransformResult = createTransformResult;
43
- const Diff = __importStar(require("diff-match-patch-es"));
44
- const node_fs_1 = __importDefault(require("node:fs"));
45
- const node_path_1 = __importDefault(require("node:path"));
46
- const magic_string_1 = __importDefault(require("magic-string"));
47
- const ttsc_1 = require("ttsc");
48
- async function transformTtsc(id, source, options, aliases) {
49
- const file = node_path_1.default.resolve(stripQuery(id));
1
+ 'use strict';
2
+
3
+ var fs = require('node:fs');
4
+ var crypto = require('node:crypto');
5
+ var os = require('node:os');
6
+ var path = require('node:path');
7
+ var ttsc = require('ttsc');
8
+
9
+ function createTtscTransformCache() {
10
+ return new Map();
11
+ }
12
+ async function transformTtsc(id, source, options, aliases, cache) {
13
+ const clean = stripQuery(id);
14
+ if (clean.includes("\0")) {
15
+ return undefined;
16
+ }
17
+ const file = path.resolve(clean);
50
18
  if (isDeclarationFile(file)) {
51
19
  return undefined;
52
20
  }
53
21
  const tsconfig = resolveTsconfig(file, options.project);
54
- const tsconfigDir = node_path_1.default.dirname(tsconfig);
22
+ const tsconfigDir = path.dirname(tsconfig);
55
23
  const baseUrl = resolveBaseUrl(tsconfigDir, options.compilerOptions);
56
24
  const aliasPaths = createAliasPaths(baseUrl, aliases);
57
- const configured = createTransformTsconfig({
25
+ const key = createTransformCacheKey({
58
26
  aliasPaths,
59
- baseUrl,
60
27
  compilerOptions: options.compilerOptions,
28
+ plugins: options.plugins,
61
29
  tsconfig,
62
30
  });
63
- try {
64
- const effectiveTsconfig = configured.path;
65
- const result = new ttsc_1.TtscCompiler({
66
- cwd: node_path_1.default.dirname(effectiveTsconfig),
31
+ let transformed = cache?.get(key);
32
+ if (transformed !== undefined) {
33
+ const cached = await transformed;
34
+ if (matchesCachedSource(cached, file, source)) {
35
+ reportSuccessDiagnostics(cached.result);
36
+ const code = selectTransformedSource({
37
+ file,
38
+ projectRoot: cached.projectRoot,
39
+ result: cached.result,
40
+ });
41
+ return createTransformResult(source, code);
42
+ }
43
+ cache?.delete(key);
44
+ transformed = undefined;
45
+ }
46
+ if (transformed === undefined) {
47
+ transformed = transformProject({
48
+ aliasPaths,
49
+ baseUrl,
50
+ compilerOptions: options.compilerOptions,
51
+ currentFile: file,
52
+ currentSource: source,
67
53
  plugins: options.plugins,
68
- tsconfig: effectiveTsconfig,
69
- }).transform();
70
- const code = selectTransformedSource({
71
- file,
72
- projectRoot: node_path_1.default.dirname(effectiveTsconfig),
73
- result,
54
+ tsconfig,
74
55
  });
75
- return createTransformResult(source, code, file);
76
- }
77
- finally {
78
- configured.dispose();
56
+ cache?.set(key, transformed);
79
57
  }
58
+ const { projectRoot, result } = await transformed;
59
+ reportSuccessDiagnostics(result);
60
+ const code = selectTransformedSource({ file, projectRoot, result });
61
+ return createTransformResult(source, code);
80
62
  }
81
63
  function stripQuery(id) {
82
64
  const query = id.search(/[?#]/);
@@ -88,70 +70,184 @@ function stripQuery(id) {
88
70
  function isDeclarationFile(id) {
89
71
  return id.endsWith(".d.ts") || id.endsWith(".d.mts") || id.endsWith(".d.cts");
90
72
  }
91
- function createTransformResult(source, code, id) {
73
+ function createTransformResult(source, code) {
92
74
  if (source === code) {
93
75
  return undefined;
94
76
  }
95
- const magic = new magic_string_1.default(source);
96
- const diff = Diff.diff(source, code);
97
- Diff.diffCleanupSemantic(diff);
98
- let offset = 0;
99
- for (let index = 0; index < diff.length; index += 1) {
100
- const [type, text] = diff[index];
101
- if (type === 0) {
102
- offset += text.length;
103
- continue;
77
+ return { code };
78
+ }
79
+ function matchesCachedSource(cached, file, source) {
80
+ const currentKey = toProjectKey(cached.projectRoot, file);
81
+ const currentHashes = collectProjectInputHashes(cached.projectRoot);
82
+ currentHashes[currentKey] = hashText(source);
83
+ return sameHashes(cached.inputHashes, currentHashes);
84
+ }
85
+ function collectInputHashes(props) {
86
+ const hashes = collectProjectInputHashes(props.projectRoot);
87
+ if (props.result.type !== "exception") {
88
+ for (const key of Object.keys(props.result.typescript)) {
89
+ const file = path.resolve(props.projectRoot, key);
90
+ try {
91
+ hashes[key] = hashText(fs.readFileSync(file, "utf8"));
92
+ }
93
+ catch {
94
+ // A plugin may synthesize a virtual TypeScript file. It should not
95
+ // decide cache reuse for real source files.
96
+ }
104
97
  }
105
- if (type === 1) {
106
- magic.prependLeft(offset, text);
107
- continue;
98
+ }
99
+ hashes[toProjectKey(props.projectRoot, props.currentFile)] = hashText(props.currentSource);
100
+ return hashes;
101
+ }
102
+ function collectProjectInputHashes(projectRoot) {
103
+ const hashes = {};
104
+ for (const file of listProjectInputFiles(projectRoot)) {
105
+ try {
106
+ hashes[toProjectKey(projectRoot, file)] = hashText(fs.readFileSync(file));
108
107
  }
109
- const next = diff[index + 1];
110
- if (next?.[0] === 1) {
111
- magic.update(offset, offset + text.length, next[1]);
112
- index += 1;
108
+ catch {
109
+ // File watchers may observe a transform while another process is moving
110
+ // or deleting files. The missing key invalidates older cache entries.
111
+ }
112
+ }
113
+ return hashes;
114
+ }
115
+ function listProjectInputFiles(root) {
116
+ const out = [];
117
+ const stack = [root];
118
+ while (stack.length !== 0) {
119
+ const current = stack.pop();
120
+ let entries;
121
+ try {
122
+ entries = fs.readdirSync(current, { withFileTypes: true });
123
+ }
124
+ catch {
125
+ continue;
113
126
  }
114
- else {
115
- magic.remove(offset, offset + text.length);
127
+ for (const entry of entries) {
128
+ if (isIgnoredProjectDirectory(entry.name)) {
129
+ continue;
130
+ }
131
+ const file = path.join(current, entry.name);
132
+ if (entry.isDirectory()) {
133
+ stack.push(file);
134
+ }
135
+ else if (entry.isFile()) {
136
+ out.push(file);
137
+ }
116
138
  }
117
- offset += text.length;
118
139
  }
119
- if (!magic.hasChanged()) {
120
- return undefined;
140
+ out.sort();
141
+ return out;
142
+ }
143
+ function isIgnoredProjectDirectory(name) {
144
+ return (name === ".git" ||
145
+ name === ".ttsc" ||
146
+ name === ".cache" ||
147
+ name === ".next" ||
148
+ name === ".nuxt" ||
149
+ name === ".svelte-kit" ||
150
+ name === ".turbo" ||
151
+ name === ".vite" ||
152
+ name === "build" ||
153
+ name === "coverage" ||
154
+ name === "dist" ||
155
+ name === "node_modules" ||
156
+ name === "out" ||
157
+ name === "temp" ||
158
+ name === "tmp");
159
+ }
160
+ function sameHashes(left, right) {
161
+ const leftKeys = Object.keys(left);
162
+ const rightKeys = Object.keys(right);
163
+ if (leftKeys.length !== rightKeys.length) {
164
+ return false;
165
+ }
166
+ return leftKeys.every((key) => right[key] === left[key]);
167
+ }
168
+ function hashText(input) {
169
+ return crypto.createHash("sha256").update(input).digest("hex");
170
+ }
171
+ async function transformProject(props) {
172
+ const configured = createTransformTsconfig(props);
173
+ const projectRoot = path.dirname(props.tsconfig);
174
+ try {
175
+ const result = new ttsc.TtscCompiler({
176
+ cwd: projectRoot,
177
+ plugins: props.plugins,
178
+ projectRoot,
179
+ tsconfig: configured.path,
180
+ }).transform();
181
+ return {
182
+ inputHashes: collectInputHashes({
183
+ currentFile: props.currentFile,
184
+ currentSource: props.currentSource,
185
+ projectRoot,
186
+ result,
187
+ }),
188
+ projectRoot,
189
+ result,
190
+ };
191
+ }
192
+ finally {
193
+ configured.dispose();
121
194
  }
122
- return {
123
- code: magic.toString(),
124
- map: magic.generateMap({
125
- file: `${id}.map`,
126
- includeContent: true,
127
- source: id,
128
- }),
129
- };
130
195
  }
131
196
  function createTransformTsconfig(props) {
132
- const compilerOptions = {
197
+ const compilerOptions = normalizeCompilerOptionsForGeneratedTsconfig({
133
198
  ...props.compilerOptions,
134
199
  ...createAliasCompilerOptions(props),
135
- };
200
+ }, path.dirname(props.tsconfig));
136
201
  if (Object.keys(compilerOptions).length === 0) {
137
202
  return {
138
203
  path: props.tsconfig,
139
204
  dispose: () => undefined,
140
205
  };
141
206
  }
142
- const directory = node_path_1.default.dirname(props.tsconfig);
143
- const file = node_path_1.default.join(directory, `.ttsc-unplugin-${process.pid}-${Date.now()}-${Math.random()
144
- .toString(36)
145
- .slice(2)}.json`);
146
- node_fs_1.default.writeFileSync(file, JSON.stringify({
147
- extends: `./${node_path_1.default.basename(props.tsconfig)}`,
207
+ const directory = fs.mkdtempSync(path.join(os.tmpdir(), "ttsc-unplugin-"));
208
+ const file = path.join(directory, "tsconfig.json");
209
+ fs.writeFileSync(file, JSON.stringify({
210
+ extends: normalizePath(props.tsconfig),
148
211
  compilerOptions,
149
212
  }, null, 2), "utf8");
150
213
  return {
151
214
  path: file,
152
- dispose: () => node_fs_1.default.rmSync(file, { force: true }),
215
+ dispose: () => fs.rmSync(directory, { force: true, recursive: true }),
153
216
  };
154
217
  }
218
+ function normalizeCompilerOptionsForGeneratedTsconfig(compilerOptions, tsconfigDir) {
219
+ const output = { ...compilerOptions };
220
+ for (const key of ["baseUrl", "declarationDir", "outDir", "rootDir"]) {
221
+ if (typeof output[key] === "string") {
222
+ output[key] = path.resolve(tsconfigDir, output[key]);
223
+ }
224
+ }
225
+ for (const key of ["rootDirs", "typeRoots"]) {
226
+ if (Array.isArray(output[key])) {
227
+ output[key] = output[key].map((entry) => typeof entry === "string" ? path.resolve(tsconfigDir, entry) : entry);
228
+ }
229
+ }
230
+ if (hasPaths(output.paths) && typeof output.baseUrl !== "string") {
231
+ output.baseUrl = tsconfigDir;
232
+ }
233
+ if (Array.isArray(output.plugins)) {
234
+ output.plugins = output.plugins.map((entry) => normalizePluginConfigForGeneratedTsconfig(entry, tsconfigDir));
235
+ }
236
+ return output;
237
+ }
238
+ function normalizePluginConfigForGeneratedTsconfig(entry, tsconfigDir) {
239
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
240
+ return entry;
241
+ }
242
+ const output = { ...entry };
243
+ for (const key of ["config", "source", "transform"]) {
244
+ const value = output[key];
245
+ if (typeof value === "string" && isRelativeSpecifier(value)) {
246
+ output[key] = path.resolve(tsconfigDir, value);
247
+ }
248
+ }
249
+ return output;
250
+ }
155
251
  function createAliasCompilerOptions(props) {
156
252
  if (Object.keys(props.aliasPaths).length === 0) {
157
253
  return {};
@@ -164,6 +260,12 @@ function createAliasCompilerOptions(props) {
164
260
  },
165
261
  };
166
262
  }
263
+ function hasPaths(value) {
264
+ return (typeof value === "object" &&
265
+ value !== null &&
266
+ !Array.isArray(value) &&
267
+ Object.keys(value).length !== 0);
268
+ }
167
269
  function readPaths(value) {
168
270
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
169
271
  return {};
@@ -182,7 +284,7 @@ function readPaths(value) {
182
284
  }
183
285
  function resolveBaseUrl(tsconfigDir, compilerOptions) {
184
286
  return typeof compilerOptions.baseUrl === "string"
185
- ? node_path_1.default.resolve(tsconfigDir, compilerOptions.baseUrl)
287
+ ? path.resolve(tsconfigDir, compilerOptions.baseUrl)
186
288
  : tsconfigDir;
187
289
  }
188
290
  function toCompilerPath(absoluteBaseUrl, compilerOptions) {
@@ -203,10 +305,10 @@ function createAliasPaths(baseUrl, aliases) {
203
305
  if (key.length === 0) {
204
306
  continue;
205
307
  }
206
- const replacement = node_path_1.default.isAbsolute(alias.replacement)
308
+ const replacement = path.isAbsolute(alias.replacement)
207
309
  ? alias.replacement
208
- : node_path_1.default.resolve(process.cwd(), alias.replacement);
209
- const target = normalizePath(node_path_1.default.relative(baseUrl, replacement) || ".");
310
+ : path.resolve(process.cwd(), alias.replacement);
311
+ const target = normalizePath(path.relative(baseUrl, replacement) || ".");
210
312
  paths[key] = [target];
211
313
  paths[`${key}/*`] = [`${target}/*`];
212
314
  }
@@ -223,6 +325,34 @@ function normalizeAliases(aliases) {
223
325
  }
224
326
  return [];
225
327
  }
328
+ function createTransformCacheKey(props) {
329
+ return stableStringify({
330
+ aliasPaths: props.aliasPaths,
331
+ compilerOptions: props.compilerOptions,
332
+ plugins: props.plugins,
333
+ tsconfig: path.resolve(props.tsconfig),
334
+ });
335
+ }
336
+ function stableStringify(value) {
337
+ if (Array.isArray(value)) {
338
+ return `[${value.map(stableStringify).join(",")}]`;
339
+ }
340
+ if (value && typeof value === "object") {
341
+ return `{${Object.entries(value)
342
+ .sort(([a], [b]) => a.localeCompare(b))
343
+ .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)
344
+ .join(",")}}`;
345
+ }
346
+ return JSON.stringify(value);
347
+ }
348
+ function isRelativeSpecifier(value) {
349
+ return (value === "." ||
350
+ value === ".." ||
351
+ value.startsWith("./") ||
352
+ value.startsWith("../") ||
353
+ value.startsWith(".\\") ||
354
+ value.startsWith("..\\"));
355
+ }
226
356
  function isAlias(value) {
227
357
  return (typeof value === "object" &&
228
358
  value !== null &&
@@ -244,12 +374,21 @@ function selectTransformedSource(props) {
244
374
  return direct;
245
375
  }
246
376
  for (const [candidate, source] of Object.entries(props.result.typescript)) {
247
- if (node_path_1.default.resolve(props.projectRoot, candidate) === props.file) {
377
+ if (path.resolve(props.projectRoot, candidate) === props.file) {
248
378
  return source;
249
379
  }
250
380
  }
251
381
  throw new Error(`ttsc transform did not return output for ${props.file}`);
252
382
  }
383
+ function reportSuccessDiagnostics(result) {
384
+ if (result.type !== "success" || result.diagnostics === undefined) {
385
+ return;
386
+ }
387
+ const text = formatDiagnostics(result.diagnostics);
388
+ if (text.length !== 0) {
389
+ process.stderr.write(`${text}\n`);
390
+ }
391
+ }
253
392
  function formatDiagnostics(diagnostics) {
254
393
  if (diagnostics.length === 0) {
255
394
  return "ttsc transform failed";
@@ -280,28 +419,34 @@ function formatUnknownError(error) {
280
419
  }
281
420
  function resolveTsconfig(file, tsconfig) {
282
421
  if (tsconfig !== undefined) {
283
- return node_path_1.default.isAbsolute(tsconfig)
422
+ return path.isAbsolute(tsconfig)
284
423
  ? tsconfig
285
- : node_path_1.default.resolve(process.cwd(), tsconfig);
424
+ : path.resolve(process.cwd(), tsconfig);
286
425
  }
287
- let current = node_path_1.default.dirname(file);
426
+ let current = path.dirname(file);
288
427
  while (true) {
289
- const candidate = node_path_1.default.join(current, "tsconfig.json");
290
- if (node_fs_1.default.existsSync(candidate)) {
428
+ const candidate = path.join(current, "tsconfig.json");
429
+ if (fs.existsSync(candidate)) {
291
430
  return candidate;
292
431
  }
293
- const parent = node_path_1.default.dirname(current);
432
+ const parent = path.dirname(current);
294
433
  if (parent === current) {
295
434
  break;
296
435
  }
297
436
  current = parent;
298
437
  }
299
- return node_path_1.default.resolve(process.cwd(), "tsconfig.json");
438
+ return path.resolve(process.cwd(), "tsconfig.json");
300
439
  }
301
440
  function toProjectKey(root, file) {
302
- return normalizePath(node_path_1.default.relative(root, file));
441
+ return normalizePath(path.relative(root, file));
303
442
  }
304
443
  function normalizePath(file) {
305
444
  return file.replace(/\\/g, "/");
306
445
  }
307
- //# sourceMappingURL=transform.js.map
446
+
447
+ exports.createTransformResult = createTransformResult;
448
+ exports.createTtscTransformCache = createTtscTransformCache;
449
+ exports.isDeclarationFile = isDeclarationFile;
450
+ exports.stripQuery = stripQuery;
451
+ exports.transformTtsc = transformTtsc;
452
+ //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/core/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sources":["../../src/core/transform.ts"],"sourcesContent":[null],"names":["TtscCompiler"],"mappings":"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"}