@thethracian/oxlint-config 0.3.6 → 0.4.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.
- package/CHANGELOG.md +6 -0
- package/README.md +14 -2
- package/dist/codemods/explicit-return-types.d.ts.map +1 -1
- package/dist/codemods/explicit-return-types.js +4 -0
- package/dist/codemods/explicit-return-types.js.map +1 -1
- package/dist/rules/diagnostic-guidance.d.ts.map +1 -1
- package/dist/rules/diagnostic-guidance.js +26 -2
- package/dist/rules/diagnostic-guidance.js.map +1 -1
- package/dist/rules/effect-alias-canonicalization.d.ts +27 -0
- package/dist/rules/effect-alias-canonicalization.d.ts.map +1 -0
- package/dist/rules/effect-alias-canonicalization.js +60 -0
- package/dist/rules/effect-alias-canonicalization.js.map +1 -0
- package/dist/rules/effect-ast-scope.d.ts +25 -0
- package/dist/rules/effect-ast-scope.d.ts.map +1 -0
- package/dist/rules/effect-ast-scope.js +286 -0
- package/dist/rules/effect-ast-scope.js.map +1 -0
- package/dist/rules/effect-ast.d.ts +42 -0
- package/dist/rules/effect-ast.d.ts.map +1 -0
- package/dist/rules/effect-ast.js +74 -0
- package/dist/rules/effect-ast.js.map +1 -0
- package/dist/rules/effect-boundary-ast-shared.d.ts +42 -0
- package/dist/rules/effect-boundary-ast-shared.d.ts.map +1 -0
- package/dist/rules/effect-boundary-ast-shared.js +203 -0
- package/dist/rules/effect-boundary-ast-shared.js.map +1 -0
- package/dist/rules/effect-default-boundary-ast.d.ts +10 -0
- package/dist/rules/effect-default-boundary-ast.d.ts.map +1 -0
- package/dist/rules/effect-default-boundary-ast.js +320 -0
- package/dist/rules/effect-default-boundary-ast.js.map +1 -0
- package/dist/rules/effect-default-compat-rules.d.ts +11 -15
- package/dist/rules/effect-default-compat-rules.d.ts.map +1 -1
- package/dist/rules/effect-default-compat-rules.js +20 -0
- package/dist/rules/effect-default-compat-rules.js.map +1 -1
- package/dist/rules/effect-default-scan-helpers.js +1 -1
- package/dist/rules/effect-default-scan-helpers.js.map +1 -1
- package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-workflow-helpers.js +7 -29
- package/dist/rules/effect-default-workflow-helpers.js.map +1 -1
- package/dist/rules/effect-default.d.ts +4 -1
- package/dist/rules/effect-default.d.ts.map +1 -1
- package/dist/rules/effect-default.js +14 -5
- package/dist/rules/effect-default.js.map +1 -1
- package/dist/rules/effect-export-binding-patterns.d.ts +9 -0
- package/dist/rules/effect-export-binding-patterns.d.ts.map +1 -0
- package/dist/rules/effect-export-binding-patterns.js +149 -0
- package/dist/rules/effect-export-binding-patterns.js.map +1 -0
- package/dist/rules/effect-export-declaration-boundaries.d.ts +21 -0
- package/dist/rules/effect-export-declaration-boundaries.d.ts.map +1 -0
- package/dist/rules/effect-export-declaration-boundaries.js +119 -0
- package/dist/rules/effect-export-declaration-boundaries.js.map +1 -0
- package/dist/rules/effect-export-default-binding.d.ts +5 -0
- package/dist/rules/effect-export-default-binding.d.ts.map +1 -0
- package/dist/rules/effect-export-default-binding.js +350 -0
- package/dist/rules/effect-export-default-binding.js.map +1 -0
- package/dist/rules/effect-export-segments.d.ts +9 -0
- package/dist/rules/effect-export-segments.d.ts.map +1 -0
- package/dist/rules/effect-export-segments.js +67 -0
- package/dist/rules/effect-export-segments.js.map +1 -0
- package/dist/rules/effect-exported-declarations.d.ts +3 -15
- package/dist/rules/effect-exported-declarations.d.ts.map +1 -1
- package/dist/rules/effect-exported-declarations.js +139 -94
- package/dist/rules/effect-exported-declarations.js.map +1 -1
- package/dist/rules/effect-global-fetch-ast.d.ts +14 -0
- package/dist/rules/effect-global-fetch-ast.d.ts.map +1 -0
- package/dist/rules/effect-global-fetch-ast.js +321 -0
- package/dist/rules/effect-global-fetch-ast.js.map +1 -0
- package/dist/rules/effect-global-fetch-imports.d.ts +29 -0
- package/dist/rules/effect-global-fetch-imports.d.ts.map +1 -0
- package/dist/rules/effect-global-fetch-imports.js +91 -0
- package/dist/rules/effect-global-fetch-imports.js.map +1 -0
- package/dist/rules/effect-import-bindings.d.ts +13 -0
- package/dist/rules/effect-import-bindings.d.ts.map +1 -0
- package/dist/rules/effect-import-bindings.js +133 -0
- package/dist/rules/effect-import-bindings.js.map +1 -0
- package/dist/rules/effect-imported-call-matcher.d.ts +24 -0
- package/dist/rules/effect-imported-call-matcher.d.ts.map +1 -0
- package/dist/rules/effect-imported-call-matcher.js +271 -0
- package/dist/rules/effect-imported-call-matcher.js.map +1 -0
- package/dist/rules/effect-module-source-index.d.ts +44 -0
- package/dist/rules/effect-module-source-index.d.ts.map +1 -0
- package/dist/rules/effect-module-source-index.js +306 -0
- package/dist/rules/effect-module-source-index.js.map +1 -0
- package/dist/rules/effect-native-references.d.ts +66 -0
- package/dist/rules/effect-native-references.d.ts.map +1 -0
- package/dist/rules/effect-native-references.js +164 -0
- package/dist/rules/effect-native-references.js.map +1 -0
- package/dist/rules/effect-object-assign-provenance.d.ts +20 -0
- package/dist/rules/effect-object-assign-provenance.d.ts.map +1 -0
- package/dist/rules/effect-object-assign-provenance.js +37 -0
- package/dist/rules/effect-object-assign-provenance.js.map +1 -0
- package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts +4 -0
- package/dist/rules/effect-prefer-map-over-flatmap-succeed.d.ts.map +1 -0
- package/dist/rules/effect-prefer-map-over-flatmap-succeed.js +294 -0
- package/dist/rules/effect-prefer-map-over-flatmap-succeed.js.map +1 -0
- package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts +4 -0
- package/dist/rules/effect-prefer-succeed-for-stable-values.d.ts.map +1 -0
- package/dist/rules/effect-prefer-succeed-for-stable-values.js +292 -0
- package/dist/rules/effect-prefer-succeed-for-stable-values.js.map +1 -0
- package/dist/rules/effect-promise-ast-values.d.ts +26 -0
- package/dist/rules/effect-promise-ast-values.d.ts.map +1 -0
- package/dist/rules/effect-promise-ast-values.js +66 -0
- package/dist/rules/effect-promise-ast-values.js.map +1 -0
- package/dist/rules/effect-promise-callable-declarations.d.ts +22 -0
- package/dist/rules/effect-promise-callable-declarations.d.ts.map +1 -0
- package/dist/rules/effect-promise-callable-declarations.js +255 -0
- package/dist/rules/effect-promise-callable-declarations.js.map +1 -0
- package/dist/rules/effect-promise-callable-lookup.d.ts +40 -0
- package/dist/rules/effect-promise-callable-lookup.d.ts.map +1 -0
- package/dist/rules/effect-promise-callable-lookup.js +99 -0
- package/dist/rules/effect-promise-callable-lookup.js.map +1 -0
- package/dist/rules/effect-promise-callable-scopes.d.ts +16 -0
- package/dist/rules/effect-promise-callable-scopes.d.ts.map +1 -0
- package/dist/rules/effect-promise-callable-scopes.js +43 -0
- package/dist/rules/effect-promise-callable-scopes.js.map +1 -0
- package/dist/rules/effect-promise-callable-types.d.ts +43 -0
- package/dist/rules/effect-promise-callable-types.d.ts.map +1 -0
- package/dist/rules/effect-promise-callable-types.js +5 -0
- package/dist/rules/effect-promise-callable-types.js.map +1 -0
- package/dist/rules/effect-promise-callables.d.ts +5 -0
- package/dist/rules/effect-promise-callables.d.ts.map +1 -0
- package/dist/rules/effect-promise-callables.js +7 -0
- package/dist/rules/effect-promise-callables.js.map +1 -0
- package/dist/rules/effect-promise-collections.d.ts +20 -0
- package/dist/rules/effect-promise-collections.d.ts.map +1 -0
- package/dist/rules/effect-promise-collections.js +199 -0
- package/dist/rules/effect-promise-collections.js.map +1 -0
- package/dist/rules/effect-promise-completion.d.ts +141 -0
- package/dist/rules/effect-promise-completion.d.ts.map +1 -0
- package/dist/rules/effect-promise-completion.js +200 -0
- package/dist/rules/effect-promise-completion.js.map +1 -0
- package/dist/rules/effect-promise-environment-projections.d.ts +23 -0
- package/dist/rules/effect-promise-environment-projections.d.ts.map +1 -0
- package/dist/rules/effect-promise-environment-projections.js +191 -0
- package/dist/rules/effect-promise-environment-projections.js.map +1 -0
- package/dist/rules/effect-promise-environment-types.d.ts +96 -0
- package/dist/rules/effect-promise-environment-types.d.ts.map +1 -0
- package/dist/rules/effect-promise-environment-types.js +10 -0
- package/dist/rules/effect-promise-environment-types.js.map +1 -0
- package/dist/rules/effect-promise-environment-values.d.ts +41 -0
- package/dist/rules/effect-promise-environment-values.d.ts.map +1 -0
- package/dist/rules/effect-promise-environment-values.js +214 -0
- package/dist/rules/effect-promise-environment-values.js.map +1 -0
- package/dist/rules/effect-promise-environments.d.ts +5 -0
- package/dist/rules/effect-promise-environments.d.ts.map +1 -0
- package/dist/rules/effect-promise-environments.js +7 -0
- package/dist/rules/effect-promise-environments.js.map +1 -0
- package/dist/rules/effect-promise-execution-ast.d.ts +12 -0
- package/dist/rules/effect-promise-execution-ast.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-ast.js +30 -0
- package/dist/rules/effect-promise-execution-ast.js.map +1 -0
- package/dist/rules/effect-promise-execution-engine.d.ts +9 -0
- package/dist/rules/effect-promise-execution-engine.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-engine.js +280 -0
- package/dist/rules/effect-promise-execution-engine.js.map +1 -0
- package/dist/rules/effect-promise-execution-flow.d.ts +48 -0
- package/dist/rules/effect-promise-execution-flow.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-flow.js +193 -0
- package/dist/rules/effect-promise-execution-flow.js.map +1 -0
- package/dist/rules/effect-promise-execution-navigation.d.ts +34 -0
- package/dist/rules/effect-promise-execution-navigation.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-navigation.js +66 -0
- package/dist/rules/effect-promise-execution-navigation.js.map +1 -0
- package/dist/rules/effect-promise-execution-types.d.ts +36 -0
- package/dist/rules/effect-promise-execution-types.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-types.js +5 -0
- package/dist/rules/effect-promise-execution-types.js.map +1 -0
- package/dist/rules/effect-promise-execution-values.d.ts +40 -0
- package/dist/rules/effect-promise-execution-values.d.ts.map +1 -0
- package/dist/rules/effect-promise-execution-values.js +268 -0
- package/dist/rules/effect-promise-execution-values.js.map +1 -0
- package/dist/rules/effect-promise-expression-flow.d.ts +27 -0
- package/dist/rules/effect-promise-expression-flow.d.ts.map +1 -0
- package/dist/rules/effect-promise-expression-flow.js +80 -0
- package/dist/rules/effect-promise-expression-flow.js.map +1 -0
- package/dist/rules/effect-promise-invocation-memo.d.ts +16 -0
- package/dist/rules/effect-promise-invocation-memo.d.ts.map +1 -0
- package/dist/rules/effect-promise-invocation-memo.js +44 -0
- package/dist/rules/effect-promise-invocation-memo.js.map +1 -0
- package/dist/rules/effect-promise-invocations.d.ts +16 -0
- package/dist/rules/effect-promise-invocations.d.ts.map +1 -0
- package/dist/rules/effect-promise-invocations.js +126 -0
- package/dist/rules/effect-promise-invocations.js.map +1 -0
- package/dist/rules/effect-promise-node-children.d.ts +22 -0
- package/dist/rules/effect-promise-node-children.d.ts.map +1 -0
- package/dist/rules/effect-promise-node-children.js +49 -0
- package/dist/rules/effect-promise-node-children.js.map +1 -0
- package/dist/rules/effect-promise-node-evaluation.d.ts +43 -0
- package/dist/rules/effect-promise-node-evaluation.d.ts.map +1 -0
- package/dist/rules/effect-promise-node-evaluation.js +150 -0
- package/dist/rules/effect-promise-node-evaluation.js.map +1 -0
- package/dist/rules/effect-promise-parameter-bindings.d.ts +28 -0
- package/dist/rules/effect-promise-parameter-bindings.d.ts.map +1 -0
- package/dist/rules/effect-promise-parameter-bindings.js +187 -0
- package/dist/rules/effect-promise-parameter-bindings.js.map +1 -0
- package/dist/rules/effect-promise-pattern-bindings.d.ts +9 -0
- package/dist/rules/effect-promise-pattern-bindings.d.ts.map +1 -0
- package/dist/rules/effect-promise-pattern-bindings.js +54 -0
- package/dist/rules/effect-promise-pattern-bindings.js.map +1 -0
- package/dist/rules/effect-promise-program-traversal.d.ts +40 -0
- package/dist/rules/effect-promise-program-traversal.d.ts.map +1 -0
- package/dist/rules/effect-promise-program-traversal.js +115 -0
- package/dist/rules/effect-promise-program-traversal.js.map +1 -0
- package/dist/rules/effect-promise-rule-bindings.d.ts +23 -0
- package/dist/rules/effect-promise-rule-bindings.d.ts.map +1 -0
- package/dist/rules/effect-promise-rule-bindings.js +41 -0
- package/dist/rules/effect-promise-rule-bindings.js.map +1 -0
- package/dist/rules/effect-promise-runtime-arguments.d.ts +18 -0
- package/dist/rules/effect-promise-runtime-arguments.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-arguments.js +49 -0
- package/dist/rules/effect-promise-runtime-arguments.js.map +1 -0
- package/dist/rules/effect-promise-runtime-call-targets.d.ts +21 -0
- package/dist/rules/effect-promise-runtime-call-targets.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-call-targets.js +55 -0
- package/dist/rules/effect-promise-runtime-call-targets.js.map +1 -0
- package/dist/rules/effect-promise-runtime-callable-properties.d.ts +20 -0
- package/dist/rules/effect-promise-runtime-callable-properties.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-callable-properties.js +30 -0
- package/dist/rules/effect-promise-runtime-callable-properties.js.map +1 -0
- package/dist/rules/effect-promise-runtime-callables.d.ts +51 -0
- package/dist/rules/effect-promise-runtime-callables.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-callables.js +214 -0
- package/dist/rules/effect-promise-runtime-callables.js.map +1 -0
- package/dist/rules/effect-promise-runtime-choice-operations.d.ts +32 -0
- package/dist/rules/effect-promise-runtime-choice-operations.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-choice-operations.js +145 -0
- package/dist/rules/effect-promise-runtime-choice-operations.js.map +1 -0
- package/dist/rules/effect-promise-runtime-choice.d.ts +26 -0
- package/dist/rules/effect-promise-runtime-choice.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-choice.js +95 -0
- package/dist/rules/effect-promise-runtime-choice.js.map +1 -0
- package/dist/rules/effect-promise-runtime-control-branches.d.ts +14 -0
- package/dist/rules/effect-promise-runtime-control-branches.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-control-branches.js +74 -0
- package/dist/rules/effect-promise-runtime-control-branches.js.map +1 -0
- package/dist/rules/effect-promise-runtime-control-completions.d.ts +26 -0
- package/dist/rules/effect-promise-runtime-control-completions.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-control-completions.js +116 -0
- package/dist/rules/effect-promise-runtime-control-completions.js.map +1 -0
- package/dist/rules/effect-promise-runtime-control-flow.d.ts +9 -0
- package/dist/rules/effect-promise-runtime-control-flow.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-control-flow.js +94 -0
- package/dist/rules/effect-promise-runtime-control-flow.js.map +1 -0
- package/dist/rules/effect-promise-runtime-control-patterns.d.ts +15 -0
- package/dist/rules/effect-promise-runtime-control-patterns.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-control-patterns.js +84 -0
- package/dist/rules/effect-promise-runtime-control-patterns.js.map +1 -0
- package/dist/rules/effect-promise-runtime-control-scalars.d.ts +23 -0
- package/dist/rules/effect-promise-runtime-control-scalars.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-control-scalars.js +178 -0
- package/dist/rules/effect-promise-runtime-control-scalars.js.map +1 -0
- package/dist/rules/effect-promise-runtime-expressions.d.ts +22 -0
- package/dist/rules/effect-promise-runtime-expressions.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-expressions.js +265 -0
- package/dist/rules/effect-promise-runtime-expressions.js.map +1 -0
- package/dist/rules/effect-promise-runtime-heap.d.ts +39 -0
- package/dist/rules/effect-promise-runtime-heap.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-heap.js +73 -0
- package/dist/rules/effect-promise-runtime-heap.js.map +1 -0
- package/dist/rules/effect-promise-runtime-interpreter.d.ts +39 -0
- package/dist/rules/effect-promise-runtime-interpreter.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-interpreter.js +260 -0
- package/dist/rules/effect-promise-runtime-interpreter.js.map +1 -0
- package/dist/rules/effect-promise-runtime-intrinsics.d.ts +15 -0
- package/dist/rules/effect-promise-runtime-intrinsics.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-intrinsics.js +54 -0
- package/dist/rules/effect-promise-runtime-intrinsics.js.map +1 -0
- package/dist/rules/effect-promise-runtime-loops.d.ts +9 -0
- package/dist/rules/effect-promise-runtime-loops.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-loops.js +277 -0
- package/dist/rules/effect-promise-runtime-loops.js.map +1 -0
- package/dist/rules/effect-promise-runtime-members.d.ts +28 -0
- package/dist/rules/effect-promise-runtime-members.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-members.js +88 -0
- package/dist/rules/effect-promise-runtime-members.js.map +1 -0
- package/dist/rules/effect-promise-runtime-memo.d.ts +40 -0
- package/dist/rules/effect-promise-runtime-memo.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-memo.js +124 -0
- package/dist/rules/effect-promise-runtime-memo.js.map +1 -0
- package/dist/rules/effect-promise-runtime-model.d.ts +251 -0
- package/dist/rules/effect-promise-runtime-model.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-model.js +84 -0
- package/dist/rules/effect-promise-runtime-model.js.map +1 -0
- package/dist/rules/effect-promise-runtime-mutations.d.ts +17 -0
- package/dist/rules/effect-promise-runtime-mutations.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-mutations.js +165 -0
- package/dist/rules/effect-promise-runtime-mutations.js.map +1 -0
- package/dist/rules/effect-promise-runtime-patterns.d.ts +21 -0
- package/dist/rules/effect-promise-runtime-patterns.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-patterns.js +179 -0
- package/dist/rules/effect-promise-runtime-patterns.js.map +1 -0
- package/dist/rules/effect-promise-runtime-proof.d.ts +74 -0
- package/dist/rules/effect-promise-runtime-proof.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-proof.js +253 -0
- package/dist/rules/effect-promise-runtime-proof.js.map +1 -0
- package/dist/rules/effect-promise-runtime-reporting.d.ts +16 -0
- package/dist/rules/effect-promise-runtime-reporting.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-reporting.js +11 -0
- package/dist/rules/effect-promise-runtime-reporting.js.map +1 -0
- package/dist/rules/effect-promise-runtime-scalar-operations.d.ts +2 -0
- package/dist/rules/effect-promise-runtime-scalar-operations.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-scalar-operations.js +5 -0
- package/dist/rules/effect-promise-runtime-scalar-operations.js.map +1 -0
- package/dist/rules/effect-promise-runtime-scalars.d.ts +24 -0
- package/dist/rules/effect-promise-runtime-scalars.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-scalars.js +125 -0
- package/dist/rules/effect-promise-runtime-scalars.js.map +1 -0
- package/dist/rules/effect-promise-runtime-statements.d.ts +15 -0
- package/dist/rules/effect-promise-runtime-statements.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-statements.js +251 -0
- package/dist/rules/effect-promise-runtime-statements.js.map +1 -0
- package/dist/rules/effect-promise-runtime-store.d.ts +44 -0
- package/dist/rules/effect-promise-runtime-store.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-store.js +186 -0
- package/dist/rules/effect-promise-runtime-store.js.map +1 -0
- package/dist/rules/effect-promise-runtime-structures.d.ts +9 -0
- package/dist/rules/effect-promise-runtime-structures.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-structures.js +181 -0
- package/dist/rules/effect-promise-runtime-structures.js.map +1 -0
- package/dist/rules/effect-promise-runtime-switch.d.ts +9 -0
- package/dist/rules/effect-promise-runtime-switch.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-switch.js +91 -0
- package/dist/rules/effect-promise-runtime-switch.js.map +1 -0
- package/dist/rules/effect-promise-runtime-tasks.d.ts +72 -0
- package/dist/rules/effect-promise-runtime-tasks.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-tasks.js +158 -0
- package/dist/rules/effect-promise-runtime-tasks.js.map +1 -0
- package/dist/rules/effect-promise-runtime-this.d.ts +14 -0
- package/dist/rules/effect-promise-runtime-this.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-this.js +29 -0
- package/dist/rules/effect-promise-runtime-this.js.map +1 -0
- package/dist/rules/effect-promise-runtime-try.d.ts +9 -0
- package/dist/rules/effect-promise-runtime-try.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-try.js +94 -0
- package/dist/rules/effect-promise-runtime-try.js.map +1 -0
- package/dist/rules/effect-promise-runtime-values.d.ts +88 -0
- package/dist/rules/effect-promise-runtime-values.d.ts.map +1 -0
- package/dist/rules/effect-promise-runtime-values.js +382 -0
- package/dist/rules/effect-promise-runtime-values.js.map +1 -0
- package/dist/rules/effect-promise-value-scopes.d.ts +94 -0
- package/dist/rules/effect-promise-value-scopes.d.ts.map +1 -0
- package/dist/rules/effect-promise-value-scopes.js +218 -0
- package/dist/rules/effect-promise-value-scopes.js.map +1 -0
- package/dist/rules/effect-recursion-ast.d.ts +14 -0
- package/dist/rules/effect-recursion-ast.d.ts.map +1 -0
- package/dist/rules/effect-recursion-ast.js +154 -0
- package/dist/rules/effect-recursion-ast.js.map +1 -0
- package/dist/rules/effect-recursion-execution.d.ts +15 -0
- package/dist/rules/effect-recursion-execution.d.ts.map +1 -0
- package/dist/rules/effect-recursion-execution.js +312 -0
- package/dist/rules/effect-recursion-execution.js.map +1 -0
- package/dist/rules/effect-recursion-generator.d.ts +17 -0
- package/dist/rules/effect-recursion-generator.d.ts.map +1 -0
- package/dist/rules/effect-recursion-generator.js +125 -0
- package/dist/rules/effect-recursion-generator.js.map +1 -0
- package/dist/rules/effect-recursion-local-bindings.d.ts +44 -0
- package/dist/rules/effect-recursion-local-bindings.d.ts.map +1 -0
- package/dist/rules/effect-recursion-local-bindings.js +99 -0
- package/dist/rules/effect-recursion-local-bindings.js.map +1 -0
- package/dist/rules/effect-recursion-phases.d.ts +40 -0
- package/dist/rules/effect-recursion-phases.d.ts.map +1 -0
- package/dist/rules/effect-recursion-phases.js +62 -0
- package/dist/rules/effect-recursion-phases.js.map +1 -0
- package/dist/rules/effect-recursion-source.d.ts +10 -0
- package/dist/rules/effect-recursion-source.d.ts.map +1 -0
- package/dist/rules/effect-recursion-source.js +182 -0
- package/dist/rules/effect-recursion-source.js.map +1 -0
- package/dist/rules/effect-recursion-viability.d.ts +66 -0
- package/dist/rules/effect-recursion-viability.d.ts.map +1 -0
- package/dist/rules/effect-recursion-viability.js +228 -0
- package/dist/rules/effect-recursion-viability.js.map +1 -0
- package/dist/rules/effect-rule-aliases.d.ts +14 -19
- package/dist/rules/effect-rule-aliases.d.ts.map +1 -1
- package/dist/rules/effect-rule-aliases.js +48 -30
- package/dist/rules/effect-rule-aliases.js.map +1 -1
- package/dist/rules/effect-rule-core.d.ts +4 -4
- package/dist/rules/effect-rule-core.d.ts.map +1 -1
- package/dist/rules/effect-rule-core.js +42 -44
- package/dist/rules/effect-rule-core.js.map +1 -1
- package/dist/rules/effect-rule-names.d.ts.map +1 -1
- package/dist/rules/effect-rule-names.js +1 -1
- package/dist/rules/effect-rule-names.js.map +1 -1
- package/dist/rules/effect-source-navigation-lexer.d.ts +13 -0
- package/dist/rules/effect-source-navigation-lexer.d.ts.map +1 -0
- package/dist/rules/effect-source-navigation-lexer.js +228 -0
- package/dist/rules/effect-source-navigation-lexer.js.map +1 -0
- package/dist/rules/effect-source-navigation.d.ts +2 -2
- package/dist/rules/effect-source-navigation.d.ts.map +1 -1
- package/dist/rules/effect-source-navigation.js +104 -101
- package/dist/rules/effect-source-navigation.js.map +1 -1
- package/dist/rules/effect-strict-ast-helpers.d.ts +82 -0
- package/dist/rules/effect-strict-ast-helpers.d.ts.map +1 -0
- package/dist/rules/effect-strict-ast-helpers.js +194 -0
- package/dist/rules/effect-strict-ast-helpers.js.map +1 -0
- package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -1
- package/dist/rules/effect-strict-ast-specs.js +14 -16
- package/dist/rules/effect-strict-ast-specs.js.map +1 -1
- package/dist/rules/effect-strict-internals.d.ts +2 -196
- package/dist/rules/effect-strict-internals.d.ts.map +1 -1
- package/dist/rules/effect-strict-internals.js +2 -417
- package/dist/rules/effect-strict-internals.js.map +1 -1
- package/dist/rules/effect-strict-source-predicates.d.ts +120 -0
- package/dist/rules/effect-strict-source-predicates.d.ts.map +1 -0
- package/dist/rules/effect-strict-source-predicates.js +234 -0
- package/dist/rules/effect-strict-source-predicates.js.map +1 -0
- package/dist/rules/effect-sync-promise-scope-index.d.ts +44 -0
- package/dist/rules/effect-sync-promise-scope-index.d.ts.map +1 -0
- package/dist/rules/effect-sync-promise-scope-index.js +345 -0
- package/dist/rules/effect-sync-promise-scope-index.js.map +1 -0
- package/dist/rules/effect-sync-promise-scopes.d.ts +10 -0
- package/dist/rules/effect-sync-promise-scopes.d.ts.map +1 -0
- package/dist/rules/effect-sync-promise-scopes.js +115 -0
- package/dist/rules/effect-sync-promise-scopes.js.map +1 -0
- package/dist/rules/effect-sync-promise-source.d.ts +2 -0
- package/dist/rules/effect-sync-promise-source.d.ts.map +1 -0
- package/dist/rules/effect-sync-promise-source.js +5 -0
- package/dist/rules/effect-sync-promise-source.js.map +1 -0
- package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts +21 -0
- package/dist/rules/plugin-commented-out-code-jsx-scanner.d.ts.map +1 -0
- package/dist/rules/plugin-commented-out-code-jsx-scanner.js +200 -0
- package/dist/rules/plugin-commented-out-code-jsx-scanner.js.map +1 -0
- package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts +139 -0
- package/dist/rules/plugin-commented-out-code-lexical-primitives.d.ts.map +1 -0
- package/dist/rules/plugin-commented-out-code-lexical-primitives.js +244 -0
- package/dist/rules/plugin-commented-out-code-lexical-primitives.js.map +1 -0
- package/dist/rules/plugin-commented-out-code-rule.d.ts +13 -0
- package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -1
- package/dist/rules/plugin-commented-out-code-rule.js +174 -82
- package/dist/rules/plugin-commented-out-code-rule.js.map +1 -1
- package/dist/rules/plugin-commented-out-code-source-scanner.d.ts +8 -0
- package/dist/rules/plugin-commented-out-code-source-scanner.d.ts.map +1 -0
- package/dist/rules/plugin-commented-out-code-source-scanner.js +228 -0
- package/dist/rules/plugin-commented-out-code-source-scanner.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ Result: native Oxlint rules + The Thracian custom rules + optional Effect policy
|
|
|
23
23
|
|
|
24
24
|
- Strict by default: every rule is an error, not a suggestion.
|
|
25
25
|
- Agent-ready TypeScript: catches debug artifacts, unsafe escape hatches, silent catches, mutation, deep nesting, and oversized code.
|
|
26
|
-
- Effect-aware out of the box:
|
|
26
|
+
- Effect-aware out of the box: 83 always-on Effect rules target lazy values, generator style, Promise boundaries, typed errors, Schema boundaries, resources, tests, and common hallucinated APIs.
|
|
27
27
|
- Strict Effect mode when you want it: opt in to 60 additional project-boundary rules for entrypoints, adapters, config layers, domain modules, service wiring, external calls, and test ownership.
|
|
28
28
|
- Importable config: consumers import one package instead of copying linter files around a codebase.
|
|
29
29
|
|
|
@@ -109,12 +109,24 @@ The default bucket checks for patterns such as:
|
|
|
109
109
|
- floating `Effect` values that are never run, yielded, returned, or composed
|
|
110
110
|
- missing `yield*` inside `Effect.gen`
|
|
111
111
|
- nested `flatMap` code that should be `Effect.gen`
|
|
112
|
+
- `flatMap` callbacks that only lift one value with `Effect.succeed` and should use `Effect.map`
|
|
113
|
+
- eager recursive Effect construction that needs `Effect.suspend`; ordinary `flatMap`, `map`, `gen`, and `Effect.fn` continuations remain deferred, while v4 `*Eager` continuations are analyzed as immediate execution
|
|
112
114
|
- string errors and untagged error channels
|
|
113
|
-
- unsafe Promise, throw, runtime, and sync boundaries
|
|
115
|
+
- unsafe Promise, throw, runtime, and sync boundaries, including provably invoked local helpers, executed defaults, and eager collection callbacks
|
|
114
116
|
- Schema decode misuse at external data boundaries
|
|
115
117
|
- resource, fiber, stream, concurrency, and test determinism mistakes
|
|
116
118
|
- deprecated or invented Effect APIs
|
|
117
119
|
|
|
120
|
+
`effect-prefer-map-over-flatMap-succeed` is import-aware and AST-backed. It recognizes root `Effect` imports, `effect/Effect` namespace imports, and aliased named `flatMap`/`succeed` imports across pipeable, `pipe`, data-first, and data-last composition. It reports only non-async, non-generator arrow or function callbacks whose entire body directly returns a single-argument `Effect.succeed` call, and it ignores unrelated lookalikes and lexically shadowed bindings.
|
|
121
|
+
|
|
122
|
+
`effect-prefer-succeed-for-stable-values` reports `Effect.sync` thunks that only return a literal or an already-initialized `const` from the same execution context. It is import-aware and deliberately preserves calls, getters, allocations, mutable or imported bindings, throwing blocks, and reads whose initialization does not dominate Effect construction. The rule was mined from these concrete Effect codebases:
|
|
123
|
+
|
|
124
|
+
- Effect `packages/effect/src/unstable/rpc/RpcServer.ts` ([source](https://github.com/Effect-TS/effect/blob/ed2afb3424e90f3b98a6e4740f4e12cc08e3cc11/packages/effect/src/unstable/rpc/RpcServer.ts#L1107))
|
|
125
|
+
- Effect `packages/effect/test/unstable/cli/LogLevel.test.ts` ([source](https://github.com/Effect-TS/effect/blob/ed2afb3424e90f3b98a6e4740f4e12cc08e3cc11/packages/effect/test/unstable/cli/LogLevel.test.ts#L37))
|
|
126
|
+
- Effect Solutions `tests/08-testing.test.ts` ([source](https://github.com/kitlangton/effect-solutions/blob/09f82e6c5c928e7232cd32daf04d7c6a830b63f7/tests/08-testing.test.ts#L181))
|
|
127
|
+
- Effect Native `packages/bun-test/test/index.test.ts` ([source](https://github.com/effect-native/effect-native/blob/df994cc632071e80ab78280400573586258aed3e/packages/bun-test/test/index.test.ts#L49))
|
|
128
|
+
- T3 Code `packages/effect-codex-app-server/src/_internal/shared.ts` ([source](https://github.com/pingdotgg/t3code/blob/b41e89eba9cd232cc3257b400fc30972a9b53438/packages/effect-codex-app-server/src/_internal/shared.ts#L48))
|
|
129
|
+
|
|
118
130
|
Disable the Effect bucket for non-Effect projects:
|
|
119
131
|
|
|
120
132
|
```js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicit-return-types.d.ts","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explicit-return-types.d.ts","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"AAghBA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,KAAG,MACY,CAAC"}
|
|
@@ -222,6 +222,10 @@ const replacementForFunction = (source, path, propertyNames) => pipe(Option.all(
|
|
|
222
222
|
start: Option.fromNullable(insertionPoint(source, path.value)),
|
|
223
223
|
}), Option.map(({ returnType, start }) => ({ end: start, start, text: returnType })), Option.getOrUndefined);
|
|
224
224
|
const appendReplacementForFunction = (source, propertyNames, replacements, path) => {
|
|
225
|
+
if ((path.value.type === 'ClassMethod' || path.value.type === 'ClassPrivateMethod') &&
|
|
226
|
+
path.value.kind === 'constructor') {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
225
229
|
pipe(Option.fromNullable(replacementForFunction(source, path, propertyNames)), Option.map((replacement) => replacements.push(replacement)));
|
|
226
230
|
};
|
|
227
231
|
const collectClassMethodReplacements = (root, collect) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicit-return-types.js","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"explicit-return-types.js","sourceRoot":"","sources":["../../src/codemods/explicit-return-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-guidance.d.ts","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"diagnostic-guidance.d.ts","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAwGD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,KAAG,MACsB,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKtF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAKpF,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAK1E,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MASpD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,GACzC,MAAM,QAAQ,GAAG,UAAU,EAC3B,MAAM,MAAM,EACZ,aAAa,MAAM,KAClB,MAQC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,YAAY,SAAS,MAAM,EAAE,KAC5B,MAkBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAK7D,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAO,MAKhD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,MAKC,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAKvE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAYxC,CAAC;AAEL,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,UAAU,4BAA4B,KAAG,MAoBlF,CAAC;AA+BL;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,KAAG,MAG3E,CAAC"}
|
|
@@ -64,6 +64,10 @@ const ruleGuidanceByName = [
|
|
|
64
64
|
keys: ['env', 'Clock', 'Random'],
|
|
65
65
|
},
|
|
66
66
|
];
|
|
67
|
+
const normalizedRuleGuidanceByName = pipe(ruleGuidanceByName, Array.map((guidance) => ({
|
|
68
|
+
...guidance,
|
|
69
|
+
keys: pipe(guidance.keys, Array.map((key) => key.toLowerCase())),
|
|
70
|
+
})));
|
|
67
71
|
const fallbackEffectGuidance = {
|
|
68
72
|
example: `const program = ${effectName}.gen(function* () {\n return yield* operation.pipe(${effectName}.withSpan("operation"))\n})`,
|
|
69
73
|
fix: 'Rewrite the code to make the Effect boundary, error channel, resource lifetime, and execution point explicit.',
|
|
@@ -226,8 +230,28 @@ export const functionDocDiagnosticMessage = (context) => diagnosticMessage({
|
|
|
226
230
|
The prose must be specific; generated placeholder text does not satisfy the rule.`,
|
|
227
231
|
summary: 'Missing public declaration JSDoc.',
|
|
228
232
|
});
|
|
229
|
-
const
|
|
230
|
-
const
|
|
233
|
+
const matchesNormalizedRuleGuidance = (normalizedRuleName, guidance) => {
|
|
234
|
+
const { keys } = guidance;
|
|
235
|
+
const keyCount = keys.length;
|
|
236
|
+
for (let keyIndex = 0; keyIndex < keyCount; keyIndex += 1) {
|
|
237
|
+
const key = keys[keyIndex];
|
|
238
|
+
if (key !== undefined && normalizedRuleName.includes(key)) {
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return false;
|
|
243
|
+
};
|
|
244
|
+
const effectGuidance = (ruleName) => {
|
|
245
|
+
const normalizedRuleName = ruleName.toLowerCase();
|
|
246
|
+
const guidanceCount = normalizedRuleGuidanceByName.length;
|
|
247
|
+
for (let guidanceIndex = 0; guidanceIndex < guidanceCount; guidanceIndex += 1) {
|
|
248
|
+
const guidance = normalizedRuleGuidanceByName[guidanceIndex];
|
|
249
|
+
if (guidance !== undefined && matchesNormalizedRuleGuidance(normalizedRuleName, guidance)) {
|
|
250
|
+
return guidance;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return fallbackEffectGuidance;
|
|
254
|
+
};
|
|
231
255
|
/**
|
|
232
256
|
* Internal helper exported for package-local composition.
|
|
233
257
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-guidance.js","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostic-guidance.js","sourceRoot":"","sources":["../../src/rules/diagnostic-guidance.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAoBpD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,aAAa,IAAI,UAAU,CAAC;AAC3E,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,MAAM,kBAAkB,GAAG;IACzB;QACE,OAAO,EACL,0GAA0G;QAC5G,GAAG,EAAE,iFAAiF;QACtF,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB;IACD;QACE,OAAO,EACL,yCAAyC,UAAU,uBAAuB;YAC1E,YAAY,UAAU,mCAAmC;QAC3D,GAAG,EAAE,qFAAqF;QAC1F,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;KAC5B;IACD;QACE,OAAO,EACL,sIAAsI;QACxI,GAAG,EAAE,8FAA8F;QACnG,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC;KAClC;IACD;QACE,OAAO,EACL,2BAA2B,UAAU,4CAA4C;YACjF,uCAAuC;QACzC,GAAG,EAAE,4FAA4F;QACjG,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC;KACvC;IACD;QACE,OAAO,EAAE,wBAAwB,UAAU,+CAA+C;QAC1F,GAAG,EAAE,2EAA2E;QAChF,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;KACxB;IACD;QACE,OAAO,EACL,0EAA0E;YAC1E,UAAU,UAAU,6BAA6B;QACnD,GAAG,EAAE,kGAAkG;QACvG,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;KACjC;IACD;QACE,OAAO,EACL,wBAAwB,UAAU,0BAA0B;YAC5D,KAAK,UAAU,uEAAuE;YACtF,KAAK,UAAU,kCAAkC;QACnD,GAAG,EAAE,sFAAsF;QAC3F,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;KACnC;IACD;QACE,OAAO,EACL,UAAU,UAAU,YAAY;YAChC,KAAK,UAAU,sDAAsD;YACrE,OAAO,UAAU,iCAAiC;QACpD,GAAG,EAAE,6FAA6F;QAClG,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;KAC1C;IACD;QACE,OAAO,EAAE,mBAAmB,UAAU,4EAA4E;QAClH,GAAG,EAAE,+FAA+F;QACpG,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;KAClC;IACD;QACE,OAAO,EACL,8FAA8F;QAChG,GAAG,EAAE,gFAAgF;QACrF,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;KACjC;CACgC,CAAC;AAEpC,MAAM,4BAA4B,GAAG,IAAI,CACvC,kBAAkB,EAClB,KAAK,CAAC,GAAG,CACP,CAAC,QAAQ,EAA0B,EAAE,CAAC,CAAC;IACrC,GAAG,QAAQ;IACX,IAAI,EAAE,IAAI,CACR,QAAQ,CAAC,IAAI,EACb,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAC9C;CACF,CAAC,CACH,CACF,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,OAAO,EAAE,mBAAmB,UAAU,uDAAuD,UAAU,6BAA6B;IACpI,GAAG,EAAE,+GAA+G;CAClE,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAU,EAAE,CAClE,GAAG,KAAK,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,eAAe,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,WAAmB,EAAU,EAAE,CACjG,iBAAiB,CAAC;IAChB,OAAO,EAAE,GAAG,IAAI,IAAI,WAAW,EAAE;IACjC,GAAG,EAAE,WAAW,IAAI,SAAS,WAAW,kDAAkD;IAC1F,OAAO,EAAE,GAAG,IAAI,sDAAsD;CACvE,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,WAAmB,EAAU,EAAE,CAC/F,iBAAiB,CAAC;IAChB,OAAO,EAAE,GAAG,IAAI,IAAI,WAAW,KAAK;IACpC,GAAG,EAAE,UAAU,IAAI,KAAK,IAAI,SAAS,WAAW,8BAA8B;IAC9E,OAAO,EAAE,wCAAwC;CAClD,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAU,EAAE,CACrF,iBAAiB,CAAC;IAChB,OAAO,EAAE,SAAS,WAAW,mBAAmB,IAAI,CAAC,WAAW,EAAE,UAAU;IAC5E,GAAG,EAAE,WAAW,IAAI,SAAS,WAAW,iCAAiC,IAAI,CAAC,WAAW,EAAE,oCAAoC;IAC/H,OAAO,EAAE,wEAAwE;CAClF,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC/D,iBAAiB,CAAC;IAChB,OAAO,EAAE,WAAW,IAAI,CACtB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAU,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAC1D,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,CAAC,EAAE,CAAC,CACnC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;IAC1B,GAAG,EAAE,mBAAmB,IAAI,qEAAqE;IACjG,OAAO,EAAE,gDAAgD;CAC1D,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,IAA2B,EAC3B,IAAY,EACZ,WAAmB,EACX,EAAE,CACV,iBAAiB,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAW,EAAE,CAAC,WAAW,WAAW,aAAa,CAAC,EACvE,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,CAAC,WAAW,WAAW,UAAU,CAAC,CAC7D;IACD,GAAG,EAAE,kBAAkB,IAAI,KAAK,IAAI,SAAS,WAAW,mCAAmC;IAC3F,OAAO,EAAE,qDAAqD;CAC/D,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,IAAY,EACZ,WAAmB,EACnB,UAA6B,EACrB,EAAE;IACV,MAAM,MAAM,GAAG,IAAI,CACjB,UAAU,EACV,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAU,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,EACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACjB,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CACtD,KAAK,CAAC,IAAI,CACR,CAAC,MAAM,EAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAC/B,GAAW,EAAE,CAAC,GAAG,CAClB,EACD,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,CAAC,EAAE,CAAC,CAC/B,CAAC;IACF,OAAO,iBAAiB,CAAC;QACvB,OAAO,EAAE,SAAS,WAAW,UAAU;QACvC,GAAG,EAAE,WAAW,IAAI,SAAS,WAAW,mCAAmC,YAAY,IAAI,MAAM,uBAAuB;QACxH,OAAO,EAAE,wEAAwE;KAClF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAiB,EAAU,EAAE,CACxE,iBAAiB,CAAC;IAChB,OAAO,EAAE,2BAA2B,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,2BAA2B,CAAC,GAAG;IACvF,GAAG,EAAE,uCAAuC,SAAS,sDAAsD;IAC3G,OAAO,EAAE,6EAA6E;CACvF,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAW,EAAE,CAC3D,iBAAiB,CAAC;IAChB,OAAO,EAAE,sCAAsC;IAC/C,GAAG,EAAE,2FAA2F;IAChG,OAAO,EAAE,mDAAmD;CAC7D,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAAa,EACb,QAAgB,EAChB,UAAkB,EACV,EAAE,CACV,iBAAiB,CAAC;IAChB,OAAO,EAAE,0CAA0C;IACnD,GAAG,EAAE,0EAA0E,UAAU,IAAI;IAC7F,OAAO,EAAE,qBAAqB,KAAK,2BAA2B,QAAQ,GAAG;CAC1E,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE,CAClF,iBAAiB,CAAC;IAChB,OAAO,EAAE,2DAA2D;IACpE,GAAG,EAAE,4FAA4F;IACjG,OAAO,EAAE,QAAQ,IAAI,QAAQ,MAAM,4CAA4C;CAChF,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAW,EAAE,CACnD,iBAAiB,CAAC;IAChB,OAAO,EAAE;;iFAEoE;IAC7E,GAAG,EAAE;;;;;oGAK2F;IAChG,OAAO,EAAE,8BAA8B;CACxC,CAAC,CAAC;AAOL,MAAM,qBAAqB,GAAG,CAAC,OAAiD,EAAU,EAAE;IAC1F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,0CAA0C,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,MAAM,CAAC;AAC1F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAAsC,EAAU,EAAE,CAC7F,iBAAiB,CAAC;IAChB,OAAO,EAAE;;;;;;IAMT;IACA,GAAG,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC;;;;;;;;;kFASwC;IAC9E,OAAO,EAAE,mCAAmC;CAC7C,CAAC,CAAC;AAEL,MAAM,6BAA6B,GAAG,CACpC,kBAA0B,EAC1B,QAAgC,EACvB,EAAE;IACX,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAA4C,EAAE;IACpF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAC1D,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,aAAa,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,IAAI,6BAA6B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1F,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAU,EAAE;IACnF,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,iBAAiB,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds canonical source text and its compact original-position map.
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export interface CanonicalizedEffectSource {
|
|
7
|
+
readonly indexMap: readonly number[];
|
|
8
|
+
readonly source: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Canonicalizes identifiers with a compact source-position map.
|
|
12
|
+
*
|
|
13
|
+
* @param source - Original TypeScript source.
|
|
14
|
+
* @param aliases - Local-to-canonical identifier bindings.
|
|
15
|
+
* @param aliasPattern - Pattern capturing the prefix and local identifier.
|
|
16
|
+
* @returns Canonical source and its flat positional map.
|
|
17
|
+
*/
|
|
18
|
+
export declare const buildCanonicalizedEffectSource: (source: string, aliases: ReadonlyMap<string, string>, aliasPattern: RegExp) => CanonicalizedEffectSource;
|
|
19
|
+
/**
|
|
20
|
+
* Maps a canonical source offset back to the original source.
|
|
21
|
+
*
|
|
22
|
+
* @param canonicalized - Canonical source and compact positional map.
|
|
23
|
+
* @param canonicalIndex - Offset measured in canonical source text.
|
|
24
|
+
* @returns Corresponding offset in original source text.
|
|
25
|
+
*/
|
|
26
|
+
export declare const canonicalIndexToOriginal: (canonicalized: CanonicalizedEffectSource, canonicalIndex: number) => number;
|
|
27
|
+
//# sourceMappingURL=effect-alias-canonicalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-alias-canonicalization.d.ts","sourceRoot":"","sources":["../../src/rules/effect-alias-canonicalization.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAkBD;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,cAAc,MAAM,KACnB,yBAQF,CAAC;AAcF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,eAAe,yBAAyB,EACxC,gBAAgB,MAAM,KACrB,MAcF,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------- */
|
|
2
|
+
/* Compact canonical-to-original source mapping for Effect aliases. */
|
|
3
|
+
/* -------------------------------------------------------------------------- */
|
|
4
|
+
const INDEX_MAP_STRIDE = 5;
|
|
5
|
+
const ORIGINAL_START_OFFSET = 1;
|
|
6
|
+
const CANONICAL_LENGTH_OFFSET = 2;
|
|
7
|
+
const ORIGINAL_LENGTH_OFFSET = 3;
|
|
8
|
+
const SHIFT_OFFSET = 4;
|
|
9
|
+
const replaceCanonicalAlias = (aliases, indexMap, prefix, localName, originalOffset) => {
|
|
10
|
+
const canonicalName = aliases.get(localName) ?? localName;
|
|
11
|
+
const previousShift = indexMap.at(-1) ?? 0;
|
|
12
|
+
const originalStart = originalOffset + prefix.length;
|
|
13
|
+
const canonicalStart = originalStart + previousShift;
|
|
14
|
+
const nextShift = previousShift + canonicalName.length - localName.length;
|
|
15
|
+
indexMap.push(canonicalStart, originalStart, canonicalName.length, localName.length, nextShift);
|
|
16
|
+
return `${prefix}${canonicalName}`;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Canonicalizes identifiers with a compact source-position map.
|
|
20
|
+
*
|
|
21
|
+
* @param source - Original TypeScript source.
|
|
22
|
+
* @param aliases - Local-to-canonical identifier bindings.
|
|
23
|
+
* @param aliasPattern - Pattern capturing the prefix and local identifier.
|
|
24
|
+
* @returns Canonical source and its flat positional map.
|
|
25
|
+
*/
|
|
26
|
+
export const buildCanonicalizedEffectSource = (source, aliases, aliasPattern) => {
|
|
27
|
+
const indexMap = [];
|
|
28
|
+
const canonicalSource = source.replace(aliasPattern, (_match, prefix, localName, offset) => replaceCanonicalAlias(aliases, indexMap, prefix, localName, offset));
|
|
29
|
+
return { indexMap, source: canonicalSource };
|
|
30
|
+
};
|
|
31
|
+
const mappedAliasIndex = (indexMap, mapIndex, canonicalIndex) => {
|
|
32
|
+
const canonicalStart = indexMap[mapIndex];
|
|
33
|
+
const originalStart = indexMap[mapIndex + ORIGINAL_START_OFFSET];
|
|
34
|
+
const originalLength = indexMap[mapIndex + ORIGINAL_LENGTH_OFFSET];
|
|
35
|
+
const offset = Math.min(canonicalIndex - canonicalStart, Math.max(0, originalLength - 1));
|
|
36
|
+
return originalStart + offset;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Maps a canonical source offset back to the original source.
|
|
40
|
+
*
|
|
41
|
+
* @param canonicalized - Canonical source and compact positional map.
|
|
42
|
+
* @param canonicalIndex - Offset measured in canonical source text.
|
|
43
|
+
* @returns Corresponding offset in original source text.
|
|
44
|
+
*/
|
|
45
|
+
export const canonicalIndexToOriginal = (canonicalized, canonicalIndex) => {
|
|
46
|
+
let shift = 0;
|
|
47
|
+
for (let mapIndex = 0; mapIndex < canonicalized.indexMap.length; mapIndex += INDEX_MAP_STRIDE) {
|
|
48
|
+
const canonicalStart = canonicalized.indexMap[mapIndex];
|
|
49
|
+
const canonicalLength = canonicalized.indexMap[mapIndex + CANONICAL_LENGTH_OFFSET];
|
|
50
|
+
if (canonicalIndex < canonicalStart) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
if (canonicalIndex < canonicalStart + canonicalLength) {
|
|
54
|
+
return mappedAliasIndex(canonicalized.indexMap, mapIndex, canonicalIndex);
|
|
55
|
+
}
|
|
56
|
+
shift = canonicalized.indexMap[mapIndex + SHIFT_OFFSET];
|
|
57
|
+
}
|
|
58
|
+
return canonicalIndex - shift;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=effect-alias-canonicalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-alias-canonicalization.js","sourceRoot":"","sources":["../../src/rules/effect-alias-canonicalization.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,CAAC,CAAC;AAYvB,MAAM,qBAAqB,GAAG,CAC5B,OAAoC,EACpC,QAAkB,EAClB,MAAc,EACd,SAAiB,EACjB,cAAsB,EACd,EAAE;IACV,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAC1D,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;IACrD,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC1E,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChG,OAAO,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,MAAc,EACd,OAAoC,EACpC,YAAoB,EACO,EAAE;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CACpC,YAAY,EACZ,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB,EAAE,MAAc,EAAU,EAAE,CAC5E,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CACtE,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,QAA2B,EAC3B,QAAgB,EAChB,cAAsB,EACd,EAAE;IACV,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,GAAG,sBAAsB,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,aAAa,GAAG,MAAM,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,aAAwC,EACxC,cAAsB,EACd,EAAE;IACV,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QAC9F,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,uBAAuB,CAAC,CAAC;QACnF,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;YACpC,MAAM;QACR,CAAC;QACD,IAAI,cAAc,GAAG,cAAc,GAAG,eAAe,EAAE,CAAC;YACtD,OAAO,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,cAAc,GAAG,KAAK,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ASTNode } from './effect-ast';
|
|
2
|
+
export type { ASTNode } from './effect-ast';
|
|
3
|
+
export type ScopeStack = readonly ReadonlySet<string>[];
|
|
4
|
+
/**
|
|
5
|
+
* Extend an AST traversal scope stack with bindings introduced by a node.
|
|
6
|
+
*
|
|
7
|
+
* @param scopes - Lexical scopes inherited from the node's ancestors.
|
|
8
|
+
* @param node - The node whose lexical and hoisted bindings should be collected.
|
|
9
|
+
* @returns The inherited stack or a stack extended with the node's bindings.
|
|
10
|
+
* @throws Does not throw.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const withNodeScope: (scopes: ScopeStack, node: ASTNode) => ScopeStack;
|
|
14
|
+
/**
|
|
15
|
+
* Select the lexical scopes visible while traversing one child edge.
|
|
16
|
+
*
|
|
17
|
+
* @param nodeScopes - Scopes visible in the parent node's ordinary children.
|
|
18
|
+
* @param parent - The parent AST node.
|
|
19
|
+
* @param childKey - The parent property containing the child.
|
|
20
|
+
* @returns The scope stack that is semantically visible along the child edge.
|
|
21
|
+
* @throws Does not throw.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare const scopesForChild: (nodeScopes: ScopeStack, parent: ASTNode, childKey: string) => ScopeStack;
|
|
25
|
+
//# sourceMappingURL=effect-ast-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-ast-scope.d.ts","sourceRoot":"","sources":["../../src/rules/effect-ast-scope.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AA4RxD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,UAAU,EAAE,MAAM,OAAO,KAAG,UAKjE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,UAAU,EACtB,QAAQ,OAAO,EACf,UAAU,MAAM,KACf,UAYF,CAAC"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------- */
|
|
2
|
+
/* Lexical binding analysis shared by AST-backed Effect lint rules. */
|
|
3
|
+
/* -------------------------------------------------------------------------- */
|
|
4
|
+
import { asNode, childNode, childNodes, identifierName } from './effect-ast.js';
|
|
5
|
+
const addWrappedPatternBindings = (bindings, pattern) => {
|
|
6
|
+
if (pattern.type === 'AssignmentPattern') {
|
|
7
|
+
addPatternBindings(bindings, childNode(pattern, 'left'));
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
if (pattern.type === 'RestElement') {
|
|
11
|
+
addPatternBindings(bindings, childNode(pattern, 'argument'));
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
if (pattern.type === 'TSParameterProperty') {
|
|
15
|
+
addPatternBindings(bindings, childNode(pattern, 'parameter'));
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
};
|
|
20
|
+
const addDestructuredPatternBindings = (bindings, pattern) => {
|
|
21
|
+
let key = 'elements';
|
|
22
|
+
if (pattern.type === 'ObjectPattern') {
|
|
23
|
+
key = 'properties';
|
|
24
|
+
}
|
|
25
|
+
for (const property of childNodes(pattern, key)) {
|
|
26
|
+
if (property.type === 'Property') {
|
|
27
|
+
addPatternBindings(bindings, childNode(property, 'value'));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
addPatternBindings(bindings, property);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const addPatternBindings = (bindings, pattern) => {
|
|
35
|
+
if (!pattern) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const name = identifierName(pattern);
|
|
39
|
+
if (name) {
|
|
40
|
+
bindings.add(name);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (addWrappedPatternBindings(bindings, pattern)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
addDestructuredPatternBindings(bindings, pattern);
|
|
47
|
+
};
|
|
48
|
+
const declarationNode = (statement) => {
|
|
49
|
+
if (statement.type === 'ExportNamedDeclaration' ||
|
|
50
|
+
statement.type === 'ExportDefaultDeclaration') {
|
|
51
|
+
return childNode(statement, 'declaration') ?? statement;
|
|
52
|
+
}
|
|
53
|
+
return statement;
|
|
54
|
+
};
|
|
55
|
+
const addVariableBindings = (bindings, declaration) => {
|
|
56
|
+
for (const declarator of childNodes(declaration, 'declarations')) {
|
|
57
|
+
addPatternBindings(bindings, childNode(declarator, 'id'));
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const namespaceRoot = (name) => {
|
|
61
|
+
if (name?.type === 'TSQualifiedName') {
|
|
62
|
+
return namespaceRoot(childNode(name, 'left'));
|
|
63
|
+
}
|
|
64
|
+
return name;
|
|
65
|
+
};
|
|
66
|
+
const addNamespacePathBindings = (bindings, name) => {
|
|
67
|
+
if (name?.type === 'TSQualifiedName') {
|
|
68
|
+
addNamespacePathBindings(bindings, childNode(name, 'left'));
|
|
69
|
+
addNamespacePathBindings(bindings, childNode(name, 'right'));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
addPatternBindings(bindings, name);
|
|
73
|
+
};
|
|
74
|
+
const addLexicalVariableBindings = (bindings, declaration) => {
|
|
75
|
+
if (declaration.type !== 'VariableDeclaration') {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (Reflect.get(declaration, 'kind') !== 'var') {
|
|
79
|
+
addVariableBindings(bindings, declaration);
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
};
|
|
83
|
+
const addTypeScriptLexicalBindings = (bindings, declaration) => {
|
|
84
|
+
if (declaration.type === 'TSImportEqualsDeclaration') {
|
|
85
|
+
if (Reflect.get(declaration, 'importKind') !== 'type') {
|
|
86
|
+
addPatternBindings(bindings, childNode(declaration, 'id'));
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
if (declaration.type === 'TSModuleDeclaration') {
|
|
91
|
+
addPatternBindings(bindings, namespaceRoot(childNode(declaration, 'id')));
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
};
|
|
96
|
+
const addLexicalDeclarationBindings = (bindings, statement) => {
|
|
97
|
+
const declaration = declarationNode(statement);
|
|
98
|
+
if (addLexicalVariableBindings(bindings, declaration)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (addTypeScriptLexicalBindings(bindings, declaration)) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (declaration.type === 'ClassDeclaration' ||
|
|
105
|
+
declaration.type === 'FunctionDeclaration' ||
|
|
106
|
+
declaration.type === 'TSEnumDeclaration') {
|
|
107
|
+
addPatternBindings(bindings, childNode(declaration, 'id'));
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const addDirectLexicalBindings = (bindings, statements) => {
|
|
111
|
+
for (const statement of statements) {
|
|
112
|
+
addLexicalDeclarationBindings(bindings, statement);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const functionNodeTypes = new Set([
|
|
116
|
+
'ArrowFunctionExpression',
|
|
117
|
+
'FunctionDeclaration',
|
|
118
|
+
'FunctionExpression',
|
|
119
|
+
]);
|
|
120
|
+
const isFunctionNode = (node) => functionNodeTypes.has(node.type);
|
|
121
|
+
const bindingNodeTypes = new Set([
|
|
122
|
+
...functionNodeTypes,
|
|
123
|
+
'BlockStatement',
|
|
124
|
+
'CatchClause',
|
|
125
|
+
'ClassExpression',
|
|
126
|
+
'ForInStatement',
|
|
127
|
+
'ForOfStatement',
|
|
128
|
+
'ForStatement',
|
|
129
|
+
'Program',
|
|
130
|
+
'StaticBlock',
|
|
131
|
+
'TSModuleBlock',
|
|
132
|
+
'TSModuleDeclaration',
|
|
133
|
+
]);
|
|
134
|
+
const canIntroduceBindings = (node) => bindingNodeTypes.has(node.type);
|
|
135
|
+
const isClassNode = (node) => node.type === 'ClassDeclaration' || node.type === 'ClassExpression';
|
|
136
|
+
const isVarTraversalBoundary = (node) => isFunctionNode(node) ||
|
|
137
|
+
isClassNode(node) ||
|
|
138
|
+
node.type === 'StaticBlock' ||
|
|
139
|
+
node.type === 'TSModuleBlock' ||
|
|
140
|
+
node.type === 'TSModuleDeclaration';
|
|
141
|
+
const addVarDeclarationBindings = (bindings, node) => {
|
|
142
|
+
if (node.type === 'VariableDeclaration' && Reflect.get(node, 'kind') === 'var') {
|
|
143
|
+
addVariableBindings(bindings, node);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const addHoistedVarValues = (bindings, values, seen) => {
|
|
147
|
+
for (const value of values) {
|
|
148
|
+
addHoistedVarBindings(bindings, value, seen);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const addHoistedVarNode = (bindings, node, seen) => {
|
|
152
|
+
seen.add(node);
|
|
153
|
+
if (isVarTraversalBoundary(node)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
addVarDeclarationBindings(bindings, node);
|
|
157
|
+
for (const [key, value] of Object.entries(node)) {
|
|
158
|
+
if (key !== 'parent') {
|
|
159
|
+
addHoistedVarBindings(bindings, value, seen);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const addHoistedVarBindings = (bindings, value, seen) => {
|
|
164
|
+
if (Array.isArray(value)) {
|
|
165
|
+
addHoistedVarValues(bindings, value, seen);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const node = asNode(value);
|
|
169
|
+
if (!node || seen.has(node)) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
addHoistedVarNode(bindings, node, seen);
|
|
173
|
+
};
|
|
174
|
+
const addHoistedVarsFromChildren = (bindings, node) => {
|
|
175
|
+
const seen = new WeakSet();
|
|
176
|
+
for (const [key, value] of Object.entries(node)) {
|
|
177
|
+
if (key !== 'parent') {
|
|
178
|
+
addHoistedVarBindings(bindings, value, seen);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
const addLoopBindings = (bindings, declaration) => {
|
|
183
|
+
if (declaration?.type === 'VariableDeclaration' && Reflect.get(declaration, 'kind') !== 'var') {
|
|
184
|
+
addVariableBindings(bindings, declaration);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
const addSwitchBindings = (bindings, node) => {
|
|
188
|
+
for (const switchCase of childNodes(node, 'cases')) {
|
|
189
|
+
addDirectLexicalBindings(bindings, childNodes(switchCase, 'consequent'));
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const addFunctionHeaderBindings = (bindings, node) => {
|
|
193
|
+
addPatternBindings(bindings, childNode(node, 'id'));
|
|
194
|
+
for (const parameter of childNodes(node, 'params')) {
|
|
195
|
+
addPatternBindings(bindings, parameter);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
const addFunctionBodyVarBindings = (bindings, node) => {
|
|
199
|
+
const body = childNode(node, 'body');
|
|
200
|
+
if (body) {
|
|
201
|
+
addHoistedVarsFromChildren(bindings, body);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
const addContainerBindings = (bindings, node) => {
|
|
205
|
+
if (node.type === 'Program' || node.type === 'StaticBlock' || node.type === 'TSModuleBlock') {
|
|
206
|
+
addDirectLexicalBindings(bindings, childNodes(node, 'body'));
|
|
207
|
+
addHoistedVarsFromChildren(bindings, node);
|
|
208
|
+
}
|
|
209
|
+
else if (isFunctionNode(node)) {
|
|
210
|
+
addFunctionHeaderBindings(bindings, node);
|
|
211
|
+
}
|
|
212
|
+
else if (node.type === 'BlockStatement') {
|
|
213
|
+
addDirectLexicalBindings(bindings, childNodes(node, 'body'));
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
const addControlFlowBindings = (bindings, node) => {
|
|
217
|
+
if (node.type === 'ForStatement') {
|
|
218
|
+
addLoopBindings(bindings, childNode(node, 'init'));
|
|
219
|
+
}
|
|
220
|
+
else if (node.type === 'ForInStatement' || node.type === 'ForOfStatement') {
|
|
221
|
+
addLoopBindings(bindings, childNode(node, 'left'));
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
const addNamedBindings = (bindings, node) => {
|
|
225
|
+
if (node.type === 'CatchClause') {
|
|
226
|
+
addPatternBindings(bindings, childNode(node, 'param'));
|
|
227
|
+
}
|
|
228
|
+
else if (node.type === 'ClassExpression') {
|
|
229
|
+
addPatternBindings(bindings, childNode(node, 'id'));
|
|
230
|
+
}
|
|
231
|
+
else if (node.type === 'TSModuleDeclaration') {
|
|
232
|
+
addNamespacePathBindings(bindings, childNode(node, 'id'));
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
const nodeBindings = (node) => {
|
|
236
|
+
const bindings = new Set();
|
|
237
|
+
addContainerBindings(bindings, node);
|
|
238
|
+
addControlFlowBindings(bindings, node);
|
|
239
|
+
addNamedBindings(bindings, node);
|
|
240
|
+
return bindings;
|
|
241
|
+
};
|
|
242
|
+
const extendScopes = (scopes, bindings) => {
|
|
243
|
+
if (bindings.size === 0) {
|
|
244
|
+
return scopes;
|
|
245
|
+
}
|
|
246
|
+
return [...scopes, bindings];
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Extend an AST traversal scope stack with bindings introduced by a node.
|
|
250
|
+
*
|
|
251
|
+
* @param scopes - Lexical scopes inherited from the node's ancestors.
|
|
252
|
+
* @param node - The node whose lexical and hoisted bindings should be collected.
|
|
253
|
+
* @returns The inherited stack or a stack extended with the node's bindings.
|
|
254
|
+
* @throws Does not throw.
|
|
255
|
+
* @internal
|
|
256
|
+
*/
|
|
257
|
+
export const withNodeScope = (scopes, node) => {
|
|
258
|
+
if (!canIntroduceBindings(node)) {
|
|
259
|
+
return scopes;
|
|
260
|
+
}
|
|
261
|
+
return extendScopes(scopes, nodeBindings(node));
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Select the lexical scopes visible while traversing one child edge.
|
|
265
|
+
*
|
|
266
|
+
* @param nodeScopes - Scopes visible in the parent node's ordinary children.
|
|
267
|
+
* @param parent - The parent AST node.
|
|
268
|
+
* @param childKey - The parent property containing the child.
|
|
269
|
+
* @returns The scope stack that is semantically visible along the child edge.
|
|
270
|
+
* @throws Does not throw.
|
|
271
|
+
* @internal
|
|
272
|
+
*/
|
|
273
|
+
export const scopesForChild = (nodeScopes, parent, childKey) => {
|
|
274
|
+
if (isFunctionNode(parent) && childKey === 'body') {
|
|
275
|
+
const bindings = new Set();
|
|
276
|
+
addFunctionBodyVarBindings(bindings, parent);
|
|
277
|
+
return extendScopes(nodeScopes, bindings);
|
|
278
|
+
}
|
|
279
|
+
if (parent.type === 'SwitchStatement' && childKey === 'cases') {
|
|
280
|
+
const bindings = new Set();
|
|
281
|
+
addSwitchBindings(bindings, parent);
|
|
282
|
+
return extendScopes(nodeScopes, bindings);
|
|
283
|
+
}
|
|
284
|
+
return nodeScopes;
|
|
285
|
+
};
|
|
286
|
+
//# sourceMappingURL=effect-ast-scope.js.map
|