@opensip-cli/checks-typescript 0.1.7 → 0.1.8
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/README.md +2 -2
- package/dist/__tests__/branch-fixtures-3.test.js +41 -0
- package/dist/__tests__/branch-fixtures-3.test.js.map +1 -1
- package/dist/__tests__/branch-fixtures.test.js +1 -3
- package/dist/__tests__/branch-fixtures.test.js.map +1 -1
- package/dist/__tests__/null-safety-typed.test.d.ts +2 -0
- package/dist/__tests__/null-safety-typed.test.d.ts.map +1 -0
- package/dist/__tests__/null-safety-typed.test.js +112 -0
- package/dist/__tests__/null-safety-typed.test.js.map +1 -0
- package/dist/__tests__/shared-program.test.d.ts +2 -0
- package/dist/__tests__/shared-program.test.d.ts.map +1 -0
- package/dist/__tests__/shared-program.test.js +41 -0
- package/dist/__tests__/shared-program.test.js.map +1 -0
- package/dist/__tests__/shipped-allowlists-are-generic.test.d.ts +2 -0
- package/dist/__tests__/shipped-allowlists-are-generic.test.d.ts.map +1 -0
- package/dist/__tests__/shipped-allowlists-are-generic.test.js +64 -0
- package/dist/__tests__/shipped-allowlists-are-generic.test.js.map +1 -0
- package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts +13 -1
- package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts.map +1 -1
- package/dist/checks/quality/code-structure/duplicate-utility-functions.js +7 -3
- package/dist/checks/quality/code-structure/duplicate-utility-functions.js.map +1 -1
- package/dist/checks/quality/data-integrity/null-safety.d.ts +63 -2
- package/dist/checks/quality/data-integrity/null-safety.d.ts.map +1 -1
- package/dist/checks/quality/data-integrity/null-safety.js +191 -102
- package/dist/checks/quality/data-integrity/null-safety.js.map +1 -1
- package/dist/checks/quality/patterns/result-pattern-consistency.d.ts +21 -0
- package/dist/checks/quality/patterns/result-pattern-consistency.d.ts.map +1 -1
- package/dist/checks/quality/patterns/result-pattern-consistency.js +16 -15
- package/dist/checks/quality/patterns/result-pattern-consistency.js.map +1 -1
- package/dist/checks/resilience/no-raw-fetch.d.ts +14 -0
- package/dist/checks/resilience/no-raw-fetch.d.ts.map +1 -1
- package/dist/checks/resilience/no-raw-fetch.js +7 -7
- package/dist/checks/resilience/no-raw-fetch.js.map +1 -1
- package/dist/shared/type-program.d.ts +23 -0
- package/dist/shared/type-program.d.ts.map +1 -0
- package/dist/shared/type-program.js +35 -0
- package/dist/shared/type-program.js.map +1 -0
- package/package.json +5 -5
|
@@ -49,12 +49,12 @@ const MIN_FUNCTION_BODY_LENGTH = 50;
|
|
|
49
49
|
* / logger / common type-guard names — that almost any TS codebase will hit.
|
|
50
50
|
*
|
|
51
51
|
* Project-specific names (e.g. opensip's `getCurrentCorrelationId`,
|
|
52
|
-
* `formatDuration`, `getRemoteUrl`, `
|
|
52
|
+
* `formatDuration`, `getRemoteUrl`, `sanitizeFilename`) belong in a recipe's
|
|
53
53
|
* `checks.config['duplicate-utility-functions'].additionalDomainSpecificFunctions`
|
|
54
54
|
* block. The check reads that list via {@link getCheckConfig} and merges it
|
|
55
55
|
* with these defaults.
|
|
56
56
|
*/
|
|
57
|
-
const
|
|
57
|
+
export const DOMAIN_SPECIFIC_FUNCTION_NAMES = [
|
|
58
58
|
// Config / factory pattern - each domain has its own configuration
|
|
59
59
|
'getConfig',
|
|
60
60
|
'getDefaultConfig',
|
|
@@ -96,7 +96,11 @@ const DOMAIN_SPECIFIC_FUNCTIONS = new Set([
|
|
|
96
96
|
'isIdentChar',
|
|
97
97
|
// Assertion validation — fitness engine + simulation engine each own one
|
|
98
98
|
'validateAssertions',
|
|
99
|
-
]
|
|
99
|
+
];
|
|
100
|
+
// Built once at module load from the immutable name list above. Kept private (a
|
|
101
|
+
// module-level `new Set()` is mutable shared state); the de-leak guard test
|
|
102
|
+
// imports the readonly DOMAIN_SPECIFIC_FUNCTION_NAMES instead.
|
|
103
|
+
const DOMAIN_SPECIFIC_FUNCTIONS = new Set(DOMAIN_SPECIFIC_FUNCTION_NAMES);
|
|
100
104
|
/**
|
|
101
105
|
* Build the effective domain-specific set by merging built-in defaults with
|
|
102
106
|
* the recipe-provided augmentation for `duplicate-utility-functions`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-utility-functions.js","sourceRoot":"","sources":["../../../../src/checks/quality/code-structure/duplicate-utility-functions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"duplicate-utility-functions.js","sourceRoot":"","sources":["../../../../src/checks/quality/code-structure/duplicate-utility-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Detects unsafe property and method access without null checks.
|
|
5
5
|
*/
|
|
6
6
|
import { type CheckViolation } from '@opensip-cli/fitness';
|
|
7
|
+
import * as ts from 'typescript';
|
|
7
8
|
/**
|
|
8
9
|
* Recipe-config shape for null-safety. Project-specific safe-by-construction
|
|
9
|
-
* paths
|
|
10
|
-
* `checks.config['null-safety']` block, not in built-in defaults.
|
|
10
|
+
* paths and factory/builder symbols belong in a recipe's
|
|
11
|
+
* `checks.config['null-safety']` block, not in the check's built-in defaults.
|
|
11
12
|
*/
|
|
12
13
|
export interface NullSafetyConfig extends Record<string, unknown> {
|
|
13
14
|
/**
|
|
@@ -15,7 +16,53 @@ export interface NullSafetyConfig extends Record<string, unknown> {
|
|
|
15
16
|
* is compiled to a case-insensitive RegExp via `new RegExp(entry, 'i')`.
|
|
16
17
|
*/
|
|
17
18
|
additionalSafeNullPaths?: readonly string[];
|
|
19
|
+
/**
|
|
20
|
+
* Additional call-text prefixes treated as non-null by construction (a
|
|
21
|
+
* property access on a matching call result is not flagged). Use this for
|
|
22
|
+
* PROJECT-SPECIFIC factory/builder functions whose non-null contract is
|
|
23
|
+
* local to your codebase — do not hardcode them into the shipped check.
|
|
24
|
+
* Matched via `String.prototype.startsWith` against the full call text.
|
|
25
|
+
*/
|
|
26
|
+
additionalSafeBuilders?: readonly string[];
|
|
27
|
+
/**
|
|
28
|
+
* Use TYPE-AWARE analysis (a real `ts.Program` + `TypeChecker`): a property
|
|
29
|
+
* access on a call/element-access result is flagged only when the receiver's
|
|
30
|
+
* ACTUAL static type includes `null`/`undefined` (`any`/`unknown`/unresolved →
|
|
31
|
+
* not flagged; the checker also handles control-flow narrowing, builder/Zod
|
|
32
|
+
* return types, and chain depth, so the verb-prefix convention does not apply).
|
|
33
|
+
* `additionalSafeBuilders` remains a manual escape hatch for symbols the checker
|
|
34
|
+
* cannot resolve.
|
|
35
|
+
*
|
|
36
|
+
* **Default `true`** (D2). Set `false` to fall back to the legacy
|
|
37
|
+
* name/convention heuristic (faster, no Program build, but higher
|
|
38
|
+
* false-negative rate — it trusts any `get*`/`find*`/… call as non-null).
|
|
39
|
+
*/
|
|
40
|
+
typeAware?: boolean;
|
|
18
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Call prefixes whose results are non-null by construction, so a property
|
|
44
|
+
* access on them needs no guard. Scope is deliberately limited to facts that
|
|
45
|
+
* hold for ANY codebase:
|
|
46
|
+
*
|
|
47
|
+
* 1. Language / runtime guarantees — `Object.*`, `Array.*`, `JSON.*`,
|
|
48
|
+
* `new URL()`, Node `crypto`/`child_process`, `Intl`, the TS compiler API.
|
|
49
|
+
* 2. Widely-used libraries whose builder/query APIs are documented non-null
|
|
50
|
+
* — Zod, TypeORM, Drizzle, better-sqlite3, neverthrow `Result`, Express.
|
|
51
|
+
* 3. Generic builder-pattern conventions — `builder.`, `*ResultBuilder.`.
|
|
52
|
+
*
|
|
53
|
+
* PROJECT-SPECIFIC safe symbols must NOT be hardcoded here: baking one
|
|
54
|
+
* codebase's invariants into a generic check silently suppresses real null
|
|
55
|
+
* bugs in every other codebase (e.g. an adopter whose own `getThing()` can
|
|
56
|
+
* return null). Adopters extend this set with their own factories via the
|
|
57
|
+
* `additionalSafeBuilders` recipe-config key — see `buildEffectiveSafeBuilders`.
|
|
58
|
+
*/
|
|
59
|
+
export declare const SAFE_BUILDER_PREFIXES: string[];
|
|
60
|
+
/**
|
|
61
|
+
* Common method name prefixes that indicate safe (non-null) return values.
|
|
62
|
+
* Methods starting with these prefixes are conventionally designed to always
|
|
63
|
+
* return a value or throw, never return null/undefined.
|
|
64
|
+
*/
|
|
65
|
+
export declare const SAFE_METHOD_PREFIXES: string[];
|
|
19
66
|
/**
|
|
20
67
|
* @param {*} content
|
|
21
68
|
* @param {*} filePath
|
|
@@ -24,6 +71,20 @@ export interface NullSafetyConfig extends Record<string, unknown> {
|
|
|
24
71
|
* suite (see `__tests__/null-safety-fp.test.ts`).
|
|
25
72
|
*/
|
|
26
73
|
export declare function analyzeNullSafety(content: string, filePath: string): CheckViolation[];
|
|
74
|
+
/**
|
|
75
|
+
* Type-aware variant (D2): walk the Program's SourceFile and flag a property
|
|
76
|
+
* access on a call/element-access result ONLY when the receiver's actual type
|
|
77
|
+
* includes `null`/`undefined`. The TypeChecker subsumes every heuristic the
|
|
78
|
+
* convention path uses — control-flow narrowing (guards), builder/Zod return
|
|
79
|
+
* types, and chain depth all fall out of real types — so this detector is
|
|
80
|
+
* deliberately minimal. Fail-open: `any`/`unknown`/unresolved types are not
|
|
81
|
+
* nullable per `isTypeNullable`, so "the compiler doesn't know" never flags.
|
|
82
|
+
*
|
|
83
|
+
* Reads the same path skip + escape-hatch config as the convention path
|
|
84
|
+
* (`additionalSafeNullPaths`, `additionalSafeBuilders`). Exported for the
|
|
85
|
+
* type-aware test suite.
|
|
86
|
+
*/
|
|
87
|
+
export declare function analyzeNullSafetyTyped(sourceFile: ts.SourceFile, checker: ts.TypeChecker, filePath: string): CheckViolation[];
|
|
27
88
|
/**
|
|
28
89
|
* Check: quality/null-safety
|
|
29
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null-safety.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"null-safety.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D;;;OAGG;IACH,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,UA4DjC,CAAC;AAiTF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UAwChC,CAAC;AAoOF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAmFrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CA4ClB;AAyBD;;;;GAIG;AACH,eAAO,MAAM,UAAU,sCA+CrB,CAAC"}
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Detects unsafe property and method access without null checks.
|
|
6
6
|
*/
|
|
7
|
-
import { defineCheck, getCheckConfig, isTestFile } from '@opensip-cli/fitness';
|
|
8
|
-
import { getSharedSourceFile } from '@opensip-cli/lang-typescript';
|
|
7
|
+
import { defineCheck, getCheckConfig, isTestFile, } from '@opensip-cli/fitness';
|
|
8
|
+
import { getSharedSourceFile, isTypeNullable, } from '@opensip-cli/lang-typescript';
|
|
9
9
|
import * as ts from 'typescript';
|
|
10
|
+
import { getSharedTypeCheckedProgram } from '../../../shared/type-program.js';
|
|
10
11
|
/**
|
|
11
12
|
* Patterns that indicate the access is already protected
|
|
12
13
|
*/
|
|
@@ -18,98 +19,82 @@ const SAFE_PATTERNS = [
|
|
|
18
19
|
/&&/, // Logical AND guard
|
|
19
20
|
];
|
|
20
21
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
22
|
+
* Call prefixes whose results are non-null by construction, so a property
|
|
23
|
+
* access on them needs no guard. Scope is deliberately limited to facts that
|
|
24
|
+
* hold for ANY codebase:
|
|
25
|
+
*
|
|
26
|
+
* 1. Language / runtime guarantees — `Object.*`, `Array.*`, `JSON.*`,
|
|
27
|
+
* `new URL()`, Node `crypto`/`child_process`, `Intl`, the TS compiler API.
|
|
28
|
+
* 2. Widely-used libraries whose builder/query APIs are documented non-null
|
|
29
|
+
* — Zod, TypeORM, Drizzle, better-sqlite3, neverthrow `Result`, Express.
|
|
30
|
+
* 3. Generic builder-pattern conventions — `builder.`, `*ResultBuilder.`.
|
|
31
|
+
*
|
|
32
|
+
* PROJECT-SPECIFIC safe symbols must NOT be hardcoded here: baking one
|
|
33
|
+
* codebase's invariants into a generic check silently suppresses real null
|
|
34
|
+
* bugs in every other codebase (e.g. an adopter whose own `getThing()` can
|
|
35
|
+
* return null). Adopters extend this set with their own factories via the
|
|
36
|
+
* `additionalSafeBuilders` recipe-config key — see `buildEffectiveSafeBuilders`.
|
|
23
37
|
*/
|
|
24
|
-
const SAFE_BUILDER_PREFIXES = [
|
|
25
|
-
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
-
'
|
|
37
|
-
'
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
'Object.assign', // Always returns object
|
|
41
|
-
'Object.freeze', // Always returns object
|
|
42
|
-
'Array.from', // Always returns array
|
|
43
|
-
'Array.isArray', // Returns boolean
|
|
44
|
-
'String(', // String constructor always returns string
|
|
45
|
-
'Number(', // Number constructor always returns number
|
|
46
|
-
'Boolean(', // Boolean constructor always returns boolean
|
|
47
|
-
'Buffer.from', // Always returns Buffer
|
|
48
|
-
'JSON.stringify', // Always returns string
|
|
49
|
-
'JSON.parse', // Always returns value
|
|
50
|
-
'process.memoryUsage', // Always returns MemoryUsage
|
|
51
|
-
'getTypedEventBus', // Singleton factory always returns non-null
|
|
52
|
-
'res.status', // Express/Fastify response chaining
|
|
53
|
-
'response.status', // Express/Fastify response chaining
|
|
54
|
-
// better-sqlite3 (prepare always returns Statement)
|
|
55
|
-
'prepare(', // db.prepare() always returns Statement object
|
|
56
|
-
// Drizzle ORM
|
|
57
|
-
'drizzle(', // Drizzle instance creation
|
|
58
|
-
'db.select', // Drizzle query builder
|
|
59
|
-
'db.insert', // Drizzle query builder
|
|
60
|
-
'db.update', // Drizzle query builder
|
|
61
|
-
'db.delete', // Drizzle query builder
|
|
62
|
-
// TypeScript compiler API (always return valid objects)
|
|
63
|
-
'sourceFile.getLineAndCharacterOfPosition',
|
|
64
|
-
'node.getText',
|
|
65
|
-
'node.getStart',
|
|
66
|
-
'node.getEnd',
|
|
67
|
-
'node.getWidth',
|
|
68
|
-
'node.getFullWidth',
|
|
69
|
-
// Browser APIs with guaranteed non-null returns
|
|
70
|
-
'window.matchMedia',
|
|
71
|
-
'document.createElement',
|
|
72
|
-
'document.createTextNode',
|
|
73
|
-
// Singleton factories that throw on failure (never return null)
|
|
74
|
-
'getContextManager',
|
|
75
|
-
'getCredentialConfig',
|
|
76
|
-
'getLogger',
|
|
77
|
-
// Custom builder patterns
|
|
78
|
-
'ScenarioResultBuilder.',
|
|
79
|
-
'ResultBuilder.',
|
|
80
|
-
'CheckResultBuilder.',
|
|
81
|
-
// Node.js URL helpers (always return a URL/string)
|
|
38
|
+
export const SAFE_BUILDER_PREFIXES = [
|
|
39
|
+
// 1. Language / runtime guarantees
|
|
40
|
+
'Object.entries',
|
|
41
|
+
'Object.values',
|
|
42
|
+
'Object.keys',
|
|
43
|
+
'Object.assign',
|
|
44
|
+
'Object.freeze',
|
|
45
|
+
'Array.from',
|
|
46
|
+
'Array.isArray',
|
|
47
|
+
'String(',
|
|
48
|
+
'Number(',
|
|
49
|
+
'Boolean(',
|
|
50
|
+
'Buffer.from',
|
|
51
|
+
'JSON.stringify',
|
|
52
|
+
'JSON.parse',
|
|
53
|
+
'process.memoryUsage',
|
|
82
54
|
'pathToFileURL(',
|
|
83
55
|
'fileURLToPath(',
|
|
84
|
-
// new URL(...) constructor — returns URL or throws
|
|
85
56
|
'new URL(',
|
|
86
|
-
// Node.js child_process (spawn always returns ChildProcess or throws)
|
|
87
57
|
'spawn(',
|
|
88
58
|
'fork(',
|
|
89
|
-
// Node.js crypto (createHash/createHmac always return Hash/Hmac)
|
|
90
59
|
'createHash(',
|
|
91
60
|
'createHmac(',
|
|
92
61
|
'createCipheriv(',
|
|
93
62
|
'createDecipheriv(',
|
|
94
|
-
// Intl formatters (always return formatter instances)
|
|
95
|
-
'getNumberFormatter',
|
|
96
|
-
'getDateFormatter',
|
|
97
63
|
'new Intl.',
|
|
98
64
|
'Intl.NumberFormat',
|
|
99
65
|
'Intl.DateTimeFormat',
|
|
100
|
-
//
|
|
101
|
-
'
|
|
102
|
-
'
|
|
103
|
-
'
|
|
104
|
-
'
|
|
105
|
-
'
|
|
106
|
-
'
|
|
107
|
-
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
'
|
|
111
|
-
|
|
112
|
-
'
|
|
66
|
+
// TypeScript compiler API (always return valid objects)
|
|
67
|
+
'sourceFile.getLineAndCharacterOfPosition',
|
|
68
|
+
'node.getText',
|
|
69
|
+
'node.getStart',
|
|
70
|
+
'node.getEnd',
|
|
71
|
+
'node.getWidth',
|
|
72
|
+
'node.getFullWidth',
|
|
73
|
+
// Browser APIs with guaranteed non-null returns
|
|
74
|
+
'window.matchMedia',
|
|
75
|
+
'document.createElement',
|
|
76
|
+
'document.createTextNode',
|
|
77
|
+
// 2. Common library builder / query APIs
|
|
78
|
+
'z.', // Zod schema builder (z.string(), z.object(), …)
|
|
79
|
+
'createQueryBuilder', // TypeORM QueryBuilder
|
|
80
|
+
'getRepository', // TypeORM Repository
|
|
81
|
+
'EntityManager.', // TypeORM EntityManager
|
|
82
|
+
'queryBuilder.', // TypeORM QueryBuilder variable
|
|
83
|
+
'repository.', // TypeORM Repository variable
|
|
84
|
+
'Result.', // Result pattern builder
|
|
85
|
+
'ResultAsync.', // neverthrow ResultAsync
|
|
86
|
+
'prepare(', // better-sqlite3 db.prepare() → Statement
|
|
87
|
+
'drizzle(', // Drizzle instance creation
|
|
88
|
+
'db.select', // Drizzle query builder
|
|
89
|
+
'db.insert',
|
|
90
|
+
'db.update',
|
|
91
|
+
'db.delete',
|
|
92
|
+
'res.status', // Express/Fastify response chaining
|
|
93
|
+
'response.status',
|
|
94
|
+
// 3. Generic builder-pattern conventions
|
|
95
|
+
'builder.',
|
|
96
|
+
'ResultBuilder.',
|
|
97
|
+
'ScenarioResultBuilder.',
|
|
113
98
|
];
|
|
114
99
|
/**
|
|
115
100
|
* Known safe method names in fluent APIs that always return `this` or non-null values.
|
|
@@ -418,7 +403,7 @@ const SAFE_FLUENT_METHODS = new Set([
|
|
|
418
403
|
* Methods starting with these prefixes are conventionally designed to always
|
|
419
404
|
* return a value or throw, never return null/undefined.
|
|
420
405
|
*/
|
|
421
|
-
const SAFE_METHOD_PREFIXES = [
|
|
406
|
+
export const SAFE_METHOD_PREFIXES = [
|
|
422
407
|
'get',
|
|
423
408
|
'set',
|
|
424
409
|
'is',
|
|
@@ -473,9 +458,9 @@ const SAFE_METHOD_PREFIXES = [
|
|
|
473
458
|
* `readScope`, `currentScenarioRegistry`, etc. whose names convey the same
|
|
474
459
|
* "returns a value or throws" contract.
|
|
475
460
|
*/
|
|
476
|
-
function isSafeBuilderPattern(expression, sourceFile) {
|
|
461
|
+
function isSafeBuilderPattern(expression, sourceFile, safeBuilders) {
|
|
477
462
|
const text = expression.getText(sourceFile);
|
|
478
|
-
if (
|
|
463
|
+
if (safeBuilders.some((prefix) => text.startsWith(prefix)))
|
|
479
464
|
return true;
|
|
480
465
|
if (ts.isIdentifier(expression.expression)) {
|
|
481
466
|
return isSafeFluentMethod(expression.expression.text);
|
|
@@ -631,19 +616,18 @@ function isFluentChain(node) {
|
|
|
631
616
|
* (`.provideValue/.provideClass/...` always return Injector<T>); the chain
|
|
632
617
|
* is split across many lines so the AST chain-depth heuristic does not always
|
|
633
618
|
* apply. The whole-file safe-list captures the convention.
|
|
634
|
-
* - `**\/schema/*.ts`, `**\/*-schema.ts
|
|
635
|
-
*
|
|
636
|
-
*
|
|
619
|
+
* - `**\/schema/*.ts`, `**\/*-schema.ts` — Drizzle/Zod schema declarations are
|
|
620
|
+
* pure column/shape builders. No runtime null-access surface to protect.
|
|
621
|
+
*
|
|
622
|
+
* These are deliberately generic path conventions. Project-specific safe paths
|
|
623
|
+
* (e.g. a bespoke schema/DI folder layout) belong in the
|
|
624
|
+
* `additionalSafeNullPaths` recipe-config key, not in these built-in defaults.
|
|
637
625
|
*/
|
|
638
626
|
const SAFE_NULL_PATHS = [
|
|
639
627
|
/\/di\/fragment\.ts$/,
|
|
640
628
|
/\/di\/fragments\//,
|
|
641
629
|
/\/schema\//,
|
|
642
630
|
/-schema\.ts$/,
|
|
643
|
-
// NOTE: opensip's `/dbos/schema` path is NOT a default. DBOS is a
|
|
644
|
-
// published library, but the path layout is opensip's convention. It
|
|
645
|
-
// lives in opensip's recipe under
|
|
646
|
-
// `checks.config['null-safety'].additionalSafeNullPaths`.
|
|
647
631
|
];
|
|
648
632
|
/** Merge built-in defaults with the recipe-config slice. */
|
|
649
633
|
function buildEffectiveSafePaths() {
|
|
@@ -651,6 +635,14 @@ function buildEffectiveSafePaths() {
|
|
|
651
635
|
const extras = (cfg.additionalSafeNullPaths ?? []).map((src) => new RegExp(src, 'i'));
|
|
652
636
|
return [...SAFE_NULL_PATHS, ...extras];
|
|
653
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Merge the built-in (generic) safe-builder prefixes with any project-specific
|
|
640
|
+
* ones supplied via `checks.config['null-safety'].additionalSafeBuilders`.
|
|
641
|
+
*/
|
|
642
|
+
function buildEffectiveSafeBuilders() {
|
|
643
|
+
const cfg = getCheckConfig('null-safety');
|
|
644
|
+
return [...SAFE_BUILDER_PREFIXES, ...(cfg.additionalSafeBuilders ?? [])];
|
|
645
|
+
}
|
|
654
646
|
function isSafeNullPath(filePath, paths) {
|
|
655
647
|
return paths.some((p) => p.test(filePath));
|
|
656
648
|
}
|
|
@@ -668,6 +660,8 @@ export function analyzeNullSafety(content, filePath) {
|
|
|
668
660
|
const safePaths = buildEffectiveSafePaths();
|
|
669
661
|
if (isSafeNullPath(filePath, safePaths))
|
|
670
662
|
return violations;
|
|
663
|
+
// Effective safe-builder prefixes = generic built-ins + project config.
|
|
664
|
+
const safeBuilders = buildEffectiveSafeBuilders();
|
|
671
665
|
try {
|
|
672
666
|
const sourceFile = getSharedSourceFile(filePath, content);
|
|
673
667
|
if (!sourceFile)
|
|
@@ -691,7 +685,8 @@ export function analyzeNullSafety(content, filePath) {
|
|
|
691
685
|
if (isZodBuilderChain(node, sourceFile))
|
|
692
686
|
return;
|
|
693
687
|
// Skip known safe builder patterns
|
|
694
|
-
if (ts.isCallExpression(expression) &&
|
|
688
|
+
if (ts.isCallExpression(expression) &&
|
|
689
|
+
isSafeBuilderPattern(expression, sourceFile, safeBuilders))
|
|
695
690
|
return;
|
|
696
691
|
// Skip fluent API chains (promise.then().catch(), queryBuilder.where().orderBy())
|
|
697
692
|
if (isFluentChain(node))
|
|
@@ -731,6 +726,81 @@ export function analyzeNullSafety(content, filePath) {
|
|
|
731
726
|
}
|
|
732
727
|
return violations;
|
|
733
728
|
}
|
|
729
|
+
/**
|
|
730
|
+
* Type-aware variant (D2): walk the Program's SourceFile and flag a property
|
|
731
|
+
* access on a call/element-access result ONLY when the receiver's actual type
|
|
732
|
+
* includes `null`/`undefined`. The TypeChecker subsumes every heuristic the
|
|
733
|
+
* convention path uses — control-flow narrowing (guards), builder/Zod return
|
|
734
|
+
* types, and chain depth all fall out of real types — so this detector is
|
|
735
|
+
* deliberately minimal. Fail-open: `any`/`unknown`/unresolved types are not
|
|
736
|
+
* nullable per `isTypeNullable`, so "the compiler doesn't know" never flags.
|
|
737
|
+
*
|
|
738
|
+
* Reads the same path skip + escape-hatch config as the convention path
|
|
739
|
+
* (`additionalSafeNullPaths`, `additionalSafeBuilders`). Exported for the
|
|
740
|
+
* type-aware test suite.
|
|
741
|
+
*/
|
|
742
|
+
export function analyzeNullSafetyTyped(sourceFile, checker, filePath) {
|
|
743
|
+
const violations = [];
|
|
744
|
+
const safePaths = buildEffectiveSafePaths();
|
|
745
|
+
if (isSafeNullPath(filePath, safePaths))
|
|
746
|
+
return violations;
|
|
747
|
+
// Manual escape hatch for symbols the checker can't resolve (untyped JS
|
|
748
|
+
// boundaries, ambient factories): a matching receiver call-text is trusted.
|
|
749
|
+
const safeBuilders = buildEffectiveSafeBuilders();
|
|
750
|
+
const visit = (node) => {
|
|
751
|
+
ts.forEachChild(node, visit);
|
|
752
|
+
if (!ts.isPropertyAccessExpression(node) || ts.isOptionalChain(node))
|
|
753
|
+
return;
|
|
754
|
+
const expression = node.expression;
|
|
755
|
+
if (!ts.isCallExpression(expression) && !ts.isElementAccessExpression(expression))
|
|
756
|
+
return;
|
|
757
|
+
// No `isThisAccess` skip here (unlike the convention path): the checker types
|
|
758
|
+
// `this`-rooted chains correctly — `this.prop` isn't a candidate (receiver is
|
|
759
|
+
// not a call), and `this.getThing()` where getThing() returns nullable SHOULD
|
|
760
|
+
// flag — so the heuristic would only cause false negatives.
|
|
761
|
+
const propName = node.name.text;
|
|
762
|
+
if (['length', 'toString', 'valueOf'].includes(propName))
|
|
763
|
+
return;
|
|
764
|
+
const receiverText = expression.getText(sourceFile);
|
|
765
|
+
if (safeBuilders.some((prefix) => receiverText.startsWith(prefix)))
|
|
766
|
+
return;
|
|
767
|
+
// The one decision: does the receiver's ACTUAL type include null/undefined?
|
|
768
|
+
if (!isTypeNullable(checker.getTypeAtLocation(expression)))
|
|
769
|
+
return;
|
|
770
|
+
const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
771
|
+
violations.push({
|
|
772
|
+
line: line + 1,
|
|
773
|
+
column: character + 1,
|
|
774
|
+
message: `Potentially unsafe property access '.${propName}' without null check`,
|
|
775
|
+
severity: 'warning',
|
|
776
|
+
type: 'unsafe-access',
|
|
777
|
+
suggestion: `Use optional chaining: change '.${propName}' to '?.${propName}', or add an explicit null/undefined check before accessing the property`,
|
|
778
|
+
match: node.getText(sourceFile),
|
|
779
|
+
});
|
|
780
|
+
};
|
|
781
|
+
visit(sourceFile);
|
|
782
|
+
return violations;
|
|
783
|
+
}
|
|
784
|
+
/** Type-aware per-file analysis (D2): flag via the shared Program's checker. */
|
|
785
|
+
function analyzeFileTyped(program, filePath) {
|
|
786
|
+
const sourceFile = program.getSourceFile(filePath);
|
|
787
|
+
if (!sourceFile)
|
|
788
|
+
return []; // not in the Program (e.g. excluded) — skip
|
|
789
|
+
return analyzeNullSafetyTyped(sourceFile, program.checker, filePath);
|
|
790
|
+
}
|
|
791
|
+
/** Convention per-file analysis (default): scan the filtered content (no types). */
|
|
792
|
+
async function analyzeFileConvention(files, filePath) {
|
|
793
|
+
try {
|
|
794
|
+
// FileAccessor.read applies this check's `strip-strings` contentFilter, so
|
|
795
|
+
// `content` matches what the prior per-file `analyze` mode received.
|
|
796
|
+
const content = await files.read(filePath);
|
|
797
|
+
return analyzeNullSafety(content, filePath);
|
|
798
|
+
}
|
|
799
|
+
catch {
|
|
800
|
+
// @fitness-ignore-next-line error-handling-quality -- an unreadable target file is an expected skip (the engine's own analyze mode does the same — see define-check.ts executeAnalyzeMode); a pure check has no actionable error to surface here.
|
|
801
|
+
return []; // unreadable file — skip, matching per-file analyze resilience
|
|
802
|
+
}
|
|
803
|
+
}
|
|
734
804
|
/**
|
|
735
805
|
* Check: quality/null-safety
|
|
736
806
|
*
|
|
@@ -745,22 +815,41 @@ export const nullSafety = defineCheck({
|
|
|
745
815
|
description: 'Detect unsafe property and method access without null checks',
|
|
746
816
|
longDescription: `**Purpose:** Detects property access on potentially nullable expressions (call results, element access) that lack null/undefined guards, preventing runtime \`TypeError\` crashes.
|
|
747
817
|
|
|
748
|
-
**
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
- Skips safe property names: \`length\`, \`toString\`, \`valueOf\`
|
|
752
|
-
- Excludes contracts, schemas, types, CLI/internal tools, and foundation infrastructure files
|
|
818
|
+
**Mode (\`typeAware\`, default \`true\`):** Type-aware — flags a property access on a call/element-access result only when the receiver's ACTUAL type includes \`null\`/\`undefined\`. The checker handles control-flow guards, optional chaining (\`?.\`), builder/Zod/TypeORM return types, and chain depth; \`any\`/\`unknown\`/unresolved types are never flagged (fail-open). \`additionalSafeBuilders\` is a manual escape hatch. Set \`typeAware: false\` for the legacy name/convention heuristic (higher false-negative rate).
|
|
819
|
+
|
|
820
|
+
**Always skipped:** safe property names (\`length\`, \`toString\`, \`valueOf\`) and \`additionalSafeNullPaths\` (schema/DI) files.
|
|
753
821
|
|
|
754
822
|
**Why it matters:** Accessing a property on a \`null\` or \`undefined\` value causes runtime \`TypeError\` exceptions that crash the process if uncaught.
|
|
755
823
|
|
|
756
824
|
**Scope:** General best practice. Analyzes each file individually.`,
|
|
757
825
|
tags: ['quality', 'code-quality', 'type-safety'],
|
|
758
826
|
fileTypes: ['ts', 'tsx'],
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
827
|
+
// D2: runs as analyzeAll so a single type-checked ts.Program can be shared
|
|
828
|
+
// across the run. `typeAware` (recipe config, default off) selects the
|
|
829
|
+
// type-aware detector; otherwise the convention-based detector runs unchanged,
|
|
830
|
+
// so default behavior is byte-identical to the prior per-file `analyze` mode.
|
|
831
|
+
async analyzeAll(files) {
|
|
832
|
+
// Type-aware is the DEFAULT (D2): flag a property access only when the
|
|
833
|
+
// receiver's actual type is nullable. Set `typeAware: false` in recipe config
|
|
834
|
+
// to fall back to the legacy name/convention heuristic.
|
|
835
|
+
const typeAware = getCheckConfig('null-safety').typeAware !== false;
|
|
836
|
+
// Build the shared type-checked Program only in type-aware mode (~1s/~0.6GB,
|
|
837
|
+
// amortized across type-aware checks). The convention fallback needs no Program.
|
|
838
|
+
const program = typeAware ? getSharedTypeCheckedProgram(files.paths) : undefined;
|
|
839
|
+
const violations = [];
|
|
840
|
+
for (const filePath of files.paths) {
|
|
841
|
+
// Skip test files — null safety in tests is low-risk due to controlled inputs.
|
|
842
|
+
if (isTestFile(filePath))
|
|
843
|
+
continue;
|
|
844
|
+
const fileViolations = program
|
|
845
|
+
? analyzeFileTyped(program, filePath)
|
|
846
|
+
: await analyzeFileConvention(files, filePath);
|
|
847
|
+
for (const violation of fileViolations) {
|
|
848
|
+
// analyzeAll injects no default filePath (analyze mode did) — stamp it.
|
|
849
|
+
violations.push(violation.filePath ? violation : { ...violation, filePath });
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
return violations;
|
|
764
853
|
},
|
|
765
854
|
});
|
|
766
855
|
//# sourceMappingURL=null-safety.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null-safety.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"null-safety.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety.ts"],"names":[],"mappings":"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"}
|