@kernlang/review 3.3.9 → 3.4.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/dist/call-graph.d.ts +10 -0
- package/dist/call-graph.js +138 -9
- package/dist/call-graph.js.map +1 -1
- package/dist/concept-rules/auth-drift.js +2 -0
- package/dist/concept-rules/auth-drift.js.map +1 -1
- package/dist/concept-rules/auth-propagation-drift.js +2 -0
- package/dist/concept-rules/auth-propagation-drift.js.map +1 -1
- package/dist/concept-rules/body-shape-drift.d.ts +1 -1
- package/dist/concept-rules/body-shape-drift.js +5 -3
- package/dist/concept-rules/body-shape-drift.js.map +1 -1
- package/dist/concept-rules/contract-drift.js +3 -1
- package/dist/concept-rules/contract-drift.js.map +1 -1
- package/dist/concept-rules/contract-method-drift.js +2 -0
- package/dist/concept-rules/contract-method-drift.js.map +1 -1
- package/dist/concept-rules/index.js +2 -33
- package/dist/concept-rules/index.js.map +1 -1
- package/dist/concept-rules/request-validation-drift.js +3 -0
- package/dist/concept-rules/request-validation-drift.js.map +1 -1
- package/dist/concept-rules/root-cause.d.ts +4 -0
- package/dist/concept-rules/root-cause.js +31 -0
- package/dist/concept-rules/root-cause.js.map +1 -0
- package/dist/concept-rules/unbounded-collection-query.js +2 -0
- package/dist/concept-rules/unbounded-collection-query.js.map +1 -1
- package/dist/concept-rules/unhandled-api-error-shape.js +2 -0
- package/dist/concept-rules/unhandled-api-error-shape.js.map +1 -1
- package/dist/default-export.d.ts +41 -0
- package/dist/default-export.js +76 -0
- package/dist/default-export.js.map +1 -0
- package/dist/eval.d.ts +67 -0
- package/dist/eval.js +177 -0
- package/dist/eval.js.map +1 -0
- package/dist/file-context.js +32 -13
- package/dist/file-context.js.map +1 -1
- package/dist/file-role.d.ts +6 -0
- package/dist/file-role.js +27 -0
- package/dist/file-role.js.map +1 -1
- package/dist/framework-seeds.d.ts +46 -0
- package/dist/framework-seeds.js +245 -0
- package/dist/framework-seeds.js.map +1 -0
- package/dist/git-env.d.ts +1 -0
- package/dist/git-env.js +25 -0
- package/dist/git-env.js.map +1 -0
- package/dist/graph.js +246 -21
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +200 -56
- package/dist/index.js.map +1 -1
- package/dist/llm-bridge.d.ts +35 -9
- package/dist/llm-bridge.js +50 -23
- package/dist/llm-bridge.js.map +1 -1
- package/dist/mappers/ts-concepts.js +87 -20
- package/dist/mappers/ts-concepts.js.map +1 -1
- package/dist/path-canonical.d.ts +34 -0
- package/dist/path-canonical.js +85 -0
- package/dist/path-canonical.js.map +1 -0
- package/dist/policy.d.ts +22 -0
- package/dist/policy.js +47 -0
- package/dist/policy.js.map +1 -0
- package/dist/project-context.d.ts +135 -0
- package/dist/project-context.js +563 -0
- package/dist/project-context.js.map +1 -0
- package/dist/public-api.d.ts +21 -0
- package/dist/public-api.js +17 -2
- package/dist/public-api.js.map +1 -1
- package/dist/reporter.js +22 -0
- package/dist/reporter.js.map +1 -1
- package/dist/rule-quality.d.ts +58 -0
- package/dist/rule-quality.js +357 -0
- package/dist/rule-quality.js.map +1 -0
- package/dist/rules/dead-code.d.ts +2 -2
- package/dist/rules/dead-code.js +88 -4
- package/dist/rules/dead-code.js.map +1 -1
- package/dist/rules/index.d.ts +22 -0
- package/dist/rules/index.js +32 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/kern-source.d.ts +4 -0
- package/dist/rules/kern-source.js +183 -0
- package/dist/rules/kern-source.js.map +1 -1
- package/dist/rules/react.js +52 -3
- package/dist/rules/react.js.map +1 -1
- package/dist/rules/suggest-kern-primitive.js +0 -1
- package/dist/rules/suggest-kern-primitive.js.map +1 -1
- package/dist/semantic-diff.js +2 -0
- package/dist/semantic-diff.js.map +1 -1
- package/dist/suppression/apply-suppression.js +2 -0
- package/dist/suppression/apply-suppression.js.map +1 -1
- package/dist/suppression/parse-directives.d.ts +13 -5
- package/dist/suppression/parse-directives.js +62 -8
- package/dist/suppression/parse-directives.js.map +1 -1
- package/dist/suppression/types.d.ts +9 -0
- package/dist/suppression/types.js +6 -1
- package/dist/suppression/types.js.map +1 -1
- package/dist/taint-crossfile.js +15 -8
- package/dist/taint-crossfile.js.map +1 -1
- package/dist/telemetry.d.ts +126 -0
- package/dist/telemetry.js +303 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/types.d.ts +165 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
package/dist/llm-bridge.d.ts
CHANGED
|
@@ -20,6 +20,14 @@ export interface LLMBridgeConfig {
|
|
|
20
20
|
baseUrl?: string;
|
|
21
21
|
timeout?: number;
|
|
22
22
|
maxTokens?: number;
|
|
23
|
+
/** Max input tokens per batch. Defaults to a value derived from
|
|
24
|
+
* DEFAULT_CONTEXT_WINDOW_TOKENS, maxTokens, and prompt overhead.
|
|
25
|
+
* Callers should pass a value derived from the model's actual
|
|
26
|
+
* context window (e.g. `Math.floor(contextWindow * 0.78)` to leave
|
|
27
|
+
* room for output + system prompt + schema). Hardcoding one number
|
|
28
|
+
* here would either skip files on small-context models or waste
|
|
29
|
+
* capacity on big-context ones. */
|
|
30
|
+
maxBatchTokens?: number;
|
|
23
31
|
}
|
|
24
32
|
export interface ReviewInstructionOptions {
|
|
25
33
|
target?: 'api' | 'assistant';
|
|
@@ -57,18 +65,36 @@ export interface LLMReviewInput {
|
|
|
57
65
|
* Excludes info-severity and low-confidence findings to save tokens.
|
|
58
66
|
*/
|
|
59
67
|
export declare function isHighValueFinding(f: ReviewFinding): boolean;
|
|
68
|
+
/** Default input ceiling when the caller doesn't pass `maxBatchTokens`.
|
|
69
|
+
* Leaves room for the default 32K output cap plus prompt/schema
|
|
70
|
+
* overhead on a 256K-context model — yields ~220K input budget, which
|
|
71
|
+
* fits realistic large modules in one call without re-introducing the
|
|
72
|
+
* old 60K-era chunking pressure.
|
|
73
|
+
*
|
|
74
|
+
* Originally 60_000, set when 64K-context models were the norm — that
|
|
75
|
+
* ceiling caused the chunker to skip large modules (exactly the files
|
|
76
|
+
* most worth reviewing) on installs running modern providers. Callers
|
|
77
|
+
* should override via `LLMBridgeConfig.maxBatchTokens` when they know
|
|
78
|
+
* the actual context window (e.g. ~78% of contextWindow). */
|
|
79
|
+
export declare const DEFAULT_MAX_BATCH_TOKENS: number;
|
|
60
80
|
/**
|
|
61
|
-
* Split a single oversized LLMReviewInput into N smaller inputs that
|
|
62
|
-
* fit inside
|
|
63
|
-
*
|
|
64
|
-
*
|
|
81
|
+
* Split a single oversized LLMReviewInput into N smaller inputs that
|
|
82
|
+
* each fit inside `maxBatchTokens` (defaults to DEFAULT_MAX_BATCH_TOKENS).
|
|
83
|
+
* IR, taint, staticFindings and obligations are replicated on every
|
|
84
|
+
* chunk — they are small relative to source and every chunk needs the
|
|
85
|
+
* full structural context to reason correctly.
|
|
86
|
+
*
|
|
87
|
+
* Returns the original input as a 1-element array if it already fits,
|
|
88
|
+
* or an empty array if the input is genuinely unchunkable (non-source
|
|
89
|
+
* inputs whose IR alone exceeds the budget, or files where a single
|
|
90
|
+
* line is larger than the per-chunk source budget — minified bundles).
|
|
65
91
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
92
|
+
* `maxBatchTokens` is exposed so callers (kern-guard, CI runners) can
|
|
93
|
+
* pass a value derived from the configured model's actual context
|
|
94
|
+
* window. Hardcoding one number here either skips files on small
|
|
95
|
+
* models or wastes capacity on big ones.
|
|
70
96
|
*/
|
|
71
|
-
export declare function chunkLargeInput(input: LLMReviewInput, cachedIR: string): LLMReviewInput[];
|
|
97
|
+
export declare function chunkLargeInput(input: LLMReviewInput, cachedIR: string, maxBatchTokens?: number): LLMReviewInput[];
|
|
72
98
|
/**
|
|
73
99
|
* Per-run usage/timing summary. Token counts are populated only when the
|
|
74
100
|
* upstream provider returns them (OpenAI-compatible APIs do; some self-hosted
|
package/dist/llm-bridge.js
CHANGED
|
@@ -45,12 +45,14 @@ function sanitizeFilePath(filePath) {
|
|
|
45
45
|
function resolveConfig(override) {
|
|
46
46
|
const apiKey = override?.apiKey || process.env.KERN_LLM_API_KEY || '';
|
|
47
47
|
const model = override?.model || process.env.KERN_LLM_MODEL || '';
|
|
48
|
+
const maxTokens = override?.maxTokens || 32_768;
|
|
48
49
|
return {
|
|
49
50
|
apiKey,
|
|
50
51
|
model,
|
|
51
52
|
baseUrl: (override?.baseUrl || process.env.KERN_LLM_BASE_URL || 'https://api.openai.com/v1').replace(/\/$/, ''),
|
|
52
53
|
timeout: override?.timeout || 60_000,
|
|
53
|
-
maxTokens
|
|
54
|
+
maxTokens,
|
|
55
|
+
maxBatchTokens: override?.maxBatchTokens || defaultMaxBatchTokens(maxTokens),
|
|
54
56
|
available: apiKey.length > 0,
|
|
55
57
|
};
|
|
56
58
|
}
|
|
@@ -139,17 +141,35 @@ function estimateInputTokens(input, cachedIR) {
|
|
|
139
141
|
export function isHighValueFinding(f) {
|
|
140
142
|
return f.severity !== 'info' && (f.confidence === undefined || f.confidence >= 0.5);
|
|
141
143
|
}
|
|
142
|
-
/**
|
|
143
|
-
|
|
144
|
+
/** Default context window for modern frontier coding models. Sized for
|
|
145
|
+
* the floor of current providers — Kimi For Coding k2p6 (256K), Claude
|
|
146
|
+
* Haiku 4.5 / Sonnet 4.6 (200K), Gemini 2.5 (1M+). Smaller-context
|
|
147
|
+
* callers (8K local models, GPT-4o at 128K) should pass an explicit
|
|
148
|
+
* LLMBridgeConfig.maxBatchTokens. */
|
|
149
|
+
const DEFAULT_CONTEXT_WINDOW_TOKENS = 256_000;
|
|
150
|
+
/** Extra non-input overhead beyond maxTokens: system prompt, schema, provider
|
|
151
|
+
* framing, and estimation error. */
|
|
152
|
+
const DEFAULT_NON_INPUT_HEADROOM_TOKENS = 4_000;
|
|
153
|
+
/** Default input ceiling when the caller doesn't pass `maxBatchTokens`.
|
|
154
|
+
* Leaves room for the default 32K output cap plus prompt/schema
|
|
155
|
+
* overhead on a 256K-context model — yields ~220K input budget, which
|
|
156
|
+
* fits realistic large modules in one call without re-introducing the
|
|
157
|
+
* old 60K-era chunking pressure.
|
|
158
|
+
*
|
|
159
|
+
* Originally 60_000, set when 64K-context models were the norm — that
|
|
160
|
+
* ceiling caused the chunker to skip large modules (exactly the files
|
|
161
|
+
* most worth reviewing) on installs running modern providers. Callers
|
|
162
|
+
* should override via `LLMBridgeConfig.maxBatchTokens` when they know
|
|
163
|
+
* the actual context window (e.g. ~78% of contextWindow). */
|
|
164
|
+
export const DEFAULT_MAX_BATCH_TOKENS = DEFAULT_CONTEXT_WINDOW_TOKENS - 32_768 - DEFAULT_NON_INPUT_HEADROOM_TOKENS;
|
|
165
|
+
function defaultMaxBatchTokens(maxTokens) {
|
|
166
|
+
return Math.max(10_000, DEFAULT_CONTEXT_WINDOW_TOKENS - maxTokens - DEFAULT_NON_INPUT_HEADROOM_TOKENS);
|
|
167
|
+
}
|
|
144
168
|
/** Safety margin subtracted when computing the per-chunk source budget. Also
|
|
145
|
-
* the gap between a solo input's estimated tokens and
|
|
146
|
-
* which we trigger chunking. Keeps a single oversized input
|
|
147
|
-
* into a batch that would silently exceed the
|
|
169
|
+
* the gap between a solo input's estimated tokens and the per-call
|
|
170
|
+
* budget at which we trigger chunking. Keeps a single oversized input
|
|
171
|
+
* from being put into a batch that would silently exceed the limit. */
|
|
148
172
|
const CHUNK_HEADROOM_TOKENS = 2_000;
|
|
149
|
-
/** A file whose estimated prompt exceeds this is chunked. Derived from the
|
|
150
|
-
* batch budget so an un-chunked input that passes through never produces
|
|
151
|
-
* a batch over the per-call limit. */
|
|
152
|
-
const CHUNK_TRIGGER_TOKENS = MAX_BATCH_TOKENS - CHUNK_HEADROOM_TOKENS;
|
|
153
173
|
/** Line overlap between consecutive source chunks so a declaration split
|
|
154
174
|
* across a boundary still appears whole in at least one chunk. */
|
|
155
175
|
const CHUNK_OVERLAP_LINES = 20;
|
|
@@ -163,19 +183,26 @@ function longestLineLength(lines) {
|
|
|
163
183
|
return max;
|
|
164
184
|
}
|
|
165
185
|
/**
|
|
166
|
-
* Split a single oversized LLMReviewInput into N smaller inputs that
|
|
167
|
-
* fit inside
|
|
168
|
-
*
|
|
169
|
-
*
|
|
186
|
+
* Split a single oversized LLMReviewInput into N smaller inputs that
|
|
187
|
+
* each fit inside `maxBatchTokens` (defaults to DEFAULT_MAX_BATCH_TOKENS).
|
|
188
|
+
* IR, taint, staticFindings and obligations are replicated on every
|
|
189
|
+
* chunk — they are small relative to source and every chunk needs the
|
|
190
|
+
* full structural context to reason correctly.
|
|
191
|
+
*
|
|
192
|
+
* Returns the original input as a 1-element array if it already fits,
|
|
193
|
+
* or an empty array if the input is genuinely unchunkable (non-source
|
|
194
|
+
* inputs whose IR alone exceeds the budget, or files where a single
|
|
195
|
+
* line is larger than the per-chunk source budget — minified bundles).
|
|
170
196
|
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
197
|
+
* `maxBatchTokens` is exposed so callers (kern-guard, CI runners) can
|
|
198
|
+
* pass a value derived from the configured model's actual context
|
|
199
|
+
* window. Hardcoding one number here either skips files on small
|
|
200
|
+
* models or wastes capacity on big ones.
|
|
175
201
|
*/
|
|
176
|
-
export function chunkLargeInput(input, cachedIR) {
|
|
202
|
+
export function chunkLargeInput(input, cachedIR, maxBatchTokens = DEFAULT_MAX_BATCH_TOKENS) {
|
|
203
|
+
const chunkTriggerTokens = maxBatchTokens - CHUNK_HEADROOM_TOKENS;
|
|
177
204
|
const totalTokens = estimateInputTokens(input, cachedIR);
|
|
178
|
-
if (totalTokens <=
|
|
205
|
+
if (totalTokens <= chunkTriggerTokens)
|
|
179
206
|
return [input];
|
|
180
207
|
// Only CHANGED files include source in the token count, so only those
|
|
181
208
|
// can be chunked. If a CONTEXT file somehow crossed the threshold it's
|
|
@@ -184,7 +211,7 @@ export function chunkLargeInput(input, cachedIR) {
|
|
|
184
211
|
return [];
|
|
185
212
|
const sourceTokens = estimateTokens(input.source);
|
|
186
213
|
const nonSourceTokens = totalTokens - sourceTokens;
|
|
187
|
-
const sourceBudget =
|
|
214
|
+
const sourceBudget = maxBatchTokens - nonSourceTokens - CHUNK_HEADROOM_TOKENS;
|
|
188
215
|
if (sourceBudget <= 0)
|
|
189
216
|
return []; // IR + context alone too large — unchunkable
|
|
190
217
|
const lines = input.source.split('\n');
|
|
@@ -267,7 +294,7 @@ export async function runLLMReview(inputs, configOverride) {
|
|
|
267
294
|
const expanded = [];
|
|
268
295
|
for (const input of inputs) {
|
|
269
296
|
const ir = irCache.get(input);
|
|
270
|
-
const chunks = chunkLargeInput(input, ir);
|
|
297
|
+
const chunks = chunkLargeInput(input, ir, config.maxBatchTokens);
|
|
271
298
|
if (chunks.length === 0) {
|
|
272
299
|
// Unchunkable (IR alone too large, or minified single-line file).
|
|
273
300
|
const inputTokens = estimateInputTokens(input, ir);
|
|
@@ -294,7 +321,7 @@ export async function runLLMReview(inputs, configOverride) {
|
|
|
294
321
|
for (const { input, originalIR } of expanded) {
|
|
295
322
|
const inputTokens = estimateInputTokens(input, originalIR);
|
|
296
323
|
// Start new batch if adding this input would exceed budget
|
|
297
|
-
if (currentBatch.length > 0 && currentTokens + inputTokens >
|
|
324
|
+
if (currentBatch.length > 0 && currentTokens + inputTokens > config.maxBatchTokens) {
|
|
298
325
|
batches.push(currentBatch);
|
|
299
326
|
currentBatch = [];
|
|
300
327
|
currentTokens = 0;
|
package/dist/llm-bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-bridge.js","sourceRoot":"","sources":["../src/llm-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-bridge.js","sourceRoot":"","sources":["../src/llm-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1494,40 +1494,107 @@ function isInAsyncContext(node) {
|
|
|
1494
1494
|
}
|
|
1495
1495
|
return false;
|
|
1496
1496
|
}
|
|
1497
|
-
// Extract the field names a
|
|
1498
|
-
//
|
|
1499
|
-
// `JSON.stringify({
|
|
1500
|
-
//
|
|
1501
|
-
//
|
|
1497
|
+
// Extract the field names a network call sends on the wire. High-confidence
|
|
1498
|
+
// sources:
|
|
1499
|
+
// - literal objects: `JSON.stringify({ a, b })`, `axios.post(url, { a, b })`
|
|
1500
|
+
// - typed payload variables: `JSON.stringify(input)` where `input: CreateUser`
|
|
1501
|
+
// Everything else returns `{ fields: undefined, resolved: false }` so
|
|
1502
|
+
// body-shape-drift stays silent on opaque shapes rather than guessing.
|
|
1502
1503
|
function extractSentFields(call, funcName) {
|
|
1503
|
-
|
|
1504
|
+
const payload = extractNetworkPayloadExpression(call, funcName);
|
|
1505
|
+
if (!payload)
|
|
1504
1506
|
return { fields: undefined, resolved: false };
|
|
1507
|
+
return extractPayloadFields(payload);
|
|
1508
|
+
}
|
|
1509
|
+
function extractNetworkPayloadExpression(call, funcName) {
|
|
1505
1510
|
const args = call.getArguments();
|
|
1506
1511
|
if (args.length < 2)
|
|
1507
|
-
return
|
|
1512
|
+
return undefined;
|
|
1513
|
+
if (AXIOS_STYLE_METHODS.has(funcName)) {
|
|
1514
|
+
return args[1];
|
|
1515
|
+
}
|
|
1516
|
+
if (funcName !== 'fetch')
|
|
1517
|
+
return undefined;
|
|
1508
1518
|
const opts = args[1];
|
|
1509
1519
|
if (opts.getKind() !== SyntaxKind.ObjectLiteralExpression)
|
|
1510
|
-
return
|
|
1520
|
+
return undefined;
|
|
1511
1521
|
const optsObj = opts;
|
|
1512
1522
|
const bodyProp = optsObj.getProperty('body');
|
|
1513
1523
|
if (!bodyProp)
|
|
1514
|
-
return
|
|
1524
|
+
return undefined;
|
|
1515
1525
|
if (bodyProp.getKind() !== SyntaxKind.PropertyAssignment) {
|
|
1516
|
-
return
|
|
1526
|
+
return undefined;
|
|
1517
1527
|
}
|
|
1518
1528
|
const init = bodyProp.getInitializer();
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1529
|
+
return init;
|
|
1530
|
+
}
|
|
1531
|
+
function extractPayloadFields(node) {
|
|
1532
|
+
const payload = unwrapPayloadExpression(node);
|
|
1533
|
+
if (payload.getKind() === SyntaxKind.CallExpression) {
|
|
1534
|
+
const bodyCall = payload;
|
|
1535
|
+
if (bodyCall.getExpression().getText() !== 'JSON.stringify')
|
|
1536
|
+
return { fields: undefined, resolved: false };
|
|
1537
|
+
const stringifyArg = bodyCall.getArguments()[0];
|
|
1538
|
+
return stringifyArg ? extractPayloadFields(stringifyArg) : { fields: undefined, resolved: false };
|
|
1539
|
+
}
|
|
1540
|
+
if (payload.getKind() === SyntaxKind.ObjectLiteralExpression) {
|
|
1541
|
+
return extractLiteralObjectFields(payload);
|
|
1542
|
+
}
|
|
1543
|
+
if (payload.getKind() === SyntaxKind.Identifier || payload.getKind() === SyntaxKind.PropertyAccessExpression) {
|
|
1544
|
+
return extractObjectFieldsFromType(payload);
|
|
1545
|
+
}
|
|
1546
|
+
return { fields: undefined, resolved: false };
|
|
1547
|
+
}
|
|
1548
|
+
function unwrapPayloadExpression(node) {
|
|
1549
|
+
let current = node;
|
|
1550
|
+
while (true) {
|
|
1551
|
+
const kind = current.getKind();
|
|
1552
|
+
if (kind === SyntaxKind.ParenthesizedExpression) {
|
|
1553
|
+
current = current.getExpression();
|
|
1554
|
+
}
|
|
1555
|
+
else if (kind === SyntaxKind.AsExpression) {
|
|
1556
|
+
current = current.getExpression();
|
|
1557
|
+
}
|
|
1558
|
+
else if (kind === SyntaxKind.TypeAssertionExpression) {
|
|
1559
|
+
current = current.getExpression();
|
|
1560
|
+
}
|
|
1561
|
+
else if (kind === SyntaxKind.NonNullExpression) {
|
|
1562
|
+
current = current.getExpression();
|
|
1563
|
+
}
|
|
1564
|
+
else if (kind === SyntaxKind.SatisfiesExpression) {
|
|
1565
|
+
current = current.getExpression();
|
|
1566
|
+
}
|
|
1567
|
+
else {
|
|
1568
|
+
return current;
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
function extractObjectFieldsFromType(node) {
|
|
1573
|
+
const type = node.getType();
|
|
1574
|
+
if (type.isAny() || type.isUnknown() || type.isUnion())
|
|
1526
1575
|
return { fields: undefined, resolved: false };
|
|
1527
|
-
|
|
1528
|
-
if (payload.getKind() !== SyntaxKind.ObjectLiteralExpression)
|
|
1576
|
+
if (type.getStringIndexType() || type.getNumberIndexType())
|
|
1529
1577
|
return { fields: undefined, resolved: false };
|
|
1530
|
-
|
|
1578
|
+
const fields = new Set();
|
|
1579
|
+
for (const prop of type.getProperties()) {
|
|
1580
|
+
const declarations = prop.getDeclarations();
|
|
1581
|
+
if (declarations.length === 0)
|
|
1582
|
+
return { fields: undefined, resolved: false };
|
|
1583
|
+
if (declarations.some((decl) => isExternalSourcePath(decl.getSourceFile().getFilePath()))) {
|
|
1584
|
+
return { fields: undefined, resolved: false };
|
|
1585
|
+
}
|
|
1586
|
+
if (declarations.some((decl) => declarationIsOptional(decl)))
|
|
1587
|
+
continue;
|
|
1588
|
+
const name = prop.getName();
|
|
1589
|
+
if (!/^[A-Za-z_$][\w$-]*$/.test(name))
|
|
1590
|
+
return { fields: undefined, resolved: false };
|
|
1591
|
+
fields.add(name);
|
|
1592
|
+
}
|
|
1593
|
+
return fields.size > 0 ? { fields: Array.from(fields).sort(), resolved: true } : { fields: [], resolved: true };
|
|
1594
|
+
}
|
|
1595
|
+
function declarationIsOptional(decl) {
|
|
1596
|
+
const maybeOptional = decl;
|
|
1597
|
+
return maybeOptional.hasQuestionToken?.() === true;
|
|
1531
1598
|
}
|
|
1532
1599
|
// Walk an object literal and return its identifier-keyed property names.
|
|
1533
1600
|
// Spread (`...x`) or computed keys (`[x]: ...`) poison the resolution —
|