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,89 @@
|
|
|
1
|
+
import { registerProgramSettingsForContext } from "./plugin-settings.js";
|
|
2
|
+
import { omitAutofixFromReportDescriptor } from "./report-adapter.js";
|
|
3
|
+
/**
|
|
4
|
+
* Report using plugin-aware autofix policy handling.
|
|
5
|
+
*/
|
|
6
|
+
export const reportWithTypefestPolicy = ({ context, descriptor, }) => {
|
|
7
|
+
const settings = registerProgramSettingsForContext(context);
|
|
8
|
+
if (!settings.disableAllAutofixes) {
|
|
9
|
+
context.report(descriptor);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
context.report(omitAutofixFromReportDescriptor(descriptor));
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Report a diagnostic with an optional direct fix.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* When `fix` is absent this reports only `messageId` + `node`.
|
|
19
|
+
*/
|
|
20
|
+
export const reportWithOptionalFix = ({ context, data, fix, messageId, node, }) => {
|
|
21
|
+
const descriptor = {
|
|
22
|
+
...(data === undefined ? {} : { data }),
|
|
23
|
+
...(fix === null ? {} : { fix }),
|
|
24
|
+
messageId,
|
|
25
|
+
node,
|
|
26
|
+
};
|
|
27
|
+
reportWithTypefestPolicy({
|
|
28
|
+
context,
|
|
29
|
+
descriptor,
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Resolve one of three standardized reporting outcomes:
|
|
34
|
+
*
|
|
35
|
+
* - No fix (`messageId` only),
|
|
36
|
+
* - Direct autofix (`fix`), or
|
|
37
|
+
* - Suggestion-only (`suggest`).
|
|
38
|
+
*/
|
|
39
|
+
export function resolveAutofixOrSuggestionOutcome({ canAutofix, fix, }) {
|
|
40
|
+
if (fix === null) {
|
|
41
|
+
return {
|
|
42
|
+
kind: "no-fix",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (canAutofix) {
|
|
46
|
+
return {
|
|
47
|
+
fix,
|
|
48
|
+
kind: "autofix",
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
fix,
|
|
53
|
+
kind: "suggestion",
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Report a previously resolved autofix/suggestion outcome.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* - Suggestion outcomes are reported with a single `suggest` entry.
|
|
61
|
+
* - Autofix and no-fix outcomes are delegated to {@link reportWithOptionalFix}.
|
|
62
|
+
*/
|
|
63
|
+
export const reportResolvedAutofixOrSuggestionOutcome = ({ context, data, messageId, node, outcome, suggestionMessageId, }) => {
|
|
64
|
+
if (outcome.kind === "suggestion") {
|
|
65
|
+
reportWithTypefestPolicy({
|
|
66
|
+
context,
|
|
67
|
+
descriptor: {
|
|
68
|
+
...(data === undefined ? {} : { data }),
|
|
69
|
+
messageId,
|
|
70
|
+
node,
|
|
71
|
+
suggest: [
|
|
72
|
+
{
|
|
73
|
+
fix: outcome.fix,
|
|
74
|
+
messageId: suggestionMessageId,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
reportWithOptionalFix({
|
|
82
|
+
context,
|
|
83
|
+
data,
|
|
84
|
+
fix: outcome.kind === "autofix" ? outcome.fix : null,
|
|
85
|
+
messageId,
|
|
86
|
+
node,
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=rule-reporting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-reporting.js","sourceRoot":"","sources":["../../src/_internal/rule-reporting.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAsBtE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAGtC,EACE,OAAO,EACP,UAAU,GAIZ,EAAQ,EAAE;IACR,MAAM,QAAQ,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;IAE5D,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3B,OAAO;IACX,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAGnC,EACE,OAAO,EACP,IAAI,EACJ,GAAG,EACH,SAAS,EACT,IAAI,GAON,EAAQ,EAAE;IACR,MAAM,UAAU,GAA0C;QACtD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QAChC,SAAS;QACT,IAAI;KACP,CAAC;IAEF,wBAAwB,CAAC;QACrB,OAAO;QACP,UAAU;KACb,CAAC,CAAC;AACP,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAAC,EAC9C,UAAU,EACV,GAAG,GAC8B;IACjC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,OAAO;YACH,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACb,OAAO;YACH,GAAG;YACH,IAAI,EAAE,SAAS;SAClB,CAAC;IACN,CAAC;IAED,OAAO;QACH,GAAG;QACH,IAAI,EAAE,YAAY;KACrB,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAGtD,EACE,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,OAAO,EACP,mBAAmB,GAQrB,EAAQ,EAAE;IACR,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,wBAAwB,CAAC;YACrB,OAAO;YACP,UAAU,EAAE;gBACR,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBACvC,SAAS;gBACT,IAAI;gBACJ,OAAO,EAAE;oBACL;wBACI,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,SAAS,EAAE,mBAAmB;qBACjC;iBACJ;aACJ;SACJ,CAAC,CAAC;QAEH,OAAO;IACX,CAAC;IAED,qBAAqB,CAAC;QAClB,OAAO;QACP,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QACpD,SAAS;QACT,IAAI;KACP,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Canonical runtime registry of all rule modules shipped by eslint-plugin-typefest.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESLint } from "@typescript-eslint/utils";
|
|
6
|
+
import type { UnknownArray } from "type-fest";
|
|
7
|
+
/** Runtime rule module shape used by registry/preset builders. */
|
|
8
|
+
export type RuleWithDocs = TSESLint.RuleModule<string, UnknownArray>;
|
|
9
|
+
/** Pattern for unqualified rule names supported by `eslint-plugin-typefest`. */
|
|
10
|
+
export type TypefestRuleNamePattern = `prefer-${string}`;
|
|
11
|
+
/** Exported typed view consumed by the plugin entrypoint. */
|
|
12
|
+
export declare const typefestRules: Readonly<Record<TypefestRuleNamePattern, RuleWithDocs>>;
|
|
13
|
+
export default typefestRules;
|
|
14
|
+
//# sourceMappingURL=rules-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-registry.d.ts","sourceRoot":"","sources":["../../src/_internal/rules-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA+E9C,kEAAkE;AAClE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErE,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,GAAG,UAAU,MAAM,EAAE,CAAC;AA0FzD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,QAAQ,CAChC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,CACzB,CAAC;AAEzB,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Canonical runtime registry of all rule modules shipped by eslint-plugin-typefest.
|
|
4
|
+
*/
|
|
5
|
+
import preferTsExtrasArrayAtRule from "../rules/prefer-ts-extras-array-at.js";
|
|
6
|
+
import preferTsExtrasArrayConcatRule from "../rules/prefer-ts-extras-array-concat.js";
|
|
7
|
+
import preferTsExtrasArrayFindLastIndexRule from "../rules/prefer-ts-extras-array-find-last-index.js";
|
|
8
|
+
import preferTsExtrasArrayFindLastRule from "../rules/prefer-ts-extras-array-find-last.js";
|
|
9
|
+
import preferTsExtrasArrayFindRule from "../rules/prefer-ts-extras-array-find.js";
|
|
10
|
+
import preferTsExtrasArrayFirstRule from "../rules/prefer-ts-extras-array-first.js";
|
|
11
|
+
import preferTsExtrasArrayIncludesRule from "../rules/prefer-ts-extras-array-includes.js";
|
|
12
|
+
import preferTsExtrasArrayJoinRule from "../rules/prefer-ts-extras-array-join.js";
|
|
13
|
+
import preferTsExtrasArrayLastRule from "../rules/prefer-ts-extras-array-last.js";
|
|
14
|
+
import preferTsExtrasAsWritableRule from "../rules/prefer-ts-extras-as-writable.js";
|
|
15
|
+
import preferTsExtrasAssertDefinedRule from "../rules/prefer-ts-extras-assert-defined.js";
|
|
16
|
+
import preferTsExtrasAssertErrorRule from "../rules/prefer-ts-extras-assert-error.js";
|
|
17
|
+
import preferTsExtrasAssertPresentRule from "../rules/prefer-ts-extras-assert-present.js";
|
|
18
|
+
import preferTsExtrasIsDefinedFilterRule from "../rules/prefer-ts-extras-is-defined-filter.js";
|
|
19
|
+
import preferTsExtrasIsDefinedRule from "../rules/prefer-ts-extras-is-defined.js";
|
|
20
|
+
import preferTsExtrasIsEmptyRule from "../rules/prefer-ts-extras-is-empty.js";
|
|
21
|
+
import preferTsExtrasIsEqualTypeRule from "../rules/prefer-ts-extras-is-equal-type.js";
|
|
22
|
+
import preferTsExtrasIsFiniteRule from "../rules/prefer-ts-extras-is-finite.js";
|
|
23
|
+
import preferTsExtrasIsInfiniteRule from "../rules/prefer-ts-extras-is-infinite.js";
|
|
24
|
+
import preferTsExtrasIsIntegerRule from "../rules/prefer-ts-extras-is-integer.js";
|
|
25
|
+
import preferTsExtrasIsPresentFilterRule from "../rules/prefer-ts-extras-is-present-filter.js";
|
|
26
|
+
import preferTsExtrasIsPresentRule from "../rules/prefer-ts-extras-is-present.js";
|
|
27
|
+
import preferTsExtrasIsSafeIntegerRule from "../rules/prefer-ts-extras-is-safe-integer.js";
|
|
28
|
+
import preferTsExtrasKeyInRule from "../rules/prefer-ts-extras-key-in.js";
|
|
29
|
+
import preferTsExtrasNotRule from "../rules/prefer-ts-extras-not.js";
|
|
30
|
+
import preferTsExtrasObjectEntriesRule from "../rules/prefer-ts-extras-object-entries.js";
|
|
31
|
+
import preferTsExtrasObjectFromEntriesRule from "../rules/prefer-ts-extras-object-from-entries.js";
|
|
32
|
+
import preferTsExtrasObjectHasInRule from "../rules/prefer-ts-extras-object-has-in.js";
|
|
33
|
+
import preferTsExtrasObjectHasOwnRule from "../rules/prefer-ts-extras-object-has-own.js";
|
|
34
|
+
import preferTsExtrasObjectKeysRule from "../rules/prefer-ts-extras-object-keys.js";
|
|
35
|
+
import preferTsExtrasObjectValuesRule from "../rules/prefer-ts-extras-object-values.js";
|
|
36
|
+
import preferTsExtrasSafeCastToRule from "../rules/prefer-ts-extras-safe-cast-to.js";
|
|
37
|
+
import preferTsExtrasSetHasRule from "../rules/prefer-ts-extras-set-has.js";
|
|
38
|
+
import preferTsExtrasStringSplitRule from "../rules/prefer-ts-extras-string-split.js";
|
|
39
|
+
import preferTypeFestAbstractConstructorRule from "../rules/prefer-type-fest-abstract-constructor.js";
|
|
40
|
+
import preferTypeFestArrayableRule from "../rules/prefer-type-fest-arrayable.js";
|
|
41
|
+
import preferTypeFestAsyncReturnTypeRule from "../rules/prefer-type-fest-async-return-type.js";
|
|
42
|
+
import preferTypeFestConditionalPickRule from "../rules/prefer-type-fest-conditional-pick.js";
|
|
43
|
+
import preferTypeFestConstructorRule from "../rules/prefer-type-fest-constructor.js";
|
|
44
|
+
import preferTypeFestExceptRule from "../rules/prefer-type-fest-except.js";
|
|
45
|
+
import preferTypeFestIfRule from "../rules/prefer-type-fest-if.js";
|
|
46
|
+
import preferTypeFestIterableElementRule from "../rules/prefer-type-fest-iterable-element.js";
|
|
47
|
+
import preferTypeFestJsonArrayRule from "../rules/prefer-type-fest-json-array.js";
|
|
48
|
+
import preferTypeFestJsonObjectRule from "../rules/prefer-type-fest-json-object.js";
|
|
49
|
+
import preferTypeFestJsonPrimitiveRule from "../rules/prefer-type-fest-json-primitive.js";
|
|
50
|
+
import preferTypeFestJsonValueRule from "../rules/prefer-type-fest-json-value.js";
|
|
51
|
+
import preferTypeFestKeysOfUnionRule from "../rules/prefer-type-fest-keys-of-union.js";
|
|
52
|
+
import preferTypeFestLiteralUnionRule from "../rules/prefer-type-fest-literal-union.js";
|
|
53
|
+
import preferTypeFestMergeExclusiveRule from "../rules/prefer-type-fest-merge-exclusive.js";
|
|
54
|
+
import preferTypeFestNonEmptyTupleRule from "../rules/prefer-type-fest-non-empty-tuple.js";
|
|
55
|
+
import preferTypeFestOmitIndexSignatureRule from "../rules/prefer-type-fest-omit-index-signature.js";
|
|
56
|
+
import preferTypeFestPartialDeepRule from "../rules/prefer-type-fest-partial-deep.js";
|
|
57
|
+
import preferTypeFestPrimitiveRule from "../rules/prefer-type-fest-primitive.js";
|
|
58
|
+
import preferTypeFestPromisableRule from "../rules/prefer-type-fest-promisable.js";
|
|
59
|
+
import preferTypeFestReadonlyDeepRule from "../rules/prefer-type-fest-readonly-deep.js";
|
|
60
|
+
import preferTypeFestRequireAllOrNoneRule from "../rules/prefer-type-fest-require-all-or-none.js";
|
|
61
|
+
import preferTypeFestRequireAtLeastOneRule from "../rules/prefer-type-fest-require-at-least-one.js";
|
|
62
|
+
import preferTypeFestRequireExactlyOneRule from "../rules/prefer-type-fest-require-exactly-one.js";
|
|
63
|
+
import preferTypeFestRequireOneOrNoneRule from "../rules/prefer-type-fest-require-one-or-none.js";
|
|
64
|
+
import preferTypeFestRequiredDeepRule from "../rules/prefer-type-fest-required-deep.js";
|
|
65
|
+
import preferTypeFestSchemaRule from "../rules/prefer-type-fest-schema.js";
|
|
66
|
+
import preferTypeFestSetNonNullableRule from "../rules/prefer-type-fest-set-non-nullable.js";
|
|
67
|
+
import preferTypeFestSetOptionalRule from "../rules/prefer-type-fest-set-optional.js";
|
|
68
|
+
import preferTypeFestSetReadonlyRule from "../rules/prefer-type-fest-set-readonly.js";
|
|
69
|
+
import preferTypeFestSetRequiredRule from "../rules/prefer-type-fest-set-required.js";
|
|
70
|
+
import preferTypeFestSimplifyRule from "../rules/prefer-type-fest-simplify.js";
|
|
71
|
+
import preferTypeFestTaggedBrandsRule from "../rules/prefer-type-fest-tagged-brands.js";
|
|
72
|
+
import preferTypeFestTupleOfRule from "../rules/prefer-type-fest-tuple-of.js";
|
|
73
|
+
import preferTypeFestUnknownArrayRule from "../rules/prefer-type-fest-unknown-array.js";
|
|
74
|
+
import preferTypeFestUnknownMapRule from "../rules/prefer-type-fest-unknown-map.js";
|
|
75
|
+
import preferTypeFestUnknownRecordRule from "../rules/prefer-type-fest-unknown-record.js";
|
|
76
|
+
import preferTypeFestUnknownSetRule from "../rules/prefer-type-fest-unknown-set.js";
|
|
77
|
+
import preferTypeFestUnwrapTaggedRule from "../rules/prefer-type-fest-unwrap-tagged.js";
|
|
78
|
+
import preferTypeFestValueOfRule from "../rules/prefer-type-fest-value-of.js";
|
|
79
|
+
import preferTypeFestWritableDeepRule from "../rules/prefer-type-fest-writable-deep.js";
|
|
80
|
+
import preferTypeFestWritableRule from "../rules/prefer-type-fest-writable.js";
|
|
81
|
+
/**
|
|
82
|
+
* Runtime map of all rule modules keyed by unqualified rule name.
|
|
83
|
+
*/
|
|
84
|
+
const typefestRuleRegistry = {
|
|
85
|
+
"prefer-ts-extras-array-at": preferTsExtrasArrayAtRule,
|
|
86
|
+
"prefer-ts-extras-array-concat": preferTsExtrasArrayConcatRule,
|
|
87
|
+
"prefer-ts-extras-array-find": preferTsExtrasArrayFindRule,
|
|
88
|
+
"prefer-ts-extras-array-find-last": preferTsExtrasArrayFindLastRule,
|
|
89
|
+
"prefer-ts-extras-array-find-last-index": preferTsExtrasArrayFindLastIndexRule,
|
|
90
|
+
"prefer-ts-extras-array-first": preferTsExtrasArrayFirstRule,
|
|
91
|
+
"prefer-ts-extras-array-includes": preferTsExtrasArrayIncludesRule,
|
|
92
|
+
"prefer-ts-extras-array-join": preferTsExtrasArrayJoinRule,
|
|
93
|
+
"prefer-ts-extras-array-last": preferTsExtrasArrayLastRule,
|
|
94
|
+
"prefer-ts-extras-as-writable": preferTsExtrasAsWritableRule,
|
|
95
|
+
"prefer-ts-extras-assert-defined": preferTsExtrasAssertDefinedRule,
|
|
96
|
+
"prefer-ts-extras-assert-error": preferTsExtrasAssertErrorRule,
|
|
97
|
+
"prefer-ts-extras-assert-present": preferTsExtrasAssertPresentRule,
|
|
98
|
+
"prefer-ts-extras-is-defined": preferTsExtrasIsDefinedRule,
|
|
99
|
+
"prefer-ts-extras-is-defined-filter": preferTsExtrasIsDefinedFilterRule,
|
|
100
|
+
"prefer-ts-extras-is-empty": preferTsExtrasIsEmptyRule,
|
|
101
|
+
"prefer-ts-extras-is-equal-type": preferTsExtrasIsEqualTypeRule,
|
|
102
|
+
"prefer-ts-extras-is-finite": preferTsExtrasIsFiniteRule,
|
|
103
|
+
"prefer-ts-extras-is-infinite": preferTsExtrasIsInfiniteRule,
|
|
104
|
+
"prefer-ts-extras-is-integer": preferTsExtrasIsIntegerRule,
|
|
105
|
+
"prefer-ts-extras-is-present": preferTsExtrasIsPresentRule,
|
|
106
|
+
"prefer-ts-extras-is-present-filter": preferTsExtrasIsPresentFilterRule,
|
|
107
|
+
"prefer-ts-extras-is-safe-integer": preferTsExtrasIsSafeIntegerRule,
|
|
108
|
+
"prefer-ts-extras-key-in": preferTsExtrasKeyInRule,
|
|
109
|
+
"prefer-ts-extras-not": preferTsExtrasNotRule,
|
|
110
|
+
"prefer-ts-extras-object-entries": preferTsExtrasObjectEntriesRule,
|
|
111
|
+
"prefer-ts-extras-object-from-entries": preferTsExtrasObjectFromEntriesRule,
|
|
112
|
+
"prefer-ts-extras-object-has-in": preferTsExtrasObjectHasInRule,
|
|
113
|
+
"prefer-ts-extras-object-has-own": preferTsExtrasObjectHasOwnRule,
|
|
114
|
+
"prefer-ts-extras-object-keys": preferTsExtrasObjectKeysRule,
|
|
115
|
+
"prefer-ts-extras-object-values": preferTsExtrasObjectValuesRule,
|
|
116
|
+
"prefer-ts-extras-safe-cast-to": preferTsExtrasSafeCastToRule,
|
|
117
|
+
"prefer-ts-extras-set-has": preferTsExtrasSetHasRule,
|
|
118
|
+
"prefer-ts-extras-string-split": preferTsExtrasStringSplitRule,
|
|
119
|
+
"prefer-type-fest-abstract-constructor": preferTypeFestAbstractConstructorRule,
|
|
120
|
+
"prefer-type-fest-arrayable": preferTypeFestArrayableRule,
|
|
121
|
+
"prefer-type-fest-async-return-type": preferTypeFestAsyncReturnTypeRule,
|
|
122
|
+
"prefer-type-fest-conditional-pick": preferTypeFestConditionalPickRule,
|
|
123
|
+
"prefer-type-fest-constructor": preferTypeFestConstructorRule,
|
|
124
|
+
"prefer-type-fest-except": preferTypeFestExceptRule,
|
|
125
|
+
"prefer-type-fest-if": preferTypeFestIfRule,
|
|
126
|
+
"prefer-type-fest-iterable-element": preferTypeFestIterableElementRule,
|
|
127
|
+
"prefer-type-fest-json-array": preferTypeFestJsonArrayRule,
|
|
128
|
+
"prefer-type-fest-json-object": preferTypeFestJsonObjectRule,
|
|
129
|
+
"prefer-type-fest-json-primitive": preferTypeFestJsonPrimitiveRule,
|
|
130
|
+
"prefer-type-fest-json-value": preferTypeFestJsonValueRule,
|
|
131
|
+
"prefer-type-fest-keys-of-union": preferTypeFestKeysOfUnionRule,
|
|
132
|
+
"prefer-type-fest-literal-union": preferTypeFestLiteralUnionRule,
|
|
133
|
+
"prefer-type-fest-merge-exclusive": preferTypeFestMergeExclusiveRule,
|
|
134
|
+
"prefer-type-fest-non-empty-tuple": preferTypeFestNonEmptyTupleRule,
|
|
135
|
+
"prefer-type-fest-omit-index-signature": preferTypeFestOmitIndexSignatureRule,
|
|
136
|
+
"prefer-type-fest-partial-deep": preferTypeFestPartialDeepRule,
|
|
137
|
+
"prefer-type-fest-primitive": preferTypeFestPrimitiveRule,
|
|
138
|
+
"prefer-type-fest-promisable": preferTypeFestPromisableRule,
|
|
139
|
+
"prefer-type-fest-readonly-deep": preferTypeFestReadonlyDeepRule,
|
|
140
|
+
"prefer-type-fest-require-all-or-none": preferTypeFestRequireAllOrNoneRule,
|
|
141
|
+
"prefer-type-fest-require-at-least-one": preferTypeFestRequireAtLeastOneRule,
|
|
142
|
+
"prefer-type-fest-require-exactly-one": preferTypeFestRequireExactlyOneRule,
|
|
143
|
+
"prefer-type-fest-require-one-or-none": preferTypeFestRequireOneOrNoneRule,
|
|
144
|
+
"prefer-type-fest-required-deep": preferTypeFestRequiredDeepRule,
|
|
145
|
+
"prefer-type-fest-schema": preferTypeFestSchemaRule,
|
|
146
|
+
"prefer-type-fest-set-non-nullable": preferTypeFestSetNonNullableRule,
|
|
147
|
+
"prefer-type-fest-set-optional": preferTypeFestSetOptionalRule,
|
|
148
|
+
"prefer-type-fest-set-readonly": preferTypeFestSetReadonlyRule,
|
|
149
|
+
"prefer-type-fest-set-required": preferTypeFestSetRequiredRule,
|
|
150
|
+
"prefer-type-fest-simplify": preferTypeFestSimplifyRule,
|
|
151
|
+
"prefer-type-fest-tagged-brands": preferTypeFestTaggedBrandsRule,
|
|
152
|
+
"prefer-type-fest-tuple-of": preferTypeFestTupleOfRule,
|
|
153
|
+
"prefer-type-fest-unknown-array": preferTypeFestUnknownArrayRule,
|
|
154
|
+
"prefer-type-fest-unknown-map": preferTypeFestUnknownMapRule,
|
|
155
|
+
"prefer-type-fest-unknown-record": preferTypeFestUnknownRecordRule,
|
|
156
|
+
"prefer-type-fest-unknown-set": preferTypeFestUnknownSetRule,
|
|
157
|
+
"prefer-type-fest-unwrap-tagged": preferTypeFestUnwrapTaggedRule,
|
|
158
|
+
"prefer-type-fest-value-of": preferTypeFestValueOfRule,
|
|
159
|
+
"prefer-type-fest-writable": preferTypeFestWritableRule,
|
|
160
|
+
"prefer-type-fest-writable-deep": preferTypeFestWritableDeepRule,
|
|
161
|
+
};
|
|
162
|
+
/** Exported typed view consumed by the plugin entrypoint. */
|
|
163
|
+
export const typefestRules = typefestRuleRegistry;
|
|
164
|
+
export default typefestRules;
|
|
165
|
+
//# sourceMappingURL=rules-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-registry.js","sourceRoot":"","sources":["../../src/_internal/rules-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Structured error handling for best-effort typed AST operations.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Counter contract used by test-time debug instrumentation.
|
|
7
|
+
*/
|
|
8
|
+
export type SafeTypeOperationCounter<Reason extends string> = Readonly<{
|
|
9
|
+
getSnapshot: () => ReadonlyMap<Reason, number>;
|
|
10
|
+
onFailure: (failure: Readonly<{
|
|
11
|
+
error: unknown;
|
|
12
|
+
reason: Reason;
|
|
13
|
+
}>) => void;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Failure payload emitted when a safe typed operation throws.
|
|
17
|
+
*/
|
|
18
|
+
export type SafeTypeOperationFailure<Reason extends string> = Readonly<{
|
|
19
|
+
error: unknown;
|
|
20
|
+
reason: Reason;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Optional observer called whenever an operation fails.
|
|
24
|
+
*/
|
|
25
|
+
export type SafeTypeOperationFailureObserver<Reason extends string> = (failure: Readonly<SafeTypeOperationFailure<Reason>>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Failure payload emitted when an observer itself throws.
|
|
28
|
+
*/
|
|
29
|
+
export type SafeTypeOperationObserverFailure<Reason extends string> = Readonly<{
|
|
30
|
+
failure: Readonly<SafeTypeOperationFailure<Reason>>;
|
|
31
|
+
observerError: unknown;
|
|
32
|
+
observerKind: "global" | "local";
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Optional observer called when an operation failure observer throws.
|
|
36
|
+
*/
|
|
37
|
+
export type SafeTypeOperationObserverFailureObserver<Reason extends string> = (failure: Readonly<SafeTypeOperationObserverFailure<Reason>>) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Register a process-local observer for observer failures.
|
|
40
|
+
*
|
|
41
|
+
* @param observer - Callback invoked when a local/global failure observer
|
|
42
|
+
* throws.
|
|
43
|
+
*
|
|
44
|
+
* @returns Unsubscribe callback to remove the observer.
|
|
45
|
+
*/
|
|
46
|
+
export declare const registerSafeTypeOperationObserverFailureObserver: (observer: SafeTypeOperationObserverFailureObserver<string>) => (() => void);
|
|
47
|
+
/**
|
|
48
|
+
* Register a process-local failure observer for typed operations.
|
|
49
|
+
*
|
|
50
|
+
* @param observer - Callback invoked for each operation failure.
|
|
51
|
+
*
|
|
52
|
+
* @returns Unsubscribe callback to remove the observer.
|
|
53
|
+
*/
|
|
54
|
+
export declare const registerSafeTypeOperationFailureObserver: (observer: SafeTypeOperationFailureObserver<string>) => (() => void);
|
|
55
|
+
/**
|
|
56
|
+
* Run one operation with a scoped failure observer that is always cleaned up.
|
|
57
|
+
*
|
|
58
|
+
* @param observer - Observer registered for the operation scope.
|
|
59
|
+
* @param operation - Synchronous operation to execute while observing failures.
|
|
60
|
+
*
|
|
61
|
+
* @returns Return value produced by `operation`.
|
|
62
|
+
*/
|
|
63
|
+
export declare const withSafeTypeOperationFailureObserver: <Result>(observer: SafeTypeOperationFailureObserver<string>, operation: () => Result) => Result;
|
|
64
|
+
/**
|
|
65
|
+
* Result shape for safe typed operations.
|
|
66
|
+
*/
|
|
67
|
+
export type SafeTypeOperationResult<Result, Reason extends string> = Readonly<{
|
|
68
|
+
failure: SafeTypeOperationFailure<Reason>;
|
|
69
|
+
ok: false;
|
|
70
|
+
}> | Readonly<{
|
|
71
|
+
ok: true;
|
|
72
|
+
value: Result;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Execute a typed operation with structured failure output instead of throws.
|
|
76
|
+
*/
|
|
77
|
+
export declare const safeTypeOperation: <Result, Reason extends string>({ onFailure, operation, reason, }: Readonly<{
|
|
78
|
+
onFailure?: SafeTypeOperationFailureObserver<Reason>;
|
|
79
|
+
operation: () => Result;
|
|
80
|
+
reason: Reason;
|
|
81
|
+
}>) => SafeTypeOperationResult<Result, Reason>;
|
|
82
|
+
/**
|
|
83
|
+
* Build a lightweight reason counter for debugging operation failures in tests.
|
|
84
|
+
*
|
|
85
|
+
* @param reasonsForTypeInference - Optional typed reason literals used to infer
|
|
86
|
+
* the `Reason` generic without requiring explicit type parameters.
|
|
87
|
+
*/
|
|
88
|
+
export declare const createSafeTypeOperationCounter: <Reason extends string = never>(reasonsForTypeInference?: readonly Reason[]) => SafeTypeOperationCounter<Reason>;
|
|
89
|
+
//# sourceMappingURL=safe-type-operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-type-operation.d.ts","sourceRoot":"","sources":["../../src/_internal/safe-type-operation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,MAAM,IAAI,QAAQ,CAAC;IACnE,WAAW,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAS,EAAE,CACP,OAAO,EAAE,QAAQ,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC,KACD,IAAI,CAAC;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,MAAM,IAAI,QAAQ,CAAC;IACnE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,MAAM,IAAI,CAClE,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,KAClD,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,MAAM,IAAI,QAAQ,CAAC;IAC3E,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC;CACpC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,wCAAwC,CAAC,MAAM,SAAS,MAAM,IAAI,CAC1E,OAAO,EAAE,QAAQ,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,KAC1D,IAAI,CAAC;AA0DV;;;;;;;GAOG;AACH,eAAO,MAAM,gDAAgD,GACzD,UAAU,wCAAwC,CAAC,MAAM,CAAC,KAC3D,CAAC,MAAM,IAAI,CAMb,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC,GACjD,UAAU,gCAAgC,CAAC,MAAM,CAAC,KACnD,CAAC,MAAM,IAAI,CAMb,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,GAAI,MAAM,EACvD,UAAU,gCAAgC,CAAC,MAAM,CAAC,EAClD,WAAW,MAAM,MAAM,KACxB,MAQF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,MAAM,EAAE,MAAM,SAAS,MAAM,IAC3D,QAAQ,CAAC;IACL,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,EAAE,EAAE,KAAK,CAAC;CACb,CAAC,GACF,QAAQ,CAAC;IACL,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAET;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,mCAI9D,QAAQ,CAAC;IACR,SAAS,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACrD,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC,KAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,CA6B1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,MAAM,SAAS,MAAM,GAAG,KAAK,EACxE,0BAAyB,SAAS,MAAM,EAAO,KAChD,wBAAwB,CAAC,MAAM,CAgBjC,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Structured error handling for best-effort typed AST operations.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Shared observer set for operation failures across rule modules.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Observers are intentionally process-local and opt-in; they exist for
|
|
10
|
+
* diagnostics and test instrumentation only.
|
|
11
|
+
*/
|
|
12
|
+
const safeTypeOperationFailureObservers = new Set();
|
|
13
|
+
/**
|
|
14
|
+
* Shared observer set for local/global observer failures.
|
|
15
|
+
*/
|
|
16
|
+
const safeTypeOperationObserverFailureObservers = new Set();
|
|
17
|
+
/**
|
|
18
|
+
* Notify all registered observer-failure observers.
|
|
19
|
+
*
|
|
20
|
+
* @param failure - Observer-failure payload.
|
|
21
|
+
*/
|
|
22
|
+
const notifySafeTypeOperationObserverFailureObservers = (failure) => {
|
|
23
|
+
for (const observer of safeTypeOperationObserverFailureObservers) {
|
|
24
|
+
try {
|
|
25
|
+
observer(failure);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Observer-failure observers are diagnostics only; never rethrow.
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Notify all registered global failure observers.
|
|
34
|
+
*
|
|
35
|
+
* @param failure - Failure payload emitted by a typed operation.
|
|
36
|
+
*/
|
|
37
|
+
const notifySafeTypeOperationFailureObservers = (failure) => {
|
|
38
|
+
for (const observer of safeTypeOperationFailureObservers) {
|
|
39
|
+
try {
|
|
40
|
+
observer(failure);
|
|
41
|
+
}
|
|
42
|
+
catch (observerError) {
|
|
43
|
+
notifySafeTypeOperationObserverFailureObservers({
|
|
44
|
+
failure,
|
|
45
|
+
observerError,
|
|
46
|
+
observerKind: "global",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Register a process-local observer for observer failures.
|
|
53
|
+
*
|
|
54
|
+
* @param observer - Callback invoked when a local/global failure observer
|
|
55
|
+
* throws.
|
|
56
|
+
*
|
|
57
|
+
* @returns Unsubscribe callback to remove the observer.
|
|
58
|
+
*/
|
|
59
|
+
export const registerSafeTypeOperationObserverFailureObserver = (observer) => {
|
|
60
|
+
safeTypeOperationObserverFailureObservers.add(observer);
|
|
61
|
+
return () => {
|
|
62
|
+
safeTypeOperationObserverFailureObservers.delete(observer);
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Register a process-local failure observer for typed operations.
|
|
67
|
+
*
|
|
68
|
+
* @param observer - Callback invoked for each operation failure.
|
|
69
|
+
*
|
|
70
|
+
* @returns Unsubscribe callback to remove the observer.
|
|
71
|
+
*/
|
|
72
|
+
export const registerSafeTypeOperationFailureObserver = (observer) => {
|
|
73
|
+
safeTypeOperationFailureObservers.add(observer);
|
|
74
|
+
return () => {
|
|
75
|
+
safeTypeOperationFailureObservers.delete(observer);
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Run one operation with a scoped failure observer that is always cleaned up.
|
|
80
|
+
*
|
|
81
|
+
* @param observer - Observer registered for the operation scope.
|
|
82
|
+
* @param operation - Synchronous operation to execute while observing failures.
|
|
83
|
+
*
|
|
84
|
+
* @returns Return value produced by `operation`.
|
|
85
|
+
*/
|
|
86
|
+
export const withSafeTypeOperationFailureObserver = (observer, operation) => {
|
|
87
|
+
const unsubscribe = registerSafeTypeOperationFailureObserver(observer);
|
|
88
|
+
try {
|
|
89
|
+
return operation();
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
unsubscribe();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Execute a typed operation with structured failure output instead of throws.
|
|
97
|
+
*/
|
|
98
|
+
export const safeTypeOperation = ({ onFailure, operation, reason, }) => {
|
|
99
|
+
try {
|
|
100
|
+
return {
|
|
101
|
+
ok: true,
|
|
102
|
+
value: operation(),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const failure = {
|
|
107
|
+
error,
|
|
108
|
+
reason,
|
|
109
|
+
};
|
|
110
|
+
try {
|
|
111
|
+
onFailure?.(failure);
|
|
112
|
+
}
|
|
113
|
+
catch (observerError) {
|
|
114
|
+
notifySafeTypeOperationObserverFailureObservers({
|
|
115
|
+
failure,
|
|
116
|
+
observerError,
|
|
117
|
+
observerKind: "local",
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
notifySafeTypeOperationFailureObservers(failure);
|
|
121
|
+
return {
|
|
122
|
+
failure,
|
|
123
|
+
ok: false,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Build a lightweight reason counter for debugging operation failures in tests.
|
|
129
|
+
*
|
|
130
|
+
* @param reasonsForTypeInference - Optional typed reason literals used to infer
|
|
131
|
+
* the `Reason` generic without requiring explicit type parameters.
|
|
132
|
+
*/
|
|
133
|
+
export const createSafeTypeOperationCounter = (reasonsForTypeInference = []) => {
|
|
134
|
+
const counts = new Map();
|
|
135
|
+
for (const reason of reasonsForTypeInference) {
|
|
136
|
+
counts.set(reason, counts.get(reason) ?? 0);
|
|
137
|
+
}
|
|
138
|
+
const onFailure = (failure) => {
|
|
139
|
+
const previousCount = counts.get(failure.reason) ?? 0;
|
|
140
|
+
counts.set(failure.reason, previousCount + 1);
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
getSnapshot: () => new Map(counts),
|
|
144
|
+
onFailure,
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=safe-type-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-type-operation.js","sourceRoot":"","sources":["../../src/_internal/safe-type-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Context/source-code scope-resolution helpers.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
6
|
+
import type { UnknownArray } from "type-fest";
|
|
7
|
+
/**
|
|
8
|
+
* Resolve the lexical scope for a node via modern SourceCode APIs.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* ESLint v9+ exposes scope lookups via `context.sourceCode.getScope(node)`.
|
|
12
|
+
* This helper intentionally does not use legacy `context.getScope()`.
|
|
13
|
+
*
|
|
14
|
+
* @param context - Active rule context.
|
|
15
|
+
* @param node - Node used as the scope lookup anchor.
|
|
16
|
+
*
|
|
17
|
+
* @returns Scope when available; otherwise `null`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getScopeFromContextSourceCode: <MessageIds extends string, Options extends Readonly<UnknownArray>>(context: Readonly<TSESLint.RuleContext<MessageIds, Options>>, node: Readonly<TSESTree.Node>) => null | Readonly<TSESLint.Scope.Scope>;
|
|
20
|
+
//# sourceMappingURL=scope-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-resolution.d.ts","sourceRoot":"","sources":["../../src/_internal/scope-resolution.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;AAQ9C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GACtC,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,QAAQ,CAAC,YAAY,CAAC,EAEtC,SAAS,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAC5D,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAC9B,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAUtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { safeCastTo } from "ts-extras";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the lexical scope for a node via modern SourceCode APIs.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* ESLint v9+ exposes scope lookups via `context.sourceCode.getScope(node)`.
|
|
7
|
+
* This helper intentionally does not use legacy `context.getScope()`.
|
|
8
|
+
*
|
|
9
|
+
* @param context - Active rule context.
|
|
10
|
+
* @param node - Node used as the scope lookup anchor.
|
|
11
|
+
*
|
|
12
|
+
* @returns Scope when available; otherwise `null`.
|
|
13
|
+
*/
|
|
14
|
+
export const getScopeFromContextSourceCode = (context, node) => {
|
|
15
|
+
const sourceCodeMaybeWithScope = safeCastTo(context.sourceCode);
|
|
16
|
+
if (typeof sourceCodeMaybeWithScope?.getScope !== "function") {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return sourceCodeMaybeWithScope.getScope(node);
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=scope-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-resolution.js","sourceRoot":"","sources":["../../src/_internal/scope-resolution.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAMvC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAIzC,OAA4D,EAC5D,IAA6B,EACQ,EAAE;IACvC,MAAM,wBAAwB,GAAG,UAAU,CAEzC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtB,IAAI,OAAO,wBAAwB,EAAE,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* Scope-chain helpers for reliable variable-resolution checks.
|
|
4
|
+
*/
|
|
5
|
+
import type { TSESLint } from "@typescript-eslint/utils";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve a variable binding by walking the current scope and all parent
|
|
8
|
+
* scopes.
|
|
9
|
+
*
|
|
10
|
+
* @param scope - Initial scope to inspect.
|
|
11
|
+
* @param variableName - Identifier name to resolve.
|
|
12
|
+
*
|
|
13
|
+
* @returns Matched variable binding from the nearest scope chain; otherwise
|
|
14
|
+
* `null`.
|
|
15
|
+
*/
|
|
16
|
+
export declare const getVariableInScopeChain: (scope: Readonly<null | Readonly<TSESLint.Scope.Scope>>, variableName: string) => null | TSESLint.Scope.Variable;
|
|
17
|
+
//# sourceMappingURL=scope-variable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-variable.d.ts","sourceRoot":"","sources":["../../src/_internal/scope-variable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIzD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,GAChC,OAAO,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EACtD,cAAc,MAAM,KACrB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAwBxB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { resolveFirstValueInLinkedStructure } from "./cycle-safe-linked-search.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a variable binding by walking the current scope and all parent
|
|
4
|
+
* scopes.
|
|
5
|
+
*
|
|
6
|
+
* @param scope - Initial scope to inspect.
|
|
7
|
+
* @param variableName - Identifier name to resolve.
|
|
8
|
+
*
|
|
9
|
+
* @returns Matched variable binding from the nearest scope chain; otherwise
|
|
10
|
+
* `null`.
|
|
11
|
+
*/
|
|
12
|
+
export const getVariableInScopeChain = (scope, variableName) => {
|
|
13
|
+
const lookupResult = resolveFirstValueInLinkedStructure({
|
|
14
|
+
getNextNode: (currentScope) => currentScope.upper,
|
|
15
|
+
resolveValue: (currentScope) => {
|
|
16
|
+
const variable = currentScope.set.get(variableName);
|
|
17
|
+
return variable === undefined
|
|
18
|
+
? {
|
|
19
|
+
found: false,
|
|
20
|
+
}
|
|
21
|
+
: {
|
|
22
|
+
found: true,
|
|
23
|
+
value: variable,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
startNode: scope,
|
|
27
|
+
});
|
|
28
|
+
return lookupResult.found ? lookupResult.value : null;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=scope-variable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-variable.js","sourceRoot":"","sources":["../../src/_internal/scope-variable.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,KAAsD,EACtD,YAAoB,EACU,EAAE;IAChC,MAAM,YAAY,GAAG,kCAAkC,CAGrD;QACE,WAAW,EAAE,CACT,YAA4C,EACP,EAAE,CAAC,YAAY,CAAC,KAAK;QAC9D,YAAY,EAAE,CAAC,YAA4C,EAAE,EAAE;YAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEpD,OAAO,QAAQ,KAAK,SAAS;gBACzB,CAAC,CAAC;oBACI,KAAK,EAAE,KAAK;iBACf;gBACH,CAAC,CAAC;oBACI,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,QAAQ;iBAClB,CAAC;QACZ,CAAC;QACD,SAAS,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC,CAAC"}
|