@thethracian/oxlint-config 0.1.0 → 0.2.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 (68) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +62 -2
  3. package/dist/index.d.ts +34 -11
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +73 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/rules/acronym-case.d.ts.map +1 -1
  8. package/dist/rules/acronym-case.js +0 -2
  9. package/dist/rules/acronym-case.js.map +1 -1
  10. package/dist/rules/effect-default-helpers.d.ts +33 -0
  11. package/dist/rules/effect-default-helpers.d.ts.map +1 -0
  12. package/dist/rules/effect-default-helpers.js +536 -0
  13. package/dist/rules/effect-default-helpers.js.map +1 -0
  14. package/dist/rules/effect-default-resource-helpers.d.ts +5 -0
  15. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -0
  16. package/dist/rules/effect-default-resource-helpers.js +65 -0
  17. package/dist/rules/effect-default-resource-helpers.js.map +1 -0
  18. package/dist/rules/effect-default-test-helpers.d.ts +5 -0
  19. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -0
  20. package/dist/rules/effect-default-test-helpers.js +46 -0
  21. package/dist/rules/effect-default-test-helpers.js.map +1 -0
  22. package/dist/rules/effect-default.d.ts +3 -0
  23. package/dist/rules/effect-default.d.ts.map +1 -0
  24. package/dist/rules/effect-default.js +882 -0
  25. package/dist/rules/effect-default.js.map +1 -0
  26. package/dist/rules/effect-path-options.d.ts +59 -0
  27. package/dist/rules/effect-path-options.d.ts.map +1 -0
  28. package/dist/rules/effect-path-options.js +114 -0
  29. package/dist/rules/effect-path-options.js.map +1 -0
  30. package/dist/rules/effect-rule-core.d.ts +60 -0
  31. package/dist/rules/effect-rule-core.d.ts.map +1 -0
  32. package/dist/rules/effect-rule-core.js +509 -0
  33. package/dist/rules/effect-rule-core.js.map +1 -0
  34. package/dist/rules/effect-rule-names.d.ts +4 -0
  35. package/dist/rules/effect-rule-names.d.ts.map +1 -0
  36. package/dist/rules/effect-rule-names.js +147 -0
  37. package/dist/rules/effect-rule-names.js.map +1 -0
  38. package/dist/rules/effect-source-helpers.d.ts +10 -0
  39. package/dist/rules/effect-source-helpers.d.ts.map +1 -0
  40. package/dist/rules/effect-source-helpers.js +359 -0
  41. package/dist/rules/effect-source-helpers.js.map +1 -0
  42. package/dist/rules/effect-source-scan.d.ts +8 -0
  43. package/dist/rules/effect-source-scan.d.ts.map +1 -0
  44. package/dist/rules/effect-source-scan.js +364 -0
  45. package/dist/rules/effect-source-scan.js.map +1 -0
  46. package/dist/rules/effect-strict-helpers.d.ts +34 -0
  47. package/dist/rules/effect-strict-helpers.d.ts.map +1 -0
  48. package/dist/rules/effect-strict-helpers.js +500 -0
  49. package/dist/rules/effect-strict-helpers.js.map +1 -0
  50. package/dist/rules/effect-strict.d.ts +3 -0
  51. package/dist/rules/effect-strict.d.ts.map +1 -0
  52. package/dist/rules/effect-strict.js +727 -0
  53. package/dist/rules/effect-strict.js.map +1 -0
  54. package/dist/rules/max-line-length.d.ts.map +1 -1
  55. package/dist/rules/max-line-length.js +25 -7
  56. package/dist/rules/max-line-length.js.map +1 -1
  57. package/dist/rules/plugin.d.ts +2 -121
  58. package/dist/rules/plugin.d.ts.map +1 -1
  59. package/dist/rules/plugin.js +94 -101
  60. package/dist/rules/plugin.js.map +1 -1
  61. package/dist/rules/require-function-doc.d.ts.map +1 -1
  62. package/dist/rules/require-function-doc.js +32 -21
  63. package/dist/rules/require-function-doc.js.map +1 -1
  64. package/dist/rules/source-cache.d.ts +11 -0
  65. package/dist/rules/source-cache.d.ts.map +1 -0
  66. package/dist/rules/source-cache.js +50 -0
  67. package/dist/rules/source-cache.js.map +1 -0
  68. package/package.json +13 -4
