cloudflare-expression-lint 0.1.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 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * YAML Scanner
3
+ *
4
+ * Extracts Cloudflare expressions from YAML config files,
5
+ * determines their context (filter vs rewrite vs redirect),
6
+ * and validates them.
7
+ *
8
+ * The scanner ships with minimal built-in mappings that cover
9
+ * standard Cloudflare Terraform provider attribute names. Users
10
+ * can supply custom mappings via ScannerOptions to match their
11
+ * own YAML schema.
12
+ */
13
+ import type { LintResult, ExpressionType } from './types.js';
14
+ export interface YAMLExpressionLocation {
15
+ file: string;
16
+ yamlPath: string;
17
+ line?: number;
18
+ expressionType: ExpressionType;
19
+ phase?: string;
20
+ expression: string;
21
+ }
22
+ export interface YAMLScanResult {
23
+ file: string;
24
+ expressions: (YAMLExpressionLocation & {
25
+ result: LintResult;
26
+ })[];
27
+ parseError?: string;
28
+ }
29
+ /**
30
+ * Defines how a YAML key containing an expression should be interpreted.
31
+ */
32
+ export interface ExpressionKeyMapping {
33
+ /** The expression type (filter, rewrite_url, etc.) */
34
+ type: ExpressionType;
35
+ /** If set, overrides any parent-inferred phase for this key */
36
+ phaseHint?: string;
37
+ }
38
+ /**
39
+ * Maps a YAML parent key to a Cloudflare ruleset phase.
40
+ *
41
+ * When the scanner encounters a YAML object with this key, all
42
+ * descendant `expression` values inherit the specified phase.
43
+ *
44
+ * Example: `{ "rules": "http_request_firewall_custom" }` means
45
+ * any `expression` found inside a `rules:` block is treated as
46
+ * belonging to the `http_request_firewall_custom` phase.
47
+ */
48
+ export type PhaseMapping = Record<string, string>;
49
+ /**
50
+ * Options for customizing how the YAML scanner detects and
51
+ * interprets Cloudflare expressions.
52
+ */
53
+ export interface ScannerOptions {
54
+ /**
55
+ * Map of YAML key names to expression type + optional phase.
56
+ * Merged with (and overrides) the built-in defaults.
57
+ *
58
+ * Built-in keys: expression, rewrite_expression,
59
+ * source_url_expression, target_url_expression
60
+ */
61
+ expressionKeys?: Record<string, ExpressionKeyMapping>;
62
+ /**
63
+ * Map of YAML parent key names to Cloudflare phases.
64
+ * Merged with (and overrides) the built-in defaults.
65
+ *
66
+ * Example: `{ "firewall_rules": "http_request_firewall_custom" }`
67
+ */
68
+ phaseMappings?: PhaseMapping;
69
+ /**
70
+ * If true, replaces the built-in expression key defaults
71
+ * instead of merging with them.
72
+ */
73
+ replaceExpressionKeys?: boolean;
74
+ /**
75
+ * If true, replaces the built-in phase mapping defaults
76
+ * instead of merging with them.
77
+ */
78
+ replacePhaseMappings?: boolean;
79
+ }
80
+ /**
81
+ * Scan a YAML file content for Cloudflare expressions and validate them.
82
+ *
83
+ * @param content - Raw YAML file content
84
+ * @param filePath - File path (used in diagnostics)
85
+ * @param options - Optional scanner customization
86
+ */
87
+ export declare function scanYaml(content: string, filePath: string, options?: ScannerOptions): YAMLScanResult;
88
+ /**
89
+ * Get the current default expression key mappings.
90
+ * Useful for inspecting or extending the defaults.
91
+ */
92
+ export declare function getDefaultExpressionKeys(): Record<string, ExpressionKeyMapping>;
93
+ /**
94
+ * Get the current default phase mappings.
95
+ * Useful for inspecting or extending the defaults.
96
+ */
97
+ export declare function getDefaultPhaseMappings(): PhaseMapping;
@@ -0,0 +1,175 @@
1
+ /**
2
+ * YAML Scanner
3
+ *
4
+ * Extracts Cloudflare expressions from YAML config files,
5
+ * determines their context (filter vs rewrite vs redirect),
6
+ * and validates them.
7
+ *
8
+ * The scanner ships with minimal built-in mappings that cover
9
+ * standard Cloudflare Terraform provider attribute names. Users
10
+ * can supply custom mappings via ScannerOptions to match their
11
+ * own YAML schema.
12
+ */
13
+ import { parse as parseYaml } from 'yaml';
14
+ import { validate } from './validator.js';
15
+ // ── Built-in Defaults ────────────────────────────────────────────────
16
+ /**
17
+ * Default YAML keys that contain Cloudflare expressions.
18
+ *
19
+ * Only includes `expression` — the standard attribute name used by the
20
+ * Cloudflare Terraform provider (cloudflare_ruleset.rules.expression).
21
+ *
22
+ * Users should add their own keys if their YAML schema uses different
23
+ * names for filter, rewrite, or redirect expressions.
24
+ */
25
+ const DEFAULT_EXPRESSION_KEYS = {
26
+ 'expression': { type: 'filter' },
27
+ };
28
+ /**
29
+ * Default phase inference from YAML parent keys.
30
+ *
31
+ * These are intentionally minimal — only mappings that directly
32
+ * correspond to Cloudflare phase names or widely-used conventions.
33
+ * Users should add their own mappings for custom YAML schemas.
34
+ */
35
+ const DEFAULT_PHASE_MAPPINGS = {
36
+ // Direct Cloudflare phase names (if someone uses these as YAML keys)
37
+ 'http_request_firewall_custom': 'http_request_firewall_custom',
38
+ 'http_ratelimit': 'http_ratelimit',
39
+ 'http_request_cache_settings': 'http_request_cache_settings',
40
+ 'http_config_settings': 'http_config_settings',
41
+ 'http_request_late_transform': 'http_request_late_transform',
42
+ 'http_response_headers_transform': 'http_response_headers_transform',
43
+ 'http_request_transform': 'http_request_transform',
44
+ 'http_request_dynamic_redirect': 'http_request_dynamic_redirect',
45
+ 'http_request_origin': 'http_request_origin',
46
+ 'http_request_snippets': 'http_request_snippets',
47
+ 'http_request_redirect': 'http_request_redirect',
48
+ // Common shorthand keys used in YAML configs
49
+ 'cache_rules': 'http_request_cache_settings',
50
+ 'rate_limit_rules': 'http_ratelimit',
51
+ 'ratelimit_rules': 'http_ratelimit',
52
+ 'single_redirects': 'http_request_dynamic_redirect',
53
+ 'origin_rules': 'http_request_origin',
54
+ };
55
+ // ── Public API ───────────────────────────────────────────────────────
56
+ /**
57
+ * Scan a YAML file content for Cloudflare expressions and validate them.
58
+ *
59
+ * @param content - Raw YAML file content
60
+ * @param filePath - File path (used in diagnostics)
61
+ * @param options - Optional scanner customization
62
+ */
63
+ export function scanYaml(content, filePath, options) {
64
+ const expressionKeys = buildExpressionKeys(options);
65
+ const phaseMappings = buildPhaseMappings(options);
66
+ let doc;
67
+ try {
68
+ doc = parseYaml(content);
69
+ }
70
+ catch (err) {
71
+ return {
72
+ file: filePath,
73
+ expressions: [],
74
+ parseError: err instanceof Error ? err.message : String(err),
75
+ };
76
+ }
77
+ const locations = [];
78
+ walkYaml(doc, [], locations, filePath, undefined, expressionKeys, phaseMappings);
79
+ const expressions = locations.map(loc => {
80
+ const ctx = {
81
+ expressionType: loc.expressionType,
82
+ phase: loc.phase,
83
+ allowPlaceholders: true,
84
+ };
85
+ const result = validate(loc.expression, ctx);
86
+ return { ...loc, result };
87
+ });
88
+ return { file: filePath, expressions };
89
+ }
90
+ /**
91
+ * Get the current default expression key mappings.
92
+ * Useful for inspecting or extending the defaults.
93
+ */
94
+ export function getDefaultExpressionKeys() {
95
+ return { ...DEFAULT_EXPRESSION_KEYS };
96
+ }
97
+ /**
98
+ * Get the current default phase mappings.
99
+ * Useful for inspecting or extending the defaults.
100
+ */
101
+ export function getDefaultPhaseMappings() {
102
+ return { ...DEFAULT_PHASE_MAPPINGS };
103
+ }
104
+ // ── Internal Helpers ─────────────────────────────────────────────────
105
+ function buildExpressionKeys(options) {
106
+ if (!options?.expressionKeys)
107
+ return DEFAULT_EXPRESSION_KEYS;
108
+ if (options.replaceExpressionKeys)
109
+ return options.expressionKeys;
110
+ return { ...DEFAULT_EXPRESSION_KEYS, ...options.expressionKeys };
111
+ }
112
+ function buildPhaseMappings(options) {
113
+ if (!options?.phaseMappings)
114
+ return DEFAULT_PHASE_MAPPINGS;
115
+ if (options.replacePhaseMappings)
116
+ return options.phaseMappings;
117
+ return { ...DEFAULT_PHASE_MAPPINGS, ...options.phaseMappings };
118
+ }
119
+ /**
120
+ * Recursively walk a parsed YAML structure and extract expressions.
121
+ */
122
+ function walkYaml(node, path, results, filePath, inferredPhase, expressionKeys, phaseMappings) {
123
+ if (node === null || node === undefined)
124
+ return;
125
+ if (typeof node === 'object' && !Array.isArray(node)) {
126
+ const obj = node;
127
+ // Check if any key in this object hints at a phase
128
+ let phase = inferredPhase;
129
+ for (const key of Object.keys(obj)) {
130
+ if (phaseMappings[key]) {
131
+ phase = phaseMappings[key];
132
+ }
133
+ }
134
+ for (const [key, value] of Object.entries(obj)) {
135
+ const keyPath = [...path, key];
136
+ // Check if this key is an expression key
137
+ const exprInfo = expressionKeys[key];
138
+ if (exprInfo && typeof value === 'string') {
139
+ const exprStr = value.trim();
140
+ if (exprStr) {
141
+ results.push({
142
+ file: filePath,
143
+ yamlPath: keyPath.join('.'),
144
+ expressionType: exprInfo.type,
145
+ phase: exprInfo.phaseHint ?? phase,
146
+ expression: exprStr,
147
+ });
148
+ }
149
+ }
150
+ // Check for header expression (nested in headers array)
151
+ if (key === 'headers' && Array.isArray(value)) {
152
+ for (let i = 0; i < value.length; i++) {
153
+ const header = value[i];
154
+ if (header && typeof header === 'object' && 'expression' in header && typeof header.expression === 'string') {
155
+ results.push({
156
+ file: filePath,
157
+ yamlPath: [...keyPath, `${i}`, 'expression'].join('.'),
158
+ expressionType: 'rewrite_header',
159
+ phase: phase ?? 'http_request_late_transform',
160
+ expression: header.expression.trim(),
161
+ });
162
+ }
163
+ }
164
+ }
165
+ // Recurse
166
+ walkYaml(value, keyPath, results, filePath, phase, expressionKeys, phaseMappings);
167
+ }
168
+ }
169
+ else if (Array.isArray(node)) {
170
+ for (let i = 0; i < node.length; i++) {
171
+ walkYaml(node[i], [...path, `${i}`], results, filePath, inferredPhase, expressionKeys, phaseMappings);
172
+ }
173
+ }
174
+ }
175
+ //# sourceMappingURL=yaml-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-scanner.js","sourceRoot":"","sources":["../src/yaml-scanner.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "cloudflare-expression-lint",
3
+ "version": "0.1.0",
4
+ "description": "A parser, validator, and linter for Cloudflare Rules Language expressions with phase-aware field and function checking",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "cf-expr-lint": "./dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ },
16
+ "./eslint-plugin": {
17
+ "import": "./dist/eslint-plugin.js",
18
+ "types": "./dist/eslint-plugin.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist/",
23
+ "README.md",
24
+ "LICENSE",
25
+ "CLAUDE.md"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "test": "vitest run",
30
+ "test:watch": "vitest",
31
+ "test:coverage": "vitest run --coverage",
32
+ "lint": "tsc --noEmit"
33
+ },
34
+ "keywords": [
35
+ "cloudflare",
36
+ "expression",
37
+ "lint",
38
+ "validator",
39
+ "parser",
40
+ "firewall",
41
+ "waf",
42
+ "terraform",
43
+ "wirefilter",
44
+ "rules-language"
45
+ ],
46
+ "author": "Troy Jones",
47
+ "license": "MIT",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/troymjones/cloudflare-expression-lint.git"
51
+ },
52
+ "bugs": {
53
+ "url": "https://github.com/troymjones/cloudflare-expression-lint/issues"
54
+ },
55
+ "homepage": "https://github.com/troymjones/cloudflare-expression-lint#readme",
56
+ "devDependencies": {
57
+ "@types/node": "^20.11.0",
58
+ "typescript": "^5.3.3",
59
+ "vitest": "^1.2.0"
60
+ },
61
+ "dependencies": {
62
+ "yaml": "^2.3.4",
63
+ "glob": "^10.3.10"
64
+ },
65
+ "peerDependencies": {
66
+ "eslint": ">=8.0.0",
67
+ "yaml-eslint-parser": ">=1.0.0"
68
+ },
69
+ "peerDependenciesMeta": {
70
+ "eslint": {
71
+ "optional": true
72
+ },
73
+ "yaml-eslint-parser": {
74
+ "optional": true
75
+ }
76
+ },
77
+ "engines": {
78
+ "node": ">=18.0.0"
79
+ }
80
+ }