@vencord-companion/webpack-ast-parser 1.0.5 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WebpackAstParser.d.ts +13 -5
- package/dist/WebpackAstParser.js +285 -119
- package/dist/WebpackAstParser.js.map +1 -1
- package/dist/util.d.ts +14 -1
- package/dist/util.js +83 -0
- package/dist/util.js.map +1 -1
- package/package.json +5 -4
|
@@ -102,7 +102,7 @@ export declare class WebpackAstParser extends AstParser {
|
|
|
102
102
|
* given
|
|
103
103
|
* ```js
|
|
104
104
|
* var mod = n(123456);
|
|
105
|
-
*
|
|
105
|
+
* ```,
|
|
106
106
|
* @argument dec the variable info for that mod
|
|
107
107
|
* @see {@link getVariableInitializer} which can than be passed into {@link vars|vars.get}
|
|
108
108
|
* @returns `123456`
|
|
@@ -120,9 +120,10 @@ export declare class WebpackAstParser extends AstParser {
|
|
|
120
120
|
doesReExportWholeModule(): string | undefined;
|
|
121
121
|
/**
|
|
122
122
|
* Figure out if this module re-exports another given the module id of the other and the name of the export from the other module
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
* @param moduleId the module id that {@link exportName} is from
|
|
124
|
+
* @param exportName the name of the re-exported export
|
|
125
|
+
* only supports one-level re-exports despite it's signature
|
|
126
|
+
*/
|
|
126
127
|
doesReExportFromImport(moduleId: string, exportName: AnyExportKey): AnyExportKey | undefined;
|
|
127
128
|
/**
|
|
128
129
|
* @returns a map of exported names to the nodes that they are exported from
|
|
@@ -154,11 +155,18 @@ export declare class WebpackAstParser extends AstParser {
|
|
|
154
155
|
* TODO: support nested exports eg: `wreq(123).ZP.storeMethod()`
|
|
155
156
|
* @returns the ranges where the export is used in this file
|
|
156
157
|
*/
|
|
157
|
-
getUsesOfImport(moduleId: string,
|
|
158
|
+
getUsesOfImport(moduleId: string, exportName_: AnyExportKey[] | AnyExportKey): Range[];
|
|
158
159
|
/**
|
|
159
160
|
* @Cache
|
|
160
161
|
*/
|
|
161
162
|
getExportMapWreq_t(): RangeExportMap | undefined;
|
|
163
|
+
private tryRawMakeExportMapForEnumIIFE;
|
|
164
|
+
private rawMakeExportMapObjectLiteral;
|
|
165
|
+
private rawMakeExportMapPropertyAssignment;
|
|
166
|
+
private rawMakeExportMapFunctionish;
|
|
167
|
+
private rawMakeExportMapCallExpression;
|
|
168
|
+
private rawMakeExportMapIdentifier;
|
|
169
|
+
private rawMakeExportMapLiteralish;
|
|
162
170
|
rawMakeExportMapRecursive(node: Node): RawExportMap | RawExportRange;
|
|
163
171
|
rawMapToExportMap(map: RawExportRange): ExportRange;
|
|
164
172
|
rawMapToExportMap(map: RawExportMap): RangeExportMap;
|
package/dist/WebpackAstParser.js
CHANGED
|
@@ -6,13 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { Format } from "@sadan4/devtools-pretty-printer";
|
|
8
8
|
import {} from "ts-api-utils";
|
|
9
|
-
import { createSourceFile, isAccessor, isArrowFunction, isBinaryExpression, isBlock, isCallExpression, isClassDeclaration, isConstructorDeclaration, isExpressionStatement, isFunctionExpression, isIdentifier, isMethodDeclaration, isNewExpression, isNumericLiteral, isObjectLiteralExpression, isPropertyAccessExpression, isPropertyAssignment, isPropertyDeclaration, isSemicolonClassElement, isSpreadAssignment, isStringLiteralLike, isVariableDeclaration, ScriptKind, ScriptTarget, } from "typescript";
|
|
10
|
-
import { AstParser, findObjectLiteralByKey, findParent, findParentLimited, findReturnIdentifier, findReturnPropertyAccessExpression, getLeadingIdentifier, isAssignmentExpression, isFunctionish, isLiteralish, isSyntaxList, isVariableAssignmentLike, lastParent, nonNull, } from "@vencord-companion/ast-parser";
|
|
9
|
+
import { createSourceFile, isAccessor, isArrowFunction, isBinaryExpression, isBlock, isCallExpression, isClassDeclaration, isConstructorDeclaration, isElementAccessExpression, isExpressionStatement, isFunctionExpression, isIdentifier, isMethodDeclaration, isNewExpression, isNumericLiteral, isObjectLiteralExpression, isPropertyAccessExpression, isPropertyAssignment, isPropertyDeclaration, isReturnStatement, isSemicolonClassElement, isSpreadAssignment, isStringLiteralLike, isVariableDeclaration, ScriptKind, ScriptTarget, } from "typescript";
|
|
10
|
+
import { AstParser, findObjectLiteralByKey, findParent, findParentLimited, findReturnIdentifier, findReturnPropertyAccessExpression, getLeadingIdentifier, isAssignmentExpression, isCommaExpression, isEmptyObjectLiteral, isFunctionish, isLiteralish, isSyntaxList, isVariableAssignmentLike, lastParent, nonNull, } from "@vencord-companion/ast-parser";
|
|
11
11
|
import { Cache, CacheGetter } from "@vencord-companion/shared/decorators";
|
|
12
12
|
import { NoopLogger } from "@vencord-companion/shared/Logger";
|
|
13
13
|
import { Position } from "@vencord-companion/shared/Position";
|
|
14
14
|
import { Range, zeroRange } from "@vencord-companion/shared/Range";
|
|
15
|
-
import { allEntries, assertNotHover,
|
|
15
|
+
import { allEntries, annotateExportRange, assertNotHover, flattenFilteredExportMap, formatModule, fromEntries, isExportRange, makeFilteredExportMap, matchExportChain, prependToExportRange, } from "./util";
|
|
16
16
|
let logger = NoopLogger;
|
|
17
17
|
export function setLogger(l) {
|
|
18
18
|
logger = l;
|
|
@@ -258,22 +258,20 @@ export class WebpackAstParser extends AstParser {
|
|
|
258
258
|
return;
|
|
259
259
|
let [requiredModule, ...names] = importChain;
|
|
260
260
|
let moduleId;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
moduleId = +arg.text;
|
|
268
|
-
}
|
|
261
|
+
// TODO: should this check if requiredModule.expression is wreq
|
|
262
|
+
// i think probably not, no real need
|
|
263
|
+
if (isCallExpression(requiredModule) && requiredModule.arguments.length === 1) {
|
|
264
|
+
const [arg] = requiredModule.arguments;
|
|
265
|
+
if (isNumericLiteral(arg)) {
|
|
266
|
+
moduleId = +arg.text;
|
|
269
267
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
moduleId = this.getModuleIdForImport(dec);
|
|
268
|
+
}
|
|
269
|
+
else if (isIdentifier(requiredModule)) {
|
|
270
|
+
const dec = this.getVarInfoFromUse(requiredModule);
|
|
271
|
+
if (!dec) {
|
|
272
|
+
return;
|
|
276
273
|
}
|
|
274
|
+
moduleId = this.getModuleIdForImport(dec);
|
|
277
275
|
}
|
|
278
276
|
if (!moduleId)
|
|
279
277
|
return;
|
|
@@ -404,7 +402,7 @@ export class WebpackAstParser extends AstParser {
|
|
|
404
402
|
* given
|
|
405
403
|
* ```js
|
|
406
404
|
* var mod = n(123456);
|
|
407
|
-
*
|
|
405
|
+
* ```,
|
|
408
406
|
* @argument dec the variable info for that mod
|
|
409
407
|
* @see {@link getVariableInitializer} which can than be passed into {@link vars|vars.get}
|
|
410
408
|
* @returns `123456`
|
|
@@ -434,13 +432,22 @@ export class WebpackAstParser extends AstParser {
|
|
|
434
432
|
const moduleExports = this.getExportMap();
|
|
435
433
|
const where = this.getModulesThatRequireThisModule();
|
|
436
434
|
const locs = [];
|
|
437
|
-
const
|
|
438
|
-
|
|
435
|
+
const filteredExportMap = makeFilteredExportMap(moduleExports, position) ?? {};
|
|
436
|
+
if (Array.isArray(filteredExportMap)) {
|
|
437
|
+
throw new Error("should not be an array");
|
|
438
|
+
}
|
|
439
|
+
const exportedNames = flattenFilteredExportMap(filteredExportMap);
|
|
440
|
+
// const exportedNames = Object.entries(moduleExports)
|
|
441
|
+
// .filter(([, exportRange]) => containsPosition(exportRange, position));
|
|
439
442
|
// TODO: support jumping from object literals
|
|
440
|
-
for (const
|
|
443
|
+
for (const _exportedName of exportedNames) {
|
|
441
444
|
// needed to workaround a v8 bug which crashes when a breakpoint falls on the for loop
|
|
442
445
|
const exportedName = _exportedName;
|
|
443
446
|
const seen = {};
|
|
447
|
+
// FIXME: this is a workaround for a bug in getUsesOfImport where it doesn't properly hand SYM_CJS_DEFAULT
|
|
448
|
+
if (exportedName.length > 1 && exportedName.at(-1) === WebpackAstParser.SYM_CJS_DEFAULT) {
|
|
449
|
+
exportedName.pop();
|
|
450
|
+
}
|
|
444
451
|
const left = where?.sync.map((x) => [x, this.moduleId, exportedName]) ?? [];
|
|
445
452
|
let cur;
|
|
446
453
|
while ((cur = left.pop())) {
|
|
@@ -457,10 +464,13 @@ export class WebpackAstParser extends AstParser {
|
|
|
457
464
|
// FIXME: this covers up a bug in {@link doesReExport}
|
|
458
465
|
// if (uses.length === 0)
|
|
459
466
|
// continue;
|
|
460
|
-
|
|
467
|
+
// FIXME: support nested re-exports
|
|
468
|
+
const exportedAs = parser.doesReExportFromImport(importedId, exportedName[0]);
|
|
461
469
|
if (exportedAs) {
|
|
462
470
|
const where = parser.getModulesThatRequireThisModule();
|
|
463
|
-
|
|
471
|
+
// FIXME: this is just wrong for multi-level re-exports
|
|
472
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
473
|
+
left.push(...where?.sync.map((x) => [x, parser.moduleId, [exportedAs]]) ?? []);
|
|
464
474
|
}
|
|
465
475
|
locs.push(...uses.map((x) => {
|
|
466
476
|
const maybeFilePath = this.moduleCache.getModuleFilepath(modId);
|
|
@@ -524,9 +534,10 @@ export class WebpackAstParser extends AstParser {
|
|
|
524
534
|
}
|
|
525
535
|
/**
|
|
526
536
|
* Figure out if this module re-exports another given the module id of the other and the name of the export from the other module
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
537
|
+
* @param moduleId the module id that {@link exportName} is from
|
|
538
|
+
* @param exportName the name of the re-exported export
|
|
539
|
+
* only supports one-level re-exports despite it's signature
|
|
540
|
+
*/
|
|
530
541
|
doesReExportFromImport(moduleId, exportName) {
|
|
531
542
|
// we can't re-export anything if we don't import anything
|
|
532
543
|
if (!this.wreq || !this.moduleId)
|
|
@@ -669,7 +680,7 @@ export class WebpackAstParser extends AstParser {
|
|
|
669
680
|
}
|
|
670
681
|
getImportedVar(moduleId) {
|
|
671
682
|
if (!this.wreq)
|
|
672
|
-
|
|
683
|
+
return;
|
|
673
684
|
const uses = this.uses.uses.find(({ location }) => {
|
|
674
685
|
const call = findParent(location, isCallExpression);
|
|
675
686
|
return (call?.arguments.length === 1 && call.arguments[0].getText() === moduleId);
|
|
@@ -705,9 +716,11 @@ export class WebpackAstParser extends AstParser {
|
|
|
705
716
|
* TODO: support nested exports eg: `wreq(123).ZP.storeMethod()`
|
|
706
717
|
* @returns the ranges where the export is used in this file
|
|
707
718
|
*/
|
|
708
|
-
getUsesOfImport(moduleId,
|
|
709
|
-
|
|
719
|
+
getUsesOfImport(moduleId, exportName_) {
|
|
720
|
+
const exportName = Array.isArray(exportName_) ? exportName_ : [exportName_];
|
|
721
|
+
if (!this.wreq) {
|
|
710
722
|
throw new Error("Wreq is not used in this file");
|
|
723
|
+
}
|
|
711
724
|
if (typeof exportName === "symbol" && exportName !== WebpackAstParser.SYM_CJS_DEFAULT) {
|
|
712
725
|
throw new Error("Invalid symbol for exportName");
|
|
713
726
|
}
|
|
@@ -745,34 +758,31 @@ export class WebpackAstParser extends AstParser {
|
|
|
745
758
|
const decl = findParent(funcExpr, isVariableDeclaration)?.name;
|
|
746
759
|
if (!decl || !isIdentifier(decl))
|
|
747
760
|
break nmd;
|
|
748
|
-
this.vars
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
.
|
|
753
|
-
|
|
761
|
+
for (const { location: { parent: calledUse } } of this.vars.get(decl)?.uses ?? []) {
|
|
762
|
+
if (!isCallExpression(calledUse)) {
|
|
763
|
+
continue;
|
|
764
|
+
}
|
|
765
|
+
if (exportName[0] === WebpackAstParser.SYM_CJS_DEFAULT) {
|
|
766
|
+
// a()()
|
|
767
|
+
if (!isCallExpression(calledUse.parent)) {
|
|
768
|
+
continue;
|
|
769
|
+
}
|
|
754
770
|
// TODO: handle default exports other than just functions
|
|
755
|
-
|
|
756
|
-
? [this.makeRangeFromAstNode(calledUse)]
|
|
757
|
-
: undefined;
|
|
771
|
+
uses.push(this.makeRangeFromAstNode(calledUse));
|
|
758
772
|
}
|
|
759
|
-
else
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
773
|
+
else {
|
|
774
|
+
if (!isPropertyAccessExpression(calledUse.parent)) {
|
|
775
|
+
continue;
|
|
776
|
+
}
|
|
777
|
+
const outerPropExpr = lastParent(calledUse, isPropertyAccessExpression);
|
|
778
|
+
const fullUsageChain = this.flattenPropertyAccessExpression(outerPropExpr);
|
|
779
|
+
const lastMatch = matchExportChain(fullUsageChain, exportName);
|
|
780
|
+
if (!lastMatch) {
|
|
781
|
+
continue;
|
|
782
|
+
}
|
|
783
|
+
uses.push(this.makeRangeFromAstNode(lastMatch));
|
|
766
784
|
}
|
|
767
|
-
|
|
768
|
-
})
|
|
769
|
-
.filter((x) => x !== undefined)
|
|
770
|
-
.forEach((use) => {
|
|
771
|
-
const final = use.at(-1);
|
|
772
|
-
if (!final)
|
|
773
|
-
throw new Error("Final is undefined, this should have been filtered out by the previous line as there should be no empty arrays");
|
|
774
|
-
uses.push(final);
|
|
775
|
-
});
|
|
785
|
+
}
|
|
776
786
|
}
|
|
777
787
|
}
|
|
778
788
|
for (const { location } of importUses?.uses ?? []) {
|
|
@@ -780,9 +790,13 @@ export class WebpackAstParser extends AstParser {
|
|
|
780
790
|
continue;
|
|
781
791
|
if (!isIdentifier(location.parent.name))
|
|
782
792
|
continue;
|
|
783
|
-
|
|
793
|
+
const outerPropExpr = lastParent(location, isPropertyAccessExpression);
|
|
794
|
+
const fullUsageChain = this.flattenPropertyAccessExpression(outerPropExpr);
|
|
795
|
+
const lastMatch = matchExportChain(fullUsageChain, exportName);
|
|
796
|
+
if (!lastMatch) {
|
|
784
797
|
continue;
|
|
785
|
-
|
|
798
|
+
}
|
|
799
|
+
uses.push(this.makeRangeFromAstNode(lastMatch));
|
|
786
800
|
}
|
|
787
801
|
continue;
|
|
788
802
|
}
|
|
@@ -792,9 +806,13 @@ export class WebpackAstParser extends AstParser {
|
|
|
792
806
|
continue;
|
|
793
807
|
if (!isIdentifier(direct.parent.name))
|
|
794
808
|
continue;
|
|
795
|
-
|
|
809
|
+
const outerPropExpr = lastParent(direct, isPropertyAccessExpression);
|
|
810
|
+
const fullUsageChain = this.flattenPropertyAccessExpression(outerPropExpr);
|
|
811
|
+
const lastMatch = matchExportChain(fullUsageChain, exportName);
|
|
812
|
+
if (!lastMatch) {
|
|
796
813
|
continue;
|
|
797
|
-
|
|
814
|
+
}
|
|
815
|
+
uses.push(this.makeRangeFromAstNode(lastMatch));
|
|
798
816
|
}
|
|
799
817
|
}
|
|
800
818
|
return uses;
|
|
@@ -832,81 +850,227 @@ export class WebpackAstParser extends AstParser {
|
|
|
832
850
|
})
|
|
833
851
|
.filter((x) => x !== false));
|
|
834
852
|
}
|
|
853
|
+
// TODO: style3: see enums2.js
|
|
854
|
+
tryRawMakeExportMapForEnumIIFE(node) {
|
|
855
|
+
// TODO: styles 1 and 2 are very similar, merge code for them?
|
|
856
|
+
// style 1
|
|
857
|
+
// function (e) {
|
|
858
|
+
// return e.foo = "foo",
|
|
859
|
+
// e.bar = "bar",
|
|
860
|
+
// e
|
|
861
|
+
// }({})
|
|
862
|
+
// style 2
|
|
863
|
+
// function (e) {
|
|
864
|
+
// return e[e.foo = 1] = "foo",
|
|
865
|
+
// e[e.bar = 2] = "bar",
|
|
866
|
+
// e
|
|
867
|
+
// }({})
|
|
868
|
+
// style 1 or 2
|
|
869
|
+
noMatch: {
|
|
870
|
+
const args = node.arguments;
|
|
871
|
+
const func = node.expression;
|
|
872
|
+
if (args.length !== 1
|
|
873
|
+
|| !isEmptyObjectLiteral(args[0])
|
|
874
|
+
|| !isFunctionExpression(func)
|
|
875
|
+
|| func.body.statements.length !== 1
|
|
876
|
+
|| func.parameters.length !== 1) {
|
|
877
|
+
break noMatch;
|
|
878
|
+
}
|
|
879
|
+
const [{ name: enumParam }] = func.parameters;
|
|
880
|
+
const [stmt] = func.body.statements;
|
|
881
|
+
// FIXME: assert no random things on enumParam (..., private, decorators)
|
|
882
|
+
if (!isReturnStatement(stmt) || !isIdentifier(enumParam)) {
|
|
883
|
+
break noMatch;
|
|
884
|
+
}
|
|
885
|
+
const initBinExp = stmt.expression;
|
|
886
|
+
if (!initBinExp || !isBinaryExpression(initBinExp)) {
|
|
887
|
+
break noMatch;
|
|
888
|
+
}
|
|
889
|
+
let curExpr = initBinExp.left;
|
|
890
|
+
// the final `,e` in the return statement
|
|
891
|
+
const lastRight = initBinExp.right;
|
|
892
|
+
if (!isIdentifier(lastRight) || !this.isUseOf(lastRight, enumParam)) {
|
|
893
|
+
break noMatch;
|
|
894
|
+
}
|
|
895
|
+
const ret = {};
|
|
896
|
+
// if falsy, break noMatch;
|
|
897
|
+
const processEnumAssignment = ({ left, right }) => {
|
|
898
|
+
const processStyle1 = (left) => {
|
|
899
|
+
const { expression: paramUse, name: entryName } = left;
|
|
900
|
+
if (!isIdentifier(entryName)
|
|
901
|
+
|| !isIdentifier(paramUse)
|
|
902
|
+
|| !this.isUseOf(paramUse, enumParam)) {
|
|
903
|
+
return;
|
|
904
|
+
}
|
|
905
|
+
const exportRange = [
|
|
906
|
+
...this.rawMakeExportMapRecursive(entryName),
|
|
907
|
+
right,
|
|
908
|
+
];
|
|
909
|
+
// TODO: debug assert no entry exists
|
|
910
|
+
if (isLiteralish(right)) {
|
|
911
|
+
ret[entryName.getText()] = annotateExportRange(right.getText(), exportRange);
|
|
912
|
+
}
|
|
913
|
+
else {
|
|
914
|
+
ret[entryName.getText()] = exportRange;
|
|
915
|
+
}
|
|
916
|
+
return true;
|
|
917
|
+
};
|
|
918
|
+
const processStyle2 = (left) => {
|
|
919
|
+
const { expression: paramUse, argumentExpression: style1Entry } = left;
|
|
920
|
+
// TODO: debug assert names match in both assignments
|
|
921
|
+
// TODO: debug only assertion
|
|
922
|
+
if (!isAssignmentExpression(style1Entry)
|
|
923
|
+
|| !isIdentifier(paramUse)
|
|
924
|
+
|| !this.isUseOf(paramUse, enumParam)) {
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
return processEnumAssignment(style1Entry);
|
|
928
|
+
};
|
|
929
|
+
if (isPropertyAccessExpression(left)) {
|
|
930
|
+
return processStyle1(left);
|
|
931
|
+
}
|
|
932
|
+
else if (isElementAccessExpression(left)) {
|
|
933
|
+
return processStyle2(left);
|
|
934
|
+
}
|
|
935
|
+
// no style matched
|
|
936
|
+
};
|
|
937
|
+
while (isBinaryExpression(curExpr)) {
|
|
938
|
+
const enumAssignment = curExpr.right;
|
|
939
|
+
// we only expect assignment expressions in the comma chain
|
|
940
|
+
if (!isAssignmentExpression(enumAssignment)) {
|
|
941
|
+
break noMatch;
|
|
942
|
+
}
|
|
943
|
+
// if (entry is invalid)
|
|
944
|
+
if (!processEnumAssignment(enumAssignment)) {
|
|
945
|
+
break noMatch;
|
|
946
|
+
}
|
|
947
|
+
// we are in the middle of the enum assignment chain
|
|
948
|
+
if (isCommaExpression(curExpr.left)) {
|
|
949
|
+
curExpr = curExpr.left;
|
|
950
|
+
continue;
|
|
951
|
+
// we reached the bottom of the enum assignment chain
|
|
952
|
+
}
|
|
953
|
+
else if (isAssignmentExpression(curExpr.left)) {
|
|
954
|
+
if (!processEnumAssignment(curExpr.left)) {
|
|
955
|
+
break noMatch;
|
|
956
|
+
}
|
|
957
|
+
break;
|
|
958
|
+
// we didn't reach the end and the comma chain ends
|
|
959
|
+
}
|
|
960
|
+
else {
|
|
961
|
+
break noMatch;
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
const maybeDecl = node.parent;
|
|
965
|
+
// TODO: debug assert always true
|
|
966
|
+
if (isVariableDeclaration(maybeDecl) && isIdentifier(maybeDecl.name)) {
|
|
967
|
+
ret[WebpackAstParser.SYM_CJS_DEFAULT] = [maybeDecl.name];
|
|
968
|
+
}
|
|
969
|
+
// parsed everything, return result
|
|
970
|
+
return ret;
|
|
971
|
+
}
|
|
972
|
+
// TODO: add more styles
|
|
973
|
+
return undefined;
|
|
974
|
+
}
|
|
975
|
+
rawMakeExportMapObjectLiteral(node) {
|
|
976
|
+
const props = node.properties
|
|
977
|
+
.map((x) => {
|
|
978
|
+
if (isSpreadAssignment(x)) {
|
|
979
|
+
if (!isIdentifier(x.expression)) {
|
|
980
|
+
logger.error("Spread assignment is not an identifier, this should be handled");
|
|
981
|
+
}
|
|
982
|
+
const spread = this.rawMakeExportMapRecursive(x.expression);
|
|
983
|
+
if (Array.isArray(spread)) {
|
|
984
|
+
logger.warn("Identifier in object spread is not an object, this should be handled");
|
|
985
|
+
return false;
|
|
986
|
+
}
|
|
987
|
+
const { [WebpackAstParser.SYM_CJS_DEFAULT]: _default, [WebpackAstParser.SYM_HOVER]: _, ...rest } = spread;
|
|
988
|
+
return Object.entries(rest);
|
|
989
|
+
}
|
|
990
|
+
return [[x.name.getText(), this.rawMakeExportMapRecursive(x)]];
|
|
991
|
+
})
|
|
992
|
+
.filter((x) => x !== false)
|
|
993
|
+
.flat();
|
|
994
|
+
if (props.length !== 0)
|
|
995
|
+
props.push([WebpackAstParser.SYM_CJS_DEFAULT, [node.getChildAt(0)]]);
|
|
996
|
+
return fromEntries(props);
|
|
997
|
+
}
|
|
998
|
+
rawMakeExportMapPropertyAssignment(node) {
|
|
999
|
+
const objRange = this.rawMakeExportMapRecursive(node.initializer);
|
|
1000
|
+
if (isExportRange(objRange))
|
|
1001
|
+
// FIXME: this seems... wrong
|
|
1002
|
+
return prependToExportRange(objRange, node.name);
|
|
1003
|
+
return {
|
|
1004
|
+
[node.name.getText()]: objRange,
|
|
1005
|
+
};
|
|
1006
|
+
}
|
|
1007
|
+
rawMakeExportMapFunctionish(node) {
|
|
1008
|
+
wrapperFuncCheck: {
|
|
1009
|
+
if (!node.body)
|
|
1010
|
+
break wrapperFuncCheck;
|
|
1011
|
+
// if the arrow function returns a simple identifier, use that
|
|
1012
|
+
if (isIdentifier(node.body) || isPropertyAccessExpression(node.body)) {
|
|
1013
|
+
const ret = this.rawMakeExportMapRecursive(node.body);
|
|
1014
|
+
if (allEntries(ret).length > 0)
|
|
1015
|
+
return ret;
|
|
1016
|
+
}
|
|
1017
|
+
if (isBlock(node.body) && node.body.statements.length === 1) {
|
|
1018
|
+
const ident = findReturnIdentifier(node);
|
|
1019
|
+
if (!ident)
|
|
1020
|
+
break wrapperFuncCheck;
|
|
1021
|
+
const ret = this.rawMakeExportMapRecursive(ident);
|
|
1022
|
+
if (allEntries(ret).length > 0)
|
|
1023
|
+
return ret;
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
// FIXME: return [node.name || node] is prob better
|
|
1027
|
+
if (node.name)
|
|
1028
|
+
return [node.name];
|
|
1029
|
+
return [node];
|
|
1030
|
+
}
|
|
1031
|
+
rawMakeExportMapCallExpression(node) {
|
|
1032
|
+
const maybeEnumExport = this.tryRawMakeExportMapForEnumIIFE(node);
|
|
1033
|
+
if (maybeEnumExport) {
|
|
1034
|
+
return maybeEnumExport;
|
|
1035
|
+
}
|
|
1036
|
+
return [node];
|
|
1037
|
+
}
|
|
1038
|
+
rawMakeExportMapIdentifier(node) {
|
|
1039
|
+
const trail = this.unwrapVariableDeclaration(node);
|
|
1040
|
+
// FIXME: !trail?.length
|
|
1041
|
+
if (!trail || trail.length === 0) {
|
|
1042
|
+
return [node];
|
|
1043
|
+
}
|
|
1044
|
+
const last = this.getVariableInitializer(trail.at(-1));
|
|
1045
|
+
if (!last) {
|
|
1046
|
+
logger.trace("[WebpackAstParser] Could not find initializer of identifier");
|
|
1047
|
+
return [trail.at(-1)];
|
|
1048
|
+
}
|
|
1049
|
+
return this.rawMakeExportMapRecursive(last);
|
|
1050
|
+
}
|
|
1051
|
+
rawMakeExportMapLiteralish(node) {
|
|
1052
|
+
return annotateExportRange(node.getText(), [node]);
|
|
1053
|
+
}
|
|
835
1054
|
rawMakeExportMapRecursive(node) {
|
|
836
1055
|
if (!node)
|
|
837
1056
|
throw new Error("node should not be undefined");
|
|
838
1057
|
if (isObjectLiteralExpression(node)) {
|
|
839
|
-
|
|
840
|
-
.map((x) => {
|
|
841
|
-
if (isSpreadAssignment(x)) {
|
|
842
|
-
if (!isIdentifier(x.expression)) {
|
|
843
|
-
logger.error("Spread assignment is not an identifier, this should be handled");
|
|
844
|
-
}
|
|
845
|
-
const spread = this.rawMakeExportMapRecursive(x.expression);
|
|
846
|
-
if (Array.isArray(spread)) {
|
|
847
|
-
logger.warn("Identifier in object spread is not an object, this should be handled");
|
|
848
|
-
return false;
|
|
849
|
-
}
|
|
850
|
-
const { [WebpackAstParser.SYM_CJS_DEFAULT]: _default, [WebpackAstParser.SYM_HOVER]: _, ...rest } = spread;
|
|
851
|
-
return Object.entries(rest);
|
|
852
|
-
}
|
|
853
|
-
return [[x.name.getText(), this.rawMakeExportMapRecursive(x)]];
|
|
854
|
-
})
|
|
855
|
-
.filter((x) => x !== false)
|
|
856
|
-
.flat();
|
|
857
|
-
if (props.length !== 0)
|
|
858
|
-
props.push([WebpackAstParser.SYM_CJS_DEFAULT, [node.getChildAt(0)]]);
|
|
859
|
-
return fromEntries(props);
|
|
1058
|
+
return this.rawMakeExportMapObjectLiteral(node);
|
|
860
1059
|
}
|
|
861
1060
|
else if (isLiteralish(node)) {
|
|
862
|
-
return
|
|
1061
|
+
return this.rawMakeExportMapLiteralish(node);
|
|
863
1062
|
}
|
|
864
1063
|
else if (isPropertyAssignment(node)) {
|
|
865
|
-
|
|
866
|
-
if (Array.isArray(objRange))
|
|
867
|
-
return [node.name, ...[objRange].flat()];
|
|
868
|
-
return {
|
|
869
|
-
[node.name.getText()]: objRange,
|
|
870
|
-
};
|
|
1064
|
+
return this.rawMakeExportMapPropertyAssignment(node);
|
|
871
1065
|
}
|
|
872
1066
|
else if (isFunctionish(node)) {
|
|
873
|
-
|
|
874
|
-
if (!node.body)
|
|
875
|
-
break wrapperFuncCheck;
|
|
876
|
-
// if the arrow function returns a simple identifier, use that
|
|
877
|
-
if (isIdentifier(node.body) || isPropertyAccessExpression(node.body)) {
|
|
878
|
-
const ret = this.rawMakeExportMapRecursive(node.body);
|
|
879
|
-
if (allEntries(ret).length > 0)
|
|
880
|
-
return ret;
|
|
881
|
-
}
|
|
882
|
-
if (isBlock(node.body) && node.body.statements.length === 1) {
|
|
883
|
-
const ident = findReturnIdentifier(node);
|
|
884
|
-
if (!ident)
|
|
885
|
-
break wrapperFuncCheck;
|
|
886
|
-
const ret = this.rawMakeExportMapRecursive(ident);
|
|
887
|
-
if (allEntries(ret).length > 0)
|
|
888
|
-
return ret;
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
if (node.name)
|
|
892
|
-
return [node.name];
|
|
893
|
-
return [node];
|
|
1067
|
+
return this.rawMakeExportMapFunctionish(node);
|
|
894
1068
|
}
|
|
895
1069
|
else if (isCallExpression(node)) {
|
|
896
|
-
return
|
|
1070
|
+
return this.rawMakeExportMapCallExpression(node);
|
|
897
1071
|
}
|
|
898
1072
|
else if (isIdentifier(node)) {
|
|
899
|
-
|
|
900
|
-
if (!trail || trail.length === 0) {
|
|
901
|
-
logger.warn("Could not find variable declaration for identifier");
|
|
902
|
-
return [];
|
|
903
|
-
}
|
|
904
|
-
const last = this.getVariableInitializer(trail.at(-1));
|
|
905
|
-
if (!last) {
|
|
906
|
-
logger.trace("[WebpackAstParser] Could not find initializer of identifier");
|
|
907
|
-
return [trail.at(-1)];
|
|
908
|
-
}
|
|
909
|
-
return this.rawMakeExportMapRecursive(last);
|
|
1073
|
+
return this.rawMakeExportMapIdentifier(node);
|
|
910
1074
|
}
|
|
911
1075
|
return [node];
|
|
912
1076
|
}
|
|
@@ -982,6 +1146,8 @@ export class WebpackAstParser extends AstParser {
|
|
|
982
1146
|
const wreqD = this.findWreq_d();
|
|
983
1147
|
if (!wreqD)
|
|
984
1148
|
return;
|
|
1149
|
+
// function (module, exports, wreq)
|
|
1150
|
+
// wreq.d(exports, {exportA: () => a, exportB: () => b});
|
|
985
1151
|
const [, exports] = wreqD.arguments;
|
|
986
1152
|
return Object.fromEntries(exports.properties
|
|
987
1153
|
.map((x) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebpackAstParser.js","sourceRoot":"","sources":["../src/WebpackAstParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebpackAstParser.js","sourceRoot":"","sources":["../src/WebpackAstParser.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import { type LeftHandSideExpression, type MemberName } from "typescript";
|
|
1
2
|
import { Position } from "@vencord-companion/shared/Position";
|
|
2
3
|
import { Range } from "@vencord-companion/shared/Range";
|
|
3
|
-
import type { ExportMap } from "./types";
|
|
4
|
+
import type { AnyExportKey, ExportMap } from "./types";
|
|
4
5
|
import { WebpackAstParser } from "./WebpackAstParser";
|
|
5
6
|
export declare function allEntries<T extends object, K extends keyof T & (string | symbol)>(obj: T): (readonly [K, T[K]])[];
|
|
6
7
|
export declare function fromEntries<T extends Object>(entries: Iterable<readonly [keyof T, T[keyof T]]>): T;
|
|
7
8
|
export declare function allValues<T extends object>(obj: T): (T[keyof T])[];
|
|
8
9
|
export declare function allKeys<T extends object>(obj: T): (keyof T)[];
|
|
10
|
+
type ExportEntry<T> = ExportMap<T> | T[];
|
|
11
|
+
export declare function flattenFilteredExportMap(map: ExportMap<Range>, prefix?: AnyExportKey[]): AnyExportKey[][];
|
|
12
|
+
export declare function makeFilteredExportMap(map: ExportEntry<Range>, pos: Position): ExportEntry<Range> | null;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated
|
|
15
|
+
*/
|
|
9
16
|
export declare function containsPosition(range: ExportMap<Range> | Range[], pos: Position): boolean;
|
|
10
17
|
/**
|
|
11
18
|
* @param text the module text
|
|
@@ -25,3 +32,9 @@ export declare function isWebpackModule(text: string): boolean;
|
|
|
25
32
|
export declare function formatModule(moduleContents: string, moduleId?: string | number | undefined, isFind?: boolean): string;
|
|
26
33
|
export declare function TAssert<T>(thing: any): asserts thing is T;
|
|
27
34
|
export declare function assertNotHover<T>(thing: ExportMap<T>[keyof ExportMap<T>]): asserts thing is Exclude<ExportMap<T>[keyof ExportMap<T>], ExportMap<T>[typeof WebpackAstParser.SYM_HOVER]>;
|
|
35
|
+
export declare function matchExportChain(usageChain: readonly [LeftHandSideExpression, ...MemberName[]] | undefined | null, exportChain: AnyExportKey[]): MemberName | false;
|
|
36
|
+
export declare function annotateExportRange<T>(note: string, range: T[]): ExportMap<T>;
|
|
37
|
+
export declare function isExportRange<T>(entry: ExportEntry<T>): boolean;
|
|
38
|
+
export declare function prependToExportRange<T>(entry: ExportEntry<T>, ...items: T[]): ExportEntry<T>;
|
|
39
|
+
export declare function appendToExportRange<T>(entry: ExportEntry<T>, ...items: T[]): ExportEntry<T>;
|
|
40
|
+
export {};
|
package/dist/util.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isIdentifier } from "typescript";
|
|
1
2
|
import { Position } from "@vencord-companion/shared/Position";
|
|
2
3
|
import { Range } from "@vencord-companion/shared/Range";
|
|
3
4
|
import { WebpackAstParser } from "./WebpackAstParser";
|
|
@@ -26,6 +27,43 @@ export function allKeys(obj) {
|
|
|
26
27
|
return allEntries(obj)
|
|
27
28
|
.map(([k]) => k);
|
|
28
29
|
}
|
|
30
|
+
export function flattenFilteredExportMap(map, prefix = []) {
|
|
31
|
+
return allEntries(map).flatMap(([k, v]) => {
|
|
32
|
+
if (k === WebpackAstParser.SYM_HOVER) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
// typescript is stupid and discords custom symbol types over array spread
|
|
36
|
+
const currentPath = [...prefix, k];
|
|
37
|
+
if (v !== null && typeof v === "object" && !Array.isArray(v)) {
|
|
38
|
+
return flattenFilteredExportMap(v, currentPath);
|
|
39
|
+
}
|
|
40
|
+
return [currentPath];
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function makeFilteredExportMap(map, pos) {
|
|
44
|
+
if (Array.isArray(map)) {
|
|
45
|
+
if (map.some((r) => r.contains(pos))) {
|
|
46
|
+
return map;
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const entries = allEntries(map).map(([k, v]) => {
|
|
51
|
+
if (k === WebpackAstParser.SYM_HOVER) {
|
|
52
|
+
return [k, v];
|
|
53
|
+
}
|
|
54
|
+
assertNotHover(v);
|
|
55
|
+
const filtered = makeFilteredExportMap(v, pos);
|
|
56
|
+
if (!filtered) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return [k, filtered];
|
|
60
|
+
})
|
|
61
|
+
.filter((v) => v !== null);
|
|
62
|
+
return entries.length ? Object.fromEntries(entries) : null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated
|
|
66
|
+
*/
|
|
29
67
|
export function containsPosition(range, pos) {
|
|
30
68
|
if (Array.isArray(range)) {
|
|
31
69
|
return range.some((r) => r.contains(pos));
|
|
@@ -63,4 +101,49 @@ export function TAssert(thing) {
|
|
|
63
101
|
}
|
|
64
102
|
export function assertNotHover(thing) {
|
|
65
103
|
}
|
|
104
|
+
export function matchExportChain(usageChain, exportChain) {
|
|
105
|
+
// error || trying to match a.b.c.d against something like a.b
|
|
106
|
+
// we have to add 1 to account for the identifier for the module itself
|
|
107
|
+
if (!usageChain || exportChain.length + 1 > usageChain.length) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
let cur;
|
|
111
|
+
for (let i = 0; i < exportChain.length; i++) {
|
|
112
|
+
cur = usageChain[i + 1]; // +1 to skip the module identifier
|
|
113
|
+
if (!isIdentifier(cur) || cur.text !== exportChain[i]) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return cur ?? false;
|
|
118
|
+
}
|
|
119
|
+
export function annotateExportRange(note, range) {
|
|
120
|
+
return {
|
|
121
|
+
[WebpackAstParser.SYM_HOVER]: note,
|
|
122
|
+
[WebpackAstParser.SYM_CJS_DEFAULT]: range,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// TODO: below should tag the types
|
|
126
|
+
export function isExportRange(entry) {
|
|
127
|
+
return Array.isArray(entry) || (WebpackAstParser.SYM_CJS_DEFAULT in entry
|
|
128
|
+
&& WebpackAstParser.SYM_HOVER in entry
|
|
129
|
+
&& allEntries(entry).length === 2);
|
|
130
|
+
}
|
|
131
|
+
export function prependToExportRange(entry, ...items) {
|
|
132
|
+
if (Array.isArray(entry)) {
|
|
133
|
+
return [...items, ...entry];
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
...entry,
|
|
137
|
+
[WebpackAstParser.SYM_CJS_DEFAULT]: [...items, ...entry[WebpackAstParser.SYM_CJS_DEFAULT]],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export function appendToExportRange(entry, ...items) {
|
|
141
|
+
if (Array.isArray(entry)) {
|
|
142
|
+
return [...entry, ...items];
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
...entry,
|
|
146
|
+
[WebpackAstParser.SYM_CJS_DEFAULT]: [...entry[WebpackAstParser.SYM_CJS_DEFAULT], ...items],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
66
149
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,UAAU,CAA0D,GAAM;IACtF,MAAM,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,IAAI,GAAwB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAElE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU;YACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,UAAU;YACtB,OAAO,kBAAkB,CAAC;QAE9B,OAAO,CAAC,GAAQ,EAAG,GAAW,CAAC,GAAG,CAAS,CAAU,CAAC;IAC1D,CAAC,CAAC;SACG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAmB,OAAiD;IAC3F,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAQ,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CAAmB,GAAM;IAC9C,OAAO,UAAU,CAAC,GAAG,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,OAAO,CAAmB,GAAM;IAC5C,OAAO,UAAU,CAAC,GAAG,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAiC,EAAE,GAAa;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vencord-companion/webpack-ast-parser",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"license": "LGPL-3.0-or-later",
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@sadan4/devtools-pretty-printer": "^1.0.4",
|
|
18
|
-
"@vencord-companion/shared": "1.0
|
|
19
|
-
"@vencord-companion/ast-parser": "1.0
|
|
18
|
+
"@vencord-companion/shared": "1.1.0",
|
|
19
|
+
"@vencord-companion/ast-parser": "1.1.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"ts-api-utils": "^2.1.0",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"preversion": "mkdir .git || :",
|
|
30
30
|
"bump": "npm version",
|
|
31
31
|
"postversion": "rmdir .git",
|
|
32
|
-
"build": "tsc -b"
|
|
32
|
+
"build": "tsc -b",
|
|
33
|
+
"watch": "tsc -b --watch"
|
|
33
34
|
}
|
|
34
35
|
}
|