circle-ir 3.16.8 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,164 @@
1
+ /**
2
+ * HTML Result Merger
3
+ *
4
+ * Merges multiple CircleIR results (one per script block) and attribute-level
5
+ * security findings into a single CircleIR for the HTML file.
6
+ *
7
+ * Key operation: adjusts all line numbers by (lineOffset - 1) for each script block
8
+ * and normalizes file paths to the HTML file path.
9
+ */
10
+ /**
11
+ * Merge HTML analysis results into a single CircleIR.
12
+ *
13
+ * @param htmlMeta - Meta for the HTML file itself
14
+ * @param scriptResults - CircleIR results from each script block with line offsets
15
+ * @param attributeFindings - SastFindings from attribute-level security checks
16
+ */
17
+ export function mergeHtmlResults(htmlMeta, scriptResults, attributeFindings) {
18
+ const allTypes = [];
19
+ const allCalls = [];
20
+ const allCfgBlocks = [];
21
+ const allCfgEdges = [];
22
+ const allDfgDefs = [];
23
+ const allDfgUses = [];
24
+ const allSources = [];
25
+ const allSinks = [];
26
+ const allSanitizers = [];
27
+ const allImports = [];
28
+ const allExports = [];
29
+ const allFindings = [];
30
+ let cfgBlockIdOffset = 0;
31
+ let dfgDefIdOffset = 0;
32
+ let dfgUseIdOffset = 0;
33
+ for (const { ir, lineOffset } of scriptResults) {
34
+ const lineShift = lineOffset - 1;
35
+ const htmlFile = htmlMeta.file;
36
+ // Shift types
37
+ for (const type of ir.types) {
38
+ allTypes.push({
39
+ ...type,
40
+ start_line: type.start_line + lineShift,
41
+ end_line: type.end_line + lineShift,
42
+ methods: type.methods.map(m => ({
43
+ ...m,
44
+ start_line: m.start_line + lineShift,
45
+ end_line: m.end_line + lineShift,
46
+ })),
47
+ fields: [...type.fields],
48
+ });
49
+ }
50
+ // Shift calls
51
+ for (const call of ir.calls) {
52
+ allCalls.push({
53
+ ...call,
54
+ location: {
55
+ ...call.location,
56
+ line: call.location.line + lineShift,
57
+ },
58
+ });
59
+ }
60
+ // Shift CFG blocks and edges (with ID remapping)
61
+ const maxBlockId = ir.cfg.blocks.reduce((max, b) => Math.max(max, b.id), 0);
62
+ for (const block of ir.cfg.blocks) {
63
+ allCfgBlocks.push({
64
+ ...block,
65
+ id: block.id + cfgBlockIdOffset,
66
+ start_line: block.start_line + lineShift,
67
+ end_line: block.end_line + lineShift,
68
+ });
69
+ }
70
+ for (const edge of ir.cfg.edges) {
71
+ allCfgEdges.push({
72
+ ...edge,
73
+ from: edge.from + cfgBlockIdOffset,
74
+ to: edge.to + cfgBlockIdOffset,
75
+ });
76
+ }
77
+ cfgBlockIdOffset += maxBlockId + 1;
78
+ // Shift DFG defs and uses (with ID remapping)
79
+ const maxDefId = ir.dfg.defs.reduce((max, d) => Math.max(max, d.id), 0);
80
+ const maxUseId = ir.dfg.uses.reduce((max, u) => Math.max(max, u.id), 0);
81
+ for (const def of ir.dfg.defs) {
82
+ allDfgDefs.push({
83
+ ...def,
84
+ id: def.id + dfgDefIdOffset,
85
+ line: def.line + lineShift,
86
+ });
87
+ }
88
+ for (const use of ir.dfg.uses) {
89
+ allDfgUses.push({
90
+ ...use,
91
+ id: use.id + dfgUseIdOffset,
92
+ def_id: use.def_id !== null ? use.def_id + dfgDefIdOffset : null,
93
+ line: use.line + lineShift,
94
+ });
95
+ }
96
+ dfgDefIdOffset += maxDefId + 1;
97
+ dfgUseIdOffset += maxUseId + 1;
98
+ // Shift taint sources/sinks/sanitizers
99
+ for (const source of ir.taint.sources) {
100
+ allSources.push({
101
+ ...source,
102
+ line: source.line + lineShift,
103
+ });
104
+ }
105
+ for (const sink of ir.taint.sinks) {
106
+ allSinks.push({
107
+ ...sink,
108
+ line: sink.line + lineShift,
109
+ });
110
+ }
111
+ for (const sanitizer of ir.taint.sanitizers ?? []) {
112
+ allSanitizers.push({
113
+ ...sanitizer,
114
+ line: sanitizer.line + lineShift,
115
+ });
116
+ }
117
+ // Shift imports
118
+ for (const imp of ir.imports) {
119
+ allImports.push({
120
+ ...imp,
121
+ line_number: imp.line_number !== null ? imp.line_number + lineShift : null,
122
+ });
123
+ }
124
+ // Exports
125
+ allExports.push(...ir.exports);
126
+ // Shift findings and normalize file paths
127
+ for (const finding of ir.findings ?? []) {
128
+ allFindings.push({
129
+ ...finding,
130
+ file: htmlFile,
131
+ line: finding.line + lineShift,
132
+ });
133
+ }
134
+ }
135
+ // Add attribute-level findings
136
+ allFindings.push(...attributeFindings);
137
+ const taint = {
138
+ sources: allSources,
139
+ sinks: allSinks,
140
+ sanitizers: allSanitizers.length > 0 ? allSanitizers : undefined,
141
+ };
142
+ const cfg = {
143
+ blocks: allCfgBlocks,
144
+ edges: allCfgEdges,
145
+ };
146
+ const dfg = {
147
+ defs: allDfgDefs,
148
+ uses: allDfgUses,
149
+ };
150
+ return {
151
+ meta: htmlMeta,
152
+ types: allTypes,
153
+ calls: allCalls,
154
+ cfg,
155
+ dfg,
156
+ taint,
157
+ imports: allImports,
158
+ exports: allExports,
159
+ unresolved: [],
160
+ enriched: {},
161
+ findings: allFindings.length > 0 ? allFindings : undefined,
162
+ };
163
+ }
164
+ //# sourceMappingURL=html-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-merge.js","sourceRoot":"","sources":["../../../src/analysis/html/html-merge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * HTML Analysis Module
3
+ *
4
+ * Provides web extraction preprocessing for HTML files:
5
+ * - Script block and event handler extraction
6
+ * - Attribute-level security checks
7
+ * - Result merging for multi-script HTML files
8
+ */
9
+ export { extractHtmlContent, type HtmlScriptBlock, type HtmlEventHandler, type HtmlExtractionResult, } from './html-extractor.js';
10
+ export { runHtmlAttributeSecurityChecks } from './html-attribute-security-pass.js';
11
+ export { mergeHtmlResults, type ScriptBlockResult, } from './html-merge.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * HTML Analysis Module
3
+ *
4
+ * Provides web extraction preprocessing for HTML files:
5
+ * - Script block and event handler extraction
6
+ * - Attribute-level security checks
7
+ * - Result merging for multi-script HTML files
8
+ */
9
+ export { extractHtmlContent, } from './html-extractor.js';
10
+ export { runHtmlAttributeSecurityChecks } from './html-attribute-security-pass.js';
11
+ export { mergeHtmlResults, } from './html-merge.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/html/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,EACL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC"}
package/dist/analyzer.js CHANGED
@@ -56,6 +56,10 @@ import { registerBuiltinPlugins } from './languages/index.js';
56
56
  import { logger } from './utils/logger.js';
