@samchon/ts-patch 3.2.2-dev.20241204

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 (150) hide show
  1. package/CHANGELOG.md +268 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +348 -0
  4. package/actions/check.d.ts +11 -0
  5. package/actions/check.js +45 -0
  6. package/actions/check.js.map +1 -0
  7. package/actions/index.d.ts +5 -0
  8. package/actions/index.js +22 -0
  9. package/actions/index.js.map +1 -0
  10. package/actions/install.d.ts +5 -0
  11. package/actions/install.js +25 -0
  12. package/actions/install.js.map +1 -0
  13. package/actions/patch.d.ts +6 -0
  14. package/actions/patch.js +82 -0
  15. package/actions/patch.js.map +1 -0
  16. package/actions/uninstall.d.ts +5 -0
  17. package/actions/uninstall.js +26 -0
  18. package/actions/uninstall.js.map +1 -0
  19. package/actions/unpatch.d.ts +3 -0
  20. package/actions/unpatch.js +82 -0
  21. package/actions/unpatch.js.map +1 -0
  22. package/bin/ts-patch.d.ts +1 -0
  23. package/bin/ts-patch.js +33 -0
  24. package/bin/ts-patch.js.map +1 -0
  25. package/bin/tspc.d.ts +0 -0
  26. package/bin/tspc.js +14 -0
  27. package/bin/tspc.js.map +1 -0
  28. package/cli/cli.d.ts +14 -0
  29. package/cli/cli.js +96 -0
  30. package/cli/cli.js.map +1 -0
  31. package/cli/commands.d.ts +5 -0
  32. package/cli/commands.js +49 -0
  33. package/cli/commands.js.map +1 -0
  34. package/cli/help-menu.d.ts +1 -0
  35. package/cli/help-menu.js +43 -0
  36. package/cli/help-menu.js.map +1 -0
  37. package/cli/options.d.ts +14 -0
  38. package/cli/options.js +63 -0
  39. package/cli/options.js.map +1 -0
  40. package/compiler/package.json +4 -0
  41. package/compiler/tsc.js +19 -0
  42. package/compiler/tsserver.js +19 -0
  43. package/compiler/tsserverlibrary.js +19 -0
  44. package/compiler/typescript.js +19 -0
  45. package/config.d.ts +18 -0
  46. package/config.js +50 -0
  47. package/config.js.map +1 -0
  48. package/index.d.ts +4 -0
  49. package/index.js +29 -0
  50. package/index.js.map +1 -0
  51. package/module/get-live-module.d.ts +5 -0
  52. package/module/get-live-module.js +25 -0
  53. package/module/get-live-module.js.map +1 -0
  54. package/module/index.d.ts +4 -0
  55. package/module/index.js +21 -0
  56. package/module/index.js.map +1 -0
  57. package/module/module-file.d.ts +9 -0
  58. package/module/module-file.js +97 -0
  59. package/module/module-file.js.map +1 -0
  60. package/module/module-source.d.ts +15 -0
  61. package/module/module-source.js +35 -0
  62. package/module/module-source.js.map +1 -0
  63. package/module/source-section.d.ts +20 -0
  64. package/module/source-section.js +73 -0
  65. package/module/source-section.js.map +1 -0
  66. package/module/ts-module.d.ts +35 -0
  67. package/module/ts-module.js +100 -0
  68. package/module/ts-module.js.map +1 -0
  69. package/options.d.ts +19 -0
  70. package/options.js +32 -0
  71. package/options.js.map +1 -0
  72. package/package.json +107 -0
  73. package/patch/get-patched-source.d.ts +12 -0
  74. package/patch/get-patched-source.js +69 -0
  75. package/patch/get-patched-source.js.map +1 -0
  76. package/patch/patch-detail.d.ts +36 -0
  77. package/patch/patch-detail.js +67 -0
  78. package/patch/patch-detail.js.map +1 -0
  79. package/patch/patch-module.d.ts +5 -0
  80. package/patch/patch-module.js +182 -0
  81. package/patch/patch-module.js.map +1 -0
  82. package/patch/transformers/add-original-create-program.d.ts +3 -0
  83. package/patch/transformers/add-original-create-program.js +71 -0
  84. package/patch/transformers/add-original-create-program.js.map +1 -0
  85. package/patch/transformers/fix-ts-early-return.d.ts +2 -0
  86. package/patch/transformers/fix-ts-early-return.js +51 -0
  87. package/patch/transformers/fix-ts-early-return.js.map +1 -0
  88. package/patch/transformers/hook-tsc-exec.d.ts +2 -0
  89. package/patch/transformers/hook-tsc-exec.js +32 -0
  90. package/patch/transformers/hook-tsc-exec.js.map +1 -0
  91. package/patch/transformers/index.d.ts +6 -0
  92. package/patch/transformers/index.js +23 -0
  93. package/patch/transformers/index.js.map +1 -0
  94. package/patch/transformers/merge-statements.d.ts +2 -0
  95. package/patch/transformers/merge-statements.js +60 -0
  96. package/patch/transformers/merge-statements.js.map +1 -0
  97. package/patch/transformers/patch-create-program.d.ts +2 -0
  98. package/patch/transformers/patch-create-program.js +36 -0
  99. package/patch/transformers/patch-create-program.js.map +1 -0
  100. package/patch/transformers/patch-emitter.d.ts +2 -0
  101. package/patch/transformers/patch-emitter.js +44 -0
  102. package/patch/transformers/patch-emitter.js.map +1 -0
  103. package/plugin-types.d.ts +95 -0
  104. package/plugin-types.js +4 -0
  105. package/plugin-types.js.map +1 -0
  106. package/resources/module-patch.d.ts +50 -0
  107. package/resources/module-patch.js +609 -0
  108. package/slice/module-slice.d.ts +19 -0
  109. package/slice/module-slice.js +37 -0
  110. package/slice/module-slice.js.map +1 -0
  111. package/slice/ts54.d.ts +6 -0
  112. package/slice/ts54.js +70 -0
  113. package/slice/ts54.js.map +1 -0
  114. package/slice/ts55.d.ts +6 -0
  115. package/slice/ts55.js +70 -0
  116. package/slice/ts55.js.map +1 -0
  117. package/slice/ts552.d.ts +6 -0
  118. package/slice/ts552.js +70 -0
  119. package/slice/ts552.js.map +1 -0
  120. package/system/cache.d.ts +3 -0
  121. package/system/cache.js +69 -0
  122. package/system/cache.js.map +1 -0
  123. package/system/errors.d.ts +35 -0
  124. package/system/errors.js +82 -0
  125. package/system/errors.js.map +1 -0
  126. package/system/index.d.ts +4 -0
  127. package/system/index.js +21 -0
  128. package/system/index.js.map +1 -0
  129. package/system/logger.d.ts +7 -0
  130. package/system/logger.js +48 -0
  131. package/system/logger.js.map +1 -0
  132. package/system/types.d.ts +4 -0
  133. package/system/types.js +7 -0
  134. package/system/types.js.map +1 -0
  135. package/ts-package.d.ts +18 -0
  136. package/ts-package.js +73 -0
  137. package/ts-package.js.map +1 -0
  138. package/tsconfig.tsbuildinfo +1 -0
  139. package/utils/file-utils.d.ts +9 -0
  140. package/utils/file-utils.js +98 -0
  141. package/utils/file-utils.js.map +1 -0
  142. package/utils/find-cache-dir.d.ts +23 -0
  143. package/utils/find-cache-dir.js +93 -0
  144. package/utils/find-cache-dir.js.map +1 -0
  145. package/utils/general.d.ts +5 -0
  146. package/utils/general.js +16 -0
  147. package/utils/general.js.map +1 -0
  148. package/utils/index.d.ts +3 -0
  149. package/utils/index.js +20 -0
  150. package/utils/index.js.map +1 -0
