@panguard-ai/scan-core 1.4.0 → 1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Panguard AI Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"atr-engine.d.ts","sourceRoot":"","sources":["../src/atr-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAwBhG;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,YAAY,EAAE,CAoB9E;AA2CD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,oEAAoE;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,OAAO,GAAE,cAAmB,GAC3B;IACD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CA4FA"}
1
+ {"version":3,"file":"atr-engine.d.ts","sourceRoot":"","sources":["../src/atr-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAwBhG;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,YAAY,EAAE,CAoB9E;AA2CD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,oEAAoE;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,OAAO,GAAE,cAAmB,GAC3B;IACD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAiGA"}
@@ -95,7 +95,7 @@ function downgradeSeverity(severity) {
95
95
  * @returns findings, check result, and count of matched rules.
96
96
  */
97
97
  export function scanWithATR(content, rules, options = {}) {
98
- const { isReadme = false, hasStrongReducers = false, allReducers = false, hasDefensiveText = false } = options;
98
+ const { isReadme = false, hasStrongReducers = false, allReducers = false, hasDefensiveText = false, } = options;
99
99
  const findings = [];
100
100
  const matchedRuleIds = new Set();
101
101
  const strippedContent = stripMarkdownNoise(content);
@@ -1 +1 @@
1
- {"version":3,"file":"atr-engine.js","sourceRoot":"","sources":["../src/atr-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atr-engine.js","sourceRoot":"","sources":["../src/atr-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"risk-scorer.d.ts","sourceRoot":"","sources":["../src/risk-scorer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkBrD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,iBAAiB,GAAE,MAAY,GAC9B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CA2DA"}
1
+ {"version":3,"file":"risk-scorer.d.ts","sourceRoot":"","sources":["../src/risk-scorer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkBrD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,iBAAiB,GAAE,MAAY,GAC9B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CAyDA"}
@@ -49,15 +49,15 @@ export function calculateRiskScore(findings, contextMultiplier = 1.0) {
49
49
  // Distinguish "real" critical findings from "hidden in markup" ones.
50
50
  // Markup-only criticals are likely formatting artifacts (SVG, code blocks, HTML examples).
51
51
  // Only non-markup criticals should be able to push risk level to CRITICAL.
52
- const hasRealCritical = allFindings.some((f) => f.severity === 'critical' && !f.title.includes('(hidden in markup)'));
52
+ const realCriticals = allFindings.filter((f) => f.severity === 'critical' && !f.title.includes('(hidden in markup)'));
53
+ const hasRealCritical = realCriticals.length > 0;
53
54
  const hasRealHigh = allFindings.some((f) => f.severity === 'high' && !f.title.includes('(hidden in markup)'));
54
55
  // Critical-override behavior depends on context:
55
- // - Normal context (multiplier >= 0.6): critical finding forces at least HIGH
56
+ // - Normal context (multiplier >= 0.6): critical finding forces CRITICAL
56
57
  // - Strong legitimate context (multiplier < 0.6): critical finding forces MEDIUM only
57
58
  const weakenedCriticalOverride = contextMultiplier < 0.6;
58
59
  let level;
59
- if ((score >= 70 && hasRealCritical) ||
60
- (hasRealCritical && !weakenedCriticalOverride && score >= 40)) {
60
+ if (score >= 70 || (hasRealCritical && !weakenedCriticalOverride)) {
61
61
  level = 'CRITICAL';
62
62
  }
63
63
  else if (score >= 40 ||
@@ -1 +1 @@
1
- {"version":3,"file":"risk-scorer.js","sourceRoot":"","sources":["../src/risk-scorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"risk-scorer.js","sourceRoot":"","sources":["../src/risk-scorer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panguard-ai/scan-core",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,13 +27,6 @@
27
27
  "package.json",
28
28
  "README.md"
29
29
  ],
30
- "scripts": {
31
- "build": "tsc --build",
32
- "clean": "rm -rf dist tsconfig.tsbuildinfo",
33
- "typecheck": "tsc --noEmit",
34
- "test": "vitest run",
35
- "dev": "tsc --build --watch"
36
- },
37
30
  "dependencies": {
38
31
  "js-yaml": "^4.1.0"
39
32
  },
@@ -42,5 +35,12 @@
42
35
  "@types/node": "^22.14.0",
43
36
  "typescript": "~5.7.3",
44
37
  "vitest": "^3.0.0"
38
+ },
39
+ "scripts": {
40
+ "build": "tsc --build",
41
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
42
+ "typecheck": "tsc --noEmit",
43
+ "test": "vitest run",
44
+ "dev": "tsc --build --watch"
45
45
  }
46
- }
46
+ }