57
57
  import { CodeGraph, AnalysisPipeline, ProjectGraph } from './graph/index.js';
58
58
  import { CrossFilePass } from './analysis/passes/cross-file-pass.js';
59
+ // HTML preprocessor
60
+ import { extractHtmlContent } from './analysis/html/html-extractor.js';
61
+ import { runHtmlAttributeSecurityChecks } from './analysis/html/html-attribute-security-pass.js';
62
+ import { mergeHtmlResults } from './analysis/html/html-merge.js';
59
63
  // Pass classes
60
64
  import { TaintMatcherPass } from './analysis/passes/taint-matcher-pass.js';
61
65
  import { ConstantPropagationPass } from './analysis/passes/constant-propagation-pass.js';
@@ -205,6 +209,11 @@ function getNodeTypesForLanguage(language) {
205
209
  'command', 'function_definition', 'variable_assignment', 'declaration_command',
206
210
  'if_statement', 'for_statement', 'c_style_for_statement', 'while_statement',
207
211
  ]);
212
+ case 'html':
213
+ return new Set([
214
+ 'element', 'script_element', 'style_element', 'attribute',
215
+ 'start_tag', 'self_closing_tag', 'text',
216
+ ]);
208
217
  default:
209
218
  return new Set([
210
219
  'method_invocation', 'object_creation_expression', 'class_declaration',
@@ -223,6 +232,10 @@ export async function analyze(code, filePath, language, options = {}) {
223
232
  if (!initialized) {
224
233
  await initAnalyzer(options);
225
234
  }
235
+ // HTML preprocessor path — extract scripts and delegate to JS analyzer
236
+ if (language === 'html') {
237
+ return analyzeHtmlFile(code, filePath, options);
238
+ }
226
239
  logger.debug('Analyzing file', { filePath, language, codeLength: code.length });
227
240
  // Parse the code
228
241
  const tree = await parse(code, language);
@@ -354,6 +367,77 @@ export async function analyze(code, filePath, language, options = {}) {
354
367
  };
355
368
  }
356
369
  // ---------------------------------------------------------------------------
370
+ // HTML preprocessor
371
+ // ---------------------------------------------------------------------------
372
+ /**
373
+ * Analyze an HTML file by extracting script blocks and event handlers,
374
+ * delegating JS analysis to the standard pipeline, and running
375
+ * attribute-level security checks.
376
+ */
377
+ async function analyzeHtmlFile(code, filePath, options) {
378
+ logger.debug('Analyzing HTML file', { filePath, codeLength: code.length });
379
+ // Parse HTML
380
+ const tree = await parse(code, 'html');
381
+ const meta = extractMeta(code, tree, filePath, 'html');
382
+ // Extract script blocks and event handlers
383
+ const { scriptBlocks, eventHandlers } = extractHtmlContent(tree.rootNode);
384
+ logger.debug('HTML extraction', {
385
+ filePath,
386
+ inlineScripts: scriptBlocks.filter(b => b.kind === 'inline').length,
387
+ externalScripts: scriptBlocks.filter(b => b.kind === 'external-src').length,
388
+ eventHandlers: eventHandlers.length,
389
+ });
390
+ // Analyze each inline script block via standard JS pipeline
391
+ const scriptResults = [];
392
+ for (const block of scriptBlocks) {
393
+ if (block.kind !== 'inline' || !block.code.trim())
394
+ continue;
395
+ // Determine script language from type/lang attribute
396
+ const scriptLang = block.scriptType === 'ts' || block.scriptType === 'typescript' ||
397
+ block.scriptType === 'text/typescript'
398
+ ? 'typescript'
399
+ : 'javascript';
400
+ try {
401
+ const ir = await analyze(block.code, filePath, scriptLang, options);
402
+ scriptResults.push({ ir, lineOffset: block.lineOffset });
403
+ }
404
+ catch (e) {
405
+ logger.warn('Failed to analyze script block', {
406
+ filePath,
407
+ lineOffset: block.lineOffset,
408
+ error: e instanceof Error ? e.message : String(e),
409
+ });
410
+ }
411
+ }
412
+ // Analyze inline event handlers (wrap in synthetic function)
413
+ for (const handler of eventHandlers) {
414
+ const wrappedCode = `function __${handler.eventName}_handler() { ${handler.code} }`;
415
+ try {
416
+ const ir = await analyze(wrappedCode, filePath, 'javascript', options);
417
+ scriptResults.push({ ir, lineOffset: handler.line });
418
+ }
419
+ catch (e) {
420
+ logger.warn('Failed to analyze event handler', {
421
+ filePath,
422
+ eventName: handler.eventName,
423
+ line: handler.line,
424
+ error: e instanceof Error ? e.message : String(e),
425
+ });
426
+ }
427
+ }
428
+ // Run attribute-level security checks
429
+ const attributeFindings = runHtmlAttributeSecurityChecks(tree.rootNode, filePath);
430
+ // Merge everything
431
+ const result = mergeHtmlResults(meta, scriptResults, attributeFindings);
432
+ logger.debug('HTML analysis complete', {
433
+ filePath,
434
+ scriptBlocks: scriptResults.length,
435
+ attributeFindings: attributeFindings.length,
436
+ totalFindings: result.findings?.length ?? 0,
437
+ });
438
+ return result;
439
+ }
440
+ // ---------------------------------------------------------------------------
357
441
  // Simplified API response format
358
442
  // ---------------------------------------------------------------------------
359
443
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}