@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,750 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* SuperCatch Business Logic Preflight Checks
|
|
5
|
+
* Validates SuperCatch-specific business rules and patterns
|
|
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 console_chars_1 = require("../../utils/console-chars");
|
|
42
|
+
const file_scanner_1 = require("../../utils/file-scanner");
|
|
43
|
+
const preflight_runner_1 = require("../../utils/preflight-runner");
|
|
44
|
+
async function runSuperCatchPreflights() {
|
|
45
|
+
const runner = new preflight_runner_1.PreflightRunner(true);
|
|
46
|
+
const scanner = new file_scanner_1.FileScanner();
|
|
47
|
+
// Card Data Validation (from card-data.ts)
|
|
48
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Card Data Structure", "Validate card data models and required fields", async () => {
|
|
49
|
+
const errors = [];
|
|
50
|
+
const warnings = [];
|
|
51
|
+
const info = [];
|
|
52
|
+
// Check Prisma schema for card-related models
|
|
53
|
+
const schemaFiles = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
54
|
+
if (schemaFiles.length === 0) {
|
|
55
|
+
errors.push("Prisma schema file not found");
|
|
56
|
+
return { passed: false, errors, warnings };
|
|
57
|
+
}
|
|
58
|
+
const content = await scanner.readFileContent(schemaFiles[0].path);
|
|
59
|
+
if (!content) {
|
|
60
|
+
errors.push("Could not read Prisma schema");
|
|
61
|
+
return { passed: false, errors, warnings };
|
|
62
|
+
}
|
|
63
|
+
// Check for required card fields
|
|
64
|
+
const requiredFields = [
|
|
65
|
+
"cardName",
|
|
66
|
+
"cardNumber",
|
|
67
|
+
"year",
|
|
68
|
+
"brand",
|
|
69
|
+
"featured",
|
|
70
|
+
"graded",
|
|
71
|
+
"category",
|
|
72
|
+
];
|
|
73
|
+
for (const field of requiredFields) {
|
|
74
|
+
if (!content.includes(field)) {
|
|
75
|
+
errors.push(`Required field missing from schema: ${field}`);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
info.push(`${console_chars_1.chars.check} ${field} field present`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Check for League enum
|
|
82
|
+
if (!content.includes("enum League")) {
|
|
83
|
+
errors.push("League enum not defined in schema");
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
info.push("${chars.check} League enum found");
|
|
87
|
+
}
|
|
88
|
+
// Check for Sport enum
|
|
89
|
+
if (!content.includes("enum Sport")) {
|
|
90
|
+
errors.push("Sport enum not defined in schema");
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
info.push("✓ Sport enum found");
|
|
94
|
+
}
|
|
95
|
+
// Check for CardMasterCatalog model (now split into catalogSportsCards, catalogTcgCards, etc.)
|
|
96
|
+
const catalogModels = [
|
|
97
|
+
"catalogSportsCards",
|
|
98
|
+
"catalogTcgCards",
|
|
99
|
+
"catalogNonSportsCards",
|
|
100
|
+
"catalogAutographs",
|
|
101
|
+
"catalogTickets",
|
|
102
|
+
"catalogVideoGames",
|
|
103
|
+
];
|
|
104
|
+
let foundCatalogModels = 0;
|
|
105
|
+
for (const model of catalogModels) {
|
|
106
|
+
if (content.includes(`model ${model}`)) {
|
|
107
|
+
foundCatalogModels++;
|
|
108
|
+
info.push(`${console_chars_1.chars.check} ${model} model found`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (foundCatalogModels === 0) {
|
|
112
|
+
errors.push("No catalog models found (expected catalogSportsCards, catalogTcgCards, etc.)");
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
info.push(`${console_chars_1.chars.check} Found ${foundCatalogModels} catalog models`);
|
|
116
|
+
}
|
|
117
|
+
// Check for TCG-specific fields
|
|
118
|
+
const tcgFields = [
|
|
119
|
+
"hp", // Pokemon
|
|
120
|
+
"manaCost", // Magic
|
|
121
|
+
"attack", // Yu-Gi-Oh
|
|
122
|
+
"externalProductId", // Marketplace integration
|
|
123
|
+
];
|
|
124
|
+
for (const field of tcgFields) {
|
|
125
|
+
if (!content.includes(field)) {
|
|
126
|
+
warnings.push(`TCG field not found: ${field} - May be intentional if not implementing yet`);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
info.push(`${console_chars_1.chars.check} TCG field found: ${field}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Check for VideoGame model (now catalogVideoGames)
|
|
133
|
+
if (!content.includes("model catalogVideoGames")) {
|
|
134
|
+
warnings.push("catalogVideoGames model not found - Video game support may not be implemented");
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
info.push("${chars.check} catalogVideoGames model found");
|
|
138
|
+
}
|
|
139
|
+
// Check for grading fields
|
|
140
|
+
if (!content.includes("psaGrade") || !content.includes("bgsGrade")) {
|
|
141
|
+
warnings.push("Grading fields (psaGrade, bgsGrade) should be present");
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
info.push("✓ Grading fields found");
|
|
145
|
+
}
|
|
146
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
147
|
+
}));
|
|
148
|
+
// Listing Workflow Validation
|
|
149
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Listing Workflow Integrity", "Validate iron-clad listing creation workflow", async () => {
|
|
150
|
+
const errors = [];
|
|
151
|
+
const warnings = [];
|
|
152
|
+
const info = [];
|
|
153
|
+
// Check for listing creation API
|
|
154
|
+
const listingApiFiles = await scanner.findFiles(/app\/api\/listings.*route\.(ts|js)$/);
|
|
155
|
+
for (const file of listingApiFiles) {
|
|
156
|
+
const content = await scanner.readFileContent(file.path);
|
|
157
|
+
if (!content)
|
|
158
|
+
continue;
|
|
159
|
+
// Check for proper DRAFT status creation
|
|
160
|
+
if (content.includes("DRAFT") || content.includes("listingStatus")) {
|
|
161
|
+
info.push(`${console_chars_1.chars.check} ${file.name} handles listing status`);
|
|
162
|
+
}
|
|
163
|
+
// Check for duplicate prevention
|
|
164
|
+
if (content.includes("findOrCreateCardCatalog") ||
|
|
165
|
+
content.includes("duplicate") ||
|
|
166
|
+
content.includes("conflict")) {
|
|
167
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes duplicate prevention`);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
warnings.push(`${file.relativePath} may lack duplicate prevention`);
|
|
171
|
+
}
|
|
172
|
+
// Check for admin approval workflow
|
|
173
|
+
if (content.includes("admin") || content.includes("approval")) {
|
|
174
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes admin workflow`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Check for admin listing management
|
|
178
|
+
const adminFiles = await scanner.findFiles(/app\/admin\/listings.*\.(ts|tsx)$/);
|
|
179
|
+
if (adminFiles.length > 0) {
|
|
180
|
+
info.push(`${console_chars_1.chars.check} Found ${adminFiles.length} admin listing management files`);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
warnings.push("No admin listing management interface found");
|
|
184
|
+
}
|
|
185
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
186
|
+
}));
|
|
187
|
+
// AI Recognition System
|
|
188
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("AI Recognition System", "Validate AI card recognition and caching system", async () => {
|
|
189
|
+
const errors = [];
|
|
190
|
+
const warnings = [];
|
|
191
|
+
const info = [];
|
|
192
|
+
// Check for recognition API
|
|
193
|
+
const recognitionFiles = await scanner.findFiles(/app\/api\/cards\/identify.*route\.(ts|js)$/);
|
|
194
|
+
for (const file of recognitionFiles) {
|
|
195
|
+
const content = await scanner.readFileContent(file.path);
|
|
196
|
+
if (!content)
|
|
197
|
+
continue;
|
|
198
|
+
// Check for cache implementation
|
|
199
|
+
if (content.includes("cache") || content.includes("metadataCache")) {
|
|
200
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes caching system`);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
warnings.push(`${file.relativePath} may lack caching for cost optimization`);
|
|
204
|
+
}
|
|
205
|
+
// Check for multiple recognition methods
|
|
206
|
+
if (content.includes("vision") && content.includes("ocr")) {
|
|
207
|
+
info.push(`${console_chars_1.chars.check} ${file.name} uses hybrid recognition approach`);
|
|
208
|
+
}
|
|
209
|
+
// Check for cost optimization
|
|
210
|
+
if (content.includes("cost") || content.includes("savings")) {
|
|
211
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes cost tracking`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Check for hash collision prevention
|
|
215
|
+
const hashFiles = await scanner.findFiles(/lib.*hash.*\.(ts|js)$/);
|
|
216
|
+
if (hashFiles.length > 0) {
|
|
217
|
+
info.push(`${console_chars_1.chars.check} Found ${hashFiles.length} hash-related files`);
|
|
218
|
+
for (const file of hashFiles) {
|
|
219
|
+
const content = await scanner.readFileContent(file.path);
|
|
220
|
+
if (!content)
|
|
221
|
+
continue;
|
|
222
|
+
if (content.includes("collision") || content.includes("duplicate")) {
|
|
223
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes collision prevention`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
warnings.push("No hash collision prevention files found");
|
|
229
|
+
}
|
|
230
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
231
|
+
}));
|
|
232
|
+
// Category System Validation
|
|
233
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Category System", "Validate hierarchical category system implementation", async () => {
|
|
234
|
+
const errors = [];
|
|
235
|
+
const warnings = [];
|
|
236
|
+
const info = [];
|
|
237
|
+
// Check for category utilities
|
|
238
|
+
const categoryFiles = await scanner.findFiles(/lib.*category.*\.(ts|js)$/);
|
|
239
|
+
for (const file of categoryFiles) {
|
|
240
|
+
const content = await scanner.readFileContent(file.path);
|
|
241
|
+
if (!content)
|
|
242
|
+
continue;
|
|
243
|
+
// Check for URL to DB category mapping
|
|
244
|
+
if (content.includes("urlCategoryToDbCategory") ||
|
|
245
|
+
content.includes("dbCategoryToUrlCategory")) {
|
|
246
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes category mapping functions`);
|
|
247
|
+
}
|
|
248
|
+
// Check for hierarchical categories
|
|
249
|
+
if (content.includes("SPORTS_CARDS") ||
|
|
250
|
+
content.includes("TRADING_CARD_GAMES") ||
|
|
251
|
+
content.includes("VIDEO_GAMES")) {
|
|
252
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes main category definitions`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
// Check for category routes
|
|
256
|
+
const categoryRoutes = await scanner.findFiles(/app\/.*\[category\].*page\.(ts|tsx)$/);
|
|
257
|
+
if (categoryRoutes.length > 0) {
|
|
258
|
+
info.push(`${console_chars_1.chars.check} Found ${categoryRoutes.length} category route files`);
|
|
259
|
+
for (const file of categoryRoutes) {
|
|
260
|
+
const content = await scanner.readFileContent(file.path);
|
|
261
|
+
if (!content)
|
|
262
|
+
continue;
|
|
263
|
+
// Check for Next.js 15 params handling
|
|
264
|
+
if (content.includes("await params")) {
|
|
265
|
+
info.push(`${console_chars_1.chars.check} ${file.name} uses Next.js 15 params pattern`);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
warnings.push(`${file.relativePath} may not use Next.js 15 params pattern`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
warnings.push("No category route files found");
|
|
274
|
+
}
|
|
275
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
276
|
+
}));
|
|
277
|
+
// Collection Management (from collection.ts)
|
|
278
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Collection Management", "Validate user collection tracking system", async () => {
|
|
279
|
+
const errors = [];
|
|
280
|
+
const warnings = [];
|
|
281
|
+
const info = [];
|
|
282
|
+
// Check for collection models in schema
|
|
283
|
+
const schemaFiles = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
284
|
+
if (schemaFiles.length === 0) {
|
|
285
|
+
errors.push("Prisma schema file not found");
|
|
286
|
+
return { passed: false, errors, warnings };
|
|
287
|
+
}
|
|
288
|
+
const content = await scanner.readFileContent(schemaFiles[0].path);
|
|
289
|
+
if (!content) {
|
|
290
|
+
errors.push("Could not read Prisma schema");
|
|
291
|
+
return { passed: false, errors, warnings };
|
|
292
|
+
}
|
|
293
|
+
// Check for Collection model (now userCollections)
|
|
294
|
+
if (!content.includes("model userCollections {")) {
|
|
295
|
+
// Collections may be implemented differently or not yet
|
|
296
|
+
warnings.push("userCollections model not found in schema - collections may use different implementation");
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
info.push("${chars.check} userCollections model found");
|
|
300
|
+
}
|
|
301
|
+
// Check for CollectionItem model (now userCollectionItems)
|
|
302
|
+
if (!content.includes("model userCollectionItems {")) {
|
|
303
|
+
// Collection items may be implemented differently
|
|
304
|
+
warnings.push("userCollectionItems model not found - collection items may use different implementation");
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
info.push("✓ userCollectionItems model found");
|
|
308
|
+
}
|
|
309
|
+
// Check for WishlistItem model (now userWishlistItems)
|
|
310
|
+
if (!content.includes("model userWishlistItems {")) {
|
|
311
|
+
// Wishlist may be implemented differently
|
|
312
|
+
warnings.push("userWishlistItems model not found - wishlist may use different implementation");
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
info.push("✓ userWishlistItems model found");
|
|
316
|
+
}
|
|
317
|
+
// Check for required fields
|
|
318
|
+
const requiredFields = ["collectionId", "sportsCardCatalogId", "quantity", "acquiredDate"];
|
|
319
|
+
for (const field of requiredFields) {
|
|
320
|
+
if (!content.includes(field)) {
|
|
321
|
+
warnings.push(`Collection field not found: ${field}`);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
info.push(`${console_chars_1.chars.check} Collection field found: ${field}`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// Check for collection API endpoints
|
|
328
|
+
const collectionFiles = await scanner.findFiles(/app\/api.*collection.*route\.(ts|js)$/);
|
|
329
|
+
if (collectionFiles.length > 0) {
|
|
330
|
+
info.push(`${console_chars_1.chars.check} Found ${collectionFiles.length} collection API endpoints`);
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
warnings.push("No collection API endpoints found");
|
|
334
|
+
}
|
|
335
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
336
|
+
}));
|
|
337
|
+
// Marketplace Integration (from marketplace.ts)
|
|
338
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Marketplace Integration", "Validate multi-platform marketplace features", async () => {
|
|
339
|
+
const errors = [];
|
|
340
|
+
const warnings = [];
|
|
341
|
+
const info = [];
|
|
342
|
+
// Check schema for marketplace models
|
|
343
|
+
const schemaFiles = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
344
|
+
if (schemaFiles.length === 0) {
|
|
345
|
+
errors.push("Prisma schema file not found");
|
|
346
|
+
return { passed: false, errors, warnings };
|
|
347
|
+
}
|
|
348
|
+
const content = await scanner.readFileContent(schemaFiles[0].path);
|
|
349
|
+
if (!content) {
|
|
350
|
+
errors.push("Could not read Prisma schema");
|
|
351
|
+
return { passed: false, errors, warnings };
|
|
352
|
+
}
|
|
353
|
+
// Check for Listing model (now coreListings)
|
|
354
|
+
if (!content.includes("model coreListings {")) {
|
|
355
|
+
errors.push("coreListings model not found in schema");
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
info.push("${chars.check} coreListings model found");
|
|
359
|
+
}
|
|
360
|
+
// Check for Condition enum (eBay mapping)
|
|
361
|
+
if (!content.includes("enum Condition {")) {
|
|
362
|
+
errors.push("Condition enum not found - needed for eBay mapping");
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
info.push("✓ Condition enum found");
|
|
366
|
+
}
|
|
367
|
+
// Check for ProductType enum
|
|
368
|
+
if (!content.includes("enum ProductType {")) {
|
|
369
|
+
warnings.push("ProductType enum not found - polymorphic listings may not work");
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
info.push("✓ ProductType enum found");
|
|
373
|
+
}
|
|
374
|
+
// Check for order management
|
|
375
|
+
const orderFiles = await scanner.findFiles(/app\/api.*order.*route\.(ts|js)$/);
|
|
376
|
+
if (orderFiles.length > 0) {
|
|
377
|
+
info.push(`${console_chars_1.chars.check} Found ${orderFiles.length} order management endpoints`);
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
warnings.push("No order management endpoints found");
|
|
381
|
+
}
|
|
382
|
+
// Check for seller management
|
|
383
|
+
const sellerFiles = await scanner.findFiles(/app\/seller.*\.(ts|tsx)$/);
|
|
384
|
+
if (sellerFiles.length > 0) {
|
|
385
|
+
info.push(`${console_chars_1.chars.check} Found ${sellerFiles.length} seller interface files`);
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
warnings.push("No seller interface files found");
|
|
389
|
+
}
|
|
390
|
+
// Check for admin management
|
|
391
|
+
const adminFiles = await scanner.findFiles(/app\/admin.*\.(ts|tsx)$/);
|
|
392
|
+
if (adminFiles.length > 0) {
|
|
393
|
+
info.push(`${console_chars_1.chars.check} Found ${adminFiles.length} admin interface files`);
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
warnings.push("No admin interface files found");
|
|
397
|
+
}
|
|
398
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
399
|
+
}));
|
|
400
|
+
// Grading Validation (from grading.ts)
|
|
401
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Card Grading System", "Validate PSA, BGS, WATA grading implementation", async () => {
|
|
402
|
+
const errors = [];
|
|
403
|
+
const warnings = [];
|
|
404
|
+
const info = [];
|
|
405
|
+
const schemaFiles = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
406
|
+
if (schemaFiles.length === 0) {
|
|
407
|
+
errors.push("Prisma schema file not found");
|
|
408
|
+
return { passed: false, errors, warnings };
|
|
409
|
+
}
|
|
410
|
+
const content = await scanner.readFileContent(schemaFiles[0].path);
|
|
411
|
+
if (!content) {
|
|
412
|
+
errors.push("Could not read Prisma schema");
|
|
413
|
+
return { passed: false, errors, warnings };
|
|
414
|
+
}
|
|
415
|
+
// Check for grading fields
|
|
416
|
+
if (!content.includes("psaGrade")) {
|
|
417
|
+
errors.push("psaGrade field not found - PSA grading not implemented");
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
info.push("${chars.check} PSA grading field found");
|
|
421
|
+
}
|
|
422
|
+
if (!content.includes("bgsGrade")) {
|
|
423
|
+
errors.push("bgsGrade field not found - BGS grading not implemented");
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
info.push("✓ BGS grading field found");
|
|
427
|
+
}
|
|
428
|
+
if (!content.includes("wataGrade")) {
|
|
429
|
+
warnings.push("wataGrade field not found - WATA grading for video games not implemented");
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
info.push("✓ WATA grading field found");
|
|
433
|
+
}
|
|
434
|
+
// Check for CardGraded enum
|
|
435
|
+
if (!content.includes("enum CardGraded")) {
|
|
436
|
+
errors.push("CardGraded enum not found");
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
info.push("✓ CardGraded enum found");
|
|
440
|
+
}
|
|
441
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
442
|
+
}));
|
|
443
|
+
// AI Recognition System (from ai-recognition.ts)
|
|
444
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("AI Recognition Configuration", "Validate OpenAI API configuration for card recognition", async () => {
|
|
445
|
+
const errors = [];
|
|
446
|
+
const warnings = [];
|
|
447
|
+
const info = [];
|
|
448
|
+
// Detect CI/build environment (Vercel, GitHub Actions, etc.)
|
|
449
|
+
const isCI = process.env.CI === "true" ||
|
|
450
|
+
process.env.VERCEL === "1" ||
|
|
451
|
+
process.env.GITHUB_ACTIONS === "true" ||
|
|
452
|
+
process.env.NODE_ENV === "production";
|
|
453
|
+
// Check OpenAI API key
|
|
454
|
+
if (!process.env.OPENAI_API_KEY) {
|
|
455
|
+
if (isCI) {
|
|
456
|
+
// In CI/build, missing env vars are warnings (they're set at runtime)
|
|
457
|
+
warnings.push("OPENAI_API_KEY not available during build (expected - set at runtime)");
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
errors.push("Missing OPENAI_API_KEY environment variable");
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else if (process.env.OPENAI_API_KEY.startsWith("sk-") &&
|
|
464
|
+
process.env.OPENAI_API_KEY.length < 40) {
|
|
465
|
+
warnings.push("OPENAI_API_KEY appears to be invalid (too short)");
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
info.push("✓ OPENAI_API_KEY is configured");
|
|
469
|
+
}
|
|
470
|
+
// Check for AI descriptor fields in schema
|
|
471
|
+
const schemaFiles = await scanner.findFiles(/prisma\/schema\.prisma$/);
|
|
472
|
+
if (schemaFiles.length > 0) {
|
|
473
|
+
const content = await scanner.readFileContent(schemaFiles[0].path);
|
|
474
|
+
if (content) {
|
|
475
|
+
if (!content.includes("aiDescriptor")) {
|
|
476
|
+
warnings.push("aiDescriptor field not found - AI recognition may not be fully implemented");
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
info.push("✓ aiDescriptor field found");
|
|
480
|
+
}
|
|
481
|
+
if (!content.includes("ocrText")) {
|
|
482
|
+
warnings.push("ocrText field not found - OCR text matching may not be implemented");
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
info.push("✓ ocrText field found");
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
490
|
+
}));
|
|
491
|
+
// Integration Enum Validation
|
|
492
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("Integration Enum Validation", "Validate that WooCommerce and CSV integrations use correct enum values", async () => {
|
|
493
|
+
const errors = [];
|
|
494
|
+
const warnings = [];
|
|
495
|
+
const info = [];
|
|
496
|
+
try {
|
|
497
|
+
// Import and run the integration enum validation
|
|
498
|
+
const { validateIntegrationEnums } = await Promise.resolve().then(() => __importStar(require("../specialized/validate-integration-enums")));
|
|
499
|
+
const success = await validateIntegrationEnums();
|
|
500
|
+
if (success) {
|
|
501
|
+
info.push("✓ All integration files use correct enum values");
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
errors.push("Integration files contain invalid enum values");
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
catch (error) {
|
|
508
|
+
// This is a non-critical check - if the module can't be loaded, just warn
|
|
509
|
+
warnings.push(`Could not validate integration enums: ${error instanceof Error ? error.message : String(error)}`);
|
|
510
|
+
}
|
|
511
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
512
|
+
}));
|
|
513
|
+
// WooCommerce Image Management Validation
|
|
514
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("WooCommerce Image Management", "Validate WooCommerce image move functionality and R2 folder structure", async () => {
|
|
515
|
+
const errors = [];
|
|
516
|
+
const warnings = [];
|
|
517
|
+
const info = [];
|
|
518
|
+
// Check image management system
|
|
519
|
+
const imageManagementFiles = await scanner.findFiles(/lib\/image-management\.(ts|js)$/);
|
|
520
|
+
for (const file of imageManagementFiles) {
|
|
521
|
+
const content = await scanner.readFileContent(file.path);
|
|
522
|
+
if (!content)
|
|
523
|
+
continue;
|
|
524
|
+
// Check for enhanced URL extraction
|
|
525
|
+
if (content.includes(".r2.dev/")) {
|
|
526
|
+
info.push(`${console_chars_1.chars.check} ${file.name} handles R2 dev URLs`);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
warnings.push(`${file.relativePath} may not handle R2 dev URLs correctly`);
|
|
530
|
+
}
|
|
531
|
+
// Check for move operation (not copy)
|
|
532
|
+
if (content.includes("DeleteObjectCommand")) {
|
|
533
|
+
info.push(`${console_chars_1.chars.check} ${file.name} implements proper move operation (copy + delete)`);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
errors.push(`${file.relativePath} does not implement move operation - images will be duplicated`);
|
|
537
|
+
}
|
|
538
|
+
// Check for source folder detection
|
|
539
|
+
if (content.includes("sourceFolder")) {
|
|
540
|
+
info.push(`${console_chars_1.chars.check} ${file.name} includes source folder detection`);
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
warnings.push(`${file.relativePath} lacks source folder detection for debugging`);
|
|
544
|
+
}
|
|
545
|
+
// Check for SEO metadata
|
|
546
|
+
if (content.includes("alt-text") && content.includes("caption")) {
|
|
547
|
+
info.push(`${console_chars_1.chars.check} ${file.name} applies SEO metadata to moved images`);
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
warnings.push(`${file.relativePath} may not apply proper SEO metadata`);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
// Check WooCommerce import service
|
|
554
|
+
const wooCommerceFiles = await scanner.findFiles(/lib\/woocommerce-import-service\.(ts|js)$/);
|
|
555
|
+
for (const file of wooCommerceFiles) {
|
|
556
|
+
const content = await scanner.readFileContent(file.path);
|
|
557
|
+
if (!content)
|
|
558
|
+
continue;
|
|
559
|
+
// Check for correct folder usage
|
|
560
|
+
if (content.includes('"woocommerce-imports"')) {
|
|
561
|
+
info.push(`${console_chars_1.chars.check} ${file.name} uses correct woocommerce-imports folder`);
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
errors.push(`${file.relativePath} does not use woocommerce-imports folder`);
|
|
565
|
+
}
|
|
566
|
+
// Check for proper error handling
|
|
567
|
+
if (content.includes("imageResult.failed")) {
|
|
568
|
+
info.push(`${console_chars_1.chars.check} ${file.name} handles image upload failures gracefully`);
|
|
569
|
+
}
|
|
570
|
+
else {
|
|
571
|
+
warnings.push(`${file.relativePath} may lack proper image upload error handling`);
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
// Check admin approval system
|
|
575
|
+
const adminApprovalFiles = await scanner.findFiles(/app\/api\/admin\/listings\/approve\/route\.(ts|js)$/);
|
|
576
|
+
for (const file of adminApprovalFiles) {
|
|
577
|
+
const content = await scanner.readFileContent(file.path);
|
|
578
|
+
if (!content)
|
|
579
|
+
continue;
|
|
580
|
+
// Check for image move integration
|
|
581
|
+
if (content.includes("moveApprovedListingImages")) {
|
|
582
|
+
info.push(`${console_chars_1.chars.check} ${file.name} moves images during approval`);
|
|
583
|
+
}
|
|
584
|
+
else {
|
|
585
|
+
errors.push(`${file.relativePath} does not move images during approval`);
|
|
586
|
+
}
|
|
587
|
+
// Check for image URL updates
|
|
588
|
+
if (content.includes("newImageUrls")) {
|
|
589
|
+
info.push(`${console_chars_1.chars.check} ${file.name} updates listing URLs after move`);
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
errors.push(`${file.relativePath} does not update listing URLs after move`);
|
|
593
|
+
}
|
|
594
|
+
// Check for SEO metadata storage
|
|
595
|
+
if (content.includes("imageAltTexts") && content.includes("imageCaptions")) {
|
|
596
|
+
info.push(`${console_chars_1.chars.check} ${file.name} stores SEO metadata in database`);
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
599
|
+
warnings.push(`${file.relativePath} may not store SEO metadata in database`);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
// Check R2 configuration
|
|
603
|
+
// Detect CI/build environment
|
|
604
|
+
const isCIEnv = process.env.CI === "true" ||
|
|
605
|
+
process.env.VERCEL === "1" ||
|
|
606
|
+
process.env.GITHUB_ACTIONS === "true" ||
|
|
607
|
+
process.env.NODE_ENV === "production";
|
|
608
|
+
const requiredR2Vars = [
|
|
609
|
+
"R2_ACCOUNT_ID",
|
|
610
|
+
"R2_ACCESS_KEY_ID",
|
|
611
|
+
"R2_SECRET_ACCESS_KEY",
|
|
612
|
+
"R2_BUCKET_NAME",
|
|
613
|
+
];
|
|
614
|
+
const missingR2Vars = requiredR2Vars.filter((varName) => !process.env[varName]);
|
|
615
|
+
if (missingR2Vars.length === 0) {
|
|
616
|
+
info.push("${chars.check} All required R2 environment variables are configured");
|
|
617
|
+
}
|
|
618
|
+
else if (isCIEnv) {
|
|
619
|
+
info.push(`R2 environment variables not available during build (expected - set at runtime)`);
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
warnings.push(`Missing R2 environment variables: ${missingR2Vars.join(", ")} (expected in development)`);
|
|
623
|
+
}
|
|
624
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
625
|
+
}));
|
|
626
|
+
// WooCommerce Integration UI Validation
|
|
627
|
+
runner.addCheck((0, preflight_runner_1.createCheck)("WooCommerce Integration UI", "Validate WooCommerce integration includes all product types and uses correct imports", async () => {
|
|
628
|
+
const errors = [];
|
|
629
|
+
const warnings = [];
|
|
630
|
+
const info = [];
|
|
631
|
+
// Check that modular template system exists
|
|
632
|
+
const templateDir = "lib/woocommerce-templates";
|
|
633
|
+
const templateDirExists = await scanner.fileExists(templateDir);
|
|
634
|
+
if (!templateDirExists) {
|
|
635
|
+
errors.push(`Template directory missing: ${templateDir}`);
|
|
636
|
+
return { passed: false, errors, warnings };
|
|
637
|
+
}
|
|
638
|
+
// Check that all required template files exist
|
|
639
|
+
const expectedTemplates = [
|
|
640
|
+
"sports-card-template.ts",
|
|
641
|
+
"non-sports-card-template.ts",
|
|
642
|
+
"trading-card-game-template.ts",
|
|
643
|
+
"video-game-template.ts",
|
|
644
|
+
"autograph-template.ts",
|
|
645
|
+
"ticket-template.ts",
|
|
646
|
+
"index.ts",
|
|
647
|
+
];
|
|
648
|
+
for (const template of expectedTemplates) {
|
|
649
|
+
const templatePath = `${templateDir}/${template}`;
|
|
650
|
+
const exists = await scanner.fileExists(templatePath);
|
|
651
|
+
if (!exists) {
|
|
652
|
+
errors.push(`Missing template file: ${templatePath}`);
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
info.push(`${console_chars_1.chars.check} Template file exists: ${template}`);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
// Check that index.ts exports all required product types
|
|
659
|
+
const indexPath = `${templateDir}/index.ts`;
|
|
660
|
+
const indexExists = await scanner.fileExists(indexPath);
|
|
661
|
+
if (indexExists) {
|
|
662
|
+
const indexContent = await scanner.readFileContent(indexPath);
|
|
663
|
+
if (indexContent) {
|
|
664
|
+
const requiredProductTypes = [
|
|
665
|
+
"SPORTS_CARD",
|
|
666
|
+
"NONSPORTS_CARD",
|
|
667
|
+
"TCG_CARD",
|
|
668
|
+
"VIDEO_GAME",
|
|
669
|
+
"AUTOGRAPH",
|
|
670
|
+
"TICKET",
|
|
671
|
+
];
|
|
672
|
+
for (const productType of requiredProductTypes) {
|
|
673
|
+
if (indexContent.includes(`"${productType}"`)) {
|
|
674
|
+
info.push(`${console_chars_1.chars.check} Product type available: ${productType}`);
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
errors.push(`Missing product type in index.ts: ${productType}`);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
// Check that getSupercatchFields handles all product types
|
|
681
|
+
for (const productType of requiredProductTypes) {
|
|
682
|
+
if (indexContent.includes(`case "${productType}":`)) {
|
|
683
|
+
info.push(`${console_chars_1.chars.check} getSupercatchFields handles: ${productType}`);
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
errors.push(`Missing case in getSupercatchFields: ${productType}`);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
// Check that WooCommerce integration files use correct imports
|
|
692
|
+
const filesToCheck = [
|
|
693
|
+
"app/admin/integrations/woocommerce/page.tsx",
|
|
694
|
+
"app/api/admin/integrations/woocommerce/test-templates/route.ts",
|
|
695
|
+
];
|
|
696
|
+
for (const filePath of filesToCheck) {
|
|
697
|
+
const exists = await scanner.fileExists(filePath);
|
|
698
|
+
if (exists) {
|
|
699
|
+
const content = await scanner.readFileContent(filePath);
|
|
700
|
+
if (content) {
|
|
701
|
+
// Check for old import pattern (should not exist)
|
|
702
|
+
if (content.includes('from "@/lib/woocommerce-templates"') &&
|
|
703
|
+
!content.includes('from "@/lib/woocommerce-templates/index"')) {
|
|
704
|
+
errors.push(`${filePath} uses old import pattern - should import "@/lib/woocommerce-templates/index"`);
|
|
705
|
+
}
|
|
706
|
+
// Check for correct import pattern
|
|
707
|
+
if (content.includes('from "@/lib/woocommerce-templates/index"')) {
|
|
708
|
+
info.push(`${console_chars_1.chars.check} ${filePath} uses correct modular import`);
|
|
709
|
+
}
|
|
710
|
+
else if (content.includes("getSupercatchFields") ||
|
|
711
|
+
content.includes("productTypes")) {
|
|
712
|
+
warnings.push(`${filePath} may need to import modular template system`);
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
else {
|
|
717
|
+
warnings.push(`File not found: ${filePath}`);
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
// Check that old template file redirects to new system
|
|
721
|
+
const oldTemplatePath = "lib/woocommerce-templates.ts";
|
|
722
|
+
const oldExists = await scanner.fileExists(oldTemplatePath);
|
|
723
|
+
if (oldExists) {
|
|
724
|
+
const oldContent = await scanner.readFileContent(oldTemplatePath);
|
|
725
|
+
if (oldContent) {
|
|
726
|
+
if (oldContent.includes("DEPRECATED") &&
|
|
727
|
+
oldContent.includes('from "./woocommerce-templates/index"')) {
|
|
728
|
+
info.push("${chars.check} Old template file properly redirects to new system");
|
|
729
|
+
}
|
|
730
|
+
else {
|
|
731
|
+
errors.push(`Old template file (${oldTemplatePath}) should redirect to new modular system`);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
return { passed: errors.length === 0, errors, warnings, info };
|
|
736
|
+
}));
|
|
737
|
+
const result = await runner.runAll();
|
|
738
|
+
if (!result.passed) {
|
|
739
|
+
console.log(`\n${console_chars_1.emoji.bell} SuperCatch business logic preflight checks failed!`);
|
|
740
|
+
process.exit(1);
|
|
741
|
+
}
|
|
742
|
+
console.log(`\n${console_chars_1.emoji.target} All SuperCatch business logic preflight checks passed!`);
|
|
743
|
+
return result;
|
|
744
|
+
}
|
|
745
|
+
// Run if called directly
|
|
746
|
+
if (require.main === module) {
|
|
747
|
+
runSuperCatchPreflights().catch(console.error);
|
|
748
|
+
}
|
|
749
|
+
exports.default = runSuperCatchPreflights;
|
|
750
|
+
//# sourceMappingURL=supercatch.js.map
|