ts-swc-transform 2.7.0 → 2.7.1

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.
@@ -3,4 +3,5 @@
3
3
  * Local to this package - contains only needed functions.
4
4
  */
5
5
  export declare function stringStartsWith(str: string, search: string, position?: number): boolean;
6
+ export declare function stringEndsWith(str: string, search: string, position?: number): boolean;
6
7
  export declare function stringReplaceAll(str: string, search: string, replace: string): string;
@@ -3,4 +3,5 @@
3
3
  * Local to this package - contains only needed functions.
4
4
  */
5
5
  export declare function stringStartsWith(str: string, search: string, position?: number): boolean;
6
+ export declare function stringEndsWith(str: string, search: string, position?: number): boolean;
6
7
  export declare function stringReplaceAll(str: string, search: string, replace: string): string;
@@ -9,6 +9,9 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ get stringEndsWith () {
13
+ return stringEndsWith;
14
+ },
12
15
  get stringReplaceAll () {
13
16
  return stringReplaceAll;
14
17
  },
@@ -31,6 +34,18 @@ function stringStartsWith(str, search, position) {
31
34
  position = position || 0;
32
35
  return str.indexOf(search, position) === position;
33
36
  }
37
+ /**
38
+ * String.prototype.endsWith wrapper for Node.js 0.8+
39
+ * - Uses native endsWith on Node 4.0+ / ES2015+
40
+ * - Falls back to lastIndexOf on Node 0.8-3.x
41
+ */ var hasEndsWith = typeof String.prototype.endsWith === 'function';
42
+ function stringEndsWith(str, search, position) {
43
+ if (hasEndsWith) {
44
+ return str.endsWith(search, position);
45
+ }
46
+ var len = position === undefined ? str.length : position;
47
+ return str.lastIndexOf(search) === len - search.length;
48
+ }
34
49
  /**
35
50
  * String.prototype.replaceAll wrapper for Node.js 0.8+
36
51
  * - Uses native replaceAll on Node 15.0+ / ES2021+
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\n\n/**\n * String.prototype.startsWith wrapper for Node.js 0.8+\n * - Uses native startsWith on Node 4.0+ / ES2015+\n * - Falls back to indexOf on Node 0.8-3.x\n */\nvar hasStartsWith = typeof String.prototype.startsWith === 'function';\n\nexport function stringStartsWith(str: string, search: string, position?: number): boolean {\n if (hasStartsWith) {\n return str.startsWith(search, position);\n }\n position = position || 0;\n return str.indexOf(search, position) === position;\n}\n\n/**\n * String.prototype.replaceAll wrapper for Node.js 0.8+\n * - Uses native replaceAll on Node 15.0+ / ES2021+\n * - Falls back to regex replace on older versions\n */\n// biome-ignore lint/suspicious/noExplicitAny: Feature detection for ES2021 replaceAll\nvar hasReplaceAll = typeof (String.prototype as any).replaceAll === 'function';\n\nexport function stringReplaceAll(str: string, search: string, replace: string): string {\n if (hasReplaceAll) {\n // biome-ignore lint/suspicious/noExplicitAny: Using native replaceAll when available\n return (str as any).replaceAll(search, replace);\n }\n // Escape special regex characters\n var escaped = search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return str.replace(new RegExp(escaped, 'g'), replace);\n}\n"],"names":["stringReplaceAll","stringStartsWith","hasStartsWith","String","prototype","startsWith","str","search","position","indexOf","hasReplaceAll","replaceAll","replace","escaped","RegExp"],"mappings":";;;;;;;;;;;QA4BgBA;eAAAA;;QAhBAC;eAAAA;;;AAZhB;;;CAGC,GAED;;;;CAIC,GACD,IAAIC,gBAAgB,OAAOC,OAAOC,SAAS,CAACC,UAAU,KAAK;AAEpD,SAASJ,iBAAiBK,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC7E,IAAIN,eAAe;QACjB,OAAOI,IAAID,UAAU,CAACE,QAAQC;IAChC;IACAA,WAAWA,YAAY;IACvB,OAAOF,IAAIG,OAAO,CAACF,QAAQC,cAAcA;AAC3C;AAEA;;;;CAIC,GACD,sFAAsF;AACtF,IAAIE,gBAAgB,OAAO,AAACP,OAAOC,SAAS,CAASO,UAAU,KAAK;AAE7D,SAASX,iBAAiBM,GAAW,EAAEC,MAAc,EAAEK,OAAe;IAC3E,IAAIF,eAAe;QACjB,qFAAqF;QACrF,OAAO,AAACJ,IAAYK,UAAU,CAACJ,QAAQK;IACzC;IACA,kCAAkC;IAClC,IAAIC,UAAUN,OAAOK,OAAO,CAAC,uBAAuB;IACpD,OAAON,IAAIM,OAAO,CAAC,IAAIE,OAAOD,SAAS,MAAMD;AAC/C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\n\n/**\n * String.prototype.startsWith wrapper for Node.js 0.8+\n * - Uses native startsWith on Node 4.0+ / ES2015+\n * - Falls back to indexOf on Node 0.8-3.x\n */\nvar hasStartsWith = typeof String.prototype.startsWith === 'function';\n\nexport function stringStartsWith(str: string, search: string, position?: number): boolean {\n if (hasStartsWith) {\n return str.startsWith(search, position);\n }\n position = position || 0;\n return str.indexOf(search, position) === position;\n}\n\n/**\n * String.prototype.endsWith wrapper for Node.js 0.8+\n * - Uses native endsWith on Node 4.0+ / ES2015+\n * - Falls back to lastIndexOf on Node 0.8-3.x\n */\nvar hasEndsWith = typeof String.prototype.endsWith === 'function';\n\nexport function stringEndsWith(str: string, search: string, position?: number): boolean {\n if (hasEndsWith) {\n return str.endsWith(search, position);\n }\n var len = position === undefined ? str.length : position;\n return str.lastIndexOf(search) === len - search.length;\n}\n\n/**\n * String.prototype.replaceAll wrapper for Node.js 0.8+\n * - Uses native replaceAll on Node 15.0+ / ES2021+\n * - Falls back to regex replace on older versions\n */\n// biome-ignore lint/suspicious/noExplicitAny: Feature detection for ES2021 replaceAll\nvar hasReplaceAll = typeof (String.prototype as any).replaceAll === 'function';\n\nexport function stringReplaceAll(str: string, search: string, replace: string): string {\n if (hasReplaceAll) {\n // biome-ignore lint/suspicious/noExplicitAny: Using native replaceAll when available\n return (str as any).replaceAll(search, replace);\n }\n // Escape special regex characters\n var escaped = search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return str.replace(new RegExp(escaped, 'g'), replace);\n}\n"],"names":["stringEndsWith","stringReplaceAll","stringStartsWith","hasStartsWith","String","prototype","startsWith","str","search","position","indexOf","hasEndsWith","endsWith","len","undefined","length","lastIndexOf","hasReplaceAll","replaceAll","replace","escaped","RegExp"],"mappings":";;;;;;;;;;;QA2BgBA;eAAAA;;QAgBAC;eAAAA;;QA/BAC;eAAAA;;;AAZhB;;;CAGC,GAED;;;;CAIC,GACD,IAAIC,gBAAgB,OAAOC,OAAOC,SAAS,CAACC,UAAU,KAAK;AAEpD,SAASJ,iBAAiBK,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC7E,IAAIN,eAAe;QACjB,OAAOI,IAAID,UAAU,CAACE,QAAQC;IAChC;IACAA,WAAWA,YAAY;IACvB,OAAOF,IAAIG,OAAO,CAACF,QAAQC,cAAcA;AAC3C;AAEA;;;;CAIC,GACD,IAAIE,cAAc,OAAOP,OAAOC,SAAS,CAACO,QAAQ,KAAK;AAEhD,SAASZ,eAAeO,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC3E,IAAIE,aAAa;QACf,OAAOJ,IAAIK,QAAQ,CAACJ,QAAQC;IAC9B;IACA,IAAII,MAAMJ,aAAaK,YAAYP,IAAIQ,MAAM,GAAGN;IAChD,OAAOF,IAAIS,WAAW,CAACR,YAAYK,MAAML,OAAOO,MAAM;AACxD;AAEA;;;;CAIC,GACD,sFAAsF;AACtF,IAAIE,gBAAgB,OAAO,AAACb,OAAOC,SAAS,CAASa,UAAU,KAAK;AAE7D,SAASjB,iBAAiBM,GAAW,EAAEC,MAAc,EAAEW,OAAe;IAC3E,IAAIF,eAAe;QACjB,qFAAqF;QACrF,OAAO,AAACV,IAAYW,UAAU,CAACV,QAAQW;IACzC;IACA,kCAAkC;IAClC,IAAIC,UAAUZ,OAAOW,OAAO,CAAC,uBAAuB;IACpD,OAAOZ,IAAIY,OAAO,CAAC,IAAIE,OAAOD,SAAS,MAAMD;AAC/C"}
@@ -27,8 +27,8 @@ function dispatch(version, contents, fileName, tsconfig) {
27
27
  return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);
