@thethracian/oxlint-config 0.1.0 → 0.2.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +61 -1
  3. package/dist/index.d.ts +32 -9
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +71 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/rules/effect-default-helpers.d.ts +33 -0
  8. package/dist/rules/effect-default-helpers.d.ts.map +1 -0
  9. package/dist/rules/effect-default-helpers.js +459 -0
  10. package/dist/rules/effect-default-helpers.js.map +1 -0
  11. package/dist/rules/effect-default-resource-helpers.d.ts +5 -0
  12. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -0
  13. package/dist/rules/effect-default-resource-helpers.js +65 -0
  14. package/dist/rules/effect-default-resource-helpers.js.map +1 -0
  15. package/dist/rules/effect-default-test-helpers.d.ts +5 -0
  16. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -0
  17. package/dist/rules/effect-default-test-helpers.js +46 -0
  18. package/dist/rules/effect-default-test-helpers.js.map +1 -0
  19. package/dist/rules/effect-default.d.ts +3 -0
  20. package/dist/rules/effect-default.d.ts.map +1 -0
  21. package/dist/rules/effect-default.js +746 -0
  22. package/dist/rules/effect-default.js.map +1 -0
  23. package/dist/rules/effect-path-options.d.ts +59 -0
  24. package/dist/rules/effect-path-options.d.ts.map +1 -0
  25. package/dist/rules/effect-path-options.js +114 -0
  26. package/dist/rules/effect-path-options.js.map +1 -0
  27. package/dist/rules/effect-rule-core.d.ts +52 -0
  28. package/dist/rules/effect-rule-core.d.ts.map +1 -0
  29. package/dist/rules/effect-rule-core.js +362 -0
  30. package/dist/rules/effect-rule-core.js.map +1 -0
  31. package/dist/rules/effect-rule-names.d.ts +4 -0
  32. package/dist/rules/effect-rule-names.d.ts.map +1 -0
  33. package/dist/rules/effect-rule-names.js +147 -0
  34. package/dist/rules/effect-rule-names.js.map +1 -0
  35. package/dist/rules/effect-source-helpers.d.ts +10 -0
  36. package/dist/rules/effect-source-helpers.d.ts.map +1 -0
  37. package/dist/rules/effect-source-helpers.js +334 -0
  38. package/dist/rules/effect-source-helpers.js.map +1 -0
  39. package/dist/rules/effect-source-scan.d.ts +8 -0
  40. package/dist/rules/effect-source-scan.d.ts.map +1 -0
  41. package/dist/rules/effect-source-scan.js +356 -0
  42. package/dist/rules/effect-source-scan.js.map +1 -0
  43. package/dist/rules/effect-strict-helpers.d.ts +34 -0
  44. package/dist/rules/effect-strict-helpers.d.ts.map +1 -0
  45. package/dist/rules/effect-strict-helpers.js +331 -0
  46. package/dist/rules/effect-strict-helpers.js.map +1 -0
  47. package/dist/rules/effect-strict.d.ts +3 -0
  48. package/dist/rules/effect-strict.d.ts.map +1 -0
  49. package/dist/rules/effect-strict.js +663 -0
  50. package/dist/rules/effect-strict.js.map +1 -0
  51. package/dist/rules/plugin.d.ts.map +1 -1
  52. package/dist/rules/plugin.js +16 -7
  53. package/dist/rules/plugin.js.map +1 -1
  54. package/package.json +15 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-default.js","sourceRoot":"","sources":["../../src/rules/effect-default.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { Context } from './effect-rule-core.js';
