@next-secure-check/core 0.3.0 → 0.5.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.
- package/LICENSE +22 -21
- package/README.md +1 -1
- package/dist/project-detector.d.ts.map +1 -1
- package/dist/project-detector.js +10 -5
- package/dist/project-detector.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +87 -5
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/LICENSE
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 SetraTheXX
|
|
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
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SetraTheXX
|
|
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.
|
|
22
|
+
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Core scanner engine and shared TypeScript types for `next-secure-check`.
|
|
|
5
5
|
This is an internal workspace package published for the `next-secure-check` CLI. It contains project detection, file collection, scan orchestration, scoring, and public result types. Most users should install the CLI package instead:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npx next-secure-check scan .
|
|
8
|
+
npx --yes next-secure-check@latest scan .
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
See the main repository for documentation:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../src/project-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAcvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../src/project-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAcvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC,CA6BjH"}
|
package/dist/project-detector.js
CHANGED
|
@@ -8,11 +8,10 @@ export function detectProject(files, rootPath) {
|
|
|
8
8
|
};
|
|
9
9
|
const hasNextDependency = "next" in allDependencies;
|
|
10
10
|
const hasReactDependency = "react" in allDependencies || files.some((file) => /\.(tsx|jsx)$/.test(file.path));
|
|
11
|
-
const hasNextStructure = files.some((file) => file.path
|
|
12
|
-
const hasApiRoutes = files.some((file) => file.path.includes("/api/") || file.path.startsWith("pages/api/"));
|
|
11
|
+
const hasNextStructure = files.some((file) => isAppRouterPath(file.path) || isPagesRouterPath(file.path));
|
|
13
12
|
const project = {
|
|
14
13
|
name: packageJson.name ?? path.basename(rootPath),
|
|
15
|
-
framework: hasNextDependency || hasNextStructure
|
|
14
|
+
framework: hasNextDependency || hasNextStructure ? "nextjs" : hasReactDependency ? "react" : "node",
|
|
16
15
|
router: detectRouter(files),
|
|
17
16
|
language: detectLanguage(files)
|
|
18
17
|
};
|
|
@@ -44,8 +43,8 @@ function parsePackageJson(content) {
|
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
function detectRouter(files) {
|
|
47
|
-
const hasApp = files.some((file) =>
|
|
48
|
-
const hasPages = files.some((file) =>
|
|
46
|
+
const hasApp = files.some((file) => isAppRouterPath(file.path));
|
|
47
|
+
const hasPages = files.some((file) => isPagesRouterPath(file.path));
|
|
49
48
|
if (hasApp && hasPages) {
|
|
50
49
|
return "mixed";
|
|
51
50
|
}
|
|
@@ -57,6 +56,12 @@ function detectRouter(files) {
|
|
|
57
56
|
}
|
|
58
57
|
return "unknown";
|
|
59
58
|
}
|
|
59
|
+
function isAppRouterPath(filePath) {
|
|
60
|
+
return /^(?:apps\/[^/]+\/)?(?:src\/)?app(?:\/|$)/.test(filePath);
|
|
61
|
+
}
|
|
62
|
+
function isPagesRouterPath(filePath) {
|
|
63
|
+
return /^(?:apps\/[^/]+\/)?(?:src\/)?pages(?:\/|$)/.test(filePath);
|
|
64
|
+
}
|
|
60
65
|
function detectLanguage(files) {
|
|
61
66
|
const hasTypeScript = files.some((file) => /\.(ts|tsx)$/.test(file.path));
|
|
62
67
|
const hasJavaScript = files.some((file) => /\.(js|jsx)$/.test(file.path));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../src/project-detector.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,MAAM,UAAU,aAAa,CAAC,KAAmB,EAAE,QAAgB;IACjE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG;QACtB,GAAG,WAAW,CAAC,YAAY;QAC3B,GAAG,WAAW,CAAC,eAAe;KAC/B,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,IAAI,eAAe,CAAC;IACpD,MAAM,kBAAkB,GAAG,OAAO,IAAI,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../src/project-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgD,WAAW,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgD,WAAW,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AAKpH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkCpG;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU5E"}
|
package/dist/scanner.js
CHANGED
|
@@ -5,6 +5,8 @@ import { applyContextTuning } from "./context-tuning.js";
|
|
|
5
5
|
import { collectFiles } from "./file-collector.js";
|
|
6
6
|
import { detectProject } from "./project-detector.js";
|
|
7
7
|
import { summarizeFindings } from "./score.js";
|
|
8
|
+
const KNOWN_AUTH_MODULE_PATTERN = /(?:^|["'\s])(?:next-auth(?:\/|["'])|@auth(?:\/|["'])|@clerk\/nextjs(?:\/|["'])|@supabase\/(?:ssr|auth-helpers-nextjs)(?:\/|["'])|better-auth(?:\/|["']))/i;
|
|
9
|
+
const KNOWN_RATE_LIMIT_MODULE_PATTERN = /(?:^|["'\s])(?:@upstash\/ratelimit|rate-limiter-flexible|express-rate-limit|@arcjet\/next)(?:\/|["'])/i;
|
|
8
10
|
export async function scanProject(targetPath, options = {}) {
|
|
9
11
|
const startedAt = Date.now();
|
|
10
12
|
const rootPath = await resolveProjectPath(targetPath);
|
|
@@ -83,24 +85,104 @@ function extractMiddlewareSignals(files) {
|
|
|
83
85
|
filePath: file.path,
|
|
84
86
|
hasAuthSignal: hasMiddlewareAuthSignal(file.content),
|
|
85
87
|
hasRateLimitSignal: hasMiddlewareRateLimitSignal(file.content),
|
|
86
|
-
matchers: extractMiddlewareMatchers(file.content)
|
|
88
|
+
matchers: extractMiddlewareMatchers(file.content),
|
|
89
|
+
scopeRoot: middlewareScopeRoot(file.path) ?? ""
|
|
87
90
|
}));
|
|
88
91
|
}
|
|
89
92
|
function isMiddlewareFile(file) {
|
|
90
|
-
return
|
|
93
|
+
return middlewareScopeRoot(file.path) !== undefined;
|
|
94
|
+
}
|
|
95
|
+
function middlewareScopeRoot(filePath) {
|
|
96
|
+
if (/^(?:src\/)?middleware\.[tj]s$/.test(filePath)) {
|
|
97
|
+
return "";
|
|
98
|
+
}
|
|
99
|
+
return /^((?:apps|packages)\/[^/]+)\/(?:src\/)?middleware\.[tj]s$/.exec(filePath)?.[1];
|
|
91
100
|
}
|
|
92
101
|
function hasMiddlewareAuthSignal(content) {
|
|
93
|
-
|
|
102
|
+
const code = extractMiddlewareCode(stripCommentsAndStrings(content));
|
|
103
|
+
const sourceWithoutComments = stripComments(content);
|
|
104
|
+
const hasAuthCall = /\b(?:requireAuth|currentUser|getServerSession|verifyToken|isAdmin|withAuth|clerkMiddleware)\s*\(/i.test(code);
|
|
105
|
+
const hasKnownModuleAuthCall = hasKnownAuthImport(sourceWithoutComments) && /\b(?:auth|clerk|getUser)\s*\(/i.test(code);
|
|
106
|
+
const hasAuthGuard = /\b(?:if|while)\s*\([^)]*\b(?:session|user|account|claims)(?:\.|\?\.)\s*(?:role|permission)\b/i.test(code);
|
|
107
|
+
return hasAuthCall || hasKnownModuleAuthCall || hasAuthGuard || /\b(?:auth|jwt|session|token)\s*\.\s*verify\s*\(/i.test(code);
|
|
94
108
|
}
|
|
95
109
|
function hasMiddlewareRateLimitSignal(content) {
|
|
96
|
-
|
|
110
|
+
const code = extractMiddlewareCode(stripCommentsAndStrings(content));
|
|
111
|
+
const sourceWithoutComments = stripComments(content);
|
|
112
|
+
const hasDirectLimiterCall = /\b(?:applyRateLimit|checkRateLimit|enforceRateLimit|rateLimit|rateLimited|slowDown|throttle|withRateLimit)\s*\(/i.test(code);
|
|
113
|
+
const hasLimiterMethodCall = /\b(?:limiter|rateLimit|rateLimiter|ratelimit|redis|throttle|upstash)\s*\.\s*(?:check|consume|limit|rateLimit)\s*\(/i.test(code);
|
|
114
|
+
const hasKnownModuleLimiterCall = KNOWN_RATE_LIMIT_MODULE_PATTERN.test(sourceWithoutComments) && /\.\s*limit\s*\(/i.test(code);
|
|
115
|
+
const hasRateLimitResponse = /\b(?:new\s+)?(?:Response|NextResponse)\s*(?:\.\s*\w+)?\s*\([\s\S]{0,600}?\bstatus\s*:\s*429\b/i.test(code) ||
|
|
116
|
+
/\b(?:res|response|reply)\s*\.\s*status\s*\(\s*429\s*\)/i.test(code) ||
|
|
117
|
+
/\bstatusCode\s*=\s*429\b/i.test(code);
|
|
118
|
+
return hasDirectLimiterCall || hasLimiterMethodCall || hasKnownModuleLimiterCall || hasRateLimitResponse;
|
|
97
119
|
}
|
|
98
120
|
function extractMiddlewareMatchers(content) {
|
|
99
|
-
const matcherProperty = /matcher\s*:\s*(\[[^\]]+\]|["'`][^"'`]+["'`])/s.exec(content);
|
|
121
|
+
const matcherProperty = /matcher\s*:\s*(\[[^\]]+\]|["'`][^"'`]+["'`])/s.exec(stripComments(content));
|
|
100
122
|
if (!matcherProperty) {
|
|
101
123
|
return [];
|
|
102
124
|
}
|
|
103
125
|
const matcherValue = matcherProperty[1] ?? "";
|
|
104
126
|
return [...matcherValue.matchAll(/["'`]([^"'`]+)["'`]/g)].map((match) => match[1] ?? "").filter(Boolean);
|
|
105
127
|
}
|
|
128
|
+
function stripComments(content) {
|
|
129
|
+
return content.replace(/\/\*[\s\S]*?\*\/|\/\/[^\r\n]*/g, (match) => match.replace(/[^\r\n]/g, " "));
|
|
130
|
+
}
|
|
131
|
+
function stripCommentsAndStrings(content) {
|
|
132
|
+
return content.replace(/\/\*[\s\S]*?\*\/|\/\/[^\r\n]*|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`(?:\\.|[^`\\])*`/g, (match) => match.replace(/[^\r\n]/g, " "));
|
|
133
|
+
}
|
|
134
|
+
function extractMiddlewareCode(code) {
|
|
135
|
+
const functionMatch = /\b(?:export\s+)?(?:default\s+)?(?:async\s+)?function\s+middleware\s*\([^)]*\)\s*\{/i.exec(code);
|
|
136
|
+
if (functionMatch) {
|
|
137
|
+
const openBraceIndex = code.indexOf("{", functionMatch.index);
|
|
138
|
+
return code.slice(functionMatch.index, findMatchingBrace(code, openBraceIndex) + 1);
|
|
139
|
+
}
|
|
140
|
+
const arrowMatch = /\b(?:export\s+)?(?:const|let|var)\s+middleware\s*=\s*(?:async\s*)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)\s*=>/i.exec(code);
|
|
141
|
+
if (!arrowMatch) {
|
|
142
|
+
return code;
|
|
143
|
+
}
|
|
144
|
+
const bodyStart = arrowMatch.index + arrowMatch[0].length;
|
|
145
|
+
if (code[bodyStart] === "{") {
|
|
146
|
+
return code.slice(arrowMatch.index, findMatchingBrace(code, bodyStart) + 1);
|
|
147
|
+
}
|
|
148
|
+
const statementEnd = code.indexOf(";", bodyStart);
|
|
149
|
+
return code.slice(arrowMatch.index, statementEnd === -1 ? code.length : statementEnd);
|
|
150
|
+
}
|
|
151
|
+
function findMatchingBrace(code, openBraceIndex) {
|
|
152
|
+
if (openBraceIndex < 0) {
|
|
153
|
+
return code.length - 1;
|
|
154
|
+
}
|
|
155
|
+
let depth = 0;
|
|
156
|
+
for (let index = openBraceIndex; index < code.length; index += 1) {
|
|
157
|
+
if (code[index] === "{") {
|
|
158
|
+
depth += 1;
|
|
159
|
+
}
|
|
160
|
+
else if (code[index] === "}") {
|
|
161
|
+
depth -= 1;
|
|
162
|
+
if (depth === 0) {
|
|
163
|
+
return index;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return code.length - 1;
|
|
168
|
+
}
|
|
169
|
+
function hasKnownAuthImport(content) {
|
|
170
|
+
const importPattern = /\bimport\s+(?:\{([^}]*)\}|([A-Za-z_$][\w$]*))\s+from\s*["']([^"']+)["']/g;
|
|
171
|
+
for (const match of content.matchAll(importPattern)) {
|
|
172
|
+
const namedBindings = match[1] ?? "";
|
|
173
|
+
const defaultBinding = match[2] ?? "";
|
|
174
|
+
const moduleName = match[3] ?? "";
|
|
175
|
+
const containsAuthBinding = hasNamedAuthBinding(namedBindings) || /^(?:auth|clerk|getUser)$/i.test(defaultBinding);
|
|
176
|
+
if (containsAuthBinding && KNOWN_AUTH_MODULE_PATTERN.test(`\"${moduleName}\"`)) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
function hasNamedAuthBinding(namedBindings) {
|
|
183
|
+
return namedBindings.split(",").some((binding) => {
|
|
184
|
+
const importedName = binding.trim().split(/\s+as\s+/i)[0]?.trim() ?? "";
|
|
185
|
+
return /^(?:auth|clerk|getUser)$/i.test(importedName);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
106
188
|
//# sourceMappingURL=scanner.js.map
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export type Finding = {
|
|
|
24
24
|
line?: number;
|
|
25
25
|
column?: number;
|
|
26
26
|
evidence?: string;
|
|
27
|
+
evidencePath?: string;
|
|
27
28
|
description: string;
|
|
28
29
|
recommendation: string;
|
|
29
30
|
references?: string[];
|
|
@@ -70,6 +71,7 @@ export type MiddlewareSignal = {
|
|
|
70
71
|
hasAuthSignal: boolean;
|
|
71
72
|
hasRateLimitSignal: boolean;
|
|
72
73
|
matchers: string[];
|
|
74
|
+
scopeRoot?: string;
|
|
73
75
|
};
|
|
74
76
|
export type Rule = {
|
|
75
77
|
id: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-secure-check/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Core scanning engine for next-secure-check",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nextjs",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"type": "module",
|
|
18
18
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
19
|
+
"node": ">=20.0.0"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"access": "public"
|