veto-leash 0.1.3 → 1.0.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.
Files changed (96) hide show
  1. package/README.md +111 -196
  2. package/dist/ast/builtins.d.ts +28 -0
  3. package/dist/ast/builtins.d.ts.map +1 -0
  4. package/dist/ast/builtins.js +361 -0
  5. package/dist/ast/builtins.js.map +1 -0
  6. package/dist/ast/checker.d.ts +17 -0
  7. package/dist/ast/checker.d.ts.map +1 -0
  8. package/dist/ast/checker.js +97 -0
  9. package/dist/ast/checker.js.map +1 -0
  10. package/dist/ast/index.d.ts +5 -0
  11. package/dist/ast/index.d.ts.map +1 -0
  12. package/dist/ast/index.js +7 -0
  13. package/dist/ast/index.js.map +1 -0
  14. package/dist/ast/parser.d.ts +55 -0
  15. package/dist/ast/parser.d.ts.map +1 -0
  16. package/dist/ast/parser.js +210 -0
  17. package/dist/ast/parser.js.map +1 -0
  18. package/dist/ast/query.d.ts +48 -0
  19. package/dist/ast/query.d.ts.map +1 -0
  20. package/dist/ast/query.js +102 -0
  21. package/dist/ast/query.js.map +1 -0
  22. package/dist/ast/validate-cli.d.ts +21 -0
  23. package/dist/ast/validate-cli.d.ts.map +1 -0
  24. package/dist/ast/validate-cli.js +73 -0
  25. package/dist/ast/validate-cli.js.map +1 -0
  26. package/dist/cli.js +105 -21
  27. package/dist/cli.js.map +1 -1
  28. package/dist/compiler/builtins.d.ts.map +1 -1
  29. package/dist/compiler/builtins.js +721 -4
  30. package/dist/compiler/builtins.js.map +1 -1
  31. package/dist/compiler/commands.d.ts +40 -0
  32. package/dist/compiler/commands.d.ts.map +1 -0
  33. package/dist/compiler/commands.js +311 -0
  34. package/dist/compiler/commands.js.map +1 -0
  35. package/dist/compiler/content.d.ts +160 -0
  36. package/dist/compiler/content.d.ts.map +1 -0
  37. package/dist/compiler/content.js +461 -0
  38. package/dist/compiler/content.js.map +1 -0
  39. package/dist/compiler/index.d.ts.map +1 -1
  40. package/dist/compiler/index.js +34 -7
  41. package/dist/compiler/index.js.map +1 -1
  42. package/dist/compiler/llm.d.ts.map +1 -1
  43. package/dist/compiler/llm.js +96 -9
  44. package/dist/compiler/llm.js.map +1 -1
  45. package/dist/compiler/prompt.d.ts +1 -1
  46. package/dist/compiler/prompt.d.ts.map +1 -1
  47. package/dist/compiler/prompt.js +247 -15
  48. package/dist/compiler/prompt.js.map +1 -1
  49. package/dist/config/leash-parser.d.ts +29 -0
  50. package/dist/config/leash-parser.d.ts.map +1 -0
  51. package/dist/config/leash-parser.js +70 -0
  52. package/dist/config/leash-parser.js.map +1 -0
  53. package/dist/config/loader.d.ts +2 -1
  54. package/dist/config/loader.d.ts.map +1 -1
  55. package/dist/config/loader.js +18 -8
  56. package/dist/config/loader.js.map +1 -1
  57. package/dist/config/schema.d.ts +8 -0
  58. package/dist/config/schema.d.ts.map +1 -1
  59. package/dist/config/schema.js +19 -0
  60. package/dist/config/schema.js.map +1 -1
  61. package/dist/config/watcher.d.ts +18 -0
  62. package/dist/config/watcher.d.ts.map +1 -0
  63. package/dist/config/watcher.js +102 -0
  64. package/dist/config/watcher.js.map +1 -0
  65. package/dist/matcher.d.ts +18 -0
  66. package/dist/matcher.d.ts.map +1 -1
  67. package/dist/matcher.js +43 -0
  68. package/dist/matcher.js.map +1 -1
  69. package/dist/native/claude-code.d.ts.map +1 -1
  70. package/dist/native/claude-code.js +294 -50
  71. package/dist/native/claude-code.js.map +1 -1
  72. package/dist/native/cursor.d.ts +14 -1
  73. package/dist/native/cursor.d.ts.map +1 -1
  74. package/dist/native/cursor.js +340 -34
  75. package/dist/native/cursor.js.map +1 -1
  76. package/dist/native/index.d.ts +5 -0
  77. package/dist/native/index.d.ts.map +1 -1
  78. package/dist/native/index.js +56 -10
  79. package/dist/native/index.js.map +1 -1
  80. package/dist/native/opencode.d.ts.map +1 -1
  81. package/dist/native/opencode.js +15 -3
  82. package/dist/native/opencode.js.map +1 -1
  83. package/dist/native/validator.d.ts +15 -0
  84. package/dist/native/validator.d.ts.map +1 -0
  85. package/dist/native/validator.js +368 -0
  86. package/dist/native/validator.js.map +1 -0
  87. package/dist/types.d.ts +114 -0
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js.map +1 -1
  90. package/dist/wrapper/daemon.d.ts.map +1 -1
  91. package/dist/wrapper/daemon.js +31 -2
  92. package/dist/wrapper/daemon.js.map +1 -1
  93. package/languages/tree-sitter-javascript.wasm +0 -0
  94. package/languages/tree-sitter-tsx.wasm +0 -0
  95. package/languages/tree-sitter-typescript.wasm +0 -0
  96. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/compiler/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/compiler/builtins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { CommandCheckResult, Policy } from '../types.js';
