@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.
- package/CHANGELOG.md +268 -0
- package/LICENSE.md +13 -0
- package/README.md +348 -0
- package/actions/check.d.ts +11 -0
- package/actions/check.js +45 -0
- package/actions/check.js.map +1 -0
- package/actions/index.d.ts +5 -0
- package/actions/index.js +22 -0
- package/actions/index.js.map +1 -0
- package/actions/install.d.ts +5 -0
- package/actions/install.js +25 -0
- package/actions/install.js.map +1 -0
- package/actions/patch.d.ts +6 -0
- package/actions/patch.js +82 -0
- package/actions/patch.js.map +1 -0
- package/actions/uninstall.d.ts +5 -0
- package/actions/uninstall.js +26 -0
- package/actions/uninstall.js.map +1 -0
- package/actions/unpatch.d.ts +3 -0
- package/actions/unpatch.js +82 -0
- package/actions/unpatch.js.map +1 -0
- package/bin/ts-patch.d.ts +1 -0
- package/bin/ts-patch.js +33 -0
- package/bin/ts-patch.js.map +1 -0
- package/bin/tspc.d.ts +0 -0
- package/bin/tspc.js +14 -0
- package/bin/tspc.js.map +1 -0
- package/cli/cli.d.ts +14 -0
- package/cli/cli.js +96 -0
- package/cli/cli.js.map +1 -0
- package/cli/commands.d.ts +5 -0
- package/cli/commands.js +49 -0
- package/cli/commands.js.map +1 -0
- package/cli/help-menu.d.ts +1 -0
- package/cli/help-menu.js +43 -0
- package/cli/help-menu.js.map +1 -0
- package/cli/options.d.ts +14 -0
- package/cli/options.js +63 -0
- package/cli/options.js.map +1 -0
- package/compiler/package.json +4 -0
- package/compiler/tsc.js +19 -0
- package/compiler/tsserver.js +19 -0
- package/compiler/tsserverlibrary.js +19 -0
- package/compiler/typescript.js +19 -0
- package/config.d.ts +18 -0
- package/config.js +50 -0
- package/config.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.js +29 -0
- package/index.js.map +1 -0
- package/module/get-live-module.d.ts +5 -0
- package/module/get-live-module.js +25 -0
- package/module/get-live-module.js.map +1 -0
- package/module/index.d.ts +4 -0
- package/module/index.js +21 -0
- package/module/index.js.map +1 -0
- package/module/module-file.d.ts +9 -0
- package/module/module-file.js +97 -0
- package/module/module-file.js.map +1 -0
- package/module/module-source.d.ts +15 -0
- package/module/module-source.js +35 -0
- package/module/module-source.js.map +1 -0
- package/module/source-section.d.ts +20 -0
- package/module/source-section.js +73 -0
- package/module/source-section.js.map +1 -0
- package/module/ts-module.d.ts +35 -0
- package/module/ts-module.js +100 -0
- package/module/ts-module.js.map +1 -0
- package/options.d.ts +19 -0
- package/options.js +32 -0
- package/options.js.map +1 -0
- package/package.json +107 -0
- package/patch/get-patched-source.d.ts +12 -0
- package/patch/get-patched-source.js +69 -0
- package/patch/get-patched-source.js.map +1 -0
- package/patch/patch-detail.d.ts +36 -0
- package/patch/patch-detail.js +67 -0
- package/patch/patch-detail.js.map +1 -0
- package/patch/patch-module.d.ts +5 -0
- package/patch/patch-module.js +182 -0
- package/patch/patch-module.js.map +1 -0
- package/patch/transformers/add-original-create-program.d.ts +3 -0
- package/patch/transformers/add-original-create-program.js +71 -0
- package/patch/transformers/add-original-create-program.js.map +1 -0
- package/patch/transformers/fix-ts-early-return.d.ts +2 -0
- package/patch/transformers/fix-ts-early-return.js +51 -0
- package/patch/transformers/fix-ts-early-return.js.map +1 -0
- package/patch/transformers/hook-tsc-exec.d.ts +2 -0
- package/patch/transformers/hook-tsc-exec.js +32 -0
- package/patch/transformers/hook-tsc-exec.js.map +1 -0
- package/patch/transformers/index.d.ts +6 -0
- package/patch/transformers/index.js +23 -0
- package/patch/transformers/index.js.map +1 -0
- package/patch/transformers/merge-statements.d.ts +2 -0
- package/patch/transformers/merge-statements.js +60 -0
- package/patch/transformers/merge-statements.js.map +1 -0
- package/patch/transformers/patch-create-program.d.ts +2 -0
- package/patch/transformers/patch-create-program.js +36 -0
- package/patch/transformers/patch-create-program.js.map +1 -0
- package/patch/transformers/patch-emitter.d.ts +2 -0
- package/patch/transformers/patch-emitter.js +44 -0
- package/patch/transformers/patch-emitter.js.map +1 -0
- package/plugin-types.d.ts +95 -0
- package/plugin-types.js +4 -0
- package/plugin-types.js.map +1 -0
- package/resources/module-patch.d.ts +50 -0
- package/resources/module-patch.js +609 -0
- package/slice/module-slice.d.ts +19 -0
- package/slice/module-slice.js +37 -0
- package/slice/module-slice.js.map +1 -0
- package/slice/ts54.d.ts +6 -0
- package/slice/ts54.js +70 -0
- package/slice/ts54.js.map +1 -0
- package/slice/ts55.d.ts +6 -0
- package/slice/ts55.js +70 -0
- package/slice/ts55.js.map +1 -0
- package/slice/ts552.d.ts +6 -0
- package/slice/ts552.js +70 -0
- package/slice/ts552.js.map +1 -0
- package/system/cache.d.ts +3 -0
- package/system/cache.js +69 -0
- package/system/cache.js.map +1 -0
- package/system/errors.d.ts +35 -0
- package/system/errors.js +82 -0
- package/system/errors.js.map +1 -0
- package/system/index.d.ts +4 -0
- package/system/index.js +21 -0
- package/system/index.js.map +1 -0
- package/system/logger.d.ts +7 -0
- package/system/logger.js +48 -0
- package/system/logger.js.map +1 -0
- package/system/types.d.ts +4 -0
- package/system/types.js +7 -0
- package/system/types.js.map +1 -0
- package/ts-package.d.ts +18 -0
- package/ts-package.js +73 -0
- package/ts-package.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/utils/file-utils.d.ts +9 -0
- package/utils/file-utils.js +98 -0
- package/utils/file-utils.js.map +1 -0
- package/utils/find-cache-dir.d.ts +23 -0
- package/utils/find-cache-dir.js +93 -0
- package/utils/find-cache-dir.js.map +1 -0
- package/utils/general.d.ts +5 -0
- package/utils/general.js +16 -0
- package/utils/general.js.map +1 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.js +20 -0
- package/utils/index.js.map +1 -0
|
@@ -0,0 +1,73 @@
|
|
|
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.createSourceSection = createSourceSection;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
// endregion
|
|
10
|
+
/* ****************************************************************************************************************** */
|
|
11
|
+
// region: Utils
|
|
12
|
+
/* ****************************************************************************************************************** */
|
|
13
|
+
function createSourceSection(moduleFile, sectionName, startPos, endPos, indentLevel = 0, srcFileName) {
|
|
14
|
+
let sourceText;
|
|
15
|
+
let originalSourceFile;
|
|
16
|
+
let sourceFile;
|
|
17
|
+
let sourceFileName;
|
|
18
|
+
return {
|
|
19
|
+
hasTransformed: false,
|
|
20
|
+
hasUpdatedSourceText: false,
|
|
21
|
+
sectionName,
|
|
22
|
+
srcFileName,
|
|
23
|
+
indentLevel,
|
|
24
|
+
pos: { start: startPos, end: endPos },
|
|
25
|
+
get sourceText() {
|
|
26
|
+
return sourceText ?? (sourceText = moduleFile.content.slice(startPos, endPos));
|
|
27
|
+
},
|
|
28
|
+
getSourceFile() {
|
|
29
|
+
if (!sourceFile) {
|
|
30
|
+
if (this.hasUpdatedSourceText)
|
|
31
|
+
return createSourceFile(this);
|
|
32
|
+
else
|
|
33
|
+
return this.getOriginalSourceFile();
|
|
34
|
+
}
|
|
35
|
+
return sourceFile;
|
|
36
|
+
},
|
|
37
|
+
updateSourceText(newText) {
|
|
38
|
+
sourceText = newText;
|
|
39
|
+
sourceFile = undefined;
|
|
40
|
+
},
|
|
41
|
+
getOriginalSourceFile() {
|
|
42
|
+
originalSourceFile ?? (originalSourceFile = createSourceFile(this));
|
|
43
|
+
return originalSourceFile;
|
|
44
|
+
},
|
|
45
|
+
transform(transformers) {
|
|
46
|
+
const result = typescript_1.default.transform(this.getSourceFile(), transformers);
|
|
47
|
+
sourceFile = result.transformed[0];
|
|
48
|
+
this.hasTransformed = true;
|
|
49
|
+
this.indentLevel = 0;
|
|
50
|
+
},
|
|
51
|
+
print(printer) {
|
|
52
|
+
if (!this.hasTransformed)
|
|
53
|
+
return this.sourceText;
|
|
54
|
+
printer ?? (printer = typescript_1.default.createPrinter());
|
|
55
|
+
return printer.printFile(this.getSourceFile());
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
function createSourceFile(sourceSection) {
|
|
59
|
+
return typescript_1.default.createSourceFile(getSourceFileName(), sourceSection.sourceText, typescript_1.default.ScriptTarget.Latest, true, typescript_1.default.ScriptKind.JS);
|
|
60
|
+
}
|
|
61
|
+
function getSourceFileName() {
|
|
62
|
+
if (!sourceFileName) {
|
|
63
|
+
sourceFileName = srcFileName;
|
|
64
|
+
if (!sourceFileName) {
|
|
65
|
+
const baseName = path_1.default.basename(moduleFile.filePath, path_1.default.extname(moduleFile.filePath));
|
|
66
|
+
sourceFileName = `${baseName}.${sectionName}.ts`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return sourceFileName;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// endregion
|
|
73
|
+
//# sourceMappingURL=source-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-section.js","sourceRoot":"","sources":["../../../projects/core/src/module/source-section.ts"],"names":[],"mappings":";;;;;AAiCA,kDA0EC;AA3GD,4DAA4B;AAE5B,gDAAwB;AAwBxB,YAAY;AAGZ,wHAAwH;AACxH,gBAAgB;AAChB,wHAAwH;AAExH,SAAgB,mBAAmB,CACjC,UAAsB,EACtB,WAAyC,EACzC,QAAgB,EAChB,MAAc,EACd,cAAsB,CAAC,EACvB,WAAoB;IAIpB,IAAI,UAA8B,CAAC;IACnC,IAAI,kBAA6C,CAAC;IAClD,IAAI,UAAqC,CAAC;IAC1C,IAAI,cAAkC,CAAC;IAEvC,OAAO;QACL,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,KAAK;QAC3B,WAAW;QACX,WAAW;QACX,WAAW;QACX,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE;QACrC,IAAI,UAAU;YACZ,OAAO,UAAU,KAAV,UAAU,GAAK,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAC;QACnE,CAAC;QACD,aAAa;YACX,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,oBAAoB;oBAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;;oBACxD,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,gBAAgB,CAAC,OAAe;YAC9B,UAAU,GAAG,OAAO,CAAC;YACrB,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,qBAAqB;YACnB,kBAAkB,KAAlB,kBAAkB,GAAK,gBAAgB,CAAC,IAAI,CAAC,EAAC;YAC9C,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QACD,SAAS,CAAC,YAAoD;YAC5D,MAAM,MAAM,GAAG,oBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,CAAC;YAChE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,OAAoB;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO,IAAI,CAAC,UAAU,CAAC;YAEjD,OAAO,KAAP,OAAO,GAAK,oBAAE,CAAC,aAAa,EAAE,EAAC;YAC/B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACjD,CAAC;KACF,CAAA;IAED,SAAS,gBAAgB,CAAC,aAA4B;QACpD,OAAO,oBAAE,CAAC,gBAAgB,CACxB,iBAAiB,EAAE,EACnB,aAAa,CAAC,UAAU,EACxB,oBAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,oBAAE,CAAC,UAAU,CAAC,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,SAAS,iBAAiB;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,WAAW,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACvF,cAAc,GAAG,GAAG,QAAQ,IAAI,WAAW,KAAK,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,YAAY"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TsPackage } from '../ts-package';
|
|
2
|
+
import { ModuleSource } from './module-source';
|
|
3
|
+
import { ModuleFile } from './module-file';
|
|
4
|
+
export declare namespace TsModule {
|
|
5
|
+
const names: readonly ["tsc.js", "tsserverlibrary.js", "typescript.js", "tsserver.js", "_tsc.js", "_tsserver.js"];
|
|
6
|
+
}
|
|
7
|
+
export interface TsModule {
|
|
8
|
+
package: TsPackage;
|
|
9
|
+
majorVer: number;
|
|
10
|
+
minorVer: number;
|
|
11
|
+
isPatched: boolean;
|
|
12
|
+
moduleName: TsModule.Name;
|
|
13
|
+
modulePath: string;
|
|
14
|
+
moduleFile: ModuleFile;
|
|
15
|
+
dtsPath: string | undefined;
|
|
16
|
+
cacheKey: string;
|
|
17
|
+
backupCachePaths: {
|
|
18
|
+
js: string;
|
|
19
|
+
dts?: string;
|
|
20
|
+
};
|
|
21
|
+
patchedCachePaths: {
|
|
22
|
+
js: string;
|
|
23
|
+
dts?: string;
|
|
24
|
+
};
|
|
25
|
+
getUnpatchedModuleFile(): ModuleFile;
|
|
26
|
+
getUnpatchedSource(): ModuleSource;
|
|
27
|
+
}
|
|
28
|
+
export declare namespace TsModule {
|
|
29
|
+
type Name = (typeof names)[number] | string;
|
|
30
|
+
}
|
|
31
|
+
export interface GetTsModuleOptions {
|
|
32
|
+
skipCache?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function getTsModule(tsPackage: TsPackage, moduleName: TsModule.Name, options?: GetTsModuleOptions): TsModule;
|
|
35
|
+
export declare function getTsModule(tsPackage: TsPackage, moduleFile: ModuleFile, options?: GetTsModuleOptions): TsModule;
|
|
@@ -0,0 +1,100 @@
|
|
|
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.TsModule = void 0;
|
|
7
|
+
exports.getTsModule = getTsModule;
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const module_source_1 = require("./module-source");
|
|
11
|
+
const system_1 = require("../system");
|
|
12
|
+
const module_file_1 = require("./module-file");
|
|
13
|
+
const config_1 = require("../config");
|
|
14
|
+
/* ****************************************************************************************************************** */
|
|
15
|
+
// region: Config
|
|
16
|
+
/* ****************************************************************************************************************** */
|
|
17
|
+
var TsModule;
|
|
18
|
+
(function (TsModule) {
|
|
19
|
+
TsModule.names = [
|
|
20
|
+
'tsc.js',
|
|
21
|
+
'tsserverlibrary.js',
|
|
22
|
+
'typescript.js',
|
|
23
|
+
'tsserver.js',
|
|
24
|
+
'_tsc.js',
|
|
25
|
+
'_tsserver.js',
|
|
26
|
+
];
|
|
27
|
+
})(TsModule || (exports.TsModule = TsModule = {}));
|
|
28
|
+
function getTsModule(tsPackage, moduleNameOrModuleFile, options) {
|
|
29
|
+
const skipCache = options?.skipCache;
|
|
30
|
+
/* Get Module File */
|
|
31
|
+
let moduleFile;
|
|
32
|
+
let moduleName;
|
|
33
|
+
let modulePath;
|
|
34
|
+
if (typeof moduleNameOrModuleFile === "object" && moduleNameOrModuleFile.content) {
|
|
35
|
+
moduleFile = moduleNameOrModuleFile;
|
|
36
|
+
moduleName = moduleFile.moduleName;
|
|
37
|
+
modulePath = moduleFile.filePath;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
moduleName = moduleNameOrModuleFile;
|
|
41
|
+
}
|
|
42
|
+
/* Handle Local Cache */
|
|
43
|
+
if (!skipCache && tsPackage.moduleCache.has(moduleName))
|
|
44
|
+
return tsPackage.moduleCache.get(moduleName);
|
|
45
|
+
/* Load File (if not already) */
|
|
46
|
+
if (!modulePath)
|
|
47
|
+
modulePath = path_1.default.join(tsPackage.libDir, moduleName);
|
|
48
|
+
if (!moduleFile)
|
|
49
|
+
moduleFile = (0, module_file_1.getModuleFile)(modulePath);
|
|
50
|
+
/* Get DTS if exists */
|
|
51
|
+
const maybeDtsFile = modulePath.replace(/\.js$/, '.d.ts');
|
|
52
|
+
const dtsPath = fs_1.default.existsSync(maybeDtsFile) ? maybeDtsFile : undefined;
|
|
53
|
+
const dtsName = dtsPath && path_1.default.basename(dtsPath);
|
|
54
|
+
/* Get Cache Paths */
|
|
55
|
+
const cacheKey = moduleFile.patchDetail?.originalHash || moduleFile.getHash();
|
|
56
|
+
const backupCachePaths = {
|
|
57
|
+
js: (0, system_1.getCachePath)(cacheKey, moduleName),
|
|
58
|
+
dts: dtsName && (0, system_1.getCachePath)(cacheKey, dtsName)
|
|
59
|
+
};
|
|
60
|
+
const patchedCachePaths = {
|
|
61
|
+
js: (0, system_1.getCachePath)(cacheKey, config_1.cachedFilePatchedPrefix + moduleName),
|
|
62
|
+
dts: dtsName && (0, system_1.getCachePath)(cacheKey, config_1.cachedFilePatchedPrefix + dtsName)
|
|
63
|
+
};
|
|
64
|
+
/* Create Module */
|
|
65
|
+
const isPatched = !!moduleFile.patchDetail;
|
|
66
|
+
let originalModuleFile;
|
|
67
|
+
const tsModule = {
|
|
68
|
+
package: tsPackage,
|
|
69
|
+
majorVer: tsPackage.majorVer,
|
|
70
|
+
minorVer: tsPackage.minorVer,
|
|
71
|
+
isPatched,
|
|
72
|
+
moduleName,
|
|
73
|
+
modulePath,
|
|
74
|
+
moduleFile,
|
|
75
|
+
dtsPath,
|
|
76
|
+
cacheKey,
|
|
77
|
+
backupCachePaths,
|
|
78
|
+
patchedCachePaths,
|
|
79
|
+
getUnpatchedSource() {
|
|
80
|
+
return (0, module_source_1.getModuleSource)(this);
|
|
81
|
+
},
|
|
82
|
+
getUnpatchedModuleFile() {
|
|
83
|
+
if (!originalModuleFile) {
|
|
84
|
+
if (isPatched) {
|
|
85
|
+
if (!fs_1.default.existsSync(backupCachePaths.js))
|
|
86
|
+
throw new system_1.TspError(`Cannot find backup cache file for ${moduleName}. Please wipe node_modules and reinstall.`);
|
|
87
|
+
originalModuleFile = (0, module_file_1.getModuleFile)(backupCachePaths.js);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
originalModuleFile = isPatched ? (0, module_file_1.getModuleFile)(backupCachePaths.js) : moduleFile;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return originalModuleFile;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
tsPackage.moduleCache.set(moduleName, tsModule);
|
|
97
|
+
return tsModule;
|
|
98
|
+
}
|
|
99
|
+
// endregion
|
|
100
|
+
//# sourceMappingURL=ts-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-module.js","sourceRoot":"","sources":["../../../projects/core/src/module/ts-module.ts"],"names":[],"mappings":"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"}
|
package/options.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Logger, LogLevel } from './system';
|
|
2
|
+
export interface InstallerOptions {
|
|
3
|
+
logLevel: LogLevel;
|
|
4
|
+
useColor: boolean;
|
|
5
|
+
dir: string;
|
|
6
|
+
silent: boolean;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
skipCache: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare namespace InstallerOptions {
|
|
11
|
+
function getDefaults(): {
|
|
12
|
+
logLevel: LogLevel.normal;
|
|
13
|
+
useColor: true;
|
|
14
|
+
dir: string;
|
|
15
|
+
silent: false;
|
|
16
|
+
skipCache: false;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function getInstallerOptions(options?: Partial<InstallerOptions>): InstallerOptions;
|
package/options.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InstallerOptions = void 0;
|
|
4
|
+
exports.getInstallerOptions = getInstallerOptions;
|
|
5
|
+
const system_1 = require("./system");
|
|
6
|
+
var InstallerOptions;
|
|
7
|
+
(function (InstallerOptions) {
|
|
8
|
+
function getDefaults() {
|
|
9
|
+
return {
|
|
10
|
+
logLevel: system_1.LogLevel.normal,
|
|
11
|
+
useColor: true,
|
|
12
|
+
dir: process.cwd(),
|
|
13
|
+
silent: false,
|
|
14
|
+
skipCache: false
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
InstallerOptions.getDefaults = getDefaults;
|
|
18
|
+
})(InstallerOptions || (exports.InstallerOptions = InstallerOptions = {}));
|
|
19
|
+
// endregion
|
|
20
|
+
/* ********************************************************************************************************************
|
|
21
|
+
* Parser
|
|
22
|
+
* ********************************************************************************************************************/
|
|
23
|
+
function getInstallerOptions(options) {
|
|
24
|
+
if (!options && typeof options === "object" && Object.isSealed(options))
|
|
25
|
+
return options;
|
|
26
|
+
const res = { ...InstallerOptions.getDefaults(), ...options };
|
|
27
|
+
return Object.seal({
|
|
28
|
+
...res,
|
|
29
|
+
logger: res.logger ?? (0, system_1.createLogger)(res.logLevel, res.useColor, res.silent)
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=options.js.map
|
package/options.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../projects/core/src/options.ts"],"names":[],"mappings":";;;AA6CA,kDASC;AAtDD,qCAA0D;AA0B1D,IAAiB,gBAAgB,CAUhC;AAVD,WAAiB,gBAAgB;IAC/B,SAAgB,WAAW;QACzB,OAAO;YACL,QAAQ,EAAE,iBAAQ,CAAC,MAAM;YACzB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;SACO,CAAA;IAC3B,CAAC;IARe,4BAAW,cAQ1B,CAAA;AACH,CAAC,EAVgB,gBAAgB,gCAAhB,gBAAgB,QAUhC;AAED,YAAY;AAGZ;;wHAEwH;AAExH,SAAgB,mBAAmB,CAAC,OAAmC;IACrE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAA2B,CAAC;IAE5G,MAAM,GAAG,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAmB,CAAC;IAE/E,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,GAAG,GAAG;QACN,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;KAC3E,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@samchon/ts-patch",
|
|
3
|
+
"version": "3.2.2-dev.20241204",
|
|
4
|
+
"description": "Patch typescript to support custom transformers in tsconfig.json",
|
|
5
|
+
"main": "./index.js",
|
|
6
|
+
"types": "./index.d.ts",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"typescript",
|
|
9
|
+
"transform",
|
|
10
|
+
"transformer",
|
|
11
|
+
"plugin",
|
|
12
|
+
"config",
|
|
13
|
+
"ast"
|
|
14
|
+
],
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "Ron S.",
|
|
17
|
+
"url": "http://twitter.com/ron"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+ssh://git@github.com/nonara/ts-patch.git"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/nonara/ts-patch/issues"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://github.com/nonara/ts-patch#readme",
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"chalk": "^4.1.2",
|
|
30
|
+
"global-prefix": "^3.0.0",
|
|
31
|
+
"minimist": "^1.2.8",
|
|
32
|
+
"resolve": "^1.22.2",
|
|
33
|
+
"semver": "^7.5.4",
|
|
34
|
+
"strip-ansi": "^6.0.1"
|
|
35
|
+
},
|
|
36
|
+
"bin": {
|
|
37
|
+
"ts-patch": "./bin/ts-patch.js",
|
|
38
|
+
"tspc": "./bin/tspc.js"
|
|
39
|
+
},
|
|
40
|
+
"directories": {
|
|
41
|
+
"resources": "./resources"
|
|
42
|
+
},
|
|
43
|
+
"standard-version": {
|
|
44
|
+
"types": [
|
|
45
|
+
{
|
|
46
|
+
"type": "feat",
|
|
47
|
+
"section": "Features"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "feature",
|
|
51
|
+
"section": "Features"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "fix",
|
|
55
|
+
"section": "Bug Fixes"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "perf",
|
|
59
|
+
"section": "Performance Improvements"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "revert",
|
|
63
|
+
"section": "Reverts"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "docs",
|
|
67
|
+
"section": "Documentation",
|
|
68
|
+
"hidden": true
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "style",
|
|
72
|
+
"section": "Styles",
|
|
73
|
+
"hidden": true
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "chore",
|
|
77
|
+
"section": "Miscellaneous Chores",
|
|
78
|
+
"hidden": true
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "refactor",
|
|
82
|
+
"section": "Code Refactoring",
|
|
83
|
+
"hidden": true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"type": "test",
|
|
87
|
+
"section": "Tests",
|
|
88
|
+
"hidden": true
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"type": "build",
|
|
92
|
+
"section": "Build System",
|
|
93
|
+
"hidden": true
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "ci",
|
|
97
|
+
"section": "Continuous Integration",
|
|
98
|
+
"hidden": true
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "change",
|
|
102
|
+
"section": "Changes"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
107
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Logger } from '../system';
|
|
2
|
+
import { TsModule } from '../module';
|
|
3
|
+
export interface GetPatchedSourceOptions {
|
|
4
|
+
log?: Logger;
|
|
5
|
+
skipCache?: boolean;
|
|
6
|
+
skipDts?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function getPatchedSource(tsModule: TsModule, options?: GetPatchedSourceOptions): {
|
|
9
|
+
js: string;
|
|
10
|
+
dts: string | undefined;
|
|
11
|
+
loadedFromCache: boolean;
|
|
12
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
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.getPatchedSource = getPatchedSource;
|
|
7
|
+
const system_1 = require("../system");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
|
+
const module_1 = require("../module");
|
|
13
|
+
const patch_module_1 = require("./patch-module");
|
|
14
|
+
// endregion
|
|
15
|
+
/* ****************************************************************************************************************** */
|
|
16
|
+
// region: Utils
|
|
17
|
+
/* ****************************************************************************************************************** */
|
|
18
|
+
function getPatchedSource(tsModule, options) {
|
|
19
|
+
const { backupCachePaths, patchedCachePaths } = tsModule;
|
|
20
|
+
const { log, skipCache } = options || {};
|
|
21
|
+
/* Write backup if not patched */
|
|
22
|
+
if (!tsModule.isPatched) {
|
|
23
|
+
for (const [key, backupPath] of Object.entries(backupCachePaths)) {
|
|
24
|
+
const srcPath = key === 'dts' ? tsModule.dtsPath : tsModule.modulePath;
|
|
25
|
+
if (key === 'dts' && options?.skipDts)
|
|
26
|
+
continue;
|
|
27
|
+
if (!srcPath)
|
|
28
|
+
continue;
|
|
29
|
+
log?.(['~', `Writing backup cache to ${chalk_1.default.blueBright(backupPath)}`], system_1.LogLevel.verbose);
|
|
30
|
+
const cacheDir = path_1.default.dirname(backupPath);
|
|
31
|
+
(0, utils_1.mkdirIfNotExist)(cacheDir);
|
|
32
|
+
(0, utils_1.copyFileWithLock)(srcPath, backupPath);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/* Get Patched Module */
|
|
36
|
+
const canUseCache = !skipCache
|
|
37
|
+
&& !tsModule.moduleFile.patchDetail?.isOutdated
|
|
38
|
+
&& (!patchedCachePaths.dts || fs_1.default.existsSync(patchedCachePaths.dts))
|
|
39
|
+
&& fs_1.default.existsSync(patchedCachePaths.js)
|
|
40
|
+
&& !(0, module_1.getModuleFile)(patchedCachePaths.js).patchDetail?.isOutdated;
|
|
41
|
+
let js;
|
|
42
|
+
let dts;
|
|
43
|
+
if (canUseCache) {
|
|
44
|
+
js = (0, utils_1.readFileWithLock)(patchedCachePaths.js);
|
|
45
|
+
dts = !options?.skipDts && patchedCachePaths.dts ? (0, utils_1.readFileWithLock)(patchedCachePaths.dts) : undefined;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const res = (0, patch_module_1.patchModule)(tsModule, options?.skipDts);
|
|
49
|
+
js = res.js;
|
|
50
|
+
dts = res.dts;
|
|
51
|
+
/* Write patched cache */
|
|
52
|
+
if (!skipCache) {
|
|
53
|
+
const cacheDir = path_1.default.dirname(patchedCachePaths.js);
|
|
54
|
+
for (const [key, patchPath] of Object.entries(patchedCachePaths)) {
|
|
55
|
+
const srcPath = key === 'dts' ? dts : js;
|
|
56
|
+
if (key === 'dts' && options?.skipDts)
|
|
57
|
+
continue;
|
|
58
|
+
if (!srcPath)
|
|
59
|
+
continue;
|
|
60
|
+
log?.(['~', `Writing patched cache to ${chalk_1.default.blueBright(patchPath)}`], system_1.LogLevel.verbose);
|
|
61
|
+
(0, utils_1.mkdirIfNotExist)(cacheDir);
|
|
62
|
+
(0, utils_1.writeFileWithLock)(patchPath, srcPath);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { js, dts, loadedFromCache: canUseCache };
|
|
67
|
+
}
|
|
68
|
+
// endregion
|
|
69
|
+
//# sourceMappingURL=get-patched-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-patched-source.js","sourceRoot":"","sources":["../../../projects/core/src/patch/get-patched-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TsModule } from '../module';
|
|
2
|
+
export declare const tspHeaderBlockStart = "/// tsp-module:";
|
|
3
|
+
export declare const tspHeaderBlockStop = "/// :tsp-module";
|
|
4
|
+
export declare const currentPatchDetailVersion = "0.1.0";
|
|
5
|
+
export interface PatchDetail {
|
|
6
|
+
tsVersion: string;
|
|
7
|
+
tspVersion: string;
|
|
8
|
+
patchDetailVersion: string;
|
|
9
|
+
moduleName: TsModule.Name;
|
|
10
|
+
originalHash: string;
|
|
11
|
+
hash: string;
|
|
12
|
+
patches: PatchDetail.PatchEntry[];
|
|
13
|
+
}
|
|
14
|
+
export declare namespace PatchDetail {
|
|
15
|
+
interface PatchEntry {
|
|
16
|
+
library: string;
|
|
17
|
+
version: string;
|
|
18
|
+
patchName?: string;
|
|
19
|
+
hash?: string;
|
|
20
|
+
blocksCache?: boolean;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export declare class PatchDetail {
|
|
24
|
+
get isOutdated(): boolean;
|
|
25
|
+
toHeader(): string;
|
|
26
|
+
static fromHeader(header: string | string[]): PatchDetail | undefined;
|
|
27
|
+
static fromModule(tsModule: TsModule, patchedContent: string, patches?: PatchDetail.PatchEntry[]): PatchDetail & {
|
|
28
|
+
tsVersion: string;
|
|
29
|
+
tspVersion: any;
|
|
30
|
+
patchDetailVersion: string;
|
|
31
|
+
moduleName: string;
|
|
32
|
+
originalHash: string;
|
|
33
|
+
hash: string;
|
|
34
|
+
patches: PatchDetail.PatchEntry[];
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
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.PatchDetail = exports.currentPatchDetailVersion = exports.tspHeaderBlockStop = exports.tspHeaderBlockStart = void 0;
|
|
7
|
+
const config_1 = require("../config");
|
|
8
|
+
const semver_1 = __importDefault(require("semver"));
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
/* ****************************************************************************************************************** */
|
|
11
|
+
// region: Config
|
|
12
|
+
/* ****************************************************************************************************************** */
|
|
13
|
+
exports.tspHeaderBlockStart = '/// tsp-module:';
|
|
14
|
+
exports.tspHeaderBlockStop = '/// :tsp-module';
|
|
15
|
+
exports.currentPatchDetailVersion = '0.1.0';
|
|
16
|
+
// endregion
|
|
17
|
+
/* ****************************************************************************************************************** */
|
|
18
|
+
// region: PatchDetail (class)
|
|
19
|
+
/* ****************************************************************************************************************** */
|
|
20
|
+
class PatchDetail {
|
|
21
|
+
/* ********************************************************* */
|
|
22
|
+
// region: Methods
|
|
23
|
+
/* ********************************************************* */
|
|
24
|
+
get isOutdated() {
|
|
25
|
+
const packageVersion = config_1.tspPackageJSON.version;
|
|
26
|
+
return semver_1.default.gt(packageVersion, this.tspVersion);
|
|
27
|
+
}
|
|
28
|
+
toHeader() {
|
|
29
|
+
const lines = JSON.stringify(this, null, 2)
|
|
30
|
+
.split('\n')
|
|
31
|
+
.map(line => `/// ${line}`)
|
|
32
|
+
.join('\n');
|
|
33
|
+
return `${exports.tspHeaderBlockStart}\n${lines}\n${exports.tspHeaderBlockStop}`;
|
|
34
|
+
}
|
|
35
|
+
static fromHeader(header) {
|
|
36
|
+
const headerLines = Array.isArray(header) ? header : header.split('\n');
|
|
37
|
+
let patchDetail;
|
|
38
|
+
const startIdx = headerLines.findIndex(line => line === exports.tspHeaderBlockStart) + 1;
|
|
39
|
+
let endIdx = headerLines.findIndex(line => line === exports.tspHeaderBlockStop);
|
|
40
|
+
if (endIdx === -1)
|
|
41
|
+
headerLines.length;
|
|
42
|
+
if (startIdx && endIdx) {
|
|
43
|
+
const patchInfoStr = headerLines
|
|
44
|
+
.slice(startIdx, endIdx)
|
|
45
|
+
.map(line => line.replace('/// ', ''))
|
|
46
|
+
.join('\n');
|
|
47
|
+
patchDetail = Object.assign(new PatchDetail(), JSON.parse(patchInfoStr));
|
|
48
|
+
}
|
|
49
|
+
return patchDetail;
|
|
50
|
+
}
|
|
51
|
+
static fromModule(tsModule, patchedContent, patches = []) {
|
|
52
|
+
patches.unshift({ library: 'ts-patch', patchName: config_1.corePatchName, version: config_1.tspPackageJSON.version });
|
|
53
|
+
const patchDetail = {
|
|
54
|
+
tsVersion: tsModule.package.version,
|
|
55
|
+
tspVersion: config_1.tspPackageJSON.version,
|
|
56
|
+
patchDetailVersion: exports.currentPatchDetailVersion,
|
|
57
|
+
moduleName: tsModule.moduleName,
|
|
58
|
+
originalHash: tsModule.cacheKey,
|
|
59
|
+
hash: (0, utils_1.getHash)(patchedContent),
|
|
60
|
+
patches: patches
|
|
61
|
+
};
|
|
62
|
+
return Object.assign(new PatchDetail(), patchDetail);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.PatchDetail = PatchDetail;
|
|
66
|
+
// endregion
|
|
67
|
+
//# sourceMappingURL=patch-detail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-detail.js","sourceRoot":"","sources":["../../../projects/core/src/patch/patch-detail.ts"],"names":[],"mappings":";;;;;;AACA,sCAA0D;AAC1D,oDAA4B;AAC5B,oCAAmC;AAGnC,wHAAwH;AACxH,iBAAiB;AACjB,wHAAwH;AAE3G,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AACxC,QAAA,kBAAkB,GAAG,iBAAiB,CAAC;AACvC,QAAA,yBAAyB,GAAG,OAAO,CAAC;AA6BjD,YAAY;AAGZ,wHAAwH;AACxH,8BAA8B;AAC9B,wHAAwH;AAExH,MAAa,WAAW;IAEtB,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,IAAI,UAAU;QACZ,MAAM,cAAc,GAAG,uBAAc,CAAC,OAAO,CAAC;QAC9C,OAAO,gBAAM,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,2BAAmB,KAAK,KAAK,KAAK,0BAAkB,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAyB;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,WAAoC,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,2BAAmB,CAAC,GAAG,CAAC,CAAC;QACjF,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,0BAAkB,CAAC,CAAC;QACxE,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,WAAW,CAAC,MAAM,CAAC;QACtC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,WAAW;iBAC7B,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;iBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;iBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAgB,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAkB,EAAE,cAAsB,EAAE,UAAoC,EAAE;QAClG,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAa,EAAE,OAAO,EAAE,uBAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpG,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;YACnC,UAAU,EAAE,uBAAc,CAAC,OAAO;YAClC,kBAAkB,EAAE,iCAAyB;YAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,IAAI,EAAE,IAAA,eAAO,EAAC,cAAc,CAAC;YAC7B,OAAO,EAAE,OAAO;SACsC,CAAA;QAExD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;CAGF;AAvDD,kCAuDC;AAED,YAAY"}
|