@thethracian/oxlint-config 0.2.1 → 0.3.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.
- package/CHANGELOG.md +13 -0
- package/README.md +124 -18
- package/dist/codemod-fix/cli.d.ts +3 -0
- package/dist/codemod-fix/cli.d.ts.map +1 -0
- package/dist/codemod-fix/cli.js +22 -0
- package/dist/codemod-fix/cli.js.map +1 -0
- package/dist/codemod-fix/index.d.ts +44 -0
- package/dist/codemod-fix/index.d.ts.map +1 -0
- package/dist/codemod-fix/index.js +110 -0
- package/dist/codemod-fix/index.js.map +1 -0
- package/dist/codemods/arrow-body-style.d.ts +7 -0
- package/dist/codemods/arrow-body-style.d.ts.map +1 -0
- package/dist/codemods/arrow-body-style.js +106 -0
- package/dist/codemods/arrow-body-style.js.map +1 -0
- package/dist/codemods/comment-format.d.ts +24 -0
- package/dist/codemods/comment-format.d.ts.map +1 -0
- package/dist/codemods/comment-format.js +100 -0
- package/dist/codemods/comment-format.js.map +1 -0
- package/dist/codemods/explicit-return-types.d.ts +7 -0
- package/dist/codemods/explicit-return-types.d.ts.map +1 -0
- package/dist/codemods/explicit-return-types.js +350 -0
- package/dist/codemods/explicit-return-types.js.map +1 -0
- package/dist/codemods/format-file-header.d.ts +7 -0
- package/dist/codemods/format-file-header.d.ts.map +1 -0
- package/dist/codemods/format-file-header.js +163 -0
- package/dist/codemods/format-file-header.js.map +1 -0
- package/dist/codemods/format-jsdoc-comments.d.ts +7 -0
- package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -0
- package/dist/codemods/format-jsdoc-comments.js +129 -0
- package/dist/codemods/format-jsdoc-comments.js.map +1 -0
- package/dist/codemods/function-declarations.d.ts +7 -0
- package/dist/codemods/function-declarations.d.ts.map +1 -0
- package/dist/codemods/function-declarations.js +202 -0
- package/dist/codemods/function-declarations.js.map +1 -0
- package/dist/codemods/inline-export-lists.d.ts +7 -0
- package/dist/codemods/inline-export-lists.d.ts.map +1 -0
- package/dist/codemods/inline-export-lists.js +168 -0
- package/dist/codemods/inline-export-lists.js.map +1 -0
- package/dist/codemods/internal-export-docs.d.ts +7 -0
- package/dist/codemods/internal-export-docs.d.ts.map +1 -0
- package/dist/codemods/internal-export-docs.js +93 -0
- package/dist/codemods/internal-export-docs.js.map +1 -0
- package/dist/codemods/no-ternary-branch-initializers.d.ts +14 -0
- package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -0
- package/dist/codemods/no-ternary-branch-initializers.js +240 -0
- package/dist/codemods/no-ternary-branch-initializers.js.map +1 -0
- package/dist/codemods/no-ternary-variable-initializers.d.ts +14 -0
- package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -0
- package/dist/codemods/no-ternary-variable-initializers.js +235 -0
- package/dist/codemods/no-ternary-variable-initializers.js.map +1 -0
- package/dist/codemods/no-ternary.d.ts +7 -0
- package/dist/codemods/no-ternary.d.ts.map +1 -0
- package/dist/codemods/no-ternary.js +215 -0
- package/dist/codemods/no-ternary.js.map +1 -0
- package/dist/codemods/rename-acronyms.d.ts +8 -0
- package/dist/codemods/rename-acronyms.d.ts.map +1 -0
- package/dist/codemods/rename-acronyms.js +193 -0
- package/dist/codemods/rename-acronyms.js.map +1 -0
- package/dist/codemods/run.d.ts +2 -0
- package/dist/codemods/run.d.ts.map +1 -0
- package/dist/codemods/run.js +14 -0
- package/dist/codemods/run.js.map +1 -0
- package/dist/codemods/sort-imports.d.ts +7 -0
- package/dist/codemods/sort-imports.d.ts.map +1 -0
- package/dist/codemods/sort-imports.js +235 -0
- package/dist/codemods/sort-imports.js.map +1 -0
- package/dist/index.d.ts +30 -96
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +156 -94
- package/dist/index.js.map +1 -1
- package/dist/rules/acronym-case.d.ts +7 -3
- package/dist/rules/acronym-case.d.ts.map +1 -1
- package/dist/rules/acronym-case.js +129 -118
- package/dist/rules/acronym-case.js.map +1 -1
- package/dist/rules/acronyms-1.d.ts +3 -0
- package/dist/rules/acronyms-1.d.ts.map +1 -0
- package/dist/rules/acronyms-1.js +407 -0
- package/dist/rules/acronyms-1.js.map +1 -0
- package/dist/rules/acronyms-2.d.ts +3 -0
- package/dist/rules/acronyms-2.d.ts.map +1 -0
- package/dist/rules/acronyms-2.js +407 -0
- package/dist/rules/acronyms-2.js.map +1 -0
- package/dist/rules/acronyms-3.d.ts +3 -0
- package/dist/rules/acronyms-3.d.ts.map +1 -0
- package/dist/rules/acronyms-3.js +407 -0
- package/dist/rules/acronyms-3.js.map +1 -0
- package/dist/rules/acronyms-4.d.ts +3 -0
- package/dist/rules/acronyms-4.d.ts.map +1 -0
- package/dist/rules/acronyms-4.js +377 -0
- package/dist/rules/acronyms-4.js.map +1 -0
- package/dist/rules/acronyms.d.ts +1 -8
- package/dist/rules/acronyms.d.ts.map +1 -1
- package/dist/rules/acronyms.js +14 -1578
- package/dist/rules/acronyms.js.map +1 -1
- package/dist/rules/boolean-prefix.d.ts +11 -2
- package/dist/rules/boolean-prefix.d.ts.map +1 -1
- package/dist/rules/boolean-prefix.js +95 -59
- package/dist/rules/boolean-prefix.js.map +1 -1
- package/dist/rules/camel-case-identifiers.d.ts +3 -4
- package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
- package/dist/rules/camel-case-identifiers.js +59 -40
- package/dist/rules/camel-case-identifiers.js.map +1 -1
- package/dist/rules/char-class.d.ts +26 -13
- package/dist/rules/char-class.d.ts.map +1 -1
- package/dist/rules/char-class.js +56 -24
- package/dist/rules/char-class.js.map +1 -1
- package/dist/rules/diagnostic-guidance.d.ts +91 -0
- package/dist/rules/diagnostic-guidance.d.ts.map +1 -0
- package/dist/rules/diagnostic-guidance.js +243 -0
- package/dist/rules/diagnostic-guidance.js.map +1 -0
- package/dist/rules/effect-default-ast.d.ts +89 -0
- package/dist/rules/effect-default-ast.d.ts.map +1 -0
- package/dist/rules/effect-default-ast.js +208 -0
- package/dist/rules/effect-default-ast.js.map +1 -0
- package/dist/rules/effect-default-compat-rules.d.ts +76 -0
- package/dist/rules/effect-default-compat-rules.d.ts.map +1 -0
- package/dist/rules/effect-default-compat-rules.js +270 -0
- package/dist/rules/effect-default-compat-rules.js.map +1 -0
- package/dist/rules/effect-default-env-rules.d.ts +60 -0
- package/dist/rules/effect-default-env-rules.d.ts.map +1 -0
- package/dist/rules/effect-default-env-rules.js +259 -0
- package/dist/rules/effect-default-env-rules.js.map +1 -0
- package/dist/rules/effect-default-fiber-helpers.d.ts +13 -0
- package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-fiber-helpers.js +76 -0
- package/dist/rules/effect-default-fiber-helpers.js.map +1 -0
- package/dist/rules/effect-default-floating-helpers.d.ts +7 -0
- package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-floating-helpers.js +113 -0
- package/dist/rules/effect-default-floating-helpers.js.map +1 -0
- package/dist/rules/effect-default-helpers.d.ts +8 -32
- package/dist/rules/effect-default-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-helpers.js +11 -535
- package/dist/rules/effect-default-helpers.js.map +1 -1
- package/dist/rules/effect-default-resource-helpers.d.ts +18 -4
- package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-resource-helpers.js +30 -13
- package/dist/rules/effect-default-resource-helpers.js.map +1 -1
- package/dist/rules/effect-default-safety-helpers.d.ts +43 -0
- package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-safety-helpers.js +126 -0
- package/dist/rules/effect-default-safety-helpers.js.map +1 -0
- package/dist/rules/effect-default-scan-helpers.d.ts +43 -0
- package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-scan-helpers.js +141 -0
- package/dist/rules/effect-default-scan-helpers.js.map +1 -0
- package/dist/rules/effect-default-schema-helpers.d.ts +37 -0
- package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-schema-helpers.js +104 -0
- package/dist/rules/effect-default-schema-helpers.js.map +1 -0
- package/dist/rules/effect-default-test-helpers.d.ts +18 -4
- package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-test-helpers.js +41 -20
- package/dist/rules/effect-default-test-helpers.js.map +1 -1
- package/dist/rules/effect-default-workflow-helpers.d.ts +91 -0
- package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -0
- package/dist/rules/effect-default-workflow-helpers.js +247 -0
- package/dist/rules/effect-default-workflow-helpers.js.map +1 -0
- package/dist/rules/effect-default.d.ts +1 -1
- package/dist/rules/effect-default.d.ts.map +1 -1
- package/dist/rules/effect-default.js +105 -680
- package/dist/rules/effect-default.js.map +1 -1
- package/dist/rules/effect-exported-declarations.d.ts +19 -0
- package/dist/rules/effect-exported-declarations.d.ts.map +1 -0
- package/dist/rules/effect-exported-declarations.js +237 -0
- package/dist/rules/effect-exported-declarations.js.map +1 -0
- package/dist/rules/effect-path-options.d.ts +49 -11
- package/dist/rules/effect-path-options.d.ts.map +1 -1
- package/dist/rules/effect-path-options.js +85 -52
- package/dist/rules/effect-path-options.js.map +1 -1
- package/dist/rules/effect-rule-aliases.d.ts +55 -0
- package/dist/rules/effect-rule-aliases.d.ts.map +1 -0
- package/dist/rules/effect-rule-aliases.js +278 -0
- package/dist/rules/effect-rule-aliases.js.map +1 -0
- package/dist/rules/effect-rule-core.d.ts +38 -24
- package/dist/rules/effect-rule-core.d.ts.map +1 -1
- package/dist/rules/effect-rule-core.js +157 -344
- package/dist/rules/effect-rule-core.js.map +1 -1
- package/dist/rules/effect-rule-names.d.ts +12 -3
- package/dist/rules/effect-rule-names.d.ts.map +1 -1
- package/dist/rules/effect-rule-names.js +15 -3
- package/dist/rules/effect-rule-names.js.map +1 -1
- package/dist/rules/effect-source-comments.d.ts +7 -0
- package/dist/rules/effect-source-comments.d.ts.map +1 -0
- package/dist/rules/effect-source-comments.js +227 -0
- package/dist/rules/effect-source-comments.js.map +1 -0
- package/dist/rules/effect-source-helpers.d.ts +4 -9
- package/dist/rules/effect-source-helpers.d.ts.map +1 -1
- package/dist/rules/effect-source-helpers.js +7 -358
- package/dist/rules/effect-source-helpers.js.map +1 -1
- package/dist/rules/effect-source-navigation.d.ts +25 -0
- package/dist/rules/effect-source-navigation.d.ts.map +1 -0
- package/dist/rules/effect-source-navigation.js +244 -0
- package/dist/rules/effect-source-navigation.js.map +1 -0
- package/dist/rules/effect-source-scan.d.ts +30 -7
- package/dist/rules/effect-source-scan.d.ts.map +1 -1
- package/dist/rules/effect-source-scan.js +372 -300
- package/dist/rules/effect-source-scan.js.map +1 -1
- package/dist/rules/effect-strict-ast-specs.d.ts +8 -0
- package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -0
- package/dist/rules/effect-strict-ast-specs.js +166 -0
- package/dist/rules/effect-strict-ast-specs.js.map +1 -0
- package/dist/rules/effect-strict-boundary-helpers.d.ts +25 -0
- package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -0
- package/dist/rules/effect-strict-boundary-helpers.js +127 -0
- package/dist/rules/effect-strict-boundary-helpers.js.map +1 -0
- package/dist/rules/effect-strict-core-specs.d.ts +8 -0
- package/dist/rules/effect-strict-core-specs.d.ts.map +1 -0
- package/dist/rules/effect-strict-core-specs.js +334 -0
- package/dist/rules/effect-strict-core-specs.js.map +1 -0
- package/dist/rules/effect-strict-external-helpers.d.ts +25 -0
- package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -0
- package/dist/rules/effect-strict-external-helpers.js +87 -0
- package/dist/rules/effect-strict-external-helpers.js.map +1 -0
- package/dist/rules/effect-strict-helpers.d.ts +75 -33
- package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-helpers.js +93 -384
- package/dist/rules/effect-strict-helpers.js.map +1 -1
- package/dist/rules/effect-strict-internals.d.ts +198 -0
- package/dist/rules/effect-strict-internals.d.ts.map +1 -0
- package/dist/rules/effect-strict-internals.js +477 -0
- package/dist/rules/effect-strict-internals.js.map +1 -0
- package/dist/rules/effect-strict-segment-helpers.d.ts +79 -0
- package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -0
- package/dist/rules/effect-strict-segment-helpers.js +308 -0
- package/dist/rules/effect-strict-segment-helpers.js.map +1 -0
- package/dist/rules/effect-strict.d.ts +1 -1
- package/dist/rules/effect-strict.d.ts.map +1 -1
- package/dist/rules/effect-strict.js +10 -725
- package/dist/rules/effect-strict.js.map +1 -1
- package/dist/rules/max-import-depth.d.ts +2 -2
- package/dist/rules/max-import-depth.d.ts.map +1 -1
- package/dist/rules/max-import-depth.js +52 -17
- package/dist/rules/max-import-depth.js.map +1 -1
- package/dist/rules/max-line-length.d.ts +9 -2
- package/dist/rules/max-line-length.d.ts.map +1 -1
- package/dist/rules/max-line-length.js +52 -15
- package/dist/rules/max-line-length.js.map +1 -1
- package/dist/rules/no-commented-out-code.d.ts +3 -7
- package/dist/rules/no-commented-out-code.d.ts.map +1 -1
- package/dist/rules/no-commented-out-code.js +157 -102
- package/dist/rules/no-commented-out-code.js.map +1 -1
- package/dist/rules/pascal-case-types.d.ts +1 -1
- package/dist/rules/pascal-case-types.d.ts.map +1 -1
- package/dist/rules/pascal-case-types.js +65 -46
- package/dist/rules/pascal-case-types.js.map +1 -1
- package/dist/rules/plugin-commented-out-code-rule.d.ts +32 -0
- package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -0
- package/dist/rules/plugin-commented-out-code-rule.js +135 -0
- package/dist/rules/plugin-commented-out-code-rule.js.map +1 -0
- package/dist/rules/plugin.d.ts +5 -0
- package/dist/rules/plugin.d.ts.map +1 -1
- package/dist/rules/plugin.js +168 -154
- package/dist/rules/plugin.js.map +1 -1
- package/dist/rules/private-underscore.d.ts +1 -1
- package/dist/rules/private-underscore.d.ts.map +1 -1
- package/dist/rules/private-underscore.js +11 -4
- package/dist/rules/private-underscore.js.map +1 -1
- package/dist/rules/require-file-doc.d.ts +5 -6
- package/dist/rules/require-file-doc.d.ts.map +1 -1
- package/dist/rules/require-file-doc.js +127 -78
- package/dist/rules/require-file-doc.js.map +1 -1
- package/dist/rules/require-function-doc-ignored-text.d.ts +7 -0
- package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -0
- package/dist/rules/require-function-doc-ignored-text.js +67 -0
- package/dist/rules/require-function-doc-ignored-text.js.map +1 -0
- package/dist/rules/require-function-doc-local-exports.d.ts +7 -0
- package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -0
- package/dist/rules/require-function-doc-local-exports.js +114 -0
- package/dist/rules/require-function-doc-local-exports.js.map +1 -0
- package/dist/rules/require-function-doc.d.ts +3 -18
- package/dist/rules/require-function-doc.d.ts.map +1 -1
- package/dist/rules/require-function-doc.js +396 -221
- package/dist/rules/require-function-doc.js.map +1 -1
- package/dist/rules/source-cache.d.ts +13 -5
- package/dist/rules/source-cache.d.ts.map +1 -1
- package/dist/rules/source-cache.js +35 -22
- package/dist/rules/source-cache.js.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal helper exported for package-local composition.
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare const runtimeCallPattern: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* Internal helper exported for package-local composition.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const effectImportAliases: (source: string) => string[];
|
|
13
|
+
/**
|
|
14
|
+
* Internal helper exported for package-local composition.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare const effectAPIAliases: (source: string, APIName: string) => string[];
|
|
19
|
+
/**
|
|
20
|
+
* Internal helper exported for package-local composition.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare const effectFunctionAliases: (source: string, moduleName: string, functionName?: string) => string[];
|
|
25
|
+
/**
|
|
26
|
+
* Internal helper exported for package-local composition.
|
|
27
|
+
*
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare const canonicalizeEffectAPIAliases: (source: string) => string;
|
|
31
|
+
/**
|
|
32
|
+
* Internal helper exported for package-local composition.
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export declare const hasRuntimeCall: (source: string) => boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Internal helper exported for package-local composition.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare const hasEffectSignal: (source: string) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Internal helper exported for package-local composition.
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare const isBoundaryFile: (filename: string | undefined) => boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Internal helper exported for package-local composition.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare const isTestFile: (filename: string | undefined) => boolean;
|
|
55
|
+
//# sourceMappingURL=effect-rule-aliases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-rule-aliases.d.ts","sourceRoot":"","sources":["../../src/rules/effect-rule-aliases.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QACkF,CAAC;AA4IlH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,EAiB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAAM,EAqBxE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,eAAe,MAAM,KACpB,MAAM,EAaR,CAAC;AAiEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,QAAQ,MAAM,KAAG,MAiB7D,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,OAuB/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAmBhD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,GAAG,SAAS,KAAG,OACL,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,GAAG,SAAS,KAAG,OACL,CAAC"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------- */
|
|
2
|
+
/* Effect import, alias, and runtime-call helpers for source-backed rules. */
|
|
3
|
+
/* -------------------------------------------------------------------------- */
|
|
4
|
+
import { stripComments, stripCommentsAndStrings } from './effect-source-helpers.js';
|
|
5
|
+
/**
|
|
6
|
+
* Internal helper exported for package-local composition.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const runtimeCallPattern = /\b(?:Effect\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)|[A-Za-z_$][\w$]*Runtime\.runMain)\s*\(/;
|
|
11
|
+
const boundaryFilePattern = /(?:^|\/)src\/(?:main|server|cli)\.ts$|\.entry\.ts$/;
|
|
12
|
+
const testFilePattern = /\.(?:test|spec)\.tsx?$/;
|
|
13
|
+
const ALIAS_CACHE_MAX = 256;
|
|
14
|
+
const BOOLEAN_CACHE_MAX = 512;
|
|
15
|
+
const effectAliasCache = new Map();
|
|
16
|
+
const runtimeFunctionAliasCache = new Map();
|
|
17
|
+
const canonicalSourceCache = new Map();
|
|
18
|
+
const effectSignalCache = new Map();
|
|
19
|
+
const runtimeCallCache = new Map();
|
|
20
|
+
const cachedAliases = (cache, source) => cache.get(source);
|
|
21
|
+
const cacheAliases = (cache, source, value) => {
|
|
22
|
+
if (cache.size >= ALIAS_CACHE_MAX) {
|
|
23
|
+
const firstKey = cache.keys().next().value;
|
|
24
|
+
if (firstKey !== undefined) {
|
|
25
|
+
cache.delete(firstKey);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
cache.set(source, value);
|
|
29
|
+
return value;
|
|
30
|
+
};
|
|
31
|
+
const cachedBoolean = (cache, source) => cache.get(source);
|
|
32
|
+
const cacheBoolean = (cache, source, value) => {
|
|
33
|
+
if (cache.size >= BOOLEAN_CACHE_MAX) {
|
|
34
|
+
const firstKey = cache.keys().next().value;
|
|
35
|
+
if (firstKey !== undefined) {
|
|
36
|
+
cache.delete(firstKey);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
cache.set(source, value);
|
|
40
|
+
return value;
|
|
41
|
+
};
|
|
42
|
+
const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, String.raw `\$&`);
|
|
43
|
+
const hasLocalEffectBinding = (source) => /\b(?:const|let|var|function|class|namespace)\s+Effect\b/.test(stripCommentsAndStrings(source));
|
|
44
|
+
const importSpecifierNames = (specifier) => {
|
|
45
|
+
const trimmed = specifier.trim();
|
|
46
|
+
if (trimmed.startsWith('type ')) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const parts = trimmed.split(/\s+as\s+/);
|
|
50
|
+
const importedName = parts[0]?.trim();
|
|
51
|
+
const localName = parts[1]?.trim() ?? importedName;
|
|
52
|
+
if (importedName && localName) {
|
|
53
|
+
return { importedName, localName };
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
};
|
|
57
|
+
const namedEffectImportLists = (source, modulePath = 'effect') => {
|
|
58
|
+
const escapedModule = escapeRegExp(modulePath);
|
|
59
|
+
return [
|
|
60
|
+
...source.matchAll(new RegExp(`(?:^|\\n)\\s*import\\s+(?!type\\b)\\s*{([^}]+)}\\s*from\\s*['"]${escapedModule}['"]`, 'g')),
|
|
61
|
+
].map((match) => match[1] ?? '');
|
|
62
|
+
};
|
|
63
|
+
const addMatchingNamedImports = (aliases, importList, predicate) => {
|
|
64
|
+
for (const specifier of importList.split(',')) {
|
|
65
|
+
const names = importSpecifierNames(specifier);
|
|
66
|
+
if (names && predicate(names)) {
|
|
67
|
+
aliases.add(names.localName);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const effectNamespaceImportPattern = (APIName) => new RegExp(`(?:^|\\n)\\s*import\\s+(?!type\\b)\\*\\s+as\\s+([A-Za-z_$][\\w$]*)\\s+from\\s*['"]effect/${escapeRegExp(APIName)}['"]`, 'g');
|
|
72
|
+
const addRootEffectAliases = (aliases, source) => {
|
|
73
|
+
for (const importList of namedEffectImportLists(source)) {
|
|
74
|
+
addMatchingNamedImports(aliases, importList, (names) => names.importedName === 'Effect');
|
|
75
|
+
if (aliases.size > 0) {
|
|
76
|
+
aliases.add('Effect');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const addNamespaceEffectAliases = (aliases, source) => {
|
|
81
|
+
for (const match of source.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*['"]effect(?:\/Effect)?['"]/g)) {
|
|
82
|
+
aliases.add('Effect');
|
|
83
|
+
aliases.add(match[1]);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const hasAnyEffectImport = (source) => /(?:^|\n)\s*import(?:\s+type)?(?:[\s\S]*?\s+from\s*)?['"](?:effect(?:\/[^'"]+)?|@effect\/[^'"]+)['"]/.test(stripComments(source));
|
|
87
|
+
const hasEffectValueImport = (source) => {
|
|
88
|
+
const commentFreeSource = stripComments(source);
|
|
89
|
+
for (const match of commentFreeSource.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\s*{([^}]+)}\s*from\s*['"]effect['"]/g)) {
|
|
90
|
+
if (match[1]
|
|
91
|
+
.split(',')
|
|
92
|
+
.some((specifier) => importSpecifierNames(specifier)?.importedName === 'Effect')) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
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);
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Internal helper exported for package-local composition.
|
|
100
|
+
*
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
export const effectImportAliases = (source) => {
|
|
104
|
+
const cachedValue = cachedAliases(effectAliasCache, source);
|
|
105
|
+
if (cachedValue) {
|
|
106
|
+
return cachedValue;
|
|
107
|
+
}
|
|
108
|
+
const aliases = new Set();
|
|
109
|
+
const commentFreeSource = stripComments(source);
|
|
110
|
+
addRootEffectAliases(aliases, commentFreeSource);
|
|
111
|
+
addNamespaceEffectAliases(aliases, commentFreeSource);
|
|
112
|
+
if (aliases.size === 0 && !hasAnyEffectImport(source) && !hasLocalEffectBinding(source)) {
|
|
113
|
+
aliases.add('Effect');
|
|
114
|
+
}
|
|
115
|
+
return cacheAliases(effectAliasCache, source, [...aliases]);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Internal helper exported for package-local composition.
|
|
119
|
+
*
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
export const effectAPIAliases = (source, APIName) => {
|
|
123
|
+
const aliases = new Set();
|
|
124
|
+
const commentFreeSource = stripComments(source);
|
|
125
|
+
for (const importList of namedEffectImportLists(commentFreeSource)) {
|
|
126
|
+
addMatchingNamedImports(aliases, importList, (names) => names.importedName === APIName);
|
|
127
|
+
}
|
|
128
|
+
for (const match of commentFreeSource.matchAll(effectNamespaceImportPattern(APIName))) {
|
|
129
|
+
aliases.add(match[1]);
|
|
130
|
+
}
|
|
131
|
+
if (aliases.size === 0 && !hasAnyEffectImport(source)) {
|
|
132
|
+
aliases.add(APIName);
|
|
133
|
+
}
|
|
134
|
+
return [...aliases];
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Internal helper exported for package-local composition.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export const effectFunctionAliases = (source, moduleName, functionName) => {
|
|
142
|
+
const aliases = new Set();
|
|
143
|
+
const commentFreeSource = stripComments(source);
|
|
144
|
+
for (const importList of namedEffectImportLists(commentFreeSource, `effect/${moduleName}`)) {
|
|
145
|
+
addMatchingNamedImports(aliases, importList, (names) => !functionName || names.importedName === functionName);
|
|
146
|
+
}
|
|
147
|
+
return [...aliases];
|
|
148
|
+
};
|
|
149
|
+
const canonicalNames = new Set([
|
|
150
|
+
'Config',
|
|
151
|
+
'Context',
|
|
152
|
+
'Effect',
|
|
153
|
+
'Fiber',
|
|
154
|
+
'Layer',
|
|
155
|
+
'Queue',
|
|
156
|
+
'Schedule',
|
|
157
|
+
'Schema',
|
|
158
|
+
'Scope',
|
|
159
|
+
'Stream',
|
|
160
|
+
'TestClock',
|
|
161
|
+
]);
|
|
162
|
+
const addCanonicalNamedImportAliases = (aliases, importList) => {
|
|
163
|
+
for (const specifier of importList.split(',')) {
|
|
164
|
+
const names = importSpecifierNames(specifier);
|
|
165
|
+
const importedName = names?.importedName;
|
|
166
|
+
const localName = names?.localName;
|
|
167
|
+
if (importedName &&
|
|
168
|
+
localName &&
|
|
169
|
+
canonicalNames.has(importedName) &&
|
|
170
|
+
localName !== importedName) {
|
|
171
|
+
aliases.set(localName, importedName);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const addCanonicalNamespaceAliases = (aliases, source) => {
|
|
176
|
+
for (const match of source.matchAll(/(?:^|\n)\s*import\s+(?!type\b)\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*['"]effect\/([A-Za-z]+)['"]/g)) {
|
|
177
|
+
const [, localName, moduleName] = match;
|
|
178
|
+
if (canonicalNames.has(moduleName) && localName !== moduleName) {
|
|
179
|
+
aliases.set(localName, moduleName);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
const canonicalImportAliases = (source) => {
|
|
184
|
+
const aliases = new Map();
|
|
185
|
+
const commentFreeSource = stripComments(source);
|
|
186
|
+
for (const importList of namedEffectImportLists(commentFreeSource)) {
|
|
187
|
+
addCanonicalNamedImportAliases(aliases, importList);
|
|
188
|
+
}
|
|
189
|
+
addCanonicalNamespaceAliases(aliases, commentFreeSource);
|
|
190
|
+
return aliases;
|
|
191
|
+
};
|
|
192
|
+
const evictCanonicalSourceCache = () => {
|
|
193
|
+
if (canonicalSourceCache.size < ALIAS_CACHE_MAX) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const firstKey = canonicalSourceCache.keys().next().value;
|
|
197
|
+
if (firstKey !== undefined) {
|
|
198
|
+
canonicalSourceCache.delete(firstKey);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Internal helper exported for package-local composition.
|
|
203
|
+
*
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
export const canonicalizeEffectAPIAliases = (source) => {
|
|
207
|
+
const cachedValue = canonicalSourceCache.get(source);
|
|
208
|
+
if (cachedValue !== undefined) {
|
|
209
|
+
return cachedValue;
|
|
210
|
+
}
|
|
211
|
+
let canonicalSource = source;
|
|
212
|
+
for (const [localName, canonicalName] of canonicalImportAliases(source)) {
|
|
213
|
+
canonicalSource = canonicalSource.replace(new RegExp(`\\b${escapeRegExp(localName)}\\.`, 'g'), `${canonicalName}.`);
|
|
214
|
+
}
|
|
215
|
+
evictCanonicalSourceCache();
|
|
216
|
+
canonicalSourceCache.set(source, canonicalSource);
|
|
217
|
+
return canonicalSource;
|
|
218
|
+
};
|
|
219
|
+
const runtimeNames = new Set(['runFork', 'runPromise', 'runPromiseExit', 'runSync', 'runSyncExit']);
|
|
220
|
+
const effectRuntimeFunctionAliases = (source) => {
|
|
221
|
+
const cachedValue = cachedAliases(runtimeFunctionAliasCache, source);
|
|
222
|
+
if (cachedValue) {
|
|
223
|
+
return cachedValue;
|
|
224
|
+
}
|
|
225
|
+
const aliases = new Set();
|
|
226
|
+
const commentFreeSource = stripComments(source);
|
|
227
|
+
for (const importList of namedEffectImportLists(commentFreeSource, 'effect/Effect')) {
|
|
228
|
+
addMatchingNamedImports(aliases, importList, (names) => runtimeNames.has(names.importedName));
|
|
229
|
+
}
|
|
230
|
+
return cacheAliases(runtimeFunctionAliasCache, source, [...aliases]);
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Internal helper exported for package-local composition.
|
|
234
|
+
*
|
|
235
|
+
* @internal
|
|
236
|
+
*/
|
|
237
|
+
export const hasRuntimeCall = (source) => {
|
|
238
|
+
const cachedValue = cachedBoolean(runtimeCallCache, source);
|
|
239
|
+
if (cachedValue !== undefined) {
|
|
240
|
+
return cachedValue;
|
|
241
|
+
}
|
|
242
|
+
const code = stripCommentsAndStrings(source);
|
|
243
|
+
if (runtimeCallPattern.test(code)) {
|
|
244
|
+
return cacheBoolean(runtimeCallCache, source, true);
|
|
245
|
+
}
|
|
246
|
+
return cacheBoolean(runtimeCallCache, source, effectImportAliases(source).some((alias) => new RegExp(`\\b${alias}\\.(?:runPromise|runPromiseExit|runSync|runSyncExit|runFork)\\s*\\(`).test(code)) ||
|
|
247
|
+
effectRuntimeFunctionAliases(source).some((alias) => new RegExp(`\\b${alias}\\s*\\(`).test(code)));
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Internal helper exported for package-local composition.
|
|
251
|
+
*
|
|
252
|
+
* @internal
|
|
253
|
+
*/
|
|
254
|
+
export const hasEffectSignal = (source) => {
|
|
255
|
+
const cachedValue = cachedBoolean(effectSignalCache, source);
|
|
256
|
+
if (cachedValue !== undefined) {
|
|
257
|
+
return cachedValue;
|
|
258
|
+
}
|
|
259
|
+
if (!source.includes('Effect') && !source.includes('effect')) {
|
|
260
|
+
return cacheBoolean(effectSignalCache, source, false);
|
|
261
|
+
}
|
|
262
|
+
const codeOnly = stripCommentsAndStrings(source);
|
|
263
|
+
return cacheBoolean(effectSignalCache, source, hasEffectValueImport(source) ||
|
|
264
|
+
effectImportAliases(source).some((alias) => new RegExp(`\\b${escapeRegExp(alias)}\\.`, 'u').test(codeOnly)));
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* Internal helper exported for package-local composition.
|
|
268
|
+
*
|
|
269
|
+
* @internal
|
|
270
|
+
*/
|
|
271
|
+
export const isBoundaryFile = (filename) => Boolean(filename && boundaryFilePattern.test(filename));
|
|
272
|
+
/**
|
|
273
|
+
* Internal helper exported for package-local composition.
|
|
274
|
+
*
|
|
275
|
+
* @internal
|
|
276
|
+
*/
|
|
277
|
+
export const isTestFile = (filename) => Boolean(filename && testFilePattern.test(filename));
|
|
278
|
+
//# sourceMappingURL=effect-rule-aliases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-rule-aliases.js","sourceRoot":"","sources":["../../src/rules/effect-rule-aliases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Internal helper exported for package-local composition.
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export interface Context {
|
|
2
7
|
report: (descriptor: {
|
|
3
8
|
loc?: {
|
|
4
9
|
column: number;
|
|
@@ -8,15 +13,23 @@ type Context = {
|
|
|
8
13
|
node: object;
|
|
9
14
|
}) => void;
|
|
10
15
|
filename?: string;
|
|
11
|
-
options?:
|
|
16
|
+
options?: object[];
|
|
12
17
|
sourceCode?: {
|
|
13
18
|
getText?: () => string;
|
|
14
19
|
text?: string;
|
|
15
20
|
};
|
|
16
|
-
}
|
|
17
|
-
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Internal helper exported for package-local composition.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export interface SourceRule {
|
|
18
28
|
meta?: {
|
|
19
|
-
|
|
29
|
+
docs?: {
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
schema?: object;
|
|
20
33
|
type: 'problem';
|
|
21
34
|
};
|
|
22
35
|
create: (context: Context) => {
|
|
@@ -28,33 +41,34 @@ type SourceRule = {
|
|
|
28
41
|
before?: () => false | void;
|
|
29
42
|
Program: (node: object) => void;
|
|
30
43
|
};
|
|
31
|
-
}
|
|
44
|
+
}
|
|
32
45
|
type VisitorMap = Record<string, ((node: object) => void) | undefined>;
|
|
33
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Internal helper exported for package-local composition.
|
|
48
|
+
*
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
export interface RuleSpec {
|
|
34
52
|
ast?: (context: Context, source: string) => VisitorMap;
|
|
35
53
|
name: string;
|
|
36
54
|
message: string;
|
|
37
|
-
countPatterns?: RegExp[];
|
|
38
|
-
patterns?: RegExp[];
|
|
55
|
+
countPatterns?: readonly RegExp[];
|
|
56
|
+
patterns?: readonly RegExp[];
|
|
39
57
|
tokenGroups?: readonly (readonly string[])[];
|
|
40
58
|
tokens?: readonly string[];
|
|
41
59
|
check?: (source: string, context: Context) => boolean | number | {
|
|
42
60
|
index: number;
|
|
43
61
|
};
|
|
44
|
-
}
|
|
45
|
-
|
|
62
|
+
}
|
|
63
|
+
interface MakeRulesOptions {
|
|
46
64
|
defaultTokens?: readonly string[];
|
|
47
|
-
schema?:
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
declare
|
|
55
|
-
|
|
56
|
-
declare function isBoundaryFile(filename: string | undefined): boolean;
|
|
57
|
-
declare function isTestFile(filename: string | undefined): boolean;
|
|
58
|
-
export { hasEffectSignal, effectApiAliases, effectFunctionAliases, effectImportAliases, hasRuntimeCall, isBoundaryFile, isTestFile, makeRules, runtimeCallPattern, };
|
|
59
|
-
export type { Context, RuleSpec, SourceRule };
|
|
65
|
+
schema?: object;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Internal helper exported for package-local composition.
|
|
69
|
+
*
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
export declare const makeRules: (specs: readonly RuleSpec[], options?: MakeRulesOptions) => Record<string, SourceRule>;
|
|
73
|
+
export { effectAPIAliases, effectFunctionAliases, effectImportAliases, hasEffectSignal, hasRuntimeCall, isBoundaryFile, isTestFile, runtimeCallPattern, } from './effect-rule-aliases';
|
|
60
74
|
//# sourceMappingURL=effect-rule-core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-rule-core.d.ts","sourceRoot":"","sources":["../../src/rules/effect-rule-core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effect-rule-core.d.ts","sourceRoot":"","sources":["../../src/rules/effect-rule-core.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,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,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE;YACL,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,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;IACF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK;QACjC,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;QACzD,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACH;AAED,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,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,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7C,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpF;AAID,UAAU,gBAAgB;IACxB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuYD;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,QAAQ,EAAE,EAC1B,UAAS,gBAAqB,KAC7B,MAAM,CAAC,MAAM,EAAE,UAAU,CAC0D,CAAC;AAEvF,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|