2
+ /**
3
+ * Split a complex command string into individual commands.
4
+ * Handles: &&, ||, ;, |, and subshells
5
+ */
6
+ export declare function splitCommands(fullCommand: string): string[];
7
+ /**
8
+ * Normalize a command for pattern matching.
9
+ * - Lowercase
10
+ * - Collapse whitespace
11
+ * - Trim
12
+ */
13
+ export declare function normalizeCommand(command: string): string;
14
+ /**
15
+ * Check if a command matches a pattern.
16
+ * Patterns use glob-style matching:
17
+ * - "npm install" - exact match or prefix
18
+ * - "npm *" - npm with any subcommand
19
+ * - "npm install *" - npm install with any args
20
+ * - "*lodash*" - any command containing lodash
21
+ */
22
+ export declare function commandMatches(command: string, pattern: string): boolean;
23
+ /**
24
+ * Check a command string against all command rules in a policy.
25
+ * Returns the first matching rule, or null if allowed.
26
+ */
27
+ export declare function checkCommand(command: string, policy: Policy): CommandCheckResult;
28
+ /**
29
+ * Check a command against multiple policies.
30
+ * Returns the first blocking result.
31
+ */
32
+ export declare function checkCommandAgainstPolicies(command: string, policies: Policy[]): CommandCheckResult & {
33
+ policy?: Policy;
34
+ };
35
+ /**
36
+ * Extract file targets from common shell commands.
37
+ * Used for file-level policy checking on bash commands.
38
+ */
39
+ export declare function extractFileTargets(command: string, action: 'delete' | 'modify' | 'execute' | 'read'): string[];
40
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/compiler/commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkD3E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA+E3D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqDxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,kBAAkB,CA4BpB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,kBAAkB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAC/C,MAAM,EAAE,CAgFV"}
@@ -0,0 +1,311 @@
1
+ // src/compiler/commands.ts
2
+ // Command parsing and matching for command-level policy enforcement
3
+ import micromatch from 'micromatch';
4
+ const { isMatch } = micromatch;
5
+ /**
6
+ * Common command aliases - normalized for matching
7
+ */
8
+ const COMMAND_ALIASES = {
9
+ // npm
10
+ 'npm i': ['npm install'],
11
+ 'npm ci': ['npm clean-install'],
12
+ 'npm r': ['npm remove', 'npm uninstall'],
13
+ 'npm rm': ['npm remove', 'npm uninstall'],
14
+ 'npm un': ['npm uninstall'],
15
+ 'npm ls': ['npm list'],
16
+ // yarn
17
+ 'yarn': ['yarn install'],
18
+ // pnpm
19
+ 'pnpm i': ['pnpm install'],
20
+ 'pnpm rm': ['pnpm remove'],
21
+ // bun
22
+ 'bun i': ['bun install'],
23
+ 'bun a': ['bun add'],
24
+ 'bun rm': ['bun remove'],
25
+ // git
26
+ 'git co': ['git checkout'],
27
+ 'git ci': ['git commit'],
28
+ 'git st': ['git status'],
29
+ 'git br': ['git branch'],
30
+ };
31
+ /**
32
+ * Expand command aliases to their full forms for matching
33
+ */
34
+ function expandAliases(command) {
35
+ const normalized = command.toLowerCase().trim();
36
+ const expanded = [normalized];
37
+ for (const [alias, expansions] of Object.entries(COMMAND_ALIASES)) {
38
+ if (normalized.startsWith(alias)) {
39
+ const suffix = normalized.slice(alias.length);
40
+ for (const expansion of expansions) {
41
+ expanded.push(expansion + suffix);
42
+ }
43
+ }
44
+ }
45
+ return expanded;
46
+ }
47
+ /**
48
+ * Split a complex command string into individual commands.
49
+ * Handles: &&, ||, ;, |, and subshells
50
+ */
51
+ export function splitCommands(fullCommand) {
52
+ const commands = [];
53
+ let current = '';
54
+ let depth = 0;
55
+ let inQuote = null;
56
+ for (let i = 0; i < fullCommand.length; i++) {
57
+ const char = fullCommand[i];
58
+ const prev = i > 0 ? fullCommand[i - 1] : '';
59
+ // Handle quotes
60
+ if ((char === '"' || char === "'") && prev !== '\\') {
61
+ if (inQuote === char) {
62
+ inQuote = null;
63
+ }
64
+ else if (!inQuote) {
65
+ inQuote = char;
66
+ }
67
+ current += char;
68
+ continue;
69
+ }
70
+ // Handle parentheses/subshells
71
+ if (!inQuote) {
72
+ if (char === '(' || char === '{') {
73
+ depth++;
74
+ }
75
+ else if (char === ')' || char === '}') {
76
+ depth--;
77
+ }
78
+ }
79
+ // Split on command separators (only at depth 0, outside quotes)
80
+ if (depth === 0 && !inQuote) {
81
+ // Check for && || ; |
82
+ if (char === '&' && fullCommand[i + 1] === '&') {
83
+ if (current.trim())
84
+ commands.push(current.trim());
85
+ current = '';
86
+ i++; // Skip next &
87
+ continue;
88
+ }
89
+ if (char === '|' && fullCommand[i + 1] === '|') {
90
+ if (current.trim())
91
+ commands.push(current.trim());
92
+ current = '';
93
+ i++; // Skip next |
94
+ continue;
95
+ }
96
+ if (char === ';') {
97
+ if (current.trim())
98
+ commands.push(current.trim());
99
+ current = '';
100
+ continue;
101
+ }
102
+ // Single pipe - still add the command before pipe
103
+ if (char === '|' && fullCommand[i + 1] !== '|') {
104
+ if (current.trim())
105
+ commands.push(current.trim());
106
+ current = '';
107
+ continue;
108
+ }
109
+ }
110
+ current += char;
111
+ }
112
+ if (current.trim()) {
113
+ commands.push(current.trim());
114
+ }
115
+ // Extract commands from subshells: bash -c "command", sh -c 'command'
116
+ const expanded = [];
117
+ for (const cmd of commands) {
118
+ expanded.push(cmd);
119
+ // Check for subshell patterns
120
+ const subshellMatch = cmd.match(/^(?:bash|sh|zsh)\s+(?:-c\s+)?["'](.+)["']$/);
121
+ if (subshellMatch) {
122
+ // Recursively split the subshell command
123
+ expanded.push(...splitCommands(subshellMatch[1]));
124
+ }
125
+ }
126
+ return expanded;
127
+ }
128
+ /**
129
+ * Normalize a command for pattern matching.
130
+ * - Lowercase
131
+ * - Collapse whitespace
132
+ * - Trim
133
+ */
134
+ export function normalizeCommand(command) {
135
+ return command
136
+ .toLowerCase()
137
+ .replace(/\s+/g, ' ')
138
+ .trim();
139
+ }
140
+ /**
141
+ * Check if a command matches a pattern.
142
+ * Patterns use glob-style matching:
143
+ * - "npm install" - exact match or prefix
144
+ * - "npm *" - npm with any subcommand
145
+ * - "npm install *" - npm install with any args
146
+ * - "*lodash*" - any command containing lodash
147
+ */
148
+ export function commandMatches(command, pattern) {
149
+ const normalizedCmd = normalizeCommand(command);
150
+ const normalizedPattern = normalizeCommand(pattern);
151
+ // Exact match fast path
152
+ if (normalizedCmd === normalizedPattern) {
153
+ return true;
154
+ }
155
+ // Check if pattern has wildcards
156
+ if (!normalizedPattern.includes('*') && !normalizedPattern.includes('?')) {
157
+ // No wildcards - check if command starts with pattern
158
+ // "npm install lodash" should match "npm install"
159
+ return normalizedCmd.startsWith(normalizedPattern + ' ') ||
160
+ normalizedCmd === normalizedPattern;
161
+ }
162
+ // Handle patterns like "npm *" or "npm install*"
163
+ // Convert to proper glob that matches from start
164
+ // If pattern starts with *, it's a contains match
165
+ if (normalizedPattern.startsWith('*')) {
166
+ return isMatch(normalizedCmd, normalizedPattern, { nocase: true });
167
+ }
168
+ // Otherwise, pattern should match from the beginning
169
+ // "npm install*" should match "npm install" and "npm install lodash"
170
+ // but NOT "pnpm install"
171
+ // For patterns like "npm *", we need to match "npm " followed by anything
172
+ // For patterns like "npm install*", we need to match "npm install" followed by anything
173
+ // Convert "npm *" to match "npm " + anything
174
+ // Convert "npm install*" to match "npm install" + anything (including empty)
175
+ // Split pattern into prefix (before first *) and rest
176
+ const firstStarIdx = normalizedPattern.indexOf('*');
177
+ const prefix = normalizedPattern.slice(0, firstStarIdx);
178
+ const suffix = normalizedPattern.slice(firstStarIdx);
179
+ // Check if command starts with prefix
180
+ if (!normalizedCmd.startsWith(prefix)) {
181
+ return false;
182
+ }
183
+ // For patterns ending with just "*", match the rest
184
+ if (suffix === '*') {
185
+ return true;
186
+ }
187
+ // For more complex patterns, use micromatch on the remaining part
188
+ const remainingCmd = normalizedCmd.slice(prefix.length);
189
+ return isMatch(remainingCmd, suffix, { nocase: true });
190
+ }
191
+ /**
192
+ * Check a command string against all command rules in a policy.
193
+ * Returns the first matching rule, or null if allowed.
194
+ */
195
+ export function checkCommand(command, policy) {
196
+ if (!policy.commandRules || policy.commandRules.length === 0) {
197
+ return { blocked: false };
198
+ }
199
+ // Split into individual commands
200
+ const commands = splitCommands(command);
201
+ for (const cmd of commands) {
202
+ // Expand aliases
203
+ const variations = expandAliases(cmd);
204
+ for (const rule of policy.commandRules) {
205
+ for (const pattern of rule.block) {
206
+ for (const variation of variations) {
207
+ if (commandMatches(variation, pattern)) {
208
+ return {
209
+ blocked: true,
210
+ rule,
211
+ matchedPattern: pattern,
212
+ };
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
218
+ return { blocked: false };
219
+ }
220
+ /**
221
+ * Check a command against multiple policies.
222
+ * Returns the first blocking result.
223
+ */
224
+ export function checkCommandAgainstPolicies(command, policies) {
225
+ for (const policy of policies) {
226
+ const result = checkCommand(command, policy);
227
+ if (result.blocked) {
228
+ return { ...result, policy };
229
+ }
230
+ }
231
+ return { blocked: false };
232
+ }
233
+ /**
234
+ * Extract file targets from common shell commands.
235
+ * Used for file-level policy checking on bash commands.
236
+ */
237
+ export function extractFileTargets(command, action) {
238
+ const targets = [];
239
+ const commands = splitCommands(command);
240
+ for (const cmd of commands) {
241
+ const normalized = normalizeCommand(cmd);
242
+ const parts = normalized.split(' ').filter(Boolean);
243
+ if (parts.length < 2)
244
+ continue;
245
+ const [executable, ...args] = parts;
246
+ if (action === 'delete') {
247
+ // rm, git rm
248
+ if (executable === 'rm' || (executable === 'git' && args[0] === 'rm')) {
249
+ const startIdx = executable === 'git' ? 1 : 0;
250
+ for (let i = startIdx; i < args.length; i++) {
251
+ const arg = args[i];
252
+ // Skip flags
253
+ if (!arg.startsWith('-')) {
254
+ targets.push(arg);
255
+ }
256
+ }
257
+ }
258
+ }
259
+ if (action === 'modify') {
260
+ // mv, cp (source file)
261
+ if (executable === 'mv' || executable === 'cp') {
262
+ for (const arg of args) {
263
+ if (!arg.startsWith('-')) {
264
+ targets.push(arg);
265
+ break; // Only first non-flag arg is source
266
+ }
267
+ }
268
+ }
269
+ // Direct file writes via redirects are harder to detect
270
+ // The Edit/Write tools handle this directly
271
+ }
272
+ if (action === 'execute') {
273
+ // Direct execution
274
+ if (executable === 'node' || executable === 'python' ||
275
+ executable === 'python3' || executable === 'bash' ||
276
+ executable === 'sh' || executable === './' ||
277
+ executable.startsWith('./')) {
278
+ for (const arg of args) {
279
+ if (!arg.startsWith('-')) {
280
+ targets.push(arg);
281
+ break;
282
+ }
283
+ }
284
+ }
285
+ }
286
+ if (action === 'read') {
287
+ // cat, head, tail, less, more
288
+ if (['cat', 'head', 'tail', 'less', 'more'].includes(executable)) {
289
+ let skipNext = false;
290
+ for (let i = 0; i < args.length; i++) {
291
+ const arg = args[i];
292
+ if (skipNext) {
293
+ skipNext = false;
294
+ continue;
295
+ }
296
+ // Skip flags and their values
297
+ if (arg.startsWith('-')) {
298
+ // Flags like -n, -c that take a value
299
+ if (['-n', '-c', '--lines', '--bytes'].includes(arg)) {
300
+ skipNext = true;
301
+ }
302
+ continue;
303
+ }
304
+ targets.push(arg);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ return targets;
310
+ }
311
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/compiler/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ import type { ContentRule, ContentCheckResult, Policy } from '../types.js';
2
+ /**
3
+ * Result of checking content with detailed match info
4
+ */
5
+ export interface ContentMatch {
6
+ file: string;
7
+ line: number;
8
+ column: number;
9
+ match: string;
10
+ rule: ContentRule;
11
+ }
12
+ /**
13
+ * Strip single-line and multi-line comments from code.
14
+ * Preserves line numbers by replacing with spaces.
15
+ */
16
+ export declare function stripComments(content: string): string;
17
+ /**
18
+ * Strip string literals from code, replacing with placeholder.
19
+ * Preserves line numbers.
20
+ */
21
+ export declare function stripStrings(content: string): string;
22
+ /**
23
+ * Check if a file path matches any of the file type patterns.
24
+ */
25
+ export declare function fileMatchesPatterns(filePath: string, patterns: string[]): boolean;
26
+ /**
27
+ * Check content against a single content rule.
28
+ */
29
+ export declare function checkContentRule(content: string, filePath: string, rule: ContentRule): ContentMatch | null;
30
+ /**
31
+ * Check content against all content rules in a policy.
32
+ */
33
+ export declare function checkContent(content: string, filePath: string, policy: Policy): ContentCheckResult;
34
+ /**
35
+ * Check content against multiple policies.
36
+ */
37
+ export declare function checkContentAgainstPolicies(content: string, filePath: string, policies: Policy[]): ContentCheckResult & {
38
+ policy?: Policy;
39
+ };
40
+ /**
41
+ * Get all matches for a rule in content.
42
+ */
43
+ export declare function findAllMatches(content: string, filePath: string, rule: ContentRule): ContentMatch[];
44
+ /**
45
+ * Pattern set for detecting lodash usage.
46
+ * Covers: ES imports, CommonJS, dynamic imports, submodules, individual packages
47
+ */
48
+ export declare const LODASH_PATTERNS: {
49
+ esDefault: string;
50
+ esNamed: string;
51
+ esNamespace: string;
52
+ esSubmodule: string;
53
+ esIndividual: string;
54
+ esLodashEs: string;
55
+ cjsRequire: string;
56
+ cjsSubmodule: string;
57
+ cjsIndividual: string;
58
+ dynamicImport: string;
59
+ any: string;
60
+ };
61
+ /**
62
+ * Pattern set for detecting TypeScript 'any' type usage.
63
+ * Covers: annotations, generics, assertions, type aliases, defaults
64
+ */
65
+ export declare const ANY_TYPE_PATTERNS: {
66
+ annotation: string;
67
+ annotationArray: string;
68
+ genericParam: string;
69
+ genericInArray: string;
70
+ genericInRecord: string;
71
+ genericInPromise: string;
72
+ genericInMap: string;
73
+ genericInSet: string;
74
+ asAny: string;
75
+ asUnknownAsAny: string;
76
+ typeAlias: string;
77
+ typeAliasPartial: string;
78
+ genericDefault: string;
79
+ returnAny: string;
80
+ extendsAny: string;
81
+ intersectionAny: string;
82
+ unionAny: string;
83
+ common: string;
84
+ };
85
+ /**
86
+ * Pattern set for detecting console usage.
87
+ * Covers: direct calls, destructuring, aliasing, bracket notation
88
+ */
89
+ export declare const CONSOLE_PATTERNS: {
90
+ log: string;
91
+ warn: string;
92
+ error: string;
93
+ info: string;
94
+ debug: string;
95
+ trace: string;
96
+ table: string;
97
+ dir: string;
98
+ bracket: string;
99
+ destructure: string;
100
+ alias: string;
101
+ anyMethod: string;
102
+ };
103
+ /**
104
+ * Pattern set for detecting React class components.
105
+ * Covers: Component, PureComponent, with/without React prefix
106
+ */
107
+ export declare const CLASS_COMPONENT_PATTERNS: {
108
+ component: string;
109
+ pureComponent: string;
110
+ any: string;
111
+ };
112
+ /**
113
+ * Pattern set for detecting eval usage.
114
+ * Covers: direct eval, Function constructor, setTimeout/setInterval with strings
115
+ */
116
+ export declare const EVAL_PATTERNS: {
117
+ direct: string;
118
+ functionConstructor: string;
119
+ setTimeoutString: string;
120
+ setIntervalString: string;
121
+ any: string;
122
+ };
123
+ /**
124
+ * Pattern set for moment.js detection.
125
+ */
126
+ export declare const MOMENT_PATTERNS: {
127
+ esImport: string;
128
+ cjsRequire: string;
129
+ dynamicImport: string;
130
+ any: string;
131
+ };
132
+ export declare const COMMON_PATTERNS: {
133
+ readonly lodashImport: string;
134
+ readonly lodashRequire: string;
135
+ readonly anyLodash: string;
136
+ readonly consoleLog: string;
137
+ readonly consoleWarn: string;
138
+ readonly consoleError: string;
139
+ readonly anyConsole: string;
140
+ readonly classComponent: string;
141
+ readonly reactClass: string;
142
+ readonly anyType: string;
143
+ readonly anyTypeGeneric: string;
144
+ readonly asAny: string;
145
+ readonly momentImport: string;
146
+ readonly jqueryImport: string;
147
+ readonly underscoreImport: string;
148
+ readonly eval: string;
149
+ readonly innerHtml: string;
150
+ readonly dangerouslySetInnerHTML: string;
151
+ readonly todoComment: string;
152
+ readonly fixmeComment: string;
153
+ readonly debugger: string;
154
+ };
155
+ export declare const EXCEPTION_PATTERNS: {
156
+ anyInVariableName: string;
157
+ consoleInTest: string;
158
+ lodashMigration: string;
159
+ };
160
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/compiler/content.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI3E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8FrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA2CpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAuBT;AAkCD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,GAChB,YAAY,GAAG,IAAI,CA4CrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAkBpB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,kBAAkB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,GAChB,YAAY,EAAE,CAyChB;AAOD;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;CAkB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CA4B7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAkB5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;CAKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;CAOzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAMF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAmClB,CAAC;AAMX,eAAO,MAAM,kBAAkB;;;;CAO9B,CAAC"}