28
28
  }
29
29
  function transformSync(contents, fileName, tsconfig) {
30
- if (typeof contents !== 'string') throw new Error('transformTypes: unexpected contents');
31
- if (typeof fileName !== 'string') throw new Error('transformTypes: unexpected fileName');
30
+ if (typeof contents !== 'string') throw new Error('transformSync: unexpected contents');
31
+ if (typeof fileName !== 'string') throw new Error('transformSync: unexpected fileName');
32
32
  if (!tsconfig) tsconfig = (0, _readtsconfigsync.default)(process.cwd());
33
33
  return dispatch(version, contents, fileName, tsconfig);
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport loadConfigSync from 'read-tsconfig-sync';\nimport url from 'url';\n\nimport type { TSConfig } from './types.ts';\n\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformSync.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nfunction dispatch(version, contents, fileName, tsconfig) {\n if (version === 'local') return _require(workerPath)(contents, fileName, tsconfig);\n return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);\n}\n\nimport type { Output } from '@swc/core';\nexport default function transformSync(contents: string, fileName: string, tsconfig?: TSConfig): Output {\n if (typeof contents !== 'string') throw new Error('transformTypes: unexpected contents');\n if (typeof fileName !== 'string') throw new Error('transformTypes: unexpected fileName');\n if (!tsconfig) tsconfig = loadConfigSync(process.cwd());\n return dispatch(version, contents, fileName, tsconfig);\n}\n"],"names":["transformSync","major","process","versions","node","split","version","__dirname","path","dirname","__filename","url","fileURLToPath","workerPath","join","_require","require","Module","createRequire","dispatch","contents","fileName","tsconfig","Error","loadConfigSync","cwd"],"mappings":";;;;+BAqBA;;;eAAwBA;;;2DArBP;uEACU;0DACX;6DASG;;;;;;AALnB,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,IAAMM,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,aAAaL,aAAI,CAACM,IAAI,CAACP,WAAW,MAAM,OAAO,WAAW;AAIhE,IAAMQ,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,SAASG,SAASb,OAAO,EAAEc,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ;IACrD,IAAIhB,YAAY,SAAS,OAAOS,SAASF,YAAYO,UAAUC,UAAUC;IACzE,OAAOP,SAAS,qBAAqBT,SAASO,YAAYO,UAAUC,UAAUC;AAChF;AAGe,SAAStB,cAAcoB,QAAgB,EAAEC,QAAgB,EAAEC,QAAmB;IAC3F,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAIG,MAAM;IAClD,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAIE,MAAM;IAClD,IAAI,CAACD,UAAUA,WAAWE,IAAAA,yBAAc,EAACtB,QAAQuB,GAAG;IACpD,OAAON,SAASb,SAASc,UAAUC,UAAUC;AAC/C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport loadConfigSync from 'read-tsconfig-sync';\nimport url from 'url';\n\nimport type { TSConfig } from './types.ts';\n\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformSync.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nfunction dispatch(version, contents, fileName, tsconfig) {\n if (version === 'local') return _require(workerPath)(contents, fileName, tsconfig);\n return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);\n}\n\nimport type { Output } from '@swc/core';\nexport default function transformSync(contents: string, fileName: string, tsconfig?: TSConfig): Output {\n if (typeof contents !== 'string') throw new Error('transformSync: unexpected contents');\n if (typeof fileName !== 'string') throw new Error('transformSync: unexpected fileName');\n if (!tsconfig) tsconfig = loadConfigSync(process.cwd());\n return dispatch(version, contents, fileName, tsconfig);\n}\n"],"names":["transformSync","major","process","versions","node","split","version","__dirname","path","dirname","__filename","url","fileURLToPath","workerPath","join","_require","require","Module","createRequire","dispatch","contents","fileName","tsconfig","Error","loadConfigSync","cwd"],"mappings":";;;;+BAqBA;;;eAAwBA;;;2DArBP;uEACU;0DACX;6DASG;;;;;;AALnB,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,IAAMM,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,aAAaL,aAAI,CAACM,IAAI,CAACP,WAAW,MAAM,OAAO,WAAW;AAIhE,IAAMQ,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,SAASG,SAASb,OAAO,EAAEc,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ;IACrD,IAAIhB,YAAY,SAAS,OAAOS,SAASF,YAAYO,UAAUC,UAAUC;IACzE,OAAOP,SAAS,qBAAqBT,SAASO,YAAYO,UAAUC,UAAUC;AAChF;AAGe,SAAStB,cAAcoB,QAAgB,EAAEC,QAAgB,EAAEC,QAAmB;IAC3F,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAIG,MAAM;IAClD,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAIE,MAAM;IAClD,IAAI,CAACD,UAAUA,WAAWE,IAAAA,yBAAc,EAACtB,QAAQuB,GAAG;IACpD,OAAON,SAASb,SAASc,UAAUC,UAAUC;AAC/C"}
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
12
  var _fsiterator = /*#__PURE__*/ _interop_require_default(require("fs-iterator"));
