eslint-plugin-typefest 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1814 -0
- package/LICENSE +21 -0
- package/README.md +282 -0
- package/dist/_internal/array-like-expression.d.ts +67 -0
- package/dist/_internal/array-like-expression.d.ts.map +1 -0
- package/dist/_internal/array-like-expression.js +179 -0
- package/dist/_internal/array-like-expression.js.map +1 -0
- package/dist/_internal/array-method-call-rule.d.ts +34 -0
- package/dist/_internal/array-method-call-rule.d.ts.map +1 -0
- package/dist/_internal/array-method-call-rule.js +49 -0
- package/dist/_internal/array-method-call-rule.js.map +1 -0
- package/dist/_internal/ast-node.d.ts +23 -0
- package/dist/_internal/ast-node.d.ts.map +1 -0
- package/dist/_internal/ast-node.js +38 -0
- package/dist/_internal/ast-node.js.map +1 -0
- package/dist/_internal/bounded-cache.d.ts +42 -0
- package/dist/_internal/bounded-cache.d.ts.map +1 -0
- package/dist/_internal/bounded-cache.js +57 -0
- package/dist/_internal/bounded-cache.js.map +1 -0
- package/dist/_internal/constrained-type-at-location.d.ts +31 -0
- package/dist/_internal/constrained-type-at-location.d.ts.map +1 -0
- package/dist/_internal/constrained-type-at-location.js +61 -0
- package/dist/_internal/constrained-type-at-location.js.map +1 -0
- package/dist/_internal/cycle-safe-linked-search.d.ts +48 -0
- package/dist/_internal/cycle-safe-linked-search.d.ts.map +1 -0
- package/dist/_internal/cycle-safe-linked-search.js +70 -0
- package/dist/_internal/cycle-safe-linked-search.js.map +1 -0
- package/dist/_internal/expression-boolean-memoizer.d.ts +17 -0
- package/dist/_internal/expression-boolean-memoizer.d.ts.map +1 -0
- package/dist/_internal/expression-boolean-memoizer.js +23 -0
- package/dist/_internal/expression-boolean-memoizer.js.map +1 -0
- package/dist/_internal/filter-callback.d.ts +56 -0
- package/dist/_internal/filter-callback.d.ts.map +1 -0
- package/dist/_internal/filter-callback.js +100 -0
- package/dist/_internal/filter-callback.js.map +1 -0
- package/dist/_internal/global-identifier-member-call.d.ts +23 -0
- package/dist/_internal/global-identifier-member-call.d.ts.map +1 -0
- package/dist/_internal/global-identifier-member-call.js +25 -0
- package/dist/_internal/global-identifier-member-call.js.map +1 -0
- package/dist/_internal/global-member-call-rule.d.ts +36 -0
- package/dist/_internal/global-member-call-rule.d.ts.map +1 -0
- package/dist/_internal/global-member-call-rule.js +52 -0
- package/dist/_internal/global-member-call-rule.js.map +1 -0
- package/dist/_internal/import-analysis.d.ts +45 -0
- package/dist/_internal/import-analysis.d.ts.map +1 -0
- package/dist/_internal/import-analysis.js +113 -0
- package/dist/_internal/import-analysis.js.map +1 -0
- package/dist/_internal/import-aware-fixes.d.ts +31 -0
- package/dist/_internal/import-aware-fixes.d.ts.map +1 -0
- package/dist/_internal/import-aware-fixes.js +38 -0
- package/dist/_internal/import-aware-fixes.js.map +1 -0
- package/dist/_internal/import-fix-coordinator.d.ts +43 -0
- package/dist/_internal/import-fix-coordinator.d.ts.map +1 -0
- package/dist/_internal/import-fix-coordinator.js +71 -0
- package/dist/_internal/import-fix-coordinator.js.map +1 -0
- package/dist/_internal/import-insertion.d.ts +27 -0
- package/dist/_internal/import-insertion.d.ts.map +1 -0
- package/dist/_internal/import-insertion.js +295 -0
- package/dist/_internal/import-insertion.js.map +1 -0
- package/dist/_internal/imported-type-aliases.d.ts +140 -0
- package/dist/_internal/imported-type-aliases.d.ts.map +1 -0
- package/dist/_internal/imported-type-aliases.js +316 -0
- package/dist/_internal/imported-type-aliases.js.map +1 -0
- package/dist/_internal/imported-value-symbols.d.ts +157 -0
- package/dist/_internal/imported-value-symbols.d.ts.map +1 -0
- package/dist/_internal/imported-value-symbols.js +478 -0
- package/dist/_internal/imported-value-symbols.js.map +1 -0
- package/dist/_internal/member-call.d.ts +53 -0
- package/dist/_internal/member-call.d.ts.map +1 -0
- package/dist/_internal/member-call.js +48 -0
- package/dist/_internal/member-call.js.map +1 -0
- package/dist/_internal/module-source.d.ts +11 -0
- package/dist/_internal/module-source.d.ts.map +1 -0
- package/dist/_internal/module-source.js +11 -0
- package/dist/_internal/module-source.js.map +1 -0
- package/dist/_internal/normalize-expression-text.d.ts +26 -0
- package/dist/_internal/normalize-expression-text.d.ts.map +1 -0
- package/dist/_internal/normalize-expression-text.js +182 -0
- package/dist/_internal/normalize-expression-text.js.map +1 -0
- package/dist/_internal/nullish-comparison.d.ts +43 -0
- package/dist/_internal/nullish-comparison.d.ts.map +1 -0
- package/dist/_internal/nullish-comparison.js +147 -0
- package/dist/_internal/nullish-comparison.js.map +1 -0
- package/dist/_internal/plugin-settings.d.ts +32 -0
- package/dist/_internal/plugin-settings.d.ts.map +1 -0
- package/dist/_internal/plugin-settings.js +118 -0
- package/dist/_internal/plugin-settings.js.map +1 -0
- package/dist/_internal/report-adapter.d.ts +25 -0
- package/dist/_internal/report-adapter.d.ts.map +1 -0
- package/dist/_internal/report-adapter.js +36 -0
- package/dist/_internal/report-adapter.js.map +1 -0
- package/dist/_internal/rule-catalog.d.ts +51 -0
- package/dist/_internal/rule-catalog.d.ts.map +1 -0
- package/dist/_internal/rule-catalog.js +162 -0
- package/dist/_internal/rule-catalog.js.map +1 -0
- package/dist/_internal/rule-docs-metadata.d.ts +37 -0
- package/dist/_internal/rule-docs-metadata.d.ts.map +1 -0
- package/dist/_internal/rule-docs-metadata.js +192 -0
- package/dist/_internal/rule-docs-metadata.js.map +1 -0
- package/dist/_internal/rule-docs-url.d.ts +15 -0
- package/dist/_internal/rule-docs-url.d.ts.map +1 -0
- package/dist/_internal/rule-docs-url.js +15 -0
- package/dist/_internal/rule-docs-url.js.map +1 -0
- package/dist/_internal/rule-reporting.d.ts +71 -0
- package/dist/_internal/rule-reporting.d.ts.map +1 -0
- package/dist/_internal/rule-reporting.js +89 -0
- package/dist/_internal/rule-reporting.js.map +1 -0
- package/dist/_internal/rules-registry.d.ts +14 -0
- package/dist/_internal/rules-registry.d.ts.map +1 -0
- package/dist/_internal/rules-registry.js +165 -0
- package/dist/_internal/rules-registry.js.map +1 -0
- package/dist/_internal/safe-type-operation.d.ts +89 -0
- package/dist/_internal/safe-type-operation.d.ts.map +1 -0
- package/dist/_internal/safe-type-operation.js +147 -0
- package/dist/_internal/safe-type-operation.js.map +1 -0
- package/dist/_internal/scope-resolution.d.ts +20 -0
- package/dist/_internal/scope-resolution.d.ts.map +1 -0
- package/dist/_internal/scope-resolution.js +21 -0
- package/dist/_internal/scope-resolution.js.map +1 -0
- package/dist/_internal/scope-variable.d.ts +17 -0
- package/dist/_internal/scope-variable.d.ts.map +1 -0
- package/dist/_internal/scope-variable.js +30 -0
- package/dist/_internal/scope-variable.js.map +1 -0
- package/dist/_internal/set-membership.d.ts +6 -0
- package/dist/_internal/set-membership.d.ts.map +1 -0
- package/dist/_internal/set-membership.js +11 -0
- package/dist/_internal/set-membership.js.map +1 -0
- package/dist/_internal/text-character.d.ts +18 -0
- package/dist/_internal/text-character.d.ts.map +1 -0
- package/dist/_internal/text-character.js +69 -0
- package/dist/_internal/text-character.js.map +1 -0
- package/dist/_internal/throw-consequent.d.ts +22 -0
- package/dist/_internal/throw-consequent.d.ts.map +1 -0
- package/dist/_internal/throw-consequent.js +48 -0
- package/dist/_internal/throw-consequent.js.map +1 -0
- package/dist/_internal/throw-type-error.d.ts +19 -0
- package/dist/_internal/throw-type-error.d.ts.map +1 -0
- package/dist/_internal/throw-type-error.js +24 -0
- package/dist/_internal/throw-type-error.js.map +1 -0
- package/dist/_internal/type-checker-compat.d.ts +80 -0
- package/dist/_internal/type-checker-compat.d.ts.map +1 -0
- package/dist/_internal/type-checker-compat.js +104 -0
- package/dist/_internal/type-checker-compat.js.map +1 -0
- package/dist/_internal/type-predicate-autofix-safety.d.ts +20 -0
- package/dist/_internal/type-predicate-autofix-safety.d.ts.map +1 -0
- package/dist/_internal/type-predicate-autofix-safety.js +58 -0
- package/dist/_internal/type-predicate-autofix-safety.js.map +1 -0
- package/dist/_internal/type-reference-node.d.ts +19 -0
- package/dist/_internal/type-reference-node.d.ts.map +1 -0
- package/dist/_internal/type-reference-node.js +14 -0
- package/dist/_internal/type-reference-node.js.map +1 -0
- package/dist/_internal/typed-member-call-rule.d.ts +35 -0
- package/dist/_internal/typed-member-call-rule.d.ts.map +1 -0
- package/dist/_internal/typed-member-call-rule.js +50 -0
- package/dist/_internal/typed-member-call-rule.js.map +1 -0
- package/dist/_internal/typed-path-telemetry.d.ts +58 -0
- package/dist/_internal/typed-path-telemetry.d.ts.map +1 -0
- package/dist/_internal/typed-path-telemetry.js +114 -0
- package/dist/_internal/typed-path-telemetry.js.map +1 -0
- package/dist/_internal/typed-rule.d.ts +142 -0
- package/dist/_internal/typed-rule.d.ts.map +1 -0
- package/dist/_internal/typed-rule.js +197 -0
- package/dist/_internal/typed-rule.js.map +1 -0
- package/dist/_internal/typefest-config-references.d.ts +45 -0
- package/dist/_internal/typefest-config-references.d.ts.map +1 -0
- package/dist/_internal/typefest-config-references.js +98 -0
- package/dist/_internal/typefest-config-references.js.map +1 -0
- package/dist/_internal/typescript-eslint-node-autofix.d.ts +32 -0
- package/dist/_internal/typescript-eslint-node-autofix.d.ts.map +1 -0
- package/dist/_internal/typescript-eslint-node-autofix.js +495 -0
- package/dist/_internal/typescript-eslint-node-autofix.js.map +1 -0
- package/dist/_internal/value-rewrite-autofix-safety.d.ts +33 -0
- package/dist/_internal/value-rewrite-autofix-safety.d.ts.map +1 -0
- package/dist/_internal/value-rewrite-autofix-safety.js +103 -0
- package/dist/_internal/value-rewrite-autofix-safety.js.map +1 -0
- package/dist/plugin.cjs +9718 -0
- package/dist/plugin.cjs.map +7 -0
- package/dist/plugin.d.cts +76 -0
- package/dist/plugin.d.ts +76 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +206 -0
- package/dist/plugin.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-at.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-at.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-at.js +66 -0
- package/dist/rules/prefer-ts-extras-array-at.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-concat.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-concat.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-concat.js +66 -0
- package/dist/rules/prefer-ts-extras-array-concat.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find-last-index.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-find-last-index.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find-last-index.js +63 -0
- package/dist/rules/prefer-ts-extras-array-find-last-index.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find-last.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-find-last.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find-last.js +66 -0
- package/dist/rules/prefer-ts-extras-array-find-last.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-find.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-find.js +63 -0
- package/dist/rules/prefer-ts-extras-array-find.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-first.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-first.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-first.js +107 -0
- package/dist/rules/prefer-ts-extras-array-first.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-includes.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-includes.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-includes.js +89 -0
- package/dist/rules/prefer-ts-extras-array-includes.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-join.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-array-join.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-join.js +66 -0
- package/dist/rules/prefer-ts-extras-array-join.js.map +1 -0
- package/dist/rules/prefer-ts-extras-array-last.d.ts +8 -0
- package/dist/rules/prefer-ts-extras-array-last.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-array-last.js +132 -0
- package/dist/rules/prefer-ts-extras-array-last.js.map +1 -0
- package/dist/rules/prefer-ts-extras-as-writable.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-as-writable.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-as-writable.js +110 -0
- package/dist/rules/prefer-ts-extras-as-writable.js.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-defined.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-assert-defined.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-defined.js +182 -0
- package/dist/rules/prefer-ts-extras-assert-defined.js.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-error.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-assert-error.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-error.js +152 -0
- package/dist/rules/prefer-ts-extras-assert-error.js.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-present.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-assert-present.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-assert-present.js +266 -0
- package/dist/rules/prefer-ts-extras-assert-present.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-defined-filter.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-defined-filter.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-defined-filter.js +90 -0
- package/dist/rules/prefer-ts-extras-is-defined-filter.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-defined.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-defined.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-defined.js +179 -0
- package/dist/rules/prefer-ts-extras-is-defined.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-empty.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-empty.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-empty.js +116 -0
- package/dist/rules/prefer-ts-extras-is-empty.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-equal-type.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-equal-type.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-equal-type.js +138 -0
- package/dist/rules/prefer-ts-extras-is-equal-type.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-finite.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-finite.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-finite.js +61 -0
- package/dist/rules/prefer-ts-extras-is-finite.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-infinite.d.ts +8 -0
- package/dist/rules/prefer-ts-extras-is-infinite.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-infinite.js +178 -0
- package/dist/rules/prefer-ts-extras-is-infinite.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-integer.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-integer.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-integer.js +61 -0
- package/dist/rules/prefer-ts-extras-is-integer.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-present-filter.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-present-filter.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-present-filter.js +216 -0
- package/dist/rules/prefer-ts-extras-is-present-filter.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-present.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-present.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-present.js +217 -0
- package/dist/rules/prefer-ts-extras-is-present.js.map +1 -0
- package/dist/rules/prefer-ts-extras-is-safe-integer.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-is-safe-integer.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-is-safe-integer.js +61 -0
- package/dist/rules/prefer-ts-extras-is-safe-integer.js.map +1 -0
- package/dist/rules/prefer-ts-extras-key-in.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-key-in.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-key-in.js +124 -0
- package/dist/rules/prefer-ts-extras-key-in.js.map +1 -0
- package/dist/rules/prefer-ts-extras-not.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-not.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-not.js +136 -0
- package/dist/rules/prefer-ts-extras-not.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-entries.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-entries.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-entries.js +59 -0
- package/dist/rules/prefer-ts-extras-object-entries.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-from-entries.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-from-entries.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-from-entries.js +59 -0
- package/dist/rules/prefer-ts-extras-object-from-entries.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-has-in.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-has-in.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-has-in.js +79 -0
- package/dist/rules/prefer-ts-extras-object-has-in.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-has-own.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-has-own.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-has-own.js +82 -0
- package/dist/rules/prefer-ts-extras-object-has-own.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-keys.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-keys.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-keys.js +59 -0
- package/dist/rules/prefer-ts-extras-object-keys.js.map +1 -0
- package/dist/rules/prefer-ts-extras-object-values.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-object-values.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-values.js +59 -0
- package/dist/rules/prefer-ts-extras-object-values.js.map +1 -0
- package/dist/rules/prefer-ts-extras-safe-cast-to.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-safe-cast-to.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-safe-cast-to.js +159 -0
- package/dist/rules/prefer-ts-extras-safe-cast-to.js.map +1 -0
- package/dist/rules/prefer-ts-extras-set-has.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-set-has.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-set-has.js +304 -0
- package/dist/rules/prefer-ts-extras-set-has.js.map +1 -0
- package/dist/rules/prefer-ts-extras-string-split.d.ts +13 -0
- package/dist/rules/prefer-ts-extras-string-split.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-string-split.js +166 -0
- package/dist/rules/prefer-ts-extras-string-split.js.map +1 -0
- package/dist/rules/prefer-type-fest-abstract-constructor.d.ts +13 -0
- package/dist/rules/prefer-type-fest-abstract-constructor.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-abstract-constructor.js +65 -0
- package/dist/rules/prefer-type-fest-abstract-constructor.js.map +1 -0
- package/dist/rules/prefer-type-fest-arrayable.d.ts +13 -0
- package/dist/rules/prefer-type-fest-arrayable.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-arrayable.js +123 -0
- package/dist/rules/prefer-type-fest-arrayable.js.map +1 -0
- package/dist/rules/prefer-type-fest-async-return-type.d.ts +13 -0
- package/dist/rules/prefer-type-fest-async-return-type.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-async-return-type.js +92 -0
- package/dist/rules/prefer-type-fest-async-return-type.js.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-pick.d.ts +13 -0
- package/dist/rules/prefer-type-fest-conditional-pick.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-pick.js +74 -0
- package/dist/rules/prefer-type-fest-conditional-pick.js.map +1 -0
- package/dist/rules/prefer-type-fest-constructor.d.ts +13 -0
- package/dist/rules/prefer-type-fest-constructor.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-constructor.js +67 -0
- package/dist/rules/prefer-type-fest-constructor.js.map +1 -0
- package/dist/rules/prefer-type-fest-except.d.ts +13 -0
- package/dist/rules/prefer-type-fest-except.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-except.js +105 -0
- package/dist/rules/prefer-type-fest-except.js.map +1 -0
- package/dist/rules/prefer-type-fest-if.d.ts +13 -0
- package/dist/rules/prefer-type-fest-if.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-if.js +79 -0
- package/dist/rules/prefer-type-fest-if.js.map +1 -0
- package/dist/rules/prefer-type-fest-iterable-element.d.ts +13 -0
- package/dist/rules/prefer-type-fest-iterable-element.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-iterable-element.js +76 -0
- package/dist/rules/prefer-type-fest-iterable-element.js.map +1 -0
- package/dist/rules/prefer-type-fest-json-array.d.ts +13 -0
- package/dist/rules/prefer-type-fest-json-array.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-json-array.js +164 -0
- package/dist/rules/prefer-type-fest-json-array.js.map +1 -0
- package/dist/rules/prefer-type-fest-json-object.d.ts +13 -0
- package/dist/rules/prefer-type-fest-json-object.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-json-object.js +102 -0
- package/dist/rules/prefer-type-fest-json-object.js.map +1 -0
- package/dist/rules/prefer-type-fest-json-primitive.d.ts +13 -0
- package/dist/rules/prefer-type-fest-json-primitive.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-json-primitive.js +112 -0
- package/dist/rules/prefer-type-fest-json-primitive.js.map +1 -0
- package/dist/rules/prefer-type-fest-json-value.d.ts +13 -0
- package/dist/rules/prefer-type-fest-json-value.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-json-value.js +109 -0
- package/dist/rules/prefer-type-fest-json-value.js.map +1 -0
- package/dist/rules/prefer-type-fest-keys-of-union.d.ts +13 -0
- package/dist/rules/prefer-type-fest-keys-of-union.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-keys-of-union.js +74 -0
- package/dist/rules/prefer-type-fest-keys-of-union.js.map +1 -0
- package/dist/rules/prefer-type-fest-literal-union.d.ts +13 -0
- package/dist/rules/prefer-type-fest-literal-union.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-literal-union.js +181 -0
- package/dist/rules/prefer-type-fest-literal-union.js.map +1 -0
- package/dist/rules/prefer-type-fest-merge-exclusive.d.ts +13 -0
- package/dist/rules/prefer-type-fest-merge-exclusive.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-merge-exclusive.js +63 -0
- package/dist/rules/prefer-type-fest-merge-exclusive.js.map +1 -0
- package/dist/rules/prefer-type-fest-non-empty-tuple.d.ts +13 -0
- package/dist/rules/prefer-type-fest-non-empty-tuple.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-non-empty-tuple.js +133 -0
- package/dist/rules/prefer-type-fest-non-empty-tuple.js.map +1 -0
- package/dist/rules/prefer-type-fest-omit-index-signature.d.ts +13 -0
- package/dist/rules/prefer-type-fest-omit-index-signature.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-omit-index-signature.js +74 -0
- package/dist/rules/prefer-type-fest-omit-index-signature.js.map +1 -0
- package/dist/rules/prefer-type-fest-partial-deep.d.ts +13 -0
- package/dist/rules/prefer-type-fest-partial-deep.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-partial-deep.js +63 -0
- package/dist/rules/prefer-type-fest-partial-deep.js.map +1 -0
- package/dist/rules/prefer-type-fest-primitive.d.ts +13 -0
- package/dist/rules/prefer-type-fest-primitive.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-primitive.js +102 -0
- package/dist/rules/prefer-type-fest-primitive.js.map +1 -0
- package/dist/rules/prefer-type-fest-promisable.d.ts +13 -0
- package/dist/rules/prefer-type-fest-promisable.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-promisable.js +167 -0
- package/dist/rules/prefer-type-fest-promisable.js.map +1 -0
- package/dist/rules/prefer-type-fest-readonly-deep.d.ts +13 -0
- package/dist/rules/prefer-type-fest-readonly-deep.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-readonly-deep.js +63 -0
- package/dist/rules/prefer-type-fest-readonly-deep.js.map +1 -0
- package/dist/rules/prefer-type-fest-require-all-or-none.d.ts +13 -0
- package/dist/rules/prefer-type-fest-require-all-or-none.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-require-all-or-none.js +75 -0
- package/dist/rules/prefer-type-fest-require-all-or-none.js.map +1 -0
- package/dist/rules/prefer-type-fest-require-at-least-one.d.ts +13 -0
- package/dist/rules/prefer-type-fest-require-at-least-one.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-require-at-least-one.js +74 -0
- package/dist/rules/prefer-type-fest-require-at-least-one.js.map +1 -0
- package/dist/rules/prefer-type-fest-require-exactly-one.d.ts +13 -0
- package/dist/rules/prefer-type-fest-require-exactly-one.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-require-exactly-one.js +102 -0
- package/dist/rules/prefer-type-fest-require-exactly-one.js.map +1 -0
- package/dist/rules/prefer-type-fest-require-one-or-none.d.ts +13 -0
- package/dist/rules/prefer-type-fest-require-one-or-none.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-require-one-or-none.js +74 -0
- package/dist/rules/prefer-type-fest-require-one-or-none.js.map +1 -0
- package/dist/rules/prefer-type-fest-required-deep.d.ts +13 -0
- package/dist/rules/prefer-type-fest-required-deep.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-required-deep.js +63 -0
- package/dist/rules/prefer-type-fest-required-deep.js.map +1 -0
- package/dist/rules/prefer-type-fest-schema.d.ts +13 -0
- package/dist/rules/prefer-type-fest-schema.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-schema.js +74 -0
- package/dist/rules/prefer-type-fest-schema.js.map +1 -0
- package/dist/rules/prefer-type-fest-set-non-nullable.d.ts +13 -0
- package/dist/rules/prefer-type-fest-set-non-nullable.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-set-non-nullable.js +74 -0
- package/dist/rules/prefer-type-fest-set-non-nullable.js.map +1 -0
- package/dist/rules/prefer-type-fest-set-optional.d.ts +13 -0
- package/dist/rules/prefer-type-fest-set-optional.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-set-optional.js +74 -0
- package/dist/rules/prefer-type-fest-set-optional.js.map +1 -0
- package/dist/rules/prefer-type-fest-set-readonly.d.ts +13 -0
- package/dist/rules/prefer-type-fest-set-readonly.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-set-readonly.js +74 -0
- package/dist/rules/prefer-type-fest-set-readonly.js.map +1 -0
- package/dist/rules/prefer-type-fest-set-required.d.ts +13 -0
- package/dist/rules/prefer-type-fest-set-required.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-set-required.js +74 -0
- package/dist/rules/prefer-type-fest-set-required.js.map +1 -0
- package/dist/rules/prefer-type-fest-simplify.d.ts +13 -0
- package/dist/rules/prefer-type-fest-simplify.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-simplify.js +75 -0
- package/dist/rules/prefer-type-fest-simplify.js.map +1 -0
- package/dist/rules/prefer-type-fest-tagged-brands.d.ts +13 -0
- package/dist/rules/prefer-type-fest-tagged-brands.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-tagged-brands.js +174 -0
- package/dist/rules/prefer-type-fest-tagged-brands.js.map +1 -0
- package/dist/rules/prefer-type-fest-tuple-of.d.ts +14 -0
- package/dist/rules/prefer-type-fest-tuple-of.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-tuple-of.js +132 -0
- package/dist/rules/prefer-type-fest-tuple-of.js.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-array.d.ts +13 -0
- package/dist/rules/prefer-type-fest-unknown-array.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-array.js +111 -0
- package/dist/rules/prefer-type-fest-unknown-array.js.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-map.d.ts +13 -0
- package/dist/rules/prefer-type-fest-unknown-map.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-map.js +82 -0
- package/dist/rules/prefer-type-fest-unknown-map.js.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-record.d.ts +13 -0
- package/dist/rules/prefer-type-fest-unknown-record.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-record.js +77 -0
- package/dist/rules/prefer-type-fest-unknown-record.js.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-set.d.ts +13 -0
- package/dist/rules/prefer-type-fest-unknown-set.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-unknown-set.js +81 -0
- package/dist/rules/prefer-type-fest-unknown-set.js.map +1 -0
- package/dist/rules/prefer-type-fest-unwrap-tagged.d.ts +13 -0
- package/dist/rules/prefer-type-fest-unwrap-tagged.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-unwrap-tagged.js +74 -0
- package/dist/rules/prefer-type-fest-unwrap-tagged.js.map +1 -0
- package/dist/rules/prefer-type-fest-value-of.d.ts +13 -0
- package/dist/rules/prefer-type-fest-value-of.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-value-of.js +74 -0
- package/dist/rules/prefer-type-fest-value-of.js.map +1 -0
- package/dist/rules/prefer-type-fest-writable-deep.d.ts +13 -0
- package/dist/rules/prefer-type-fest-writable-deep.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-writable-deep.js +64 -0
- package/dist/rules/prefer-type-fest-writable-deep.js.map +1 -0
- package/dist/rules/prefer-type-fest-writable.d.ts +13 -0
- package/dist/rules/prefer-type-fest-writable.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-writable.js +129 -0
- package/dist/rules/prefer-type-fest-writable.js.map +1 -0
- package/docs/rules/getting-started.md +74 -0
- package/docs/rules/guides/adoption-checklist.md +37 -0
- package/docs/rules/guides/preset-selection-strategy.md +87 -0
- package/docs/rules/guides/rollout-and-fix-safety.md +42 -0
- package/docs/rules/guides/snapshot-testing.md +121 -0
- package/docs/rules/guides/type-aware-linting-readiness.md +105 -0
- package/docs/rules/overview.md +49 -0
- package/docs/rules/prefer-ts-extras-array-at.md +132 -0
- package/docs/rules/prefer-ts-extras-array-concat.md +138 -0
- package/docs/rules/prefer-ts-extras-array-find-last-index.md +108 -0
- package/docs/rules/prefer-ts-extras-array-find-last.md +108 -0
- package/docs/rules/prefer-ts-extras-array-find.md +108 -0
- package/docs/rules/prefer-ts-extras-array-first.md +132 -0
- package/docs/rules/prefer-ts-extras-array-includes.md +135 -0
- package/docs/rules/prefer-ts-extras-array-join.md +132 -0
- package/docs/rules/prefer-ts-extras-array-last.md +132 -0
- package/docs/rules/prefer-ts-extras-as-writable.md +124 -0
- package/docs/rules/prefer-ts-extras-assert-defined.md +140 -0
- package/docs/rules/prefer-ts-extras-assert-error.md +147 -0
- package/docs/rules/prefer-ts-extras-assert-present.md +139 -0
- package/docs/rules/prefer-ts-extras-is-defined-filter.md +125 -0
- package/docs/rules/prefer-ts-extras-is-defined.md +147 -0
- package/docs/rules/prefer-ts-extras-is-empty.md +142 -0
- package/docs/rules/prefer-ts-extras-is-equal-type.md +144 -0
- package/docs/rules/prefer-ts-extras-is-finite.md +116 -0
- package/docs/rules/prefer-ts-extras-is-infinite.md +134 -0
- package/docs/rules/prefer-ts-extras-is-integer.md +116 -0
- package/docs/rules/prefer-ts-extras-is-present-filter.md +125 -0
- package/docs/rules/prefer-ts-extras-is-present.md +143 -0
- package/docs/rules/prefer-ts-extras-is-safe-integer.md +116 -0
- package/docs/rules/prefer-ts-extras-key-in.md +150 -0
- package/docs/rules/prefer-ts-extras-not.md +138 -0
- package/docs/rules/prefer-ts-extras-object-entries.md +130 -0
- package/docs/rules/prefer-ts-extras-object-from-entries.md +131 -0
- package/docs/rules/prefer-ts-extras-object-has-in.md +141 -0
- package/docs/rules/prefer-ts-extras-object-has-own.md +137 -0
- package/docs/rules/prefer-ts-extras-object-keys.md +127 -0
- package/docs/rules/prefer-ts-extras-object-values.md +128 -0
- package/docs/rules/prefer-ts-extras-safe-cast-to.md +130 -0
- package/docs/rules/prefer-ts-extras-set-has.md +203 -0
- package/docs/rules/prefer-ts-extras-string-split.md +133 -0
- package/docs/rules/prefer-type-fest-abstract-constructor.md +87 -0
- package/docs/rules/prefer-type-fest-arrayable.md +127 -0
- package/docs/rules/prefer-type-fest-async-return-type.md +117 -0
- package/docs/rules/prefer-type-fest-conditional-pick.md +140 -0
- package/docs/rules/prefer-type-fest-constructor.md +87 -0
- package/docs/rules/prefer-type-fest-except.md +231 -0
- package/docs/rules/prefer-type-fest-if.md +217 -0
- package/docs/rules/prefer-type-fest-iterable-element.md +170 -0
- package/docs/rules/prefer-type-fest-json-array.md +107 -0
- package/docs/rules/prefer-type-fest-json-object.md +107 -0
- package/docs/rules/prefer-type-fest-json-primitive.md +105 -0
- package/docs/rules/prefer-type-fest-json-value.md +107 -0
- package/docs/rules/prefer-type-fest-keys-of-union.md +139 -0
- package/docs/rules/prefer-type-fest-literal-union.md +118 -0
- package/docs/rules/prefer-type-fest-merge-exclusive.md +118 -0
- package/docs/rules/prefer-type-fest-non-empty-tuple.md +115 -0
- package/docs/rules/prefer-type-fest-omit-index-signature.md +196 -0
- package/docs/rules/prefer-type-fest-partial-deep.md +133 -0
- package/docs/rules/prefer-type-fest-primitive.md +106 -0
- package/docs/rules/prefer-type-fest-promisable.md +246 -0
- package/docs/rules/prefer-type-fest-readonly-deep.md +151 -0
- package/docs/rules/prefer-type-fest-require-all-or-none.md +149 -0
- package/docs/rules/prefer-type-fest-require-at-least-one.md +155 -0
- package/docs/rules/prefer-type-fest-require-exactly-one.md +240 -0
- package/docs/rules/prefer-type-fest-require-one-or-none.md +165 -0
- package/docs/rules/prefer-type-fest-required-deep.md +123 -0
- package/docs/rules/prefer-type-fest-schema.md +161 -0
- package/docs/rules/prefer-type-fest-set-non-nullable.md +145 -0
- package/docs/rules/prefer-type-fest-set-optional.md +133 -0
- package/docs/rules/prefer-type-fest-set-readonly.md +136 -0
- package/docs/rules/prefer-type-fest-set-required.md +140 -0
- package/docs/rules/prefer-type-fest-simplify.md +168 -0
- package/docs/rules/prefer-type-fest-tagged-brands.md +278 -0
- package/docs/rules/prefer-type-fest-tuple-of.md +250 -0
- package/docs/rules/prefer-type-fest-unknown-array.md +126 -0
- package/docs/rules/prefer-type-fest-unknown-map.md +123 -0
- package/docs/rules/prefer-type-fest-unknown-record.md +130 -0
- package/docs/rules/prefer-type-fest-unknown-set.md +123 -0
- package/docs/rules/prefer-type-fest-unwrap-tagged.md +133 -0
- package/docs/rules/prefer-type-fest-value-of.md +121 -0
- package/docs/rules/prefer-type-fest-writable-deep.md +113 -0
- package/docs/rules/prefer-type-fest-writable.md +139 -0
- package/docs/rules/presets/all.md +102 -0
- package/docs/rules/presets/index.md +124 -0
- package/docs/rules/presets/minimal.md +37 -0
- package/docs/rules/presets/recommended-type-checked.md +37 -0
- package/docs/rules/presets/recommended.md +116 -0
- package/docs/rules/presets/strict.md +98 -0
- package/docs/rules/presets/ts-extras-type-guards.md +45 -0
- package/docs/rules/presets/type-fest-types.md +68 -0
- package/package.json +574 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-like-expression.js","sourceRoot":"","sources":["../../src/_internal/array-like-expression.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,aAAa,EACb,kCAAkC,EAClC,iBAAiB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACH,0BAA0B,EAC1B,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAuC/E,MAAM,uBAAuB,GAAG,CAAC,EAC7B,aAAa,EACb,OAAO,EACP,eAAe,EACf,SAAS,EACT,cAAc,GAOhB,EAAW,EAAE;IACX,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAExD,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAE1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,kCAAkC,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;QAC7D,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IACI,+BAA+B,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,IAAI;QAChE,+BAA+B,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,IAAI,EAClE,CAAC;QACC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1B,MAAM,WAAW,GACb,cAAc,KAAK,OAAO;YACtB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,uBAAuB,CAAC;gBACpB,aAAa,EAAE,QAAQ;gBACvB,OAAO;gBACP,eAAe;gBACf,SAAS;gBACT,cAAc;aACjB,CAAC,CACL;YACH,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClC,uBAAuB,CAAC;gBACpB,aAAa,EAAE,QAAQ;gBACvB,OAAO;gBACP,eAAe;gBACf,SAAS;gBACT,cAAc;aACjB,CAAC,CACL,CAAC;QAEZ,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEhD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,IAAI,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtD,uBAAuB,CAAC;YACpB,aAAa,EAAE,QAAQ;YACvB,OAAO;YACP,eAAe;YACf,SAAS;YACT,cAAc;SACjB,CAAC,CACL,CAAC;QAEF,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEhD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,cAAc,GAAG,gCAAgC,CACnD,OAAO,EACP,aAAa,CAChB,CAAC;IACF,IACI,SAAS,CAAC,cAAc,CAAC;QACzB,cAAc,KAAK,aAAa;QAChC,uBAAuB,CAAC;YACpB,aAAa,EAAE,cAAc;YAC7B,OAAO;YACP,eAAe;YACf,SAAS;YACT,cAAc;SACjB,CAAC,EACJ,CAAC;QACC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACxE,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,uBAAuB,CAAC;YACxC,aAAa,EAAE,YAAY;YAC3B,OAAO;YACP,eAAe;YACf,SAAS;YACT,cAAc;SACjB,CAAC,CAAC;QAEH,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEhD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,OAAiC,EACjC,IAAuB,EACvB,iBAA0C,MAAM,EACzC,EAAE,CACT,uBAAuB,CAAC;IACpB,aAAa,EAAE,IAAI;IACnB,OAAO;IACP,eAAe,EAAE,IAAI,GAAG,EAA8B;IACtD,SAAS,EAAE,IAAI,GAAG,EAAqB;IACvC,cAAc;CACjB,CAAC,CAAC;AAEP,MAAM,qCAAqC,GAAG,CAC1C,UAAyC,EACtB,EAAE;IACrB,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IACI,UAAU,CAAC,IAAI,KAAK,gBAAgB;QACpC,UAAU,CAAC,IAAI,KAAK,qBAAqB;QACzC,UAAU,CAAC,IAAI,KAAK,uBAAuB,EAC7C,CAAC;QACC,OAAO,qCAAqC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAC/C,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,cAAc,GAAG,MAAM,GACmB,EAAE,EAAE;IAC9C,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE3E,OAAO,CAAC,UAAyC,EAAW,EAAE;QAC1D,MAAM,eAAe,GACjB,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAEtD,kCAAkC,CAAC;YAC/B,QAAQ,EAAE,iBAAiB;YAC3B,YAAY,EAAE,SAAS,CAAC,eAAe,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7B,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC7B,SAAS,EAAE,GAAG,EAAE;gBACZ,MAAM,cAAc,GAAG,wCAAwC,CAC3D,OAAO,EACP,UAAU,EACV,cAAc,EACd,8CAA8C,CACjD,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAED,OAAO,uBAAuB,CAAC;oBAC3B,aAAa,EAAE,cAAc;oBAC7B,OAAO;oBACP,eAAe,EAAE,4BAA4B;oBAC7C,SAAS,EAAE,IAAI,GAAG,EAAqB;oBACvC,cAAc;iBACjB,CAAC,CAAC;YACP,CAAC;YACD,MAAM,EAAE,oCAAoC;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CACzC,IAAyC,EAClC,EAAE;IACT,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared reporting helper for ts-extras array-method call replacement rules.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
6
|
+
import type { UnknownArray } from "type-fest";
|
|
7
|
+
import { type ImportedValueAliasMap } from "./imported-value-symbols.js";
|
|
8
|
+
/** Typed rule context shape for array-method rule listeners. */
|
|
9
|
+
type ArrayMethodRuleContext<MessageId extends string> = Readonly<TSESLint.RuleContext<MessageId, Readonly<UnknownArray>>>;
|
|
10
|
+
/** Direct named value imports collection type from shared import helper. */
|
|
11
|
+
type DirectNamedValueImports = ImportedValueAliasMap;
|
|
12
|
+
/**
|
|
13
|
+
* Match `<arrayExpr>.<method>(...)` and report a standardized ts-extras helper
|
|
14
|
+
* replacement when the receiver is array-like.
|
|
15
|
+
*/
|
|
16
|
+
export declare const reportTsExtrasArrayMethodCall: <MessageId extends string>({ canAutofix, context, importedName, imports, isArrayLikeExpression, memberName, messageId, node, reportSuggestion, suggestionMessageId, }: Readonly<{
|
|
17
|
+
canAutofix?: (node: Readonly<TSESTree.CallExpression>) => boolean;
|
|
18
|
+
context: ArrayMethodRuleContext<MessageId>;
|
|
19
|
+
importedName: string;
|
|
20
|
+
imports: DirectNamedValueImports;
|
|
21
|
+
isArrayLikeExpression: (expression: Readonly<TSESTree.Expression>) => boolean;
|
|
22
|
+
memberName: string;
|
|
23
|
+
messageId: MessageId;
|
|
24
|
+
node: Readonly<TSESTree.CallExpression>;
|
|
25
|
+
reportSuggestion?: (input: Readonly<{
|
|
26
|
+
fix: TSESLint.ReportFixFunction;
|
|
27
|
+
messageId: MessageId;
|
|
28
|
+
node: Readonly<TSESTree.CallExpression>;
|
|
29
|
+
suggestionMessageId: MessageId;
|
|
30
|
+
}>) => void;
|
|
31
|
+
suggestionMessageId?: MessageId;
|
|
32
|
+
}>) => void;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=array-method-call-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-method-call-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/array-method-call-rule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAEH,KAAK,qBAAqB,EAC7B,MAAM,6BAA6B,CAAC;AAQrC,gEAAgE;AAChE,KAAK,sBAAsB,CAAC,SAAS,SAAS,MAAM,IAAI,QAAQ,CAC5D,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAC1D,CAAC;AAEF,4EAA4E;AAC5E,KAAK,uBAAuB,GAAG,qBAAqB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,SAAS,SAAS,MAAM,EAAE,4IAWrE,QAAQ,CAAC;IACR,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;IAClE,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,uBAAuB,CAAC;IACjC,qBAAqB,EAAE,CACnB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KACxC,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,CACf,KAAK,EAAE,QAAQ,CAAC;QACZ,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACxC,mBAAmB,EAAE,SAAS,CAAC;KAClC,CAAC,KACD,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACnC,CAAC,KAAG,IA8CJ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createMethodToFunctionCallFix, } from "./imported-value-symbols.js";
|
|
2
|
+
import { getIdentifierPropertyMemberCall } from "./member-call.js";
|
|
3
|
+
import { TS_EXTRAS_MODULE_SOURCE } from "./module-source.js";
|
|
4
|
+
import { reportResolvedAutofixOrSuggestionOutcome, resolveAutofixOrSuggestionOutcome, } from "./rule-reporting.js";
|
|
5
|
+
/**
|
|
6
|
+
* Match `<arrayExpr>.<method>(...)` and report a standardized ts-extras helper
|
|
7
|
+
* replacement when the receiver is array-like.
|
|
8
|
+
*/
|
|
9
|
+
export const reportTsExtrasArrayMethodCall = ({ canAutofix, context, importedName, imports, isArrayLikeExpression, memberName, messageId, node, reportSuggestion, suggestionMessageId, }) => {
|
|
10
|
+
const memberCall = getIdentifierPropertyMemberCall({
|
|
11
|
+
memberName,
|
|
12
|
+
node,
|
|
13
|
+
});
|
|
14
|
+
if (memberCall === null) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!isArrayLikeExpression(memberCall.callee.object)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const shouldAutofix = canAutofix?.(node) ?? true;
|
|
21
|
+
const fix = createMethodToFunctionCallFix({
|
|
22
|
+
callNode: node,
|
|
23
|
+
context,
|
|
24
|
+
importedName,
|
|
25
|
+
imports,
|
|
26
|
+
sourceModuleName: TS_EXTRAS_MODULE_SOURCE,
|
|
27
|
+
});
|
|
28
|
+
const outcome = resolveAutofixOrSuggestionOutcome({
|
|
29
|
+
canAutofix: shouldAutofix,
|
|
30
|
+
fix,
|
|
31
|
+
});
|
|
32
|
+
if (outcome.kind === "suggestion" && reportSuggestion !== undefined) {
|
|
33
|
+
reportSuggestion({
|
|
34
|
+
fix: outcome.fix,
|
|
35
|
+
messageId,
|
|
36
|
+
node,
|
|
37
|
+
suggestionMessageId: suggestionMessageId ?? messageId,
|
|
38
|
+
});
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
reportResolvedAutofixOrSuggestionOutcome({
|
|
42
|
+
context,
|
|
43
|
+
messageId,
|
|
44
|
+
node,
|
|
45
|
+
outcome,
|
|
46
|
+
suggestionMessageId: suggestionMessageId ?? messageId,
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=array-method-call-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-method-call-rule.js","sourceRoot":"","sources":["../../src/_internal/array-method-call-rule.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,6BAA6B,GAEhC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACH,wCAAwC,EACxC,iCAAiC,GACpC,MAAM,qBAAqB,CAAC;AAU7B;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA2B,EACpE,UAAU,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACP,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,GAqBrB,EAAQ,EAAE;IACR,MAAM,UAAU,GAAG,+BAA+B,CAAC;QAC/C,UAAU;QACV,IAAI;KACP,CAAC,CAAC;IAEH,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO;IACX,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,6BAA6B,CAAC;QACtC,QAAQ,EAAE,IAAI;QACd,OAAO;QACP,YAAY;QACZ,OAAO;QACP,gBAAgB,EAAE,uBAAuB;KAC5C,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,iCAAiC,CAAC;QAC9C,UAAU,EAAE,aAAa;QACzB,GAAG;KACN,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAClE,gBAAgB,CAAC;YACb,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS;YACT,IAAI;YACJ,mBAAmB,EAAE,mBAAmB,IAAI,SAAS;SACxD,CAAC,CAAC;QAEH,OAAO;IACX,CAAC;IAED,wCAAwC,CAAC;QACrC,OAAO;QACP,SAAS;QACT,IAAI;QACJ,OAAO;QACP,mBAAmB,EAAE,mBAAmB,IAAI,SAAS;KACxD,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* AST parent-chain traversal helpers used by multiple rule utilities.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESTree } from "@typescript-eslint/utils";
|
|
6
|
+
/**
|
|
7
|
+
* Gets a node's parent reference when available.
|
|
8
|
+
*
|
|
9
|
+
* @param node - AST node whose parent should be read.
|
|
10
|
+
*
|
|
11
|
+
* @returns Parent node when present on parser output; otherwise `undefined`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getParentNode: (node: Readonly<TSESTree.Node>) => Readonly<TSESTree.Node> | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Walks the parent chain to locate the enclosing `Program` node.
|
|
16
|
+
*
|
|
17
|
+
* @param node - Starting AST node.
|
|
18
|
+
*
|
|
19
|
+
* @returns Nearest enclosing `Program` node; otherwise `null` when no program
|
|
20
|
+
* boundary can be reached (including cycle-guard termination).
|
|
21
|
+
*/
|
|
22
|
+
export declare const getProgramNode: (node: Readonly<TSESTree.Node>) => null | Readonly<TSESTree.Program>;
|
|
23
|
+
//# sourceMappingURL=ast-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-node.d.ts","sourceRoot":"","sources":["../../src/_internal/ast-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAoBzD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACtB,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SACgC,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACvB,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC9B,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAqBlC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { keyIn } from "ts-extras";
|
|
2
|
+
import { resolveFirstValueInLinkedStructure } from "./cycle-safe-linked-search.js";
|
|
3
|
+
/**
|
|
4
|
+
* Determine whether a node exposes an optional `parent` property.
|
|
5
|
+
*/
|
|
6
|
+
const hasOptionalParentProperty = (node) => keyIn(node, "parent");
|
|
7
|
+
/**
|
|
8
|
+
* Gets a node's parent reference when available.
|
|
9
|
+
*
|
|
10
|
+
* @param node - AST node whose parent should be read.
|
|
11
|
+
*
|
|
12
|
+
* @returns Parent node when present on parser output; otherwise `undefined`.
|
|
13
|
+
*/
|
|
14
|
+
export const getParentNode = (node) => hasOptionalParentProperty(node) ? node.parent : undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Walks the parent chain to locate the enclosing `Program` node.
|
|
17
|
+
*
|
|
18
|
+
* @param node - Starting AST node.
|
|
19
|
+
*
|
|
20
|
+
* @returns Nearest enclosing `Program` node; otherwise `null` when no program
|
|
21
|
+
* boundary can be reached (including cycle-guard termination).
|
|
22
|
+
*/
|
|
23
|
+
export const getProgramNode = (node) => {
|
|
24
|
+
const lookupResult = resolveFirstValueInLinkedStructure({
|
|
25
|
+
getNextNode: (currentNode) => getParentNode(currentNode) ?? null,
|
|
26
|
+
resolveValue: (currentNode) => currentNode.type === "Program"
|
|
27
|
+
? {
|
|
28
|
+
found: true,
|
|
29
|
+
value: currentNode,
|
|
30
|
+
}
|
|
31
|
+
: {
|
|
32
|
+
found: false,
|
|
33
|
+
},
|
|
34
|
+
startNode: node,
|
|
35
|
+
});
|
|
36
|
+
return lookupResult.found ? lookupResult.value : null;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=ast-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-node.js","sourceRoot":"","sources":["../../src/_internal/ast-node.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AASnF;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAC9B,IAA6B,EACC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,IAA6B,EACM,EAAE,CACrC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,IAA6B,EACI,EAAE;IACnC,MAAM,YAAY,GAAG,kCAAkC,CAGrD;QACE,WAAW,EAAE,CACT,WAAoC,EACN,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI;QACvE,YAAY,EAAE,CAAC,WAAoC,EAAE,EAAE,CACnD,WAAW,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,CAAC;gBACI,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,WAAW;aACrB;YACH,CAAC,CAAC;gBACI,KAAK,EAAE,KAAK;aACf;QACX,SAAS,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared bounded-cache helpers with lightweight LRU semantics for hot-path
|
|
4
|
+
* parser/type-analysis caches.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Result shape returned by bounded-cache lookups.
|
|
8
|
+
*/
|
|
9
|
+
export type BoundedCacheLookupResult<Value> = Readonly<{
|
|
10
|
+
found: false;
|
|
11
|
+
}> | Readonly<{
|
|
12
|
+
found: true;
|
|
13
|
+
value: Value;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Read a cache entry and mark it as most-recently-used.
|
|
17
|
+
*
|
|
18
|
+
* @param cache - Mutable cache map.
|
|
19
|
+
* @param key - Entry key.
|
|
20
|
+
*
|
|
21
|
+
* @returns Lookup result describing whether an entry was found. When found,
|
|
22
|
+
* includes the cached value (which can itself be `undefined`/`null`).
|
|
23
|
+
*/
|
|
24
|
+
export declare const getBoundedCacheValue: <Key, Value>(cache: Map<Key, Value>, key: Key) => BoundedCacheLookupResult<Value>;
|
|
25
|
+
/**
|
|
26
|
+
* Insert or update a cache entry and evict least-recently-used entries beyond
|
|
27
|
+
* the configured max size.
|
|
28
|
+
*
|
|
29
|
+
* @param options - Bounded-cache insertion options.
|
|
30
|
+
*
|
|
31
|
+
* - `cache`: Mutable cache map.
|
|
32
|
+
* - `key`: Entry key.
|
|
33
|
+
* - `maxEntries`: Maximum number of cache entries to retain.
|
|
34
|
+
* - `value`: Entry value.
|
|
35
|
+
*/
|
|
36
|
+
export declare const setBoundedCacheValue: <Key, Value>({ cache, key, maxEntries, value, }: Readonly<{
|
|
37
|
+
cache: Map<Key, Value>;
|
|
38
|
+
key: Key;
|
|
39
|
+
maxEntries: number;
|
|
40
|
+
value: Value;
|
|
41
|
+
}>) => void;
|
|
42
|
+
//# sourceMappingURL=bounded-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-cache.d.ts","sourceRoot":"","sources":["../../src/_internal/bounded-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,KAAK,IACpC,QAAQ,CAAC;IACL,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACL,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC,CAAC;AAET;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,KAAK,EAC3C,OAAO,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EACtB,KAAK,GAAG,KACT,wBAAwB,CAAC,KAAK,CAgBhC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,KAAK,EAAE,oCAK9C,QAAQ,CAAC;IACR,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC,KAAG,IAoBJ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared bounded-cache helpers with lightweight LRU semantics for hot-path
|
|
4
|
+
* parser/type-analysis caches.
|
|
5
|
+
*/
|
|
6
|
+
import { isSafeInteger } from "ts-extras";
|
|
7
|
+
/**
|
|
8
|
+
* Read a cache entry and mark it as most-recently-used.
|
|
9
|
+
*
|
|
10
|
+
* @param cache - Mutable cache map.
|
|
11
|
+
* @param key - Entry key.
|
|
12
|
+
*
|
|
13
|
+
* @returns Lookup result describing whether an entry was found. When found,
|
|
14
|
+
* includes the cached value (which can itself be `undefined`/`null`).
|
|
15
|
+
*/
|
|
16
|
+
export const getBoundedCacheValue = (cache, key) => {
|
|
17
|
+
if (!cache.has(key)) {
|
|
18
|
+
return {
|
|
19
|
+
found: false,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const value = cache.get(key);
|
|
23
|
+
cache.delete(key);
|
|
24
|
+
cache.set(key, value);
|
|
25
|
+
return {
|
|
26
|
+
found: true,
|
|
27
|
+
value,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Insert or update a cache entry and evict least-recently-used entries beyond
|
|
32
|
+
* the configured max size.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Bounded-cache insertion options.
|
|
35
|
+
*
|
|
36
|
+
* - `cache`: Mutable cache map.
|
|
37
|
+
* - `key`: Entry key.
|
|
38
|
+
* - `maxEntries`: Maximum number of cache entries to retain.
|
|
39
|
+
* - `value`: Entry value.
|
|
40
|
+
*/
|
|
41
|
+
export const setBoundedCacheValue = ({ cache, key, maxEntries, value, }) => {
|
|
42
|
+
if (!isSafeInteger(maxEntries) || maxEntries < 1) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (cache.has(key)) {
|
|
46
|
+
cache.delete(key);
|
|
47
|
+
}
|
|
48
|
+
cache.set(key, value);
|
|
49
|
+
while (cache.size > maxEntries) {
|
|
50
|
+
const oldestEntry = cache.keys().next();
|
|
51
|
+
if (oldestEntry.done === true) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
cache.delete(oldestEntry.value);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=bounded-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-cache.js","sourceRoot":"","sources":["../../src/_internal/bounded-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAc1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,KAAsB,EACtB,GAAQ,EACuB,EAAE;IACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO;YACH,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAU,CAAC;IAEtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEtB,OAAO;QACH,KAAK,EAAE,IAAI;QACX,KAAK;KACR,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAa,EAC7C,KAAK,EACL,GAAG,EACH,UAAU,EACV,KAAK,GAMP,EAAQ,EAAE;IACR,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO;IACX,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Resolve constrained TypeScript types from ESTree nodes with resilient
|
|
4
|
+
* fallbacks for partially mocked parser-services in tests.
|
|
5
|
+
*/
|
|
6
|
+
import type { TSESTree } from "@typescript-eslint/utils";
|
|
7
|
+
import type ts from "typescript";
|
|
8
|
+
type ConstrainedTypeParserServices = Readonly<{
|
|
9
|
+
esTreeNodeToTSNodeMap: Readonly<{
|
|
10
|
+
get: (key: Readonly<TSESTree.Node>) => ts.Node | undefined;
|
|
11
|
+
}>;
|
|
12
|
+
getTypeAtLocation?: (node: Readonly<TSESTree.Node>) => Readonly<ts.Type> | ts.Type;
|
|
13
|
+
program?: null | Readonly<{
|
|
14
|
+
getTypeChecker: () => ts.TypeChecker;
|
|
15
|
+
}>;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve a node type using `getConstrainedTypeAtLocation` when available, then
|
|
19
|
+
* fall back to checker + node-map based resolution.
|
|
20
|
+
*
|
|
21
|
+
* @param checker - Type checker used for fallback type lookups.
|
|
22
|
+
* @param node - ESTree node whose type should be resolved.
|
|
23
|
+
* @param parserServices - Parser services with node mapping and optional typed
|
|
24
|
+
* helpers.
|
|
25
|
+
* @param reason - Stable diagnostics reason fragment for safe-type wrappers.
|
|
26
|
+
*
|
|
27
|
+
* @returns The constrained type when resolvable; otherwise `undefined`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const getConstrainedTypeAtLocationWithFallback: (checker: Readonly<ts.TypeChecker>, node: Readonly<TSESTree.Node>, parserServices: ConstrainedTypeParserServices, reason: string) => ts.Type | undefined;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=constrained-type-at-location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constrained-type-at-location.d.ts","sourceRoot":"","sources":["../../src/_internal/constrained-type-at-location.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAYjC,KAAK,6BAA6B,GAAG,QAAQ,CAAC;IAC1C,qBAAqB,EAAE,QAAQ,CAAC;QAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC;KAC9D,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,CAChB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC5B,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;QACtB,cAAc,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC;KACxC,CAAC,CAAC;CACN,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wCAAwC,GACjD,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,gBAAgB,6BAA6B,EAC7C,QAAQ,MAAM,KACf,EAAE,CAAC,IAAI,GAAG,SAmEZ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getConstrainedTypeAtLocation } from "@typescript-eslint/type-utils";
|
|
2
|
+
import { isDefined, safeCastTo } from "ts-extras";
|
|
3
|
+
import { safeTypeOperation } from "./safe-type-operation.js";
|
|
4
|
+
import { getTypeCheckerBaseConstraintType } from "./type-checker-compat.js";
|
|
5
|
+
import { recordTypedPathExpensiveTypeCall, recordTypedPathFallbackInvocation, } from "./typed-path-telemetry.js";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve a node type using `getConstrainedTypeAtLocation` when available, then
|
|
8
|
+
* fall back to checker + node-map based resolution.
|
|
9
|
+
*
|
|
10
|
+
* @param checker - Type checker used for fallback type lookups.
|
|
11
|
+
* @param node - ESTree node whose type should be resolved.
|
|
12
|
+
* @param parserServices - Parser services with node mapping and optional typed
|
|
13
|
+
* helpers.
|
|
14
|
+
* @param reason - Stable diagnostics reason fragment for safe-type wrappers.
|
|
15
|
+
*
|
|
16
|
+
* @returns The constrained type when resolvable; otherwise `undefined`.
|
|
17
|
+
*/
|
|
18
|
+
export const getConstrainedTypeAtLocationWithFallback = (checker, node, parserServices, reason) => {
|
|
19
|
+
const mappedTsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
20
|
+
const telemetryFilePathResult = safeTypeOperation({
|
|
21
|
+
operation: () => mappedTsNode?.getSourceFile?.().fileName,
|
|
22
|
+
reason: "constrained-type-telemetry-file-path-resolution-failed",
|
|
23
|
+
});
|
|
24
|
+
const telemetryFilePath = telemetryFilePathResult.ok
|
|
25
|
+
? telemetryFilePathResult.value
|
|
26
|
+
: undefined;
|
|
27
|
+
recordTypedPathExpensiveTypeCall(telemetryFilePath);
|
|
28
|
+
const constrainedTypeResult = safeTypeOperation({
|
|
29
|
+
operation: () => {
|
|
30
|
+
if (typeof parserServices.getTypeAtLocation !== "function" ||
|
|
31
|
+
!isDefined(parserServices.program)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return getConstrainedTypeAtLocation(parserServices, safeCastTo(node));
|
|
35
|
+
},
|
|
36
|
+
reason: `${reason}-constrained`,
|
|
37
|
+
});
|
|
38
|
+
if (constrainedTypeResult.ok &&
|
|
39
|
+
constrainedTypeResult.value !== null &&
|
|
40
|
+
isDefined(constrainedTypeResult.value)) {
|
|
41
|
+
return constrainedTypeResult.value;
|
|
42
|
+
}
|
|
43
|
+
recordTypedPathFallbackInvocation(telemetryFilePath);
|
|
44
|
+
const fallbackTypeResult = safeTypeOperation({
|
|
45
|
+
operation: () => {
|
|
46
|
+
const tsNode = mappedTsNode;
|
|
47
|
+
if (!isDefined(tsNode)) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const rawType = checker.getTypeAtLocation(tsNode);
|
|
51
|
+
const constrainedType = getTypeCheckerBaseConstraintType(checker, rawType);
|
|
52
|
+
return constrainedType ?? rawType;
|
|
53
|
+
},
|
|
54
|
+
reason: `${reason}-fallback`,
|
|
55
|
+
});
|
|
56
|
+
if (!fallbackTypeResult.ok || fallbackTypeResult.value === null) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return fallbackTypeResult.value;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=constrained-type-at-location.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constrained-type-at-location.js","sourceRoot":"","sources":["../../src/_internal/constrained-type-at-location.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACH,gCAAgC,EAChC,iCAAiC,GACpC,MAAM,2BAA2B,CAAC;AAcnC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACpD,OAAiC,EACjC,IAA6B,EAC7B,cAA6C,EAC7C,MAAc,EACK,EAAE;IACrB,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;QAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,QAAQ;QACzD,MAAM,EAAE,wDAAwD;KACnE,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,EAAE;QAChD,CAAC,CAAC,uBAAuB,CAAC,KAAK;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEhB,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;IAEpD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;QAC5C,SAAS,EAAE,GAAG,EAAE;YACZ,IACI,OAAO,cAAc,CAAC,iBAAiB,KAAK,UAAU;gBACtD,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EACpC,CAAC;gBACC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,4BAA4B,CAC/B,cAEI,EACJ,UAAU,CACN,IAAI,CACP,CACJ,CAAC;QACN,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,cAAc;KAClC,CAAC,CAAC;IAEH,IACI,qBAAqB,CAAC,EAAE;QACxB,qBAAqB,CAAC,KAAK,KAAK,IAAI;QACpC,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EACxC,CAAC;QACC,OAAO,qBAAqB,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,iCAAiC,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;QACzC,SAAS,EAAE,GAAG,EAAE;YACZ,MAAM,MAAM,GAAG,YAAY,CAAC;YAE5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,gCAAgC,CACpD,OAAO,EACP,OAAO,CACV,CAAC;YAEF,OAAO,eAAe,IAAI,OAAO,CAAC;QACtC,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,WAAW;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,kBAAkB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,kBAAkB,CAAC,KAAK,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared Floyd-cycle-guarded linked-structure traversal utilities.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Result shape returned by linked-structure searches.
|
|
7
|
+
*/
|
|
8
|
+
export type LinkedStructureLookupResult<Value> = Readonly<{
|
|
9
|
+
found: false;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
found: true;
|
|
12
|
+
value: Value;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the first matching value while traversing a linked structure.
|
|
16
|
+
*
|
|
17
|
+
* @param options - Linked-structure traversal options.
|
|
18
|
+
*
|
|
19
|
+
* - `startNode`: Initial node to inspect.
|
|
20
|
+
* - `getNextNode`: Function that returns the next node in the chain.
|
|
21
|
+
* - `resolveValue`: Function that returns a lookup result for the current node.
|
|
22
|
+
*
|
|
23
|
+
* @returns Lookup result for the first resolved value; otherwise a non-matching
|
|
24
|
+
* lookup result when traversal reaches the chain end or detects a
|
|
25
|
+
* parent-cycle.
|
|
26
|
+
*/
|
|
27
|
+
export declare const resolveFirstValueInLinkedStructure: <Node, Value>({ getNextNode, resolveValue, startNode, }: Readonly<{
|
|
28
|
+
getNextNode: (node: Node) => Node | null;
|
|
29
|
+
resolveValue: (node: Node) => LinkedStructureLookupResult<Value>;
|
|
30
|
+
startNode: Node | null;
|
|
31
|
+
}>) => LinkedStructureLookupResult<Value>;
|
|
32
|
+
/**
|
|
33
|
+
* Check whether any node in a linked structure satisfies a predicate.
|
|
34
|
+
*
|
|
35
|
+
* @param options - Linked-structure traversal options.
|
|
36
|
+
*
|
|
37
|
+
* - `startNode`: Initial node to inspect.
|
|
38
|
+
* - `getNextNode`: Function that returns the next node in the chain.
|
|
39
|
+
* - `isMatch`: Predicate used to test each visited node.
|
|
40
|
+
*
|
|
41
|
+
* @returns `true` when any visited node matches; otherwise `false`.
|
|
42
|
+
*/
|
|
43
|
+
export declare const isAnyLinkedStructureNodeMatching: <Node>({ getNextNode, isMatch, startNode, }: Readonly<{
|
|
44
|
+
getNextNode: (node: Node) => Node | null;
|
|
45
|
+
isMatch: (node: Node) => boolean;
|
|
46
|
+
startNode: Node | null;
|
|
47
|
+
}>) => boolean;
|
|
48
|
+
//# sourceMappingURL=cycle-safe-linked-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle-safe-linked-search.d.ts","sourceRoot":"","sources":["../../src/_internal/cycle-safe-linked-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,2BAA2B,CAAC,KAAK,IACvC,QAAQ,CAAC;IACL,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC,GACF,QAAQ,CAAC;IACL,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC,CAAC;AAOT;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kCAAkC,GAAI,IAAI,EAAE,KAAK,EAAE,2CAI7D,QAAQ,CAAC;IACR,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACjE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,CAAC,KAAG,2BAA2B,CAAC,KAAK,CA+BrC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,GAAI,IAAI,EAAE,sCAIpD,QAAQ,CAAC;IACR,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACjC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,CAAC,KAAG,OAaO,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared Floyd-cycle-guarded linked-structure traversal utilities.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Fast-pointer hop count per iteration for Floyd cycle detection.
|
|
7
|
+
*/
|
|
8
|
+
const FLOYD_FAST_POINTER_ADVANCE_STEPS = 2;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the first matching value while traversing a linked structure.
|
|
11
|
+
*
|
|
12
|
+
* @param options - Linked-structure traversal options.
|
|
13
|
+
*
|
|
14
|
+
* - `startNode`: Initial node to inspect.
|
|
15
|
+
* - `getNextNode`: Function that returns the next node in the chain.
|
|
16
|
+
* - `resolveValue`: Function that returns a lookup result for the current node.
|
|
17
|
+
*
|
|
18
|
+
* @returns Lookup result for the first resolved value; otherwise a non-matching
|
|
19
|
+
* lookup result when traversal reaches the chain end or detects a
|
|
20
|
+
* parent-cycle.
|
|
21
|
+
*/
|
|
22
|
+
export const resolveFirstValueInLinkedStructure = ({ getNextNode, resolveValue, startNode, }) => {
|
|
23
|
+
let slowNode = startNode;
|
|
24
|
+
let fastNode = startNode;
|
|
25
|
+
while (slowNode !== null) {
|
|
26
|
+
const resolvedValue = resolveValue(slowNode);
|
|
27
|
+
if (resolvedValue.found) {
|
|
28
|
+
return resolvedValue;
|
|
29
|
+
}
|
|
30
|
+
slowNode = getNextNode(slowNode);
|
|
31
|
+
for (let step = 0; step < FLOYD_FAST_POINTER_ADVANCE_STEPS; step += 1) {
|
|
32
|
+
if (fastNode === null) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
fastNode = getNextNode(fastNode);
|
|
36
|
+
}
|
|
37
|
+
if (slowNode !== null && fastNode !== null && slowNode === fastNode) {
|
|
38
|
+
return {
|
|
39
|
+
found: false,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
found: false,
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Check whether any node in a linked structure satisfies a predicate.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Linked-structure traversal options.
|
|
51
|
+
*
|
|
52
|
+
* - `startNode`: Initial node to inspect.
|
|
53
|
+
* - `getNextNode`: Function that returns the next node in the chain.
|
|
54
|
+
* - `isMatch`: Predicate used to test each visited node.
|
|
55
|
+
*
|
|
56
|
+
* @returns `true` when any visited node matches; otherwise `false`.
|
|
57
|
+
*/
|
|
58
|
+
export const isAnyLinkedStructureNodeMatching = ({ getNextNode, isMatch, startNode, }) => resolveFirstValueInLinkedStructure({
|
|
59
|
+
getNextNode,
|
|
60
|
+
resolveValue: (node) => isMatch(node)
|
|
61
|
+
? {
|
|
62
|
+
found: true,
|
|
63
|
+
value: true,
|
|
64
|
+
}
|
|
65
|
+
: {
|
|
66
|
+
found: false,
|
|
67
|
+
},
|
|
68
|
+
startNode,
|
|
69
|
+
}).found;
|
|
70
|
+
//# sourceMappingURL=cycle-safe-linked-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle-safe-linked-search.js","sourceRoot":"","sources":["../../src/_internal/cycle-safe-linked-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,gCAAgC,GAAG,CAAU,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAc,EAC5D,WAAW,EACX,YAAY,EACZ,SAAS,GAKX,EAAsC,EAAE;IACtC,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IAAI,QAAQ,GAAG,SAAS,CAAC;IAEzB,OAAO,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEjC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,gCAAgC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YACpE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM;YACV,CAAC;YAED,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO;gBACH,KAAK,EAAE,KAAK;aACf,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO;QACH,KAAK,EAAE,KAAK;KACf,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAO,EACnD,WAAW,EACX,OAAO,EACP,SAAS,GAKX,EAAW,EAAE,CACX,kCAAkC,CAAC;IAC/B,WAAW;IACX,YAAY,EAAE,CAAC,IAAI,EAAwC,EAAE,CACzD,OAAO,CAAC,IAAI,CAAC;QACT,CAAC,CAAC;YACI,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;SACd;QACH,CAAC,CAAC;YACI,KAAK,EAAE,KAAK;SACf;IACX,SAAS;CACZ,CAAC,CAAC,KAAK,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Shared helper for memoizing boolean expression predicates by ESTree node
|
|
4
|
+
* identity.
|
|
5
|
+
*/
|
|
6
|
+
import type { TSESTree } from "@typescript-eslint/utils";
|
|
7
|
+
/**
|
|
8
|
+
* Memoize a boolean expression predicate using a `WeakMap` keyed by expression
|
|
9
|
+
* node identity.
|
|
10
|
+
*
|
|
11
|
+
* @param evaluate - Predicate to memoize.
|
|
12
|
+
*
|
|
13
|
+
* @returns Memoized predicate that reuses previous results for the same node
|
|
14
|
+
* object.
|
|
15
|
+
*/
|
|
16
|
+
export declare const memoizeExpressionBooleanPredicate: (evaluate: (expression: Readonly<TSESTree.Expression>) => boolean) => ((expression: Readonly<TSESTree.Expression>) => boolean);
|
|
17
|
+
//# sourceMappingURL=expression-boolean-memoizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-boolean-memoizer.d.ts","sourceRoot":"","sources":["../../src/_internal/expression-boolean-memoizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIzD;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,GAC1C,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,OAAO,KACjE,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,OAAO,CAgBzD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isDefined } from "ts-extras";
|
|
2
|
+
/**
|
|
3
|
+
* Memoize a boolean expression predicate using a `WeakMap` keyed by expression
|
|
4
|
+
* node identity.
|
|
5
|
+
*
|
|
6
|
+
* @param evaluate - Predicate to memoize.
|
|
7
|
+
*
|
|
8
|
+
* @returns Memoized predicate that reuses previous results for the same node
|
|
9
|
+
* object.
|
|
10
|
+
*/
|
|
11
|
+
export const memoizeExpressionBooleanPredicate = (evaluate) => {
|
|
12
|
+
const cache = new WeakMap();
|
|
13
|
+
return (expression) => {
|
|
14
|
+
const cachedResult = cache.get(expression);
|
|
15
|
+
if (isDefined(cachedResult)) {
|
|
16
|
+
return cachedResult;
|
|
17
|
+
}
|
|
18
|
+
const result = evaluate(expression);
|
|
19
|
+
cache.set(expression, result);
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=expression-boolean-memoizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-boolean-memoizer.js","sourceRoot":"","sources":["../../src/_internal/expression-boolean-memoizer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC7C,QAAgE,EACR,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,OAAO,EAA0C,CAAC;IAEpE,OAAO,CAAC,UAAU,EAAE,EAAE;QAClB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEpC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9B,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Utilities for detecting nodes that live inside `.filter(...)` callbacks.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESTree } from "@typescript-eslint/utils";
|
|
6
|
+
/**
|
|
7
|
+
* Narrows call expressions to direct `.filter(...)` calls.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isFilterCallExpression: (expression: Readonly<TSESTree.CallExpression>) => expression is TSESTree.CallExpression & {
|
|
10
|
+
callee: TSESTree.MemberExpression & {
|
|
11
|
+
computed: false;
|
|
12
|
+
optional: false;
|
|
13
|
+
property: TSESTree.Identifier;
|
|
14
|
+
};
|
|
15
|
+
optional: false;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Extract the first callback argument from a direct `.filter(...)` call.
|
|
19
|
+
*
|
|
20
|
+
* @param expression - Candidate call expression to inspect.
|
|
21
|
+
*
|
|
22
|
+
* @returns Callback expression when the call is a supported `.filter(...)`
|
|
23
|
+
* invocation and the first argument is an arrow/function expression;
|
|
24
|
+
* otherwise `null`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getFilterCallbackFunctionArgument: (expression: Readonly<TSESTree.CallExpression>) => null | Readonly<TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression>;
|
|
27
|
+
/**
|
|
28
|
+
* Structured match for `.filter(...)` calls with a single identifier parameter
|
|
29
|
+
* arrow callback that uses an expression body.
|
|
30
|
+
*/
|
|
31
|
+
export type SingleParameterExpressionArrowFilterCallbackMatch = Readonly<{
|
|
32
|
+
callback: TSESTree.ArrowFunctionExpression & {
|
|
33
|
+
body: TSESTree.Expression;
|
|
34
|
+
params: [TSESTree.Identifier];
|
|
35
|
+
};
|
|
36
|
+
parameter: TSESTree.Identifier;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Extract a strict callback shape from direct `.filter(...)` calls.
|
|
40
|
+
*
|
|
41
|
+
* @param expression - Candidate call expression to inspect.
|
|
42
|
+
*
|
|
43
|
+
* @returns Structured callback match when supported; otherwise `null`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const getSingleParameterExpressionArrowFilterCallback: (expression: Readonly<TSESTree.CallExpression>) => null | SingleParameterExpressionArrowFilterCallbackMatch;
|
|
46
|
+
/**
|
|
47
|
+
* Checks whether a node appears inside a callback passed as the first argument
|
|
48
|
+
* to a direct `.filter(...)` call.
|
|
49
|
+
*
|
|
50
|
+
* @param node - Node to inspect.
|
|
51
|
+
*
|
|
52
|
+
* @returns `true` when the node is inside a `.filter(...)` callback; otherwise
|
|
53
|
+
* `false`.
|
|
54
|
+
*/
|
|
55
|
+
export declare const isWithinFilterCallback: (node: Readonly<TSESTree.Node>) => boolean;
|
|
56
|
+
//# sourceMappingURL=filter-callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-callback.d.ts","sourceRoot":"","sources":["../../src/_internal/filter-callback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAiBzD;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAC/B,YAAY,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAC9C,UAAU,IAAI,QAAQ,CAAC,cAAc,GAAG;IACvC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,GAAG;QAChC,QAAQ,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;CAOsC,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,GAC1C,YAAY,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAC9C,IAAI,GAAG,QAAQ,CACd,QAAQ,CAAC,uBAAuB,GAAG,QAAQ,CAAC,kBAAkB,CAgBjE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iDAAiD,GAAG,QAAQ,CAAC;IACrE,QAAQ,EAAE,QAAQ,CAAC,uBAAuB,GAAG;QACzC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACjC,CAAC;IACF,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,+CAA+C,GACxD,YAAY,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAC9C,IAAI,GAAG,iDA0BT,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAC/B,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC9B,OAgCF,CAAC"}
|