@skillsmith/core 0.4.1 → 0.4.2
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/.tsbuildinfo +1 -1
- package/dist/src/analysis/adapters/java-parsers.d.ts +64 -0
- package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -0
- package/dist/src/analysis/adapters/java-parsers.js +114 -0
- package/dist/src/analysis/adapters/java-parsers.js.map +1 -0
- package/dist/src/analysis/adapters/java.d.ts +1 -51
- package/dist/src/analysis/adapters/java.d.ts.map +1 -1
- package/dist/src/analysis/adapters/java.js +94 -205
- package/dist/src/analysis/adapters/java.js.map +1 -1
- package/dist/src/analysis/adapters/python-frameworks.d.ts +21 -0
- package/dist/src/analysis/adapters/python-frameworks.d.ts.map +1 -0
- package/dist/src/analysis/adapters/python-frameworks.js +86 -0
- package/dist/src/analysis/adapters/python-frameworks.js.map +1 -0
- package/dist/src/analysis/adapters/python.d.ts +0 -50
- package/dist/src/analysis/adapters/python.d.ts.map +1 -1
- package/dist/src/analysis/adapters/python.js +5 -120
- package/dist/src/analysis/adapters/python.js.map +1 -1
- package/dist/src/analysis/adapters/rust-parsers.d.ts +33 -0
- package/dist/src/analysis/adapters/rust-parsers.d.ts.map +1 -0
- package/dist/src/analysis/adapters/rust-parsers.js +94 -0
- package/dist/src/analysis/adapters/rust-parsers.js.map +1 -0
- package/dist/src/analysis/adapters/rust.d.ts +1 -43
- package/dist/src/analysis/adapters/rust.d.ts.map +1 -1
- package/dist/src/analysis/adapters/rust.js +74 -173
- package/dist/src/analysis/adapters/rust.js.map +1 -1
- package/dist/src/analysis/worker-pool.d.ts +25 -52
- package/dist/src/analysis/worker-pool.d.ts.map +1 -1
- package/dist/src/analysis/worker-pool.js +29 -181
- package/dist/src/analysis/worker-pool.js.map +1 -1
- package/dist/src/analysis/worker-types.d.ts +64 -0
- package/dist/src/analysis/worker-types.d.ts.map +1 -0
- package/dist/src/analysis/worker-types.js +11 -0
- package/dist/src/analysis/worker-types.js.map +1 -0
- package/dist/src/analysis/worker-utils.d.ts +49 -0
- package/dist/src/analysis/worker-utils.d.ts.map +1 -0
- package/dist/src/analysis/worker-utils.js +206 -0
- package/dist/src/analysis/worker-utils.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts +1 -5
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.helpers.d.ts +28 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.d.ts.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.js +90 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.js +16 -129
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.types.d.ts +82 -0
- package/dist/src/analytics/AnalyticsRepository.types.d.ts.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.types.js +8 -0
- package/dist/src/analytics/AnalyticsRepository.types.js.map +1 -0
- package/dist/src/api/client.d.ts +5 -121
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +17 -131
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/schemas.d.ts +122 -0
- package/dist/src/api/schemas.d.ts.map +1 -0
- package/dist/src/api/schemas.js +71 -0
- package/dist/src/api/schemas.js.map +1 -0
- package/dist/src/api/utils.d.ts +35 -0
- package/dist/src/api/utils.d.ts.map +1 -0
- package/dist/src/api/utils.js +86 -0
- package/dist/src/api/utils.js.map +1 -0
- package/dist/src/billing/GDPRComplianceService.d.ts +2 -97
- package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -1
- package/dist/src/billing/GDPRComplianceService.js.map +1 -1
- package/dist/src/billing/StripeClient.d.ts +3 -62
- package/dist/src/billing/StripeClient.d.ts.map +1 -1
- package/dist/src/billing/StripeClient.js +10 -68
- package/dist/src/billing/StripeClient.js.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.d.ts +2 -47
- package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.js +1 -41
- package/dist/src/billing/StripeReconciliationJob.js.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.d.ts +3 -59
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js +14 -304
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
- package/dist/src/billing/gdpr-types.d.ts +103 -0
- package/dist/src/billing/gdpr-types.d.ts.map +1 -0
- package/dist/src/billing/gdpr-types.js +7 -0
- package/dist/src/billing/gdpr-types.js.map +1 -0
- package/dist/src/billing/reconciliation-helpers.d.ts +16 -0
- package/dist/src/billing/reconciliation-helpers.d.ts.map +1 -0
- package/dist/src/billing/reconciliation-helpers.js +53 -0
- package/dist/src/billing/reconciliation-helpers.js.map +1 -0
- package/dist/src/billing/reconciliation-types.d.ts +71 -0
- package/dist/src/billing/reconciliation-types.d.ts.map +1 -0
- package/dist/src/billing/reconciliation-types.js +7 -0
- package/dist/src/billing/reconciliation-types.js.map +1 -0
- package/dist/src/billing/stripe-client-types.d.ts +45 -0
- package/dist/src/billing/stripe-client-types.d.ts.map +1 -0
- package/dist/src/billing/stripe-client-types.js +7 -0
- package/dist/src/billing/stripe-client-types.js.map +1 -0
- package/dist/src/billing/stripe-helpers.d.ts +17 -0
- package/dist/src/billing/stripe-helpers.d.ts.map +1 -0
- package/dist/src/billing/stripe-helpers.js +50 -0
- package/dist/src/billing/stripe-helpers.js.map +1 -0
- package/dist/src/billing/webhook-handlers.d.ts +56 -0
- package/dist/src/billing/webhook-handlers.d.ts.map +1 -0
- package/dist/src/billing/webhook-handlers.js +303 -0
- package/dist/src/billing/webhook-handlers.js.map +1 -0
- package/dist/src/billing/webhook-types.d.ts +42 -0
- package/dist/src/billing/webhook-types.d.ts.map +1 -0
- package/dist/src/billing/webhook-types.js +7 -0
- package/dist/src/billing/webhook-types.js.map +1 -0
- package/dist/src/config/index.d.ts +118 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +172 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/db/migration-types.d.ts +101 -0
- package/dist/src/db/migration-types.d.ts.map +1 -0
- package/dist/src/db/migration-types.js +6 -0
- package/dist/src/db/migration-types.js.map +1 -0
- package/dist/src/db/migration.d.ts +7 -104
- package/dist/src/db/migration.d.ts.map +1 -1
- package/dist/src/db/migration.js +15 -65
- package/dist/src/db/migration.js.map +1 -1
- package/dist/src/embeddings/embedding-types.d.ts +44 -0
- package/dist/src/embeddings/embedding-types.d.ts.map +1 -0
- package/dist/src/embeddings/embedding-types.js +6 -0
- package/dist/src/embeddings/embedding-types.js.map +1 -0
- package/dist/src/embeddings/embedding-utils.d.ts +42 -0
- package/dist/src/embeddings/embedding-utils.d.ts.map +1 -0
- package/dist/src/embeddings/embedding-utils.js +121 -0
- package/dist/src/embeddings/embedding-utils.js.map +1 -0
- package/dist/src/embeddings/index.d.ts +36 -112
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js +37 -210
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/exports/repositories.d.ts +18 -0
- package/dist/src/exports/repositories.d.ts.map +1 -0
- package/dist/src/exports/repositories.js +30 -0
- package/dist/src/exports/repositories.js.map +1 -0
- package/dist/src/exports/services.d.ts +30 -0
- package/dist/src/exports/services.d.ts.map +1 -0
- package/dist/src/exports/services.js +70 -0
- package/dist/src/exports/services.js.map +1 -0
- package/dist/src/exports/types.d.ts +21 -0
- package/dist/src/exports/types.d.ts.map +1 -0
- package/dist/src/exports/types.js +12 -0
- package/dist/src/exports/types.js.map +1 -0
- package/dist/src/index.d.ts +10 -54
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -59
- package/dist/src/index.js.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.d.ts +4 -176
- package/dist/src/pipeline/DailyIndexPipeline.d.ts.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js +9 -83
- package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
- package/dist/src/pipeline/pipeline-types.d.ts +132 -0
- package/dist/src/pipeline/pipeline-types.d.ts.map +1 -0
- package/dist/src/pipeline/pipeline-types.js +6 -0
- package/dist/src/pipeline/pipeline-types.js.map +1 -0
- package/dist/src/routing/expert-types.d.ts +109 -0
- package/dist/src/routing/expert-types.d.ts.map +1 -0
- package/dist/src/routing/expert-types.js +162 -0
- package/dist/src/routing/expert-types.js.map +1 -0
- package/dist/src/routing/request-types.d.ts +113 -0
- package/dist/src/routing/request-types.d.ts.map +1 -0
- package/dist/src/routing/request-types.js +9 -0
- package/dist/src/routing/request-types.js.map +1 -0
- package/dist/src/routing/types.d.ts +5 -207
- package/dist/src/routing/types.d.ts.map +1 -1
- package/dist/src/routing/types.js +3 -153
- package/dist/src/routing/types.js.map +1 -1
- package/dist/src/scripts/github-import/github-auth.d.ts +17 -0
- package/dist/src/scripts/github-import/github-auth.d.ts.map +1 -0
- package/dist/src/scripts/github-import/github-auth.js +201 -0
- package/dist/src/scripts/github-import/github-auth.js.map +1 -0
- package/dist/src/scripts/github-import/github-client.d.ts +5 -5
- package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
- package/dist/src/scripts/github-import/github-client.js +5 -203
- package/dist/src/scripts/github-import/github-client.js.map +1 -1
- package/dist/src/scripts/merge-skills.d.ts +5 -27
- package/dist/src/scripts/merge-skills.d.ts.map +1 -1
- package/dist/src/scripts/merge-skills.js +4 -144
- package/dist/src/scripts/merge-skills.js.map +1 -1
- package/dist/src/scripts/merge-types.d.ts +72 -0
- package/dist/src/scripts/merge-types.d.ts.map +1 -0
- package/dist/src/scripts/merge-types.js +7 -0
- package/dist/src/scripts/merge-types.js.map +1 -0
- package/dist/src/scripts/merge-utils.d.ts +23 -0
- package/dist/src/scripts/merge-utils.d.ts.map +1 -0
- package/dist/src/scripts/merge-utils.js +150 -0
- package/dist/src/scripts/merge-utils.js.map +1 -0
- package/dist/src/scripts/review-categories.d.ts +41 -0
- package/dist/src/scripts/review-categories.d.ts.map +1 -0
- package/dist/src/scripts/review-categories.js +316 -0
- package/dist/src/scripts/review-categories.js.map +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -1
- package/dist/src/scripts/review-lenny-skills.js +5 -310
- package/dist/src/scripts/review-lenny-skills.js.map +1 -1
- package/dist/src/security/AuditLogger.d.ts +4 -75
- package/dist/src/security/AuditLogger.d.ts.map +1 -1
- package/dist/src/security/AuditLogger.js +2 -11
- package/dist/src/security/AuditLogger.js.map +1 -1
- package/dist/src/security/audit-types.d.ts +96 -0
- package/dist/src/security/audit-types.d.ts.map +1 -0
- package/dist/src/security/audit-types.js +15 -0
- package/dist/src/security/audit-types.js.map +1 -0
- package/dist/src/security/sanitization.d.ts +1 -85
- package/dist/src/security/sanitization.d.ts.map +1 -1
- package/dist/src/security/sanitization.js +2 -133
- package/dist/src/security/sanitization.js.map +1 -1
- package/dist/src/security/stripe-validators.d.ts +92 -0
- package/dist/src/security/stripe-validators.d.ts.map +1 -0
- package/dist/src/security/stripe-validators.js +139 -0
- package/dist/src/security/stripe-validators.js.map +1 -0
- package/dist/src/services/SearchService.d.ts +2 -31
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/SearchService.helpers.d.ts +42 -0
- package/dist/src/services/SearchService.helpers.d.ts.map +1 -0
- package/dist/src/services/SearchService.helpers.js +128 -0
- package/dist/src/services/SearchService.helpers.js.map +1 -0
- package/dist/src/services/SearchService.js +14 -132
- package/dist/src/services/SearchService.js.map +1 -1
- package/dist/src/services/SearchService.types.d.ts +53 -0
- package/dist/src/services/SearchService.types.d.ts.map +1 -0
- package/dist/src/services/SearchService.types.js +7 -0
- package/dist/src/services/SearchService.types.js.map +1 -0
- package/dist/src/services/SkillAnalyzer.d.ts +6 -86
- package/dist/src/services/SkillAnalyzer.d.ts.map +1 -1
- package/dist/src/services/SkillAnalyzer.helpers.d.ts +103 -0
- package/dist/src/services/SkillAnalyzer.helpers.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.helpers.js +237 -0
- package/dist/src/services/SkillAnalyzer.helpers.js.map +1 -0
- package/dist/src/services/SkillAnalyzer.js +16 -167
- package/dist/src/services/SkillAnalyzer.js.map +1 -1
- package/dist/src/services/SkillAnalyzer.types.d.ts +110 -0
- package/dist/src/services/SkillAnalyzer.types.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.types.js +9 -0
- package/dist/src/services/SkillAnalyzer.types.js.map +1 -0
- package/dist/src/services/SkillDecomposer.d.ts +4 -70
- package/dist/src/services/SkillDecomposer.d.ts.map +1 -1
- package/dist/src/services/SkillDecomposer.helpers.d.ts +75 -0
- package/dist/src/services/SkillDecomposer.helpers.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.helpers.js +277 -0
- package/dist/src/services/SkillDecomposer.helpers.js.map +1 -0
- package/dist/src/services/SkillDecomposer.js +6 -249
- package/dist/src/services/SkillDecomposer.js.map +1 -1
- package/dist/src/services/SkillDecomposer.types.d.ts +104 -0
- package/dist/src/services/SkillDecomposer.types.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.types.js +9 -0
- package/dist/src/services/SkillDecomposer.types.js.map +1 -0
- package/dist/src/services/SubagentGenerator.d.ts +12 -3
- package/dist/src/services/SubagentGenerator.d.ts.map +1 -1
- package/dist/src/services/SubagentGenerator.js +43 -10
- package/dist/src/services/SubagentGenerator.js.map +1 -1
- package/dist/src/services/TaskRunner.d.ts +227 -0
- package/dist/src/services/TaskRunner.d.ts.map +1 -0
- package/dist/src/services/TaskRunner.js +423 -0
- package/dist/src/services/TaskRunner.js.map +1 -0
- package/dist/src/services/TransformationService.d.ts +8 -4
- package/dist/src/services/TransformationService.d.ts.map +1 -1
- package/dist/src/services/TransformationService.js +58 -34
- package/dist/src/services/TransformationService.js.map +1 -1
- package/dist/src/services/__tests__/TaskRunner.test.d.ts +7 -0
- package/dist/src/services/__tests__/TaskRunner.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/TaskRunner.test.js +316 -0
- package/dist/src/services/__tests__/TaskRunner.test.js.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.js +12 -10
- package/dist/src/services/__tests__/TransformationService.test.js.map +1 -1
- package/dist/src/telemetry/metric-helpers.d.ts +47 -0
- package/dist/src/telemetry/metric-helpers.d.ts.map +1 -0
- package/dist/src/telemetry/metric-helpers.js +96 -0
- package/dist/src/telemetry/metric-helpers.js.map +1 -0
- package/dist/src/telemetry/metric-types.d.ts +73 -0
- package/dist/src/telemetry/metric-types.d.ts.map +1 -0
- package/dist/src/telemetry/metric-types.js +9 -0
- package/dist/src/telemetry/metric-types.js.map +1 -0
- package/dist/src/telemetry/metrics.d.ts +8 -119
- package/dist/src/telemetry/metrics.d.ts.map +1 -1
- package/dist/src/telemetry/metrics.js +20 -193
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/span-utils.d.ts +30 -0
- package/dist/src/telemetry/span-utils.d.ts.map +1 -0
- package/dist/src/telemetry/span-utils.js +62 -0
- package/dist/src/telemetry/span-utils.js.map +1 -0
- package/dist/src/telemetry/tracer-types.d.ts +91 -0
- package/dist/src/telemetry/tracer-types.d.ts.map +1 -0
- package/dist/src/telemetry/tracer-types.js +6 -0
- package/dist/src/telemetry/tracer-types.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +5 -122
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +23 -168
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/triggers/TriggerDetector.d.ts +6 -142
- package/dist/src/triggers/TriggerDetector.d.ts.map +1 -1
- package/dist/src/triggers/TriggerDetector.js +15 -247
- package/dist/src/triggers/TriggerDetector.js.map +1 -1
- package/dist/src/triggers/trigger-constants.d.ts +22 -0
- package/dist/src/triggers/trigger-constants.d.ts.map +1 -0
- package/dist/src/triggers/trigger-constants.js +185 -0
- package/dist/src/triggers/trigger-constants.js.map +1 -0
- package/dist/src/triggers/trigger-types.d.ts +90 -0
- package/dist/src/triggers/trigger-types.d.ts.map +1 -0
- package/dist/src/triggers/trigger-types.js +6 -0
- package/dist/src/triggers/trigger-types.js.map +1 -0
- package/dist/src/types/skill.d.ts +4 -1
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +6 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/validation/index.d.ts +5 -105
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +9 -421
- package/dist/src/validation/index.js.map +1 -1
- package/dist/src/validation/input-validators.d.ts +68 -0
- package/dist/src/validation/input-validators.d.ts.map +1 -0
- package/dist/src/validation/input-validators.js +126 -0
- package/dist/src/validation/input-validators.js.map +1 -0
- package/dist/src/validation/path-validators.d.ts +23 -0
- package/dist/src/validation/path-validators.d.ts.map +1 -0
- package/dist/src/validation/path-validators.js +47 -0
- package/dist/src/validation/path-validators.js.map +1 -0
- package/dist/src/validation/url-validators.d.ts +55 -0
- package/dist/src/validation/url-validators.d.ts.map +1 -0
- package/dist/src/validation/url-validators.js +267 -0
- package/dist/src/validation/url-validators.js.map +1 -0
- package/dist/src/validation/validation-error.d.ts +14 -0
- package/dist/src/validation/validation-error.d.ts.map +1 -0
- package/dist/src/validation/validation-error.js +19 -0
- package/dist/src/validation/validation-error.js.map +1 -0
- package/dist/src/webhooks/WebhookPayload.d.ts +4 -215
- package/dist/src/webhooks/WebhookPayload.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookPayload.js +1 -122
- package/dist/src/webhooks/WebhookPayload.js.map +1 -1
- package/dist/src/webhooks/WebhookQueue.d.ts +2 -140
- package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookQueue.js +4 -11
- package/dist/src/webhooks/WebhookQueue.js.map +1 -1
- package/dist/src/webhooks/WebhookQueue.types.d.ts +149 -0
- package/dist/src/webhooks/WebhookQueue.types.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookQueue.types.js +10 -0
- package/dist/src/webhooks/WebhookQueue.types.js.map +1 -0
- package/dist/src/webhooks/WebhookQueue.utils.d.ts +44 -0
- package/dist/src/webhooks/WebhookQueue.utils.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookQueue.utils.js +58 -0
- package/dist/src/webhooks/WebhookQueue.utils.js.map +1 -0
- package/dist/src/webhooks/webhook-schemas.d.ts +213 -0
- package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-schemas.js +132 -0
- package/dist/src/webhooks/webhook-schemas.js.map +1 -0
- package/dist/src/webhooks/webhook-types.d.ts +222 -0
- package/dist/src/webhooks/webhook-types.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-types.js +10 -0
- package/dist/src/webhooks/webhook-types.js.map +1 -0
- package/dist/tests/integration/neural/neural-fixtures.d.ts +19 -0
- package/dist/tests/integration/neural/neural-fixtures.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-fixtures.js +49 -0
- package/dist/tests/integration/neural/neural-fixtures.js.map +1 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.d.ts +78 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.js +146 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.js.map +1 -0
- package/dist/tests/integration/neural/neural-mocks.d.ts +90 -0
- package/dist/tests/integration/neural/neural-mocks.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-mocks.js +288 -0
- package/dist/tests/integration/neural/neural-mocks.js.map +1 -0
- package/dist/tests/integration/neural/neural-test-utils.d.ts +27 -0
- package/dist/tests/integration/neural/neural-test-utils.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-test-utils.js +35 -0
- package/dist/tests/integration/neural/neural-test-utils.js.map +1 -0
- package/dist/tests/integration/neural/setup.d.ts +6 -165
- package/dist/tests/integration/neural/setup.d.ts.map +1 -1
- package/dist/tests/integration/neural/setup.js +9 -477
- package/dist/tests/integration/neural/setup.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: WebhookQueue Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the webhook event queue system:
|
|
5
|
+
* - Queue item types and priorities
|
|
6
|
+
* - Processing results and statistics
|
|
7
|
+
* - Queue configuration options
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Types of queue items
|
|
11
|
+
*/
|
|
12
|
+
export type QueueItemType = 'index' | 'remove' | 'remove_all' | 'archive' | 'reactivate';
|
|
13
|
+
/**
|
|
14
|
+
* Priority levels for queue items
|
|
15
|
+
*/
|
|
16
|
+
export type QueuePriority = 'high' | 'medium' | 'low';
|
|
17
|
+
/**
|
|
18
|
+
* A single item in the webhook queue
|
|
19
|
+
*/
|
|
20
|
+
export interface WebhookQueueItem {
|
|
21
|
+
/**
|
|
22
|
+
* Unique identifier for this queue item
|
|
23
|
+
*/
|
|
24
|
+
id: string;
|
|
25
|
+
/**
|
|
26
|
+
* Type of operation to perform
|
|
27
|
+
*/
|
|
28
|
+
type: QueueItemType;
|
|
29
|
+
/**
|
|
30
|
+
* Repository URL
|
|
31
|
+
*/
|
|
32
|
+
repoUrl: string;
|
|
33
|
+
/**
|
|
34
|
+
* Repository full name (owner/repo)
|
|
35
|
+
*/
|
|
36
|
+
repoFullName: string;
|
|
37
|
+
/**
|
|
38
|
+
* Path to the file (or '*' for repo-wide operations)
|
|
39
|
+
*/
|
|
40
|
+
filePath: string;
|
|
41
|
+
/**
|
|
42
|
+
* Commit SHA that triggered this item
|
|
43
|
+
*/
|
|
44
|
+
commitSha: string;
|
|
45
|
+
/**
|
|
46
|
+
* Timestamp when this item was created
|
|
47
|
+
*/
|
|
48
|
+
timestamp: number;
|
|
49
|
+
/**
|
|
50
|
+
* Priority level
|
|
51
|
+
*/
|
|
52
|
+
priority: QueuePriority;
|
|
53
|
+
/**
|
|
54
|
+
* Number of retry attempts
|
|
55
|
+
*/
|
|
56
|
+
retries: number;
|
|
57
|
+
/**
|
|
58
|
+
* Error from last attempt (if any)
|
|
59
|
+
*/
|
|
60
|
+
lastError?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Next retry time (if scheduled)
|
|
63
|
+
*/
|
|
64
|
+
nextRetryAt?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Queue processing result
|
|
68
|
+
*/
|
|
69
|
+
export interface QueueProcessResult {
|
|
70
|
+
/**
|
|
71
|
+
* Item that was processed
|
|
72
|
+
*/
|
|
73
|
+
item: WebhookQueueItem;
|
|
74
|
+
/**
|
|
75
|
+
* Whether processing succeeded
|
|
76
|
+
*/
|
|
77
|
+
success: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Error message if failed
|
|
80
|
+
*/
|
|
81
|
+
error?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Duration of processing in ms
|
|
84
|
+
*/
|
|
85
|
+
durationMs: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Queue statistics
|
|
89
|
+
*/
|
|
90
|
+
export interface QueueStats {
|
|
91
|
+
/**
|
|
92
|
+
* Total items in queue
|
|
93
|
+
*/
|
|
94
|
+
total: number;
|
|
95
|
+
/**
|
|
96
|
+
* Items by priority
|
|
97
|
+
*/
|
|
98
|
+
byPriority: Record<QueuePriority, number>;
|
|
99
|
+
/**
|
|
100
|
+
* Items by type
|
|
101
|
+
*/
|
|
102
|
+
byType: Record<QueueItemType, number>;
|
|
103
|
+
/**
|
|
104
|
+
* Items currently being processed
|
|
105
|
+
*/
|
|
106
|
+
processing: number;
|
|
107
|
+
/**
|
|
108
|
+
* Items waiting for retry
|
|
109
|
+
*/
|
|
110
|
+
pendingRetry: number;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Queue options
|
|
114
|
+
*/
|
|
115
|
+
export interface WebhookQueueOptions {
|
|
116
|
+
/**
|
|
117
|
+
* Maximum number of concurrent processors
|
|
118
|
+
*/
|
|
119
|
+
concurrency?: number;
|
|
120
|
+
/**
|
|
121
|
+
* Debounce time in ms for same-repo updates
|
|
122
|
+
*/
|
|
123
|
+
debounceMs?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Maximum retry attempts
|
|
126
|
+
*/
|
|
127
|
+
maxRetries?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Base retry delay in ms (exponential backoff)
|
|
130
|
+
*/
|
|
131
|
+
retryDelayMs?: number;
|
|
132
|
+
/**
|
|
133
|
+
* Maximum queue size
|
|
134
|
+
*/
|
|
135
|
+
maxSize?: number;
|
|
136
|
+
/**
|
|
137
|
+
* Processor function to handle queue items
|
|
138
|
+
*/
|
|
139
|
+
processor?: (item: WebhookQueueItem) => Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Callback when processing completes
|
|
142
|
+
*/
|
|
143
|
+
onProcessed?: (result: QueueProcessResult) => void;
|
|
144
|
+
/**
|
|
145
|
+
* Callback for logging
|
|
146
|
+
*/
|
|
147
|
+
onLog?: (level: 'info' | 'warn' | 'error', message: string, data?: unknown) => void;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=WebhookQueue.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookQueue.types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/WebhookQueue.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAA;AAExF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,aAAa,CAAA;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAA;IAEvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAA;IAEtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAEzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAErC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAErD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAElD;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CACpF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: WebhookQueue Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the webhook event queue system:
|
|
5
|
+
* - Queue item types and priorities
|
|
6
|
+
* - Processing results and statistics
|
|
7
|
+
* - Queue configuration options
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=WebhookQueue.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookQueue.types.js","sourceRoot":"","sources":["../../../src/webhooks/WebhookQueue.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: WebhookQueue Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility constants and functions for the webhook queue system.
|
|
5
|
+
*/
|
|
6
|
+
import type { QueuePriority } from './WebhookQueue.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Priority values for sorting
|
|
9
|
+
* Higher values = higher priority
|
|
10
|
+
*/
|
|
11
|
+
export declare const PRIORITY_VALUES: Record<QueuePriority, number>;
|
|
12
|
+
/**
|
|
13
|
+
* Compare two queue items by priority
|
|
14
|
+
* Returns negative if a has higher priority, positive if b has higher priority
|
|
15
|
+
*/
|
|
16
|
+
export declare function comparePriority(a: QueuePriority, b: QueuePriority): number;
|
|
17
|
+
/**
|
|
18
|
+
* Calculate priority score for an item
|
|
19
|
+
* Takes into account priority level and age
|
|
20
|
+
*
|
|
21
|
+
* @param priority - The priority level
|
|
22
|
+
* @param timestamp - The item's creation timestamp
|
|
23
|
+
* @param now - Current timestamp (default: Date.now())
|
|
24
|
+
* @returns Combined priority score
|
|
25
|
+
*/
|
|
26
|
+
export declare function calculatePriorityScore(priority: QueuePriority, timestamp: number, now?: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Calculate exponential backoff delay
|
|
29
|
+
*
|
|
30
|
+
* @param baseDelayMs - Base delay in milliseconds
|
|
31
|
+
* @param retryCount - Current retry attempt (1-based)
|
|
32
|
+
* @returns Delay in milliseconds
|
|
33
|
+
*/
|
|
34
|
+
export declare function calculateRetryDelay(baseDelayMs: number, retryCount: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Generate a debounce key for a queue item
|
|
37
|
+
* Used to deduplicate rapid updates to the same file
|
|
38
|
+
*
|
|
39
|
+
* @param repoFullName - Repository full name (owner/repo)
|
|
40
|
+
* @param filePath - Path to the file
|
|
41
|
+
* @returns Debounce key string
|
|
42
|
+
*/
|
|
43
|
+
export declare function generateDebounceKey(repoFullName: string, filePath: string): string;
|
|
44
|
+
//# sourceMappingURL=WebhookQueue.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookQueue.utils.d.ts","sourceRoot":"","sources":["../../../src/webhooks/WebhookQueue.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAIzD,CAAA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,CAE1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAmB,GACvB,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: WebhookQueue Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility constants and functions for the webhook queue system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Priority values for sorting
|
|
8
|
+
* Higher values = higher priority
|
|
9
|
+
*/
|
|
10
|
+
export const PRIORITY_VALUES = {
|
|
11
|
+
high: 3,
|
|
12
|
+
medium: 2,
|
|
13
|
+
low: 1,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Compare two queue items by priority
|
|
17
|
+
* Returns negative if a has higher priority, positive if b has higher priority
|
|
18
|
+
*/
|
|
19
|
+
export function comparePriority(a, b) {
|
|
20
|
+
return PRIORITY_VALUES[b] - PRIORITY_VALUES[a];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Calculate priority score for an item
|
|
24
|
+
* Takes into account priority level and age
|
|
25
|
+
*
|
|
26
|
+
* @param priority - The priority level
|
|
27
|
+
* @param timestamp - The item's creation timestamp
|
|
28
|
+
* @param now - Current timestamp (default: Date.now())
|
|
29
|
+
* @returns Combined priority score
|
|
30
|
+
*/
|
|
31
|
+
export function calculatePriorityScore(priority, timestamp, now = Date.now()) {
|
|
32
|
+
const priorityScore = PRIORITY_VALUES[priority];
|
|
33
|
+
// Prefer older items with same priority (age bonus in minutes)
|
|
34
|
+
const ageBonus = (now - timestamp) / (1000 * 60);
|
|
35
|
+
return priorityScore * 1000 + ageBonus;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate exponential backoff delay
|
|
39
|
+
*
|
|
40
|
+
* @param baseDelayMs - Base delay in milliseconds
|
|
41
|
+
* @param retryCount - Current retry attempt (1-based)
|
|
42
|
+
* @returns Delay in milliseconds
|
|
43
|
+
*/
|
|
44
|
+
export function calculateRetryDelay(baseDelayMs, retryCount) {
|
|
45
|
+
return baseDelayMs * Math.pow(2, retryCount - 1);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generate a debounce key for a queue item
|
|
49
|
+
* Used to deduplicate rapid updates to the same file
|
|
50
|
+
*
|
|
51
|
+
* @param repoFullName - Repository full name (owner/repo)
|
|
52
|
+
* @param filePath - Path to the file
|
|
53
|
+
* @returns Debounce key string
|
|
54
|
+
*/
|
|
55
|
+
export function generateDebounceKey(repoFullName, filePath) {
|
|
56
|
+
return `${repoFullName}:${filePath}`;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=WebhookQueue.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookQueue.utils.js","sourceRoot":"","sources":["../../../src/webhooks/WebhookQueue.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAgB,EAAE,CAAgB;IAChE,OAAO,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAuB,EACvB,SAAiB,EACjB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAC/C,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAChD,OAAO,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAA;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,UAAkB;IACzE,OAAO,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,QAAgB;IACxE,OAAO,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: Webhook Schemas - Zod validation schemas for GitHub webhooks
|
|
3
|
+
*
|
|
4
|
+
* SMI-680: Extracted from WebhookPayload.ts to reduce file size.
|
|
5
|
+
*
|
|
6
|
+
* Provides secure payload validation using Zod schemas.
|
|
7
|
+
*
|
|
8
|
+
* @see WebhookPayload.ts for type definitions and helper functions
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
/**
|
|
12
|
+
* Git user schema (author/committer)
|
|
13
|
+
*/
|
|
14
|
+
export declare const GitUserSchema: z.ZodObject<{
|
|
15
|
+
name: z.ZodString;
|
|
16
|
+
email: z.ZodString;
|
|
17
|
+
username: z.ZodOptional<z.ZodString>;
|
|
18
|
+
}, z.core.$loose>;
|
|
19
|
+
/**
|
|
20
|
+
* Repository owner schema
|
|
21
|
+
*/
|
|
22
|
+
export declare const RepositoryOwnerSchema: z.ZodObject<{
|
|
23
|
+
login: z.ZodString;
|
|
24
|
+
id: z.ZodNumber;
|
|
25
|
+
type: z.ZodEnum<{
|
|
26
|
+
User: "User";
|
|
27
|
+
Organization: "Organization";
|
|
28
|
+
}>;
|
|
29
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
30
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$loose>;
|
|
32
|
+
/**
|
|
33
|
+
* Webhook repository schema - minimum required fields
|
|
34
|
+
*/
|
|
35
|
+
export declare const WebhookRepositorySchema: z.ZodObject<{
|
|
36
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
name: z.ZodOptional<z.ZodString>;
|
|
38
|
+
full_name: z.ZodString;
|
|
39
|
+
private: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
owner: z.ZodOptional<z.ZodObject<{
|
|
41
|
+
login: z.ZodString;
|
|
42
|
+
id: z.ZodNumber;
|
|
43
|
+
type: z.ZodEnum<{
|
|
44
|
+
User: "User";
|
|
45
|
+
Organization: "Organization";
|
|
46
|
+
}>;
|
|
47
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
48
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}, z.core.$loose>>;
|
|
50
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
51
|
+
default_branch: z.ZodString;
|
|
52
|
+
}, z.core.$loose>;
|
|
53
|
+
/**
|
|
54
|
+
* Push commit schema
|
|
55
|
+
*/
|
|
56
|
+
export declare const PushCommitSchema: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
message: z.ZodString;
|
|
59
|
+
added: z.ZodArray<z.ZodString>;
|
|
60
|
+
removed: z.ZodArray<z.ZodString>;
|
|
61
|
+
modified: z.ZodArray<z.ZodString>;
|
|
62
|
+
}, z.core.$loose>;
|
|
63
|
+
/**
|
|
64
|
+
* Push event payload schema
|
|
65
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#push
|
|
66
|
+
*/
|
|
67
|
+
export declare const PushEventSchema: z.ZodObject<{
|
|
68
|
+
ref: z.ZodString;
|
|
69
|
+
before: z.ZodString;
|
|
70
|
+
after: z.ZodString;
|
|
71
|
+
repository: z.ZodObject<{
|
|
72
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
name: z.ZodOptional<z.ZodString>;
|
|
74
|
+
full_name: z.ZodString;
|
|
75
|
+
private: z.ZodOptional<z.ZodBoolean>;
|
|
76
|
+
owner: z.ZodOptional<z.ZodObject<{
|
|
77
|
+
login: z.ZodString;
|
|
78
|
+
id: z.ZodNumber;
|
|
79
|
+
type: z.ZodEnum<{
|
|
80
|
+
User: "User";
|
|
81
|
+
Organization: "Organization";
|
|
82
|
+
}>;
|
|
83
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
84
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$loose>>;
|
|
86
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
87
|
+
default_branch: z.ZodString;
|
|
88
|
+
}, z.core.$loose>;
|
|
89
|
+
commits: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
90
|
+
id: z.ZodString;
|
|
91
|
+
message: z.ZodString;
|
|
92
|
+
added: z.ZodArray<z.ZodString>;
|
|
93
|
+
removed: z.ZodArray<z.ZodString>;
|
|
94
|
+
modified: z.ZodArray<z.ZodString>;
|
|
95
|
+
}, z.core.$loose>>>;
|
|
96
|
+
}, z.core.$loose>;
|
|
97
|
+
/**
|
|
98
|
+
* Webhook sender schema
|
|
99
|
+
*/
|
|
100
|
+
export declare const WebhookSenderSchema: z.ZodObject<{
|
|
101
|
+
login: z.ZodString;
|
|
102
|
+
id: z.ZodNumber;
|
|
103
|
+
type: z.ZodEnum<{
|
|
104
|
+
User: "User";
|
|
105
|
+
Organization: "Organization";
|
|
106
|
+
Bot: "Bot";
|
|
107
|
+
}>;
|
|
108
|
+
}, z.core.$loose>;
|
|
109
|
+
/**
|
|
110
|
+
* Repository event payload schema
|
|
111
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#repository
|
|
112
|
+
*/
|
|
113
|
+
export declare const RepositoryEventSchema: z.ZodObject<{
|
|
114
|
+
action: z.ZodString;
|
|
115
|
+
repository: z.ZodObject<{
|
|
116
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
117
|
+
name: z.ZodOptional<z.ZodString>;
|
|
118
|
+
full_name: z.ZodString;
|
|
119
|
+
private: z.ZodOptional<z.ZodBoolean>;
|
|
120
|
+
owner: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
login: z.ZodString;
|
|
122
|
+
id: z.ZodNumber;
|
|
123
|
+
type: z.ZodEnum<{
|
|
124
|
+
User: "User";
|
|
125
|
+
Organization: "Organization";
|
|
126
|
+
}>;
|
|
127
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
128
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
129
|
+
}, z.core.$loose>>;
|
|
130
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
131
|
+
default_branch: z.ZodString;
|
|
132
|
+
}, z.core.$loose>;
|
|
133
|
+
sender: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
login: z.ZodString;
|
|
135
|
+
id: z.ZodNumber;
|
|
136
|
+
type: z.ZodEnum<{
|
|
137
|
+
User: "User";
|
|
138
|
+
Organization: "Organization";
|
|
139
|
+
Bot: "Bot";
|
|
140
|
+
}>;
|
|
141
|
+
}, z.core.$loose>>;
|
|
142
|
+
}, z.core.$loose>;
|
|
143
|
+
/**
|
|
144
|
+
* Webhook hook config schema
|
|
145
|
+
*/
|
|
146
|
+
export declare const WebhookHookConfigSchema: z.ZodObject<{
|
|
147
|
+
content_type: z.ZodString;
|
|
148
|
+
insecure_ssl: z.ZodString;
|
|
149
|
+
url: z.ZodString;
|
|
150
|
+
}, z.core.$loose>;
|
|
151
|
+
/**
|
|
152
|
+
* Webhook hook schema
|
|
153
|
+
*/
|
|
154
|
+
export declare const WebhookHookSchema: z.ZodObject<{
|
|
155
|
+
type: z.ZodString;
|
|
156
|
+
id: z.ZodNumber;
|
|
157
|
+
name: z.ZodString;
|
|
158
|
+
active: z.ZodBoolean;
|
|
159
|
+
events: z.ZodArray<z.ZodString>;
|
|
160
|
+
config: z.ZodObject<{
|
|
161
|
+
content_type: z.ZodString;
|
|
162
|
+
insecure_ssl: z.ZodString;
|
|
163
|
+
url: z.ZodString;
|
|
164
|
+
}, z.core.$loose>;
|
|
165
|
+
}, z.core.$loose>;
|
|
166
|
+
/**
|
|
167
|
+
* Ping event payload schema
|
|
168
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#ping
|
|
169
|
+
*/
|
|
170
|
+
export declare const PingEventSchema: z.ZodObject<{
|
|
171
|
+
zen: z.ZodString;
|
|
172
|
+
hook_id: z.ZodNumber;
|
|
173
|
+
hook: z.ZodObject<{
|
|
174
|
+
type: z.ZodString;
|
|
175
|
+
id: z.ZodNumber;
|
|
176
|
+
name: z.ZodString;
|
|
177
|
+
active: z.ZodBoolean;
|
|
178
|
+
events: z.ZodArray<z.ZodString>;
|
|
179
|
+
config: z.ZodObject<{
|
|
180
|
+
content_type: z.ZodString;
|
|
181
|
+
insecure_ssl: z.ZodString;
|
|
182
|
+
url: z.ZodString;
|
|
183
|
+
}, z.core.$loose>;
|
|
184
|
+
}, z.core.$loose>;
|
|
185
|
+
repository: z.ZodOptional<z.ZodObject<{
|
|
186
|
+
id: z.ZodOptional<z.ZodNumber>;
|
|
187
|
+
name: z.ZodOptional<z.ZodString>;
|
|
188
|
+
full_name: z.ZodString;
|
|
189
|
+
private: z.ZodOptional<z.ZodBoolean>;
|
|
190
|
+
owner: z.ZodOptional<z.ZodObject<{
|
|
191
|
+
login: z.ZodString;
|
|
192
|
+
id: z.ZodNumber;
|
|
193
|
+
type: z.ZodEnum<{
|
|
194
|
+
User: "User";
|
|
195
|
+
Organization: "Organization";
|
|
196
|
+
}>;
|
|
197
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
198
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
199
|
+
}, z.core.$loose>>;
|
|
200
|
+
html_url: z.ZodOptional<z.ZodString>;
|
|
201
|
+
default_branch: z.ZodString;
|
|
202
|
+
}, z.core.$loose>>;
|
|
203
|
+
sender: z.ZodOptional<z.ZodObject<{
|
|
204
|
+
login: z.ZodString;
|
|
205
|
+
id: z.ZodNumber;
|
|
206
|
+
type: z.ZodEnum<{
|
|
207
|
+
User: "User";
|
|
208
|
+
Organization: "Organization";
|
|
209
|
+
Bot: "Bot";
|
|
210
|
+
}>;
|
|
211
|
+
}, z.core.$loose>>;
|
|
212
|
+
}, z.core.$loose>;
|
|
213
|
+
//# sourceMappingURL=webhook-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-schemas.d.ts","sourceRoot":"","sources":["../../../src/webhooks/webhook-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB;;GAEG;AACH,eAAO,MAAM,aAAa;;;;iBAMV,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;iBAQlB,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAUpB,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;iBAQb,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQZ,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;iBAMhB,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMlB,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;iBAMpB,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBASd,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQZ,CAAA"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-645: Webhook Schemas - Zod validation schemas for GitHub webhooks
|
|
3
|
+
*
|
|
4
|
+
* SMI-680: Extracted from WebhookPayload.ts to reduce file size.
|
|
5
|
+
*
|
|
6
|
+
* Provides secure payload validation using Zod schemas.
|
|
7
|
+
*
|
|
8
|
+
* @see WebhookPayload.ts for type definitions and helper functions
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// SMI-680: Zod Schemas for secure payload validation
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Git user schema (author/committer)
|
|
16
|
+
*/
|
|
17
|
+
export const GitUserSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
name: z.string(),
|
|
20
|
+
email: z.string(),
|
|
21
|
+
username: z.string().optional(),
|
|
22
|
+
})
|
|
23
|
+
.passthrough();
|
|
24
|
+
/**
|
|
25
|
+
* Repository owner schema
|
|
26
|
+
*/
|
|
27
|
+
export const RepositoryOwnerSchema = z
|
|
28
|
+
.object({
|
|
29
|
+
login: z.string(),
|
|
30
|
+
id: z.number(),
|
|
31
|
+
type: z.enum(['User', 'Organization']),
|
|
32
|
+
avatar_url: z.string().optional(),
|
|
33
|
+
html_url: z.string().optional(),
|
|
34
|
+
})
|
|
35
|
+
.passthrough();
|
|
36
|
+
/**
|
|
37
|
+
* Webhook repository schema - minimum required fields
|
|
38
|
+
*/
|
|
39
|
+
export const WebhookRepositorySchema = z
|
|
40
|
+
.object({
|
|
41
|
+
id: z.number().optional(),
|
|
42
|
+
name: z.string().optional(),
|
|
43
|
+
full_name: z.string(),
|
|
44
|
+
private: z.boolean().optional(),
|
|
45
|
+
owner: RepositoryOwnerSchema.optional(),
|
|
46
|
+
html_url: z.string().optional(),
|
|
47
|
+
default_branch: z.string(),
|
|
48
|
+
})
|
|
49
|
+
.passthrough();
|
|
50
|
+
/**
|
|
51
|
+
* Push commit schema
|
|
52
|
+
*/
|
|
53
|
+
export const PushCommitSchema = z
|
|
54
|
+
.object({
|
|
55
|
+
id: z.string(),
|
|
56
|
+
message: z.string(),
|
|
57
|
+
added: z.array(z.string()),
|
|
58
|
+
removed: z.array(z.string()),
|
|
59
|
+
modified: z.array(z.string()),
|
|
60
|
+
})
|
|
61
|
+
.passthrough();
|
|
62
|
+
/**
|
|
63
|
+
* Push event payload schema
|
|
64
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#push
|
|
65
|
+
*/
|
|
66
|
+
export const PushEventSchema = z
|
|
67
|
+
.object({
|
|
68
|
+
ref: z.string(),
|
|
69
|
+
before: z.string(),
|
|
70
|
+
after: z.string(),
|
|
71
|
+
repository: WebhookRepositorySchema,
|
|
72
|
+
commits: z.array(PushCommitSchema).optional(),
|
|
73
|
+
})
|
|
74
|
+
.passthrough();
|
|
75
|
+
/**
|
|
76
|
+
* Webhook sender schema
|
|
77
|
+
*/
|
|
78
|
+
export const WebhookSenderSchema = z
|
|
79
|
+
.object({
|
|
80
|
+
login: z.string(),
|
|
81
|
+
id: z.number(),
|
|
82
|
+
type: z.enum(['User', 'Organization', 'Bot']),
|
|
83
|
+
})
|
|
84
|
+
.passthrough();
|
|
85
|
+
/**
|
|
86
|
+
* Repository event payload schema
|
|
87
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#repository
|
|
88
|
+
*/
|
|
89
|
+
export const RepositoryEventSchema = z
|
|
90
|
+
.object({
|
|
91
|
+
action: z.string(),
|
|
92
|
+
repository: WebhookRepositorySchema,
|
|
93
|
+
sender: WebhookSenderSchema.optional(),
|
|
94
|
+
})
|
|
95
|
+
.passthrough();
|
|
96
|
+
/**
|
|
97
|
+
* Webhook hook config schema
|
|
98
|
+
*/
|
|
99
|
+
export const WebhookHookConfigSchema = z
|
|
100
|
+
.object({
|
|
101
|
+
content_type: z.string(),
|
|
102
|
+
insecure_ssl: z.string(),
|
|
103
|
+
url: z.string(),
|
|
104
|
+
})
|
|
105
|
+
.passthrough();
|
|
106
|
+
/**
|
|
107
|
+
* Webhook hook schema
|
|
108
|
+
*/
|
|
109
|
+
export const WebhookHookSchema = z
|
|
110
|
+
.object({
|
|
111
|
+
type: z.string(),
|
|
112
|
+
id: z.number(),
|
|
113
|
+
name: z.string(),
|
|
114
|
+
active: z.boolean(),
|
|
115
|
+
events: z.array(z.string()),
|
|
116
|
+
config: WebhookHookConfigSchema,
|
|
117
|
+
})
|
|
118
|
+
.passthrough();
|
|
119
|
+
/**
|
|
120
|
+
* Ping event payload schema
|
|
121
|
+
* @see https://docs.github.com/en/webhooks/webhook-events-and-payloads#ping
|
|
122
|
+
*/
|
|
123
|
+
export const PingEventSchema = z
|
|
124
|
+
.object({
|
|
125
|
+
zen: z.string(),
|
|
126
|
+
hook_id: z.number(),
|
|
127
|
+
hook: WebhookHookSchema,
|
|
128
|
+
repository: WebhookRepositorySchema.optional(),
|
|
129
|
+
sender: WebhookSenderSchema.optional(),
|
|
130
|
+
})
|
|
131
|
+
.passthrough();
|
|
132
|
+
//# sourceMappingURL=webhook-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-schemas.js","sourceRoot":"","sources":["../../../src/webhooks/webhook-schemas.ts"],"names":[],"mappings":"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"}
|