13
13
  var _module = /*#__PURE__*/ _interop_require_default(require("module"));
14
+ var _compatts = require("../compat.js");
14
15
  var _constantsts = require("../constants.js");
15
16
  var _createMatcherts = /*#__PURE__*/ _interop_require_default(require("../createMatcher.js"));
16
17
  var _rewriteExtensionsts = require("../lib/rewriteExtensions.js");
@@ -123,7 +124,7 @@ function transformTypesWorker(src, dest, options, callback) {
123
124
  // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037
124
125
  if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {
125
126
  res.emittedFiles.forEach(function(file) {
126
- if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {
127
+ if ((0, _compatts.stringEndsWith)(file, '.d.ts') || (0, _compatts.stringEndsWith)(file, '.d.cts') || (0, _compatts.stringEndsWith)(file, '.d.mts')) {
127
128
  try {
128
129
  var content = _fs.default.readFileSync(file, 'utf8');
129
130
  var updated = (0, _rewriteExtensionsts.rewriteExtensions)(content);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions.options,\n outDir: dest,\n noEmit: false,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["transformTypesWorker","_require","require","Module","createRequire","src","dest","options","callback","tsconfig","matcher","createMatcher","ts","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","endsWith","content","fs","readFileSync","updated","rewriteExtensions","writeFileSync","_err"],"mappings":";;;;+BAYA;;;eAAwBA;;;yDAZT;iEACsB;6DAClB;2BAIW;sEACJ;mCACQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAJlC,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAQ3E,SAASF,qBAAqBK,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,wBAAa,EAACF;IAC9B,IAAMG,KAAKX,SAAS;IAEpB,IAAMY,UAAU,EAAE;IAClB,IAAMC,WAAW,IAAIC,mBAAQ,CAACV;IAC9BS,SAASE,OAAO,CACd,SAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIC,0BAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACV,QAAQO,MAAMM,QAAQ,GAAG;QAC9BV,QAAQW,IAAI,CAACP;IACf,GACA;QAAEQ,aAAaC;IAAS,GACxB,SAACC;QACC,IAAIA,KAAK;YACPnB,SAASmB;YACT;QACF;QAEA,IAAMC,kBAAkBhB,GAAGiB,8BAA8B,CAACpB,SAASqB,MAAM,CAACF,eAAe,EAAE;QAC3F,IAAME,SAAS;YACbC,WAAWlB,QAAQmB,GAAG,CAAC,SAACf;uBAAUA,MAAMM,QAAQ;;YAChDhB,SAAS,wCACJqB,gBAAgBrB,OAAO;gBAC1B0B,QAAQ3B;gBACR4B,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;;YAEpBC,mBAAmB9B,SAASqB,MAAM,CAACU,UAAU;QAC/C;QACA,IAAQT,YAA0CD,OAA1CC,WAAWxB,YAA+BuB,OAA/BvB,SAASgC,oBAAsBT,OAAtBS;QAC5B,IAAME,OAAO7B,GAAG8B,wBAAwB,CAACnC,WAAS,gBAAgB,GAAGoC,WAAW/B,GAAGgC,GAAG;QACtF,IAAMC,iBAAiB;YACrBC,WAAWf;YACXxB,SAAAA;YACAgC,mBAAAA;YACAE,MAAAA;YACAM,8BAA8BnC,GAAGoC,+BAA+B,CAAC;gBAAEjB,WAAAA;gBAAWxB,SAAAA;YAAQ;QACxF;QACA,IAAM0C,UAAUrC,GAAGsC,aAAa,CAACL;QACjC,IAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBrB,OAAO,CAAC+C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACrC,OAAO,CAAC,SAACuC;gBACxB,IAAIA,KAAKC,QAAQ,CAAC,YAAYD,KAAKC,QAAQ,CAAC,aAAaD,KAAKC,QAAQ,CAAC,WAAW;oBAChF,IAAI;wBACF,IAAMC,UAAUC,WAAE,CAACC,YAAY,CAACJ,MAAM;wBACtC,IAAMK,UAAUC,IAAAA,sCAAiB,EAACJ;wBAClC,IAAIG,YAAYH,SAAS;4BACvBC,WAAE,CAACI,aAAa,CAACP,MAAMK,SAAS;wBAClC;oBACF,EAAE,OAAOG,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAvD,SAAS,MAAM2C,IAAIE,YAAY;IACjC;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { stringEndsWith } from '../compat.ts';\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions.options,\n outDir: dest,\n noEmit: false,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (stringEndsWith(file, '.d.ts') || stringEndsWith(file, '.d.cts') || stringEndsWith(file, '.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["transformTypesWorker","_require","require","Module","createRequire","src","dest","options","callback","tsconfig","matcher","createMatcher","ts","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","stringEndsWith","content","fs","readFileSync","updated","rewriteExtensions","writeFileSync","_err"],"mappings":";;;;+BAaA;;;eAAwBA;;;yDAbT;iEACsB;6DAClB;wBAIY;2BACD;sEACJ;mCACQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AALlC,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAS3E,SAASF,qBAAqBK,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,wBAAa,EAACF;IAC9B,IAAMG,KAAKX,SAAS;IAEpB,IAAMY,UAAU,EAAE;IAClB,IAAMC,WAAW,IAAIC,mBAAQ,CAACV;IAC9BS,SAASE,OAAO,CACd,SAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIC,0BAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACV,QAAQO,MAAMM,QAAQ,GAAG;QAC9BV,QAAQW,IAAI,CAACP;IACf,GACA;QAAEQ,aAAaC;IAAS,GACxB,SAACC;QACC,IAAIA,KAAK;YACPnB,SAASmB;YACT;QACF;QAEA,IAAMC,kBAAkBhB,GAAGiB,8BAA8B,CAACpB,SAASqB,MAAM,CAACF,eAAe,EAAE;QAC3F,IAAME,SAAS;YACbC,WAAWlB,QAAQmB,GAAG,CAAC,SAACf;uBAAUA,MAAMM,QAAQ;;YAChDhB,SAAS,wCACJqB,gBAAgBrB,OAAO;gBAC1B0B,QAAQ3B;gBACR4B,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;;YAEpBC,mBAAmB9B,SAASqB,MAAM,CAACU,UAAU;QAC/C;QACA,IAAQT,YAA0CD,OAA1CC,WAAWxB,YAA+BuB,OAA/BvB,SAASgC,oBAAsBT,OAAtBS;QAC5B,IAAME,OAAO7B,GAAG8B,wBAAwB,CAACnC,WAAS,gBAAgB,GAAGoC,WAAW/B,GAAGgC,GAAG;QACtF,IAAMC,iBAAiB;YACrBC,WAAWf;YACXxB,SAAAA;YACAgC,mBAAAA;YACAE,MAAAA;YACAM,8BAA8BnC,GAAGoC,+BAA+B,CAAC;gBAAEjB,WAAAA;gBAAWxB,SAAAA;YAAQ;QACxF;QACA,IAAM0C,UAAUrC,GAAGsC,aAAa,CAACL;QACjC,IAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBrB,OAAO,CAAC+C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACrC,OAAO,CAAC,SAACuC;gBACxB,IAAIC,IAAAA,wBAAc,EAACD,MAAM,YAAYC,IAAAA,wBAAc,EAACD,MAAM,aAAaC,IAAAA,wBAAc,EAACD,MAAM,WAAW;oBACrG,IAAI;wBACF,IAAME,UAAUC,WAAE,CAACC,YAAY,CAACJ,MAAM;wBACtC,IAAMK,UAAUC,IAAAA,sCAAiB,EAACJ;wBAClC,IAAIG,YAAYH,SAAS;4BACvBC,WAAE,CAACI,aAAa,CAACP,MAAMK,SAAS;wBAClC;oBACF,EAAE,OAAOG,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAvD,SAAS,MAAM2C,IAAIE,YAAY;IACjC;AAEJ"}
@@ -3,4 +3,5 @@
3
3
  * Local to this package - contains only needed functions.
4
4
  */
5
5
  export declare function stringStartsWith(str: string, search: string, position?: number): boolean;
6
+ export declare function stringEndsWith(str: string, search: string, position?: number): boolean;
6
7
  export declare function stringReplaceAll(str: string, search: string, replace: string): string;
@@ -13,6 +13,18 @@ export function stringStartsWith(str, search, position) {
13
13
  position = position || 0;
14
14
  return str.indexOf(search, position) === position;
15
15
  }
16
+ /**
17
+ * String.prototype.endsWith wrapper for Node.js 0.8+
18
+ * - Uses native endsWith on Node 4.0+ / ES2015+
19
+ * - Falls back to lastIndexOf on Node 0.8-3.x
20
+ */ var hasEndsWith = typeof String.prototype.endsWith === 'function';
21
+ export function stringEndsWith(str, search, position) {
22
+ if (hasEndsWith) {
23
+ return str.endsWith(search, position);
24
+ }
25
+ var len = position === undefined ? str.length : position;
26
+ return str.lastIndexOf(search) === len - search.length;
27
+ }
16
28
  /**
17
29
  * String.prototype.replaceAll wrapper for Node.js 0.8+
18
30
  * - Uses native replaceAll on Node 15.0+ / ES2021+
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\n\n/**\n * String.prototype.startsWith wrapper for Node.js 0.8+\n * - Uses native startsWith on Node 4.0+ / ES2015+\n * - Falls back to indexOf on Node 0.8-3.x\n */\nvar hasStartsWith = typeof String.prototype.startsWith === 'function';\n\nexport function stringStartsWith(str: string, search: string, position?: number): boolean {\n if (hasStartsWith) {\n return str.startsWith(search, position);\n }\n position = position || 0;\n return str.indexOf(search, position) === position;\n}\n\n/**\n * String.prototype.replaceAll wrapper for Node.js 0.8+\n * - Uses native replaceAll on Node 15.0+ / ES2021+\n * - Falls back to regex replace on older versions\n */\n// biome-ignore lint/suspicious/noExplicitAny: Feature detection for ES2021 replaceAll\nvar hasReplaceAll = typeof (String.prototype as any).replaceAll === 'function';\n\nexport function stringReplaceAll(str: string, search: string, replace: string): string {\n if (hasReplaceAll) {\n // biome-ignore lint/suspicious/noExplicitAny: Using native replaceAll when available\n return (str as any).replaceAll(search, replace);\n }\n // Escape special regex characters\n var escaped = search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return str.replace(new RegExp(escaped, 'g'), replace);\n}\n"],"names":["hasStartsWith","String","prototype","startsWith","stringStartsWith","str","search","position","indexOf","hasReplaceAll","replaceAll","stringReplaceAll","replace","escaped","RegExp"],"mappings":"AAAA;;;CAGC,GAED;;;;CAIC,GACD,IAAIA,gBAAgB,OAAOC,OAAOC,SAAS,CAACC,UAAU,KAAK;AAE3D,OAAO,SAASC,iBAAiBC,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC7E,IAAIP,eAAe;QACjB,OAAOK,IAAIF,UAAU,CAACG,QAAQC;IAChC;IACAA,WAAWA,YAAY;IACvB,OAAOF,IAAIG,OAAO,CAACF,QAAQC,cAAcA;AAC3C;AAEA;;;;CAIC,GACD,sFAAsF;AACtF,IAAIE,gBAAgB,OAAO,AAACR,OAAOC,SAAS,CAASQ,UAAU,KAAK;AAEpE,OAAO,SAASC,iBAAiBN,GAAW,EAAEC,MAAc,EAAEM,OAAe;IAC3E,IAAIH,eAAe;QACjB,qFAAqF;QACrF,OAAO,AAACJ,IAAYK,UAAU,CAACJ,QAAQM;IACzC;IACA,kCAAkC;IAClC,IAAIC,UAAUP,OAAOM,OAAO,CAAC,uBAAuB;IACpD,OAAOP,IAAIO,OAAO,CAAC,IAAIE,OAAOD,SAAS,MAAMD;AAC/C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/compat.ts"],"sourcesContent":["/**\n * Compatibility Layer for Node.js 0.8+\n * Local to this package - contains only needed functions.\n */\n\n/**\n * String.prototype.startsWith wrapper for Node.js 0.8+\n * - Uses native startsWith on Node 4.0+ / ES2015+\n * - Falls back to indexOf on Node 0.8-3.x\n */\nvar hasStartsWith = typeof String.prototype.startsWith === 'function';\n\nexport function stringStartsWith(str: string, search: string, position?: number): boolean {\n if (hasStartsWith) {\n return str.startsWith(search, position);\n }\n position = position || 0;\n return str.indexOf(search, position) === position;\n}\n\n/**\n * String.prototype.endsWith wrapper for Node.js 0.8+\n * - Uses native endsWith on Node 4.0+ / ES2015+\n * - Falls back to lastIndexOf on Node 0.8-3.x\n */\nvar hasEndsWith = typeof String.prototype.endsWith === 'function';\n\nexport function stringEndsWith(str: string, search: string, position?: number): boolean {\n if (hasEndsWith) {\n return str.endsWith(search, position);\n }\n var len = position === undefined ? str.length : position;\n return str.lastIndexOf(search) === len - search.length;\n}\n\n/**\n * String.prototype.replaceAll wrapper for Node.js 0.8+\n * - Uses native replaceAll on Node 15.0+ / ES2021+\n * - Falls back to regex replace on older versions\n */\n// biome-ignore lint/suspicious/noExplicitAny: Feature detection for ES2021 replaceAll\nvar hasReplaceAll = typeof (String.prototype as any).replaceAll === 'function';\n\nexport function stringReplaceAll(str: string, search: string, replace: string): string {\n if (hasReplaceAll) {\n // biome-ignore lint/suspicious/noExplicitAny: Using native replaceAll when available\n return (str as any).replaceAll(search, replace);\n }\n // Escape special regex characters\n var escaped = search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return str.replace(new RegExp(escaped, 'g'), replace);\n}\n"],"names":["hasStartsWith","String","prototype","startsWith","stringStartsWith","str","search","position","indexOf","hasEndsWith","endsWith","stringEndsWith","len","undefined","length","lastIndexOf","hasReplaceAll","replaceAll","stringReplaceAll","replace","escaped","RegExp"],"mappings":"AAAA;;;CAGC,GAED;;;;CAIC,GACD,IAAIA,gBAAgB,OAAOC,OAAOC,SAAS,CAACC,UAAU,KAAK;AAE3D,OAAO,SAASC,iBAAiBC,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC7E,IAAIP,eAAe;QACjB,OAAOK,IAAIF,UAAU,CAACG,QAAQC;IAChC;IACAA,WAAWA,YAAY;IACvB,OAAOF,IAAIG,OAAO,CAACF,QAAQC,cAAcA;AAC3C;AAEA;;;;CAIC,GACD,IAAIE,cAAc,OAAOR,OAAOC,SAAS,CAACQ,QAAQ,KAAK;AAEvD,OAAO,SAASC,eAAeN,GAAW,EAAEC,MAAc,EAAEC,QAAiB;IAC3E,IAAIE,aAAa;QACf,OAAOJ,IAAIK,QAAQ,CAACJ,QAAQC;IAC9B;IACA,IAAIK,MAAML,aAAaM,YAAYR,IAAIS,MAAM,GAAGP;IAChD,OAAOF,IAAIU,WAAW,CAACT,YAAYM,MAAMN,OAAOQ,MAAM;AACxD;AAEA;;;;CAIC,GACD,sFAAsF;AACtF,IAAIE,gBAAgB,OAAO,AAACf,OAAOC,SAAS,CAASe,UAAU,KAAK;AAEpE,OAAO,SAASC,iBAAiBb,GAAW,EAAEC,MAAc,EAAEa,OAAe;IAC3E,IAAIH,eAAe;QACjB,qFAAqF;QACrF,OAAO,AAACX,IAAYY,UAAU,CAACX,QAAQa;IACzC;IACA,kCAAkC;IAClC,IAAIC,UAAUd,OAAOa,OAAO,CAAC,uBAAuB;IACpD,OAAOd,IAAIc,OAAO,CAAC,IAAIE,OAAOD,SAAS,MAAMD;AAC/C"}
@@ -12,8 +12,8 @@ function dispatch(version, contents, fileName, tsconfig) {
12
12
  return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);
13
13
  }
14
14
  export default function transformSync(contents, fileName, tsconfig) {
15
- if (typeof contents !== 'string') throw new Error('transformTypes: unexpected contents');
16
- if (typeof fileName !== 'string') throw new Error('transformTypes: unexpected fileName');
15
+ if (typeof contents !== 'string') throw new Error('transformSync: unexpected contents');
16
+ if (typeof fileName !== 'string') throw new Error('transformSync: unexpected fileName');
17
17
  if (!tsconfig) tsconfig = loadConfigSync(process.cwd());
18
18
  return dispatch(version, contents, fileName, tsconfig);
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport loadConfigSync from 'read-tsconfig-sync';\nimport url from 'url';\n\nimport type { TSConfig } from './types.ts';\n\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformSync.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nfunction dispatch(version, contents, fileName, tsconfig) {\n if (version === 'local') return _require(workerPath)(contents, fileName, tsconfig);\n return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);\n}\n\nimport type { Output } from '@swc/core';\nexport default function transformSync(contents: string, fileName: string, tsconfig?: TSConfig): Output {\n if (typeof contents !== 'string') throw new Error('transformTypes: unexpected contents');\n if (typeof fileName !== 'string') throw new Error('transformTypes: unexpected fileName');\n if (!tsconfig) tsconfig = loadConfigSync(process.cwd());\n return dispatch(version, contents, fileName, tsconfig);\n}\n"],"names":["path","loadConfigSync","url","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerPath","join","Module","_require","require","createRequire","dispatch","contents","fileName","tsconfig","transformSync","Error","cwd"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,oBAAoB,qBAAqB;AAChD,OAAOC,SAAS,MAAM;AAItB,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,MAAMM,YAAYT,KAAKU,OAAO,CAAC,OAAOC,eAAe,cAAcT,IAAIU,aAAa,CAAC,YAAYV,GAAG,IAAIS;AACxG,MAAME,aAAab,KAAKc,IAAI,CAACL,WAAW,MAAM,OAAO,WAAW;AAEhE,OAAOM,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYhB,GAAG,IAAIe;AAE1F,SAASE,SAASX,OAAO,EAAEY,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ;IACrD,IAAId,YAAY,SAAS,OAAOQ,SAASH,YAAYO,UAAUC,UAAUC;IACzE,OAAON,SAAS,qBAAqBR,SAASK,YAAYO,UAAUC,UAAUC;AAChF;AAGA,eAAe,SAASC,cAAcH,QAAgB,EAAEC,QAAgB,EAAEC,QAAmB;IAC3F,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAII,MAAM;IAClD,IAAI,OAAOH,aAAa,UAAU,MAAM,IAAIG,MAAM;IAClD,IAAI,CAACF,UAAUA,WAAWrB,eAAeG,QAAQqB,GAAG;IACpD,OAAON,SAASX,SAASY,UAAUC,UAAUC;AAC/C"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport loadConfigSync from 'read-tsconfig-sync';\nimport url from 'url';\n\nimport type { TSConfig } from './types.ts';\n\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformSync.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nfunction dispatch(version, contents, fileName, tsconfig) {\n if (version === 'local') return _require(workerPath)(contents, fileName, tsconfig);\n return _require('node-version-call')(version, workerPath, contents, fileName, tsconfig);\n}\n\nimport type { Output } from '@swc/core';\nexport default function transformSync(contents: string, fileName: string, tsconfig?: TSConfig): Output {\n if (typeof contents !== 'string') throw new Error('transformSync: unexpected contents');\n if (typeof fileName !== 'string') throw new Error('transformSync: unexpected fileName');\n if (!tsconfig) tsconfig = loadConfigSync(process.cwd());\n return dispatch(version, contents, fileName, tsconfig);\n}\n"],"names":["path","loadConfigSync","url","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerPath","join","Module","_require","require","createRequire","dispatch","contents","fileName","tsconfig","transformSync","Error","cwd"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,oBAAoB,qBAAqB;AAChD,OAAOC,SAAS,MAAM;AAItB,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,MAAMM,YAAYT,KAAKU,OAAO,CAAC,OAAOC,eAAe,cAAcT,IAAIU,aAAa,CAAC,YAAYV,GAAG,IAAIS;AACxG,MAAME,aAAab,KAAKc,IAAI,CAACL,WAAW,MAAM,OAAO,WAAW;AAEhE,OAAOM,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYhB,GAAG,IAAIe;AAE1F,SAASE,SAASX,OAAO,EAAEY,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ;IACrD,IAAId,YAAY,SAAS,OAAOQ,SAASH,YAAYO,UAAUC,UAAUC;IACzE,OAAON,SAAS,qBAAqBR,SAASK,YAAYO,UAAUC,UAAUC;AAChF;AAGA,eAAe,SAASC,cAAcH,QAAgB,EAAEC,QAAgB,EAAEC,QAAmB;IAC3F,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAII,MAAM;IAClD,IAAI,OAAOH,aAAa,UAAU,MAAM,IAAIG,MAAM;IAClD,IAAI,CAACF,UAAUA,WAAWrB,eAAeG,QAAQqB,GAAG;IACpD,OAAON,SAASX,SAASY,UAAUC,UAAUC;AAC/C"}
@@ -2,6 +2,7 @@ import fs from 'fs';
2
2
  import Iterator from 'fs-iterator';
3
3
  import Module from 'module';
4
4
  const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
5
+ import { stringEndsWith } from '../compat.js';
5
6
  import { typeFileRegEx } from '../constants.js';
6
7
  import createMatcher from '../createMatcher.js';
7
8
  import { rewriteExtensions } from '../lib/rewriteExtensions.js';
@@ -55,7 +56,7 @@ export default function transformTypesWorker(src, dest, options, callback) {
55
56
  // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037
56
57
  if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {
57
58
  res.emittedFiles.forEach((file)=>{
58
- if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {
59
+ if (stringEndsWith(file, '.d.ts') || stringEndsWith(file, '.d.cts') || stringEndsWith(file, '.d.mts')) {
59
60
  try {
60
61
  const content = fs.readFileSync(file, 'utf8');
61
62
  const updated = rewriteExtensions(content);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions.options,\n outDir: dest,\n noEmit: false,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["fs","Iterator","Module","_require","require","createRequire","url","typeFileRegEx","createMatcher","rewriteExtensions","transformTypesWorker","src","dest","options","callback","tsconfig","matcher","ts","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","endsWith","content","readFileSync","updated","writeFileSync","_err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,cAA8B,cAAc;AACnD,OAAOC,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,SAASG,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,mBAAmB,sBAAsB;AAChD,SAASC,iBAAiB,QAAQ,8BAA8B;AAIhE,eAAe,SAASC,qBAAqBC,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUR,cAAcO;IAC9B,MAAME,KAAKd,SAAS;IAEpB,MAAMe,UAAU,EAAE;IAClB,MAAMC,WAAW,IAAIlB,SAASU;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIjB,cAAckB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACR,QAAQK,MAAMK,QAAQ,GAAG;QAC9BR,QAAQS,IAAI,CAACN;IACf,GACA;QAAEO,aAAaC;IAAS,GACxB,CAACC;QACC,IAAIA,KAAK;YACPhB,SAASgB;YACT;QACF;QAEA,MAAMC,kBAAkBd,GAAGe,8BAA8B,CAACjB,SAASkB,MAAM,CAACF,eAAe,EAAE;QAC3F,MAAME,SAAS;YACbC,WAAWhB,QAAQiB,GAAG,CAAC,CAACd,QAAUA,MAAMK,QAAQ;YAChDb,SAAS;gBACP,GAAGkB,gBAAgBlB,OAAO;gBAC1BuB,QAAQxB;gBACRyB,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;YACpB;YACAC,mBAAmB3B,SAASkB,MAAM,CAACU,UAAU;QAC/C;QACA,MAAM,EAAET,SAAS,EAAErB,OAAO,EAAE6B,iBAAiB,EAAE,GAAGT;QAClD,MAAMW,OAAO3B,GAAG4B,wBAAwB,CAAChC,SAAS,gBAAgB,GAAGiC,WAAW7B,GAAG8B,GAAG;QACtF,MAAMC,iBAAiB;YACrBC,WAAWf;YACXrB;YACA6B;YACAE;YACAM,8BAA8BjC,GAAGkC,+BAA+B,CAAC;gBAAEjB;gBAAWrB;YAAQ;QACxF;QACA,MAAMuC,UAAUnC,GAAGoC,aAAa,CAACL;QACjC,MAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBlB,OAAO,CAAC4C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACpC,OAAO,CAAC,CAACsC;gBACxB,IAAIA,KAAKC,QAAQ,CAAC,YAAYD,KAAKC,QAAQ,CAAC,aAAaD,KAAKC,QAAQ,CAAC,WAAW;oBAChF,IAAI;wBACF,MAAMC,UAAU5D,GAAG6D,YAAY,CAACH,MAAM;wBACtC,MAAMI,UAAUrD,kBAAkBmD;wBAClC,IAAIE,YAAYF,SAAS;4BACvB5D,GAAG+D,aAAa,CAACL,MAAMI,SAAS;wBAClC;oBACF,EAAE,OAAOE,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAlD,SAAS,MAAMwC,IAAIE,YAAY;IACjC;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { stringEndsWith } from '../compat.ts';\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions.options,\n outDir: dest,\n noEmit: false,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (stringEndsWith(file, '.d.ts') || stringEndsWith(file, '.d.cts') || stringEndsWith(file, '.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["fs","Iterator","Module","_require","require","createRequire","url","stringEndsWith","typeFileRegEx","createMatcher","rewriteExtensions","transformTypesWorker","src","dest","options","callback","tsconfig","matcher","ts","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","content","readFileSync","updated","writeFileSync","_err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,cAA8B,cAAc;AACnD,OAAOC,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,SAASG,cAAc,QAAQ,eAAe;AAC9C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,mBAAmB,sBAAsB;AAChD,SAASC,iBAAiB,QAAQ,8BAA8B;AAIhE,eAAe,SAASC,qBAAqBC,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUR,cAAcO;IAC9B,MAAME,KAAKf,SAAS;IAEpB,MAAMgB,UAAU,EAAE;IAClB,MAAMC,WAAW,IAAInB,SAASW;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIjB,cAAckB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACR,QAAQK,MAAMK,QAAQ,GAAG;QAC9BR,QAAQS,IAAI,CAACN;IACf,GACA;QAAEO,aAAaC;IAAS,GACxB,CAACC;QACC,IAAIA,KAAK;YACPhB,SAASgB;YACT;QACF;QAEA,MAAMC,kBAAkBd,GAAGe,8BAA8B,CAACjB,SAASkB,MAAM,CAACF,eAAe,EAAE;QAC3F,MAAME,SAAS;YACbC,WAAWhB,QAAQiB,GAAG,CAAC,CAACd,QAAUA,MAAMK,QAAQ;YAChDb,SAAS;gBACP,GAAGkB,gBAAgBlB,OAAO;gBAC1BuB,QAAQxB;gBACRyB,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;YACpB;YACAC,mBAAmB3B,SAASkB,MAAM,CAACU,UAAU;QAC/C;QACA,MAAM,EAAET,SAAS,EAAErB,OAAO,EAAE6B,iBAAiB,EAAE,GAAGT;QAClD,MAAMW,OAAO3B,GAAG4B,wBAAwB,CAAChC,SAAS,gBAAgB,GAAGiC,WAAW7B,GAAG8B,GAAG;QACtF,MAAMC,iBAAiB;YACrBC,WAAWf;YACXrB;YACA6B;YACAE;YACAM,8BAA8BjC,GAAGkC,+BAA+B,CAAC;gBAAEjB;gBAAWrB;YAAQ;QACxF;QACA,MAAMuC,UAAUnC,GAAGoC,aAAa,CAACL;QACjC,MAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBlB,OAAO,CAAC4C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACpC,OAAO,CAAC,CAACsC;gBACxB,IAAIpD,eAAeoD,MAAM,YAAYpD,eAAeoD,MAAM,aAAapD,eAAeoD,MAAM,WAAW;oBACrG,IAAI;wBACF,MAAMC,UAAU5D,GAAG6D,YAAY,CAACF,MAAM;wBACtC,MAAMG,UAAUpD,kBAAkBkD;wBAClC,IAAIE,YAAYF,SAAS;4BACvB5D,GAAG+D,aAAa,CAACJ,MAAMG,SAAS;wBAClC;oBACF,EAAE,OAAOE,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAjD,SAAS,MAAMwC,IAAIE,YAAY;IACjC;AAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "2.7.0",
3
+ "version": "2.7.1",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",