2
+ type StrictPathOptionKey = 'adapterLayers' | 'compositionRoots' | 'configLayers' | 'domain' | 'entrypoints' | 'integrationTests' | 'unitTests';
3
+ type StrictPathOptions = Partial<Record<StrictPathOptionKey, readonly string[]>>;
4
+ declare const strictPathOptionKeys: readonly ["adapterLayers", "compositionRoots", "configLayers", "domain", "entrypoints", "integrationTests", "unitTests"];
5
+ declare const strictPathOptionsSchema: readonly [{
6
+ readonly additionalProperties: false;
7
+ readonly properties: {
8
+ readonly adapterLayers: {
9
+ readonly items: {
10
+ readonly type: "string";
11
+ };
12
+ readonly type: "array";
13
+ };
14
+ readonly compositionRoots: {
15
+ readonly items: {
16
+ readonly type: "string";
17
+ };
18
+ readonly type: "array";
19
+ };
20
+ readonly configLayers: {
21
+ readonly items: {
22
+ readonly type: "string";
23
+ };
24
+ readonly type: "array";
25
+ };
26
+ readonly domain: {
27
+ readonly items: {
28
+ readonly type: "string";
29
+ };
30
+ readonly type: "array";
31
+ };
32
+ readonly entrypoints: {
33
+ readonly items: {
34
+ readonly type: "string";
35
+ };
36
+ readonly type: "array";
37
+ };
38
+ readonly integrationTests: {
39
+ readonly items: {
40
+ readonly type: "string";
41
+ };
42
+ readonly type: "array";
43
+ };
44
+ readonly unitTests: {
45
+ readonly items: {
46
+ readonly type: "string";
47
+ };
48
+ readonly type: "array";
49
+ };
50
+ };
51
+ readonly type: "object";
52
+ }];
53
+ declare function sanitizeStrictPathOptions(options: StrictPathOptions | undefined): StrictPathOptions | undefined;
54
+ declare function isConfiguredPath(context: Pick<Context, 'filename' | 'options'>, key: StrictPathOptionKey): boolean;
55
+ declare function isUnitTestPath(context: Pick<Context, 'filename' | 'options'>): boolean;
56
+ declare function isEffectTestPath(context: Pick<Context, 'filename' | 'options'>): boolean;
57
+ export { isConfiguredPath, isEffectTestPath, isUnitTestPath, sanitizeStrictPathOptions, strictPathOptionKeys, strictPathOptionsSchema, };
58
+ export type { StrictPathOptionKey, StrictPathOptions };
59
+ //# sourceMappingURL=effect-path-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-path-options.d.ts","sourceRoot":"","sources":["../../src/rules/effect-path-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,KAAK,mBAAmB,GACpB,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,QAAQ,GACR,aAAa,GACb,kBAAkB,GAClB,WAAW,CAAC;AAEhB,KAAK,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjF,QAAA,MAAM,oBAAoB,0HAQyB,CAAC;AAEpD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcnB,CAAC;AAuEX,iBAAS,yBAAyB,CAChC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,iBAAiB,GAAG,SAAS,CAa/B;AAED,iBAAS,gBAAgB,CACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,EAC9C,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAKT;AAMD,iBAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,OAAO,CAK/E;AAED,iBAAS,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,OAAO,CAMjF;AAED,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,CAAC;AAEF,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,114 @@
1
+ const strictPathOptionKeys = [
2
+ 'adapterLayers',
3
+ 'compositionRoots',
4
+ 'configLayers',
5
+ 'domain',
6
+ 'entrypoints',
7
+ 'integrationTests',
8
+ 'unitTests',
9
+ ];
10
+ const strictPathOptionsSchema = [
11
+ {
12
+ additionalProperties: false,
13
+ properties: {
14
+ adapterLayers: { items: { type: 'string' }, type: 'array' },
15
+ compositionRoots: { items: { type: 'string' }, type: 'array' },
16
+ configLayers: { items: { type: 'string' }, type: 'array' },
17
+ domain: { items: { type: 'string' }, type: 'array' },
18
+ entrypoints: { items: { type: 'string' }, type: 'array' },
19
+ integrationTests: { items: { type: 'string' }, type: 'array' },
20
+ unitTests: { items: { type: 'string' }, type: 'array' },
21
+ },
22
+ type: 'object',
23
+ },
24
+ ];
25
+ const defaultPathOptions = {
26
+ adapterLayers: ['src/adapters/**', 'src/platform/**', 'src/infrastructure/**'],
27
+ compositionRoots: ['src/main.ts', 'src/server.ts', 'src/cli.ts', '**/*.entry.ts'],
28
+ configLayers: ['src/config/**', 'src/layers/**', 'src/infrastructure/**'],
29
+ domain: ['src/domain/**', 'src/core/**', 'src/features/**'],
30
+ entrypoints: ['src/main.ts', 'src/server.ts', 'src/cli.ts', '**/*.entry.ts'],
31
+ integrationTests: ['**/*.integration.test.ts', '**/*.integration.spec.ts'],
32
+ unitTests: ['**/*.test.ts', '**/*.spec.ts', '**/*.test.tsx', '**/*.spec.tsx'],
33
+ };
34
+ const testFilePattern = /\.(?:test|spec)\.tsx?$/;
35
+ function escapeRegExp(value) {
36
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
37
+ }
38
+ const globCache = new Map();
39
+ function globToRegExp(pattern) {
40
+ const cached = globCache.get(pattern);
41
+ if (cached) {
42
+ return cached;
43
+ }
44
+ const normalizedPattern = pattern.replace(/\\/g, '/').replace(/^\.\//, '');
45
+ let body = '';
46
+ for (let index = 0; index < normalizedPattern.length; index++) {
47
+ const char = normalizedPattern[index];
48
+ const nextChar = normalizedPattern[index + 1];
49
+ const afterNextChar = normalizedPattern[index + 2];
50
+ if (char === '*' && nextChar === '*' && afterNextChar === '/') {
51
+ body += '(?:.*/)?';
52
+ index += 2;
53
+ continue;
54
+ }
55
+ if (char === '*' && nextChar === '*') {
56
+ body += '.*';
57
+ index++;
58
+ continue;
59
+ }
60
+ if (char === '*') {
61
+ body += '[^/]*';
62
+ continue;
63
+ }
64
+ body += escapeRegExp(char);
65
+ }
66
+ const prefix = normalizedPattern.startsWith('/') ? '^' : '(?:^|/)';
67
+ const matcher = new RegExp(`${prefix}${body}$`);
68
+ globCache.set(pattern, matcher);
69
+ return matcher;
70
+ }
71
+ function matchesPath(filename, pattern) {
72
+ if (!filename) {
73
+ return false;
74
+ }
75
+ return globToRegExp(pattern).test(filename.replace(/\\/g, '/'));
76
+ }
77
+ function getStrictOptions(context) {
78
+ const options = context.options?.[0];
79
+ if (!options || typeof options !== 'object') {
80
+ return {};
81
+ }
82
+ return options;
83
+ }
84
+ function sanitizeStrictPathOptions(options) {
85
+ if (!options) {
86
+ return undefined;
87
+ }
88
+ const sanitized = {};
89
+ for (const optionKey of strictPathOptionKeys) {
90
+ if (Object.hasOwn(options, optionKey)) {
91
+ sanitized[optionKey] = options[optionKey];
92
+ }
93
+ }
94
+ return Object.keys(sanitized).length === 0 ? undefined : sanitized;
95
+ }
96
+ function isConfiguredPath(context, key) {
97
+ const configuredPatterns = getStrictOptions(context)[key];
98
+ const patterns = configuredPatterns ?? defaultPathOptions[key];
99
+ return patterns.some((pattern) => matchesPath(context.filename, pattern));
100
+ }
101
+ function isTestFile(filename) {
102
+ return Boolean(filename && testFilePattern.test(filename));
103
+ }
104
+ function isUnitTestPath(context) {
105
+ return ((isTestFile(context.filename) || isConfiguredPath(context, 'unitTests')) &&
106
+ !isConfiguredPath(context, 'integrationTests'));
107
+ }
108
+ function isEffectTestPath(context) {
109
+ return (isTestFile(context.filename) ||
110
+ isConfiguredPath(context, 'unitTests') ||
111
+ isConfiguredPath(context, 'integrationTests'));
112
+ }
113
+ export { isConfiguredPath, isEffectTestPath, isUnitTestPath, sanitizeStrictPathOptions, strictPathOptionKeys, strictPathOptionsSchema, };
114
+ //# sourceMappingURL=effect-path-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-path-options.js","sourceRoot":"","sources":["../../src/rules/effect-path-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ type Context = {
2
+ report: (descriptor: {
3
+ loc?: {
4
+ column: number;
5
+ line: number;
6
+ };
7
+ message: string;
8
+ node: object;
9
+ }) => void;
10
+ filename?: string;
11
+ options?: unknown[];
12
+ sourceCode?: {
13
+ getText?: () => string;
14
+ text?: string;
15
+ };
16
+ };
17
+ type SourceRule = {
18
+ meta?: {
19
+ schema?: unknown;
20
+ type: 'problem';
21
+ };
22
+ create: (context: Context) => {
23
+ [nodeType: string]: ((node: object) => void) | undefined;
24
+ Program: (node: object) => void;
25
+ };
26
+ };
27
+ type VisitorMap = Record<string, ((node: object) => void) | undefined>;
28
+ type RuleSpec = {
29
+ ast?: (context: Context, source: string) => VisitorMap;
30
+ name: string;
31
+ message: string;
32
+ countPatterns?: RegExp[];
33
+ patterns?: RegExp[];
34
+ check?: (source: string, context: Context) => boolean | number | {
35
+ index: number;
36
+ };
37
+ };
38
+ type MakeRulesOptions = {
39
+ schema?: unknown;
40
+ };
41
+ declare function makeRules(specs: readonly RuleSpec[], options?: MakeRulesOptions): Record<string, SourceRule>;
42
+ declare function hasEffectSignal(source: string): boolean;
43
+ declare const runtimeCallPattern: RegExp;
44
+ declare function effectImportAliases(source: string): string[];
45
+ declare function effectApiAliases(source: string, apiName: string): string[];
46
+ declare function effectFunctionAliases(source: string, moduleName: string, functionName?: string): string[];
47
+ declare function hasRuntimeCall(source: string): boolean;
48
+ declare function isBoundaryFile(filename: string | undefined): boolean;
49
+ declare function isTestFile(filename: string | undefined): boolean;
50
+ export { hasEffectSignal, effectApiAliases, effectFunctionAliases, effectImportAliases, hasRuntimeCall, isBoundaryFile, isTestFile, makeRules, runtimeCallPattern, };
51
+ export type { Context, RuleSpec, SourceRule };
52
+ //# sourceMappingURL=effect-rule-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-rule-core.d.ts","sourceRoot":"","sources":["../../src/rules/effect-rule-core.ts"],"names":[],"mappings":"AAGA,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,CAAC,UAAU,EAAE;QACnB,GAAG,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK;QAC5B,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;QACzD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AAEvE,KAAK,QAAQ,GAAG;IACd,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpF,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAyKF,iBAAS,SAAS,CAChB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAE5B;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQhD;AAED,QAAA,MAAM,kBAAkB,QACyF,CAAC;AAqFlH,iBAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAoCrD;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BnE;AAED,iBAAS,qBAAqB,CAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,EAAE,CAmBV;AA2GD,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAgB/C;AAED,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE7D;AAED,iBAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzD;AAED,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,362 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { stripComments, stripCommentsAndStrings } from './effect-source-helpers.js';
3
+ function readSource(context) {
4
+ if (context.sourceCode?.text !== undefined) {
5
+ return context.sourceCode.text;
6
+ }
7
+ if (context.sourceCode?.getText) {
8
+ return context.sourceCode.getText();
9
+ }
10
+ if (!context.filename) {
11
+ return '';
12
+ }
13
+ try {
14
+ return readFileSync(context.filename, 'utf-8');
15
+ }
16
+ catch {
17
+ return '';
18
+ }
19
+ }
20
+ function isCodeAt(strippedSource, index) {
21
+ return strippedSource[index]?.trim() !== '';
22
+ }
23
+ function hasPattern(source, patterns) {
24
+ let strippedSource = undefined;
25
+ return patterns.some((pattern) => {
26
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
27
+ strippedSource ??= stripCommentsAndStrings(source);
28
+ if (isCodeAt(strippedSource, match.index)) {
29
+ return true;
30
+ }
31
+ }
32
+ return false;
33
+ });
34
+ }
35
+ function toGlobalRegExp(pattern) {
36
+ return new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : `${pattern.flags}g`);
37
+ }
38
+ function locFromIndex(source, index) {
39
+ let line = 1;
40
+ let lineStart = 0;
41
+ for (let position = 0; position < index; position++) {
42
+ if (source.charCodeAt(position) === 10) {
43
+ line++;
44
+ lineStart = position + 1;
45
+ }
46
+ }
47
+ return { column: index - lineStart, line };
48
+ }
49
+ function firstPatternLoc(source, patterns) {
50
+ let strippedSource = undefined;
51
+ for (const pattern of patterns) {
52
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
53
+ strippedSource ??= stripCommentsAndStrings(source);
54
+ if (!isCodeAt(strippedSource, match.index)) {
55
+ continue;
56
+ }
57
+ return locFromIndex(source, match.index);
58
+ }
59
+ }
60
+ return undefined;
61
+ }
62
+ function reportPatternMatches(input) {
63
+ const { context, node, source, spec } = input;
64
+ if (!spec.countPatterns) {
65
+ context.report({
66
+ loc: firstPatternLoc(source, spec.patterns ?? []),
67
+ message: spec.message,
68
+ node,
69
+ });
70
+ return;
71
+ }
72
+ let strippedSource = undefined;
73
+ for (const pattern of spec.countPatterns) {
74
+ for (const match of source.matchAll(toGlobalRegExp(pattern))) {
75
+ strippedSource ??= stripCommentsAndStrings(source);
76
+ if (!isCodeAt(strippedSource, match.index)) {
77
+ continue;
78
+ }
79
+ context.report({
80
+ loc: locFromIndex(source, match.index),
81
+ message: spec.message,
82
+ node,
83
+ });
84
+ }
85
+ }
86
+ }
87
+ function checkResultIndex(result) {
88
+ if (typeof result === 'number') {
89
+ return result;
90
+ }
91
+ if (typeof result === 'object') {
92
+ return result.index;
93
+ }
94
+ return undefined;
95
+ }
96
+ function isCheckViolation(result) {
97
+ return typeof result === 'boolean' ? result : true;
98
+ }
99
+ function makeProgramRule(spec, options) {
100
+ return {
101
+ meta: {
102
+ schema: options.schema,
103
+ type: 'problem',
104
+ },
105
+ create(context) {
106
+ const source = readSource(context);
107
+ const astVisitors = spec.ast?.(context, source) ?? {};
108
+ return {
109
+ ...astVisitors,
110
+ Program(node) {
111
+ if (source === '') {
112
+ return;
113
+ }
114
+ if (spec.ast && Array.isArray(node.body)) {
115
+ return;
116
+ }
117
+ const canonicalSource = canonicalizeEffectApiAliases(source);
118
+ const checkResult = spec.check?.(canonicalSource, context);
119
+ if (checkResult !== undefined) {
120
+ if (!isCheckViolation(checkResult)) {
121
+ return;
122
+ }
123
+ const index = checkResultIndex(checkResult);
124
+ context.report({
125
+ loc: index === undefined
126
+ ? firstPatternLoc(canonicalSource, spec.patterns ?? [])
127
+ : locFromIndex(canonicalSource, index),
128
+ message: spec.message,
129
+ node,
130
+ });
131
+ return;
132
+ }
133
+ if (hasPattern(canonicalSource, spec.patterns ?? [])) {
134
+ reportPatternMatches({ context, node, source: canonicalSource, spec });
135
+ }
136
+ },
137
+ };
138
+ },
139
+ };
140
+ }
141
+ function makeRules(specs, options = {}) {
142
+ return Object.fromEntries(specs.map((spec) => [spec.name, makeProgramRule(spec, options)]));
143
+ }
144
+ function hasEffectSignal(source) {
145
+ const codeOnly = stripCommentsAndStrings(source);
146
+ return (hasEffectValueImport(source) ||
147
+ effectImportAliases(source).some((alias) => new RegExp(`\\b${escapeRegExp(alias)}\\.`, 'u').test(codeOnly)));
148
+ }
149
+ const runtimeCallPattern = /\b(?:Effect\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)|[A-Za-z_$][\w$]*Runtime\.runMain)\s*\(/;
150
+ const boundaryFilePattern = /(?:^|\/)src\/(?:main|server|cli)\.ts$|\.entry\.ts$/;
151
+ const testFilePattern = /\.(?:test|spec)\.tsx?$/;
152
+ const ALIAS_CACHE_MAX = 256;
153
+ const effectAliasCache = new Map();
154
+ const runtimeFunctionAliasCache = new Map();
155
+ const canonicalSourceCache = new Map();
156
+ function cachedAliases(cache, source) {
157
+ const value = cache.get(source);
158
+ if (value) {
159
+ cache.delete(source);
160
+ cache.set(source, value);
161
+ }
162
+ return value;
163
+ }
164
+ function cacheAliases(cache, source, value) {
165
+ if (cache.size >= ALIAS_CACHE_MAX) {
166
+ const firstKey = cache.keys().next().value;
167
+ if (firstKey !== undefined) {
168
+ cache.delete(firstKey);
169
+ }
170
+ }
171
+ cache.set(source, value);
172
+ return value;
173
+ }
174
+ function escapeRegExp(value) {
175
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
176
+ }
177
+ function hasLocalEffectBinding(source) {
178
+ return /\b(?:const|let|var|function|class|namespace)\s+Effect\b/.test(stripCommentsAndStrings(source));
179
+ }
180
+ function importSpecifierNames(specifier) {
181
+ const trimmed = specifier.trim();
182
+ if (trimmed.startsWith('type ')) {
183
+ return undefined;
184
+ }
185
+ const parts = trimmed.split(/\s+as\s+/);
186
+ const importedName = parts[0]?.trim();
187
+ const localName = parts[1]?.trim() ?? importedName;
188
+ return importedName && localName ? { importedName, localName } : undefined;
189
+ }
190
+ function hasAnyEffectImport(source) {
191
+ return /(?:^|\n)\s*import(?:\s+type)?(?:[\s\S]*?\s+from\s*)?['"](?:effect(?:\/[^'"]+)?|@effect\/[^'"]+)['"]/.test(stripComments(source));
192
+ }
193
+ function hasEffectValueImport(source) {
194
+ const commentFreeSource = stripComments(source);
195
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
196
+ if (match[1]
197
+ .split(',')
198
+ .some((specifier) => importSpecifierNames(specifier)?.importedName === 'Effect')) {
199
+ return true;
200
+ }
201
+ }
202
+ 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);
203
+ }
204
+ function effectImportAliases(source) {
205
+ const cachedValue = cachedAliases(effectAliasCache, source);
206
+ if (cachedValue) {
207
+ return [...cachedValue];
208
+ }
209
+ const aliases = new Set();
210
+ const commentFreeSource = stripComments(source);
211
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
212
+ for (const specifier of match[1].split(',')) {
213
+ const names = importSpecifierNames(specifier);
214
+ if (!names) {
215
+ continue;
216
+ }
217
+ if (names.importedName === 'Effect') {
218
+ aliases.add('Effect');
219
+ aliases.add(names.localName);
220
+ }
221
+ }
222
+ }
223
+ 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)) {
224
+ aliases.add('Effect');
225
+ aliases.add(match[1]);
226
+ }
227
+ if (aliases.size === 0 && !hasAnyEffectImport(source) && !hasLocalEffectBinding(source)) {
228
+ aliases.add('Effect');
229
+ }
230
+ return [...cacheAliases(effectAliasCache, source, [...aliases])];
231
+ }
232
+ function effectApiAliases(source, apiName) {
233
+ const aliases = new Set();
234
+ const commentFreeSource = stripComments(source);
235
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
236
+ for (const specifier of match[1].split(',')) {
237
+ const names = importSpecifierNames(specifier);
238
+ if (names?.importedName === apiName) {
239
+ aliases.add(names.localName);
240
+ }
241
+ }
242
+ }
243
+ 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'))) {
244
+ aliases.add(match[1]);
245
+ }
246
+ if (aliases.size === 0 && !hasAnyEffectImport(source)) {
247
+ aliases.add(apiName);
248
+ }
249
+ return [...aliases];
250
+ }
251
+ function effectFunctionAliases(source, moduleName, functionName) {
252
+ const aliases = new Set();
253
+ const commentFreeSource = stripComments(source);
254
+ for (const match of commentFreeSource.matchAll(new RegExp(`(?:^|\\n)\\s*import\\s+(?!type\\b)\\s*{([^}]+)}\\s*from\\s*['"]effect/${escapeRegExp(moduleName)}['"]`, 'g'))) {
255
+ for (const specifier of match[1].split(',')) {
256
+ const names = importSpecifierNames(specifier);
257
+ if (names && (!functionName || names.importedName === functionName)) {
258
+ aliases.add(names.localName);
259
+ }
260
+ }
261
+ }
262
+ return [...aliases];
263
+ }
264
+ function canonicalImportAliases(source) {
265
+ const aliases = new Map();
266
+ const commentFreeSource = stripComments(source);
267
+ const canonicalNames = new Set([
268
+ 'Config',
269
+ 'Context',
270
+ 'Effect',
271
+ 'Fiber',
272
+ 'Layer',
273
+ 'Queue',
274
+ 'Schedule',
275
+ 'Schema',
276
+ 'Scope',
277
+ 'Stream',
278
+ 'TestClock',
279
+ ]);
280
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
281
+ for (const specifier of match[1].split(',')) {
282
+ const names = importSpecifierNames(specifier);
283
+ const importedName = names?.importedName;
284
+ const localName = names?.localName;
285
+ if (importedName &&
286
+ localName &&
287
+ canonicalNames.has(importedName) &&
288
+ localName !== importedName) {
289
+ aliases.set(localName, importedName);
290
+ }
291
+ }
292
+ }
293
+ 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)) {
294
+ const [, localName, moduleName] = match;
295
+ if (canonicalNames.has(moduleName) && localName !== moduleName) {
296
+ aliases.set(localName, moduleName);
297
+ }
298
+ }
299
+ return aliases;
300
+ }
301
+ function canonicalizeEffectApiAliases(source) {
302
+ const cachedValue = canonicalSourceCache.get(source);
303
+ if (cachedValue !== undefined) {
304
+ canonicalSourceCache.delete(source);
305
+ canonicalSourceCache.set(source, cachedValue);
306
+ return cachedValue;
307
+ }
308
+ let canonicalSource = source;
309
+ for (const [localName, canonicalName] of canonicalImportAliases(source)) {
310
+ canonicalSource = canonicalSource.replace(new RegExp(`\\b${escapeRegExp(localName)}\\.`, 'g'), `${canonicalName}.`);
311
+ }
312
+ if (canonicalSourceCache.size >= ALIAS_CACHE_MAX) {
313
+ const firstKey = canonicalSourceCache.keys().next().value;
314
+ if (firstKey !== undefined) {
315
+ canonicalSourceCache.delete(firstKey);
316
+ }
317
+ }
318
+ canonicalSourceCache.set(source, canonicalSource);
319
+ return canonicalSource;
320
+ }
321
+ function effectRuntimeFunctionAliases(source) {
322
+ const cachedValue = cachedAliases(runtimeFunctionAliasCache, source);
323
+ if (cachedValue) {
324
+ return [...cachedValue];
325
+ }
326
+ const aliases = new Set();
327
+ const runtimeNames = new Set([
328
+ 'runFork',
329
+ 'runPromise',
330
+ 'runPromiseExit',
331
+ 'runSync',
332
+ 'runSyncExit',
333
+ ]);
334
+ const commentFreeSource = stripComments(source);
335
+ for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s*{([^}]+)}\s*from\s*['"]effect\/Effect['"]/g)) {
336
+ for (const specifier of match[1].split(',')) {
337
+ const names = importSpecifierNames(specifier);
338
+ const importedName = names?.importedName;
339
+ const localName = names?.localName;
340
+ if (importedName && localName && runtimeNames.has(importedName)) {
341
+ aliases.add(localName);
342
+ }
343
+ }
344
+ }
345
+ return [...cacheAliases(runtimeFunctionAliasCache, source, [...aliases])];
346
+ }
347
+ function hasRuntimeCall(source) {
348
+ const code = stripCommentsAndStrings(source);
349
+ if (runtimeCallPattern.test(code)) {
350
+ return true;
351
+ }
352
+ return (effectImportAliases(source).some((alias) => new RegExp(`\\b${alias}\\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)\\s*\\(`).test(code)) ||
353
+ effectRuntimeFunctionAliases(source).some((alias) => new RegExp(`\\b${alias}\\s*\\(`).test(code)));
354
+ }
355
+ function isBoundaryFile(filename) {
356
+ return Boolean(filename && boundaryFilePattern.test(filename));
357
+ }
358
+ function isTestFile(filename) {
359
+ return Boolean(filename && testFilePattern.test(filename));
360
+ }
361
+ export { hasEffectSignal, effectApiAliases, effectFunctionAliases, effectImportAliases, hasRuntimeCall, isBoundaryFile, isTestFile, makeRules, runtimeCallPattern, };
362
+ //# sourceMappingURL=effect-rule-core.js.map