@jterrats/smart-deployment 1.0.5 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/lib/ai/wave-validation-prompt.d.ts +2 -0
- package/lib/ai/wave-validation-prompt.js +56 -0
- package/lib/ai/wave-validation-prompt.js.map +1 -0
- package/lib/ai/wave-validation-report.d.ts +2 -0
- package/lib/ai/wave-validation-report.js +96 -0
- package/lib/ai/wave-validation-report.js.map +1 -0
- package/lib/ai/wave-validation-response-parser.d.ts +8 -0
- package/lib/ai/wave-validation-response-parser.js +112 -0
- package/lib/ai/wave-validation-response-parser.js.map +1 -0
- package/lib/ai/wave-validation-result-synthesis.d.ts +6 -0
- package/lib/ai/wave-validation-result-synthesis.js +49 -0
- package/lib/ai/wave-validation-result-synthesis.js.map +1 -0
- package/lib/ai/wave-validation-service.d.ts +1 -55
- package/lib/ai/wave-validation-service.js +11 -359
- package/lib/ai/wave-validation-service.js.map +1 -1
- package/lib/ai/wave-validation-transport.d.ts +7 -0
- package/lib/ai/wave-validation-transport.js +10 -0
- package/lib/ai/wave-validation-transport.js.map +1 -0
- package/lib/analysis/analysis-reporter.d.ts +29 -0
- package/lib/analysis/analysis-reporter.js +84 -1
- package/lib/analysis/analysis-reporter.js.map +1 -1
- package/lib/analysis/analyze-context-service.d.ts +1 -1
- package/lib/analysis/analyze-context-service.js +2 -0
- package/lib/analysis/analyze-context-service.js.map +1 -1
- package/lib/analysis/project-analysis-service.d.ts +2 -0
- package/lib/analysis/project-analysis-service.js +2 -0
- package/lib/analysis/project-analysis-service.js.map +1 -1
- package/lib/commands/ci-publish.d.ts +14 -0
- package/lib/commands/ci-publish.js +69 -0
- package/lib/commands/ci-publish.js.map +1 -0
- package/lib/commands/start.d.ts +1 -0
- package/lib/commands/start.js +14 -1
- package/lib/commands/start.js.map +1 -1
- package/lib/commands/status.d.ts +2 -0
- package/lib/commands/status.js +1 -0
- package/lib/commands/status.js.map +1 -1
- package/lib/commands/validate.d.ts +3 -3
- package/lib/commands/validate.js +4 -4
- package/lib/commands/validate.js.map +1 -1
- package/lib/constants/api-version.d.ts +2 -2
- package/lib/constants/api-version.js +2 -2
- package/lib/constants/deployment-order.js +11 -8
- package/lib/constants/deployment-order.js.map +1 -1
- package/lib/dependencies/circular-dependency-detector.d.ts +1 -31
- package/lib/dependencies/circular-dependency-detector.js +7 -156
- package/lib/dependencies/circular-dependency-detector.js.map +1 -1
- package/lib/dependencies/cycle-break-suggestions.d.ts +3 -0
- package/lib/dependencies/cycle-break-suggestions.js +63 -0
- package/lib/dependencies/cycle-break-suggestions.js.map +1 -0
- package/lib/dependencies/cycle-discovery.d.ts +16 -0
- package/lib/dependencies/cycle-discovery.js +70 -0
- package/lib/dependencies/cycle-discovery.js.map +1 -0
- package/lib/dependencies/dependency-graph-builder.d.ts +0 -65
- package/lib/dependencies/dependency-graph-builder.js +19 -233
- package/lib/dependencies/dependency-graph-builder.js.map +1 -1
- package/lib/dependencies/dependency-graph-intake.d.ts +17 -0
- package/lib/dependencies/dependency-graph-intake.js +20 -0
- package/lib/dependencies/dependency-graph-intake.js.map +1 -0
- package/lib/dependencies/dependency-graph-stats.d.ts +4 -0
- package/lib/dependencies/dependency-graph-stats.js +82 -0
- package/lib/dependencies/dependency-graph-stats.js.map +1 -0
- package/lib/dependencies/dependency-graph-validation.d.ts +16 -0
- package/lib/dependencies/dependency-graph-validation.js +78 -0
- package/lib/dependencies/dependency-graph-validation.js.map +1 -0
- package/lib/dependencies/dependency-impact-analyzer.d.ts +1 -22
- package/lib/dependencies/dependency-impact-analyzer.js +12 -110
- package/lib/dependencies/dependency-impact-analyzer.js.map +1 -1
- package/lib/dependencies/dependency-impact-scoring.d.ts +5 -0
- package/lib/dependencies/dependency-impact-scoring.js +24 -0
- package/lib/dependencies/dependency-impact-scoring.js.map +1 -0
- package/lib/dependencies/dependency-impact-traversal.d.ts +18 -0
- package/lib/dependencies/dependency-impact-traversal.js +74 -0
- package/lib/dependencies/dependency-impact-traversal.js.map +1 -0
- package/lib/dependencies/dependency-resolution-classifier.d.ts +19 -0
- package/lib/dependencies/dependency-resolution-classifier.js +67 -0
- package/lib/dependencies/dependency-resolution-classifier.js.map +1 -0
- package/lib/dependencies/dependency-resolver.d.ts +1 -48
- package/lib/dependencies/dependency-resolver.js +12 -181
- package/lib/dependencies/dependency-resolver.js.map +1 -1
- package/lib/dependencies/dynamic-query-dependency-references.d.ts +3 -0
- package/lib/dependencies/dynamic-query-dependency-references.js +41 -0
- package/lib/dependencies/dynamic-query-dependency-references.js.map +1 -0
- package/lib/dependencies/topological-dependency-sorter.d.ts +10 -0
- package/lib/dependencies/topological-dependency-sorter.js +84 -0
- package/lib/dependencies/topological-dependency-sorter.js.map +1 -0
- package/lib/deployment/cycle-remediation-runner.d.ts +1 -0
- package/lib/deployment/cycle-remediation-runner.js +5 -1
- package/lib/deployment/cycle-remediation-runner.js.map +1 -1
- package/lib/deployment/deployment-runner.d.ts +3 -1
- package/lib/deployment/deployment-runner.js +6 -1
- package/lib/deployment/deployment-runner.js.map +1 -1
- package/lib/deployment/deployment-status-service.d.ts +2 -0
- package/lib/deployment/deployment-status-service.js +2 -0
- package/lib/deployment/deployment-status-service.js.map +1 -1
- package/lib/deployment/deployment-validation-service.js +1 -1
- package/lib/deployment/deployment-validation-service.js.map +1 -1
- package/lib/deployment/dynamic-query-target-validator.d.ts +24 -0
- package/lib/deployment/dynamic-query-target-validator.js +65 -0
- package/lib/deployment/dynamic-query-target-validator.js.map +1 -0
- package/lib/deployment/sf-cli-integration.d.ts +1 -0
- package/lib/deployment/sf-cli-integration.js +1 -1
- package/lib/deployment/sf-cli-integration.js.map +1 -1
- package/lib/deployment/sf-cli-metadata-lookup.d.ts +4 -0
- package/lib/deployment/sf-cli-metadata-lookup.js +26 -0
- package/lib/deployment/sf-cli-metadata-lookup.js.map +1 -0
- package/lib/deployment/special-deployment-plan.d.ts +41 -0
- package/lib/deployment/special-deployment-plan.js +265 -0
- package/lib/deployment/special-deployment-plan.js.map +1 -0
- package/lib/deployment/start-execution-service.d.ts +5 -0
- package/lib/deployment/start-execution-service.js +26 -6
- package/lib/deployment/start-execution-service.js.map +1 -1
- package/lib/deployment/wave-graph-state.d.ts +6 -0
- package/lib/deployment/wave-graph-state.js +89 -0
- package/lib/deployment/wave-graph-state.js.map +1 -0
- package/lib/deployment/wave-manifest-service.d.ts +1 -0
- package/lib/deployment/wave-manifest-service.js +1 -1
- package/lib/deployment/wave-manifest-service.js.map +1 -1
- package/lib/errors/deployment-error.js +1 -1
- package/lib/errors/deployment-error.js.map +1 -1
- package/lib/parsers/apex-class-dependencies.d.ts +4 -0
- package/lib/parsers/apex-class-dependencies.js +122 -0
- package/lib/parsers/apex-class-dependencies.js.map +1 -0
- package/lib/parsers/apex-class-lexical.d.ts +3 -0
- package/lib/parsers/apex-class-lexical.js +101 -0
- package/lib/parsers/apex-class-lexical.js.map +1 -0
- package/lib/parsers/apex-class-names.d.ts +18 -0
- package/lib/parsers/apex-class-names.js +93 -0
- package/lib/parsers/apex-class-names.js.map +1 -0
- package/lib/parsers/apex-class-parser-model.d.ts +59 -0
- package/lib/parsers/apex-class-parser-model.js +2 -0
- package/lib/parsers/apex-class-parser-model.js.map +1 -0
- package/lib/parsers/apex-class-parser.d.ts +3 -29
- package/lib/parsers/apex-class-parser.js +10 -395
- package/lib/parsers/apex-class-parser.js.map +1 -1
- package/lib/parsers/apex-class-symbols.d.ts +2 -0
- package/lib/parsers/apex-class-symbols.js +61 -0
- package/lib/parsers/apex-class-symbols.js.map +1 -0
- package/lib/parsers/apex-dynamic-query-analysis.d.ts +2 -0
- package/lib/parsers/apex-dynamic-query-analysis.js +150 -0
- package/lib/parsers/apex-dynamic-query-analysis.js.map +1 -0
- package/lib/parsers/custom-metadata-dynamic-query-analysis.d.ts +2 -0
- package/lib/parsers/custom-metadata-dynamic-query-analysis.js +50 -0
- package/lib/parsers/custom-metadata-dynamic-query-analysis.js.map +1 -0
- package/lib/parsers/custom-metadata-parser.d.ts +2 -0
- package/lib/parsers/custom-metadata-parser.js +3 -0
- package/lib/parsers/custom-metadata-parser.js.map +1 -1
- package/lib/parsers/custom-object-dependency-builder.d.ts +3 -0
- package/lib/parsers/custom-object-dependency-builder.js +103 -0
- package/lib/parsers/custom-object-dependency-builder.js.map +1 -0
- package/lib/parsers/custom-object-parser.js +1 -208
- package/lib/parsers/custom-object-parser.js.map +1 -1
- package/lib/parsers/custom-object-reference-helpers.d.ts +4 -0
- package/lib/parsers/custom-object-reference-helpers.js +92 -0
- package/lib/parsers/custom-object-reference-helpers.js.map +1 -0
- package/lib/parsers/dynamic-query-reference.d.ts +16 -0
- package/lib/parsers/dynamic-query-reference.js +65 -0
- package/lib/parsers/dynamic-query-reference.js.map +1 -0
- package/lib/parsers/layout-action-analysis.d.ts +6 -0
- package/lib/parsers/layout-action-analysis.js +36 -0
- package/lib/parsers/layout-action-analysis.js.map +1 -0
- package/lib/parsers/layout-parser.js +4 -272
- package/lib/parsers/layout-parser.js.map +1 -1
- package/lib/parsers/layout-reference-analysis.d.ts +9 -0
- package/lib/parsers/layout-reference-analysis.js +70 -0
- package/lib/parsers/layout-reference-analysis.js.map +1 -0
- package/lib/parsers/layout-result-assembly.d.ts +5 -0
- package/lib/parsers/layout-result-assembly.js +35 -0
- package/lib/parsers/layout-result-assembly.js.map +1 -0
- package/lib/parsers/layout-section-analysis.d.ts +7 -0
- package/lib/parsers/layout-section-analysis.js +9 -0
- package/lib/parsers/layout-section-analysis.js.map +1 -0
- package/lib/parsers/lwc-code-analysis.d.ts +10 -0
- package/lib/parsers/lwc-code-analysis.js +161 -0
- package/lib/parsers/lwc-code-analysis.js.map +1 -0
- package/lib/parsers/lwc-metadata-analysis.d.ts +6 -0
- package/lib/parsers/lwc-metadata-analysis.js +112 -0
- package/lib/parsers/lwc-metadata-analysis.js.map +1 -0
- package/lib/parsers/lwc-parser.d.ts +3 -27
- package/lib/parsers/lwc-parser.js +6 -377
- package/lib/parsers/lwc-parser.js.map +1 -1
- package/lib/parsers/lwc-result-assembly.d.ts +4 -0
- package/lib/parsers/lwc-result-assembly.js +47 -0
- package/lib/parsers/lwc-result-assembly.js.map +1 -0
- package/lib/presentation/status-command-presenter.d.ts +1 -0
- package/lib/presentation/status-command-presenter.js +20 -0
- package/lib/presentation/status-command-presenter.js.map +1 -1
- package/lib/scanner/forceignore-parser.d.ts +1 -0
- package/lib/scanner/forceignore-parser.js +14 -3
- package/lib/scanner/forceignore-parser.js.map +1 -1
- package/lib/scanner/structure-validator.js +1 -1
- package/lib/services/metadata-scanner-service.d.ts +2 -0
- package/lib/services/metadata-scanner-service.js +9 -2
- package/lib/services/metadata-scanner-service.js.map +1 -1
- package/lib/services/scanners/additional-metadata-scanner.d.ts +2 -0
- package/lib/services/scanners/additional-metadata-scanner.js +183 -0
- package/lib/services/scanners/additional-metadata-scanner.js.map +1 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +1 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js +11 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
- package/lib/services/scanners/code-metadata-scanner.js +14 -1
- package/lib/services/scanners/code-metadata-scanner.js.map +1 -1
- package/lib/services/scanners/data-metadata-scanner.js +24 -8
- package/lib/services/scanners/data-metadata-scanner.js.map +1 -1
- package/lib/types/metadata.d.ts +1 -1
- package/lib/utils/cache-entry-serializer.d.ts +7 -0
- package/lib/utils/cache-entry-serializer.js +15 -0
- package/lib/utils/cache-entry-serializer.js.map +1 -0
- package/lib/utils/cache-expiry-policy.d.ts +7 -0
- package/lib/utils/cache-expiry-policy.js +34 -0
- package/lib/utils/cache-expiry-policy.js.map +1 -0
- package/lib/utils/cache-key-derivation.d.ts +11 -0
- package/lib/utils/cache-key-derivation.js +28 -0
- package/lib/utils/cache-key-derivation.js.map +1 -0
- package/lib/utils/cache-lock-lifecycle.d.ts +15 -0
- package/lib/utils/cache-lock-lifecycle.js +84 -0
- package/lib/utils/cache-lock-lifecycle.js.map +1 -0
- package/lib/utils/cache-logger.d.ts +8 -0
- package/lib/utils/cache-logger.js +19 -0
- package/lib/utils/cache-logger.js.map +1 -0
- package/lib/utils/cache-manager.d.ts +1 -2
- package/lib/utils/cache-manager.js +7 -253
- package/lib/utils/cache-manager.js.map +1 -1
- package/lib/utils/cache-storage.d.ts +20 -0
- package/lib/utils/cache-storage.js +83 -0
- package/lib/utils/cache-storage.js.map +1 -0
- package/lib/validators/xml-metadata-validator.js +1 -1
- package/lib/waves/priority-wave-generator.js +8 -2
- package/lib/waves/priority-wave-generator.js.map +1 -1
- package/lib/waves/test-optimizer-discovery.d.ts +12 -0
- package/lib/waves/test-optimizer-discovery.js +46 -0
- package/lib/waves/test-optimizer-discovery.js.map +1 -0
- package/lib/waves/test-optimizer-matching.d.ts +6 -0
- package/lib/waves/test-optimizer-matching.js +43 -0
- package/lib/waves/test-optimizer-matching.js.map +1 -0
- package/lib/waves/test-optimizer-model.d.ts +92 -0
- package/lib/waves/test-optimizer-model.js +2 -0
- package/lib/waves/test-optimizer-model.js.map +1 -0
- package/lib/waves/test-optimizer-scoring.d.ts +11 -0
- package/lib/waves/test-optimizer-scoring.js +53 -0
- package/lib/waves/test-optimizer-scoring.js.map +1 -0
- package/lib/waves/test-optimizer.d.ts +2 -102
- package/lib/waves/test-optimizer.js +9 -154
- package/lib/waves/test-optimizer.js.map +1 -1
- package/lib/waves/wave-builder.d.ts +0 -11
- package/lib/waves/wave-builder.js +19 -193
- package/lib/waves/wave-builder.js.map +1 -1
- package/lib/waves/wave-graph.d.ts +25 -0
- package/lib/waves/wave-graph.js +138 -0
- package/lib/waves/wave-graph.js.map +1 -0
- package/lib/waves/wave-metadata.d.ts +4 -0
- package/lib/waves/wave-metadata.js +36 -0
- package/lib/waves/wave-metadata.js.map +1 -0
- package/lib/waves/wave-priority-policy.d.ts +5 -0
- package/lib/waves/wave-priority-policy.js +83 -0
- package/lib/waves/wave-priority-policy.js.map +1 -0
- package/lib/waves/wave-topology.d.ts +28 -0
- package/lib/waves/wave-topology.js +65 -0
- package/lib/waves/wave-topology.js.map +1 -0
- package/messages/start.json +5 -5
- package/messages/validate.json +1 -1
- package/npm-shrinkwrap.json +342 -751
- package/oclif.lock +83 -262
- package/oclif.manifest.json +77 -7
- package/package.json +6 -2
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ApexClassMetadata } from '../types/salesforce/apex.js';
|
|
2
|
+
/**
|
|
3
|
+
* Apex class dependency types
|
|
4
|
+
*/
|
|
5
|
+
import type { DynamicQueryReference } from './dynamic-query-reference.js';
|
|
6
|
+
export type ApexDependencyType = 'extends' | 'implements' | 'static_method' | 'instantiation' | 'variable_declaration' | 'inner_class' | 'dynamic_instantiation';
|
|
7
|
+
/**
|
|
8
|
+
* Represents a dependency found in an Apex class
|
|
9
|
+
*/
|
|
10
|
+
export type ApexDependency = {
|
|
11
|
+
type: ApexDependencyType;
|
|
12
|
+
className: string;
|
|
13
|
+
lineNumber?: number;
|
|
14
|
+
isStandard: boolean;
|
|
15
|
+
isManagedPackage: boolean;
|
|
16
|
+
namespace?: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Result of parsing an Apex class
|
|
20
|
+
* Optionally includes metadata from .cls-meta.xml
|
|
21
|
+
*/
|
|
22
|
+
export type ApexParseResult = {
|
|
23
|
+
className: string;
|
|
24
|
+
namespace?: string;
|
|
25
|
+
extends?: string;
|
|
26
|
+
implements: string[];
|
|
27
|
+
dependencies: ApexDependency[];
|
|
28
|
+
dynamicQueryReferences: DynamicQueryReference[];
|
|
29
|
+
innerClasses: string[];
|
|
30
|
+
metadata?: ApexClassMetadata;
|
|
31
|
+
};
|
|
32
|
+
export type ApexLexicalContext = {
|
|
33
|
+
filePath: string;
|
|
34
|
+
className: string;
|
|
35
|
+
originalCode: string;
|
|
36
|
+
cleanCode: string;
|
|
37
|
+
};
|
|
38
|
+
export type ApexLexicalPreparation = Pick<ApexLexicalContext, 'originalCode' | 'cleanCode'>;
|
|
39
|
+
export type ApexSymbolExtraction = {
|
|
40
|
+
namespace?: string;
|
|
41
|
+
extendsClass?: string;
|
|
42
|
+
implementsList: string[];
|
|
43
|
+
innerClasses: string[];
|
|
44
|
+
};
|
|
45
|
+
export type ApexTestMetadata = {
|
|
46
|
+
isTestClass: boolean;
|
|
47
|
+
usesIsTestAnnotation: boolean;
|
|
48
|
+
usesTestMethodKeyword: boolean;
|
|
49
|
+
};
|
|
50
|
+
export type ApexReferenceDependencyExtraction = {
|
|
51
|
+
staticMethodCalls: ApexDependency[];
|
|
52
|
+
instantiations: ApexDependency[];
|
|
53
|
+
variableDeclarations: ApexDependency[];
|
|
54
|
+
dynamicInstantiations: ApexDependency[];
|
|
55
|
+
};
|
|
56
|
+
export type ApexDependencyBuckets = {
|
|
57
|
+
signatureDependencies: ApexDependency[];
|
|
58
|
+
referenceDependencies: ApexReferenceDependencyExtraction;
|
|
59
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apex-class-parser-model.js","sourceRoot":"","sources":["../../src/parsers/apex-class-parser-model.ts"],"names":[],"mappings":""}
|
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export type ApexDependencyType = 'extends' | 'implements' | 'static_method' | 'instantiation' | 'variable_declaration' | 'inner_class' | 'dynamic_instantiation';
|
|
6
|
-
/**
|
|
7
|
-
* Represents a dependency found in an Apex class
|
|
8
|
-
*/
|
|
9
|
-
export type ApexDependency = {
|
|
10
|
-
type: ApexDependencyType;
|
|
11
|
-
className: string;
|
|
12
|
-
lineNumber?: number;
|
|
13
|
-
isStandard: boolean;
|
|
14
|
-
isManagedPackage: boolean;
|
|
15
|
-
namespace?: string;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Result of parsing an Apex class
|
|
19
|
-
* Optionally includes metadata from .cls-meta.xml
|
|
20
|
-
*/
|
|
21
|
-
export type ApexParseResult = {
|
|
22
|
-
className: string;
|
|
23
|
-
namespace?: string;
|
|
24
|
-
extends?: string;
|
|
25
|
-
implements: string[];
|
|
26
|
-
dependencies: ApexDependency[];
|
|
27
|
-
innerClasses: string[];
|
|
28
|
-
metadata?: ApexClassMetadata;
|
|
29
|
-
};
|
|
1
|
+
import type { ApexParseResult } from './apex-class-parser-model.js';
|
|
2
|
+
export type { DynamicQueryReference } from './dynamic-query-reference.js';
|
|
3
|
+
export type { ApexDependency, ApexDependencyType, ApexParseResult } from './apex-class-parser-model.js';
|
|
30
4
|
/**
|
|
31
5
|
* Parse an Apex class file and extract dependencies
|
|
32
6
|
*
|
|
@@ -1,405 +1,18 @@
|
|
|
1
|
-
import { getLogger } from '../utils/logger.js';
|
|
2
1
|
import { ParsingError } from '../errors/parsing-error.js';
|
|
2
|
+
import { getLogger } from '../utils/logger.js';
|
|
3
|
+
import { collectDependencies, collectDependencyBuckets, flattenReferenceDependencies, } from './apex-class-dependencies.js';
|
|
4
|
+
import { extractDynamicQueryReferences } from './apex-dynamic-query-analysis.js';
|
|
5
|
+
import { createLexicalContext, detectTestMetadata } from './apex-class-lexical.js';
|
|
6
|
+
import { extractSymbols } from './apex-class-symbols.js';
|
|
3
7
|
const logger = getLogger('ApexClassParser');
|
|
4
|
-
|
|
5
|
-
* Standard Apex classes that should be ignored
|
|
6
|
-
*/
|
|
7
|
-
const STANDARD_APEX_CLASSES = new Set([
|
|
8
|
-
'System',
|
|
9
|
-
'String',
|
|
10
|
-
'Integer',
|
|
11
|
-
'Boolean',
|
|
12
|
-
'Date',
|
|
13
|
-
'Datetime',
|
|
14
|
-
'Time',
|
|
15
|
-
'Decimal',
|
|
16
|
-
'Double',
|
|
17
|
-
'Long',
|
|
18
|
-
'Id',
|
|
19
|
-
'Blob',
|
|
20
|
-
'Object',
|
|
21
|
-
'List',
|
|
22
|
-
'Set',
|
|
23
|
-
'Map',
|
|
24
|
-
'SObject',
|
|
25
|
-
'Database',
|
|
26
|
-
'Schema',
|
|
27
|
-
'Test',
|
|
28
|
-
'Limits',
|
|
29
|
-
'ApexPages',
|
|
30
|
-
'PageReference',
|
|
31
|
-
'Trigger',
|
|
32
|
-
'UserInfo',
|
|
33
|
-
'Math',
|
|
34
|
-
'Messaging',
|
|
35
|
-
'Http',
|
|
36
|
-
'HttpRequest',
|
|
37
|
-
'HttpResponse',
|
|
38
|
-
'JsonParser',
|
|
39
|
-
'JsonGenerator',
|
|
40
|
-
'JSON',
|
|
41
|
-
'Pattern',
|
|
42
|
-
'Matcher',
|
|
43
|
-
'Exception',
|
|
44
|
-
'DmlException',
|
|
45
|
-
'QueryException',
|
|
46
|
-
'NullPointerException',
|
|
47
|
-
'TypeException',
|
|
48
|
-
'CalloutException',
|
|
49
|
-
'LimitException',
|
|
50
|
-
]);
|
|
51
|
-
const TEST_ANNOTATION_PATTERN = /(?:^|\W)@isTest\b/i;
|
|
52
|
-
const TEST_METHOD_PATTERN = /\btestMethod\b/i;
|
|
53
|
-
/**
|
|
54
|
-
* Remove comments from Apex code
|
|
55
|
-
*
|
|
56
|
-
* @ac US-013-AC-9: Remove comments before parsing
|
|
57
|
-
*/
|
|
58
|
-
function removeComments(code) {
|
|
59
|
-
let result = '';
|
|
60
|
-
let inSingleLineComment = false;
|
|
61
|
-
let inMultiLineComment = false;
|
|
62
|
-
let stringDelimiter = null;
|
|
63
|
-
let escapeNext = false;
|
|
64
|
-
for (let index = 0; index < code.length; index++) {
|
|
65
|
-
const current = code[index];
|
|
66
|
-
const next = code[index + 1];
|
|
67
|
-
if (inSingleLineComment) {
|
|
68
|
-
if (current === '\n') {
|
|
69
|
-
inSingleLineComment = false;
|
|
70
|
-
result += current;
|
|
71
|
-
}
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
if (inMultiLineComment) {
|
|
75
|
-
if (current === '*' && next === '/') {
|
|
76
|
-
inMultiLineComment = false;
|
|
77
|
-
index += 1;
|
|
78
|
-
}
|
|
79
|
-
else if (current === '\n') {
|
|
80
|
-
result += '\n';
|
|
81
|
-
}
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
if (stringDelimiter) {
|
|
85
|
-
result += current;
|
|
86
|
-
if (escapeNext) {
|
|
87
|
-
escapeNext = false;
|
|
88
|
-
}
|
|
89
|
-
else if (current === '\\') {
|
|
90
|
-
escapeNext = true;
|
|
91
|
-
}
|
|
92
|
-
else if (current === stringDelimiter) {
|
|
93
|
-
stringDelimiter = null;
|
|
94
|
-
}
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
if (current === '"' || current === "'") {
|
|
98
|
-
stringDelimiter = current;
|
|
99
|
-
result += current;
|
|
100
|
-
continue;
|
|
101
|
-
}
|
|
102
|
-
if (current === '/' && next === '/') {
|
|
103
|
-
inSingleLineComment = true;
|
|
104
|
-
index += 1;
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
if (current === '/' && next === '*') {
|
|
108
|
-
inMultiLineComment = true;
|
|
109
|
-
index += 1;
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
result += current;
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if a class is a standard Apex class
|
|
118
|
-
*
|
|
119
|
-
* @ac US-013-AC-7: Ignore standard classes (System.*, etc.)
|
|
120
|
-
*/
|
|
121
|
-
function isStandardClass(className) {
|
|
122
|
-
// Remove namespace if present
|
|
123
|
-
const cleanName = className.includes('.') ? className.split('.').pop() : className;
|
|
124
|
-
// Check if it's in the standard classes set
|
|
125
|
-
if (STANDARD_APEX_CLASSES.has(cleanName)) {
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
// Check if it starts with a standard prefix
|
|
129
|
-
if (cleanName.startsWith('System.') ||
|
|
130
|
-
cleanName.startsWith('Database.') ||
|
|
131
|
-
cleanName.startsWith('Schema.') ||
|
|
132
|
-
cleanName.startsWith('Test.') ||
|
|
133
|
-
cleanName.startsWith('ApexPages.')) {
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Extract namespace from a fully qualified class name
|
|
140
|
-
*
|
|
141
|
-
* @ac US-013-AC-8: Handle managed packages
|
|
142
|
-
*/
|
|
143
|
-
function extractNamespace(className) {
|
|
144
|
-
// Pattern: Namespace__ClassName or Namespace.ClassName
|
|
145
|
-
const namespacePattern = /^([a-zA-Z][a-zA-Z0-9_]*(?:__|\.))(.+)$/;
|
|
146
|
-
const match = className.match(namespacePattern);
|
|
147
|
-
if (match) {
|
|
148
|
-
const namespace = match[1].replace(/__|\.$/g, '');
|
|
149
|
-
const cleanName = match[2];
|
|
150
|
-
const isManagedPackage = match[1].includes('__');
|
|
151
|
-
return { namespace, cleanName, isManagedPackage };
|
|
152
|
-
}
|
|
153
|
-
return { cleanName: className, isManagedPackage: false };
|
|
154
|
-
}
|
|
155
|
-
function buildDependency(type, className) {
|
|
156
|
-
const { namespace, cleanName, isManagedPackage } = extractNamespace(className);
|
|
8
|
+
function buildParseResult(className, symbols, dependencies, dynamicQueryReferences = []) {
|
|
157
9
|
return {
|
|
158
|
-
type,
|
|
159
|
-
className: cleanName,
|
|
160
|
-
namespace,
|
|
161
|
-
isStandard: false,
|
|
162
|
-
isManagedPackage,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Extract extends relationship
|
|
167
|
-
*
|
|
168
|
-
* @ac US-013-AC-1: Extract extends relationships
|
|
169
|
-
*/
|
|
170
|
-
function extractExtends(code) {
|
|
171
|
-
const extendsPattern = /class\s+\w+\s+extends\s+([a-zA-Z][a-zA-Z0-9_<>.,\s]*?)(?:\s+implements|\s*\{)/i;
|
|
172
|
-
const match = code.match(extendsPattern);
|
|
173
|
-
if (match) {
|
|
174
|
-
// Clean up generic types and whitespace
|
|
175
|
-
return match[1].replace(/<.*?>/g, '').trim();
|
|
176
|
-
}
|
|
177
|
-
return undefined;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Extract implements relationships
|
|
181
|
-
*
|
|
182
|
-
* @ac US-013-AC-2: Extract implements relationships
|
|
183
|
-
*/
|
|
184
|
-
function extractImplements(code) {
|
|
185
|
-
const implementsPattern = /implements\s+([a-zA-Z][a-zA-Z0-9_<>.,\s]+?)(?:\s*\{)/gi;
|
|
186
|
-
const matches = code.matchAll(implementsPattern);
|
|
187
|
-
const interfaces = [];
|
|
188
|
-
for (const match of matches) {
|
|
189
|
-
// Split by comma to handle multiple interfaces
|
|
190
|
-
const interfaceList = match[1].split(',');
|
|
191
|
-
for (const iface of interfaceList) {
|
|
192
|
-
// Clean up generic types and whitespace
|
|
193
|
-
const cleanInterface = iface.replace(/<.*?>/g, '').trim();
|
|
194
|
-
if (cleanInterface && !interfaces.includes(cleanInterface)) {
|
|
195
|
-
interfaces.push(cleanInterface);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return interfaces;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Extract static method calls
|
|
203
|
-
*
|
|
204
|
-
* @ac US-013-AC-3: Extract static method calls
|
|
205
|
-
*/
|
|
206
|
-
function extractStaticMethodCalls(code) {
|
|
207
|
-
const staticCallPattern = /([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)\s*\.\s*[a-zA-Z][a-zA-Z0-9_]*\s*\(/g;
|
|
208
|
-
const matches = code.matchAll(staticCallPattern);
|
|
209
|
-
const dependencies = [];
|
|
210
|
-
const seen = new Set();
|
|
211
|
-
for (const match of matches) {
|
|
212
|
-
const className = match[1];
|
|
213
|
-
// Skip if already seen or is a standard class
|
|
214
|
-
if (seen.has(className) || isStandardClass(className)) {
|
|
215
|
-
continue;
|
|
216
|
-
}
|
|
217
|
-
seen.add(className);
|
|
218
|
-
dependencies.push(buildDependency('static_method', className));
|
|
219
|
-
}
|
|
220
|
-
return dependencies;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Extract object instantiations (new ClassName())
|
|
224
|
-
*
|
|
225
|
-
* @ac US-013-AC-4: Extract object instantiations
|
|
226
|
-
*/
|
|
227
|
-
function extractInstantiations(code) {
|
|
228
|
-
const newPattern = /new\s+([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)\s*(?:<[^>]+>)?\s*\(/g;
|
|
229
|
-
const matches = code.matchAll(newPattern);
|
|
230
|
-
const dependencies = [];
|
|
231
|
-
const seen = new Set();
|
|
232
|
-
for (const match of matches) {
|
|
233
|
-
const className = match[1];
|
|
234
|
-
// Skip if already seen or is a standard class
|
|
235
|
-
if (seen.has(className) || isStandardClass(className)) {
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
seen.add(className);
|
|
239
|
-
dependencies.push(buildDependency('instantiation', className));
|
|
240
|
-
}
|
|
241
|
-
return dependencies;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Extract variable declarations
|
|
245
|
-
*
|
|
246
|
-
* @ac US-013-AC-5: Extract variable declarations
|
|
247
|
-
*/
|
|
248
|
-
function extractVariableDeclarations(code) {
|
|
249
|
-
// Pattern: ClassName variableName = ...
|
|
250
|
-
const varPattern = /(?:^|[;\s{])\s*([A-Z][a-zA-Z0-9_]*(?:\.[A-Z][a-zA-Z0-9_]*)*)\s+[a-z][a-zA-Z0-9_]*\s*[=;]/gm;
|
|
251
|
-
const matches = code.matchAll(varPattern);
|
|
252
|
-
const dependencies = [];
|
|
253
|
-
const seen = new Set();
|
|
254
|
-
for (const match of matches) {
|
|
255
|
-
const className = match[1];
|
|
256
|
-
// Skip if already seen or is a standard class
|
|
257
|
-
if (seen.has(className) || isStandardClass(className)) {
|
|
258
|
-
continue;
|
|
259
|
-
}
|
|
260
|
-
seen.add(className);
|
|
261
|
-
dependencies.push(buildDependency('variable_declaration', className));
|
|
262
|
-
}
|
|
263
|
-
return dependencies;
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Extract inner classes
|
|
267
|
-
*
|
|
268
|
-
* @ac US-013-AC-6: Handle inner classes
|
|
269
|
-
*/
|
|
270
|
-
function extractInnerClasses(code, outerClassName) {
|
|
271
|
-
// Pattern: class InnerClassName { ... }
|
|
272
|
-
// More permissive: allows any combination of modifiers and keywords
|
|
273
|
-
const innerClassPattern = /\bclass\s+([a-zA-Z][a-zA-Z0-9_]*)\s*(?:extends|implements|\{)/g;
|
|
274
|
-
const matches = code.matchAll(innerClassPattern);
|
|
275
|
-
const innerClasses = [];
|
|
276
|
-
for (const match of matches) {
|
|
277
|
-
const className = match[1];
|
|
278
|
-
// Skip the outer class itself
|
|
279
|
-
if (className !== outerClassName && !innerClasses.includes(className)) {
|
|
280
|
-
innerClasses.push(className);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
return innerClasses;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Extract Type.forName() dynamic instantiation
|
|
287
|
-
*
|
|
288
|
-
* @ac US-013-AC-10: Handle Type.forName() dynamic instantiation
|
|
289
|
-
*/
|
|
290
|
-
function extractDynamicInstantiations(code) {
|
|
291
|
-
// Pattern: Type.forName('ClassName') or Type.forName("ClassName")
|
|
292
|
-
const typeForNamePattern = /Type\.forName\s*\(\s*['"]([a-zA-Z][a-zA-Z0-9_.]*)['"][\s)]/g;
|
|
293
|
-
const matches = code.matchAll(typeForNamePattern);
|
|
294
|
-
const dependencies = [];
|
|
295
|
-
const seen = new Set();
|
|
296
|
-
for (const match of matches) {
|
|
297
|
-
const className = match[1];
|
|
298
|
-
// Skip if already seen or is a standard class
|
|
299
|
-
if (seen.has(className) || isStandardClass(className)) {
|
|
300
|
-
continue;
|
|
301
|
-
}
|
|
302
|
-
seen.add(className);
|
|
303
|
-
dependencies.push(buildDependency('dynamic_instantiation', className));
|
|
304
|
-
}
|
|
305
|
-
return dependencies;
|
|
306
|
-
}
|
|
307
|
-
function extractClassNameFromFilePath(filePath) {
|
|
308
|
-
const classNameMatch = filePath.match(/([a-zA-Z][a-zA-Z0-9_]*)\.cls$/);
|
|
309
|
-
if (!classNameMatch) {
|
|
310
|
-
throw new ParsingError(`Invalid Apex class file name: ${filePath}`, {
|
|
311
|
-
filePath,
|
|
312
|
-
suggestion: 'Apex class files must end with .cls',
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
return classNameMatch[1];
|
|
316
|
-
}
|
|
317
|
-
function prepareLexicalSource(content) {
|
|
318
|
-
return {
|
|
319
|
-
originalCode: content,
|
|
320
|
-
cleanCode: removeComments(content),
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
function createLexicalContext(filePath, content) {
|
|
324
|
-
const className = extractClassNameFromFilePath(filePath);
|
|
325
|
-
const lexicalPreparation = prepareLexicalSource(content);
|
|
326
|
-
return {
|
|
327
|
-
filePath,
|
|
328
10
|
className,
|
|
329
|
-
...lexicalPreparation,
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
function extractSymbols(context) {
|
|
333
|
-
const { namespace } = extractNamespace(context.className);
|
|
334
|
-
return {
|
|
335
|
-
namespace,
|
|
336
|
-
extendsClass: extractExtends(context.cleanCode),
|
|
337
|
-
implementsList: extractImplements(context.cleanCode),
|
|
338
|
-
innerClasses: extractInnerClasses(context.cleanCode, context.className),
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
function detectTestMetadata(context) {
|
|
342
|
-
return detectTestMetadataFromPreparation({
|
|
343
|
-
originalCode: context.originalCode,
|
|
344
|
-
cleanCode: context.cleanCode,
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
function detectTestMetadataFromPreparation(preparation) {
|
|
348
|
-
const usesIsTestAnnotation = TEST_ANNOTATION_PATTERN.test(preparation.originalCode);
|
|
349
|
-
const usesTestMethodKeyword = TEST_METHOD_PATTERN.test(preparation.cleanCode);
|
|
350
|
-
return {
|
|
351
|
-
isTestClass: usesIsTestAnnotation || usesTestMethodKeyword,
|
|
352
|
-
usesIsTestAnnotation,
|
|
353
|
-
usesTestMethodKeyword,
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
function extractSignatureDependencies(symbols) {
|
|
357
|
-
const dependencies = [];
|
|
358
|
-
if (symbols.extendsClass && !isStandardClass(symbols.extendsClass)) {
|
|
359
|
-
dependencies.push(buildDependency('extends', symbols.extendsClass));
|
|
360
|
-
}
|
|
361
|
-
for (const iface of symbols.implementsList) {
|
|
362
|
-
if (!isStandardClass(iface)) {
|
|
363
|
-
dependencies.push(buildDependency('implements', iface));
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
return dependencies;
|
|
367
|
-
}
|
|
368
|
-
function extractReferenceDependencies(context) {
|
|
369
|
-
return {
|
|
370
|
-
staticMethodCalls: extractStaticMethodCalls(context.cleanCode),
|
|
371
|
-
instantiations: extractInstantiations(context.cleanCode),
|
|
372
|
-
variableDeclarations: extractVariableDeclarations(context.cleanCode),
|
|
373
|
-
dynamicInstantiations: extractDynamicInstantiations(context.cleanCode),
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
function flattenReferenceDependencies(referenceDependencies) {
|
|
377
|
-
return [
|
|
378
|
-
...referenceDependencies.staticMethodCalls,
|
|
379
|
-
...referenceDependencies.instantiations,
|
|
380
|
-
...referenceDependencies.variableDeclarations,
|
|
381
|
-
...referenceDependencies.dynamicInstantiations,
|
|
382
|
-
];
|
|
383
|
-
}
|
|
384
|
-
function collectDependencyBuckets(context, symbols) {
|
|
385
|
-
return {
|
|
386
|
-
signatureDependencies: extractSignatureDependencies(symbols),
|
|
387
|
-
referenceDependencies: extractReferenceDependencies(context),
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
function collectDependencies(dependencyBuckets) {
|
|
391
|
-
return [
|
|
392
|
-
...dependencyBuckets.signatureDependencies,
|
|
393
|
-
...flattenReferenceDependencies(dependencyBuckets.referenceDependencies),
|
|
394
|
-
];
|
|
395
|
-
}
|
|
396
|
-
function buildParseResult(context, symbols, dependencies) {
|
|
397
|
-
return {
|
|
398
|
-
className: context.className,
|
|
399
11
|
namespace: symbols.namespace,
|
|
400
12
|
extends: symbols.extendsClass,
|
|
401
13
|
implements: symbols.implementsList,
|
|
402
14
|
dependencies,
|
|
15
|
+
dynamicQueryReferences,
|
|
403
16
|
innerClasses: symbols.innerClasses,
|
|
404
17
|
};
|
|
405
18
|
}
|
|
@@ -428,12 +41,14 @@ export function parseApexClass(filePath, content) {
|
|
|
428
41
|
const testMetadata = detectTestMetadata(lexicalContext);
|
|
429
42
|
const dependencyBuckets = collectDependencyBuckets(lexicalContext, symbols);
|
|
430
43
|
const dependencies = collectDependencies(dependencyBuckets);
|
|
431
|
-
const
|
|
44
|
+
const dynamicQueryReferences = extractDynamicQueryReferences(lexicalContext.cleanCode);
|
|
45
|
+
const result = buildParseResult(lexicalContext.className, symbols, dependencies, dynamicQueryReferences);
|
|
432
46
|
logger.debug(`Parsed Apex class: ${lexicalContext.className}`, {
|
|
433
47
|
dependencies: dependencies.length,
|
|
434
48
|
innerClasses: symbols.innerClasses.length,
|
|
435
49
|
isTestClass: testMetadata.isTestClass,
|
|
436
50
|
referenceDependencies: flattenReferenceDependencies(dependencyBuckets.referenceDependencies).length,
|
|
51
|
+
dynamicQueryReferences: dynamicQueryReferences.length,
|
|
437
52
|
});
|
|
438
53
|
return result;
|
|
439
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apex-class-parser.js","sourceRoot":"","sources":["../../src/parsers/apex-class-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apex-class-parser.js","sourceRoot":"","sources":["../../src/parsers/apex-class-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzD,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAE5C,SAAS,gBAAgB,CACvB,SAAiB,EACjB,OAA6B,EAC7B,YAA8B,EAC9B,yBAAkD,EAAE;IAEpD,OAAO;QACL,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,UAAU,EAAE,OAAO,CAAC,cAAc;QAClC,YAAY;QACZ,sBAAsB;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAe;IAC9D,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,sBAAsB,GAAG,6BAA6B,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAEzG,MAAM,CAAC,KAAK,CAAC,sBAAsB,cAAc,CAAC,SAAS,EAAE,EAAE;YAC7D,YAAY,EAAE,YAAY,CAAC,MAAM;YACjC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YACzC,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,qBAAqB,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,MAAM;YACnG,sBAAsB,EAAE,sBAAsB,CAAC,MAAM;SACtD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,+BAA+B,QAAQ,EAAE,EAAE;YAChE,QAAQ;YACR,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { extractNamespace } from './apex-class-names.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extract extends relationship
|
|
4
|
+
*
|
|
5
|
+
* @ac US-013-AC-1: Extract extends relationships
|
|
6
|
+
*/
|
|
7
|
+
function extractExtends(code) {
|
|
8
|
+
const extendsPattern = /class\s+\w+\s+extends\s+([a-zA-Z][a-zA-Z0-9_<>.,\s]*?)(?:\s+implements|\s*\{)/i;
|
|
9
|
+
const match = code.match(extendsPattern);
|
|
10
|
+
if (match) {
|
|
11
|
+
return match[1].replace(/<.*?>/g, '').trim();
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extract implements relationships
|
|
17
|
+
*
|
|
18
|
+
* @ac US-013-AC-2: Extract implements relationships
|
|
19
|
+
*/
|
|
20
|
+
function extractImplements(code) {
|
|
21
|
+
const implementsPattern = /implements\s+([a-zA-Z][a-zA-Z0-9_<>.,\s]+?)(?:\s*\{)/gi;
|
|
22
|
+
const matches = code.matchAll(implementsPattern);
|
|
23
|
+
const interfaces = [];
|
|
24
|
+
for (const match of matches) {
|
|
25
|
+
const interfaceList = match[1].split(',');
|
|
26
|
+
for (const iface of interfaceList) {
|
|
27
|
+
const cleanInterface = iface.replace(/<.*?>/g, '').trim();
|
|
28
|
+
if (cleanInterface && !interfaces.includes(cleanInterface)) {
|
|
29
|
+
interfaces.push(cleanInterface);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return interfaces;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Extract inner classes
|
|
37
|
+
*
|
|
38
|
+
* @ac US-013-AC-6: Handle inner classes
|
|
39
|
+
*/
|
|
40
|
+
function extractInnerClasses(code, outerClassName) {
|
|
41
|
+
const innerClassPattern = /\bclass\s+([a-zA-Z][a-zA-Z0-9_]*)\s*(?:extends|implements|\{)/g;
|
|
42
|
+
const matches = code.matchAll(innerClassPattern);
|
|
43
|
+
const innerClasses = [];
|
|
44
|
+
for (const match of matches) {
|
|
45
|
+
const className = match[1];
|
|
46
|
+
if (className !== outerClassName && !innerClasses.includes(className)) {
|
|
47
|
+
innerClasses.push(className);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return innerClasses;
|
|
51
|
+
}
|
|
52
|
+
export function extractSymbols(context) {
|
|
53
|
+
const { namespace } = extractNamespace(context.className);
|
|
54
|
+
return {
|
|
55
|
+
namespace,
|
|
56
|
+
extendsClass: extractExtends(context.cleanCode),
|
|
57
|
+
implementsList: extractImplements(context.cleanCode),
|
|
58
|
+
innerClasses: extractInnerClasses(context.cleanCode, context.className),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=apex-class-symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apex-class-symbols.js","sourceRoot":"","sources":["../../src/parsers/apex-class-symbols.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,cAAc,GAAG,gFAAgF,CAAC;IACxG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,iBAAiB,GAAG,wDAAwD,CAAC;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,cAAc,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAY,EAAE,cAAsB;IAC/D,MAAM,iBAAiB,GAAG,gEAAgE,CAAC;IAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,SAAS,KAAK,cAAc,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO;QACL,SAAS;QACT,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QAC/C,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;KACxE,CAAC;AACJ,CAAC"}
|