@@ -0,0 +1,509 @@
1
+ import { stripComments, stripCommentsAndStrings } from './effect-source-helpers.js';
2
+ import { readCachedSource } from './source-cache.js';
3
+ const LINE_START_CACHE_MAX = 256;
4
+ const TOKEN_GATE_CACHE_MAX = 512;
5
+ const lineStartCache = new Map();
6
+ const globalPatternCache = new WeakMap();
7
+ const tokenGateCache = new WeakMap();
8
+ const sourceTokenPresenceCache = new Map();
9
+ function readSource(context) {
10
+ return readCachedSource(context);
11
+ }
12
+ function isCodeAt(strippedSource, index) {
13
+ return strippedSource[index]?.trim() !== '';
14
+ }
15
+ function hasPattern(source, patterns) {
16
+ let strippedSource = undefined;
17
+ return patterns.some((pattern) => {
18
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
19
+ strippedSource ??= stripCommentsAndStrings(source);
20
+ if (isCodeAt(strippedSource, match.index)) {
21
+ return true;
22
+ }
23
+ }
24
+ return false;
25
+ });
26
+ }
27
+ function toGlobalRegExp(pattern) {
28
+ const cachedPattern = globalPatternCache.get(pattern);
29
+ if (cachedPattern !== undefined) {
30
+ return cachedPattern;
31
+ }
32
+ const globalPattern = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : `${pattern.flags}g`);
33
+ globalPatternCache.set(pattern, globalPattern);
34
+ return globalPattern;
35
+ }
36
+ function cachedLineStarts(source) {
37
+ return lineStartCache.get(source);
38
+ }
39
+ function lineStartsFor(source) {
40
+ const cachedStarts = cachedLineStarts(source);
41
+ if (cachedStarts !== undefined) {
42
+ return cachedStarts;
43
+ }
44
+ const starts = [0];
45
+ for (let position = 0; position < source.length; position++) {
46
+ if (source.charCodeAt(position) === 10) {
47
+ starts.push(position + 1);
48
+ }
49
+ }
50
+ if (lineStartCache.size >= LINE_START_CACHE_MAX) {
51
+ const firstKey = lineStartCache.keys().next().value;
52
+ if (firstKey !== undefined) {
53
+ lineStartCache.delete(firstKey);
54
+ }
55
+ }
56
+ lineStartCache.set(source, starts);
57
+ return starts;
58
+ }
59
+ function locFromIndex(source, index) {
60
+ const starts = lineStartsFor(source);
61
+ let low = 0;
62
+ let high = starts.length - 1;
63
+ while (low <= high) {
64
+ const middle = (low + high) >> 1;
65
+ const lineStart = starts[middle] ?? 0;
66
+ if (lineStart <= index) {
67
+ low = middle + 1;
68
+ }
69
+ else {
70
+ high = middle - 1;
71
+ }
72
+ }
73
+ const lineIndex = Math.max(0, high);
74
+ const lineStart = starts[lineIndex] ?? 0;
75
+ const line = lineIndex + 1;
76
+ return { column: index - lineStart, line };
77
+ }
78
+ function firstPatternLoc(source, patterns) {
79
+ let strippedSource = undefined;
80
+ for (const pattern of patterns) {
81
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
82
+ strippedSource ??= stripCommentsAndStrings(source);
83
+ if (!isCodeAt(strippedSource, match.index)) {
84
+ continue;
85
+ }
86
+ return locFromIndex(source, match.index);
87
+ }
88
+ }
89
+ return undefined;
90
+ }
91
+ function reportPatternMatches(input) {
92
+ const { context, node, source, spec } = input;
93
+ if (!spec.countPatterns) {
94
+ context.report({
95
+ loc: firstPatternLoc(source, spec.patterns ?? []),
96
+ message: spec.message,
97
+ node,
98
+ });
99
+ return;
100
+ }
101
+ let strippedSource = undefined;
102
+ for (const pattern of spec.countPatterns) {
103
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
104
+ strippedSource ??= stripCommentsAndStrings(source);
105
+ if (!isCodeAt(strippedSource, match.index)) {
106
+ continue;
107
+ }
108
+ context.report({
109
+ loc: locFromIndex(source, match.index),
110
+ message: spec.message,
111
+ node,
112
+ });
113
+ }
114
+ }
115
+ }
116
+ function checkResultIndex(result) {
117
+ if (typeof result === 'number') {
118
+ return result;
119
+ }
120
+ if (typeof result === 'object') {
121
+ return result.index;
122
+ }
123
+ return undefined;
124
+ }
125
+ function isCheckViolation(result) {
126
+ return typeof result === 'boolean' ? result : true;
127
+ }
128
+ function cachedSourceTokenPresence(source) {
129
+ let tokenPresence = sourceTokenPresenceCache.get(source);
130
+ if (tokenPresence !== undefined) {
131
+ return tokenPresence;
132
+ }
133
+ if (sourceTokenPresenceCache.size >= TOKEN_GATE_CACHE_MAX) {
134
+ const firstKey = sourceTokenPresenceCache.keys().next().value;
135
+ if (firstKey !== undefined) {
136
+ sourceTokenPresenceCache.delete(firstKey);
137
+ }
138
+ }
139
+ tokenPresence = new Map();
140
+ sourceTokenPresenceCache.set(source, tokenPresence);
141
+ return tokenPresence;
142
+ }
143
+ function hasTokenInSourceCached(source, token) {
144
+ const tokenPresence = cachedSourceTokenPresence(source);
145
+ const cachedValue = tokenPresence.get(token);
146
+ if (cachedValue !== undefined) {
147
+ return cachedValue;
148
+ }
149
+ const hasToken = source.includes(token);
150
+ tokenPresence.set(token, hasToken);
151
+ return hasToken;
152
+ }
153
+ function hasAnyToken(source, tokens) {
154
+ return tokens.some((token) => hasTokenInSourceCached(source, token));
155
+ }
156
+ function cachedTokenGate(source, tokens) {
157
+ return tokenGateCache.get(tokens)?.get(source);
158
+ }
159
+ function cacheTokenGate(source, tokens, hasToken) {
160
+ let sourceCache = tokenGateCache.get(tokens);
161
+ if (!sourceCache) {
162
+ sourceCache = new Map();
163
+ tokenGateCache.set(tokens, sourceCache);
164
+ }
165
+ if (sourceCache.size >= TOKEN_GATE_CACHE_MAX) {
166
+ const firstKey = sourceCache.keys().next().value;
167
+ if (firstKey !== undefined) {
168
+ sourceCache.delete(firstKey);
169
+ }
170
+ }
171
+ sourceCache.set(source, hasToken);
172
+ return hasToken;
173
+ }
174
+ function hasAnyTokenCached(source, tokens) {
175
+ const cachedValue = cachedTokenGate(source, tokens);
176
+ if (cachedValue !== undefined) {
177
+ return cachedValue;
178
+ }
179
+ return cacheTokenGate(source, tokens, hasAnyToken(source, tokens));
180
+ }
181
+ function hasEveryTokenGroup(source, tokenGroups) {
182
+ return tokenGroups.every((group) => hasAnyTokenCached(source, group));
183
+ }
184
+ function shouldSkipSource(source, requiredTokens, requiredTokenGroups) {
185
+ return (source === '' ||
186
+ Boolean(requiredTokens && !hasAnyTokenCached(source, requiredTokens)) ||
187
+ Boolean(requiredTokenGroups && !hasEveryTokenGroup(source, requiredTokenGroups)));
188
+ }
189
+ function runProgramRule(input) {
190
+ const { context, node, source, spec } = input;
191
+ const canonicalSource = canonicalizeEffectApiAliases(source);
192
+ const checkResult = spec.check?.(canonicalSource, context);
193
+ if (checkResult !== undefined) {
194
+ if (!isCheckViolation(checkResult)) {
195
+ return;
196
+ }
197
+ const index = checkResultIndex(checkResult);
198
+ context.report({
199
+ loc: index === undefined
200
+ ? firstPatternLoc(canonicalSource, spec.patterns ?? [])
201
+ : locFromIndex(canonicalSource, index),
202
+ message: spec.message,
203
+ node,
204
+ });
205
+ return;
206
+ }
207
+ if (hasPattern(canonicalSource, spec.patterns ?? [])) {
208
+ reportPatternMatches({ context, node, source: canonicalSource, spec });
209
+ }
210
+ }
211
+ function makeProgramOnlyRule(spec, options) {
212
+ const requiredTokens = spec.tokens ?? options.defaultTokens;
213
+ const requiredTokenGroups = spec.tokenGroups;
214
+ const rule = makeAstCapableRule(spec, options);
215
+ return {
216
+ ...rule,
217
+ createOnce(context) {
218
+ let source = '';
219
+ let isSkipped = true;
220
+ return {
221
+ before() {
222
+ source = readSource(context);
223
+ isSkipped = shouldSkipSource(source, requiredTokens, requiredTokenGroups);
224
+ return isSkipped ? false : undefined;
225
+ },
226
+ Program(node) {
227
+ if (isSkipped) {
228
+ return;
229
+ }
230
+ runProgramRule({ context, node, source, spec });
231
+ },
232
+ };
233
+ },
234
+ };
235
+ }
236
+ function makeAstCapableRule(spec, options) {
237
+ const requiredTokens = spec.tokens ?? options.defaultTokens;
238
+ const requiredTokenGroups = spec.tokenGroups;
239
+ const rule = {
240
+ meta: {
241
+ schema: options.schema,
242
+ type: 'problem',
243
+ },
244
+ create(context) {
245
+ const source = readSource(context);
246
+ if (shouldSkipSource(source, requiredTokens, requiredTokenGroups)) {
247
+ return {
248
+ Program() { },
249
+ };
250
+ }
251
+ const astVisitors = spec.ast?.(context, source) ?? {};
252
+ return {
253
+ ...astVisitors,
254
+ Program(node) {
255
+ if (spec.ast && Array.isArray(node.body)) {
256
+ return;
257
+ }
258
+ runProgramRule({ context, node, source, spec });
259
+ },
260
+ };
261
+ },
262
+ };
263
+ return rule;
264
+ }
265
+ function makeProgramRule(spec, options) {
266
+ return spec.ast ? makeAstCapableRule(spec, options) : makeProgramOnlyRule(spec, options);
267
+ }
268
+ function makeRules(specs, options = {}) {
269
+ return Object.fromEntries(specs.map((spec) => [spec.name, makeProgramRule(spec, options)]));
270
+ }
271
+ function hasEffectSignal(source) {
272
+ const cachedValue = cachedBoolean(effectSignalCache, source);
273
+ if (cachedValue !== undefined) {
274
+ return cachedValue;
275
+ }
276
+ if (!source.includes('Effect') && !source.includes('effect')) {
277
+ return cacheBoolean(effectSignalCache, source, false);
278
+ }
279
+ const codeOnly = stripCommentsAndStrings(source);
280
+ return cacheBoolean(effectSignalCache, source, hasEffectValueImport(source) ||
281
+ effectImportAliases(source).some((alias) => new RegExp(`\\b${escapeRegExp(alias)}\\.`, 'u').test(codeOnly)));
282
+ }
283
+ const runtimeCallPattern = /\b(?:Effect\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)|[A-Za-z_$][\w$]*Runtime\.runMain)\s*\(/;
284
+ const boundaryFilePattern = /(?:^|\/)src\/(?:main|server|cli)\.ts$|\.entry\.ts$/;
285
+ const testFilePattern = /\.(?:test|spec)\.tsx?$/;
286
+ const ALIAS_CACHE_MAX = 256;
287
+ const BOOLEAN_CACHE_MAX = 512;
288
+ const effectAliasCache = new Map();
289
+ const runtimeFunctionAliasCache = new Map();
290
+ const canonicalSourceCache = new Map();
291
+ const effectSignalCache = new Map();
292
+ const runtimeCallCache = new Map();
293
+ function cachedAliases(cache, source) {
294
+ return cache.get(source);
295
+ }
296
+ function cacheAliases(cache, source, value) {
297
+ if (cache.size >= ALIAS_CACHE_MAX) {
298
+ const firstKey = cache.keys().next().value;
299
+ if (firstKey !== undefined) {
300
+ cache.delete(firstKey);
301
+ }
302
+ }
303
+ cache.set(source, value);
304
+ return value;
305
+ }
306
+ function cachedBoolean(cache, source) {
307
+ return cache.get(source);
308
+ }
309
+ function cacheBoolean(cache, source, value) {
310
+ if (cache.size >= BOOLEAN_CACHE_MAX) {
311
+ const firstKey = cache.keys().next().value;
312
+ if (firstKey !== undefined) {
313
+ cache.delete(firstKey);
314
+ }
315
+ }
316
+ cache.set(source, value);
317
+ return value;
318
+ }
319
+ function escapeRegExp(value) {
320
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
321
+ }
322
+ function hasLocalEffectBinding(source) {
323
+ return /\b(?:const|let|var|function|class|namespace)\s+Effect\b/.test(stripCommentsAndStrings(source));
324
+ }
325
+ function importSpecifierNames(specifier) {
326
+ const trimmed = specifier.trim();
327
+ if (trimmed.startsWith('type ')) {
328
+ return undefined;
329
+ }
330
+ const parts = trimmed.split(/\s+as\s+/);
331
+ const importedName = parts[0]?.trim();
332
+ const localName = parts[1]?.trim() ?? importedName;
333
+ return importedName && localName ? { importedName, localName } : undefined;
334
+ }
335
+ function hasAnyEffectImport(source) {
336
+ return /(?:^|\n)\s*import(?:\s+type)?(?:[\s\S]*?\s+from\s*)?['"](?:effect(?:\/[^'"]+)?|@effect\/[^'"]+)['"]/.test(stripComments(source));
337
+ }
338
+ function hasEffectValueImport(source) {
339
+ const commentFreeSource = stripComments(source);
340
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
341
+ if (match[1]
342
+ .split(',')
343
+ .some((specifier) => importSpecifierNames(specifier)?.importedName === 'Effect')) {
344
+ return true;
345
+ }
346
+ }
347
+ return (/(?:^|\n)\s*import\s+(?!type\b)\*\s+as\s+[A-Za-z_$][\w$]*\s+from\s*['"]effect(?:\/Effect)?['"]/.test(commentFreeSource) || effectFunctionAliases(source, 'Effect').length > 0);
348
+ }
349
+ function effectImportAliases(source) {
350
+ const cachedValue = cachedAliases(effectAliasCache, source);
351
+ if (cachedValue) {
352
+ return cachedValue;
353
+ }
354
+ const aliases = new Set();
355
+ const commentFreeSource = stripComments(source);
356
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
357
+ for (const specifier of match[1].split(',')) {
358
+ const names = importSpecifierNames(specifier);
359
+ if (!names) {
360
+ continue;
361
+ }
362
+ if (names.importedName === 'Effect') {
363
+ aliases.add('Effect');
364
+ aliases.add(names.localName);
365
+ }
366
+ }
367
+ }
368
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*['"]effect(?:\/Effect)?['"]/g)) {
369
+ aliases.add('Effect');
370
+ aliases.add(match[1]);
371
+ }
372
+ if (aliases.size === 0 && !hasAnyEffectImport(source) && !hasLocalEffectBinding(source)) {
373
+ aliases.add('Effect');
374
+ }
375
+ return cacheAliases(effectAliasCache, source, [...aliases]);
376
+ }
377
+ function effectApiAliases(source, apiName) {
378
+ const aliases = new Set();
379
+ const commentFreeSource = stripComments(source);
380
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
381
+ for (const specifier of match[1].split(',')) {
382
+ const names = importSpecifierNames(specifier);
383
+ if (names?.importedName === apiName) {
384
+ aliases.add(names.localName);
385
+ }
386
+ }
387
+ }
388
+ for (const match of commentFreeSource.matchAll(new RegExp(`(?:^|\\n)\\s*import\\s+(?!type\\b)\\*\\s+as\\s+([A-Za-z_$][\\w$]*)\\s+from\\s*['"]effect/${escapeRegExp(apiName)}['"]`, 'g'))) {
389
+ aliases.add(match[1]);
390
+ }
391
+ if (aliases.size === 0 && !hasAnyEffectImport(source)) {
392
+ aliases.add(apiName);
393
+ }
394
+ return [...aliases];
395
+ }
396
+ function effectFunctionAliases(source, moduleName, functionName) {
397
+ const aliases = new Set();
398
+ const commentFreeSource = stripComments(source);
399
+ for (const match of commentFreeSource.matchAll(new RegExp(`(?:^|\\n)\\s*import\\s+(?!type\\b)\\s*{([^}]+)}\\s*from\\s*['"]effect/${escapeRegExp(moduleName)}['"]`, 'g'))) {
400
+ for (const specifier of match[1].split(',')) {
401
+ const names = importSpecifierNames(specifier);
402
+ if (names && (!functionName || names.importedName === functionName)) {
403
+ aliases.add(names.localName);
404
+ }
405
+ }
406
+ }
407
+ return [...aliases];
408
+ }
409
+ function canonicalImportAliases(source) {
410
+ const aliases = new Map();
411
+ const commentFreeSource = stripComments(source);
412
+ const canonicalNames = new Set([
413
+ 'Config',
414
+ 'Context',
415
+ 'Effect',
416
+ 'Fiber',
417
+ 'Layer',
418
+ 'Queue',
419
+ 'Schedule',
420
+ 'Schema',
421
+ 'Scope',
422
+ 'Stream',
423
+ 'TestClock',
424
+ ]);
425
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
426
+ for (const specifier of match[1].split(',')) {
427
+ const names = importSpecifierNames(specifier);
428
+ const importedName = names?.importedName;
429
+ const localName = names?.localName;
430
+ if (importedName &&
431
+ localName &&
432
+ canonicalNames.has(importedName) &&
433
+ localName !== importedName) {
434
+ aliases.set(localName, importedName);
435
+ }
436
+ }
437
+ }
438
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*['"]effect\/([A-Za-z]+)['"]/g)) {
439
+ const [, localName, moduleName] = match;
440
+ if (canonicalNames.has(moduleName) && localName !== moduleName) {
441
+ aliases.set(localName, moduleName);
442
+ }
443
+ }
444
+ return aliases;
445
+ }
446
+ function canonicalizeEffectApiAliases(source) {
447
+ const cachedValue = canonicalSourceCache.get(source);
448
+ if (cachedValue !== undefined) {
449
+ return cachedValue;
450
+ }
451
+ let canonicalSource = source;
452
+ for (const [localName, canonicalName] of canonicalImportAliases(source)) {
453
+ canonicalSource = canonicalSource.replace(new RegExp(`\\b${escapeRegExp(localName)}\\.`, 'g'), `${canonicalName}.`);
454
+ }
455
+ if (canonicalSourceCache.size >= ALIAS_CACHE_MAX) {
456
+ const firstKey = canonicalSourceCache.keys().next().value;
457
+ if (firstKey !== undefined) {
458
+ canonicalSourceCache.delete(firstKey);
459
+ }
460
+ }
461
+ canonicalSourceCache.set(source, canonicalSource);
462
+ return canonicalSource;
463
+ }
464
+ function effectRuntimeFunctionAliases(source) {
465
+ const cachedValue = cachedAliases(runtimeFunctionAliasCache, source);
466
+ if (cachedValue) {
467
+ return cachedValue;
468
+ }
469
+ const aliases = new Set();
470
+ const runtimeNames = new Set([
471
+ 'runFork',
472
+ 'runPromise',
473
+ 'runPromiseExit',
474
+ 'runSync',
475
+ 'runSyncExit',
476
+ ]);
477
+ const commentFreeSource = stripComments(source);
478
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s*{([^}]+)}\s*from\s*['"]effect\/Effect['"]/g)) {
479
+ for (const specifier of match[1].split(',')) {
480
+ const names = importSpecifierNames(specifier);
481
+ const importedName = names?.importedName;
482
+ const localName = names?.localName;
483
+ if (importedName && localName && runtimeNames.has(importedName)) {
484
+ aliases.add(localName);
485
+ }
486
+ }
487
+ }
488
+ return cacheAliases(runtimeFunctionAliasCache, source, [...aliases]);
489
+ }
490
+ function hasRuntimeCall(source) {
491
+ const cachedValue = cachedBoolean(runtimeCallCache, source);
492
+ if (cachedValue !== undefined) {
493
+ return cachedValue;
494
+ }
495
+ const code = stripCommentsAndStrings(source);
496
+ if (runtimeCallPattern.test(code)) {
497
+ return cacheBoolean(runtimeCallCache, source, true);
498
+ }
499
+ return cacheBoolean(runtimeCallCache, source, effectImportAliases(source).some((alias) => new RegExp(`\\b${alias}\\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)\\s*\\(`).test(code)) ||
500
+ effectRuntimeFunctionAliases(source).some((alias) => new RegExp(`\\b${alias}\\s*\\(`).test(code)));
501
+ }
502
+ function isBoundaryFile(filename) {
503
+ return Boolean(filename && boundaryFilePattern.test(filename));
504
+ }
505
+ function isTestFile(filename) {
506
+ return Boolean(filename && testFilePattern.test(filename));
507
+ }
508
+ export { hasEffectSignal, effectApiAliases, effectFunctionAliases, effectImportAliases, hasRuntimeCall, isBoundaryFile, isTestFile, makeRules, runtimeCallPattern, };
509
+ //# sourceMappingURL=effect-rule-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-rule-core.js","sourceRoot":"","sources":["../../src/rules/effect-rule-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare const effectDefaultRuleNames: readonly ["effect-no-floating-effect", "effect-require-yield-star", "effect-require-return-yield-star", "effect-prefer-gen-for-nested-flatmap", "effect-no-function-returning-gen", "effect-prefer-effect-fn-for-exported-effects", "effect-no-unnecessary-gen", "effect-no-effect-in-array-foreach", "effect-no-effect-in-promise-callback", "effect-no-floating-fiber", "effect-require-suspend-for-recursion", "effect-require-suspend-for-lazy-evaluation", "effect-no-async-await-in-effect", "effect-no-promise-then-in-effect", "effect-no-throw", "effect-no-string-errors", "effect-no-untagged-errors", "effect-no-silent-error-swallowing", "effect-require-typed-error-in-trypromise", "effect-prefer-catchTag-over-catchAll", "effect-no-catchAll-with-mapError", "effect-prefer-mapError-over-catchAll-rethrow", "effect-require-error-cause-preserved", "effect-prefer-ignore-logged", "effect-prefer-catchTags-for-multiple-tags", "effect-no-error-channel-widening-to-unknown", "effect-no-run-inside-effect", "effect-no-runpromise-in-exported-api", "effect-no-runfork-without-observer", "effect-no-sync-for-promise", "effect-no-sync-for-throwing-ops", "effect-no-console-log-in-effect-code", "effect-no-process-env-in-effect-code", "effect-no-date-now-in-effect-code", "effect-no-math-random-in-effect-code", "effect-no-json-parse-cast", "effect-schema-prefer-decodeUnknown-effect", "effect-schema-require-parse-error-handling", "effect-schema-use-decodeUnknown-for-external-data", "effect-schema-no-unsafe-sync-decode-in-effect-code", "effect-schema-require-parseJson-for-json-strings", "effect-schema-correct-number-type-for-parsed-json", "effect-schema-prefer-taggedClass-over-manual-tag", "effect-schema-avoid-old-type-names", "effect-schema-no-cast-after-decode", "effect-require-acquire-release", "effect-require-scoped-for-acquireRelease", "effect-require-scoped-for-resources", "effect-no-fork-daemon-without-cleanup", "effect-prefer-fork-scoped-for-listeners", "effect-require-restore-for-fork-in-uninterruptible", "effect-require-bounded-concurrency", "effect-require-bounded-flatMap-concurrency", "effect-no-unbounded-queue", "effect-no-unbounded-stream-buffer", "effect-test-no-runpromise", "effect-prefer-it-effect-for-unit-tests", "effect-testClock-requires-fork", "effect-testClock-requires-testContext", "effect-no-real-sleep-in-tests", "effect-use-exit-for-failure-tests", "effect-no-focused-effect-tests", "effect-no-skipped-effect-tests", "effect-no-obsolete-imports", "effect-no-known-fake-api", "effect-prefer-gen-over-do", "effect-prefer-direct-yield-star", "effect-prefer-config-redacted", "effect-no-deprecated-schema-package", "effect-no-deprecated-context-tag-function", "effect-no-global-error-channel", "effect-use-duration-constructors", "effect-no-mixed-effect-import-styles", "effect-prefer-effect-is", "effect-no-try-catch-in-effect-gen", "effect-no-new-promise", "effect-no-global-timers", "effect-no-native-error-classes", "effect-no-unsafe-effect-type-assertion", "effect-require-service-self-match", "effect-no-effect-fn-iife"];
2
+ declare const effectStrictRuleNames: readonly ["effect-no-run-outside-entrypoints", "effect-require-platform-runmain-at-entrypoints", "effect-no-runSync-in-server-request-handlers", "effect-no-promise-returning-public-api", "effect-no-direct-process-env-outside-config-layer", "effect-no-direct-clock-random-outside-adapters", "effect-no-direct-http-fs-outside-platform-services", "effect-require-service-class-pattern", "effect-require-tag-identifier", "effect-no-leaked-service-dependencies", "effect-no-duplicate-layer-instances", "effect-require-centralized-provision", "effect-no-provide-in-domain-modules", "effect-require-layer-memoization-constant", "effect-require-suspend-for-circular-deps", "effect-avoid-layer-explosion", "effect-prefer-succeed-for-static-layers", "effect-require-scoped-for-resource-layers", "effect-no-service-construction-outside-layer", "effect-schema-require-validation-at-input-boundaries", "effect-schema-require-validation-at-output-boundaries", "effect-schema-require-http-client-response-schema", "effect-schema-require-http-server-request-schema", "effect-schema-require-config-schema", "effect-schema-require-persistence-schema", "effect-schema-require-public-command-schema", "effect-schema-no-unknown-crossing-boundary", "effect-require-timeout-on-external-effects", "effect-require-retry-policy-for-idempotent-external-effects", "effect-require-schedule-jitter-for-retries", "effect-require-span-external", "effect-require-semaphore-for-shared-resources", "effect-require-ref-for-shared-mutable-state", "effect-require-scoped-in-loops", "effect-require-onExit-for-cleanup", "effect-require-stream-resource-safety", "effect-require-stream-termination", "effect-require-explicit-asyncPush-buffer", "effect-require-batching-for-resolver", "effect-use-batched-resolver-for-n-plus-one", "effect-prefer-pubsub-for-broadcast", "effect-require-provided-services-in-tests", "effect-prefer-in-memory-implementations", "effect-no-live-services-in-unit-tests", "effect-require-testclock-for-time-code", "effect-no-test-runtime-leakage", "effect-no-ad-hoc-effect-wrapper-abstractions", "effect-require-effect-suppression-reason-and-ticket", "effect-no-crypto-randomUUID", "effect-require-schema-is-over-instanceof", "effect-prefer-schema-tagged-struct", "effect-prefer-single-schema-literal-union", "effect-require-deterministic-service-keys", "effect-no-multiple-provide-chain", "effect-require-layer-scoped-when-scope-required", "effect-no-node-builtins-when-effect-platform-exists", "effect-no-global-fetch", "effect-prefer-effect-void", "effect-prefer-asVoid", "effect-prefer-flatMap-over-map-flatten"];
3
+ export { effectDefaultRuleNames, effectStrictRuleNames };
4
+ //# sourceMappingURL=effect-rule-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-rule-names.d.ts","sourceRoot":"","sources":["../../src/rules/effect-rule-names.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB,y+FAkFlB,CAAC;AAEX,QAAA,MAAM,qBAAqB,0iFA6DjB,CAAC;AAEX,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,CAAC"}