@lbroth/rothunter 1.0.0-rc.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/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/adapters/llm.d.ts +68 -0
- package/dist/adapters/llm.d.ts.map +1 -0
- package/dist/adapters/llm.js +189 -0
- package/dist/adapters/llm.js.map +1 -0
- package/dist/config.d.ts +37 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +81 -0
- package/dist/config.js.map +1 -0
- package/dist/detector-registry.d.ts +32 -0
- package/dist/detector-registry.d.ts.map +1 -0
- package/dist/detector-registry.js +74 -0
- package/dist/detector-registry.js.map +1 -0
- package/dist/detectors/api-race.d.ts +6 -0
- package/dist/detectors/api-race.d.ts.map +1 -0
- package/dist/detectors/api-race.js +222 -0
- package/dist/detectors/api-race.js.map +1 -0
- package/dist/detectors/bad-config.d.ts +6 -0
- package/dist/detectors/bad-config.d.ts.map +1 -0
- package/dist/detectors/bad-config.js +529 -0
- package/dist/detectors/bad-config.js.map +1 -0
- package/dist/detectors/console-log-prod.d.ts +6 -0
- package/dist/detectors/console-log-prod.d.ts.map +1 -0
- package/dist/detectors/console-log-prod.js +72 -0
- package/dist/detectors/console-log-prod.js.map +1 -0
- package/dist/detectors/dead-api.d.ts +10 -0
- package/dist/detectors/dead-api.d.ts.map +1 -0
- package/dist/detectors/dead-api.js +115 -0
- package/dist/detectors/dead-api.js.map +1 -0
- package/dist/detectors/dead-export.d.ts +12 -0
- package/dist/detectors/dead-export.d.ts.map +1 -0
- package/dist/detectors/dead-export.js +140 -0
- package/dist/detectors/dead-export.js.map +1 -0
- package/dist/detectors/dead-handler.d.ts +12 -0
- package/dist/detectors/dead-handler.d.ts.map +1 -0
- package/dist/detectors/dead-handler.js +40 -0
- package/dist/detectors/dead-handler.js.map +1 -0
- package/dist/detectors/dead-module.d.ts +14 -0
- package/dist/detectors/dead-module.d.ts.map +1 -0
- package/dist/detectors/dead-module.js +50 -0
- package/dist/detectors/dead-module.js.map +1 -0
- package/dist/detectors/deep-nesting.d.ts +12 -0
- package/dist/detectors/deep-nesting.d.ts.map +1 -0
- package/dist/detectors/deep-nesting.js +133 -0
- package/dist/detectors/deep-nesting.js.map +1 -0
- package/dist/detectors/duplicate-function.d.ts +9 -0
- package/dist/detectors/duplicate-function.d.ts.map +1 -0
- package/dist/detectors/duplicate-function.js +199 -0
- package/dist/detectors/duplicate-function.js.map +1 -0
- package/dist/detectors/duplicate-type.d.ts +9 -0
- package/dist/detectors/duplicate-type.d.ts.map +1 -0
- package/dist/detectors/duplicate-type.js +166 -0
- package/dist/detectors/duplicate-type.js.map +1 -0
- package/dist/detectors/hot-hub-file.d.ts +11 -0
- package/dist/detectors/hot-hub-file.d.ts.map +1 -0
- package/dist/detectors/hot-hub-file.js +42 -0
- package/dist/detectors/hot-hub-file.js.map +1 -0
- package/dist/detectors/long-file.d.ts +12 -0
- package/dist/detectors/long-file.d.ts.map +1 -0
- package/dist/detectors/long-file.js +82 -0
- package/dist/detectors/long-file.js.map +1 -0
- package/dist/detectors/long-function.d.ts +12 -0
- package/dist/detectors/long-function.d.ts.map +1 -0
- package/dist/detectors/long-function.js +45 -0
- package/dist/detectors/long-function.js.map +1 -0
- package/dist/detectors/magic-numbers.d.ts +10 -0
- package/dist/detectors/magic-numbers.d.ts.map +1 -0
- package/dist/detectors/magic-numbers.js +332 -0
- package/dist/detectors/magic-numbers.js.map +1 -0
- package/dist/detectors/mutable-globals.d.ts +6 -0
- package/dist/detectors/mutable-globals.d.ts.map +1 -0
- package/dist/detectors/mutable-globals.js +95 -0
- package/dist/detectors/mutable-globals.js.map +1 -0
- package/dist/detectors/mutation.d.ts +11 -0
- package/dist/detectors/mutation.d.ts.map +1 -0
- package/dist/detectors/mutation.js +397 -0
- package/dist/detectors/mutation.js.map +1 -0
- package/dist/detectors/public-any.d.ts +6 -0
- package/dist/detectors/public-any.d.ts.map +1 -0
- package/dist/detectors/public-any.js +52 -0
- package/dist/detectors/public-any.js.map +1 -0
- package/dist/detectors/race-condition.d.ts +6 -0
- package/dist/detectors/race-condition.d.ts.map +1 -0
- package/dist/detectors/race-condition.js +608 -0
- package/dist/detectors/race-condition.js.map +1 -0
- package/dist/detectors/shared-db-write.d.ts +6 -0
- package/dist/detectors/shared-db-write.d.ts.map +1 -0
- package/dist/detectors/shared-db-write.js +656 -0
- package/dist/detectors/shared-db-write.js.map +1 -0
- package/dist/detectors/silent-catch.d.ts +6 -0
- package/dist/detectors/silent-catch.d.ts.map +1 -0
- package/dist/detectors/silent-catch.js +167 -0
- package/dist/detectors/silent-catch.js.map +1 -0
- package/dist/detectors/similar-functions.d.ts +15 -0
- package/dist/detectors/similar-functions.d.ts.map +1 -0
- package/dist/detectors/similar-functions.js +334 -0
- package/dist/detectors/similar-functions.js.map +1 -0
- package/dist/detectors/skip-tests.d.ts +6 -0
- package/dist/detectors/skip-tests.d.ts.map +1 -0
- package/dist/detectors/skip-tests.js +69 -0
- package/dist/detectors/skip-tests.js.map +1 -0
- package/dist/detectors/todo-comments.d.ts +29 -0
- package/dist/detectors/todo-comments.d.ts.map +1 -0
- package/dist/detectors/todo-comments.js +154 -0
- package/dist/detectors/todo-comments.js.map +1 -0
- package/dist/detectors/unused-deps.d.ts +8 -0
- package/dist/detectors/unused-deps.d.ts.map +1 -0
- package/dist/detectors/unused-deps.js +115 -0
- package/dist/detectors/unused-deps.js.map +1 -0
- package/dist/extraction/api-race-confirmer.d.ts +31 -0
- package/dist/extraction/api-race-confirmer.d.ts.map +1 -0
- package/dist/extraction/api-race-confirmer.js +110 -0
- package/dist/extraction/api-race-confirmer.js.map +1 -0
- package/dist/extraction/llm-confirmer.d.ts +25 -0
- package/dist/extraction/llm-confirmer.d.ts.map +1 -0
- package/dist/extraction/llm-confirmer.js +118 -0
- package/dist/extraction/llm-confirmer.js.map +1 -0
- package/dist/extraction/mutation-confirmer.d.ts +30 -0
- package/dist/extraction/mutation-confirmer.d.ts.map +1 -0
- package/dist/extraction/mutation-confirmer.js +73 -0
- package/dist/extraction/mutation-confirmer.js.map +1 -0
- package/dist/extraction/prompt-chunking.d.ts +37 -0
- package/dist/extraction/prompt-chunking.d.ts.map +1 -0
- package/dist/extraction/prompt-chunking.js +61 -0
- package/dist/extraction/prompt-chunking.js.map +1 -0
- package/dist/extraction/race-confirmer.d.ts +28 -0
- package/dist/extraction/race-confirmer.d.ts.map +1 -0
- package/dist/extraction/race-confirmer.js +68 -0
- package/dist/extraction/race-confirmer.js.map +1 -0
- package/dist/extraction/shared-db-write-confirmer.d.ts +31 -0
- package/dist/extraction/shared-db-write-confirmer.d.ts.map +1 -0
- package/dist/extraction/shared-db-write-confirmer.js +141 -0
- package/dist/extraction/shared-db-write-confirmer.js.map +1 -0
- package/dist/extraction/triage-confirmer.d.ts +59 -0
- package/dist/extraction/triage-confirmer.d.ts.map +1 -0
- package/dist/extraction/triage-confirmer.js +104 -0
- package/dist/extraction/triage-confirmer.js.map +1 -0
- package/dist/graph/cfg.d.ts +45 -0
- package/dist/graph/cfg.d.ts.map +1 -0
- package/dist/graph/cfg.js +198 -0
- package/dist/graph/cfg.js.map +1 -0
- package/dist/graph/decorator-entries.d.ts +2 -0
- package/dist/graph/decorator-entries.d.ts.map +1 -0
- package/dist/graph/decorator-entries.js +89 -0
- package/dist/graph/decorator-entries.js.map +1 -0
- package/dist/graph/entry-points.d.ts +12 -0
- package/dist/graph/entry-points.d.ts.map +1 -0
- package/dist/graph/entry-points.js +282 -0
- package/dist/graph/entry-points.js.map +1 -0
- package/dist/graph/handler-conventions.d.ts +2 -0
- package/dist/graph/handler-conventions.d.ts.map +1 -0
- package/dist/graph/handler-conventions.js +26 -0
- package/dist/graph/handler-conventions.js.map +1 -0
- package/dist/graph/iac-entries.d.ts +2 -0
- package/dist/graph/iac-entries.d.ts.map +1 -0
- package/dist/graph/iac-entries.js +123 -0
- package/dist/graph/iac-entries.js.map +1 -0
- package/dist/graph/import-graph.d.ts +48 -0
- package/dist/graph/import-graph.d.ts.map +1 -0
- package/dist/graph/import-graph.js +86 -0
- package/dist/graph/import-graph.js.map +1 -0
- package/dist/graph/monorepo-detect.d.ts +3 -0
- package/dist/graph/monorepo-detect.d.ts.map +1 -0
- package/dist/graph/monorepo-detect.js +166 -0
- package/dist/graph/monorepo-detect.js.map +1 -0
- package/dist/graph/tsconfig-paths.d.ts +23 -0
- package/dist/graph/tsconfig-paths.d.ts.map +1 -0
- package/dist/graph/tsconfig-paths.js +217 -0
- package/dist/graph/tsconfig-paths.js.map +1 -0
- package/dist/multi-workspace-scanner.d.ts +13 -0
- package/dist/multi-workspace-scanner.d.ts.map +1 -0
- package/dist/multi-workspace-scanner.js +130 -0
- package/dist/multi-workspace-scanner.js.map +1 -0
- package/dist/normalizers/type-normalizer.d.ts +16 -0
- package/dist/normalizers/type-normalizer.d.ts.map +1 -0
- package/dist/normalizers/type-normalizer.js +189 -0
- package/dist/normalizers/type-normalizer.js.map +1 -0
- package/dist/parsers/typescript-parser.d.ts +57 -0
- package/dist/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/parsers/typescript-parser.js +502 -0
- package/dist/parsers/typescript-parser.js.map +1 -0
- package/dist/reporter/json-reporter.d.ts +12 -0
- package/dist/reporter/json-reporter.d.ts.map +1 -0
- package/dist/reporter/json-reporter.js +28 -0
- package/dist/reporter/json-reporter.js.map +1 -0
- package/dist/reporter/markdown-reporter.d.ts +11 -0
- package/dist/reporter/markdown-reporter.d.ts.map +1 -0
- package/dist/reporter/markdown-reporter.js +77 -0
- package/dist/reporter/markdown-reporter.js.map +1 -0
- package/dist/rothunter.d.ts +125 -0
- package/dist/rothunter.d.ts.map +1 -0
- package/dist/rothunter.js +1038 -0
- package/dist/rothunter.js.map +1 -0
- package/dist/server/false-positives.d.ts +34 -0
- package/dist/server/false-positives.d.ts.map +1 -0
- package/dist/server/false-positives.js +85 -0
- package/dist/server/false-positives.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +1529 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/marked-to-fix.d.ts +16 -0
- package/dist/server/marked-to-fix.d.ts.map +1 -0
- package/dist/server/marked-to-fix.js +36 -0
- package/dist/server/marked-to-fix.js.map +1 -0
- package/dist/server/scan-store.d.ts +147 -0
- package/dist/server/scan-store.d.ts.map +1 -0
- package/dist/server/scan-store.js +291 -0
- package/dist/server/scan-store.js.map +1 -0
- package/dist/server/settings-store.d.ts +28 -0
- package/dist/server/settings-store.d.ts.map +1 -0
- package/dist/server/settings-store.js +46 -0
- package/dist/server/settings-store.js.map +1 -0
- package/dist/server/workspace-store.d.ts +39 -0
- package/dist/server/workspace-store.d.ts.map +1 -0
- package/dist/server/workspace-store.js +108 -0
- package/dist/server/workspace-store.js.map +1 -0
- package/dist/types/detector-input.d.ts +37 -0
- package/dist/types/detector-input.d.ts.map +1 -0
- package/dist/types/detector-input.js +2 -0
- package/dist/types/detector-input.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/clustering.d.ts +14 -0
- package/dist/utils/clustering.d.ts.map +1 -0
- package/dist/utils/clustering.js +56 -0
- package/dist/utils/clustering.js.map +1 -0
- package/dist/utils/gitignore.d.ts +32 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +122 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/hash.d.ts +11 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +14 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/ignore-annotation.d.ts +28 -0
- package/dist/utils/ignore-annotation.d.ts.map +1 -0
- package/dist/utils/ignore-annotation.js +46 -0
- package/dist/utils/ignore-annotation.js.map +1 -0
- package/dist/utils/llm-json.d.ts +2 -0
- package/dist/utils/llm-json.d.ts.map +1 -0
- package/dist/utils/llm-json.js +53 -0
- package/dist/utils/llm-json.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +4 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project-conventions.d.ts +2 -0
- package/dist/utils/project-conventions.d.ts.map +1 -0
- package/dist/utils/project-conventions.js +108 -0
- package/dist/utils/project-conventions.js.map +1 -0
- package/dist/utils/regex.d.ts +9 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/regex.js +11 -0
- package/dist/utils/regex.js.map +1 -0
- package/dist/utils/snippet.d.ts +20 -0
- package/dist/utils/snippet.d.ts.map +1 -0
- package/dist/utils/snippet.js +28 -0
- package/dist/utils/snippet.js.map +1 -0
- package/dist/utils/source-reader.d.ts +19 -0
- package/dist/utils/source-reader.d.ts.map +1 -0
- package/dist/utils/source-reader.js +32 -0
- package/dist/utils/source-reader.js.map +1 -0
- package/logo.png +0 -0
- package/package.json +92 -0
- package/scripts/start-llm.mjs +161 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import * as crypto from 'node:crypto';
|
|
2
|
+
const FIELD_NAME_SYNONYMS = {
|
|
3
|
+
uid: 'id',
|
|
4
|
+
userid: 'id',
|
|
5
|
+
identifier: 'id',
|
|
6
|
+
mail: 'email',
|
|
7
|
+
emailaddress: 'email',
|
|
8
|
+
fullname: 'name',
|
|
9
|
+
displayname: 'name',
|
|
10
|
+
username: 'name',
|
|
11
|
+
created: 'createdat',
|
|
12
|
+
createdon: 'createdat',
|
|
13
|
+
updated: 'updatedat',
|
|
14
|
+
modified: 'updatedat',
|
|
15
|
+
modifiedon: 'updatedat',
|
|
16
|
+
};
|
|
17
|
+
export class TypeNormalizer {
|
|
18
|
+
normalize(record) {
|
|
19
|
+
if (record.structure?.kind === 'function') {
|
|
20
|
+
return this.normalizeFunction(record, record.structure);
|
|
21
|
+
}
|
|
22
|
+
if (!record.structure || record.structure.kind !== 'object') {
|
|
23
|
+
const raw = record.structure && 'raw' in record.structure ? record.structure.raw : undefined;
|
|
24
|
+
const fallback = raw ?? record.source;
|
|
25
|
+
const h = sha256(fallback);
|
|
26
|
+
return {
|
|
27
|
+
...record,
|
|
28
|
+
hashStrict: h,
|
|
29
|
+
hashStructural: h,
|
|
30
|
+
hashNormalizedNames: h,
|
|
31
|
+
canonicalSignature: fallback,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const fields = record.structure.fields ?? [];
|
|
35
|
+
const sortedByName = [...fields].sort((a, b) => a.name.localeCompare(b.name));
|
|
36
|
+
const strictSig = serializeFields(sortedByName, { withNames: true, normalizeNames: false });
|
|
37
|
+
// For normalized-names matching, sort by the *normalized* name so that snake↔camel
|
|
38
|
+
// variants land in the same order before hashing (e.g. `user_id` and `uid` both → `id`).
|
|
39
|
+
const sortedByNormalizedName = [...fields].sort((a, b) => normalizeFieldName(a.name).localeCompare(normalizeFieldName(b.name)));
|
|
40
|
+
const normalizedNamesSig = serializeFields(sortedByNormalizedName, {
|
|
41
|
+
withNames: true,
|
|
42
|
+
normalizeNames: true,
|
|
43
|
+
});
|
|
44
|
+
// Structural ignores names completely → sort by type to get a stable order
|
|
45
|
+
const sortedByType = [...fields].sort((a, b) => canonicalType(a.type).localeCompare(canonicalType(b.type)));
|
|
46
|
+
const structuralSig = serializeFields(sortedByType, { withNames: false, normalizeNames: false });
|
|
47
|
+
return {
|
|
48
|
+
...record,
|
|
49
|
+
hashStrict: sha256(strictSig),
|
|
50
|
+
hashStructural: sha256(structuralSig),
|
|
51
|
+
hashNormalizedNames: sha256(normalizedNamesSig),
|
|
52
|
+
canonicalSignature: strictSig,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
normalizeAll(records) {
|
|
56
|
+
return records.map((r) => this.normalize(r));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Compute three function hashes:
|
|
60
|
+
* strict : `(param:type, ...) => returnType { body-normalized }`
|
|
61
|
+
* structural : same, but param names dropped and body identifiers stripped
|
|
62
|
+
* of token-identity (keep only structural tokens — kw, punct, types)
|
|
63
|
+
* normalized-names: param names mapped through the synonym table, body unchanged
|
|
64
|
+
*
|
|
65
|
+
* `bodyNormalized` was already whitespace-collapsed by the parser.
|
|
66
|
+
*/
|
|
67
|
+
normalizeFunction(record, fn) {
|
|
68
|
+
const paramsStrict = serializeFunctionParams(fn.params, { withNames: true, normalizeNames: false });
|
|
69
|
+
const paramsNormalized = serializeFunctionParams(fn.params, { withNames: true, normalizeNames: true });
|
|
70
|
+
const paramsStructural = serializeFunctionParams(fn.params, { withNames: false, normalizeNames: false });
|
|
71
|
+
const ret = canonicalType(fn.returnType);
|
|
72
|
+
const flags = `${fn.async ? 'a' : ''}${fn.generator ? 'g' : ''}`;
|
|
73
|
+
const strictSig = `${flags}(${paramsStrict})=>${ret}::${fn.bodyNormalized}`;
|
|
74
|
+
const normalizedSig = `${flags}(${paramsNormalized})=>${ret}::${fn.bodyNormalized}`;
|
|
75
|
+
const structuralSig = `${flags}(${paramsStructural})=>${ret}::${anonymizeIdentifiers(fn.bodyNormalized)}`;
|
|
76
|
+
return {
|
|
77
|
+
...record,
|
|
78
|
+
hashStrict: sha256(strictSig),
|
|
79
|
+
hashStructural: sha256(structuralSig),
|
|
80
|
+
hashNormalizedNames: sha256(normalizedSig),
|
|
81
|
+
canonicalSignature: strictSig,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function serializeFunctionParams(params, opts) {
|
|
86
|
+
return params
|
|
87
|
+
.map((p, i) => {
|
|
88
|
+
const name = opts.withNames
|
|
89
|
+
? opts.normalizeNames
|
|
90
|
+
? normalizeFieldName(p.name)
|
|
91
|
+
: p.name
|
|
92
|
+
: `_${i}`;
|
|
93
|
+
const opt = p.optional ? '?' : '';
|
|
94
|
+
return `${name}${opt}:${canonicalType(p.type)}`;
|
|
95
|
+
})
|
|
96
|
+
.join(',');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Replace every identifier token in a (collapsed) function body with a generic
|
|
100
|
+
* placeholder. Keeps keywords, punctuation, literals, and TypeScript built-in
|
|
101
|
+
* names so the structural skeleton stays intact while user-chosen identifiers
|
|
102
|
+
* (locals, parameter names, called functions) get equalised.
|
|
103
|
+
*/
|
|
104
|
+
function anonymizeIdentifiers(body) {
|
|
105
|
+
const TS_KEYWORDS = new Set([
|
|
106
|
+
'if', 'else', 'for', 'while', 'do', 'switch', 'case', 'default', 'break', 'continue',
|
|
107
|
+
'return', 'throw', 'try', 'catch', 'finally', 'new', 'this', 'super', 'class', 'extends',
|
|
108
|
+
'implements', 'function', 'const', 'let', 'var', 'typeof', 'instanceof', 'in', 'of',
|
|
109
|
+
'await', 'async', 'yield', 'true', 'false', 'null', 'undefined', 'void', 'delete',
|
|
110
|
+
'as', 'is', 'satisfies', 'keyof', 'readonly', 'public', 'private', 'protected', 'static',
|
|
111
|
+
'export', 'import', 'from', 'string', 'number', 'boolean', 'object', 'never', 'any',
|
|
112
|
+
'unknown', 'bigint', 'symbol', 'Date', 'Array', 'Map', 'Set', 'Promise', 'Record',
|
|
113
|
+
'Partial', 'Pick', 'Omit', 'Readonly', 'ReadonlyArray',
|
|
114
|
+
]);
|
|
115
|
+
return body.replace(/[A-Za-z_$][\w$]*/g, (token) => (TS_KEYWORDS.has(token) ? token : '_'));
|
|
116
|
+
}
|
|
117
|
+
function serializeFields(fields, opts) {
|
|
118
|
+
if (fields.length === 0)
|
|
119
|
+
return '{}';
|
|
120
|
+
const parts = fields.map((f) => {
|
|
121
|
+
const name = opts.withNames
|
|
122
|
+
? opts.normalizeNames
|
|
123
|
+
? normalizeFieldName(f.name)
|
|
124
|
+
: f.name
|
|
125
|
+
: '_';
|
|
126
|
+
const type = canonicalType(f.type);
|
|
127
|
+
const opt = f.optional ? '?' : '';
|
|
128
|
+
return `${name}${opt}:${type}`;
|
|
129
|
+
});
|
|
130
|
+
return `{${parts.join(',')}}`;
|
|
131
|
+
}
|
|
132
|
+
function normalizeFieldName(name) {
|
|
133
|
+
// snake_case → camelCase
|
|
134
|
+
let normalized = name.replace(/[_-]([a-zA-Z])/g, (_, c) => c.toUpperCase());
|
|
135
|
+
// Strip any residual underscores or dashes (e.g. before digits: `street_line_1`
|
|
136
|
+
// → `streetLine_1` from the previous step → `streetLine1`).
|
|
137
|
+
normalized = normalized.replace(/[_-]+/g, '');
|
|
138
|
+
// lowercase for synonym lookup, then map
|
|
139
|
+
const lower = normalized.toLowerCase();
|
|
140
|
+
return FIELD_NAME_SYNONYMS[lower] ?? lower;
|
|
141
|
+
}
|
|
142
|
+
function canonicalType(t) {
|
|
143
|
+
const compact = t.replace(/\s+/g, '');
|
|
144
|
+
// Only canonicalize top-level unions. Don't touch unions nested inside generics
|
|
145
|
+
// or function signatures (depth check via balanced brackets).
|
|
146
|
+
if (!hasTopLevelUnion(compact))
|
|
147
|
+
return compact;
|
|
148
|
+
const members = splitTopLevelUnion(compact)
|
|
149
|
+
.map((m) => m.replace(/^undefined$/, '')) // drop `undefined` member entirely
|
|
150
|
+
.filter((m) => m.length > 0);
|
|
151
|
+
if (members.length === 0)
|
|
152
|
+
return compact;
|
|
153
|
+
members.sort();
|
|
154
|
+
return members.length === 1 ? members[0] : members.join('|');
|
|
155
|
+
}
|
|
156
|
+
function hasTopLevelUnion(s) {
|
|
157
|
+
let depth = 0;
|
|
158
|
+
for (const ch of s) {
|
|
159
|
+
if (ch === '<' || ch === '(' || ch === '[' || ch === '{')
|
|
160
|
+
depth++;
|
|
161
|
+
else if (ch === '>' || ch === ')' || ch === ']' || ch === '}')
|
|
162
|
+
depth--;
|
|
163
|
+
else if (ch === '|' && depth === 0)
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
function splitTopLevelUnion(s) {
|
|
169
|
+
const out = [];
|
|
170
|
+
let depth = 0;
|
|
171
|
+
let start = 0;
|
|
172
|
+
for (let i = 0; i < s.length; i++) {
|
|
173
|
+
const ch = s[i];
|
|
174
|
+
if (ch === '<' || ch === '(' || ch === '[' || ch === '{')
|
|
175
|
+
depth++;
|
|
176
|
+
else if (ch === '>' || ch === ')' || ch === ']' || ch === '}')
|
|
177
|
+
depth--;
|
|
178
|
+
else if (ch === '|' && depth === 0) {
|
|
179
|
+
out.push(s.slice(start, i));
|
|
180
|
+
start = i + 1;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
out.push(s.slice(start));
|
|
184
|
+
return out;
|
|
185
|
+
}
|
|
186
|
+
function sha256(s) {
|
|
187
|
+
return crypto.createHash('sha256').update(s).digest('hex').slice(0, 16);
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=type-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-normalizer.js","sourceRoot":"","sources":["../../src/normalizers/type-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAGtC,MAAM,mBAAmB,GAA2B;IAClD,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,WAAW;CACxB,CAAC;AAEF,MAAM,OAAO,cAAc;IACzB,SAAS,CAAC,MAAoB;QAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;YACtC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO;gBACL,GAAG,MAAM;gBACT,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,CAAC;gBACjB,mBAAmB,EAAE,CAAC;gBACtB,kBAAkB,EAAE,QAAQ;aAC7B,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5F,mFAAmF;QACnF,yFAAyF;QACzF,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvD,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACF,MAAM,kBAAkB,GAAG,eAAe,CAAC,sBAAsB,EAAE;YACjE,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7C,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC3D,CAAC;QACF,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjG,OAAO;YACL,GAAG,MAAM;YACT,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;YAC7B,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;YACrC,mBAAmB,EAAE,MAAM,CAAC,kBAAkB,CAAC;YAC/C,kBAAkB,EAAE,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,OAAuB;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,MAAoB,EAAE,EAAqB;QACnE,MAAM,YAAY,GAAG,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACzG,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEjE,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,YAAY,MAAM,GAAG,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC;QAC5E,MAAM,aAAa,GAAG,GAAG,KAAK,IAAI,gBAAgB,MAAM,GAAG,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC;QACpF,MAAM,aAAa,GAAG,GAAG,KAAK,IAAI,gBAAgB,MAAM,GAAG,KAAK,oBAAoB,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;QAE1G,OAAO;YACL,GAAG,MAAM;YACT,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;YAC7B,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;YACrC,mBAAmB,EAAE,MAAM,CAAC,aAAa,CAAC;YAC1C,kBAAkB,EAAE,SAAS;SAC9B,CAAC;IACJ,CAAC;CACF;AAED,SAAS,uBAAuB,CAAC,MAAwB,EAAE,IAAsB;IAC/E,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;YACzB,CAAC,CAAC,IAAI,CAAC,cAAc;gBACnB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,CAAC,CAAC,IAAI;YACV,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAClD,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;QAC1B,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU;QACpF,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;QACxF,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI;QACnF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ;QACjF,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;QACxF,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;QACnF,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;QACjF,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe;KACvD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,CAAC;AAOD,SAAS,eAAe,CAAC,MAAwB,EAAE,IAAsB;IACvE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;YACzB,CAAC,CAAC,IAAI,CAAC,cAAc;gBACnB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,CAAC,CAAC,IAAI;YACV,CAAC,CAAC,GAAG,CAAC;QACR,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,yBAAyB;IACzB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5E,gFAAgF;IAChF,4DAA4D;IAC5D,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9C,yCAAyC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,gFAAgF;IAChF,8DAA8D;IAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC;SAC5E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAC7D,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAClE,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACjB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAC7D,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aAClE,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type ImportRecord } from '../graph/import-graph.js';
|
|
2
|
+
import type { SymbolRecord } from '../types.js';
|
|
3
|
+
export interface ParseOptions {
|
|
4
|
+
workspaceRoot: string;
|
|
5
|
+
tsConfigFilePath?: string;
|
|
6
|
+
filePatterns?: string[];
|
|
7
|
+
includeNodeModules?: boolean;
|
|
8
|
+
ignore?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Explicit list of file paths (absolute or workspace-relative) to scan.
|
|
11
|
+
* When set, overrides `filePatterns`. Used by `--diff` mode to restrict the
|
|
12
|
+
* scan to files changed in a git range.
|
|
13
|
+
*/
|
|
14
|
+
files?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface ParseResult {
|
|
17
|
+
symbols: SymbolRecord[];
|
|
18
|
+
imports: ImportRecord[];
|
|
19
|
+
/** All workspace-relative file paths that were parsed (post node_modules/dist filtering). */
|
|
20
|
+
files: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare class TypeScriptParser {
|
|
23
|
+
/** Backwards-compatible shortcut: returns only the symbols array. */
|
|
24
|
+
parseWorkspace(opts: ParseOptions): Promise<SymbolRecord[]>;
|
|
25
|
+
/** Full parse — symbols + imports + file list, built in a single ts-morph project. */
|
|
26
|
+
parseWorkspaceFull(opts: ParseOptions): Promise<ParseResult>;
|
|
27
|
+
private isDefault;
|
|
28
|
+
private fromInterface;
|
|
29
|
+
private fromTypeAlias;
|
|
30
|
+
/**
|
|
31
|
+
* Extract a class as a structural symbol so duplicate-type clustering can
|
|
32
|
+
* match it against interfaces, type aliases, and other classes that share
|
|
33
|
+
* the same shape. Class methods become pseudo-fields (`()methodName`) using
|
|
34
|
+
* the same convention as interfaces; instance properties become
|
|
35
|
+
* regular fields; static members are skipped (different surface area).
|
|
36
|
+
*/
|
|
37
|
+
private fromClass;
|
|
38
|
+
private fieldFromClassProperty;
|
|
39
|
+
private fieldFromClassMethod;
|
|
40
|
+
/**
|
|
41
|
+
* Capture `const Foo = () => ...` / `const Foo = function() {...}` as a
|
|
42
|
+
* function symbol. The variable name becomes the symbol name; the arrow
|
|
43
|
+
* or function-expression body provides params + body. React functional
|
|
44
|
+
* components, mapped utility functions, and event-handler factories all
|
|
45
|
+
* land here.
|
|
46
|
+
*
|
|
47
|
+
* Returns null when the initializer is not a callable shape.
|
|
48
|
+
*/
|
|
49
|
+
private fromVariableFunction;
|
|
50
|
+
private fromFunction;
|
|
51
|
+
private fieldFromProperty;
|
|
52
|
+
private fieldFromMethod;
|
|
53
|
+
private fieldFromIndexSignature;
|
|
54
|
+
private fieldFromCallSignature;
|
|
55
|
+
private fieldFromConstructSignature;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=typescript-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript-parser.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAqC,YAAY,EAAiB,MAAM,aAAa,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,gBAAgB;IAC3B,qEAAqE;IAC/D,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIjE,sFAAsF;IAChF,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAkIlE,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,aAAa;IAwCrB;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAe5B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAsD5B,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,2BAA2B;CAapC"}
|