@empline/preflight 1.1.11 → 1.1.13
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/checks/consolidated/auth-storage-state.d.ts +3 -0
- package/dist/checks/consolidated/auth-storage-state.d.ts.map +1 -0
- package/dist/checks/consolidated/auth-storage-state.js +146 -0
- package/dist/checks/consolidated/auth-storage-state.js.map +1 -0
- package/dist/checks/consolidated/business.d.ts +50 -0
- package/dist/checks/consolidated/business.d.ts.map +1 -0
- package/dist/checks/consolidated/business.js +252 -0
- package/dist/checks/consolidated/business.js.map +1 -0
- package/dist/checks/consolidated/caching-strategy.d.ts +104 -0
- package/dist/checks/consolidated/caching-strategy.d.ts.map +1 -0
- package/dist/checks/consolidated/caching-strategy.js +725 -0
- package/dist/checks/consolidated/caching-strategy.js.map +1 -0
- package/dist/checks/consolidated/code-quality.d.ts +83 -0
- package/dist/checks/consolidated/code-quality.d.ts.map +1 -0
- package/dist/checks/consolidated/code-quality.js +445 -0
- package/dist/checks/consolidated/code-quality.js.map +1 -0
- package/dist/checks/consolidated/console-statements.d.ts +32 -0
- package/dist/checks/consolidated/console-statements.d.ts.map +1 -0
- package/dist/checks/consolidated/console-statements.js +304 -0
- package/dist/checks/consolidated/console-statements.js.map +1 -0
- package/dist/checks/consolidated/css-advanced-validation.d.ts +24 -0
- package/dist/checks/consolidated/css-advanced-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/css-advanced-validation.js +415 -0
- package/dist/checks/consolidated/css-advanced-validation.js.map +1 -0
- package/dist/checks/consolidated/css-organization.d.ts +14 -0
- package/dist/checks/consolidated/css-organization.d.ts.map +1 -0
- package/dist/checks/consolidated/css-organization.js +432 -0
- package/dist/checks/consolidated/css-organization.js.map +1 -0
- package/dist/checks/consolidated/css-runtime-validation.d.ts +22 -0
- package/dist/checks/consolidated/css-runtime-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/css-runtime-validation.js +330 -0
- package/dist/checks/consolidated/css-runtime-validation.js.map +1 -0
- package/dist/checks/consolidated/css-variable-validation.d.ts +17 -0
- package/dist/checks/consolidated/css-variable-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/css-variable-validation.js +412 -0
- package/dist/checks/consolidated/css-variable-validation.js.map +1 -0
- package/dist/checks/consolidated/dark-mode-consistency.d.ts +23 -0
- package/dist/checks/consolidated/dark-mode-consistency.d.ts.map +1 -0
- package/dist/checks/consolidated/dark-mode-consistency.js +291 -0
- package/dist/checks/consolidated/dark-mode-consistency.js.map +1 -0
- package/dist/checks/consolidated/database.d.ts +95 -0
- package/dist/checks/consolidated/database.d.ts.map +1 -0
- package/dist/checks/consolidated/database.js +427 -0
- package/dist/checks/consolidated/database.js.map +1 -0
- package/dist/checks/consolidated/e2e-checks.d.ts +52 -0
- package/dist/checks/consolidated/e2e-checks.d.ts.map +1 -0
- package/dist/checks/consolidated/e2e-checks.js +157 -0
- package/dist/checks/consolidated/e2e-checks.js.map +1 -0
- package/dist/checks/consolidated/e2e-regression-coverage.d.ts +14 -0
- package/dist/checks/consolidated/e2e-regression-coverage.d.ts.map +1 -0
- package/dist/checks/consolidated/e2e-regression-coverage.js +151 -0
- package/dist/checks/consolidated/e2e-regression-coverage.js.map +1 -0
- package/dist/checks/consolidated/e2e-validation.d.ts +137 -0
- package/dist/checks/consolidated/e2e-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/e2e-validation.js +1001 -0
- package/dist/checks/consolidated/e2e-validation.js.map +1 -0
- package/dist/checks/consolidated/enterprise-baseline.d.ts +9 -0
- package/dist/checks/consolidated/enterprise-baseline.d.ts.map +1 -0
- package/dist/checks/consolidated/enterprise-baseline.js +277 -0
- package/dist/checks/consolidated/enterprise-baseline.js.map +1 -0
- package/dist/checks/consolidated/generate-pageload-config.d.ts +6 -0
- package/dist/checks/consolidated/generate-pageload-config.d.ts.map +1 -0
- package/dist/checks/consolidated/generate-pageload-config.js +161 -0
- package/dist/checks/consolidated/generate-pageload-config.js.map +1 -0
- package/dist/checks/consolidated/hardened-checks.d.ts +276 -0
- package/dist/checks/consolidated/hardened-checks.d.ts.map +1 -0
- package/dist/checks/consolidated/hardened-checks.js +3056 -0
- package/dist/checks/consolidated/hardened-checks.js.map +1 -0
- package/dist/checks/consolidated/homepage-ux.d.ts +12 -0
- package/dist/checks/consolidated/homepage-ux.d.ts.map +1 -0
- package/dist/checks/consolidated/homepage-ux.js +242 -0
- package/dist/checks/consolidated/homepage-ux.js.map +1 -0
- package/dist/checks/consolidated/images.d.ts +76 -0
- package/dist/checks/consolidated/images.d.ts.map +1 -0
- package/dist/checks/consolidated/images.js +311 -0
- package/dist/checks/consolidated/images.js.map +1 -0
- package/dist/checks/consolidated/import-cycles.d.ts +63 -0
- package/dist/checks/consolidated/import-cycles.d.ts.map +1 -0
- package/dist/checks/consolidated/import-cycles.js +291 -0
- package/dist/checks/consolidated/import-cycles.js.map +1 -0
- package/dist/checks/consolidated/imports.d.ts +112 -0
- package/dist/checks/consolidated/imports.d.ts.map +1 -0
- package/dist/checks/consolidated/imports.js +977 -0
- package/dist/checks/consolidated/imports.js.map +1 -0
- package/dist/checks/consolidated/inline-style-conflicts.d.ts +21 -0
- package/dist/checks/consolidated/inline-style-conflicts.d.ts.map +1 -0
- package/dist/checks/consolidated/inline-style-conflicts.js +300 -0
- package/dist/checks/consolidated/inline-style-conflicts.js.map +1 -0
- package/dist/checks/consolidated/lib-organization.d.ts +12 -0
- package/dist/checks/consolidated/lib-organization.d.ts.map +1 -0
- package/dist/checks/consolidated/lib-organization.js +419 -0
- package/dist/checks/consolidated/lib-organization.js.map +1 -0
- package/dist/checks/consolidated/n-plus-one.d.ts +63 -0
- package/dist/checks/consolidated/n-plus-one.d.ts.map +1 -0
- package/dist/checks/consolidated/n-plus-one.js +331 -0
- package/dist/checks/consolidated/n-plus-one.js.map +1 -0
- package/dist/checks/consolidated/nextjs.d.ts +51 -0
- package/dist/checks/consolidated/nextjs.d.ts.map +1 -0
- package/dist/checks/consolidated/nextjs.js +205 -0
- package/dist/checks/consolidated/nextjs.js.map +1 -0
- package/dist/checks/consolidated/organization.d.ts +54 -0
- package/dist/checks/consolidated/organization.d.ts.map +1 -0
- package/dist/checks/consolidated/organization.js +158 -0
- package/dist/checks/consolidated/organization.js.map +1 -0
- package/dist/checks/consolidated/pageload.d.ts +12 -0
- package/dist/checks/consolidated/pageload.d.ts.map +1 -0
- package/dist/checks/consolidated/pageload.js +138 -0
- package/dist/checks/consolidated/pageload.js.map +1 -0
- package/dist/checks/consolidated/performance.d.ts +112 -0
- package/dist/checks/consolidated/performance.d.ts.map +1 -0
- package/dist/checks/consolidated/performance.js +1546 -0
- package/dist/checks/consolidated/performance.js.map +1 -0
- package/dist/checks/consolidated/quality.d.ts +52 -0
- package/dist/checks/consolidated/quality.d.ts.map +1 -0
- package/dist/checks/consolidated/quality.js +253 -0
- package/dist/checks/consolidated/quality.js.map +1 -0
- package/dist/checks/consolidated/react.d.ts +48 -0
- package/dist/checks/consolidated/react.d.ts.map +1 -0
- package/dist/checks/consolidated/react.js +203 -0
- package/dist/checks/consolidated/react.js.map +1 -0
- package/dist/checks/consolidated/regression-hygiene.d.ts +17 -0
- package/dist/checks/consolidated/regression-hygiene.d.ts.map +1 -0
- package/dist/checks/consolidated/regression-hygiene.js +242 -0
- package/dist/checks/consolidated/regression-hygiene.js.map +1 -0
- package/dist/checks/consolidated/regression.d.ts +20 -0
- package/dist/checks/consolidated/regression.d.ts.map +1 -0
- package/dist/checks/consolidated/regression.js +121 -0
- package/dist/checks/consolidated/regression.js.map +1 -0
- package/dist/checks/consolidated/runtime.d.ts +53 -0
- package/dist/checks/consolidated/runtime.d.ts.map +1 -0
- package/dist/checks/consolidated/runtime.js +160 -0
- package/dist/checks/consolidated/runtime.js.map +1 -0
- package/dist/checks/consolidated/script-performance.d.ts +17 -0
- package/dist/checks/consolidated/script-performance.d.ts.map +1 -0
- package/dist/checks/consolidated/script-performance.js +137 -0
- package/dist/checks/consolidated/script-performance.js.map +1 -0
- package/dist/checks/consolidated/security.d.ts +78 -0
- package/dist/checks/consolidated/security.d.ts.map +1 -0
- package/dist/checks/consolidated/security.js +404 -0
- package/dist/checks/consolidated/security.js.map +1 -0
- package/dist/checks/consolidated/seo.d.ts +31 -0
- package/dist/checks/consolidated/seo.d.ts.map +1 -0
- package/dist/checks/consolidated/seo.js +1438 -0
- package/dist/checks/consolidated/seo.js.map +1 -0
- package/dist/checks/consolidated/sx-prop-deprecation.d.ts +22 -0
- package/dist/checks/consolidated/sx-prop-deprecation.d.ts.map +1 -0
- package/dist/checks/consolidated/sx-prop-deprecation.js +280 -0
- package/dist/checks/consolidated/sx-prop-deprecation.js.map +1 -0
- package/dist/checks/consolidated/tailwind-class-validation.d.ts +25 -0
- package/dist/checks/consolidated/tailwind-class-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/tailwind-class-validation.js +533 -0
- package/dist/checks/consolidated/tailwind-class-validation.js.map +1 -0
- package/dist/checks/consolidated/testing.d.ts +54 -0
- package/dist/checks/consolidated/testing.d.ts.map +1 -0
- package/dist/checks/consolidated/testing.js +163 -0
- package/dist/checks/consolidated/testing.js.map +1 -0
- package/dist/checks/consolidated/typescript.d.ts +3 -0
- package/dist/checks/consolidated/typescript.d.ts.map +1 -0
- package/dist/checks/consolidated/typescript.js +31 -0
- package/dist/checks/consolidated/typescript.js.map +1 -0
- package/dist/checks/consolidated/ui-accessibility-advanced.d.ts +104 -0
- package/dist/checks/consolidated/ui-accessibility-advanced.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-accessibility-advanced.js +689 -0
- package/dist/checks/consolidated/ui-accessibility-advanced.js.map +1 -0
- package/dist/checks/consolidated/ui-accessibility.d.ts +121 -0
- package/dist/checks/consolidated/ui-accessibility.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-accessibility.js +776 -0
- package/dist/checks/consolidated/ui-accessibility.js.map +1 -0
- package/dist/checks/consolidated/ui-advanced-spacing.d.ts +142 -0
- package/dist/checks/consolidated/ui-advanced-spacing.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-advanced-spacing.js +1220 -0
- package/dist/checks/consolidated/ui-advanced-spacing.js.map +1 -0
- package/dist/checks/consolidated/ui-animation-duration.d.ts +108 -0
- package/dist/checks/consolidated/ui-animation-duration.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-animation-duration.js +531 -0
- package/dist/checks/consolidated/ui-animation-duration.js.map +1 -0
- package/dist/checks/consolidated/ui-border-radius.d.ts +90 -0
- package/dist/checks/consolidated/ui-border-radius.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-border-radius.js +519 -0
- package/dist/checks/consolidated/ui-border-radius.js.map +1 -0
- package/dist/checks/consolidated/ui-buttons.d.ts +32 -0
- package/dist/checks/consolidated/ui-buttons.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-buttons.js +481 -0
- package/dist/checks/consolidated/ui-buttons.js.map +1 -0
- package/dist/checks/consolidated/ui-cards.d.ts +29 -0
- package/dist/checks/consolidated/ui-cards.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-cards.js +504 -0
- package/dist/checks/consolidated/ui-cards.js.map +1 -0
- package/dist/checks/consolidated/ui-checks.d.ts +48 -0
- package/dist/checks/consolidated/ui-checks.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-checks.js +264 -0
- package/dist/checks/consolidated/ui-checks.js.map +1 -0
- package/dist/checks/consolidated/ui-cleanup.d.ts +81 -0
- package/dist/checks/consolidated/ui-cleanup.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-cleanup.js +650 -0
- package/dist/checks/consolidated/ui-cleanup.js.map +1 -0
- package/dist/checks/consolidated/ui-components.d.ts +255 -0
- package/dist/checks/consolidated/ui-components.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-components.js +2008 -0
- package/dist/checks/consolidated/ui-components.js.map +1 -0
- package/dist/checks/consolidated/ui-consistency-advanced.d.ts +130 -0
- package/dist/checks/consolidated/ui-consistency-advanced.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-consistency-advanced.js +982 -0
- package/dist/checks/consolidated/ui-consistency-advanced.js.map +1 -0
- package/dist/checks/consolidated/ui-consistency-comprehensive.d.ts +30 -0
- package/dist/checks/consolidated/ui-consistency-comprehensive.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-consistency-comprehensive.js +1018 -0
- package/dist/checks/consolidated/ui-consistency-comprehensive.js.map +1 -0
- package/dist/checks/consolidated/ui-consistency-extended.d.ts +26 -0
- package/dist/checks/consolidated/ui-consistency-extended.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-consistency-extended.js +606 -0
- package/dist/checks/consolidated/ui-consistency-extended.js.map +1 -0
- package/dist/checks/consolidated/ui-data-display.d.ts +103 -0
- package/dist/checks/consolidated/ui-data-display.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-data-display.js +740 -0
- package/dist/checks/consolidated/ui-data-display.js.map +1 -0
- package/dist/checks/consolidated/ui-deprecated.d.ts +22 -0
- package/dist/checks/consolidated/ui-deprecated.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-deprecated.js +336 -0
- package/dist/checks/consolidated/ui-deprecated.js.map +1 -0
- package/dist/checks/consolidated/ui-empty-null-states.d.ts +90 -0
- package/dist/checks/consolidated/ui-empty-null-states.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-empty-null-states.js +511 -0
- package/dist/checks/consolidated/ui-empty-null-states.js.map +1 -0
- package/dist/checks/consolidated/ui-error-states.d.ts +99 -0
- package/dist/checks/consolidated/ui-error-states.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-error-states.js +694 -0
- package/dist/checks/consolidated/ui-error-states.js.map +1 -0
- package/dist/checks/consolidated/ui-feedback-confirmations.d.ts +90 -0
- package/dist/checks/consolidated/ui-feedback-confirmations.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-feedback-confirmations.js +596 -0
- package/dist/checks/consolidated/ui-feedback-confirmations.js.map +1 -0
- package/dist/checks/consolidated/ui-forms.d.ts +32 -0
- package/dist/checks/consolidated/ui-forms.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-forms.js +568 -0
- package/dist/checks/consolidated/ui-forms.js.map +1 -0
- package/dist/checks/consolidated/ui-gradient-shadow.d.ts +90 -0
- package/dist/checks/consolidated/ui-gradient-shadow.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-gradient-shadow.js +568 -0
- package/dist/checks/consolidated/ui-gradient-shadow.js.map +1 -0
- package/dist/checks/consolidated/ui-grid-responsive.d.ts +27 -0
- package/dist/checks/consolidated/ui-grid-responsive.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-grid-responsive.js +441 -0
- package/dist/checks/consolidated/ui-grid-responsive.js.map +1 -0
- package/dist/checks/consolidated/ui-icon-size-tokens.d.ts +104 -0
- package/dist/checks/consolidated/ui-icon-size-tokens.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-icon-size-tokens.js +514 -0
- package/dist/checks/consolidated/ui-icon-size-tokens.js.map +1 -0
- package/dist/checks/consolidated/ui-iconography.d.ts +90 -0
- package/dist/checks/consolidated/ui-iconography.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-iconography.js +565 -0
- package/dist/checks/consolidated/ui-iconography.js.map +1 -0
- package/dist/checks/consolidated/ui-interactive-states.d.ts +240 -0
- package/dist/checks/consolidated/ui-interactive-states.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-interactive-states.js +2474 -0
- package/dist/checks/consolidated/ui-interactive-states.js.map +1 -0
- package/dist/checks/consolidated/ui-layout.d.ts +256 -0
- package/dist/checks/consolidated/ui-layout.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-layout.js +1371 -0
- package/dist/checks/consolidated/ui-layout.js.map +1 -0
- package/dist/checks/consolidated/ui-loading-skeletons.d.ts +11 -0
- package/dist/checks/consolidated/ui-loading-skeletons.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-loading-skeletons.js +145 -0
- package/dist/checks/consolidated/ui-loading-skeletons.js.map +1 -0
- package/dist/checks/consolidated/ui-loading-state-skeletons.d.ts +9 -0
- package/dist/checks/consolidated/ui-loading-state-skeletons.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-loading-state-skeletons.js +125 -0
- package/dist/checks/consolidated/ui-loading-state-skeletons.js.map +1 -0
- package/dist/checks/consolidated/ui-media.d.ts +74 -0
- package/dist/checks/consolidated/ui-media.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-media.js +408 -0
- package/dist/checks/consolidated/ui-media.js.map +1 -0
- package/dist/checks/consolidated/ui-micro-interactions.d.ts +107 -0
- package/dist/checks/consolidated/ui-micro-interactions.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-micro-interactions.js +825 -0
- package/dist/checks/consolidated/ui-micro-interactions.js.map +1 -0
- package/dist/checks/consolidated/ui-microcopy-consistency.d.ts +114 -0
- package/dist/checks/consolidated/ui-microcopy-consistency.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-microcopy-consistency.js +566 -0
- package/dist/checks/consolidated/ui-microcopy-consistency.js.map +1 -0
- package/dist/checks/consolidated/ui-mobile-ux.d.ts +251 -0
- package/dist/checks/consolidated/ui-mobile-ux.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-mobile-ux.js +2212 -0
- package/dist/checks/consolidated/ui-mobile-ux.js.map +1 -0
- package/dist/checks/consolidated/ui-motion-accessibility.d.ts +93 -0
- package/dist/checks/consolidated/ui-motion-accessibility.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-motion-accessibility.js +450 -0
- package/dist/checks/consolidated/ui-motion-accessibility.js.map +1 -0
- package/dist/checks/consolidated/ui-navigation.d.ts +85 -0
- package/dist/checks/consolidated/ui-navigation.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-navigation.js +673 -0
- package/dist/checks/consolidated/ui-navigation.js.map +1 -0
- package/dist/checks/consolidated/ui-patterns.d.ts +174 -0
- package/dist/checks/consolidated/ui-patterns.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-patterns.js +1532 -0
- package/dist/checks/consolidated/ui-patterns.js.map +1 -0
- package/dist/checks/consolidated/ui-responsive.d.ts +89 -0
- package/dist/checks/consolidated/ui-responsive.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-responsive.js +588 -0
- package/dist/checks/consolidated/ui-responsive.js.map +1 -0
- package/dist/checks/consolidated/ui-spacing-standards.d.ts +43 -0
- package/dist/checks/consolidated/ui-spacing-standards.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-spacing-standards.js +874 -0
- package/dist/checks/consolidated/ui-spacing-standards.js.map +1 -0
- package/dist/checks/consolidated/ui-spacing.d.ts +751 -0
- package/dist/checks/consolidated/ui-spacing.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-spacing.js +4996 -0
- package/dist/checks/consolidated/ui-spacing.js.map +1 -0
- package/dist/checks/consolidated/ui-standards-auto-fixer.d.ts +70 -0
- package/dist/checks/consolidated/ui-standards-auto-fixer.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-standards-auto-fixer.js +429 -0
- package/dist/checks/consolidated/ui-standards-auto-fixer.js.map +1 -0
- package/dist/checks/consolidated/ui-standards-enforcement.d.ts +100 -0
- package/dist/checks/consolidated/ui-standards-enforcement.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-standards-enforcement.js +935 -0
- package/dist/checks/consolidated/ui-standards-enforcement.js.map +1 -0
- package/dist/checks/consolidated/ui-state-consistency.d.ts +90 -0
- package/dist/checks/consolidated/ui-state-consistency.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-state-consistency.js +659 -0
- package/dist/checks/consolidated/ui-state-consistency.js.map +1 -0
- package/dist/checks/consolidated/ui-style-validation.d.ts +74 -0
- package/dist/checks/consolidated/ui-style-validation.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-style-validation.js +403 -0
- package/dist/checks/consolidated/ui-style-validation.js.map +1 -0
- package/dist/checks/consolidated/ui-tokens.d.ts +110 -0
- package/dist/checks/consolidated/ui-tokens.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-tokens.js +990 -0
- package/dist/checks/consolidated/ui-tokens.js.map +1 -0
- package/dist/checks/consolidated/ui-typography.d.ts +77 -0
- package/dist/checks/consolidated/ui-typography.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-typography.js +416 -0
- package/dist/checks/consolidated/ui-typography.js.map +1 -0
- package/dist/checks/consolidated/ui-visual-hierarchy.d.ts +90 -0
- package/dist/checks/consolidated/ui-visual-hierarchy.d.ts.map +1 -0
- package/dist/checks/consolidated/ui-visual-hierarchy.js +562 -0
- package/dist/checks/consolidated/ui-visual-hierarchy.js.map +1 -0
- package/dist/checks/consolidated/woocommerce.d.ts +50 -0
- package/dist/checks/consolidated/woocommerce.d.ts.map +1 -0
- package/dist/checks/consolidated/woocommerce.js +198 -0
- package/dist/checks/consolidated/woocommerce.js.map +1 -0
- package/dist/checks/core/api-route-protection.d.ts +2 -0
- package/dist/checks/core/api-route-protection.d.ts.map +1 -0
- package/dist/checks/core/api-route-protection.js +101 -0
- package/dist/checks/core/api-route-protection.js.map +1 -0
- package/dist/checks/core/critical.d.ts +8 -0
- package/dist/checks/core/critical.d.ts.map +1 -0
- package/dist/checks/core/critical.js +200 -0
- package/dist/checks/core/critical.js.map +1 -0
- package/dist/checks/core/database.d.ts +8 -0
- package/dist/checks/core/database.d.ts.map +1 -0
- package/dist/checks/core/database.js +699 -0
- package/dist/checks/core/database.js.map +1 -0
- package/dist/checks/core/development.d.ts +8 -0
- package/dist/checks/core/development.d.ts.map +1 -0
- package/dist/checks/core/development.js +417 -0
- package/dist/checks/core/development.js.map +1 -0
- package/dist/checks/core/hydration-mismatch-check.d.ts +38 -0
- package/dist/checks/core/hydration-mismatch-check.d.ts.map +1 -0
- package/dist/checks/core/hydration-mismatch-check.js +411 -0
- package/dist/checks/core/hydration-mismatch-check.js.map +1 -0
- package/dist/checks/core/performance.d.ts +8 -0
- package/dist/checks/core/performance.d.ts.map +1 -0
- package/dist/checks/core/performance.js +474 -0
- package/dist/checks/core/performance.js.map +1 -0
- package/dist/checks/core/security.d.ts +8 -0
- package/dist/checks/core/security.d.ts.map +1 -0
- package/dist/checks/core/security.js +275 -0
- package/dist/checks/core/security.js.map +1 -0
- package/dist/checks/core/standardized-error-handling.d.ts +43 -0
- package/dist/checks/core/standardized-error-handling.d.ts.map +1 -0
- package/dist/checks/core/standardized-error-handling.js +384 -0
- package/dist/checks/core/standardized-error-handling.js.map +1 -0
- package/dist/checks/core/supercatch.d.ts +8 -0
- package/dist/checks/core/supercatch.d.ts.map +1 -0
- package/dist/checks/core/supercatch.js +750 -0
- package/dist/checks/core/supercatch.js.map +1 -0
- package/dist/checks/core/suppression-check.d.ts +2 -0
- package/dist/checks/core/suppression-check.d.ts.map +1 -0
- package/dist/checks/core/suppression-check.js +129 -0
- package/dist/checks/core/suppression-check.js.map +1 -0
- package/dist/checks/core/ui-quality.d.ts +8 -0
- package/dist/checks/core/ui-quality.d.ts.map +1 -0
- package/dist/checks/core/ui-quality.js +1736 -0
- package/dist/checks/core/ui-quality.js.map +1 -0
- package/dist/checks/core/unused-assets-check.d.ts +2 -0
- package/dist/checks/core/unused-assets-check.d.ts.map +1 -0
- package/dist/checks/core/unused-assets-check.js +112 -0
- package/dist/checks/core/unused-assets-check.js.map +1 -0
- package/dist/checks/core/use-status-ssr-safety.d.ts +34 -0
- package/dist/checks/core/use-status-ssr-safety.d.ts.map +1 -0
- package/dist/checks/core/use-status-ssr-safety.js +283 -0
- package/dist/checks/core/use-status-ssr-safety.js.map +1 -0
- package/dist/checks/email/email-flow-validation.d.ts +23 -0
- package/dist/checks/email/email-flow-validation.d.ts.map +1 -0
- package/dist/checks/email/email-flow-validation.js +468 -0
- package/dist/checks/email/email-flow-validation.js.map +1 -0
- package/dist/checks/email/email-template-db-verification.d.ts +20 -0
- package/dist/checks/email/email-template-db-verification.d.ts.map +1 -0
- package/dist/checks/email/email-template-db-verification.js +46 -0
- package/dist/checks/email/email-template-db-verification.js.map +1 -0
- package/dist/checks/email/email-template-validation.d.ts +24 -0
- package/dist/checks/email/email-template-validation.d.ts.map +1 -0
- package/dist/checks/email/email-template-validation.js +688 -0
- package/dist/checks/email/email-template-validation.js.map +1 -0
- package/dist/checks/jsx/comment-placement.d.ts +45 -0
- package/dist/checks/jsx/comment-placement.d.ts.map +1 -0
- package/dist/checks/jsx/comment-placement.js +316 -0
- package/dist/checks/jsx/comment-placement.js.map +1 -0
- package/dist/checks/specialized/admin-layout-check.d.ts +19 -0
- package/dist/checks/specialized/admin-layout-check.d.ts.map +1 -0
- package/dist/checks/specialized/admin-layout-check.js +166 -0
- package/dist/checks/specialized/admin-layout-check.js.map +1 -0
- package/dist/checks/specialized/client-server-separation.d.ts +14 -0
- package/dist/checks/specialized/client-server-separation.d.ts.map +1 -0
- package/dist/checks/specialized/client-server-separation.js +197 -0
- package/dist/checks/specialized/client-server-separation.js.map +1 -0
- package/dist/checks/specialized/cost-optimization.d.ts +18 -0
- package/dist/checks/specialized/cost-optimization.d.ts.map +1 -0
- package/dist/checks/specialized/cost-optimization.js +78 -0
- package/dist/checks/specialized/cost-optimization.js.map +1 -0
- package/dist/checks/specialized/database-migration-sync.d.ts +21 -0
- package/dist/checks/specialized/database-migration-sync.d.ts.map +1 -0
- package/dist/checks/specialized/database-migration-sync.js +150 -0
- package/dist/checks/specialized/database-migration-sync.js.map +1 -0
- package/dist/checks/specialized/database-model-validation.d.ts +15 -0
- package/dist/checks/specialized/database-model-validation.d.ts.map +1 -0
- package/dist/checks/specialized/database-model-validation.js +35 -0
- package/dist/checks/specialized/database-model-validation.js.map +1 -0
- package/dist/checks/specialized/database-schema-migrations-diff.d.ts +27 -0
- package/dist/checks/specialized/database-schema-migrations-diff.d.ts.map +1 -0
- package/dist/checks/specialized/database-schema-migrations-diff.js +177 -0
- package/dist/checks/specialized/database-schema-migrations-diff.js.map +1 -0
- package/dist/checks/specialized/database-schema-sync.d.ts +23 -0
- package/dist/checks/specialized/database-schema-sync.d.ts.map +1 -0
- package/dist/checks/specialized/database-schema-sync.js +77 -0
- package/dist/checks/specialized/database-schema-sync.js.map +1 -0
- package/dist/checks/specialized/decimal-serialization.d.ts +24 -0
- package/dist/checks/specialized/decimal-serialization.d.ts.map +1 -0
- package/dist/checks/specialized/decimal-serialization.js +400 -0
- package/dist/checks/specialized/decimal-serialization.js.map +1 -0
- package/dist/checks/specialized/detect-router-issues.d.ts +14 -0
- package/dist/checks/specialized/detect-router-issues.d.ts.map +1 -0
- package/dist/checks/specialized/detect-router-issues.js +96 -0
- package/dist/checks/specialized/detect-router-issues.js.map +1 -0
- package/dist/checks/specialized/enum-validation.d.ts +15 -0
- package/dist/checks/specialized/enum-validation.d.ts.map +1 -0
- package/dist/checks/specialized/enum-validation.js +35 -0
- package/dist/checks/specialized/enum-validation.js.map +1 -0
- package/dist/checks/specialized/hash-collision.d.ts +18 -0
- package/dist/checks/specialized/hash-collision.d.ts.map +1 -0
- package/dist/checks/specialized/hash-collision.js +78 -0
- package/dist/checks/specialized/hash-collision.js.map +1 -0
- package/dist/checks/specialized/id-generation-enforcement.d.ts +16 -0
- package/dist/checks/specialized/id-generation-enforcement.d.ts.map +1 -0
- package/dist/checks/specialized/id-generation-enforcement.js +307 -0
- package/dist/checks/specialized/id-generation-enforcement.js.map +1 -0
- package/dist/checks/specialized/image-data-integrity.d.ts +15 -0
- package/dist/checks/specialized/image-data-integrity.d.ts.map +1 -0
- package/dist/checks/specialized/image-data-integrity.js +79 -0
- package/dist/checks/specialized/image-data-integrity.js.map +1 -0
- package/dist/checks/specialized/image-health.d.ts +14 -0
- package/dist/checks/specialized/image-health.d.ts.map +1 -0
- package/dist/checks/specialized/image-health.js +122 -0
- package/dist/checks/specialized/image-health.js.map +1 -0
- package/dist/checks/specialized/image-metadata-validation.d.ts +14 -0
- package/dist/checks/specialized/image-metadata-validation.d.ts.map +1 -0
- package/dist/checks/specialized/image-metadata-validation.js +95 -0
- package/dist/checks/specialized/image-metadata-validation.js.map +1 -0
- package/dist/checks/specialized/image-optimization.d.ts +16 -0
- package/dist/checks/specialized/image-optimization.d.ts.map +1 -0
- package/dist/checks/specialized/image-optimization.js +86 -0
- package/dist/checks/specialized/image-optimization.js.map +1 -0
- package/dist/checks/specialized/invalid-module-imports.d.ts +24 -0
- package/dist/checks/specialized/invalid-module-imports.d.ts.map +1 -0
- package/dist/checks/specialized/invalid-module-imports.js +209 -0
- package/dist/checks/specialized/invalid-module-imports.js.map +1 -0
- package/dist/checks/specialized/lint-validation.d.ts +26 -0
- package/dist/checks/specialized/lint-validation.d.ts.map +1 -0
- package/dist/checks/specialized/lint-validation.js +193 -0
- package/dist/checks/specialized/lint-validation.js.map +1 -0
- package/dist/checks/specialized/listing-workflow.d.ts +19 -0
- package/dist/checks/specialized/listing-workflow.d.ts.map +1 -0
- package/dist/checks/specialized/listing-workflow.js +89 -0
- package/dist/checks/specialized/listing-workflow.js.map +1 -0
- package/dist/checks/specialized/mui-imports-validation.d.ts +18 -0
- package/dist/checks/specialized/mui-imports-validation.d.ts.map +1 -0
- package/dist/checks/specialized/mui-imports-validation.js +134 -0
- package/dist/checks/specialized/mui-imports-validation.js.map +1 -0
- package/dist/checks/specialized/nextauth-v5-compliance.d.ts +16 -0
- package/dist/checks/specialized/nextauth-v5-compliance.d.ts.map +1 -0
- package/dist/checks/specialized/nextauth-v5-compliance.js +164 -0
- package/dist/checks/specialized/nextauth-v5-compliance.js.map +1 -0
- package/dist/checks/specialized/nextjs-params-check.d.ts +14 -0
- package/dist/checks/specialized/nextjs-params-check.d.ts.map +1 -0
- package/dist/checks/specialized/nextjs-params-check.js +140 -0
- package/dist/checks/specialized/nextjs-params-check.js.map +1 -0
- package/dist/checks/specialized/no-legacy-catalog-aliases-validation.d.ts +16 -0
- package/dist/checks/specialized/no-legacy-catalog-aliases-validation.d.ts.map +1 -0
- package/dist/checks/specialized/no-legacy-catalog-aliases-validation.js +36 -0
- package/dist/checks/specialized/no-legacy-catalog-aliases-validation.js.map +1 -0
- package/dist/checks/specialized/no-wata-cardgraded-validation.d.ts +22 -0
- package/dist/checks/specialized/no-wata-cardgraded-validation.d.ts.map +1 -0
- package/dist/checks/specialized/no-wata-cardgraded-validation.js +97 -0
- package/dist/checks/specialized/no-wata-cardgraded-validation.js.map +1 -0
- package/dist/checks/specialized/parameter-consistency-check.d.ts +20 -0
- package/dist/checks/specialized/parameter-consistency-check.d.ts.map +1 -0
- package/dist/checks/specialized/parameter-consistency-check.js +115 -0
- package/dist/checks/specialized/parameter-consistency-check.js.map +1 -0
- package/dist/checks/specialized/prisma-field-names-validation.d.ts +15 -0
- package/dist/checks/specialized/prisma-field-names-validation.d.ts.map +1 -0
- package/dist/checks/specialized/prisma-field-names-validation.js +35 -0
- package/dist/checks/specialized/prisma-field-names-validation.js.map +1 -0
- package/dist/checks/specialized/prisma-null-syntax.d.ts +34 -0
- package/dist/checks/specialized/prisma-null-syntax.d.ts.map +1 -0
- package/dist/checks/specialized/prisma-null-syntax.js +330 -0
- package/dist/checks/specialized/prisma-null-syntax.js.map +1 -0
- package/dist/checks/specialized/prisma-query-validation.d.ts +15 -0
- package/dist/checks/specialized/prisma-query-validation.d.ts.map +1 -0
- package/dist/checks/specialized/prisma-query-validation.js +35 -0
- package/dist/checks/specialized/prisma-query-validation.js.map +1 -0
- package/dist/checks/specialized/product-type-validation.d.ts +17 -0
- package/dist/checks/specialized/product-type-validation.d.ts.map +1 -0
- package/dist/checks/specialized/product-type-validation.js +129 -0
- package/dist/checks/specialized/product-type-validation.js.map +1 -0
- package/dist/checks/specialized/responsive-image-validation.d.ts +14 -0
- package/dist/checks/specialized/responsive-image-validation.d.ts.map +1 -0
- package/dist/checks/specialized/responsive-image-validation.js +101 -0
- package/dist/checks/specialized/responsive-image-validation.js.map +1 -0
- package/dist/checks/specialized/root-cleanliness.d.ts +21 -0
- package/dist/checks/specialized/root-cleanliness.d.ts.map +1 -0
- package/dist/checks/specialized/root-cleanliness.js +251 -0
- package/dist/checks/specialized/root-cleanliness.js.map +1 -0
- package/dist/checks/specialized/rotation-detection-validation.d.ts +16 -0
- package/dist/checks/specialized/rotation-detection-validation.d.ts.map +1 -0
- package/dist/checks/specialized/rotation-detection-validation.js +113 -0
- package/dist/checks/specialized/rotation-detection-validation.js.map +1 -0
- package/dist/checks/specialized/script-organization.d.ts +17 -0
- package/dist/checks/specialized/script-organization.d.ts.map +1 -0
- package/dist/checks/specialized/script-organization.js +487 -0
- package/dist/checks/specialized/script-organization.js.map +1 -0
- package/dist/checks/specialized/shared-components-migration.d.ts +137 -0
- package/dist/checks/specialized/shared-components-migration.d.ts.map +1 -0
- package/dist/checks/specialized/shared-components-migration.js +1288 -0
- package/dist/checks/specialized/shared-components-migration.js.map +1 -0
- package/dist/checks/specialized/store-specialties-normalization.d.ts +10 -0
- package/dist/checks/specialized/store-specialties-normalization.d.ts.map +1 -0
- package/dist/checks/specialized/store-specialties-normalization.js +126 -0
- package/dist/checks/specialized/store-specialties-normalization.js.map +1 -0
- package/dist/checks/specialized/two-stage-trim-validation.d.ts +16 -0
- package/dist/checks/specialized/two-stage-trim-validation.d.ts.map +1 -0
- package/dist/checks/specialized/two-stage-trim-validation.js +115 -0
- package/dist/checks/specialized/two-stage-trim-validation.js.map +1 -0
- package/dist/checks/specialized/underscore-variable-audit.d.ts +26 -0
- package/dist/checks/specialized/underscore-variable-audit.d.ts.map +1 -0
- package/dist/checks/specialized/underscore-variable-audit.js +219 -0
- package/dist/checks/specialized/underscore-variable-audit.js.map +1 -0
- package/dist/checks/specialized/unified-badge-consistency.d.ts +16 -0
- package/dist/checks/specialized/unified-badge-consistency.d.ts.map +1 -0
- package/dist/checks/specialized/unified-badge-consistency.js +284 -0
- package/dist/checks/specialized/unified-badge-consistency.js.map +1 -0
- package/dist/checks/specialized/validate-integration-enums.d.ts +15 -0
- package/dist/checks/specialized/validate-integration-enums.d.ts.map +1 -0
- package/dist/checks/specialized/validate-integration-enums.js +131 -0
- package/dist/checks/specialized/validate-integration-enums.js.map +1 -0
- package/dist/checks/testing/action-regression.d.ts +23 -0
- package/dist/checks/testing/action-regression.d.ts.map +1 -0
- package/dist/checks/testing/action-regression.js +192 -0
- package/dist/checks/testing/action-regression.js.map +1 -0
- package/dist/checks/testing/critical-api-coverage.d.ts +21 -0
- package/dist/checks/testing/critical-api-coverage.d.ts.map +1 -0
- package/dist/checks/testing/critical-api-coverage.js +158 -0
- package/dist/checks/testing/critical-api-coverage.js.map +1 -0
- package/dist/checks/testing/data-entry-regression-required.d.ts +24 -0
- package/dist/checks/testing/data-entry-regression-required.d.ts.map +1 -0
- package/dist/checks/testing/data-entry-regression-required.js +378 -0
- package/dist/checks/testing/data-entry-regression-required.js.map +1 -0
- package/dist/checks/testing/e2e-best-practices.d.ts +24 -0
- package/dist/checks/testing/e2e-best-practices.d.ts.map +1 -0
- package/dist/checks/testing/e2e-best-practices.js +791 -0
- package/dist/checks/testing/e2e-best-practices.js.map +1 -0
- package/dist/checks/testing/e2e-flake-patterns.d.ts +26 -0
- package/dist/checks/testing/e2e-flake-patterns.d.ts.map +1 -0
- package/dist/checks/testing/e2e-flake-patterns.js +305 -0
- package/dist/checks/testing/e2e-flake-patterns.js.map +1 -0
- package/dist/checks/testing/e2e-redundant-visibility-checks.d.ts +25 -0
- package/dist/checks/testing/e2e-redundant-visibility-checks.d.ts.map +1 -0
- package/dist/checks/testing/e2e-redundant-visibility-checks.js +613 -0
- package/dist/checks/testing/e2e-redundant-visibility-checks.js.map +1 -0
- package/dist/checks/testing/e2e-slow-tests.d.ts +9 -0
- package/dist/checks/testing/e2e-slow-tests.d.ts.map +1 -0
- package/dist/checks/testing/e2e-slow-tests.js +142 -0
- package/dist/checks/testing/e2e-slow-tests.js.map +1 -0
- package/dist/checks/testing/e2e-timeouts.d.ts +9 -0
- package/dist/checks/testing/e2e-timeouts.d.ts.map +1 -0
- package/dist/checks/testing/e2e-timeouts.js +82 -0
- package/dist/checks/testing/e2e-timeouts.js.map +1 -0
- package/dist/checks/testing/integration-e2e-depth.d.ts +20 -0
- package/dist/checks/testing/integration-e2e-depth.d.ts.map +1 -0
- package/dist/checks/testing/integration-e2e-depth.js +575 -0
- package/dist/checks/testing/integration-e2e-depth.js.map +1 -0
- package/dist/checks/testing/playwright-feature-coverage-gaps.d.ts +31 -0
- package/dist/checks/testing/playwright-feature-coverage-gaps.d.ts.map +1 -0
- package/dist/checks/testing/playwright-feature-coverage-gaps.js +1582 -0
- package/dist/checks/testing/playwright-feature-coverage-gaps.js.map +1 -0
- package/dist/checks/testing/playwright-mock-inventory.d.ts +24 -0
- package/dist/checks/testing/playwright-mock-inventory.d.ts.map +1 -0
- package/dist/checks/testing/playwright-mock-inventory.js +380 -0
- package/dist/checks/testing/playwright-mock-inventory.js.map +1 -0
- package/dist/checks/testing/test-coverage-threshold.d.ts +25 -0
- package/dist/checks/testing/test-coverage-threshold.d.ts.map +1 -0
- package/dist/checks/testing/test-coverage-threshold.js +166 -0
- package/dist/checks/testing/test-coverage-threshold.js.map +1 -0
- package/dist/checks/testing/test-flakiness-score.d.ts +27 -0
- package/dist/checks/testing/test-flakiness-score.d.ts.map +1 -0
- package/dist/checks/testing/test-flakiness-score.js +358 -0
- package/dist/checks/testing/test-flakiness-score.js.map +1 -0
- package/dist/checks/testing/test-patterns.d.ts +16 -0
- package/dist/checks/testing/test-patterns.d.ts.map +1 -0
- package/dist/checks/testing/test-patterns.js +156 -0
- package/dist/checks/testing/test-patterns.js.map +1 -0
- package/dist/checks/workflows/a-plus-rating-validation.d.ts +42 -0
- package/dist/checks/workflows/a-plus-rating-validation.d.ts.map +1 -0
- package/dist/checks/workflows/a-plus-rating-validation.js +527 -0
- package/dist/checks/workflows/a-plus-rating-validation.js.map +1 -0
- package/dist/checks/workflows/affected.d.ts +14 -0
- package/dist/checks/workflows/affected.d.ts.map +1 -0
- package/dist/checks/workflows/affected.js +126 -0
- package/dist/checks/workflows/affected.js.map +1 -0
- package/dist/checks/workflows/ai.d.ts +6 -0
- package/dist/checks/workflows/ai.d.ts.map +1 -0
- package/dist/checks/workflows/ai.js +42 -0
- package/dist/checks/workflows/ai.js.map +1 -0
- package/dist/checks/workflows/all.d.ts +31 -0
- package/dist/checks/workflows/all.d.ts.map +1 -0
- package/dist/checks/workflows/all.js +2688 -0
- package/dist/checks/workflows/all.js.map +1 -0
- package/dist/checks/workflows/commit.d.ts +19 -0
- package/dist/checks/workflows/commit.d.ts.map +1 -0
- package/dist/checks/workflows/commit.js +207 -0
- package/dist/checks/workflows/commit.js.map +1 -0
- package/dist/checks/workflows/critical.d.ts +9 -0
- package/dist/checks/workflows/critical.d.ts.map +1 -0
- package/dist/checks/workflows/critical.js +213 -0
- package/dist/checks/workflows/critical.js.map +1 -0
- package/dist/checks/workflows/database-id-validation.d.ts +9 -0
- package/dist/checks/workflows/database-id-validation.d.ts.map +1 -0
- package/dist/checks/workflows/database-id-validation.js +13 -0
- package/dist/checks/workflows/database-id-validation.js.map +1 -0
- package/dist/checks/workflows/deploy.d.ts +20 -0
- package/dist/checks/workflows/deploy.d.ts.map +1 -0
- package/dist/checks/workflows/deploy.js +107 -0
- package/dist/checks/workflows/deploy.js.map +1 -0
- package/dist/checks/workflows/deployment-readiness.d.ts +12 -0
- package/dist/checks/workflows/deployment-readiness.d.ts.map +1 -0
- package/dist/checks/workflows/deployment-readiness.js +403 -0
- package/dist/checks/workflows/deployment-readiness.js.map +1 -0
- package/dist/checks/workflows/dev.d.ts +19 -0
- package/dist/checks/workflows/dev.d.ts.map +1 -0
- package/dist/checks/workflows/dev.js +88 -0
- package/dist/checks/workflows/dev.js.map +1 -0
- package/dist/checks/workflows/development.d.ts +9 -0
- package/dist/checks/workflows/development.d.ts.map +1 -0
- package/dist/checks/workflows/development.js +65 -0
- package/dist/checks/workflows/development.js.map +1 -0
- package/dist/checks/workflows/enterprise.d.ts +10 -0
- package/dist/checks/workflows/enterprise.d.ts.map +1 -0
- package/dist/checks/workflows/enterprise.js +359 -0
- package/dist/checks/workflows/enterprise.js.map +1 -0
- package/dist/checks/workflows/images.d.ts +6 -0
- package/dist/checks/workflows/images.d.ts.map +1 -0
- package/dist/checks/workflows/images.js +58 -0
- package/dist/checks/workflows/images.js.map +1 -0
- package/dist/checks/workflows/naming.d.ts +19 -0
- package/dist/checks/workflows/naming.d.ts.map +1 -0
- package/dist/checks/workflows/naming.js +42 -0
- package/dist/checks/workflows/naming.js.map +1 -0
- package/dist/checks/workflows/performance.d.ts +8 -0
- package/dist/checks/workflows/performance.d.ts.map +1 -0
- package/dist/checks/workflows/performance.js +77 -0
- package/dist/checks/workflows/performance.js.map +1 -0
- package/dist/checks/workflows/pre-deploy.d.ts +6 -0
- package/dist/checks/workflows/pre-deploy.d.ts.map +1 -0
- package/dist/checks/workflows/pre-deploy.js +41 -0
- package/dist/checks/workflows/pre-deploy.js.map +1 -0
- package/dist/checks/workflows/security.d.ts +8 -0
- package/dist/checks/workflows/security.d.ts.map +1 -0
- package/dist/checks/workflows/security.js +71 -0
- package/dist/checks/workflows/security.js.map +1 -0
- package/dist/checks/workflows/supercatch.d.ts +8 -0
- package/dist/checks/workflows/supercatch.d.ts.map +1 -0
- package/dist/checks/workflows/supercatch.js +127 -0
- package/dist/checks/workflows/supercatch.js.map +1 -0
- package/dist/checks/workflows/ui-quality.d.ts +9 -0
- package/dist/checks/workflows/ui-quality.d.ts.map +1 -0
- package/dist/checks/workflows/ui-quality.js +264 -0
- package/dist/checks/workflows/ui-quality.js.map +1 -0
- package/dist/checks/workflows/ui-uniformity.d.ts +18 -0
- package/dist/checks/workflows/ui-uniformity.d.ts.map +1 -0
- package/dist/checks/workflows/ui-uniformity.js +265 -0
- package/dist/checks/workflows/ui-uniformity.js.map +1 -0
- package/dist/checks/workflows/vercel.d.ts +16 -0
- package/dist/checks/workflows/vercel.d.ts.map +1 -0
- package/dist/checks/workflows/vercel.js +173 -0
- package/dist/checks/workflows/vercel.js.map +1 -0
- package/dist/utils/validation-helpers.d.ts +43 -0
- package/dist/utils/validation-helpers.d.ts.map +1 -0
- package/dist/utils/validation-helpers.js +370 -0
- package/dist/utils/validation-helpers.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,699 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Database Preflight Checks
|
|
5
|
+
* Comprehensive database validation for SuperCatch platform
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
const dotenv_1 = require("dotenv");
|
|
42
|
+
const console_chars_1 = require("../../utils/console-chars");
|
|
43
|
+
const file_scanner_1 = require("../../utils/file-scanner");
|
|
44
|
+
const preflight_runner_1 = require("../../utils/preflight-runner");
|
|
45
|
+
// Load environment variables from .env.local
|
|
46
|
+
(0, dotenv_1.config)({ path: ".env.local" });
|
|
47
|
+
// Helper function to find and read Prisma schema
|
|
48
|
+
async function findAndReadSchema(scanner) {
|
|
49
|
+
// Try scanner first
|
|
50
|
+
let schemaFile = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
51
|
+
if (schemaFile.length > 0) {
|
|
52
|
+
const content = await scanner.readFileContent(schemaFile[0].path);
|
|
53
|
+
if (content) {
|
|
54
|
+
return { content, path: schemaFile[0].path };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Try alternative paths
|
|
58
|
+
const { readFile } = await Promise.resolve().then(() => __importStar(require("fs/promises")));
|
|
59
|
+
const { join } = await Promise.resolve().then(() => __importStar(require("path")));
|
|
60
|
+
const possiblePaths = [
|
|
61
|
+
"prisma/schema.prisma",
|
|
62
|
+
"../../../prisma/schema.prisma",
|
|
63
|
+
join(process.cwd(), "prisma/schema.prisma"),
|
|
64
|
+
];
|
|
65
|
+
for (const path of possiblePaths) {
|
|
66
|
+
try {
|
|
67
|
+
const content = await readFile(path, "utf-8");
|
|
68
|
+
return { content, path };
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
// Continue to next path
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
function extractModelBlocks(schema) {
|
|
77
|
+
const models = [];
|
|
78
|
+
const lines = schema.split("\n");
|
|
79
|
+
let currentName = null;
|
|
80
|
+
let braceDepth = 0;
|
|
81
|
+
let buffer = [];
|
|
82
|
+
for (const line of lines) {
|
|
83
|
+
if (currentName === null) {
|
|
84
|
+
const match = line.match(/^\s*model\s+(\w+)\s*\{/);
|
|
85
|
+
if (match) {
|
|
86
|
+
currentName = match[1];
|
|
87
|
+
braceDepth = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
|
|
88
|
+
const afterBraceIndex = line.indexOf("{") + 1;
|
|
89
|
+
const afterBrace = line.slice(afterBraceIndex).trim();
|
|
90
|
+
if (afterBrace) {
|
|
91
|
+
buffer.push(afterBrace);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
braceDepth += (line.match(/\{/g) || []).length;
|
|
97
|
+
braceDepth -= (line.match(/\}/g) || []).length;
|
|
98
|
+
if (braceDepth <= 0) {
|
|
99
|
+
models.push({ name: currentName, block: buffer.join("\n") });
|
|
100
|
+
currentName = null;
|
|
101
|
+
buffer = [];
|
|
102
|
+
braceDepth = 0;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
buffer.push(line);
|
|
106
|
+
}
|
|
107
|
+
return models;
|
|
108
|
+
}
|
|
109
|
+
function isAnalyticsTimeSeriesModel(model) {
|
|
110
|
+
if (model.name.startsWith("Analytics")) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
const mapMatch = model.block.match(/@@map\("([^"]+)"\)/);
|
|
114
|
+
return Boolean(mapMatch && mapMatch[1]?.startsWith("analytics_"));
|
|
115
|
+
}
|
|
116
|
+
function validateAnalyticsModel(model) {
|
|
117
|
+
const violations = [];
|
|
118
|
+
const lines = model.block.split("\n");
|
|
119
|
+
for (const rawLine of lines) {
|
|
120
|
+
const line = rawLine.trim();
|
|
121
|
+
if (!line || line.startsWith("@@") || line.startsWith("//")) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const fieldMatch = line.match(/^(\w+)/);
|
|
125
|
+
if (!fieldMatch) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const fieldName = fieldMatch[1];
|
|
129
|
+
// Skip Prisma directives that might slip through
|
|
130
|
+
if (fieldName.startsWith("@")) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
// Check for snake_case field names (should use camelCase)
|
|
134
|
+
if (fieldName.includes("_")) {
|
|
135
|
+
violations.push(`Analytics model ${model.name}.${fieldName} should use camelCase field names.`);
|
|
136
|
+
}
|
|
137
|
+
// NOTE: @map() annotations are NOT required - Prisma handles snake_case mapping automatically
|
|
138
|
+
}
|
|
139
|
+
return violations;
|
|
140
|
+
}
|
|
141
|
+
async function runDatabasePreflights() {
|
|
142
|
+
const runner = new preflight_runner_1.PreflightRunner(true);
|
|
143
|
+
const scanner = new file_scanner_1.FileScanner();
|
|
144
|
+
// Database Connection (Schema-based validation only)
|
|
145
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Database Configuration", "Validate database configuration and environment variables", async () => {
|
|
146
|
+
const errors = [];
|
|
147
|
+
const warnings = [];
|
|
148
|
+
const info = [];
|
|
149
|
+
// Check for DATABASE_URL - warning only since schema validation works without it
|
|
150
|
+
if (!process.env.DATABASE_URL) {
|
|
151
|
+
warnings.push("DATABASE_URL environment variable is not set - database connectivity not verified");
|
|
152
|
+
info.push(`${console_chars_1.emoji.info} Schema validation will still run without database connection`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
info.push("${chars.check} DATABASE_URL environment variable is configured");
|
|
156
|
+
}
|
|
157
|
+
// Check for SHADOW_DATABASE_URL (optional but recommended)
|
|
158
|
+
if (!process.env.SHADOW_DATABASE_URL) {
|
|
159
|
+
warnings.push("SHADOW_DATABASE_URL not set - migrations may be slower");
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
info.push("✓ SHADOW_DATABASE_URL environment variable is configured");
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
passed: true, // Always pass - missing DATABASE_URL is a warning, not an error
|
|
166
|
+
errors,
|
|
167
|
+
warnings,
|
|
168
|
+
info,
|
|
169
|
+
};
|
|
170
|
+
}, true));
|
|
171
|
+
// Prisma Schema Validation
|
|
172
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Prisma Schema Validation", "Validate Prisma schema structure and conventions", async () => {
|
|
173
|
+
const errors = [];
|
|
174
|
+
const warnings = [];
|
|
175
|
+
const info = [];
|
|
176
|
+
const schemaResult = await findAndReadSchema(scanner);
|
|
177
|
+
if (!schemaResult) {
|
|
178
|
+
errors.push("Prisma schema file not found");
|
|
179
|
+
return { passed: false, errors, warnings };
|
|
180
|
+
}
|
|
181
|
+
const { content, path } = schemaResult;
|
|
182
|
+
info.push(`✓ Found Prisma schema at: ${path}`);
|
|
183
|
+
if (!content) {
|
|
184
|
+
errors.push("Could not read Prisma schema file");
|
|
185
|
+
return { passed: false, errors, warnings };
|
|
186
|
+
}
|
|
187
|
+
// Check for required configurations
|
|
188
|
+
if (!content.includes("generator client")) {
|
|
189
|
+
errors.push("Missing Prisma client generator");
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
info.push("${chars.check} Prisma client generator configured");
|
|
193
|
+
}
|
|
194
|
+
if (!content.includes("datasource db")) {
|
|
195
|
+
errors.push("Missing database datasource");
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
info.push("✓ Database datasource configured");
|
|
199
|
+
}
|
|
200
|
+
// Check for SuperCatch-specific core models (current Prisma model names)
|
|
201
|
+
const requiredCoreModels = [
|
|
202
|
+
"User",
|
|
203
|
+
"Store",
|
|
204
|
+
"Listing",
|
|
205
|
+
"Order",
|
|
206
|
+
"SportsCard",
|
|
207
|
+
"RecognitionJob",
|
|
208
|
+
];
|
|
209
|
+
const requiredCatalogModels = [
|
|
210
|
+
"VideoGame",
|
|
211
|
+
"TcgCard",
|
|
212
|
+
"Autograph",
|
|
213
|
+
"Ticket",
|
|
214
|
+
"Memorabilia",
|
|
215
|
+
"NonSportsCard",
|
|
216
|
+
];
|
|
217
|
+
const requiredJobModels = ["JobsIntegration", "jobsImport", "jobsExport"];
|
|
218
|
+
const hasModel = (modelName) => new RegExp(`model\\s+${modelName}\\b`).test(content);
|
|
219
|
+
// Check core business models
|
|
220
|
+
for (const model of requiredCoreModels) {
|
|
221
|
+
if (hasModel(model)) {
|
|
222
|
+
info.push(`${console_chars_1.chars.check} Core model ${model} found`);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
errors.push(`Critical model ${model} not found - required for SuperCatch functionality`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Check catalog models
|
|
229
|
+
let catalogModelsFound = 0;
|
|
230
|
+
for (const model of requiredCatalogModels) {
|
|
231
|
+
if (hasModel(model)) {
|
|
232
|
+
info.push(`${console_chars_1.chars.check} Catalog model ${model} found`);
|
|
233
|
+
catalogModelsFound++;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (catalogModelsFound === 0) {
|
|
237
|
+
warnings.push("No catalog models found - may be expected for minimal deployment");
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
info.push(`${console_chars_1.chars.check} Found ${catalogModelsFound}/${requiredCatalogModels.length} catalog models`);
|
|
241
|
+
}
|
|
242
|
+
// Check job models
|
|
243
|
+
let jobModelsFound = 0;
|
|
244
|
+
for (const model of requiredJobModels) {
|
|
245
|
+
if (hasModel(model)) {
|
|
246
|
+
info.push(`${console_chars_1.chars.check} Job model ${model} found`);
|
|
247
|
+
jobModelsFound++;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (jobModelsFound === 0) {
|
|
251
|
+
warnings.push("No job models found - integrations may not be available");
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
info.push(`${console_chars_1.chars.check} Found ${jobModelsFound}/${requiredJobModels.length} job models`);
|
|
255
|
+
}
|
|
256
|
+
// Check for proper ID strategy (Crockford Base32)
|
|
257
|
+
// NOTE: Analytics models may use cuid() for simplicity - that's acceptable
|
|
258
|
+
const idPattern = /@id @default\(cuid\(\)\)/g;
|
|
259
|
+
const cuidMatches = content.match(idPattern);
|
|
260
|
+
if (cuidMatches && cuidMatches.length > 0) {
|
|
261
|
+
// Downgrade from error to warning - analytics models may use cuid() for simplicity
|
|
262
|
+
warnings.push(`Found ${cuidMatches.length} CUID usage(s) - core models should use Crockford Base32 (analytics models may use cuid)`);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
info.push("${chars.check} No CUID usage detected");
|
|
266
|
+
}
|
|
267
|
+
// Check for proper indexing
|
|
268
|
+
if (content.includes("@@index")) {
|
|
269
|
+
info.push("✓ Database indexes configured");
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
warnings.push("No database indexes found - consider adding for performance");
|
|
273
|
+
}
|
|
274
|
+
// Enforce analytics time-series naming conventions
|
|
275
|
+
const parsedModels = extractModelBlocks(content);
|
|
276
|
+
const analyticsModels = parsedModels.filter(isAnalyticsTimeSeriesModel);
|
|
277
|
+
if (analyticsModels.length > 0) {
|
|
278
|
+
info.push(`✓ Found ${analyticsModels.length} analytics time-series model(s)`);
|
|
279
|
+
let analyticsViolations = 0;
|
|
280
|
+
for (const model of analyticsModels) {
|
|
281
|
+
const violations = validateAnalyticsModel(model);
|
|
282
|
+
analyticsViolations += violations.length;
|
|
283
|
+
if (violations.length > 0) {
|
|
284
|
+
errors.push(...violations);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
if (analyticsViolations === 0) {
|
|
288
|
+
info.push("${chars.check} Analytics models use proper camelCase field naming");
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// NOTE: @@map() and @map() are NOT required - Prisma handles table/column naming automatically
|
|
292
|
+
// We only validate that model names follow PascalCase convention
|
|
293
|
+
const scalarTypes = new Set([
|
|
294
|
+
"String",
|
|
295
|
+
"Int",
|
|
296
|
+
"Float",
|
|
297
|
+
"Decimal",
|
|
298
|
+
"Boolean",
|
|
299
|
+
"DateTime",
|
|
300
|
+
"Json",
|
|
301
|
+
"Bytes",
|
|
302
|
+
"BigInt",
|
|
303
|
+
]);
|
|
304
|
+
// Validate model naming conventions (PascalCase)
|
|
305
|
+
for (const model of parsedModels) {
|
|
306
|
+
// Check model name is PascalCase
|
|
307
|
+
if (!/^[A-Z][a-zA-Z0-9]*$/.test(model.name)) {
|
|
308
|
+
warnings.push(`Model ${model.name} should use PascalCase naming`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
info.push("${chars.check} Prisma models validated (@@map/@map not required)");
|
|
312
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
313
|
+
}));
|
|
314
|
+
// Migration Status
|
|
315
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Migration Status", "Check database migration status", async () => {
|
|
316
|
+
const errors = [];
|
|
317
|
+
const warnings = [];
|
|
318
|
+
const info = [];
|
|
319
|
+
try {
|
|
320
|
+
const { execSync } = await Promise.resolve().then(() => __importStar(require("child_process")));
|
|
321
|
+
// Check migration status (requires shadow database in some environments)
|
|
322
|
+
const output = execSync("npx prisma migrate status", {
|
|
323
|
+
encoding: "utf-8",
|
|
324
|
+
stdio: "pipe",
|
|
325
|
+
});
|
|
326
|
+
if (output.includes("Database is up to date")) {
|
|
327
|
+
info.push("✓ Database migrations are up to date");
|
|
328
|
+
}
|
|
329
|
+
else if (output.includes("pending migration")) {
|
|
330
|
+
warnings.push("Pending database migrations detected");
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
// Migration status check failed - this is normal in production environments
|
|
335
|
+
// without shadow database access. Skip warning in production.
|
|
336
|
+
const isProduction = process.env.NODE_ENV === "production" || process.env.VERCEL_ENV === "production";
|
|
337
|
+
if (!isProduction) {
|
|
338
|
+
info.push(`${console_chars_1.emoji.info} Migration status check skipped (requires shadow database)`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
342
|
+
}));
|
|
343
|
+
// Database Constraints
|
|
344
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Database Constraints", "Validate database constraints and relationships", async () => {
|
|
345
|
+
const errors = [];
|
|
346
|
+
const warnings = [];
|
|
347
|
+
const info = [];
|
|
348
|
+
const schemaResult = await findAndReadSchema(scanner);
|
|
349
|
+
if (!schemaResult) {
|
|
350
|
+
return { passed: true, errors, warnings }; // Already checked in schema validation
|
|
351
|
+
}
|
|
352
|
+
const { content } = schemaResult;
|
|
353
|
+
// Check for foreign key relationships
|
|
354
|
+
const relationPattern = /@relation/g;
|
|
355
|
+
const relations = content.match(relationPattern);
|
|
356
|
+
if (relations) {
|
|
357
|
+
info.push(`${console_chars_1.chars.check} Found ${relations.length} database relationships`);
|
|
358
|
+
}
|
|
359
|
+
// Check for unique constraints
|
|
360
|
+
const uniquePattern = /@unique/g;
|
|
361
|
+
const uniqueConstraints = content.match(uniquePattern);
|
|
362
|
+
if (uniqueConstraints) {
|
|
363
|
+
info.push(`${console_chars_1.chars.check} Found ${uniqueConstraints.length} unique constraints`);
|
|
364
|
+
}
|
|
365
|
+
// Check for required fields
|
|
366
|
+
const requiredFields = content.match(/\s+\w+\s+\w+(?!\?)/g);
|
|
367
|
+
if (requiredFields) {
|
|
368
|
+
info.push(`${console_chars_1.chars.check} Found required field constraints`);
|
|
369
|
+
}
|
|
370
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
371
|
+
}));
|
|
372
|
+
// Database Model/Table Name Consistency
|
|
373
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Database Model/Table Name Consistency", "Validate that code uses correct Prisma model names matching database tables", async () => {
|
|
374
|
+
const errors = [];
|
|
375
|
+
const warnings = [];
|
|
376
|
+
const info = [];
|
|
377
|
+
// Get Prisma schema to extract actual model names
|
|
378
|
+
const schemaResult = await findAndReadSchema(scanner);
|
|
379
|
+
if (!schemaResult) {
|
|
380
|
+
errors.push("Prisma schema file not found");
|
|
381
|
+
return { passed: false, errors, warnings };
|
|
382
|
+
}
|
|
383
|
+
const { content: schemaContent } = schemaResult;
|
|
384
|
+
// Extract actual model names from schema
|
|
385
|
+
const modelMatches = schemaContent.match(/^model\s+(\w+)\s*{/gm);
|
|
386
|
+
const actualModels = modelMatches
|
|
387
|
+
? modelMatches.map((match) => match.match(/model\s+(\w+)/)?.[1]).filter(Boolean)
|
|
388
|
+
: [];
|
|
389
|
+
info.push(`${console_chars_1.chars.check} Found ${actualModels.length} models in schema: ${actualModels.join(", ")}`);
|
|
390
|
+
// Check TypeScript/JavaScript files for incorrect model usage
|
|
391
|
+
const codeFiles = await scanner.findFiles(/\.(ts|tsx|js|jsx)$/);
|
|
392
|
+
let totalViolations = 0;
|
|
393
|
+
for (const file of codeFiles) {
|
|
394
|
+
// Skip node_modules and other irrelevant directories
|
|
395
|
+
const pathLower = file.path.toLowerCase().replace(/\\/g, "/");
|
|
396
|
+
if (pathLower.includes("node_modules") ||
|
|
397
|
+
pathLower.includes(".next") ||
|
|
398
|
+
pathLower.includes("dist") ||
|
|
399
|
+
pathLower.includes(".git") ||
|
|
400
|
+
pathLower.includes("tests/") ||
|
|
401
|
+
pathLower.includes("__tests__/") ||
|
|
402
|
+
pathLower.includes(".test.") ||
|
|
403
|
+
pathLower.includes(".spec.") ||
|
|
404
|
+
pathLower.includes("scripts/") ||
|
|
405
|
+
pathLower.includes("docs/") ||
|
|
406
|
+
pathLower.includes("docs\\") ||
|
|
407
|
+
pathLower.includes(".kiro/steering-archive/") ||
|
|
408
|
+
pathLower.includes(".kiro\\steering-archive\\") ||
|
|
409
|
+
pathLower.includes(".kiro/steering/") ||
|
|
410
|
+
pathLower.includes(".kiro\\steering\\") ||
|
|
411
|
+
pathLower.includes("backups/") ||
|
|
412
|
+
pathLower.includes("backups\\")) {
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
const content = await scanner.readFileContent(file.path);
|
|
416
|
+
if (!content)
|
|
417
|
+
continue;
|
|
418
|
+
// Check for old incorrect model names that should be corrected to current schema names
|
|
419
|
+
const incorrectPatterns = [
|
|
420
|
+
{
|
|
421
|
+
incorrect: "prisma.cardMasterCatalog",
|
|
422
|
+
correct: "prisma.card",
|
|
423
|
+
description: "Card catalog model",
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
incorrect: "prisma.cardBrand",
|
|
427
|
+
correct: "prisma.brand",
|
|
428
|
+
description: "Card brand model",
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
incorrect: "prisma.cardSeries",
|
|
432
|
+
correct: "prisma.series",
|
|
433
|
+
description: "Card series model",
|
|
434
|
+
},
|
|
435
|
+
];
|
|
436
|
+
for (const pattern of incorrectPatterns) {
|
|
437
|
+
// Create a more precise regex that matches the exact model name, not partial matches
|
|
438
|
+
const escapedPattern = pattern.incorrect.replace(".", "\\.");
|
|
439
|
+
const regex = new RegExp(`\\b${escapedPattern}\\b(?!_)`, "g");
|
|
440
|
+
const matches = content.match(regex);
|
|
441
|
+
if (matches) {
|
|
442
|
+
// Filter out matches that are actually correct (like prisma.userCollections containing "user")
|
|
443
|
+
const actualMatches = matches.filter((match) => {
|
|
444
|
+
const lines = content.split("\n");
|
|
445
|
+
for (const line of lines) {
|
|
446
|
+
if (line.includes(match)) {
|
|
447
|
+
// Skip if it's part of a longer valid model name
|
|
448
|
+
if (line.includes(`${match}_`) ||
|
|
449
|
+
line.includes("userCollections") ||
|
|
450
|
+
line.includes("userCollectionItems") ||
|
|
451
|
+
line.includes("userWishlistItems") ||
|
|
452
|
+
line.includes("seller_shipping_rules") ||
|
|
453
|
+
line.includes("authStores") ||
|
|
454
|
+
line.includes("authUser") ||
|
|
455
|
+
line.includes("coreListings") ||
|
|
456
|
+
line.includes("coreOrders") ||
|
|
457
|
+
line.includes("coreOrderItems") ||
|
|
458
|
+
line.includes("catalog_cards") ||
|
|
459
|
+
line.includes("catalogRecognitionJobs") ||
|
|
460
|
+
line.includes("jobsIntegration")) {
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
return true;
|
|
466
|
+
});
|
|
467
|
+
if (actualMatches.length > 0) {
|
|
468
|
+
totalViolations += actualMatches.length;
|
|
469
|
+
errors.push(`${file.path}: Found ${actualMatches.length} usage(s) of '${pattern.incorrect}' - should be '${pattern.correct}' (${pattern.description})`);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
// Check for any prisma.modelName that doesn't exist in schema
|
|
474
|
+
const prismaUsageRegex = /prisma\.([a-zA-Z_][a-zA-Z0-9_]*)/g;
|
|
475
|
+
let match;
|
|
476
|
+
while ((match = prismaUsageRegex.exec(content)) !== null) {
|
|
477
|
+
const modelName = match[1] || "";
|
|
478
|
+
// Skip known valid patterns that aren't models
|
|
479
|
+
if ([
|
|
480
|
+
"$connect",
|
|
481
|
+
"$disconnect",
|
|
482
|
+
"$transaction",
|
|
483
|
+
"$executeRaw",
|
|
484
|
+
"$queryRaw",
|
|
485
|
+
"$executeRawUnsafe",
|
|
486
|
+
"$queryRawUnsafe",
|
|
487
|
+
].includes(modelName)) {
|
|
488
|
+
continue;
|
|
489
|
+
}
|
|
490
|
+
// Prisma generates camelCase model names in code, so check both PascalCase and camelCase
|
|
491
|
+
const pascalCase = modelName[0].toUpperCase() + modelName.slice(1);
|
|
492
|
+
const camelCase = modelName[0].toLowerCase() + modelName.slice(1);
|
|
493
|
+
if (!actualModels.includes(modelName) &&
|
|
494
|
+
!actualModels.includes(pascalCase) &&
|
|
495
|
+
!actualModels.includes(camelCase)) {
|
|
496
|
+
errors.push(`${file.path}: Uses 'prisma.${modelName}' but model '${modelName}' not found in schema. Available models: ${actualModels.join(", ")}`);
|
|
497
|
+
totalViolations++;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
if (totalViolations === 0) {
|
|
502
|
+
info.push("${chars.check} All Prisma model usage matches schema definitions");
|
|
503
|
+
}
|
|
504
|
+
else {
|
|
505
|
+
errors.push(`Found ${totalViolations} total model name violations across ${errors.length} files`);
|
|
506
|
+
}
|
|
507
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
508
|
+
}, true));
|
|
509
|
+
// SuperCatch-Specific Database Checks
|
|
510
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("SuperCatch Database Rules", "Validate SuperCatch-specific database patterns and table organization", async () => {
|
|
511
|
+
const errors = [];
|
|
512
|
+
const warnings = [];
|
|
513
|
+
const info = [];
|
|
514
|
+
const schemaResult = await findAndReadSchema(scanner);
|
|
515
|
+
if (!schemaResult) {
|
|
516
|
+
return { passed: true, errors, warnings };
|
|
517
|
+
}
|
|
518
|
+
const { content } = schemaResult;
|
|
519
|
+
const hasModel = (modelName) => new RegExp(`model\\s+${modelName}\\b`).test(content);
|
|
520
|
+
// Check for proper domain organization using current model names
|
|
521
|
+
const modelGroups = {
|
|
522
|
+
"Core commerce": {
|
|
523
|
+
models: [
|
|
524
|
+
"Listing",
|
|
525
|
+
"Order",
|
|
526
|
+
"OrderItem",
|
|
527
|
+
"DuplicateListing",
|
|
528
|
+
"ListingHistory",
|
|
529
|
+
"PriceHistory",
|
|
530
|
+
],
|
|
531
|
+
critical: true,
|
|
532
|
+
},
|
|
533
|
+
Catalog: {
|
|
534
|
+
models: [
|
|
535
|
+
"Card",
|
|
536
|
+
"VideoGame",
|
|
537
|
+
"TcgCard",
|
|
538
|
+
"Autograph",
|
|
539
|
+
"Ticket",
|
|
540
|
+
"Memorabilia",
|
|
541
|
+
"RecognitionJob",
|
|
542
|
+
],
|
|
543
|
+
critical: true,
|
|
544
|
+
},
|
|
545
|
+
Authentication: {
|
|
546
|
+
models: [
|
|
547
|
+
"User",
|
|
548
|
+
"Seller",
|
|
549
|
+
"Account",
|
|
550
|
+
"Organization",
|
|
551
|
+
"Session",
|
|
552
|
+
"VerificationToken",
|
|
553
|
+
"StoreNotification",
|
|
554
|
+
],
|
|
555
|
+
critical: true,
|
|
556
|
+
},
|
|
557
|
+
Collections: {
|
|
558
|
+
models: [
|
|
559
|
+
"UserCollection",
|
|
560
|
+
"UserCollectionItem",
|
|
561
|
+
"UserWishlistItem",
|
|
562
|
+
"UserSavedSearch",
|
|
563
|
+
"userRecentlyViewed",
|
|
564
|
+
],
|
|
565
|
+
},
|
|
566
|
+
Reference: {
|
|
567
|
+
models: [
|
|
568
|
+
"Brand",
|
|
569
|
+
"Series",
|
|
570
|
+
"Material",
|
|
571
|
+
"Language",
|
|
572
|
+
"Country",
|
|
573
|
+
"GradingCompany",
|
|
574
|
+
"League",
|
|
575
|
+
"Team",
|
|
576
|
+
"Size",
|
|
577
|
+
],
|
|
578
|
+
},
|
|
579
|
+
Jobs: {
|
|
580
|
+
models: [
|
|
581
|
+
"JobsIntegration",
|
|
582
|
+
"JobsIntegrationConfig",
|
|
583
|
+
"jobsIntegrationHistory",
|
|
584
|
+
"JobsIntegrationOauth",
|
|
585
|
+
"jobsImport",
|
|
586
|
+
"jobsExport",
|
|
587
|
+
],
|
|
588
|
+
},
|
|
589
|
+
Analytics: {
|
|
590
|
+
models: ["AnalyticsListingViewsTs", "AnalyticsSearchQueriesTs"],
|
|
591
|
+
},
|
|
592
|
+
System: {
|
|
593
|
+
models: [
|
|
594
|
+
"SystemDuplicateReport",
|
|
595
|
+
"systemImageUsageTracking",
|
|
596
|
+
"SystemBrandCache",
|
|
597
|
+
"SystemSetting",
|
|
598
|
+
"SystemAuditLog",
|
|
599
|
+
],
|
|
600
|
+
},
|
|
601
|
+
Email: {
|
|
602
|
+
models: ["EmailTemplate"],
|
|
603
|
+
},
|
|
604
|
+
};
|
|
605
|
+
let totalModelsFound = 0;
|
|
606
|
+
let totalModelsExpected = 0;
|
|
607
|
+
for (const [groupName, group] of Object.entries(modelGroups)) {
|
|
608
|
+
const foundInGroup = group.models.filter(hasModel);
|
|
609
|
+
totalModelsExpected += group.models.length;
|
|
610
|
+
totalModelsFound += foundInGroup.length;
|
|
611
|
+
if (foundInGroup.length > 0) {
|
|
612
|
+
info.push(`${console_chars_1.chars.check} ${groupName}: ${foundInGroup.length}/${group.models.length} models present`);
|
|
613
|
+
}
|
|
614
|
+
else if (group.critical) {
|
|
615
|
+
warnings.push(`No ${groupName.toLowerCase()} models found - critical for SuperCatch functionality`);
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
618
|
+
info.push(`${console_chars_1.chars.bullet} ${groupName}: 0/${group.models.length} models detected`);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
info.push(`${console_chars_1.chars.check} Total tracked Prisma models: ${totalModelsFound}/${totalModelsExpected}`);
|
|
622
|
+
// Check for proper indexing patterns
|
|
623
|
+
const criticalIndexes = [
|
|
624
|
+
"idx_listing_status",
|
|
625
|
+
"idx_listing_seller",
|
|
626
|
+
"idx_user_email",
|
|
627
|
+
"idx_recognition_status",
|
|
628
|
+
];
|
|
629
|
+
let indexesFound = 0;
|
|
630
|
+
for (const index of criticalIndexes) {
|
|
631
|
+
if (content.includes(index)) {
|
|
632
|
+
indexesFound++;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
if (indexesFound > 0) {
|
|
636
|
+
info.push(`${console_chars_1.chars.check} Critical indexes: ${indexesFound}/${criticalIndexes.length} found`);
|
|
637
|
+
}
|
|
638
|
+
else {
|
|
639
|
+
warnings.push("No critical database indexes found - performance may be impacted");
|
|
640
|
+
}
|
|
641
|
+
// Check for duplicate prevention patterns
|
|
642
|
+
const uniqueConstraints = content.match(/@@unique/g);
|
|
643
|
+
if (uniqueConstraints && uniqueConstraints.length > 0) {
|
|
644
|
+
info.push(`${console_chars_1.chars.check} Found ${uniqueConstraints.length} unique constraints for duplicate prevention`);
|
|
645
|
+
}
|
|
646
|
+
else {
|
|
647
|
+
warnings.push("No unique constraints found - consider adding for duplicate prevention");
|
|
648
|
+
}
|
|
649
|
+
// Check for proper enum usage
|
|
650
|
+
const enumPattern = /enum\s+(\w+)/g;
|
|
651
|
+
const enums = content.match(enumPattern);
|
|
652
|
+
if (enums && enums.length > 0) {
|
|
653
|
+
info.push(`${console_chars_1.chars.check} Found ${enums.length} enum definitions for type safety`);
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
warnings.push("No enum definitions found - consider adding for type safety");
|
|
657
|
+
}
|
|
658
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
659
|
+
}));
|
|
660
|
+
// Database Performance
|
|
661
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Database Performance", "Check for performance optimization patterns", async () => {
|
|
662
|
+
const errors = [];
|
|
663
|
+
const warnings = [];
|
|
664
|
+
const info = [];
|
|
665
|
+
const schemaResult = await findAndReadSchema(scanner);
|
|
666
|
+
if (!schemaResult) {
|
|
667
|
+
return { passed: true, errors, warnings };
|
|
668
|
+
}
|
|
669
|
+
const { content } = schemaResult;
|
|
670
|
+
// Check for indexes on frequently queried fields
|
|
671
|
+
const indexPatterns = ["status", "category", "createdAt", "updatedAt", "userId", "storeId"];
|
|
672
|
+
for (const field of indexPatterns) {
|
|
673
|
+
if (content.includes(`@@index([${field}])`) || content.includes(`@@index(${field})`)) {
|
|
674
|
+
info.push(`${console_chars_1.chars.check} Index found for ${field}`);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
// Check for composite indexes
|
|
678
|
+
if (content.includes("@@index([") && content.includes(",")) {
|
|
679
|
+
info.push("${chars.check} Composite indexes configured");
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
warnings.push("Consider adding composite indexes for complex queries");
|
|
683
|
+
}
|
|
684
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
685
|
+
}));
|
|
686
|
+
const result = await runner.runAll();
|
|
687
|
+
if (!result.passed) {
|
|
688
|
+
console.log(`\n${console_chars_1.emoji.bell} Database preflight checks failed!`);
|
|
689
|
+
process.exit(1);
|
|
690
|
+
}
|
|
691
|
+
console.log(`\n${console_chars_1.emoji.database} All database preflight checks passed!`);
|
|
692
|
+
return result;
|
|
693
|
+
}
|
|
694
|
+
// Run if called directly
|
|
695
|
+
if (require.main === module) {
|
|
696
|
+
runDatabasePreflights().catch(console.error);
|
|
697
|
+
}
|
|
698
|
+
exports.default = runDatabasePreflights;
|
|
699
|
+
//# sourceMappingURL=database.js.map
|