@@ -0,0 +1,45 @@
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
+ exports.check = check;
7
+ const system_1 = require("../system");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ts_package_1 = require("../ts-package");
10
+ const module_1 = require("../module");
11
+ const options_1 = require("../options");
12
+ function check(moduleNameOrNames, opts) {
13
+ let targetModuleNames = moduleNameOrNames ? [moduleNameOrNames].flat() : undefined;
14
+ const options = (0, options_1.getInstallerOptions)(opts);
15
+ const { logger: log, dir } = options;
16
+ /* Load Package */
17
+ const tsPackage = (0, ts_package_1.getTsPackage)(dir);
18
+ const { packageDir, version } = tsPackage;
19
+ targetModuleNames ?? (targetModuleNames = tsPackage.moduleNames);
20
+ /* Check Modules */
21
+ log(`Checking TypeScript ${chalk_1.default.blueBright(`v${version}`)} installation in ${chalk_1.default.blueBright(packageDir)}\r\n`);
22
+ let res = {};
23
+ for (const moduleName of targetModuleNames) {
24
+ /* Validate */
25
+ if (!tsPackage.moduleNames.includes(moduleName))
26
+ throw new system_1.PatchError(`${moduleName} is not a valid TypeScript module in ${packageDir}`);
27
+ /* Report */
28
+ const tsModule = (0, module_1.getTsModule)(tsPackage, moduleName, { skipCache: options.skipCache });
29
+ const { patchDetail } = tsModule.moduleFile;
30
+ if (patchDetail !== undefined) {
31
+ const { isOutdated } = patchDetail;
32
+ log(['+',
33
+ `${chalk_1.default.blueBright(moduleName)} is patched with ts-patch version ` +
34
+ `${chalk_1.default[isOutdated ? 'redBright' : 'blueBright'](patchDetail.tspVersion)} ${isOutdated ? '(out of date)' : ''}`
35
+ ]);
36
+ }
37
+ else
38
+ log(['-', `${chalk_1.default.blueBright(moduleName)} is not patched.`]);
39
+ res[moduleName] = patchDetail;
40
+ log('', system_1.LogLevel.verbose);
41
+ }
42
+ return res;
43
+ }
44
+ // endregion
45
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../projects/core/src/actions/check.ts"],"names":[],"mappings":";;;;;AA4BA,sBAuCC;AAnED,sCAAiD;AACjD,kDAA0B;AAC1B,8CAA6C;AAE7C,sCAAwC;AACxC,wCAAmE;AAuBnE,SAAgB,KAAK,CAAC,iBAAqC,EAAE,IAAgC;IAC3F,IAAI,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAE,iBAAiB,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAErC,kBAAkB;IAClB,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAG1C,iBAAiB,KAAjB,iBAAiB,GAAK,SAAS,CAAC,WAAW,EAAC;IAE5C,mBAAmB;IACnB,GAAG,CAAC,uBAAuB,eAAK,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,oBAAoB,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAElH,IAAI,GAAG,GAAgB,EAAE,CAAC;IAC1B,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC3C,cAAc;QACd,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC7C,MAAM,IAAI,mBAAU,CAAC,GAAG,UAAU,wCAAwC,UAAU,EAAE,CAAC,CAAC;QAE1F,YAAY;QACZ,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;YACnC,GAAG,CAAC,CAAE,GAAG;gBACP,GAAG,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,oCAAoC;oBACnE,GAAG,eAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE;aACjH,CAAC,CAAC;QACL,CAAC;;YAAM,GAAG,CAAC,CAAE,GAAG,EAAE,GAAG,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAE,CAAC,CAAC;QAEvE,GAAG,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QAE9B,GAAG,CAAC,EAAE,EAAE,iBAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,YAAY"}
@@ -0,0 +1,5 @@
1
+ export * from './patch';
2
+ export * from './unpatch';
3
+ export * from './check';
4
+ export * from './install';
5
+ export * from './uninstall';
@@ -0,0 +1,22 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./patch"), exports);
18
+ __exportStar(require("./unpatch"), exports);
19
+ __exportStar(require("./check"), exports);
20
+ __exportStar(require("./install"), exports);
21
+ __exportStar(require("./uninstall"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/core/src/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,4CAAyB;AACzB,0CAAuB;AACvB,4CAAyB;AACzB,8CAA2B"}
@@ -0,0 +1,5 @@
1
+ import { InstallerOptions } from '..';
2
+ /**
3
+ * Patch TypeScript modules
4
+ */
5
+ export declare function install(opts?: Partial<InstallerOptions>): boolean;
@@ -0,0 +1,25 @@
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
+ exports.install = install;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const __1 = require("..");
9
+ const config_1 = require("../config");
10
+ /* ****************************************************************************************************************** */
11
+ // region: Utils
12
+ /* ****************************************************************************************************************** */
13
+ /**
14
+ * Patch TypeScript modules
15
+ */
16
+ function install(opts) {
17
+ const options = (0, __1.getInstallerOptions)(opts);
18
+ const { logger: log } = options;
19
+ const ret = (0, __1.patch)(config_1.defaultInstallLibraries, options);
20
+ if (ret)
21
+ log(['+', chalk_1.default.green(`ts-patch installed!`)]);
22
+ return ret;
23
+ }
24
+ // endregion
25
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../projects/core/src/actions/install.ts"],"names":[],"mappings":";;;;;AAYA,0BAQC;AApBD,kDAA0B;AAC1B,0BAAkE;AAClE,sCAAoD;AAGpD,wHAAwH;AACxH,gBAAgB;AAChB,wHAAwH;AAExH;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAgC;IACtD,MAAM,OAAO,GAAG,IAAA,uBAAmB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,MAAM,GAAG,GAAG,IAAA,SAAK,EAAC,gCAAuB,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,GAAG;QAAE,GAAG,CAAC,CAAE,GAAG,EAAE,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAE,CAAC,CAAC;IAE1D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,YAAY"}
@@ -0,0 +1,6 @@
1
+ import { InstallerOptions } from '../options';
2
+ /**
3
+ * Patch a TypeScript module
4
+ */
5
+ export declare function patch(moduleName: string, opts?: Partial<InstallerOptions>): boolean;
6
+ export declare function patch(moduleNames: string[], opts?: Partial<InstallerOptions>): boolean;
@@ -0,0 +1,82 @@
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
+ exports.patch = patch;
7
+ const system_1 = require("../system");
8
+ const ts_package_1 = require("../ts-package");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const module_1 = require("../module");
11
+ const path_1 = __importDefault(require("path"));
12
+ const options_1 = require("../options");
13
+ const utils_1 = require("../utils");
14
+ const get_patched_source_1 = require("../patch/get-patched-source");
15
+ const fs_1 = require("fs");
16
+ function patch(moduleNameOrNames, opts) {
17
+ const targetModuleNames = [moduleNameOrNames].flat();
18
+ if (!targetModuleNames.length)
19
+ throw new system_1.PatchError(`Must provide at least one module name to patch`);
20
+ const options = (0, options_1.getInstallerOptions)(opts);
21
+ const { logger: log, dir, skipCache } = options;
22
+ /* Load Package */
23
+ const tsPackage = (0, ts_package_1.getTsPackage)(dir);
24
+ /* Get modules to patch and patch info */
25
+ const moduleFiles = targetModuleNames
26
+ .filter(m => (0, fs_1.existsSync)(tsPackage.getModulePath(m)))
27
+ .map(m => [m, (0, module_1.getModuleFile)(tsPackage.getModulePath(m))]);
28
+ if (!moduleFiles.length)
29
+ throw new system_1.PatchError(`No valid modules found to patch`);
30
+ /* Determine files not already patched or outdated */
31
+ const patchableFiles = moduleFiles.filter(entry => {
32
+ const [moduleName, moduleFile] = entry;
33
+ if (!moduleFile.patchDetail || moduleFile.patchDetail.isOutdated)
34
+ return true;
35
+ else {
36
+ log(['!',
37
+ `${chalk_1.default.blueBright(moduleName)} is already patched with the latest version. For details, run: ` +
38
+ chalk_1.default.bgBlackBright('ts-patch check')
39
+ ]);
40
+ return false;
41
+ }
42
+ });
43
+ if (!patchableFiles.length)
44
+ return true;
45
+ /* Patch modules */
46
+ const failedModulePaths = [];
47
+ for (let entry of patchableFiles) {
48
+ /* Load Module */
49
+ const { 1: moduleFile } = entry;
50
+ const tsModule = (0, module_1.getTsModule)(tsPackage, moduleFile, { skipCache: true });
51
+ const { moduleName, modulePath } = tsModule;
52
+ log(['~', `Patching ${chalk_1.default.blueBright(moduleName)} in ${chalk_1.default.blueBright(path_1.default.dirname(modulePath))}`], system_1.LogLevel.verbose);
53
+ try {
54
+ const { js, dts, loadedFromCache } = (0, get_patched_source_1.getPatchedSource)(tsModule, { skipCache, log });
55
+ /* Write Patched Module */
56
+ log([
57
+ '~',
58
+ `Writing patched ${chalk_1.default.blueBright(moduleName)} to ` +
59
+ `${chalk_1.default.blueBright(modulePath)}${loadedFromCache ? ' (cached)' : ''}`
60
+ ], system_1.LogLevel.verbose);
61
+ (0, utils_1.writeFileWithLock)(tsModule.modulePath, js);
62
+ if (dts)
63
+ (0, utils_1.writeFileWithLock)(tsModule.dtsPath, dts);
64
+ log(['+', chalk_1.default.green(`Successfully patched ${chalk_1.default.bold.yellow(moduleName)}.\r\n`)], system_1.LogLevel.verbose);
65
+ }
66
+ catch (e) {
67
+ if (e instanceof system_1.TspError || options.logLevel >= system_1.LogLevel.verbose)
68
+ log(['!', e.message]);
69
+ failedModulePaths.push(tsModule.modulePath);
70
+ }
71
+ }
72
+ if (failedModulePaths.length > 1) {
73
+ log(['!',
74
+ `Some files can't be patched! You can run again with --verbose to get specific error detail. The following files are unable to be ` +
75
+ `patched:\n - ${failedModulePaths.join('\n - ')}`
76
+ ]);
77
+ return false;
78
+ }
79
+ return true;
80
+ }
81
+ // endregion
82
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../projects/core/src/actions/patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { InstallerOptions } from "../options";
2
+ /**
3
+ * Remove patches from TypeScript modules
4
+ */
5
+ export declare function uninstall(opts?: Partial<InstallerOptions>): boolean;
@@ -0,0 +1,26 @@
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
+ exports.uninstall = uninstall;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const config_1 = require("../config");
9
+ const unpatch_1 = require("./unpatch");
10
+ const options_1 = require("../options");
11
+ /* ****************************************************************************************************************** */
12
+ // region: Utils
13
+ /* ****************************************************************************************************************** */
14
+ /**
15
+ * Remove patches from TypeScript modules
16
+ */
17
+ function uninstall(opts) {
18
+ const options = (0, options_1.getInstallerOptions)(opts);
19
+ const { logger: log } = options;
20
+ const ret = (0, unpatch_1.unpatch)(config_1.defaultInstallLibraries, opts);
21
+ if (ret)
22
+ log(['-', chalk_1.default.green(`ts-patch removed!`)]);
23
+ return ret;
24
+ }
25
+ // endregion
26
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../projects/core/src/actions/uninstall.ts"],"names":[],"mappings":";;;;;AAaA,8BAQC;AArBD,kDAA0B;AAC1B,sCAAoD;AACpD,uCAAoC;AACpC,wCAAmE;AAGnE,wHAAwH;AACxH,gBAAgB;AAChB,wHAAwH;AAExH;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAgC;IACxD,MAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEhC,MAAM,GAAG,GAAG,IAAA,iBAAO,EAAC,gCAAuB,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,GAAG;QAAE,GAAG,CAAC,CAAE,GAAG,EAAE,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAE,CAAC,CAAC;IAExD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,YAAY"}
@@ -0,0 +1,3 @@
1
+ import { InstallerOptions } from '../options';
2
+ export declare function unpatch(moduleName: string, opts?: Partial<InstallerOptions>): boolean;
3
+ export declare function unpatch(moduleNames: string[], opts?: Partial<InstallerOptions>): boolean;
@@ -0,0 +1,82 @@
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
+ exports.unpatch = unpatch;
7
+ const system_1 = require("../system");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const ts_package_1 = require("../ts-package");
11
+ const module_1 = require("../module");
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const options_1 = require("../options");
14
+ const utils_1 = require("../utils");
15
+ function unpatch(moduleNameOrNames, opts) {
16
+ let res = false;
17
+ const targetModuleNames = [moduleNameOrNames].flat();
18
+ if (!targetModuleNames.length)
19
+ throw new system_1.PatchError(`Must provide at least one module name to patch`);
20
+ const options = (0, options_1.getInstallerOptions)(opts);
21
+ const { logger: log, dir } = options;
22
+ /* Load Package */
23
+ const tsPackage = (0, ts_package_1.getTsPackage)(dir);
24
+ /* Get modules to patch and patch info */
25
+ const moduleFiles = targetModuleNames.map(m => [m, (0, module_1.getModuleFile)(tsPackage.getModulePath(m))]);
26
+ /* Determine patched files */
27
+ const unpatchableFiles = moduleFiles.filter(entry => {
28
+ const [moduleName, moduleFile] = entry;
29
+ if (moduleFile.patchDetail)
30
+ return true;
31
+ else {
32
+ log(['!', `${chalk_1.default.blueBright(moduleName)} is not patched. For details, run: ` + chalk_1.default.bgBlackBright('ts-patch check')]);
33
+ return false;
34
+ }
35
+ });
36
+ /* Restore files */
37
+ const errors = {};
38
+ for (const entry of unpatchableFiles) {
39
+ /* Load Module */
40
+ const { 1: moduleFile } = entry;
41
+ const tsModule = (0, module_1.getTsModule)(tsPackage, moduleFile, { skipCache: true });
42
+ try {
43
+ /* Get Backups */
44
+ const backupPaths = [];
45
+ backupPaths.push(tsModule.backupCachePaths.js);
46
+ if (tsModule.backupCachePaths.dts)
47
+ backupPaths.push(tsModule.backupCachePaths.dts);
48
+ const baseNames = backupPaths.map(p => path_1.default.basename(p)).join(' & ');
49
+ log([
50
+ '~',
51
+ `Restoring ${chalk_1.default.blueBright(baseNames)} in ${chalk_1.default.blueBright(path_1.default.dirname(tsPackage.libDir))}`
52
+ ], system_1.LogLevel.verbose);
53
+ /* Restore files */
54
+ for (const backupPath of backupPaths) {
55
+ if (!fs_1.default.existsSync(backupPath))
56
+ throw new Error(`Cannot find backup file: ${backupPath}. Try reinstalling typescript.`);
57
+ const moduleDir = path_1.default.dirname(tsModule.modulePath);
58
+ const destPath = path_1.default.join(moduleDir, path_1.default.basename(backupPath));
59
+ (0, utils_1.copyFileWithLock)(backupPath, destPath);
60
+ }
61
+ log(['+', chalk_1.default.green(`Successfully restored ${chalk_1.default.bold.yellow(baseNames)}.\r\n`)], system_1.LogLevel.verbose);
62
+ }
63
+ catch (e) {
64
+ errors[tsModule.moduleName] = e;
65
+ }
66
+ }
67
+ /* Handle errors */
68
+ if (Object.keys(errors).length > 0) {
69
+ Object.values(errors).forEach(e => {
70
+ log(['!', e.message], system_1.LogLevel.verbose);
71
+ });
72
+ log('');
73
+ throw new system_1.RestoreError(`[${Object.keys(errors).join(', ')}]`, 'Try reinstalling typescript.' +
74
+ (options.logLevel < system_1.LogLevel.verbose ? ' (Or, run uninstall again with --verbose for specific error detail)' : ''));
75
+ }
76
+ else {
77
+ res = true;
78
+ }
79
+ return res;
80
+ }
81
+ // endregion
82
+ //# sourceMappingURL=unpatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpatch.js","sourceRoot":"","sources":["../../../projects/core/src/actions/unpatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+
3
+ "use strict";
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ const cliModule = __importStar(require("../cli/cli"));
29
+ /* ****************************************************************************************************************** *
30
+ * Entry
31
+ * ****************************************************************************************************************** */
32
+ cliModule.run();
33
+ //# sourceMappingURL=ts-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-patch.js","sourceRoot":"","sources":["../../../projects/core/src/bin/ts-patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAuC;AAEvC;;wHAEwH;AAExH,SAAS,CAAC,GAAG,EAAE,CAAC"}
package/bin/tspc.d.ts ADDED
File without changes
package/bin/tspc.js ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+
3
+ "use strict";
4
+ /* ****************************************************************************************************************** *
5
+ * Entry
6
+ * ****************************************************************************************************************** */
7
+ // Run if main module cli
8
+ if (require.main === module) {
9
+ require('../compiler/tsc');
10
+ }
11
+ else {
12
+ throw new Error('tspc must be run as a CLI');
13
+ }
14
+ //# sourceMappingURL=tspc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tspc.js","sourceRoot":"","sources":["../../../projects/core/src/bin/tspc.ts"],"names":[],"mappings":";AAEA;;wHAEwH;AAExH,yBAAyB;AACzB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC7B,CAAC;KAAM,CAAC;IACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC"}
package/cli/cli.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import minimist from 'minimist';
2
+ export type CliConfig = Record<string, {
3
+ short?: string;
4
+ caption: string;
5
+ paramCaption?: string;
6
+ inverse?: boolean;
7
+ }>;
8
+ export declare function run(opt?: {
9
+ cmdArgs?: string;
10
+ }): {
11
+ cmd: string | undefined;
12
+ args: minimist.ParsedArgs;
13
+ options: import("..").InstallerOptions;
14
+ };
package/cli/cli.js ADDED
@@ -0,0 +1,96 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.run = run;
30
+ const minimist_1 = __importDefault(require("minimist"));
31
+ const system_1 = require("../system");
32
+ const ts_package_1 = require("../ts-package");
33
+ const chalk_1 = __importDefault(require("chalk"));
34
+ const actions = __importStar(require("../actions"));
35
+ const options_1 = require("./options");
36
+ const commands_1 = require("./commands");
37
+ const help_menu_1 = require("./help-menu");
38
+ const config_1 = require("../config");
39
+ const fs_1 = __importDefault(require("fs"));
40
+ // endregion
41
+ /* ****************************************************************************************************************** */
42
+ // region: Utils
43
+ /* ****************************************************************************************************************** */
44
+ function run(opt) {
45
+ /* Parse Input */
46
+ const args = (0, minimist_1.default)(opt?.cmdArgs?.split(' ') ?? process.argv.slice(2));
47
+ const cliOptions = (0, options_1.getCliOptions)(args);
48
+ const cmd = (0, commands_1.getCliCommand)(args);
49
+ /* Setup */
50
+ const options = (0, options_1.getInstallerOptionsFromCliOptions)(cliOptions);
51
+ const log = (0, system_1.createLogger)(options.logLevel, options.useColor, options.silent);
52
+ try {
53
+ /* Handle commands */
54
+ (() => {
55
+ switch (cmd) {
56
+ case 'help':
57
+ return log((0, help_menu_1.getHelpMenu)(), system_1.LogLevel.system);
58
+ case 'version':
59
+ const { version: tsVersion, packageDir } = (0, ts_package_1.getTsPackage)(options.dir);
60
+ return log('\r\n' +
61
+ chalk_1.default.bold.blue('ts-patch: ') + config_1.tspPackageJSON.version + '\r\n' +
62
+ chalk_1.default.bold.blue('typescript: ') + tsVersion + chalk_1.default.gray(` [${packageDir}]`), system_1.LogLevel.system);
63
+ case 'install':
64
+ return actions.install(options);
65
+ case 'uninstall':
66
+ return actions.uninstall(options);
67
+ case 'patch':
68
+ return actions.patch(args._.slice(1).join(' '), options);
69
+ case 'unpatch':
70
+ return actions.unpatch(args._.slice(1).join(' '), options);
71
+ case 'check':
72
+ return actions.check(undefined, options);
73
+ case 'clear-cache':
74
+ const cacheRoot = (0, system_1.getCacheRoot)();
75
+ /* Clear dir */
76
+ fs_1.default.rmSync(cacheRoot, { recursive: true, force: true });
77
+ /* Recreate Dirs */
78
+ (0, system_1.getCacheRoot)();
79
+ (0, system_1.getLockFilePath)('');
80
+ return log(['+', 'Cleared cache & lock-files'], system_1.LogLevel.system);
81
+ default:
82
+ log(['!', 'Invalid command. Try ts-patch /? for more info'], system_1.LogLevel.system);
83
+ }
84
+ })();
85
+ }
86
+ catch (e) {
87
+ log([
88
+ '!',
89
+ chalk_1.default.bold.yellow(e.name && (e.name !== 'Error') ? `[${e.name}]: ` : 'Error: ') + chalk_1.default.red(e.message)
90
+ ], system_1.LogLevel.system);
91
+ }
92
+ // Output for analysis by tests
93
+ return ({ cmd, args, options });
94
+ }
95
+ // endregion
96
+ //# sourceMappingURL=cli.js.map
package/cli/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../projects/core/src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import minimist from 'minimist';
2
+ import type { CliConfig } from './cli';
3
+ /** @internal */
4
+ export declare const cliCommandsConfig: CliConfig;
5
+ export declare function getCliCommand(args: minimist.ParsedArgs): string | undefined;
@@ -0,0 +1,49 @@
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
+ exports.cliCommandsConfig = void 0;
7
+ exports.getCliCommand = getCliCommand;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ /* ****************************************************************************************************************** */
10
+ // region: Config
11
+ /* ****************************************************************************************************************** */
12
+ /** @internal */
13
+ exports.cliCommandsConfig = {
14
+ install: { short: 'i', caption: `Installs ts-patch (to main libraries)` },
15
+ uninstall: { short: 'u', caption: 'Restores original typescript files' },
16
+ check: {
17
+ short: 'c', caption: `Check patch status (use with ${chalk_1.default.cyanBright('--dir')} to specify TS package location)`
18
+ },
19
+ patch: {
20
+ short: void 0, paramCaption: '<module_file> | <glob>', caption: 'Patch specific module(s) ' + chalk_1.default.yellow('(advanced)')
21
+ },
22
+ unpatch: {
23
+ short: void 0, paramCaption: '<module_file> | <glob>', caption: 'Un-patch specific module(s) ' + chalk_1.default.yellow('(advanced)')
24
+ },
25
+ 'clear-cache': { caption: 'Clears cache and lock-files' },
26
+ version: { short: 'v', caption: 'Show version' },
27
+ help: { short: '/?', caption: 'Show help menu' },
28
+ };
29
+ // endregion
30
+ /* ****************************************************************************************************************** */
31
+ // region: Utils
32
+ /* ****************************************************************************************************************** */
33
+ function getCliCommand(args) {
34
+ let cmd = args._[0] ? args._[0].toLowerCase() : void 0;
35
+ /* Handle special cases */
36
+ if ((args.v) && (!cmd))
37
+ return 'version';
38
+ if (args.h)
39
+ return 'help';
40
+ if (!cmd)
41
+ return cmd;
42
+ /* Get long command */
43
+ cmd = Object
44
+ .entries(exports.cliCommandsConfig)
45
+ .find(([long, { short }]) => long === cmd || short === cmd)?.[0];
46
+ return cmd;
47
+ }
48
+ // endregion
49
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../projects/core/src/cli/commands.ts"],"names":[],"mappings":";;;;;;AAqCA,sCAeC;AApDD,kDAA0B;AAK1B,wHAAwH;AACxH,iBAAiB;AACjB,wHAAwH;AAExH,gBAAgB;AACH,QAAA,iBAAiB,GAAc;IAC1C,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,uCAAuC,EAAE;IACzE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACxE,KAAK,EAAE;QACL,KAAK,EAAE,GAAG,EAAE,OAAO,EACjB,gCAAgC,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,kCAAkC;KAC9F;IACD,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAC5D,2BAA2B,GAAG,eAAK,CAAC,MAAM,CAAC,YAAY,CAAC;KAC3D;IACD,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAC5D,8BAA8B,GAAG,eAAK,CAAC,MAAM,CAAC,YAAY,CAAC;KAC9D;IACD,aAAa,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE;IACzD,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE;IAChD,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;CACjD,CAAC;AAEF,YAAY;AAGZ,wHAAwH;AACxH,gBAAgB;AAChB,wHAAwH;AAExH,SAAgB,aAAa,CAAC,IAAyB;IACrD,IAAI,GAAG,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE3E,0BAA0B;IAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IAErB,sBAAsB;IACtB,GAAG,GAAG,MAAM;SACT,OAAO,CAAC,yBAAiB,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAE,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,YAAY"}
@@ -0,0 +1 @@
1
+ export declare function getHelpMenu(): string;