driftdetect-detectors 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accessibility/alt-text.d.ts +63 -0
- package/dist/accessibility/alt-text.d.ts.map +1 -0
- package/dist/accessibility/alt-text.js +100 -0
- package/dist/accessibility/alt-text.js.map +1 -0
- package/dist/accessibility/aria-roles.d.ts +65 -0
- package/dist/accessibility/aria-roles.d.ts.map +1 -0
- package/dist/accessibility/aria-roles.js +87 -0
- package/dist/accessibility/aria-roles.js.map +1 -0
- package/dist/accessibility/focus-management.d.ts +62 -0
- package/dist/accessibility/focus-management.d.ts.map +1 -0
- package/dist/accessibility/focus-management.js +88 -0
- package/dist/accessibility/focus-management.js.map +1 -0
- package/dist/accessibility/heading-hierarchy.d.ts +66 -0
- package/dist/accessibility/heading-hierarchy.d.ts.map +1 -0
- package/dist/accessibility/heading-hierarchy.js +94 -0
- package/dist/accessibility/heading-hierarchy.js.map +1 -0
- package/dist/accessibility/index.d.ts +25 -0
- package/dist/accessibility/index.d.ts.map +1 -0
- package/dist/accessibility/index.js +21 -0
- package/dist/accessibility/index.js.map +1 -0
- package/dist/accessibility/keyboard-nav.d.ts +63 -0
- package/dist/accessibility/keyboard-nav.d.ts.map +1 -0
- package/dist/accessibility/keyboard-nav.js +86 -0
- package/dist/accessibility/keyboard-nav.js.map +1 -0
- package/dist/accessibility/semantic-html.d.ts +76 -0
- package/dist/accessibility/semantic-html.d.ts.map +1 -0
- package/dist/accessibility/semantic-html.js +204 -0
- package/dist/accessibility/semantic-html.js.map +1 -0
- package/dist/api/client-patterns.d.ts +121 -0
- package/dist/api/client-patterns.d.ts.map +1 -0
- package/dist/api/client-patterns.js +478 -0
- package/dist/api/client-patterns.js.map +1 -0
- package/dist/api/error-format.d.ts +140 -0
- package/dist/api/error-format.d.ts.map +1 -0
- package/dist/api/error-format.js +614 -0
- package/dist/api/error-format.js.map +1 -0
- package/dist/api/http-methods.d.ts +255 -0
- package/dist/api/http-methods.d.ts.map +1 -0
- package/dist/api/http-methods.js +890 -0
- package/dist/api/http-methods.js.map +1 -0
- package/dist/api/index.d.ts +16 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +37 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/pagination.d.ts +133 -0
- package/dist/api/pagination.d.ts.map +1 -0
- package/dist/api/pagination.js +521 -0
- package/dist/api/pagination.js.map +1 -0
- package/dist/api/response-envelope.d.ts +261 -0
- package/dist/api/response-envelope.d.ts.map +1 -0
- package/dist/api/response-envelope.js +1050 -0
- package/dist/api/response-envelope.js.map +1 -0
- package/dist/api/retry-patterns.d.ts +117 -0
- package/dist/api/retry-patterns.d.ts.map +1 -0
- package/dist/api/retry-patterns.js +480 -0
- package/dist/api/retry-patterns.js.map +1 -0
- package/dist/api/route-structure.d.ts +128 -0
- package/dist/api/route-structure.d.ts.map +1 -0
- package/dist/api/route-structure.js +738 -0
- package/dist/api/route-structure.js.map +1 -0
- package/dist/auth/audit-logging.d.ts +80 -0
- package/dist/auth/audit-logging.d.ts.map +1 -0
- package/dist/auth/audit-logging.js +370 -0
- package/dist/auth/audit-logging.js.map +1 -0
- package/dist/auth/index.d.ts +33 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +49 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware-usage.d.ts +65 -0
- package/dist/auth/middleware-usage.d.ts.map +1 -0
- package/dist/auth/middleware-usage.js +192 -0
- package/dist/auth/middleware-usage.js.map +1 -0
- package/dist/auth/permission-checks.d.ts +60 -0
- package/dist/auth/permission-checks.d.ts.map +1 -0
- package/dist/auth/permission-checks.js +159 -0
- package/dist/auth/permission-checks.js.map +1 -0
- package/dist/auth/rbac-patterns.d.ts +68 -0
- package/dist/auth/rbac-patterns.d.ts.map +1 -0
- package/dist/auth/rbac-patterns.js +143 -0
- package/dist/auth/rbac-patterns.js.map +1 -0
- package/dist/auth/resource-ownership.d.ts +77 -0
- package/dist/auth/resource-ownership.d.ts.map +1 -0
- package/dist/auth/resource-ownership.js +324 -0
- package/dist/auth/resource-ownership.js.map +1 -0
- package/dist/auth/token-handling.d.ts +64 -0
- package/dist/auth/token-handling.d.ts.map +1 -0
- package/dist/auth/token-handling.js +151 -0
- package/dist/auth/token-handling.js.map +1 -0
- package/dist/base/ast-detector.d.ts +421 -0
- package/dist/base/ast-detector.d.ts.map +1 -0
- package/dist/base/ast-detector.js +699 -0
- package/dist/base/ast-detector.js.map +1 -0
- package/dist/base/base-detector.d.ts +366 -0
- package/dist/base/base-detector.d.ts.map +1 -0
- package/dist/base/base-detector.js +170 -0
- package/dist/base/base-detector.js.map +1 -0
- package/dist/base/index.d.ts +12 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +17 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/regex-detector.d.ts +421 -0
- package/dist/base/regex-detector.d.ts.map +1 -0
- package/dist/base/regex-detector.js +537 -0
- package/dist/base/regex-detector.js.map +1 -0
- package/dist/base/structural-detector.d.ts +424 -0
- package/dist/base/structural-detector.d.ts.map +1 -0
- package/dist/base/structural-detector.js +731 -0
- package/dist/base/structural-detector.js.map +1 -0
- package/dist/base/types.d.ts +53 -0
- package/dist/base/types.d.ts.map +1 -0
- package/dist/base/types.js +5 -0
- package/dist/base/types.js.map +1 -0
- package/dist/components/component-structure.d.ts +163 -0
- package/dist/components/component-structure.d.ts.map +1 -0
- package/dist/components/component-structure.js +500 -0
- package/dist/components/component-structure.js.map +1 -0
- package/dist/components/composition.d.ts +287 -0
- package/dist/components/composition.d.ts.map +1 -0
- package/dist/components/composition.js +1123 -0
- package/dist/components/composition.js.map +1 -0
- package/dist/components/duplicate-detection.d.ts +251 -0
- package/dist/components/duplicate-detection.d.ts.map +1 -0
- package/dist/components/duplicate-detection.js +804 -0
- package/dist/components/duplicate-detection.js.map +1 -0
- package/dist/components/index.d.ts +16 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +51 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/near-duplicate.d.ts +402 -0
- package/dist/components/near-duplicate.d.ts.map +1 -0
- package/dist/components/near-duplicate.js +1090 -0
- package/dist/components/near-duplicate.js.map +1 -0
- package/dist/components/props-patterns.d.ts +194 -0
- package/dist/components/props-patterns.d.ts.map +1 -0
- package/dist/components/props-patterns.js +795 -0
- package/dist/components/props-patterns.js.map +1 -0
- package/dist/components/ref-forwarding.d.ts +250 -0
- package/dist/components/ref-forwarding.d.ts.map +1 -0
- package/dist/components/ref-forwarding.js +832 -0
- package/dist/components/ref-forwarding.js.map +1 -0
- package/dist/components/state-patterns.d.ts +291 -0
- package/dist/components/state-patterns.d.ts.map +1 -0
- package/dist/components/state-patterns.js +970 -0
- package/dist/components/state-patterns.js.map +1 -0
- package/dist/config/config-validation.d.ts +74 -0
- package/dist/config/config-validation.d.ts.map +1 -0
- package/dist/config/config-validation.js +446 -0
- package/dist/config/config-validation.js.map +1 -0
- package/dist/config/default-values.d.ts +72 -0
- package/dist/config/default-values.d.ts.map +1 -0
- package/dist/config/default-values.js +386 -0
- package/dist/config/default-values.js.map +1 -0
- package/dist/config/env-naming.d.ts +73 -0
- package/dist/config/env-naming.d.ts.map +1 -0
- package/dist/config/env-naming.js +429 -0
- package/dist/config/env-naming.js.map +1 -0
- package/dist/config/environment-detection.d.ts +72 -0
- package/dist/config/environment-detection.d.ts.map +1 -0
- package/dist/config/environment-detection.js +400 -0
- package/dist/config/environment-detection.js.map +1 -0
- package/dist/config/feature-flags.d.ts +72 -0
- package/dist/config/feature-flags.d.ts.map +1 -0
- package/dist/config/feature-flags.js +384 -0
- package/dist/config/feature-flags.js.map +1 -0
- package/dist/config/index.d.ts +27 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +43 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/required-optional.d.ts +71 -0
- package/dist/config/required-optional.d.ts.map +1 -0
- package/dist/config/required-optional.js +344 -0
- package/dist/config/required-optional.js.map +1 -0
- package/dist/data-access/connection-pooling.d.ts +63 -0
- package/dist/data-access/connection-pooling.d.ts.map +1 -0
- package/dist/data-access/connection-pooling.js +297 -0
- package/dist/data-access/connection-pooling.js.map +1 -0
- package/dist/data-access/dto-patterns.d.ts +64 -0
- package/dist/data-access/dto-patterns.d.ts.map +1 -0
- package/dist/data-access/dto-patterns.js +291 -0
- package/dist/data-access/dto-patterns.js.map +1 -0
- package/dist/data-access/index.d.ts +31 -0
- package/dist/data-access/index.d.ts.map +1 -0
- package/dist/data-access/index.js +49 -0
- package/dist/data-access/index.js.map +1 -0
- package/dist/data-access/n-plus-one.d.ts +60 -0
- package/dist/data-access/n-plus-one.d.ts.map +1 -0
- package/dist/data-access/n-plus-one.js +264 -0
- package/dist/data-access/n-plus-one.js.map +1 -0
- package/dist/data-access/query-patterns.d.ts +64 -0
- package/dist/data-access/query-patterns.d.ts.map +1 -0
- package/dist/data-access/query-patterns.js +314 -0
- package/dist/data-access/query-patterns.js.map +1 -0
- package/dist/data-access/repository-pattern.d.ts +62 -0
- package/dist/data-access/repository-pattern.d.ts.map +1 -0
- package/dist/data-access/repository-pattern.js +257 -0
- package/dist/data-access/repository-pattern.js.map +1 -0
- package/dist/data-access/transaction-patterns.d.ts +61 -0
- package/dist/data-access/transaction-patterns.d.ts.map +1 -0
- package/dist/data-access/transaction-patterns.js +277 -0
- package/dist/data-access/transaction-patterns.js.map +1 -0
- package/dist/data-access/validation-patterns.d.ts +62 -0
- package/dist/data-access/validation-patterns.d.ts.map +1 -0
- package/dist/data-access/validation-patterns.js +301 -0
- package/dist/data-access/validation-patterns.js.map +1 -0
- package/dist/documentation/deprecation.d.ts +62 -0
- package/dist/documentation/deprecation.d.ts.map +1 -0
- package/dist/documentation/deprecation.js +83 -0
- package/dist/documentation/deprecation.js.map +1 -0
- package/dist/documentation/example-code.d.ts +64 -0
- package/dist/documentation/example-code.d.ts.map +1 -0
- package/dist/documentation/example-code.js +79 -0
- package/dist/documentation/example-code.js.map +1 -0
- package/dist/documentation/index.d.ts +22 -0
- package/dist/documentation/index.d.ts.map +1 -0
- package/dist/documentation/index.js +19 -0
- package/dist/documentation/index.js.map +1 -0
- package/dist/documentation/jsdoc-patterns.d.ts +72 -0
- package/dist/documentation/jsdoc-patterns.d.ts.map +1 -0
- package/dist/documentation/jsdoc-patterns.js +92 -0
- package/dist/documentation/jsdoc-patterns.js.map +1 -0
- package/dist/documentation/readme-structure.d.ts +67 -0
- package/dist/documentation/readme-structure.d.ts.map +1 -0
- package/dist/documentation/readme-structure.js +76 -0
- package/dist/documentation/readme-structure.js.map +1 -0
- package/dist/documentation/todo-patterns.d.ts +67 -0
- package/dist/documentation/todo-patterns.d.ts.map +1 -0
- package/dist/documentation/todo-patterns.js +73 -0
- package/dist/documentation/todo-patterns.js.map +1 -0
- package/dist/errors/async-errors.d.ts +72 -0
- package/dist/errors/async-errors.d.ts.map +1 -0
- package/dist/errors/async-errors.js +214 -0
- package/dist/errors/async-errors.js.map +1 -0
- package/dist/errors/circuit-breaker.d.ts +53 -0
- package/dist/errors/circuit-breaker.d.ts.map +1 -0
- package/dist/errors/circuit-breaker.js +241 -0
- package/dist/errors/circuit-breaker.js.map +1 -0
- package/dist/errors/error-codes.d.ts +73 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +211 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/errors/error-logging.d.ts +73 -0
- package/dist/errors/error-logging.d.ts.map +1 -0
- package/dist/errors/error-logging.js +256 -0
- package/dist/errors/error-logging.js.map +1 -0
- package/dist/errors/error-propagation.d.ts +73 -0
- package/dist/errors/error-propagation.d.ts.map +1 -0
- package/dist/errors/error-propagation.js +244 -0
- package/dist/errors/error-propagation.js.map +1 -0
- package/dist/errors/exception-hierarchy.d.ts +75 -0
- package/dist/errors/exception-hierarchy.d.ts.map +1 -0
- package/dist/errors/exception-hierarchy.js +259 -0
- package/dist/errors/exception-hierarchy.js.map +1 -0
- package/dist/errors/index.d.ts +31 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +49 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/try-catch-placement.d.ts +73 -0
- package/dist/errors/try-catch-placement.d.ts.map +1 -0
- package/dist/errors/try-catch-placement.js +214 -0
- package/dist/errors/try-catch-placement.js.map +1 -0
- package/dist/index.d.ts +221 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +245 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/context-fields.d.ts +48 -0
- package/dist/logging/context-fields.d.ts.map +1 -0
- package/dist/logging/context-fields.js +160 -0
- package/dist/logging/context-fields.js.map +1 -0
- package/dist/logging/correlation-ids.d.ts +44 -0
- package/dist/logging/correlation-ids.d.ts.map +1 -0
- package/dist/logging/correlation-ids.js +144 -0
- package/dist/logging/correlation-ids.js.map +1 -0
- package/dist/logging/health-checks.d.ts +45 -0
- package/dist/logging/health-checks.d.ts.map +1 -0
- package/dist/logging/health-checks.js +165 -0
- package/dist/logging/health-checks.js.map +1 -0
- package/dist/logging/index.d.ts +31 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +49 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/log-levels.d.ts +46 -0
- package/dist/logging/log-levels.d.ts.map +1 -0
- package/dist/logging/log-levels.js +178 -0
- package/dist/logging/log-levels.js.map +1 -0
- package/dist/logging/metric-naming.d.ts +46 -0
- package/dist/logging/metric-naming.d.ts.map +1 -0
- package/dist/logging/metric-naming.js +157 -0
- package/dist/logging/metric-naming.js.map +1 -0
- package/dist/logging/pii-redaction.d.ts +44 -0
- package/dist/logging/pii-redaction.d.ts.map +1 -0
- package/dist/logging/pii-redaction.js +166 -0
- package/dist/logging/pii-redaction.js.map +1 -0
- package/dist/logging/structured-format.d.ts +53 -0
- package/dist/logging/structured-format.d.ts.map +1 -0
- package/dist/logging/structured-format.js +235 -0
- package/dist/logging/structured-format.js.map +1 -0
- package/dist/performance/bundle-size.d.ts +79 -0
- package/dist/performance/bundle-size.d.ts.map +1 -0
- package/dist/performance/bundle-size.js +276 -0
- package/dist/performance/bundle-size.js.map +1 -0
- package/dist/performance/caching-patterns.d.ts +78 -0
- package/dist/performance/caching-patterns.d.ts.map +1 -0
- package/dist/performance/caching-patterns.js +257 -0
- package/dist/performance/caching-patterns.js.map +1 -0
- package/dist/performance/code-splitting.d.ts +86 -0
- package/dist/performance/code-splitting.d.ts.map +1 -0
- package/dist/performance/code-splitting.js +447 -0
- package/dist/performance/code-splitting.js.map +1 -0
- package/dist/performance/debounce-throttle.d.ts +75 -0
- package/dist/performance/debounce-throttle.d.ts.map +1 -0
- package/dist/performance/debounce-throttle.js +232 -0
- package/dist/performance/debounce-throttle.js.map +1 -0
- package/dist/performance/index.d.ts +28 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +39 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/lazy-loading.d.ts +75 -0
- package/dist/performance/lazy-loading.d.ts.map +1 -0
- package/dist/performance/lazy-loading.js +233 -0
- package/dist/performance/lazy-loading.js.map +1 -0
- package/dist/performance/memoization.d.ts +75 -0
- package/dist/performance/memoization.d.ts.map +1 -0
- package/dist/performance/memoization.js +251 -0
- package/dist/performance/memoization.js.map +1 -0
- package/dist/registry/detector-registry.d.ts +266 -0
- package/dist/registry/detector-registry.d.ts.map +1 -0
- package/dist/registry/detector-registry.js +526 -0
- package/dist/registry/detector-registry.js.map +1 -0
- package/dist/registry/index.d.ts +10 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +10 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/loader.d.ts +232 -0
- package/dist/registry/loader.d.ts.map +1 -0
- package/dist/registry/loader.js +419 -0
- package/dist/registry/loader.js.map +1 -0
- package/dist/registry/types.d.ts +111 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +19 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/security/csp-headers.d.ts +78 -0
- package/dist/security/csp-headers.d.ts.map +1 -0
- package/dist/security/csp-headers.js +401 -0
- package/dist/security/csp-headers.js.map +1 -0
- package/dist/security/csrf-protection.d.ts +72 -0
- package/dist/security/csrf-protection.d.ts.map +1 -0
- package/dist/security/csrf-protection.js +344 -0
- package/dist/security/csrf-protection.js.map +1 -0
- package/dist/security/index.d.ts +30 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +48 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/input-sanitization.d.ts +74 -0
- package/dist/security/input-sanitization.d.ts.map +1 -0
- package/dist/security/input-sanitization.js +373 -0
- package/dist/security/input-sanitization.js.map +1 -0
- package/dist/security/rate-limiting.d.ts +81 -0
- package/dist/security/rate-limiting.d.ts.map +1 -0
- package/dist/security/rate-limiting.js +535 -0
- package/dist/security/rate-limiting.js.map +1 -0
- package/dist/security/secret-management.d.ts +83 -0
- package/dist/security/secret-management.d.ts.map +1 -0
- package/dist/security/secret-management.js +547 -0
- package/dist/security/secret-management.js.map +1 -0
- package/dist/security/sql-injection.d.ts +76 -0
- package/dist/security/sql-injection.d.ts.map +1 -0
- package/dist/security/sql-injection.js +383 -0
- package/dist/security/sql-injection.js.map +1 -0
- package/dist/security/xss-prevention.d.ts +80 -0
- package/dist/security/xss-prevention.d.ts.map +1 -0
- package/dist/security/xss-prevention.js +416 -0
- package/dist/security/xss-prevention.js.map +1 -0
- package/dist/structural/barrel-exports.d.ts +178 -0
- package/dist/structural/barrel-exports.d.ts.map +1 -0
- package/dist/structural/barrel-exports.js +553 -0
- package/dist/structural/barrel-exports.js.map +1 -0
- package/dist/structural/circular-deps.d.ts +140 -0
- package/dist/structural/circular-deps.d.ts.map +1 -0
- package/dist/structural/circular-deps.js +422 -0
- package/dist/structural/circular-deps.js.map +1 -0
- package/dist/structural/co-location.d.ts +202 -0
- package/dist/structural/co-location.d.ts.map +1 -0
- package/dist/structural/co-location.js +640 -0
- package/dist/structural/co-location.js.map +1 -0
- package/dist/structural/directory-structure.d.ts +151 -0
- package/dist/structural/directory-structure.d.ts.map +1 -0
- package/dist/structural/directory-structure.js +457 -0
- package/dist/structural/directory-structure.js.map +1 -0
- package/dist/structural/file-naming.d.ts +61 -0
- package/dist/structural/file-naming.d.ts.map +1 -0
- package/dist/structural/file-naming.js +231 -0
- package/dist/structural/file-naming.js.map +1 -0
- package/dist/structural/import-ordering.d.ts +212 -0
- package/dist/structural/import-ordering.d.ts.map +1 -0
- package/dist/structural/import-ordering.js +821 -0
- package/dist/structural/import-ordering.js.map +1 -0
- package/dist/structural/index.d.ts +23 -0
- package/dist/structural/index.d.ts.map +1 -0
- package/dist/structural/index.js +26 -0
- package/dist/structural/index.js.map +1 -0
- package/dist/structural/module-boundaries.d.ts +164 -0
- package/dist/structural/module-boundaries.d.ts.map +1 -0
- package/dist/structural/module-boundaries.js +616 -0
- package/dist/structural/module-boundaries.js.map +1 -0
- package/dist/structural/package-boundaries.d.ts +182 -0
- package/dist/structural/package-boundaries.d.ts.map +1 -0
- package/dist/structural/package-boundaries.js +602 -0
- package/dist/structural/package-boundaries.js.map +1 -0
- package/dist/styling/class-naming.d.ts +263 -0
- package/dist/styling/class-naming.d.ts.map +1 -0
- package/dist/styling/class-naming.js +892 -0
- package/dist/styling/class-naming.js.map +1 -0
- package/dist/styling/color-usage.d.ts +213 -0
- package/dist/styling/color-usage.d.ts.map +1 -0
- package/dist/styling/color-usage.js +732 -0
- package/dist/styling/color-usage.js.map +1 -0
- package/dist/styling/design-tokens.d.ts +212 -0
- package/dist/styling/design-tokens.d.ts.map +1 -0
- package/dist/styling/design-tokens.js +748 -0
- package/dist/styling/design-tokens.js.map +1 -0
- package/dist/styling/index.d.ts +16 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +56 -0
- package/dist/styling/index.js.map +1 -0
- package/dist/styling/responsive.d.ts +304 -0
- package/dist/styling/responsive.d.ts.map +1 -0
- package/dist/styling/responsive.js +888 -0
- package/dist/styling/responsive.js.map +1 -0
- package/dist/styling/spacing-scale.d.ts +248 -0
- package/dist/styling/spacing-scale.d.ts.map +1 -0
- package/dist/styling/spacing-scale.js +865 -0
- package/dist/styling/spacing-scale.js.map +1 -0
- package/dist/styling/tailwind-patterns.d.ts +305 -0
- package/dist/styling/tailwind-patterns.d.ts.map +1 -0
- package/dist/styling/tailwind-patterns.js +1181 -0
- package/dist/styling/tailwind-patterns.js.map +1 -0
- package/dist/styling/typography.d.ts +281 -0
- package/dist/styling/typography.d.ts.map +1 -0
- package/dist/styling/typography.js +1004 -0
- package/dist/styling/typography.js.map +1 -0
- package/dist/styling/z-index-scale.d.ts +270 -0
- package/dist/styling/z-index-scale.d.ts.map +1 -0
- package/dist/styling/z-index-scale.js +714 -0
- package/dist/styling/z-index-scale.js.map +1 -0
- package/dist/testing/co-location.d.ts +42 -0
- package/dist/testing/co-location.d.ts.map +1 -0
- package/dist/testing/co-location.js +134 -0
- package/dist/testing/co-location.js.map +1 -0
- package/dist/testing/describe-naming.d.ts +47 -0
- package/dist/testing/describe-naming.d.ts.map +1 -0
- package/dist/testing/describe-naming.js +150 -0
- package/dist/testing/describe-naming.js.map +1 -0
- package/dist/testing/file-naming.d.ts +44 -0
- package/dist/testing/file-naming.d.ts.map +1 -0
- package/dist/testing/file-naming.js +131 -0
- package/dist/testing/file-naming.js.map +1 -0
- package/dist/testing/fixture-patterns.d.ts +52 -0
- package/dist/testing/fixture-patterns.d.ts.map +1 -0
- package/dist/testing/fixture-patterns.js +228 -0
- package/dist/testing/fixture-patterns.js.map +1 -0
- package/dist/testing/index.d.ts +31 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +49 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-patterns.d.ts +53 -0
- package/dist/testing/mock-patterns.d.ts.map +1 -0
- package/dist/testing/mock-patterns.js +264 -0
- package/dist/testing/mock-patterns.js.map +1 -0
- package/dist/testing/setup-teardown.d.ts +55 -0
- package/dist/testing/setup-teardown.d.ts.map +1 -0
- package/dist/testing/setup-teardown.js +262 -0
- package/dist/testing/setup-teardown.js.map +1 -0
- package/dist/testing/test-structure.d.ts +51 -0
- package/dist/testing/test-structure.d.ts.map +1 -0
- package/dist/testing/test-structure.js +225 -0
- package/dist/testing/test-structure.js.map +1 -0
- package/dist/types/any-usage.d.ts +99 -0
- package/dist/types/any-usage.d.ts.map +1 -0
- package/dist/types/any-usage.js +641 -0
- package/dist/types/any-usage.js.map +1 -0
- package/dist/types/file-location.d.ts +76 -0
- package/dist/types/file-location.d.ts.map +1 -0
- package/dist/types/file-location.js +395 -0
- package/dist/types/file-location.js.map +1 -0
- package/dist/types/generic-patterns.d.ts +97 -0
- package/dist/types/generic-patterns.d.ts.map +1 -0
- package/dist/types/generic-patterns.js +615 -0
- package/dist/types/generic-patterns.js.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +43 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/interface-vs-type.d.ts +81 -0
- package/dist/types/interface-vs-type.d.ts.map +1 -0
- package/dist/types/interface-vs-type.js +440 -0
- package/dist/types/interface-vs-type.js.map +1 -0
- package/dist/types/naming-conventions.d.ts +84 -0
- package/dist/types/naming-conventions.d.ts.map +1 -0
- package/dist/types/naming-conventions.js +455 -0
- package/dist/types/naming-conventions.js.map +1 -0
- package/dist/types/type-assertions.d.ts +98 -0
- package/dist/types/type-assertions.d.ts.map +1 -0
- package/dist/types/type-assertions.js +639 -0
- package/dist/types/type-assertions.js.map +1 -0
- package/dist/types/utility-types.d.ts +110 -0
- package/dist/types/utility-types.d.ts.map +1 -0
- package/dist/types/utility-types.js +547 -0
- package/dist/types/utility-types.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector Registry - Detector registration and management
|
|
3
|
+
*
|
|
4
|
+
* Registers detectors by ID, validates interface compliance,
|
|
5
|
+
* and prevents duplicate registration.
|
|
6
|
+
*
|
|
7
|
+
* @requirements 6.2 - THE Detector_System SHALL provide a registry for detector discovery and management
|
|
8
|
+
*/
|
|
9
|
+
import { BaseDetector, isBaseDetector } from '../base/base-detector.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Error Types
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when detector registration fails
|
|
15
|
+
*/
|
|
16
|
+
export class DetectorRegistrationError extends Error {
|
|
17
|
+
detectorId;
|
|
18
|
+
errorCause;
|
|
19
|
+
constructor(message, detectorId, cause) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = 'DetectorRegistrationError';
|
|
22
|
+
this.detectorId = detectorId;
|
|
23
|
+
this.errorCause = cause;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when a detector is not found
|
|
28
|
+
*/
|
|
29
|
+
export class DetectorNotFoundError extends Error {
|
|
30
|
+
detectorId;
|
|
31
|
+
constructor(detectorId) {
|
|
32
|
+
super(`Detector not found: ${detectorId}`);
|
|
33
|
+
this.detectorId = detectorId;
|
|
34
|
+
this.name = 'DetectorNotFoundError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Detector Registry Class
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Registry for managing detectors
|
|
42
|
+
*
|
|
43
|
+
* Provides methods for registering, querying, and managing detectors.
|
|
44
|
+
* Ensures detector IDs are unique and validates interface compliance.
|
|
45
|
+
*
|
|
46
|
+
* @requirements 6.2 - THE Detector_System SHALL provide a registry for detector discovery and management
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const registry = new DetectorRegistry();
|
|
51
|
+
*
|
|
52
|
+
* // Register a detector
|
|
53
|
+
* registry.register(new FileNamingDetector());
|
|
54
|
+
*
|
|
55
|
+
* // Query detectors
|
|
56
|
+
* const structuralDetectors = registry.query({ category: 'structural' });
|
|
57
|
+
*
|
|
58
|
+
* // Get a specific detector
|
|
59
|
+
* const detector = registry.get('structural/file-naming');
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export class DetectorRegistry {
|
|
63
|
+
/** Map of detector ID to registered detector */
|
|
64
|
+
detectors = new Map();
|
|
65
|
+
/** Map of detector ID to detector instance */
|
|
66
|
+
instances = new Map();
|
|
67
|
+
/** Map of detector ID to factory function (for lazy loading) */
|
|
68
|
+
factories = new Map();
|
|
69
|
+
/** Event listeners */
|
|
70
|
+
listeners = new Set();
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Registration Methods
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Register a detector instance
|
|
76
|
+
*
|
|
77
|
+
* @param detector - Detector instance to register
|
|
78
|
+
* @param options - Registration options
|
|
79
|
+
* @throws DetectorRegistrationError if registration fails
|
|
80
|
+
*
|
|
81
|
+
* @requirements 6.2 - Registry for detector discovery and management
|
|
82
|
+
*/
|
|
83
|
+
register(detector, options = {}) {
|
|
84
|
+
// Validate the detector
|
|
85
|
+
this.validateDetector(detector);
|
|
86
|
+
const id = detector.id;
|
|
87
|
+
// Check for duplicate registration
|
|
88
|
+
if (this.detectors.has(id) && !options.override) {
|
|
89
|
+
throw new DetectorRegistrationError(`Detector with ID '${id}' is already registered. Use override option to replace.`, id);
|
|
90
|
+
}
|
|
91
|
+
// Create registered detector entry
|
|
92
|
+
const registered = {
|
|
93
|
+
info: detector.getInfo(),
|
|
94
|
+
priority: options.priority ?? 0,
|
|
95
|
+
enabled: options.enabled ?? true,
|
|
96
|
+
registeredAt: new Date(),
|
|
97
|
+
};
|
|
98
|
+
// Store the detector
|
|
99
|
+
this.detectors.set(id, registered);
|
|
100
|
+
this.instances.set(id, detector);
|
|
101
|
+
// Remove any factory for this ID (instance takes precedence)
|
|
102
|
+
this.factories.delete(id);
|
|
103
|
+
// Call onRegister lifecycle hook if defined
|
|
104
|
+
if (detector.onRegister) {
|
|
105
|
+
try {
|
|
106
|
+
detector.onRegister();
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
// Log but don't fail registration
|
|
110
|
+
console.warn(`onRegister hook failed for detector '${id}':`, error);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Emit event
|
|
114
|
+
this.emit({ type: 'registered', detectorId: id, detector: registered });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Register a detector factory for lazy loading
|
|
118
|
+
*
|
|
119
|
+
* The factory will be called when the detector is first accessed.
|
|
120
|
+
*
|
|
121
|
+
* @param id - Detector ID
|
|
122
|
+
* @param factory - Factory function that creates the detector
|
|
123
|
+
* @param info - Detector info (required for querying before instantiation)
|
|
124
|
+
* @param options - Registration options
|
|
125
|
+
* @throws DetectorRegistrationError if registration fails
|
|
126
|
+
*/
|
|
127
|
+
registerFactory(id, factory, info, options = {}) {
|
|
128
|
+
// Validate ID format
|
|
129
|
+
this.validateDetectorId(id);
|
|
130
|
+
// Check for duplicate registration
|
|
131
|
+
if (this.detectors.has(id) && !options.override) {
|
|
132
|
+
throw new DetectorRegistrationError(`Detector with ID '${id}' is already registered. Use override option to replace.`, id);
|
|
133
|
+
}
|
|
134
|
+
// Create registered detector entry
|
|
135
|
+
const registered = {
|
|
136
|
+
info,
|
|
137
|
+
priority: options.priority ?? 0,
|
|
138
|
+
enabled: options.enabled ?? true,
|
|
139
|
+
registeredAt: new Date(),
|
|
140
|
+
};
|
|
141
|
+
// Store the factory and info
|
|
142
|
+
this.detectors.set(id, registered);
|
|
143
|
+
this.factories.set(id, factory);
|
|
144
|
+
// Remove any existing instance (factory takes precedence until accessed)
|
|
145
|
+
this.instances.delete(id);
|
|
146
|
+
// Emit event
|
|
147
|
+
this.emit({ type: 'registered', detectorId: id, detector: registered });
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Unregister a detector
|
|
151
|
+
*
|
|
152
|
+
* @param id - Detector ID to unregister
|
|
153
|
+
* @returns true if the detector was unregistered, false if not found
|
|
154
|
+
*/
|
|
155
|
+
unregister(id) {
|
|
156
|
+
const registered = this.detectors.get(id);
|
|
157
|
+
if (!registered) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
// Call onUnload lifecycle hook if defined
|
|
161
|
+
const instance = this.instances.get(id);
|
|
162
|
+
if (instance?.onUnload) {
|
|
163
|
+
try {
|
|
164
|
+
instance.onUnload();
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.warn(`onUnload hook failed for detector '${id}':`, error);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Remove from all maps
|
|
171
|
+
this.detectors.delete(id);
|
|
172
|
+
this.instances.delete(id);
|
|
173
|
+
this.factories.delete(id);
|
|
174
|
+
// Emit event
|
|
175
|
+
this.emit({ type: 'unregistered', detectorId: id });
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
// ============================================================================
|
|
179
|
+
// Query Methods
|
|
180
|
+
// ============================================================================
|
|
181
|
+
/**
|
|
182
|
+
* Get a detector by ID
|
|
183
|
+
*
|
|
184
|
+
* If the detector was registered with a factory, the factory will be
|
|
185
|
+
* called to create the instance on first access.
|
|
186
|
+
*
|
|
187
|
+
* @param id - Detector ID
|
|
188
|
+
* @returns Detector instance or undefined if not found
|
|
189
|
+
*/
|
|
190
|
+
async get(id) {
|
|
191
|
+
// Check if we have an instance
|
|
192
|
+
let instance = this.instances.get(id);
|
|
193
|
+
if (instance) {
|
|
194
|
+
return instance;
|
|
195
|
+
}
|
|
196
|
+
// Check if we have a factory
|
|
197
|
+
const factory = this.factories.get(id);
|
|
198
|
+
if (factory) {
|
|
199
|
+
try {
|
|
200
|
+
instance = await factory();
|
|
201
|
+
this.validateDetector(instance);
|
|
202
|
+
this.instances.set(id, instance);
|
|
203
|
+
this.factories.delete(id);
|
|
204
|
+
// Call onRegister lifecycle hook
|
|
205
|
+
if (instance.onRegister) {
|
|
206
|
+
instance.onRegister();
|
|
207
|
+
}
|
|
208
|
+
return instance;
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
throw new DetectorRegistrationError(`Failed to instantiate detector '${id}' from factory`, id, error instanceof Error ? error : new Error(String(error)));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get a detector by ID synchronously
|
|
218
|
+
*
|
|
219
|
+
* Only returns detectors that have already been instantiated.
|
|
220
|
+
* Use get() for lazy-loaded detectors.
|
|
221
|
+
*
|
|
222
|
+
* @param id - Detector ID
|
|
223
|
+
* @returns Detector instance or undefined if not found or not instantiated
|
|
224
|
+
*/
|
|
225
|
+
getSync(id) {
|
|
226
|
+
return this.instances.get(id);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get detector info by ID
|
|
230
|
+
*
|
|
231
|
+
* @param id - Detector ID
|
|
232
|
+
* @returns Registered detector info or undefined if not found
|
|
233
|
+
*/
|
|
234
|
+
getInfo(id) {
|
|
235
|
+
return this.detectors.get(id);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Check if a detector is registered
|
|
239
|
+
*
|
|
240
|
+
* @param id - Detector ID
|
|
241
|
+
* @returns true if the detector is registered
|
|
242
|
+
*/
|
|
243
|
+
has(id) {
|
|
244
|
+
return this.detectors.has(id);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Query detectors by criteria
|
|
248
|
+
*
|
|
249
|
+
* @param query - Query criteria
|
|
250
|
+
* @returns Query result with matching detectors
|
|
251
|
+
*/
|
|
252
|
+
query(query = {}) {
|
|
253
|
+
const results = [];
|
|
254
|
+
for (const registered of this.detectors.values()) {
|
|
255
|
+
if (this.matchesQuery(registered, query)) {
|
|
256
|
+
results.push(registered);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Sort by priority (higher first)
|
|
260
|
+
results.sort((a, b) => b.priority - a.priority);
|
|
261
|
+
return {
|
|
262
|
+
detectors: results,
|
|
263
|
+
count: results.length,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get all registered detector IDs
|
|
268
|
+
*
|
|
269
|
+
* @returns Array of detector IDs
|
|
270
|
+
*/
|
|
271
|
+
getIds() {
|
|
272
|
+
return Array.from(this.detectors.keys());
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Get all registered detectors
|
|
276
|
+
*
|
|
277
|
+
* @returns Array of registered detector entries
|
|
278
|
+
*/
|
|
279
|
+
getAll() {
|
|
280
|
+
return Array.from(this.detectors.values());
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Get the count of registered detectors
|
|
284
|
+
*
|
|
285
|
+
* @returns Number of registered detectors
|
|
286
|
+
*/
|
|
287
|
+
get size() {
|
|
288
|
+
return this.detectors.size;
|
|
289
|
+
}
|
|
290
|
+
// ============================================================================
|
|
291
|
+
// Enable/Disable Methods
|
|
292
|
+
// ============================================================================
|
|
293
|
+
/**
|
|
294
|
+
* Enable a detector
|
|
295
|
+
*
|
|
296
|
+
* @param id - Detector ID
|
|
297
|
+
* @returns true if the detector was enabled, false if not found
|
|
298
|
+
*/
|
|
299
|
+
enable(id) {
|
|
300
|
+
const registered = this.detectors.get(id);
|
|
301
|
+
if (!registered) {
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
if (!registered.enabled) {
|
|
305
|
+
registered.enabled = true;
|
|
306
|
+
this.emit({ type: 'enabled', detectorId: id, detector: registered });
|
|
307
|
+
}
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Disable a detector
|
|
312
|
+
*
|
|
313
|
+
* @param id - Detector ID
|
|
314
|
+
* @returns true if the detector was disabled, false if not found
|
|
315
|
+
*/
|
|
316
|
+
disable(id) {
|
|
317
|
+
const registered = this.detectors.get(id);
|
|
318
|
+
if (!registered) {
|
|
319
|
+
return false;
|
|
320
|
+
}
|
|
321
|
+
if (registered.enabled) {
|
|
322
|
+
registered.enabled = false;
|
|
323
|
+
this.emit({ type: 'disabled', detectorId: id, detector: registered });
|
|
324
|
+
}
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Check if a detector is enabled
|
|
329
|
+
*
|
|
330
|
+
* @param id - Detector ID
|
|
331
|
+
* @returns true if enabled, false if disabled or not found
|
|
332
|
+
*/
|
|
333
|
+
isEnabled(id) {
|
|
334
|
+
return this.detectors.get(id)?.enabled ?? false;
|
|
335
|
+
}
|
|
336
|
+
// ============================================================================
|
|
337
|
+
// Event Methods
|
|
338
|
+
// ============================================================================
|
|
339
|
+
/**
|
|
340
|
+
* Add an event listener
|
|
341
|
+
*
|
|
342
|
+
* @param listener - Event listener callback
|
|
343
|
+
*/
|
|
344
|
+
addEventListener(listener) {
|
|
345
|
+
this.listeners.add(listener);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Remove an event listener
|
|
349
|
+
*
|
|
350
|
+
* @param listener - Event listener callback
|
|
351
|
+
*/
|
|
352
|
+
removeEventListener(listener) {
|
|
353
|
+
this.listeners.delete(listener);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Clear all event listeners
|
|
357
|
+
*/
|
|
358
|
+
clearEventListeners() {
|
|
359
|
+
this.listeners.clear();
|
|
360
|
+
}
|
|
361
|
+
// ============================================================================
|
|
362
|
+
// Utility Methods
|
|
363
|
+
// ============================================================================
|
|
364
|
+
/**
|
|
365
|
+
* Clear all registered detectors
|
|
366
|
+
*
|
|
367
|
+
* Calls onUnload for all instantiated detectors.
|
|
368
|
+
*/
|
|
369
|
+
clear() {
|
|
370
|
+
// Call onUnload for all instances
|
|
371
|
+
for (const [id, instance] of this.instances) {
|
|
372
|
+
if (instance.onUnload) {
|
|
373
|
+
try {
|
|
374
|
+
instance.onUnload();
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
console.warn(`onUnload hook failed for detector '${id}':`, error);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
this.detectors.clear();
|
|
382
|
+
this.instances.clear();
|
|
383
|
+
this.factories.clear();
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Notify all detectors of a file change
|
|
387
|
+
*
|
|
388
|
+
* @param file - Path to the changed file
|
|
389
|
+
*/
|
|
390
|
+
notifyFileChange(file) {
|
|
391
|
+
for (const instance of this.instances.values()) {
|
|
392
|
+
if (instance.onFileChange) {
|
|
393
|
+
try {
|
|
394
|
+
instance.onFileChange(file);
|
|
395
|
+
}
|
|
396
|
+
catch (error) {
|
|
397
|
+
console.warn(`onFileChange hook failed for detector '${instance.id}':`, error);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
// ============================================================================
|
|
403
|
+
// Private Methods
|
|
404
|
+
// ============================================================================
|
|
405
|
+
/**
|
|
406
|
+
* Validate a detector instance
|
|
407
|
+
*
|
|
408
|
+
* @param detector - Detector to validate
|
|
409
|
+
* @throws DetectorRegistrationError if validation fails
|
|
410
|
+
*/
|
|
411
|
+
validateDetector(detector) {
|
|
412
|
+
if (!isBaseDetector(detector)) {
|
|
413
|
+
throw new DetectorRegistrationError('Invalid detector: must implement BaseDetector interface', detector?.id ?? 'unknown');
|
|
414
|
+
}
|
|
415
|
+
this.validateDetectorId(detector.id);
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Validate a detector ID format
|
|
419
|
+
*
|
|
420
|
+
* @param id - Detector ID to validate
|
|
421
|
+
* @throws DetectorRegistrationError if ID is invalid
|
|
422
|
+
*/
|
|
423
|
+
validateDetectorId(id) {
|
|
424
|
+
if (!id || typeof id !== 'string') {
|
|
425
|
+
throw new DetectorRegistrationError('Detector ID must be a non-empty string', id ?? 'unknown');
|
|
426
|
+
}
|
|
427
|
+
// ID should follow format: category/name or category/subcategory/name
|
|
428
|
+
const idPattern = /^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*(\/[a-z][a-z0-9-]*)?$/;
|
|
429
|
+
if (!idPattern.test(id)) {
|
|
430
|
+
throw new DetectorRegistrationError(`Invalid detector ID format: '${id}'. Expected format: category/name (e.g., 'structural/file-naming')`, id);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Check if a registered detector matches a query
|
|
435
|
+
*
|
|
436
|
+
* @param registered - Registered detector to check
|
|
437
|
+
* @param query - Query criteria
|
|
438
|
+
* @returns true if the detector matches all criteria
|
|
439
|
+
*/
|
|
440
|
+
matchesQuery(registered, query) {
|
|
441
|
+
const { info } = registered;
|
|
442
|
+
// Filter by category
|
|
443
|
+
if (query.category !== undefined && info.category !== query.category) {
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
// Filter by subcategory
|
|
447
|
+
if (query.subcategory !== undefined && info.subcategory !== query.subcategory) {
|
|
448
|
+
return false;
|
|
449
|
+
}
|
|
450
|
+
// Filter by language
|
|
451
|
+
if (query.language !== undefined && !info.supportedLanguages.includes(query.language)) {
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
// Filter by detection method
|
|
455
|
+
if (query.detectionMethod !== undefined && info.detectionMethod !== query.detectionMethod) {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
// Filter by enabled status
|
|
459
|
+
if (query.enabled !== undefined && registered.enabled !== query.enabled) {
|
|
460
|
+
return false;
|
|
461
|
+
}
|
|
462
|
+
// Filter by ID pattern
|
|
463
|
+
if (query.idPattern !== undefined) {
|
|
464
|
+
const pattern = typeof query.idPattern === 'string' ? new RegExp(query.idPattern) : query.idPattern;
|
|
465
|
+
if (!pattern.test(info.id)) {
|
|
466
|
+
return false;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
return true;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Emit an event to all listeners
|
|
473
|
+
*
|
|
474
|
+
* @param event - Event to emit
|
|
475
|
+
*/
|
|
476
|
+
emit(event) {
|
|
477
|
+
for (const listener of this.listeners) {
|
|
478
|
+
try {
|
|
479
|
+
listener(event);
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
console.warn('Registry event listener error:', error);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
// ============================================================================
|
|
488
|
+
// Singleton Instance
|
|
489
|
+
// ============================================================================
|
|
490
|
+
/**
|
|
491
|
+
* Default global detector registry instance
|
|
492
|
+
*
|
|
493
|
+
* Use this for application-wide detector registration.
|
|
494
|
+
*/
|
|
495
|
+
export const defaultRegistry = new DetectorRegistry();
|
|
496
|
+
// ============================================================================
|
|
497
|
+
// Convenience Functions
|
|
498
|
+
// ============================================================================
|
|
499
|
+
/**
|
|
500
|
+
* Register a detector with the default registry
|
|
501
|
+
*
|
|
502
|
+
* @param detector - Detector to register
|
|
503
|
+
* @param options - Registration options
|
|
504
|
+
*/
|
|
505
|
+
export function registerDetector(detector, options) {
|
|
506
|
+
defaultRegistry.register(detector, options);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Get a detector from the default registry
|
|
510
|
+
*
|
|
511
|
+
* @param id - Detector ID
|
|
512
|
+
* @returns Detector instance or undefined
|
|
513
|
+
*/
|
|
514
|
+
export async function getDetector(id) {
|
|
515
|
+
return defaultRegistry.get(id);
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Query detectors from the default registry
|
|
519
|
+
*
|
|
520
|
+
* @param query - Query criteria
|
|
521
|
+
* @returns Query result
|
|
522
|
+
*/
|
|
523
|
+
export function queryDetectors(query) {
|
|
524
|
+
return defaultRegistry.query(query);
|
|
525
|
+
}
|
|
526
|
+
//# sourceMappingURL=detector-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector-registry.js","sourceRoot":"","sources":["../../src/registry/detector-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAwB,MAAM,0BAA0B,CAAC;AAE9F,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClC,UAAU,CAAS;IACnB,UAAU,CAAoB;IAE9C,YAAY,OAAe,EAAE,UAAkB,EAAE,KAAa;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA5B,YAA4B,UAAkB;QAC5C,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QADjB,eAAU,GAAV,UAAU,CAAQ;QAE5C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAyBD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,gBAAgB;IAC3B,gDAAgD;IAC/B,SAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;IAExE,8CAA8C;IAC7B,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;IAElE,gEAAgE;IAC/C,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IAErE,sBAAsB;IACL,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEnE,+EAA+E;IAC/E,uBAAuB;IACvB,+EAA+E;IAE/E;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAsB,EAAE,UAAuC,EAAE;QACxE,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QAEvB,mCAAmC;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,yBAAyB,CACjC,qBAAqB,EAAE,0DAA0D,EACjF,EAAE,CACH,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAuB;YACrC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,YAAY,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;QAEF,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEjC,6DAA6D;QAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1B,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kCAAkC;gBAClC,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CACb,EAAU,EACV,OAAwB,EACxB,IAAkB,EAClB,UAAuC,EAAE;QAEzC,qBAAqB;QACrB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAE5B,mCAAmC;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,yBAAyB,CACjC,qBAAqB,EAAE,0DAA0D,EACjF,EAAE,CACH,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAuB;YACrC,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,YAAY,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhC,yEAAyE;QACzE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1B,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,EAAU;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1B,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,+BAA+B;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAE1B,iCAAiC;gBACjC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACxB,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,yBAAyB,CACjC,mCAAmC,EAAE,gBAAgB,EACrD,EAAE,EACF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAuB,EAAE;QAC7B,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO;YACL,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,yBAAyB;IACzB,+EAA+E;IAE/E;;;;;OAKG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,EAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,KAAK,CAAC;IAClD,CAAC;IAED,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;;;OAIG;IACH,gBAAgB,CAAC,QAA+B;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAA+B;QACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;;;OAIG;IACH,KAAK;QACH,kCAAkC;QAClC,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAY;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,0CAA0C,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;;;;OAKG;IACK,gBAAgB,CAAC,QAAiB;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,yBAAyB,CACjC,yDAAyD,EACxD,QAA4B,EAAE,EAAE,IAAI,SAAS,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAE,QAAyB,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,EAAU;QACnC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,yBAAyB,CAAC,wCAAwC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;QACjG,CAAC;QAED,sEAAsE;QACtE,MAAM,SAAS,GAAG,wDAAwD,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,yBAAyB,CACjC,gCAAgC,EAAE,oEAAoE,EACtG,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,UAA8B,EAAE,KAAoB;QACvE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAE5B,qBAAqB;QACrB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6BAA6B;QAC7B,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACtF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,IAAI,CAAC,KAAoB;QAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAEtD,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAsB,EACtB,OAAqC;IAErC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry module exports
|
|
3
|
+
*
|
|
4
|
+
* @requirements 6.2 - THE Detector_System SHALL provide a registry for detector discovery and management
|
|
5
|
+
* @requirements 6.7 - THE Detector_System SHALL support lazy loading of detectors
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './detector-registry.js';
|
|
9
|
+
export * from './loader.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry module exports
|
|
3
|
+
*
|
|
4
|
+
* @requirements 6.2 - THE Detector_System SHALL provide a registry for detector discovery and management
|
|
5
|
+
* @requirements 6.7 - THE Detector_System SHALL support lazy loading of detectors
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './detector-registry.js';
|
|
9
|
+
export * from './loader.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
|