@apexdevtools/apex-parser 3.6.0 → 4.0.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/CHANGELOG.md +6 -0
- package/README.md +2 -2
- package/lib/ApexParser.d.ts +185 -143
- package/lib/ApexParser.js +2917 -2588
- package/lib/ApexParser.js.map +1 -1
- package/lib/ApexParserListener.d.ts +33 -0
- package/lib/ApexParserVisitor.d.ts +21 -0
- package/lib/__tests__/ApexTriggerTest.d.ts +1 -0
- package/lib/__tests__/ApexTriggerTest.js +66 -0
- package/lib/__tests__/ApexTriggerTest.js.map +1 -0
- package/lib/__tests__/system/SampleParseSys.js +1 -1
- package/lib/__tests__/system/SampleParseSys.js.map +1 -1
- package/lib/index.js +31 -26
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,8 @@ import { CondExpressionContext } from "./ApexParser";
|
|
|
33
33
|
import { AssignExpressionContext } from "./ApexParser";
|
|
34
34
|
import { TriggerUnitContext } from "./ApexParser";
|
|
35
35
|
import { TriggerCaseContext } from "./ApexParser";
|
|
36
|
+
import { TriggerBlockContext } from "./ApexParser";
|
|
37
|
+
import { TriggerBlockMemberContext } from "./ApexParser";
|
|
36
38
|
import { CompilationUnitContext } from "./ApexParser";
|
|
37
39
|
import { TypeDeclarationContext } from "./ApexParser";
|
|
38
40
|
import { ClassDeclarationContext } from "./ApexParser";
|
|
@@ -45,6 +47,7 @@ import { InterfaceBodyContext } from "./ApexParser";
|
|
|
45
47
|
import { ClassBodyDeclarationContext } from "./ApexParser";
|
|
46
48
|
import { ModifierContext } from "./ApexParser";
|
|
47
49
|
import { MemberDeclarationContext } from "./ApexParser";
|
|
50
|
+
import { TriggerMemberDeclarationContext } from "./ApexParser";
|
|
48
51
|
import { MethodDeclarationContext } from "./ApexParser";
|
|
49
52
|
import { ConstructorDeclarationContext } from "./ApexParser";
|
|
50
53
|
import { FieldDeclarationContext } from "./ApexParser";
|
|
@@ -584,6 +587,26 @@ export interface ApexParserListener extends ParseTreeListener {
|
|
|
584
587
|
* @param ctx the parse tree
|
|
585
588
|
*/
|
|
586
589
|
exitTriggerCase?: (ctx: TriggerCaseContext) => void;
|
|
590
|
+
/**
|
|
591
|
+
* Enter a parse tree produced by `ApexParser.triggerBlock`.
|
|
592
|
+
* @param ctx the parse tree
|
|
593
|
+
*/
|
|
594
|
+
enterTriggerBlock?: (ctx: TriggerBlockContext) => void;
|
|
595
|
+
/**
|
|
596
|
+
* Exit a parse tree produced by `ApexParser.triggerBlock`.
|
|
597
|
+
* @param ctx the parse tree
|
|
598
|
+
*/
|
|
599
|
+
exitTriggerBlock?: (ctx: TriggerBlockContext) => void;
|
|
600
|
+
/**
|
|
601
|
+
* Enter a parse tree produced by `ApexParser.triggerBlockMember`.
|
|
602
|
+
* @param ctx the parse tree
|
|
603
|
+
*/
|
|
604
|
+
enterTriggerBlockMember?: (ctx: TriggerBlockMemberContext) => void;
|
|
605
|
+
/**
|
|
606
|
+
* Exit a parse tree produced by `ApexParser.triggerBlockMember`.
|
|
607
|
+
* @param ctx the parse tree
|
|
608
|
+
*/
|
|
609
|
+
exitTriggerBlockMember?: (ctx: TriggerBlockMemberContext) => void;
|
|
587
610
|
/**
|
|
588
611
|
* Enter a parse tree produced by `ApexParser.compilationUnit`.
|
|
589
612
|
* @param ctx the parse tree
|
|
@@ -704,6 +727,16 @@ export interface ApexParserListener extends ParseTreeListener {
|
|
|
704
727
|
* @param ctx the parse tree
|
|
705
728
|
*/
|
|
706
729
|
exitMemberDeclaration?: (ctx: MemberDeclarationContext) => void;
|
|
730
|
+
/**
|
|
731
|
+
* Enter a parse tree produced by `ApexParser.triggerMemberDeclaration`.
|
|
732
|
+
* @param ctx the parse tree
|
|
733
|
+
*/
|
|
734
|
+
enterTriggerMemberDeclaration?: (ctx: TriggerMemberDeclarationContext) => void;
|
|
735
|
+
/**
|
|
736
|
+
* Exit a parse tree produced by `ApexParser.triggerMemberDeclaration`.
|
|
737
|
+
* @param ctx the parse tree
|
|
738
|
+
*/
|
|
739
|
+
exitTriggerMemberDeclaration?: (ctx: TriggerMemberDeclarationContext) => void;
|
|
707
740
|
/**
|
|
708
741
|
* Enter a parse tree produced by `ApexParser.methodDeclaration`.
|
|
709
742
|
* @param ctx the parse tree
|
|
@@ -33,6 +33,8 @@ import { CondExpressionContext } from "./ApexParser";
|
|
|
33
33
|
import { AssignExpressionContext } from "./ApexParser";
|
|
34
34
|
import { TriggerUnitContext } from "./ApexParser";
|
|
35
35
|
import { TriggerCaseContext } from "./ApexParser";
|
|
36
|
+
import { TriggerBlockContext } from "./ApexParser";
|
|
37
|
+
import { TriggerBlockMemberContext } from "./ApexParser";
|
|
36
38
|
import { CompilationUnitContext } from "./ApexParser";
|
|
37
39
|
import { TypeDeclarationContext } from "./ApexParser";
|
|
38
40
|
import { ClassDeclarationContext } from "./ApexParser";
|
|
@@ -45,6 +47,7 @@ import { InterfaceBodyContext } from "./ApexParser";
|
|
|
45
47
|
import { ClassBodyDeclarationContext } from "./ApexParser";
|
|
46
48
|
import { ModifierContext } from "./ApexParser";
|
|
47
49
|
import { MemberDeclarationContext } from "./ApexParser";
|
|
50
|
+
import { TriggerMemberDeclarationContext } from "./ApexParser";
|
|
48
51
|
import { MethodDeclarationContext } from "./ApexParser";
|
|
49
52
|
import { ConstructorDeclarationContext } from "./ApexParser";
|
|
50
53
|
import { FieldDeclarationContext } from "./ApexParser";
|
|
@@ -419,6 +422,18 @@ export interface ApexParserVisitor<Result> extends ParseTreeVisitor<Result> {
|
|
|
419
422
|
* @return the visitor result
|
|
420
423
|
*/
|
|
421
424
|
visitTriggerCase?: (ctx: TriggerCaseContext) => Result;
|
|
425
|
+
/**
|
|
426
|
+
* Visit a parse tree produced by `ApexParser.triggerBlock`.
|
|
427
|
+
* @param ctx the parse tree
|
|
428
|
+
* @return the visitor result
|
|
429
|
+
*/
|
|
430
|
+
visitTriggerBlock?: (ctx: TriggerBlockContext) => Result;
|
|
431
|
+
/**
|
|
432
|
+
* Visit a parse tree produced by `ApexParser.triggerBlockMember`.
|
|
433
|
+
* @param ctx the parse tree
|
|
434
|
+
* @return the visitor result
|
|
435
|
+
*/
|
|
436
|
+
visitTriggerBlockMember?: (ctx: TriggerBlockMemberContext) => Result;
|
|
422
437
|
/**
|
|
423
438
|
* Visit a parse tree produced by `ApexParser.compilationUnit`.
|
|
424
439
|
* @param ctx the parse tree
|
|
@@ -491,6 +506,12 @@ export interface ApexParserVisitor<Result> extends ParseTreeVisitor<Result> {
|
|
|
491
506
|
* @return the visitor result
|
|
492
507
|
*/
|
|
493
508
|
visitMemberDeclaration?: (ctx: MemberDeclarationContext) => Result;
|
|
509
|
+
/**
|
|
510
|
+
* Visit a parse tree produced by `ApexParser.triggerMemberDeclaration`.
|
|
511
|
+
* @param ctx the parse tree
|
|
512
|
+
* @return the visitor result
|
|
513
|
+
*/
|
|
514
|
+
visitTriggerMemberDeclaration?: (ctx: TriggerMemberDeclarationContext) => Result;
|
|
494
515
|
/**
|
|
495
516
|
* Visit a parse tree produced by `ApexParser.methodDeclaration`.
|
|
496
517
|
* @param ctx the parse tree
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2023 Kevin Jones, All rights reserved.
|
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
|
5
|
+
modification, are permitted provided that the following conditions
|
|
6
|
+
are met:
|
|
7
|
+
1. Redistributions of source code must retain the above copyright
|
|
8
|
+
notice, this list of conditions and the following disclaimer.
|
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
10
|
+
notice, this list of conditions and the following disclaimer in the
|
|
11
|
+
documentation and/or other materials provided with the distribution.
|
|
12
|
+
3. The name of the author may not be used to endorse or promote products
|
|
13
|
+
derived from this software without specific prior written permission.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
const ApexParser_1 = require("../ApexParser");
|
|
17
|
+
const SyntaxErrorCounter_1 = require("./SyntaxErrorCounter");
|
|
18
|
+
test('Empty Trigger', () => {
|
|
19
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {}");
|
|
20
|
+
const context = parser.triggerUnit();
|
|
21
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
22
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
23
|
+
});
|
|
24
|
+
test('Trigger with statement', () => {
|
|
25
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {System.debug('');}");
|
|
26
|
+
const context = parser.triggerUnit();
|
|
27
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
28
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
29
|
+
});
|
|
30
|
+
test('Trigger with method', () => {
|
|
31
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {public void func() {}}");
|
|
32
|
+
const context = parser.triggerUnit();
|
|
33
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
34
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
35
|
+
});
|
|
36
|
+
test('Trigger with field', () => {
|
|
37
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {String a;}");
|
|
38
|
+
const context = parser.triggerUnit();
|
|
39
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
40
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
41
|
+
});
|
|
42
|
+
test('Trigger with interface', () => {
|
|
43
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {interface Foo {}}");
|
|
44
|
+
const context = parser.triggerUnit();
|
|
45
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
46
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
test('Trigger with class', () => {
|
|
49
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {class Foo {}}");
|
|
50
|
+
const context = parser.triggerUnit();
|
|
51
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
52
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
53
|
+
});
|
|
54
|
+
test('Trigger with enum', () => {
|
|
55
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) {enum Foo {}}");
|
|
56
|
+
const context = parser.triggerUnit();
|
|
57
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
58
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
59
|
+
});
|
|
60
|
+
test('Trigger with property', () => {
|
|
61
|
+
const [parser, errorCounter] = (0, SyntaxErrorCounter_1.createParser)("trigger test on Account (before update, after update) { String a {get { return a; } set { a = value; }} }");
|
|
62
|
+
const context = parser.triggerUnit();
|
|
63
|
+
expect(context).toBeInstanceOf(ApexParser_1.TriggerUnitContext);
|
|
64
|
+
expect(errorCounter.getNumErrors()).toEqual(0);
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=ApexTriggerTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApexTriggerTest.js","sourceRoot":"","sources":["../../src/__tests__/ApexTriggerTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ describe("Parse samples", () => {
|
|
|
45
45
|
const jvmCheck = (0, child_process_1.spawnSync)("java", [
|
|
46
46
|
"-cp",
|
|
47
47
|
"jvm/target/dependency/*:jvm/target/apex-parser.jar",
|
|
48
|
-
"
|
|
48
|
+
"io.github.apexdevtools.apexparser.Check",
|
|
49
49
|
(0, path_1.resolve)(path, r.path)
|
|
50
50
|
], {
|
|
51
51
|
// can only be run from npm dir
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SampleParseSys.js","sourceRoot":"","sources":["../../../src/__tests__/system/SampleParseSys.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;;GAEG;AACH,iDAA0C;AAC1C,2BAA4C;AAC5C,+BAAwC;AACxC,6BAAqC;AAErC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAE3B,mDAAmD;IACnD,SAAS,UAAU;QACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;SACnF;QACD,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAA,gBAAW,EAAC,SAAS,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,cAAO,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,cAAS,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,eAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,+BAA+B;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC;IAC5B,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAY,EAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAC;QAEjC,8CAA8C;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,QAAQ,GAAG,IAAA,yBAAS,EACtB,MAAM,EACN;gBACI,KAAK;gBACL,oDAAoD;gBACpD
|
|
1
|
+
{"version":3,"file":"SampleParseSys.js","sourceRoot":"","sources":["../../../src/__tests__/system/SampleParseSys.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -102,7 +102,7 @@ function checkProject(pathStr) {
|
|
|
102
102
|
const project = findProjectFile(path, 1);
|
|
103
103
|
const packages = getProjectPackages(project);
|
|
104
104
|
if (packages.length == 0) {
|
|
105
|
-
console.log(`[${name}]: No valid SFDX project, checking all cls files`);
|
|
105
|
+
console.log(`[${name}]: No valid SFDX project, checking all cls & trigger files`);
|
|
106
106
|
const result = yield check(path);
|
|
107
107
|
return [Object.assign({ name, path: "." }, result)];
|
|
108
108
|
}
|
|
@@ -123,33 +123,38 @@ exports.checkProject = checkProject;
|
|
|
123
123
|
function parseFiles(path) {
|
|
124
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
125
|
const files = yield dir.promiseFiles(path);
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
error: JSON.stringify(err)
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
parsedCount += 1;
|
|
126
|
+
const classErrors = parseByType(path, files, ".cls", (parser) => { parser.compilationUnit(); });
|
|
127
|
+
const triggerErrors = parseByType(path, files, ".trigger", (parser) => { parser.triggerUnit(); });
|
|
128
|
+
return classErrors.concat(triggerErrors);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function parseByType(rootPath, files, endsWith, operation) {
|
|
132
|
+
let parsedCount = 0;
|
|
133
|
+
const errors = [];
|
|
134
|
+
files.filter(name => name.endsWith(endsWith)).forEach(file => {
|
|
135
|
+
if ((0, fs_1.lstatSync)(file).isFile()) {
|
|
136
|
+
const content = (0, fs_1.readFileSync)(file);
|
|
137
|
+
const lexer = new ApexLexer_1.ApexLexer(new CaseInsensitiveInputStream_1.CaseInsensitiveInputStream(antlr4ts_1.CharStreams.fromString(content.toString())));
|
|
138
|
+
const tokens = new antlr4ts_1.CommonTokenStream(lexer);
|
|
139
|
+
const parser = new ApexParser_1.ApexParser(tokens);
|
|
140
|
+
parser.removeErrorListeners();
|
|
141
|
+
parser.addErrorListener(new ThrowingErrorListener_1.ThrowingErrorListener());
|
|
142
|
+
try {
|
|
143
|
+
operation(parser);
|
|
148
144
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
catch (err) {
|
|
146
|
+
console.log(`Error parsing: ${file}`);
|
|
147
|
+
console.log(err);
|
|
148
|
+
errors.push({
|
|
149
|
+
path: (0, path_1.relative)(rootPath, file),
|
|
150
|
+
error: JSON.stringify(err)
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
parsedCount += 1;
|
|
154
|
+
}
|
|
152
155
|
});
|
|
156
|
+
console.log(`Parsed ${parsedCount} '${endsWith}' files in: ${rootPath}`);
|
|
157
|
+
return errors;
|
|
153
158
|
}
|
|
154
159
|
function findProjectFile(wd, depth) {
|
|
155
160
|
const proj = "sfdx-project.json";
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+BAA2D;AAC3D,gCAA+B;AAC/B,2CAAwC;AACxC,6CAA0C;AAC1C,6EAAyE;AACzE,uCAA0D;AAC1D,mEAAgE;AAChE,2BAAsE;AAEtE,8CAA2B;AAC3B,+CAA4B;AAC5B,+DAA4C;AAC5C,0DAAuC;AACvC,uDAAoC;AACpC,sDAAmC;AACnC,qCAA4C;AAAnC,6GAAA,iBAAiB,OAAA;AAC1B,iEAA+D;AAAtD,kHAAA,eAAe,OAAA;AAoBxB,SAAsB,KAAK,CAAC,OAAgB;;QACxC,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG;YACX,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SACrB;aAAM;YACH,IAAI;gBACA,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;aAC1B;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;aACrB;SACJ;QAED,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;CAAA;AAvBD,sBAuBC;AAED,SAAsB,YAAY,CAAC,OAAgB;;QAC/C,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apexdevtools/apex-parser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"author": "Apex Dev Tools Team <apexdevtools@gmail.com> (https://github.com/apex-dev-tools)",
|
|
5
5
|
"bugs": "https://github.com/apex-dev-tools/apex-parser/issues",
|
|
6
6
|
"description": "Javascript parser for Salesforce Apex Language",
|