@memberjunction/react-linter 0.0.1 → 5.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component-linter.d.ts +77 -0
- package/dist/component-linter.d.ts.map +1 -0
- package/dist/component-linter.js +1206 -0
- package/dist/component-linter.js.map +1 -0
- package/dist/control-flow-analyzer.d.ts +184 -0
- package/dist/control-flow-analyzer.d.ts.map +1 -0
- package/dist/control-flow-analyzer.js +798 -0
- package/dist/control-flow-analyzer.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/library-lint-cache.d.ts +50 -0
- package/dist/library-lint-cache.d.ts.map +1 -0
- package/dist/library-lint-cache.js +173 -0
- package/dist/library-lint-cache.js.map +1 -0
- package/dist/lint-rule.d.ts +70 -0
- package/dist/lint-rule.d.ts.map +1 -0
- package/dist/lint-rule.js +30 -0
- package/dist/lint-rule.js.map +1 -0
- package/dist/lint-utils.d.ts +131 -0
- package/dist/lint-utils.d.ts.map +1 -0
- package/dist/lint-utils.js +358 -0
- package/dist/lint-utils.js.map +1 -0
- package/dist/linter-options.d.ts +51 -0
- package/dist/linter-options.d.ts.map +1 -0
- package/dist/linter-options.js +2 -0
- package/dist/linter-options.js.map +1 -0
- package/dist/prop-value-extractor.d.ts +147 -0
- package/dist/prop-value-extractor.d.ts.map +1 -0
- package/dist/prop-value-extractor.js +472 -0
- package/dist/prop-value-extractor.js.map +1 -0
- package/dist/runtime-rules/ai-tools-availability-check.d.ts +9 -0
- package/dist/runtime-rules/ai-tools-availability-check.d.ts.map +1 -0
- package/dist/runtime-rules/ai-tools-availability-check.js +223 -0
- package/dist/runtime-rules/ai-tools-availability-check.js.map +1 -0
- package/dist/runtime-rules/callback-event-validation.d.ts +22 -0
- package/dist/runtime-rules/callback-event-validation.d.ts.map +1 -0
- package/dist/runtime-rules/callback-event-validation.js +561 -0
- package/dist/runtime-rules/callback-event-validation.js.map +1 -0
- package/dist/runtime-rules/chart-field-validation.d.ts +10 -0
- package/dist/runtime-rules/chart-field-validation.d.ts.map +1 -0
- package/dist/runtime-rules/chart-field-validation.js +270 -0
- package/dist/runtime-rules/chart-field-validation.js.map +1 -0
- package/dist/runtime-rules/child-component-prop-validation.d.ts +11 -0
- package/dist/runtime-rules/child-component-prop-validation.d.ts.map +1 -0
- package/dist/runtime-rules/child-component-prop-validation.js +443 -0
- package/dist/runtime-rules/child-component-prop-validation.js.map +1 -0
- package/dist/runtime-rules/component-name-mismatch.d.ts +19 -0
- package/dist/runtime-rules/component-name-mismatch.d.ts.map +1 -0
- package/dist/runtime-rules/component-name-mismatch.js +82 -0
- package/dist/runtime-rules/component-name-mismatch.js.map +1 -0
- package/dist/runtime-rules/component-not-in-dependencies.d.ts +20 -0
- package/dist/runtime-rules/component-not-in-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/component-not-in-dependencies.js +92 -0
- package/dist/runtime-rules/component-not-in-dependencies.js.map +1 -0
- package/dist/runtime-rules/component-props-validation.d.ts +25 -0
- package/dist/runtime-rules/component-props-validation.d.ts.map +1 -0
- package/dist/runtime-rules/component-props-validation.js +228 -0
- package/dist/runtime-rules/component-props-validation.js.map +1 -0
- package/dist/runtime-rules/component-usage-without-destructuring.d.ts +20 -0
- package/dist/runtime-rules/component-usage-without-destructuring.d.ts.map +1 -0
- package/dist/runtime-rules/component-usage-without-destructuring.js +124 -0
- package/dist/runtime-rules/component-usage-without-destructuring.js.map +1 -0
- package/dist/runtime-rules/data-result-validation.d.ts +9 -0
- package/dist/runtime-rules/data-result-validation.d.ts.map +1 -0
- package/dist/runtime-rules/data-result-validation.js +763 -0
- package/dist/runtime-rules/data-result-validation.js.map +1 -0
- package/dist/runtime-rules/datagrid-field-validation.d.ts +10 -0
- package/dist/runtime-rules/datagrid-field-validation.d.ts.map +1 -0
- package/dist/runtime-rules/datagrid-field-validation.js +249 -0
- package/dist/runtime-rules/datagrid-field-validation.js.map +1 -0
- package/dist/runtime-rules/dependency-shadowing.d.ts +20 -0
- package/dist/runtime-rules/dependency-shadowing.d.ts.map +1 -0
- package/dist/runtime-rules/dependency-shadowing.js +147 -0
- package/dist/runtime-rules/dependency-shadowing.js.map +1 -0
- package/dist/runtime-rules/entity-field-access-validation.d.ts +12 -0
- package/dist/runtime-rules/entity-field-access-validation.d.ts.map +1 -0
- package/dist/runtime-rules/entity-field-access-validation.js +304 -0
- package/dist/runtime-rules/entity-field-access-validation.js.map +1 -0
- package/dist/runtime-rules/event-parameter-validation.d.ts +22 -0
- package/dist/runtime-rules/event-parameter-validation.d.ts.map +1 -0
- package/dist/runtime-rules/event-parameter-validation.js +406 -0
- package/dist/runtime-rules/event-parameter-validation.js.map +1 -0
- package/dist/runtime-rules/index.d.ts +61 -0
- package/dist/runtime-rules/index.d.ts.map +1 -0
- package/dist/runtime-rules/index.js +62 -0
- package/dist/runtime-rules/index.js.map +1 -0
- package/dist/runtime-rules/library-variable-names.d.ts +24 -0
- package/dist/runtime-rules/library-variable-names.d.ts.map +1 -0
- package/dist/runtime-rules/library-variable-names.js +88 -0
- package/dist/runtime-rules/library-variable-names.js.map +1 -0
- package/dist/runtime-rules/no-child-implementation.d.ts +18 -0
- package/dist/runtime-rules/no-child-implementation.d.ts.map +1 -0
- package/dist/runtime-rules/no-child-implementation.js +57 -0
- package/dist/runtime-rules/no-child-implementation.js.map +1 -0
- package/dist/runtime-rules/no-data-prop.d.ts +22 -0
- package/dist/runtime-rules/no-data-prop.d.ts.map +1 -0
- package/dist/runtime-rules/no-data-prop.js +111 -0
- package/dist/runtime-rules/no-data-prop.js.map +1 -0
- package/dist/runtime-rules/no-export-statements.d.ts +18 -0
- package/dist/runtime-rules/no-export-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-export-statements.js +143 -0
- package/dist/runtime-rules/no-export-statements.js.map +1 -0
- package/dist/runtime-rules/no-iife-wrapper.d.ts +18 -0
- package/dist/runtime-rules/no-iife-wrapper.d.ts.map +1 -0
- package/dist/runtime-rules/no-iife-wrapper.js +217 -0
- package/dist/runtime-rules/no-iife-wrapper.js.map +1 -0
- package/dist/runtime-rules/no-import-statements.d.ts +18 -0
- package/dist/runtime-rules/no-import-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-import-statements.js +65 -0
- package/dist/runtime-rules/no-import-statements.js.map +1 -0
- package/dist/runtime-rules/no-react-destructuring.d.ts +18 -0
- package/dist/runtime-rules/no-react-destructuring.d.ts.map +1 -0
- package/dist/runtime-rules/no-react-destructuring.js +60 -0
- package/dist/runtime-rules/no-react-destructuring.js.map +1 -0
- package/dist/runtime-rules/no-require-statements.d.ts +18 -0
- package/dist/runtime-rules/no-require-statements.d.ts.map +1 -0
- package/dist/runtime-rules/no-require-statements.js +109 -0
- package/dist/runtime-rules/no-require-statements.js.map +1 -0
- package/dist/runtime-rules/no-return-component.d.ts +18 -0
- package/dist/runtime-rules/no-return-component.d.ts.map +1 -0
- package/dist/runtime-rules/no-return-component.js +106 -0
- package/dist/runtime-rules/no-return-component.js.map +1 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.d.ts +20 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.d.ts.map +1 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.js +75 -0
- package/dist/runtime-rules/no-unwrap-utility-libs.js.map +1 -0
- package/dist/runtime-rules/no-use-reducer.d.ts +19 -0
- package/dist/runtime-rules/no-use-reducer.d.ts.map +1 -0
- package/dist/runtime-rules/no-use-reducer.js +78 -0
- package/dist/runtime-rules/no-use-reducer.js.map +1 -0
- package/dist/runtime-rules/no-window-access.d.ts +23 -0
- package/dist/runtime-rules/no-window-access.d.ts.map +1 -0
- package/dist/runtime-rules/no-window-access.js +136 -0
- package/dist/runtime-rules/no-window-access.js.map +1 -0
- package/dist/runtime-rules/noisy-settings-updates.d.ts +18 -0
- package/dist/runtime-rules/noisy-settings-updates.d.ts.map +1 -0
- package/dist/runtime-rules/noisy-settings-updates.js +110 -0
- package/dist/runtime-rules/noisy-settings-updates.js.map +1 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts +30 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts.map +1 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.js +220 -0
- package/dist/runtime-rules/overflow-hidden-on-layout-container.js.map +1 -0
- package/dist/runtime-rules/pass-standard-props.d.ts +19 -0
- package/dist/runtime-rules/pass-standard-props.d.ts.map +1 -0
- package/dist/runtime-rules/pass-standard-props.js +82 -0
- package/dist/runtime-rules/pass-standard-props.js.map +1 -0
- package/dist/runtime-rules/prefer-async-await.d.ts +17 -0
- package/dist/runtime-rules/prefer-async-await.d.ts.map +1 -0
- package/dist/runtime-rules/prefer-async-await.js +52 -0
- package/dist/runtime-rules/prefer-async-await.js.map +1 -0
- package/dist/runtime-rules/prefer-jsx-syntax.d.ts +17 -0
- package/dist/runtime-rules/prefer-jsx-syntax.d.ts.map +1 -0
- package/dist/runtime-rules/prefer-jsx-syntax.js +51 -0
- package/dist/runtime-rules/prefer-jsx-syntax.js.map +1 -0
- package/dist/runtime-rules/prop-state-sync.d.ts +19 -0
- package/dist/runtime-rules/prop-state-sync.d.ts.map +1 -0
- package/dist/runtime-rules/prop-state-sync.js +76 -0
- package/dist/runtime-rules/prop-state-sync.js.map +1 -0
- package/dist/runtime-rules/property-name-consistency.d.ts +20 -0
- package/dist/runtime-rules/property-name-consistency.d.ts.map +1 -0
- package/dist/runtime-rules/property-name-consistency.js +172 -0
- package/dist/runtime-rules/property-name-consistency.js.map +1 -0
- package/dist/runtime-rules/query-result-field-access-validation.d.ts +10 -0
- package/dist/runtime-rules/query-result-field-access-validation.d.ts.map +1 -0
- package/dist/runtime-rules/query-result-field-access-validation.js +304 -0
- package/dist/runtime-rules/query-result-field-access-validation.js.map +1 -0
- package/dist/runtime-rules/react-component-naming.d.ts +19 -0
- package/dist/runtime-rules/react-component-naming.d.ts.map +1 -0
- package/dist/runtime-rules/react-component-naming.js +72 -0
- package/dist/runtime-rules/react-component-naming.js.map +1 -0
- package/dist/runtime-rules/react-hooks-rules.d.ts +27 -0
- package/dist/runtime-rules/react-hooks-rules.d.ts.map +1 -0
- package/dist/runtime-rules/react-hooks-rules.js +223 -0
- package/dist/runtime-rules/react-hooks-rules.js.map +1 -0
- package/dist/runtime-rules/required-queries-not-called.d.ts +19 -0
- package/dist/runtime-rules/required-queries-not-called.d.ts.map +1 -0
- package/dist/runtime-rules/required-queries-not-called.js +146 -0
- package/dist/runtime-rules/required-queries-not-called.js.map +1 -0
- package/dist/runtime-rules/runquery-call-validation.d.ts +11 -0
- package/dist/runtime-rules/runquery-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/runquery-call-validation.js +886 -0
- package/dist/runtime-rules/runquery-call-validation.js.map +1 -0
- package/dist/runtime-rules/runview-call-validation.d.ts +10 -0
- package/dist/runtime-rules/runview-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/runview-call-validation.js +336 -0
- package/dist/runtime-rules/runview-call-validation.js.map +1 -0
- package/dist/runtime-rules/saved-user-settings-pattern.d.ts +19 -0
- package/dist/runtime-rules/saved-user-settings-pattern.d.ts.map +1 -0
- package/dist/runtime-rules/saved-user-settings-pattern.js +90 -0
- package/dist/runtime-rules/saved-user-settings-pattern.js.map +1 -0
- package/dist/runtime-rules/search-availability-check.d.ts +9 -0
- package/dist/runtime-rules/search-availability-check.d.ts.map +1 -0
- package/dist/runtime-rules/search-availability-check.js +220 -0
- package/dist/runtime-rules/search-availability-check.js.map +1 -0
- package/dist/runtime-rules/search-call-validation.d.ts +9 -0
- package/dist/runtime-rules/search-call-validation.d.ts.map +1 -0
- package/dist/runtime-rules/search-call-validation.js +336 -0
- package/dist/runtime-rules/search-call-validation.js.map +1 -0
- package/dist/runtime-rules/server-reload-on-client-operation.d.ts +18 -0
- package/dist/runtime-rules/server-reload-on-client-operation.d.ts.map +1 -0
- package/dist/runtime-rules/server-reload-on-client-operation.js +107 -0
- package/dist/runtime-rules/server-reload-on-client-operation.js.map +1 -0
- package/dist/runtime-rules/single-function-only.d.ts +18 -0
- package/dist/runtime-rules/single-function-only.d.ts.map +1 -0
- package/dist/runtime-rules/single-function-only.js +103 -0
- package/dist/runtime-rules/single-function-only.js.map +1 -0
- package/dist/runtime-rules/string-replace-all-occurrences.d.ts +19 -0
- package/dist/runtime-rules/string-replace-all-occurrences.d.ts.map +1 -0
- package/dist/runtime-rules/string-replace-all-occurrences.js +109 -0
- package/dist/runtime-rules/string-replace-all-occurrences.js.map +1 -0
- package/dist/runtime-rules/string-template-validation.d.ts +22 -0
- package/dist/runtime-rules/string-template-validation.d.ts.map +1 -0
- package/dist/runtime-rules/string-template-validation.js +163 -0
- package/dist/runtime-rules/string-template-validation.js.map +1 -0
- package/dist/runtime-rules/styles-validation.d.ts +10 -0
- package/dist/runtime-rules/styles-validation.d.ts.map +1 -0
- package/dist/runtime-rules/styles-validation.js +153 -0
- package/dist/runtime-rules/styles-validation.js.map +1 -0
- package/dist/runtime-rules/type-inference-errors.d.ts +23 -0
- package/dist/runtime-rules/type-inference-errors.d.ts.map +1 -0
- package/dist/runtime-rules/type-inference-errors.js +53 -0
- package/dist/runtime-rules/type-inference-errors.js.map +1 -0
- package/dist/runtime-rules/type-mismatch-operation.d.ts +23 -0
- package/dist/runtime-rules/type-mismatch-operation.d.ts.map +1 -0
- package/dist/runtime-rules/type-mismatch-operation.js +145 -0
- package/dist/runtime-rules/type-mismatch-operation.js.map +1 -0
- package/dist/runtime-rules/undefined-component-usage.d.ts +20 -0
- package/dist/runtime-rules/undefined-component-usage.d.ts.map +1 -0
- package/dist/runtime-rules/undefined-component-usage.js +138 -0
- package/dist/runtime-rules/undefined-component-usage.js.map +1 -0
- package/dist/runtime-rules/undefined-jsx-component.d.ts +25 -0
- package/dist/runtime-rules/undefined-jsx-component.d.ts.map +1 -0
- package/dist/runtime-rules/undefined-jsx-component.js +269 -0
- package/dist/runtime-rules/undefined-jsx-component.js.map +1 -0
- package/dist/runtime-rules/unsafe-array-operations.d.ts +25 -0
- package/dist/runtime-rules/unsafe-array-operations.d.ts.map +1 -0
- package/dist/runtime-rules/unsafe-array-operations.js +347 -0
- package/dist/runtime-rules/unsafe-array-operations.js.map +1 -0
- package/dist/runtime-rules/unsafe-formatting-methods.d.ts +24 -0
- package/dist/runtime-rules/unsafe-formatting-methods.d.ts.map +1 -0
- package/dist/runtime-rules/unsafe-formatting-methods.js +277 -0
- package/dist/runtime-rules/unsafe-formatting-methods.js.map +1 -0
- package/dist/runtime-rules/unused-component-dependencies.d.ts +19 -0
- package/dist/runtime-rules/unused-component-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/unused-component-dependencies.js +90 -0
- package/dist/runtime-rules/unused-component-dependencies.js.map +1 -0
- package/dist/runtime-rules/unused-libraries.d.ts +19 -0
- package/dist/runtime-rules/unused-libraries.d.ts.map +1 -0
- package/dist/runtime-rules/unused-libraries.js +127 -0
- package/dist/runtime-rules/unused-libraries.js.map +1 -0
- package/dist/runtime-rules/use-function-declaration.d.ts +18 -0
- package/dist/runtime-rules/use-function-declaration.d.ts.map +1 -0
- package/dist/runtime-rules/use-function-declaration.js +127 -0
- package/dist/runtime-rules/use-function-declaration.js.map +1 -0
- package/dist/runtime-rules/use-unwrap-components.d.ts +19 -0
- package/dist/runtime-rules/use-unwrap-components.d.ts.map +1 -0
- package/dist/runtime-rules/use-unwrap-components.js +84 -0
- package/dist/runtime-rules/use-unwrap-components.js.map +1 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts +23 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts.map +1 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.js +215 -0
- package/dist/runtime-rules/useeffect-unstable-dependencies.js.map +1 -0
- package/dist/runtime-rules/utilities-api-validation.d.ts +24 -0
- package/dist/runtime-rules/utilities-api-validation.d.ts.map +1 -0
- package/dist/runtime-rules/utilities-api-validation.js +121 -0
- package/dist/runtime-rules/utilities-api-validation.js.map +1 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts +20 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts.map +1 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.js +58 -0
- package/dist/runtime-rules/utilities-no-direct-instantiation.js.map +1 -0
- package/dist/runtime-rules/validate-component-references.d.ts +19 -0
- package/dist/runtime-rules/validate-component-references.d.ts.map +1 -0
- package/dist/runtime-rules/validate-component-references.js +255 -0
- package/dist/runtime-rules/validate-component-references.js.map +1 -0
- package/dist/schema-validation/component-prop-rule.d.ts +131 -0
- package/dist/schema-validation/component-prop-rule.d.ts.map +1 -0
- package/dist/schema-validation/component-prop-rule.js +625 -0
- package/dist/schema-validation/component-prop-rule.js.map +1 -0
- package/dist/schema-validation/index.d.ts +26 -0
- package/dist/schema-validation/index.d.ts.map +1 -0
- package/dist/schema-validation/index.js +26 -0
- package/dist/schema-validation/index.js.map +1 -0
- package/dist/schema-validation/semantic-validators/index.d.ts +23 -0
- package/dist/schema-validation/semantic-validators/index.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/index.js +23 -0
- package/dist/schema-validation/semantic-validators/index.js.map +1 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.d.ts +43 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.js +94 -0
- package/dist/schema-validation/semantic-validators/required-when-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts +122 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.js +166 -0
- package/dist/schema-validation/semantic-validators/semantic-validator-registry.js.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.d.ts +260 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.js +301 -0
- package/dist/schema-validation/semantic-validators/semantic-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts +115 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js +381 -0
- package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts +60 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js +195 -0
- package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js.map +1 -0
- package/dist/schema-validation/semantic-validators/validation-context.d.ts +335 -0
- package/dist/schema-validation/semantic-validators/validation-context.d.ts.map +1 -0
- package/dist/schema-validation/semantic-validators/validation-context.js +13 -0
- package/dist/schema-validation/semantic-validators/validation-context.js.map +1 -0
- package/dist/styles-type-analyzer.d.ts +64 -0
- package/dist/styles-type-analyzer.d.ts.map +1 -0
- package/dist/styles-type-analyzer.js +242 -0
- package/dist/styles-type-analyzer.js.map +1 -0
- package/dist/type-context.d.ts +184 -0
- package/dist/type-context.d.ts.map +1 -0
- package/dist/type-context.js +415 -0
- package/dist/type-context.js.map +1 -0
- package/dist/type-inference-engine.d.ts +181 -0
- package/dist/type-inference-engine.d.ts.map +1 -0
- package/dist/type-inference-engine.js +1151 -0
- package/dist/type-inference-engine.js.map +1 -0
- package/dist/type-rules/type-compatibility-rule.d.ts +85 -0
- package/dist/type-rules/type-compatibility-rule.d.ts.map +1 -0
- package/dist/type-rules/type-compatibility-rule.js +211 -0
- package/dist/type-rules/type-compatibility-rule.js.map +1 -0
- package/package.json +35 -7
- package/README.md +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-flow-analyzer.js","sourceRoot":"","sources":["../src/control-flow-analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ComponentLinter, LintResult, Violation } from './component-linter.js';
|
|
2
|
+
export { BaseLintRule } from './lint-rule.js';
|
|
3
|
+
export { LibraryLintCache, CompiledLibraryRules, CompiledValidator, } from './library-lint-cache.js';
|
|
4
|
+
export type { LinterOptions } from './linter-options.js';
|
|
5
|
+
import './runtime-rules/index.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ComponentLinter } from './component-linter.js';
|
|
2
|
+
export { BaseLintRule } from './lint-rule.js';
|
|
3
|
+
export { LibraryLintCache, } from './library-lint-cache.js';
|
|
4
|
+
// Side-effect import — ensures all built-in @RegisterClass rules are registered
|
|
5
|
+
// when the package is imported. The barrel pulls in component-linter, which
|
|
6
|
+
// already has this side-effect import internally, so this line is defensive.
|
|
7
|
+
import './runtime-rules/index.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAE9B,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,OAAO,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library lint rule cache with compiled validators
|
|
3
|
+
* Ensures we only load and compile library lint rules once
|
|
4
|
+
*/
|
|
5
|
+
import { MJComponentLibraryEntity } from '@memberjunction/core-entities';
|
|
6
|
+
import { UserInfo } from '@memberjunction/core';
|
|
7
|
+
import * as t from '@babel/types';
|
|
8
|
+
export interface CompiledValidator {
|
|
9
|
+
description: string;
|
|
10
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
11
|
+
validateFn: (ast: t.File, path: any, t: typeof import('@babel/types'), context: any) => any;
|
|
12
|
+
}
|
|
13
|
+
export interface CompiledLibraryRules {
|
|
14
|
+
library: MJComponentLibraryEntity;
|
|
15
|
+
initialization?: any;
|
|
16
|
+
lifecycle?: any;
|
|
17
|
+
validators?: Record<string, CompiledValidator>;
|
|
18
|
+
options?: any;
|
|
19
|
+
}
|
|
20
|
+
export declare class LibraryLintCache {
|
|
21
|
+
private static instance;
|
|
22
|
+
private compiledRules;
|
|
23
|
+
private loadingPromise;
|
|
24
|
+
private isLoaded;
|
|
25
|
+
private constructor();
|
|
26
|
+
static getInstance(): LibraryLintCache;
|
|
27
|
+
/**
|
|
28
|
+
* Load and compile all library lint rules
|
|
29
|
+
* Returns existing promise if already loading
|
|
30
|
+
*/
|
|
31
|
+
loadLibraryRules(contextUser?: UserInfo): Promise<void>;
|
|
32
|
+
private performLoad;
|
|
33
|
+
/**
|
|
34
|
+
* Get compiled rules for a specific library
|
|
35
|
+
*/
|
|
36
|
+
getLibraryRules(libraryName: string): CompiledLibraryRules | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Get all compiled library rules
|
|
39
|
+
*/
|
|
40
|
+
getAllLibraryRules(): CompiledLibraryRules[];
|
|
41
|
+
/**
|
|
42
|
+
* Clear the cache (useful for testing or when libraries are updated)
|
|
43
|
+
*/
|
|
44
|
+
clearCache(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Manually add library rules for testing without database access
|
|
47
|
+
*/
|
|
48
|
+
addTestLibraryRules(libraryName: string, lintRules: any): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=library-lint-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-lint-cache.d.ts","sourceRoot":"","sources":["../src/library-lint-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAA2B,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC;CAC7F;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;WAEO,WAAW,IAAI,gBAAgB;IAO7C;;;OAGG;IACU,gBAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YA4BtD,WAAW;IAmEzB;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAI7E;;OAEG;IACI,kBAAkB,IAAI,oBAAoB,EAAE;IAInD;;OAEG;IACI,UAAU,IAAI,IAAI;IAMzB;;OAEG;IACI,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI;CAkDtE"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library lint rule cache with compiled validators
|
|
3
|
+
* Ensures we only load and compile library lint rules once
|
|
4
|
+
*/
|
|
5
|
+
import { ComponentMetadataEngine } from '@memberjunction/core-entities';
|
|
6
|
+
export class LibraryLintCache {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.compiledRules = new Map();
|
|
9
|
+
this.loadingPromise = null;
|
|
10
|
+
this.isLoaded = false;
|
|
11
|
+
}
|
|
12
|
+
static getInstance() {
|
|
13
|
+
if (!LibraryLintCache.instance) {
|
|
14
|
+
LibraryLintCache.instance = new LibraryLintCache();
|
|
15
|
+
}
|
|
16
|
+
return LibraryLintCache.instance;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Load and compile all library lint rules
|
|
20
|
+
* Returns existing promise if already loading
|
|
21
|
+
*/
|
|
22
|
+
async loadLibraryRules(contextUser) {
|
|
23
|
+
// If already loaded, return immediately
|
|
24
|
+
if (this.isLoaded) {
|
|
25
|
+
return Promise.resolve();
|
|
26
|
+
}
|
|
27
|
+
// If we have manually added rules, consider it loaded
|
|
28
|
+
if (this.compiledRules.size > 0) {
|
|
29
|
+
this.isLoaded = true;
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
}
|
|
32
|
+
// If loading is in progress, return the existing promise
|
|
33
|
+
if (this.loadingPromise) {
|
|
34
|
+
return this.loadingPromise;
|
|
35
|
+
}
|
|
36
|
+
// Start loading
|
|
37
|
+
this.loadingPromise = this.performLoad(contextUser);
|
|
38
|
+
try {
|
|
39
|
+
await this.loadingPromise;
|
|
40
|
+
this.isLoaded = true;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
this.loadingPromise = null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async performLoad(contextUser) {
|
|
47
|
+
// Initialize ComponentMetadataEngine if needed
|
|
48
|
+
await ComponentMetadataEngine.Instance.Config(false, contextUser);
|
|
49
|
+
// Get all libraries
|
|
50
|
+
const allLibraries = ComponentMetadataEngine.Instance.ComponentLibraries;
|
|
51
|
+
// Process each library
|
|
52
|
+
for (const library of allLibraries) {
|
|
53
|
+
if (library.LintRules) {
|
|
54
|
+
try {
|
|
55
|
+
// Parse the LintRules JSON
|
|
56
|
+
const lintRules = typeof library.LintRules === 'string'
|
|
57
|
+
? JSON.parse(library.LintRules)
|
|
58
|
+
: library.LintRules;
|
|
59
|
+
// Compile validators if they exist
|
|
60
|
+
const compiledRules = {
|
|
61
|
+
library,
|
|
62
|
+
initialization: lintRules.initialization,
|
|
63
|
+
lifecycle: lintRules.lifecycle,
|
|
64
|
+
options: lintRules.options
|
|
65
|
+
};
|
|
66
|
+
// Compile validator functions
|
|
67
|
+
if (lintRules.validators) {
|
|
68
|
+
compiledRules.validators = {};
|
|
69
|
+
for (const [name, validator] of Object.entries(lintRules.validators)) {
|
|
70
|
+
if (validator && typeof validator === 'object') {
|
|
71
|
+
const validatorDef = validator;
|
|
72
|
+
if (validatorDef.validate) {
|
|
73
|
+
try {
|
|
74
|
+
// The validate property already contains the resolved JavaScript code from the DB
|
|
75
|
+
// The validator returns a violation object, so we need to push it to context.violations
|
|
76
|
+
const validateFn = new Function('ast', 'path', 't', 'context', `const result = (${validatorDef.validate})(ast, path, t, context);
|
|
77
|
+
if (result) {
|
|
78
|
+
// If the validator returned a violation, push it to context
|
|
79
|
+
context.violations.push(result);
|
|
80
|
+
}
|
|
81
|
+
return result;`);
|
|
82
|
+
compiledRules.validators[name] = {
|
|
83
|
+
description: validatorDef.description,
|
|
84
|
+
severity: validatorDef.severity,
|
|
85
|
+
validateFn
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.warn(`Failed to compile validator ${name} for library ${library.Name}:`, error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Cache the compiled rules
|
|
96
|
+
this.compiledRules.set(library.Name || '', compiledRules);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.warn(`Failed to parse LintRules for library ${library.Name}:`, error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get compiled rules for a specific library
|
|
106
|
+
*/
|
|
107
|
+
getLibraryRules(libraryName) {
|
|
108
|
+
return this.compiledRules.get(libraryName);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get all compiled library rules
|
|
112
|
+
*/
|
|
113
|
+
getAllLibraryRules() {
|
|
114
|
+
return Array.from(this.compiledRules.values());
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Clear the cache (useful for testing or when libraries are updated)
|
|
118
|
+
*/
|
|
119
|
+
clearCache() {
|
|
120
|
+
this.compiledRules.clear();
|
|
121
|
+
this.isLoaded = false;
|
|
122
|
+
this.loadingPromise = null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Manually add library rules for testing without database access
|
|
126
|
+
*/
|
|
127
|
+
addTestLibraryRules(libraryName, lintRules) {
|
|
128
|
+
try {
|
|
129
|
+
// Compile validators if they exist
|
|
130
|
+
const compiledRules = {
|
|
131
|
+
library: { Name: libraryName },
|
|
132
|
+
initialization: lintRules.initialization,
|
|
133
|
+
lifecycle: lintRules.lifecycle,
|
|
134
|
+
options: lintRules.options
|
|
135
|
+
};
|
|
136
|
+
// Compile validator functions
|
|
137
|
+
if (lintRules.validators) {
|
|
138
|
+
compiledRules.validators = {};
|
|
139
|
+
for (const [name, validator] of Object.entries(lintRules.validators)) {
|
|
140
|
+
if (validator && typeof validator === 'object') {
|
|
141
|
+
const validatorDef = validator;
|
|
142
|
+
if (validatorDef.validate) {
|
|
143
|
+
try {
|
|
144
|
+
// The validate property already contains the resolved JavaScript code
|
|
145
|
+
// The validator returns a violation object, so we need to push it to context.violations
|
|
146
|
+
const validateFn = new Function('ast', 'path', 't', 'context', `const result = (${validatorDef.validate})(ast, path, t, context);
|
|
147
|
+
if (result) {
|
|
148
|
+
// If the validator returned a violation, push it to context
|
|
149
|
+
context.violations.push(result);
|
|
150
|
+
}
|
|
151
|
+
return result;`);
|
|
152
|
+
compiledRules.validators[name] = {
|
|
153
|
+
description: validatorDef.description,
|
|
154
|
+
severity: validatorDef.severity,
|
|
155
|
+
validateFn
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.warn(`Failed to compile validator ${name} for library ${libraryName}:`, error);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Cache the compiled rules
|
|
166
|
+
this.compiledRules.set(libraryName, compiledRules);
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
console.warn(`Failed to add test rules for library ${libraryName}:`, error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=library-lint-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-lint-cache.js","sourceRoot":"","sources":["../src/library-lint-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import { ComponentSpec } from '@memberjunction/interactive-component-types';
|
|
3
|
+
import type { LinterOptions } from './linter-options.js';
|
|
4
|
+
import { Violation } from './component-linter.js';
|
|
5
|
+
import { TypeContext } from './type-context.js';
|
|
6
|
+
/**
|
|
7
|
+
* Base class for all component linter rules.
|
|
8
|
+
*
|
|
9
|
+
* Rules extend this class and decorate with `@RegisterClass(BaseLintRule, 'rule-name')`
|
|
10
|
+
* to be automatically discovered by the linter via MJGlobal's ClassFactory.
|
|
11
|
+
*
|
|
12
|
+
* External packages (e.g., Skip-Brain) can define custom rules by extending this class
|
|
13
|
+
* and registering them — the linter will discover them at runtime through the manifest system.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { BaseLintRule } from '@memberjunction/react-linter';
|
|
18
|
+
* import { RegisterClass } from '@memberjunction/global';
|
|
19
|
+
*
|
|
20
|
+
* @RegisterClass(BaseLintRule, 'my-custom-rule')
|
|
21
|
+
* export class MyCustomRule extends BaseLintRule {
|
|
22
|
+
* Name = 'my-custom-rule';
|
|
23
|
+
* AppliesTo = 'all' as const;
|
|
24
|
+
*
|
|
25
|
+
* Test(ast, componentName) {
|
|
26
|
+
* const violations = [];
|
|
27
|
+
* // ... your validation logic
|
|
28
|
+
* return violations;
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare abstract class BaseLintRule {
|
|
34
|
+
/**
|
|
35
|
+
* Unique name of the rule (e.g., 'no-import-statements').
|
|
36
|
+
* Must match the key used in @RegisterClass(BaseLintRule, 'rule-name').
|
|
37
|
+
*/
|
|
38
|
+
abstract get Name(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Scope where this rule applies:
|
|
41
|
+
* - 'all': Applies to all components (root and child)
|
|
42
|
+
* - 'child': Only applies to child components
|
|
43
|
+
* - 'root': Only applies to root components
|
|
44
|
+
*/
|
|
45
|
+
abstract get AppliesTo(): 'all' | 'child' | 'root';
|
|
46
|
+
/**
|
|
47
|
+
* Test function that analyzes the AST and returns violations.
|
|
48
|
+
*
|
|
49
|
+
* @param ast - The parsed Babel AST of the component code
|
|
50
|
+
* @param componentName - Name of the component being linted
|
|
51
|
+
* @param componentSpec - Optional component specification with metadata
|
|
52
|
+
* @param options - Optional execution options for the component
|
|
53
|
+
* @param typeContext - Optional shared type context with inferred variable types,
|
|
54
|
+
* entity/query field metadata, and callback parameter types
|
|
55
|
+
* @returns Array of violations found by this rule
|
|
56
|
+
*/
|
|
57
|
+
abstract Test(ast: t.File, componentName: string, componentSpec?: ComponentSpec, options?: LinterOptions, typeContext?: TypeContext): Violation[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Legacy interface — kept for backward compatibility during migration.
|
|
61
|
+
* New rules should extend BaseLintRule instead.
|
|
62
|
+
* @deprecated Use BaseLintRule class with @RegisterClass decorator
|
|
63
|
+
*/
|
|
64
|
+
export interface LintRule {
|
|
65
|
+
name: string;
|
|
66
|
+
appliesTo: 'all' | 'child' | 'root';
|
|
67
|
+
deprecated?: boolean;
|
|
68
|
+
test: (ast: t.File, componentName: string, componentSpec?: ComponentSpec, options?: LinterOptions, typeContext?: TypeContext) => Violation[];
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=lint-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-rule.d.ts","sourceRoot":"","sources":["../src/lint-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,YAAY;IAChC;;;OAGG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,CAAC,CAAC,IAAI,EACX,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,WAAW,GACxB,SAAS,EAAE;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CACJ,GAAG,EAAE,CAAC,CAAC,IAAI,EACX,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,WAAW,KACtB,SAAS,EAAE,CAAC;CAClB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all component linter rules.
|
|
3
|
+
*
|
|
4
|
+
* Rules extend this class and decorate with `@RegisterClass(BaseLintRule, 'rule-name')`
|
|
5
|
+
* to be automatically discovered by the linter via MJGlobal's ClassFactory.
|
|
6
|
+
*
|
|
7
|
+
* External packages (e.g., Skip-Brain) can define custom rules by extending this class
|
|
8
|
+
* and registering them — the linter will discover them at runtime through the manifest system.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { BaseLintRule } from '@memberjunction/react-linter';
|
|
13
|
+
* import { RegisterClass } from '@memberjunction/global';
|
|
14
|
+
*
|
|
15
|
+
* @RegisterClass(BaseLintRule, 'my-custom-rule')
|
|
16
|
+
* export class MyCustomRule extends BaseLintRule {
|
|
17
|
+
* Name = 'my-custom-rule';
|
|
18
|
+
* AppliesTo = 'all' as const;
|
|
19
|
+
*
|
|
20
|
+
* Test(ast, componentName) {
|
|
21
|
+
* const violations = [];
|
|
22
|
+
* // ... your validation logic
|
|
23
|
+
* return violations;
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class BaseLintRule {
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=lint-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-rule.js","sourceRoot":"","sources":["../src/lint-rule.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,YAAY;CAiCjC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility functions and constants for component linter rules.
|
|
3
|
+
*
|
|
4
|
+
* All commonly-used patterns are consolidated here to avoid duplication
|
|
5
|
+
* across rule files. Rules should import from this module rather than
|
|
6
|
+
* reimplementing these helpers.
|
|
7
|
+
*/
|
|
8
|
+
import _traverse, { NodePath } from '@babel/traverse';
|
|
9
|
+
import * as t from '@babel/types';
|
|
10
|
+
import { Violation } from './component-linter.js';
|
|
11
|
+
export declare const traverse: typeof _traverse;
|
|
12
|
+
/** Re-export NodePath for convenience so rules don't need a separate @babel/traverse import */
|
|
13
|
+
export type { NodePath };
|
|
14
|
+
/**
|
|
15
|
+
* Creates a violation object with consistent structure.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createViolation(rule: string, severity: 'critical' | 'high' | 'medium' | 'low', node: t.Node | null | undefined, message: string, code?: string, suggestion?: {
|
|
18
|
+
text: string;
|
|
19
|
+
example?: string;
|
|
20
|
+
}): Violation;
|
|
21
|
+
/**
|
|
22
|
+
* Truncates code to a maximum length for display in violations.
|
|
23
|
+
*/
|
|
24
|
+
export declare function truncateCode(code: string, maxLength?: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Levenshtein distance between two strings (case-insensitive).
|
|
27
|
+
*/
|
|
28
|
+
export declare function levenshteinDistance(a: string, b: string): number;
|
|
29
|
+
/**
|
|
30
|
+
* Find the closest matching string from a list of candidates using Levenshtein distance.
|
|
31
|
+
* Returns null if no match is within the maximum allowed distance.
|
|
32
|
+
*/
|
|
33
|
+
export declare function findClosestMatch(target: string, candidates: string[] | Set<string>, maxDistance?: number): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Find a case-insensitive match that differs only in casing.
|
|
36
|
+
*/
|
|
37
|
+
export declare function findCaseMismatch(target: string, candidates: string[] | Set<string>): string | null;
|
|
38
|
+
/** Checks if a node is null or undefined literal */
|
|
39
|
+
export declare function isNullOrUndefined(node: t.Node): boolean;
|
|
40
|
+
/** Checks if a node is likely a string value (literal, template, identifier, call, etc.) */
|
|
41
|
+
export declare function isStringLike(node: t.Node, depth?: number): boolean;
|
|
42
|
+
/** Checks if a node is likely a number value */
|
|
43
|
+
export declare function isNumberLike(node: t.Node): boolean;
|
|
44
|
+
/** Checks if a node is likely an array value */
|
|
45
|
+
export declare function isArrayLike(node: t.Node): boolean;
|
|
46
|
+
/** Checks if a node is likely an object value (not array) */
|
|
47
|
+
export declare function isObjectLike(node: t.Node): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Extract a string literal value from an ObjectExpression property by key name.
|
|
50
|
+
* Returns null if the property doesn't exist or its value isn't a string literal.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // For: { QueryName: 'My Query', MaxRows: 100 }
|
|
55
|
+
* getStringProperty(objectExpr, 'QueryName') // → 'My Query'
|
|
56
|
+
* getStringProperty(objectExpr, 'MaxRows') // → null (not a string)
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function getStringProperty(objectExpr: t.ObjectExpression, propName: string): string | null;
|
|
60
|
+
/**
|
|
61
|
+
* Get the AST node for a specific property value in an ObjectExpression.
|
|
62
|
+
* Returns the ObjectProperty if found, null otherwise.
|
|
63
|
+
*/
|
|
64
|
+
export declare function getObjectProperty(objectExpr: t.ObjectExpression, propName: string): t.ObjectProperty | null;
|
|
65
|
+
/**
|
|
66
|
+
* Get all property names from an ObjectExpression.
|
|
67
|
+
*/
|
|
68
|
+
export declare function getPropertyNames(objectExpr: t.ObjectExpression): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a CallExpression callee matches the pattern `utilities.<service>.<method>`.
|
|
71
|
+
* Returns the service and method names if matched, null otherwise.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // For: utilities.rv.RunView(...)
|
|
76
|
+
* getUtilitiesCallInfo(callee) // → { service: 'rv', method: 'RunView' }
|
|
77
|
+
*
|
|
78
|
+
* // For: utilities.rq.RunQuery(...)
|
|
79
|
+
* getUtilitiesCallInfo(callee) // → { service: 'rq', method: 'RunQuery' }
|
|
80
|
+
*
|
|
81
|
+
* // For: utilities.search?.Search(...)
|
|
82
|
+
* getUtilitiesCallInfo(callee) // → { service: 'search', method: 'Search' }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function getUtilitiesCallInfo(callee: t.Node): {
|
|
86
|
+
service: string;
|
|
87
|
+
method: string;
|
|
88
|
+
} | null;
|
|
89
|
+
/** Check if a CallExpression callee is `utilities.rv.RunView` or `utilities.rv.RunViews` */
|
|
90
|
+
export declare function isRunViewCall(callee: t.Node): boolean;
|
|
91
|
+
/** Check if a CallExpression callee is `utilities.rq.RunQuery` */
|
|
92
|
+
export declare function isRunQueryCall(callee: t.Node): boolean;
|
|
93
|
+
/** Check if a CallExpression callee is `utilities.search.Search` or `PreviewSearch` */
|
|
94
|
+
export declare function isSearchCall(callee: t.Node): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Parse component code and extract QueryName values from RunQuery calls.
|
|
97
|
+
* Uses full AST analysis to avoid false positives from comments or string literals.
|
|
98
|
+
*/
|
|
99
|
+
export declare function extractRunQueryNamesFromCode(code: string): Set<string>;
|
|
100
|
+
/** Standard array iteration method names */
|
|
101
|
+
export declare const ARRAY_METHODS: Set<string>;
|
|
102
|
+
/** Functions that expect array arguments */
|
|
103
|
+
export declare const ARRAY_EXPECTING_FUNCS: Set<string>;
|
|
104
|
+
/** Functions that coerce values to numbers */
|
|
105
|
+
export declare const NUMERIC_COERCION_FUNCTIONS: Set<string>;
|
|
106
|
+
/**
|
|
107
|
+
* Common DOM/React/JS properties that should never be validated as entity fields.
|
|
108
|
+
* Used to prevent false positives when scope resolution picks up a variable name
|
|
109
|
+
* collision (e.g., `e` used as both a .map() callback param and an onChange event param).
|
|
110
|
+
*/
|
|
111
|
+
export declare const NON_ENTITY_PROPERTIES: Set<string>;
|
|
112
|
+
/** Extracts the name of a JSX element (handles member expressions like Antd.Button) */
|
|
113
|
+
export declare function getJSXElementName(node: t.JSXOpeningElement): string | null;
|
|
114
|
+
/** Checks if a JSX element has a specific attribute */
|
|
115
|
+
export declare function hasJSXAttribute(element: t.JSXOpeningElement, attributeName: string): boolean;
|
|
116
|
+
/** Gets a JSX attribute by name */
|
|
117
|
+
export declare function getJSXAttribute(element: t.JSXOpeningElement, attributeName: string): t.JSXAttribute | null;
|
|
118
|
+
/** Checks if a function parameter is destructuring props */
|
|
119
|
+
export declare function isPropsDestructuring(param: t.LVal): boolean;
|
|
120
|
+
/** Extracts property names from an object pattern (destructuring) */
|
|
121
|
+
export declare function extractDestructuredProps(pattern: t.ObjectPattern): string[];
|
|
122
|
+
/** Checks if a node is at the top level of the program */
|
|
123
|
+
export declare function isTopLevel(path: {
|
|
124
|
+
getFunctionParent: () => unknown;
|
|
125
|
+
scope: {
|
|
126
|
+
path: {
|
|
127
|
+
type: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
}): boolean;
|
|
131
|
+
//# sourceMappingURL=lint-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-utils.d.ts","sourceRoot":"","sources":["../src/lint-utils.ts"],"names":[],"mappings":"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"}
|