@ameshkin/ticket-mate 0.1.20
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/LICENSE +22 -0
- package/README.md +1214 -0
- package/config/_design-specs.json +39 -0
- package/config/bugs-demo.json +186 -0
- package/config/design-specs.ts +39 -0
- package/config/envSpec.ts +120 -0
- package/config/nav.admin.ts +165 -0
- package/config/nav.main.json +90 -0
- package/config/nav.main.ts +92 -0
- package/package.json +299 -0
- package/public/acceptance-criteria/extractors.d.ts +30 -0
- package/public/acceptance-criteria/extractors.d.ts.map +1 -0
- package/public/acceptance-criteria/extractors.js +133 -0
- package/public/acceptance-criteria/extractors.js.map +1 -0
- package/public/acceptance-criteria/file-discovery.d.ts +22 -0
- package/public/acceptance-criteria/file-discovery.d.ts.map +1 -0
- package/public/acceptance-criteria/file-discovery.js +102 -0
- package/public/acceptance-criteria/file-discovery.js.map +1 -0
- package/public/acceptance-criteria/file-utils.d.ts +29 -0
- package/public/acceptance-criteria/file-utils.d.ts.map +1 -0
- package/public/acceptance-criteria/file-utils.js +103 -0
- package/public/acceptance-criteria/file-utils.js.map +1 -0
- package/public/acceptance-criteria/merger.d.ts +17 -0
- package/public/acceptance-criteria/merger.d.ts.map +1 -0
- package/public/acceptance-criteria/merger.js +73 -0
- package/public/acceptance-criteria/merger.js.map +1 -0
- package/public/acceptance-criteria/sync.d.ts +12 -0
- package/public/acceptance-criteria/sync.d.ts.map +1 -0
- package/public/acceptance-criteria/sync.js +72 -0
- package/public/acceptance-criteria/sync.js.map +1 -0
- package/public/acceptance-criteria/verifier.d.ts +10 -0
- package/public/acceptance-criteria/verifier.d.ts.map +1 -0
- package/public/acceptance-criteria/verifier.js +54 -0
- package/public/acceptance-criteria/verifier.js.map +1 -0
- package/public/ai/agent-handler-integration.d.ts +67 -0
- package/public/ai/agent-handler-integration.d.ts.map +1 -0
- package/public/ai/agent-handler-integration.js +277 -0
- package/public/ai/agent-handler-integration.js.map +1 -0
- package/public/ai/agent-integration.d.ts +96 -0
- package/public/ai/agent-integration.d.ts.map +1 -0
- package/public/ai/agent-integration.js +82 -0
- package/public/ai/agent-integration.js.map +1 -0
- package/public/ai/ai-ready.d.ts +28 -0
- package/public/ai/ai-ready.d.ts.map +1 -0
- package/public/ai/ai-ready.js +70 -0
- package/public/ai/ai-ready.js.map +1 -0
- package/public/ai/executor.d.ts +108 -0
- package/public/ai/executor.d.ts.map +1 -0
- package/public/ai/executor.js +30 -0
- package/public/ai/executor.js.map +1 -0
- package/public/ai/jira-updates.d.ts +25 -0
- package/public/ai/jira-updates.d.ts.map +1 -0
- package/public/ai/jira-updates.js +132 -0
- package/public/ai/jira-updates.js.map +1 -0
- package/public/ai/progress.d.ts +59 -0
- package/public/ai/progress.d.ts.map +1 -0
- package/public/ai/progress.js +92 -0
- package/public/ai/progress.js.map +1 -0
- package/public/ai/repo.d.ts +54 -0
- package/public/ai/repo.d.ts.map +1 -0
- package/public/ai/repo.js +171 -0
- package/public/ai/repo.js.map +1 -0
- package/public/ai/safeguards.d.ts +59 -0
- package/public/ai/safeguards.d.ts.map +1 -0
- package/public/ai/safeguards.js +139 -0
- package/public/ai/safeguards.js.map +1 -0
- package/public/ai/test-runner.d.ts +37 -0
- package/public/ai/test-runner.d.ts.map +1 -0
- package/public/ai/test-runner.js +114 -0
- package/public/ai/test-runner.js.map +1 -0
- package/public/ai/workflow.d.ts +41 -0
- package/public/ai/workflow.d.ts.map +1 -0
- package/public/ai/workflow.js +205 -0
- package/public/ai/workflow.js.map +1 -0
- package/public/app/api/acceptance-criteria/acceptance-criteria.service.d.ts +8 -0
- package/public/app/api/acceptance-criteria/acceptance-criteria.service.d.ts.map +1 -0
- package/public/app/api/acceptance-criteria/acceptance-criteria.service.js +18 -0
- package/public/app/api/acceptance-criteria/acceptance-criteria.service.js.map +1 -0
- package/public/app/api/automation/automation.service.d.ts +20 -0
- package/public/app/api/automation/automation.service.d.ts.map +1 -0
- package/public/app/api/automation/automation.service.js +112 -0
- package/public/app/api/automation/automation.service.js.map +1 -0
- package/public/app/api/automation/bulk-operations.d.ts +41 -0
- package/public/app/api/automation/bulk-operations.d.ts.map +1 -0
- package/public/app/api/automation/bulk-operations.js +146 -0
- package/public/app/api/automation/bulk-operations.js.map +1 -0
- package/public/app/api/automation/fix-now.d.ts +27 -0
- package/public/app/api/automation/fix-now.d.ts.map +1 -0
- package/public/app/api/automation/fix-now.js +82 -0
- package/public/app/api/automation/fix-now.js.map +1 -0
- package/public/app/api/batch/batch.service.d.ts +7 -0
- package/public/app/api/batch/batch.service.d.ts.map +1 -0
- package/public/app/api/batch/batch.service.js +11 -0
- package/public/app/api/batch/batch.service.js.map +1 -0
- package/public/app/api/bugs/bugs-jira.service.d.ts +27 -0
- package/public/app/api/bugs/bugs-jira.service.d.ts.map +1 -0
- package/public/app/api/bugs/bugs-jira.service.js +103 -0
- package/public/app/api/bugs/bugs-jira.service.js.map +1 -0
- package/public/app/api/bugs/bugs.service.d.ts +29 -0
- package/public/app/api/bugs/bugs.service.d.ts.map +1 -0
- package/public/app/api/bugs/bugs.service.js +51 -0
- package/public/app/api/bugs/bugs.service.js.map +1 -0
- package/public/app/api/config/config.service.d.ts +12 -0
- package/public/app/api/config/config.service.d.ts.map +1 -0
- package/public/app/api/config/config.service.js +45 -0
- package/public/app/api/config/config.service.js.map +1 -0
- package/public/app/api/google/google-maps.service.d.ts +30 -0
- package/public/app/api/google/google-maps.service.d.ts.map +1 -0
- package/public/app/api/google/google-maps.service.js +74 -0
- package/public/app/api/google/google-maps.service.js.map +1 -0
- package/public/app/api/google/google-search.service.d.ts +73 -0
- package/public/app/api/google/google-search.service.d.ts.map +1 -0
- package/public/app/api/google/google-search.service.js +83 -0
- package/public/app/api/google/google-search.service.js.map +1 -0
- package/public/app/api/issues/execution.service.d.ts +13 -0
- package/public/app/api/issues/execution.service.d.ts.map +1 -0
- package/public/app/api/issues/execution.service.js +27 -0
- package/public/app/api/issues/execution.service.js.map +1 -0
- package/public/app/api/issues/git.service.d.ts +10 -0
- package/public/app/api/issues/git.service.d.ts.map +1 -0
- package/public/app/api/issues/git.service.js +22 -0
- package/public/app/api/issues/git.service.js.map +1 -0
- package/public/app/api/issues/issues.service.d.ts +14 -0
- package/public/app/api/issues/issues.service.d.ts.map +1 -0
- package/public/app/api/issues/issues.service.js +32 -0
- package/public/app/api/issues/issues.service.js.map +1 -0
- package/public/app/api/jira/jira-auth.service.d.ts +36 -0
- package/public/app/api/jira/jira-auth.service.d.ts.map +1 -0
- package/public/app/api/jira/jira-auth.service.js +89 -0
- package/public/app/api/jira/jira-auth.service.js.map +1 -0
- package/public/app/api/orchestrator/orchestrator-processor.d.ts +32 -0
- package/public/app/api/orchestrator/orchestrator-processor.d.ts.map +1 -0
- package/public/app/api/orchestrator/orchestrator-processor.js +130 -0
- package/public/app/api/orchestrator/orchestrator-processor.js.map +1 -0
- package/public/app/api/orchestrator/orchestrator.service.d.ts +56 -0
- package/public/app/api/orchestrator/orchestrator.service.d.ts.map +1 -0
- package/public/app/api/orchestrator/orchestrator.service.js +91 -0
- package/public/app/api/orchestrator/orchestrator.service.js.map +1 -0
- package/public/app/api/projects/projects.service.d.ts +12 -0
- package/public/app/api/projects/projects.service.d.ts.map +1 -0
- package/public/app/api/projects/projects.service.js +13 -0
- package/public/app/api/projects/projects.service.js.map +1 -0
- package/public/app/api/prompts/pr.service.d.ts +13 -0
- package/public/app/api/prompts/pr.service.d.ts.map +1 -0
- package/public/app/api/prompts/pr.service.js +12 -0
- package/public/app/api/prompts/pr.service.js.map +1 -0
- package/public/app/api/prompts/prompts.service.d.ts +5 -0
- package/public/app/api/prompts/prompts.service.d.ts.map +1 -0
- package/public/app/api/prompts/prompts.service.js +7 -0
- package/public/app/api/prompts/prompts.service.js.map +1 -0
- package/public/app/api/report/api-report.d.ts +60 -0
- package/public/app/api/report/api-report.d.ts.map +1 -0
- package/public/app/api/report/api-report.js +212 -0
- package/public/app/api/report/api-report.js.map +1 -0
- package/public/app/api/research/research.service.d.ts +82 -0
- package/public/app/api/research/research.service.d.ts.map +1 -0
- package/public/app/api/research/research.service.js +115 -0
- package/public/app/api/research/research.service.js.map +1 -0
- package/public/app/api/sync/sync.service.d.ts +11 -0
- package/public/app/api/sync/sync.service.d.ts.map +1 -0
- package/public/app/api/sync/sync.service.js +20 -0
- package/public/app/api/sync/sync.service.js.map +1 -0
- package/public/app/api/task-folders/task-folders.service.d.ts +15 -0
- package/public/app/api/task-folders/task-folders.service.d.ts.map +1 -0
- package/public/app/api/task-folders/task-folders.service.js +27 -0
- package/public/app/api/task-folders/task-folders.service.js.map +1 -0
- package/public/app/api/ticket-mate-config/ticket-mate-config.service.d.ts +129 -0
- package/public/app/api/ticket-mate-config/ticket-mate-config.service.d.ts.map +1 -0
- package/public/app/api/ticket-mate-config/ticket-mate-config.service.js +140 -0
- package/public/app/api/ticket-mate-config/ticket-mate-config.service.js.map +1 -0
- package/public/app/api/webhooks/webhooks.service.d.ts +11 -0
- package/public/app/api/webhooks/webhooks.service.d.ts.map +1 -0
- package/public/app/api/webhooks/webhooks.service.js +12 -0
- package/public/app/api/webhooks/webhooks.service.js.map +1 -0
- package/public/assets/images/logo.jpg +0 -0
- package/public/automation/bugs-sync.d.ts +36 -0
- package/public/automation/bugs-sync.d.ts.map +1 -0
- package/public/automation/bugs-sync.js +234 -0
- package/public/automation/bugs-sync.js.map +1 -0
- package/public/automation/bugs-watcher.d.ts +22 -0
- package/public/automation/bugs-watcher.d.ts.map +1 -0
- package/public/automation/bugs-watcher.js +100 -0
- package/public/automation/bugs-watcher.js.map +1 -0
- package/public/automation/index.d.ts +17 -0
- package/public/automation/index.d.ts.map +1 -0
- package/public/automation/index.js +21 -0
- package/public/automation/index.js.map +1 -0
- package/public/automation/json-reader.d.ts +102 -0
- package/public/automation/json-reader.d.ts.map +1 -0
- package/public/automation/json-reader.js +147 -0
- package/public/automation/json-reader.js.map +1 -0
- package/public/automation/label-assigner.d.ts +54 -0
- package/public/automation/label-assigner.d.ts.map +1 -0
- package/public/automation/label-assigner.js +233 -0
- package/public/automation/label-assigner.js.map +1 -0
- package/public/automation/pattern-learner.d.ts +47 -0
- package/public/automation/pattern-learner.d.ts.map +1 -0
- package/public/automation/pattern-learner.js +192 -0
- package/public/automation/pattern-learner.js.map +1 -0
- package/public/automation/pattern-matcher.d.ts +86 -0
- package/public/automation/pattern-matcher.d.ts.map +1 -0
- package/public/automation/pattern-matcher.js +215 -0
- package/public/automation/pattern-matcher.js.map +1 -0
- package/public/automation/pattern-store.d.ts +32 -0
- package/public/automation/pattern-store.d.ts.map +1 -0
- package/public/automation/pattern-store.js +97 -0
- package/public/automation/pattern-store.js.map +1 -0
- package/public/automation/ticket-creator.d.ts +54 -0
- package/public/automation/ticket-creator.d.ts.map +1 -0
- package/public/automation/ticket-creator.js +267 -0
- package/public/automation/ticket-creator.js.map +1 -0
- package/public/automation/types.d.ts +96 -0
- package/public/automation/types.d.ts.map +1 -0
- package/public/automation/types.js +7 -0
- package/public/automation/types.js.map +1 -0
- package/public/batch/batch-execute.d.ts +88 -0
- package/public/batch/batch-execute.d.ts.map +1 -0
- package/public/batch/batch-execute.js +182 -0
- package/public/batch/batch-execute.js.map +1 -0
- package/public/batch/batch-sync.d.ts +46 -0
- package/public/batch/batch-sync.d.ts.map +1 -0
- package/public/batch/batch-sync.js +83 -0
- package/public/batch/batch-sync.js.map +1 -0
- package/public/cache/cache.d.ts +65 -0
- package/public/cache/cache.d.ts.map +1 -0
- package/public/cache/cache.js +198 -0
- package/public/cache/cache.js.map +1 -0
- package/public/cache/etag.d.ts +51 -0
- package/public/cache/etag.d.ts.map +1 -0
- package/public/cache/etag.js +108 -0
- package/public/cache/etag.js.map +1 -0
- package/public/ci/github-sync.d.ts +92 -0
- package/public/ci/github-sync.d.ts.map +1 -0
- package/public/ci/github-sync.js +166 -0
- package/public/ci/github-sync.js.map +1 -0
- package/public/cli/commands/agent-instruct.d.ts +8 -0
- package/public/cli/commands/agent-instruct.d.ts.map +1 -0
- package/public/cli/commands/agent-instruct.js +138 -0
- package/public/cli/commands/agent-instruct.js.map +1 -0
- package/public/cli/commands/assign-to-cursor.d.ts +8 -0
- package/public/cli/commands/assign-to-cursor.d.ts.map +1 -0
- package/public/cli/commands/assign-to-cursor.js +84 -0
- package/public/cli/commands/assign-to-cursor.js.map +1 -0
- package/public/cli/commands/assign.d.ts +8 -0
- package/public/cli/commands/assign.d.ts.map +1 -0
- package/public/cli/commands/assign.js +84 -0
- package/public/cli/commands/assign.js.map +1 -0
- package/public/cli/commands/auth-check.d.ts +8 -0
- package/public/cli/commands/auth-check.d.ts.map +1 -0
- package/public/cli/commands/auth-check.js +72 -0
- package/public/cli/commands/auth-check.js.map +1 -0
- package/public/cli/commands/autoplay.d.ts +3 -0
- package/public/cli/commands/autoplay.d.ts.map +1 -0
- package/public/cli/commands/autoplay.js +188 -0
- package/public/cli/commands/autoplay.js.map +1 -0
- package/public/cli/commands/batch.d.ts +8 -0
- package/public/cli/commands/batch.d.ts.map +1 -0
- package/public/cli/commands/batch.js +125 -0
- package/public/cli/commands/batch.js.map +1 -0
- package/public/cli/commands/bug-tix.d.ts +9 -0
- package/public/cli/commands/bug-tix.d.ts.map +1 -0
- package/public/cli/commands/bug-tix.js +306 -0
- package/public/cli/commands/bug-tix.js.map +1 -0
- package/public/cli/commands/bugs-create-jira.d.ts +8 -0
- package/public/cli/commands/bugs-create-jira.d.ts.map +1 -0
- package/public/cli/commands/bugs-create-jira.js +113 -0
- package/public/cli/commands/bugs-create-jira.js.map +1 -0
- package/public/cli/commands/bugs-ls.d.ts +8 -0
- package/public/cli/commands/bugs-ls.d.ts.map +1 -0
- package/public/cli/commands/bugs-ls.js +63 -0
- package/public/cli/commands/bugs-ls.js.map +1 -0
- package/public/cli/commands/bugs-open.d.ts +8 -0
- package/public/cli/commands/bugs-open.d.ts.map +1 -0
- package/public/cli/commands/bugs-open.js +69 -0
- package/public/cli/commands/bugs-open.js.map +1 -0
- package/public/cli/commands/bugs-sync.d.ts +8 -0
- package/public/cli/commands/bugs-sync.d.ts.map +1 -0
- package/public/cli/commands/bugs-sync.js +76 -0
- package/public/cli/commands/bugs-sync.js.map +1 -0
- package/public/cli/commands/check-permissions.d.ts +9 -0
- package/public/cli/commands/check-permissions.d.ts.map +1 -0
- package/public/cli/commands/check-permissions.js +180 -0
- package/public/cli/commands/check-permissions.js.map +1 -0
- package/public/cli/commands/check-statuses.d.ts +8 -0
- package/public/cli/commands/check-statuses.d.ts.map +1 -0
- package/public/cli/commands/check-statuses.js +58 -0
- package/public/cli/commands/check-statuses.js.map +1 -0
- package/public/cli/commands/ci-sync.d.ts +8 -0
- package/public/cli/commands/ci-sync.d.ts.map +1 -0
- package/public/cli/commands/ci-sync.js +45 -0
- package/public/cli/commands/ci-sync.js.map +1 -0
- package/public/cli/commands/clone-project.d.ts +11 -0
- package/public/cli/commands/clone-project.d.ts.map +1 -0
- package/public/cli/commands/clone-project.js +139 -0
- package/public/cli/commands/clone-project.js.map +1 -0
- package/public/cli/commands/cloud-projects.d.ts +9 -0
- package/public/cli/commands/cloud-projects.d.ts.map +1 -0
- package/public/cli/commands/cloud-projects.js +164 -0
- package/public/cli/commands/cloud-projects.js.map +1 -0
- package/public/cli/commands/comment.d.ts +8 -0
- package/public/cli/commands/comment.d.ts.map +1 -0
- package/public/cli/commands/comment.js +64 -0
- package/public/cli/commands/comment.js.map +1 -0
- package/public/cli/commands/config-test.d.ts +10 -0
- package/public/cli/commands/config-test.d.ts.map +1 -0
- package/public/cli/commands/config-test.js +92 -0
- package/public/cli/commands/config-test.js.map +1 -0
- package/public/cli/commands/create-board.d.ts +8 -0
- package/public/cli/commands/create-board.d.ts.map +1 -0
- package/public/cli/commands/create-board.js +84 -0
- package/public/cli/commands/create-board.js.map +1 -0
- package/public/cli/commands/create-bug.d.ts +8 -0
- package/public/cli/commands/create-bug.d.ts.map +1 -0
- package/public/cli/commands/create-bug.js +33 -0
- package/public/cli/commands/create-bug.js.map +1 -0
- package/public/cli/commands/create-epic.d.ts +8 -0
- package/public/cli/commands/create-epic.d.ts.map +1 -0
- package/public/cli/commands/create-epic.js +31 -0
- package/public/cli/commands/create-epic.js.map +1 -0
- package/public/cli/commands/create-label.d.ts +8 -0
- package/public/cli/commands/create-label.d.ts.map +1 -0
- package/public/cli/commands/create-label.js +48 -0
- package/public/cli/commands/create-label.js.map +1 -0
- package/public/cli/commands/create-story.d.ts +8 -0
- package/public/cli/commands/create-story.d.ts.map +1 -0
- package/public/cli/commands/create-story.js +33 -0
- package/public/cli/commands/create-story.js.map +1 -0
- package/public/cli/commands/create-task-folder.d.ts +8 -0
- package/public/cli/commands/create-task-folder.d.ts.map +1 -0
- package/public/cli/commands/create-task-folder.js +45 -0
- package/public/cli/commands/create-task-folder.js.map +1 -0
- package/public/cli/commands/create-ticket.d.ts +32 -0
- package/public/cli/commands/create-ticket.d.ts.map +1 -0
- package/public/cli/commands/create-ticket.js +610 -0
- package/public/cli/commands/create-ticket.js.map +1 -0
- package/public/cli/commands/env-check.d.ts +8 -0
- package/public/cli/commands/env-check.d.ts.map +1 -0
- package/public/cli/commands/env-check.js +131 -0
- package/public/cli/commands/env-check.js.map +1 -0
- package/public/cli/commands/env-debug.d.ts +8 -0
- package/public/cli/commands/env-debug.d.ts.map +1 -0
- package/public/cli/commands/env-debug.js +169 -0
- package/public/cli/commands/env-debug.js.map +1 -0
- package/public/cli/commands/execute.d.ts +9 -0
- package/public/cli/commands/execute.d.ts.map +1 -0
- package/public/cli/commands/execute.js +97 -0
- package/public/cli/commands/execute.js.map +1 -0
- package/public/cli/commands/export.d.ts +8 -0
- package/public/cli/commands/export.d.ts.map +1 -0
- package/public/cli/commands/export.js +126 -0
- package/public/cli/commands/export.js.map +1 -0
- package/public/cli/commands/go.d.ts +15 -0
- package/public/cli/commands/go.d.ts.map +1 -0
- package/public/cli/commands/go.js +326 -0
- package/public/cli/commands/go.js.map +1 -0
- package/public/cli/commands/health-check.d.ts +8 -0
- package/public/cli/commands/health-check.d.ts.map +1 -0
- package/public/cli/commands/health-check.js +209 -0
- package/public/cli/commands/health-check.js.map +1 -0
- package/public/cli/commands/import-template.d.ts +8 -0
- package/public/cli/commands/import-template.d.ts.map +1 -0
- package/public/cli/commands/import-template.js +98 -0
- package/public/cli/commands/import-template.js.map +1 -0
- package/public/cli/commands/init-repo.d.ts +8 -0
- package/public/cli/commands/init-repo.d.ts.map +1 -0
- package/public/cli/commands/init-repo.js +112 -0
- package/public/cli/commands/init-repo.js.map +1 -0
- package/public/cli/commands/interactive.d.ts +11 -0
- package/public/cli/commands/interactive.d.ts.map +1 -0
- package/public/cli/commands/interactive.js +124 -0
- package/public/cli/commands/interactive.js.map +1 -0
- package/public/cli/commands/jm-status.d.ts +8 -0
- package/public/cli/commands/jm-status.d.ts.map +1 -0
- package/public/cli/commands/jm-status.js +81 -0
- package/public/cli/commands/jm-status.js.map +1 -0
- package/public/cli/commands/list-jira-projects.d.ts +12 -0
- package/public/cli/commands/list-jira-projects.d.ts.map +1 -0
- package/public/cli/commands/list-jira-projects.js +109 -0
- package/public/cli/commands/list-jira-projects.js.map +1 -0
- package/public/cli/commands/list-tickets.d.ts +9 -0
- package/public/cli/commands/list-tickets.d.ts.map +1 -0
- package/public/cli/commands/list-tickets.js +73 -0
- package/public/cli/commands/list-tickets.js.map +1 -0
- package/public/cli/commands/ls-issues.d.ts +14 -0
- package/public/cli/commands/ls-issues.d.ts.map +1 -0
- package/public/cli/commands/ls-issues.js +54 -0
- package/public/cli/commands/ls-issues.js.map +1 -0
- package/public/cli/commands/ls-projects.d.ts +10 -0
- package/public/cli/commands/ls-projects.d.ts.map +1 -0
- package/public/cli/commands/ls-projects.js +14 -0
- package/public/cli/commands/ls-projects.js.map +1 -0
- package/public/cli/commands/my-tickets.d.ts +8 -0
- package/public/cli/commands/my-tickets.d.ts.map +1 -0
- package/public/cli/commands/my-tickets.js +96 -0
- package/public/cli/commands/my-tickets.js.map +1 -0
- package/public/cli/commands/orc-go.d.ts +3 -0
- package/public/cli/commands/orc-go.d.ts.map +1 -0
- package/public/cli/commands/orc-go.js +272 -0
- package/public/cli/commands/orc-go.js.map +1 -0
- package/public/cli/commands/orc-notes-get.d.ts +3 -0
- package/public/cli/commands/orc-notes-get.d.ts.map +1 -0
- package/public/cli/commands/orc-notes-get.js +78 -0
- package/public/cli/commands/orc-notes-get.js.map +1 -0
- package/public/cli/commands/orc-notes-go.d.ts +3 -0
- package/public/cli/commands/orc-notes-go.d.ts.map +1 -0
- package/public/cli/commands/orc-notes-go.js +182 -0
- package/public/cli/commands/orc-notes-go.js.map +1 -0
- package/public/cli/commands/orc-notes-status.d.ts +3 -0
- package/public/cli/commands/orc-notes-status.d.ts.map +1 -0
- package/public/cli/commands/orc-notes-status.js +89 -0
- package/public/cli/commands/orc-notes-status.js.map +1 -0
- package/public/cli/commands/plan-ticket.d.ts +8 -0
- package/public/cli/commands/plan-ticket.d.ts.map +1 -0
- package/public/cli/commands/plan-ticket.js +61 -0
- package/public/cli/commands/plan-ticket.js.map +1 -0
- package/public/cli/commands/process-bugs.d.ts +8 -0
- package/public/cli/commands/process-bugs.d.ts.map +1 -0
- package/public/cli/commands/process-bugs.js +106 -0
- package/public/cli/commands/process-bugs.js.map +1 -0
- package/public/cli/commands/project-config.d.ts +8 -0
- package/public/cli/commands/project-config.d.ts.map +1 -0
- package/public/cli/commands/project-config.js +172 -0
- package/public/cli/commands/project-config.js.map +1 -0
- package/public/cli/commands/project-info.d.ts +8 -0
- package/public/cli/commands/project-info.d.ts.map +1 -0
- package/public/cli/commands/project-info.js +289 -0
- package/public/cli/commands/project-info.js.map +1 -0
- package/public/cli/commands/project-link-repo.d.ts +8 -0
- package/public/cli/commands/project-link-repo.d.ts.map +1 -0
- package/public/cli/commands/project-link-repo.js +95 -0
- package/public/cli/commands/project-link-repo.js.map +1 -0
- package/public/cli/commands/project-list.d.ts +8 -0
- package/public/cli/commands/project-list.d.ts.map +1 -0
- package/public/cli/commands/project-list.js +44 -0
- package/public/cli/commands/project-list.js.map +1 -0
- package/public/cli/commands/queue.d.ts +8 -0
- package/public/cli/commands/queue.d.ts.map +1 -0
- package/public/cli/commands/queue.js +106 -0
- package/public/cli/commands/queue.js.map +1 -0
- package/public/cli/commands/quick-sync.d.ts +8 -0
- package/public/cli/commands/quick-sync.d.ts.map +1 -0
- package/public/cli/commands/quick-sync.js +105 -0
- package/public/cli/commands/quick-sync.js.map +1 -0
- package/public/cli/commands/replit-test-webhook.d.ts +8 -0
- package/public/cli/commands/replit-test-webhook.d.ts.map +1 -0
- package/public/cli/commands/replit-test-webhook.js +123 -0
- package/public/cli/commands/replit-test-webhook.js.map +1 -0
- package/public/cli/commands/report.d.ts +8 -0
- package/public/cli/commands/report.d.ts.map +1 -0
- package/public/cli/commands/report.js +86 -0
- package/public/cli/commands/report.js.map +1 -0
- package/public/cli/commands/search.d.ts +9 -0
- package/public/cli/commands/search.d.ts.map +1 -0
- package/public/cli/commands/search.js +87 -0
- package/public/cli/commands/search.js.map +1 -0
- package/public/cli/commands/setup-cursor-board.d.ts +8 -0
- package/public/cli/commands/setup-cursor-board.d.ts.map +1 -0
- package/public/cli/commands/setup-cursor-board.js +72 -0
- package/public/cli/commands/setup-cursor-board.js.map +1 -0
- package/public/cli/commands/show-issue.d.ts +8 -0
- package/public/cli/commands/show-issue.d.ts.map +1 -0
- package/public/cli/commands/show-issue.js +71 -0
- package/public/cli/commands/show-issue.js.map +1 -0
- package/public/cli/commands/start-work.d.ts +12 -0
- package/public/cli/commands/start-work.d.ts.map +1 -0
- package/public/cli/commands/start-work.js +281 -0
- package/public/cli/commands/start-work.js.map +1 -0
- package/public/cli/commands/start.d.ts +3 -0
- package/public/cli/commands/start.d.ts.map +1 -0
- package/public/cli/commands/start.js +127 -0
- package/public/cli/commands/start.js.map +1 -0
- package/public/cli/commands/status.d.ts +13 -0
- package/public/cli/commands/status.d.ts.map +1 -0
- package/public/cli/commands/status.js +175 -0
- package/public/cli/commands/status.js.map +1 -0
- package/public/cli/commands/sync-acceptance.d.ts +8 -0
- package/public/cli/commands/sync-acceptance.d.ts.map +1 -0
- package/public/cli/commands/sync-acceptance.js +167 -0
- package/public/cli/commands/sync-acceptance.js.map +1 -0
- package/public/cli/commands/sync-fields.d.ts +8 -0
- package/public/cli/commands/sync-fields.d.ts.map +1 -0
- package/public/cli/commands/sync-fields.js +71 -0
- package/public/cli/commands/sync-fields.js.map +1 -0
- package/public/cli/commands/sync-tickets.d.ts +8 -0
- package/public/cli/commands/sync-tickets.d.ts.map +1 -0
- package/public/cli/commands/sync-tickets.js +203 -0
- package/public/cli/commands/sync-tickets.js.map +1 -0
- package/public/cli/commands/test-workflow.d.ts +8 -0
- package/public/cli/commands/test-workflow.d.ts.map +1 -0
- package/public/cli/commands/test-workflow.js +205 -0
- package/public/cli/commands/test-workflow.js.map +1 -0
- package/public/cli/commands/tickets-list.d.ts +8 -0
- package/public/cli/commands/tickets-list.d.ts.map +1 -0
- package/public/cli/commands/tickets-list.js +346 -0
- package/public/cli/commands/tickets-list.js.map +1 -0
- package/public/cli/commands/transition.d.ts +8 -0
- package/public/cli/commands/transition.d.ts.map +1 -0
- package/public/cli/commands/transition.js +112 -0
- package/public/cli/commands/transition.js.map +1 -0
- package/public/cli/commands/validate-branch.d.ts +5 -0
- package/public/cli/commands/validate-branch.d.ts.map +1 -0
- package/public/cli/commands/validate-branch.js +35 -0
- package/public/cli/commands/validate-branch.js.map +1 -0
- package/public/cli/commands/validate-commit.d.ts +5 -0
- package/public/cli/commands/validate-commit.d.ts.map +1 -0
- package/public/cli/commands/validate-commit.js +38 -0
- package/public/cli/commands/validate-commit.js.map +1 -0
- package/public/cli/commands/watch-bugs.d.ts +8 -0
- package/public/cli/commands/watch-bugs.d.ts.map +1 -0
- package/public/cli/commands/watch-bugs.js +61 -0
- package/public/cli/commands/watch-bugs.js.map +1 -0
- package/public/cli/commands/watch.d.ts +12 -0
- package/public/cli/commands/watch.d.ts.map +1 -0
- package/public/cli/commands/watch.js +193 -0
- package/public/cli/commands/watch.js.map +1 -0
- package/public/cli/commands/webhooks-debug.d.ts +3 -0
- package/public/cli/commands/webhooks-debug.d.ts.map +1 -0
- package/public/cli/commands/webhooks-debug.js +209 -0
- package/public/cli/commands/webhooks-debug.js.map +1 -0
- package/public/cli/commands/workflow.d.ts +8 -0
- package/public/cli/commands/workflow.d.ts.map +1 -0
- package/public/cli/commands/workflow.js +67 -0
- package/public/cli/commands/workflow.js.map +1 -0
- package/public/cli/index.d.ts +7 -0
- package/public/cli/index.d.ts.map +1 -0
- package/public/cli/index.js +375 -0
- package/public/cli/index.js.map +1 -0
- package/public/cli/orchestrator.d.ts +10 -0
- package/public/cli/orchestrator.d.ts.map +1 -0
- package/public/cli/orchestrator.js +183 -0
- package/public/cli/orchestrator.js.map +1 -0
- package/public/cli/project-list.d.ts +9 -0
- package/public/cli/project-list.d.ts.map +1 -0
- package/public/cli/project-list.js +37 -0
- package/public/cli/project-list.js.map +1 -0
- package/public/cli/utils/auth-helper.d.ts +28 -0
- package/public/cli/utils/auth-helper.d.ts.map +1 -0
- package/public/cli/utils/auth-helper.js +83 -0
- package/public/cli/utils/auth-helper.js.map +1 -0
- package/public/cli/utils/get-cli-client.d.ts +13 -0
- package/public/cli/utils/get-cli-client.d.ts.map +1 -0
- package/public/cli/utils/get-cli-client.js +81 -0
- package/public/cli/utils/get-cli-client.js.map +1 -0
- package/public/cli/utils/oauth-cli-helper.d.ts +32 -0
- package/public/cli/utils/oauth-cli-helper.d.ts.map +1 -0
- package/public/cli/utils/oauth-cli-helper.js +226 -0
- package/public/cli/utils/oauth-cli-helper.js.map +1 -0
- package/public/cli/utils/session-reader.d.ts +14 -0
- package/public/cli/utils/session-reader.d.ts.map +1 -0
- package/public/cli/utils/session-reader.js +48 -0
- package/public/cli/utils/session-reader.js.map +1 -0
- package/public/cli/utils/table.d.ts +35 -0
- package/public/cli/utils/table.d.ts.map +1 -0
- package/public/cli/utils/table.js +179 -0
- package/public/cli/utils/table.js.map +1 -0
- package/public/client/errors.d.ts +63 -0
- package/public/client/errors.d.ts.map +1 -0
- package/public/client/errors.js +219 -0
- package/public/client/errors.js.map +1 -0
- package/public/client/jira-client.d.ts +153 -0
- package/public/client/jira-client.d.ts.map +1 -0
- package/public/client/jira-client.js +636 -0
- package/public/client/jira-client.js.map +1 -0
- package/public/client/jira-debug.d.ts +27 -0
- package/public/client/jira-debug.d.ts.map +1 -0
- package/public/client/jira-debug.js +63 -0
- package/public/client/jira-debug.js.map +1 -0
- package/public/client/jira-errors.d.ts +26 -0
- package/public/client/jira-errors.d.ts.map +1 -0
- package/public/client/jira-errors.js +46 -0
- package/public/client/jira-errors.js.map +1 -0
- package/public/client/jira-sprint.d.ts +39 -0
- package/public/client/jira-sprint.d.ts.map +1 -0
- package/public/client/jira-sprint.js +187 -0
- package/public/client/jira-sprint.js.map +1 -0
- package/public/client/jira-user.d.ts +43 -0
- package/public/client/jira-user.d.ts.map +1 -0
- package/public/client/jira-user.js +96 -0
- package/public/client/jira-user.js.map +1 -0
- package/public/client/resolve-reporter.d.ts +27 -0
- package/public/client/resolve-reporter.d.ts.map +1 -0
- package/public/client/resolve-reporter.js +54 -0
- package/public/client/resolve-reporter.js.map +1 -0
- package/public/client/ticket-mate-client.d.ts +202 -0
- package/public/client/ticket-mate-client.d.ts.map +1 -0
- package/public/client/ticket-mate-client.js +280 -0
- package/public/client/ticket-mate-client.js.map +1 -0
- package/public/components/keyboard/CommandPalette.d.ts +2 -0
- package/public/components/keyboard/CommandPalette.d.ts.map +1 -0
- package/public/components/keyboard/CommandPalette.js +123 -0
- package/public/components/keyboard/CommandPalette.js.map +1 -0
- package/public/components/keyboard/GlobalShortcuts.d.ts +2 -0
- package/public/components/keyboard/GlobalShortcuts.d.ts.map +1 -0
- package/public/components/keyboard/GlobalShortcuts.js +32 -0
- package/public/components/keyboard/GlobalShortcuts.js.map +1 -0
- package/public/config/auth-mode.d.ts +38 -0
- package/public/config/auth-mode.d.ts.map +1 -0
- package/public/config/auth-mode.js +125 -0
- package/public/config/auth-mode.js.map +1 -0
- package/public/config/config-loader.d.ts +142 -0
- package/public/config/config-loader.d.ts.map +1 -0
- package/public/config/config-loader.js +247 -0
- package/public/config/config-loader.js.map +1 -0
- package/public/config/config-wizard.d.ts +58 -0
- package/public/config/config-wizard.d.ts.map +1 -0
- package/public/config/config-wizard.js +147 -0
- package/public/config/config-wizard.js.map +1 -0
- package/public/config/config.d.ts +79 -0
- package/public/config/config.d.ts.map +1 -0
- package/public/config/config.js +462 -0
- package/public/config/config.js.map +1 -0
- package/public/config/jira-mate-config.types.d.ts +27 -0
- package/public/config/jira-mate-config.types.d.ts.map +1 -0
- package/public/config/jira-mate-config.types.js +7 -0
- package/public/config/jira-mate-config.types.js.map +1 -0
- package/public/config/jira-pat-config.d.ts +44 -0
- package/public/config/jira-pat-config.d.ts.map +1 -0
- package/public/config/jira-pat-config.js +78 -0
- package/public/config/jira-pat-config.js.map +1 -0
- package/public/config/jiraConnection.d.ts +81 -0
- package/public/config/jiraConnection.d.ts.map +1 -0
- package/public/config/jiraConnection.js +207 -0
- package/public/config/jiraConnection.js.map +1 -0
- package/public/config/jiraCredentials.d.ts +20 -0
- package/public/config/jiraCredentials.d.ts.map +1 -0
- package/public/config/jiraCredentials.js +35 -0
- package/public/config/jiraCredentials.js.map +1 -0
- package/public/config/jiraProject.d.ts +32 -0
- package/public/config/jiraProject.d.ts.map +1 -0
- package/public/config/jiraProject.js +72 -0
- package/public/config/jiraProject.js.map +1 -0
- package/public/config/loadJiraMateConfig.d.ts +24 -0
- package/public/config/loadJiraMateConfig.d.ts.map +1 -0
- package/public/config/loadJiraMateConfig.js +100 -0
- package/public/config/loadJiraMateConfig.js.map +1 -0
- package/public/config/pricing.d.ts +65 -0
- package/public/config/pricing.d.ts.map +1 -0
- package/public/config/pricing.js +166 -0
- package/public/config/pricing.js.map +1 -0
- package/public/config/project-mapping.d.ts +36 -0
- package/public/config/project-mapping.d.ts.map +1 -0
- package/public/config/project-mapping.js +136 -0
- package/public/config/project-mapping.js.map +1 -0
- package/public/config/project-store.d.ts +35 -0
- package/public/config/project-store.d.ts.map +1 -0
- package/public/config/project-store.js +99 -0
- package/public/config/project-store.js.map +1 -0
- package/public/config/scanMonorepo.d.ts +23 -0
- package/public/config/scanMonorepo.d.ts.map +1 -0
- package/public/config/scanMonorepo.js +96 -0
- package/public/config/scanMonorepo.js.map +1 -0
- package/public/config/ticket-mate-config.types.d.ts +139 -0
- package/public/config/ticket-mate-config.types.d.ts.map +1 -0
- package/public/config/ticket-mate-config.types.js +8 -0
- package/public/config/ticket-mate-config.types.js.map +1 -0
- package/public/diff/diff-engine.d.ts +40 -0
- package/public/diff/diff-engine.d.ts.map +1 -0
- package/public/diff/diff-engine.js +222 -0
- package/public/diff/diff-engine.js.map +1 -0
- package/public/export/export.d.ts +67 -0
- package/public/export/export.d.ts.map +1 -0
- package/public/export/export.js +208 -0
- package/public/export/export.js.map +1 -0
- package/public/fast-tasks/index.d.ts +3 -0
- package/public/fast-tasks/index.d.ts.map +1 -0
- package/public/fast-tasks/index.js +3 -0
- package/public/fast-tasks/index.js.map +1 -0
- package/public/fast-tasks/storage.d.ts +38 -0
- package/public/fast-tasks/storage.d.ts.map +1 -0
- package/public/fast-tasks/storage.js +126 -0
- package/public/fast-tasks/storage.js.map +1 -0
- package/public/fast-tasks/types.d.ts +47 -0
- package/public/fast-tasks/types.d.ts.map +1 -0
- package/public/fast-tasks/types.js +7 -0
- package/public/fast-tasks/types.js.map +1 -0
- package/public/fields/field-generators.d.ts +33 -0
- package/public/fields/field-generators.d.ts.map +1 -0
- package/public/fields/field-generators.js +162 -0
- package/public/fields/field-generators.js.map +1 -0
- package/public/fields/field-mapper.d.ts +87 -0
- package/public/fields/field-mapper.d.ts.map +1 -0
- package/public/fields/field-mapper.js +231 -0
- package/public/fields/field-mapper.js.map +1 -0
- package/public/fields/field-sync.d.ts +45 -0
- package/public/fields/field-sync.d.ts.map +1 -0
- package/public/fields/field-sync.js +98 -0
- package/public/fields/field-sync.js.map +1 -0
- package/public/fields/index.d.ts +9 -0
- package/public/fields/index.d.ts.map +1 -0
- package/public/fields/index.js +9 -0
- package/public/fields/index.js.map +1 -0
- package/public/fields/llm-generator.d.ts +28 -0
- package/public/fields/llm-generator.d.ts.map +1 -0
- package/public/fields/llm-generator.js +90 -0
- package/public/fields/llm-generator.js.map +1 -0
- package/public/git/branch-generator.d.ts +40 -0
- package/public/git/branch-generator.d.ts.map +1 -0
- package/public/git/branch-generator.js +93 -0
- package/public/git/branch-generator.js.map +1 -0
- package/public/git/branch-validation.d.ts +28 -0
- package/public/git/branch-validation.d.ts.map +1 -0
- package/public/git/branch-validation.js +97 -0
- package/public/git/branch-validation.js.map +1 -0
- package/public/git/commit-validation.d.ts +32 -0
- package/public/git/commit-validation.d.ts.map +1 -0
- package/public/git/commit-validation.js +90 -0
- package/public/git/commit-validation.js.map +1 -0
- package/public/import/import.d.ts +49 -0
- package/public/import/import.d.ts.map +1 -0
- package/public/import/import.js +193 -0
- package/public/import/import.js.map +1 -0
- package/public/index.d.ts +120 -0
- package/public/index.d.ts.map +1 -0
- package/public/index.js +161 -0
- package/public/index.js.map +1 -0
- package/public/instrumentation.d.ts +8 -0
- package/public/instrumentation.d.ts.map +1 -0
- package/public/instrumentation.js +14 -0
- package/public/instrumentation.js.map +1 -0
- package/public/integrations/orchestrator-client.d.ts +69 -0
- package/public/integrations/orchestrator-client.d.ts.map +1 -0
- package/public/integrations/orchestrator-client.js +151 -0
- package/public/integrations/orchestrator-client.js.map +1 -0
- package/public/integrations/orchestrator-work-trigger.d.ts +54 -0
- package/public/integrations/orchestrator-work-trigger.d.ts.map +1 -0
- package/public/integrations/orchestrator-work-trigger.js +184 -0
- package/public/integrations/orchestrator-work-trigger.js.map +1 -0
- package/public/jira/jiraClient.d.ts +19 -0
- package/public/jira/jiraClient.d.ts.map +1 -0
- package/public/jira/jiraClient.js +144 -0
- package/public/jira/jiraClient.js.map +1 -0
- package/public/jira-management/boards.d.ts +80 -0
- package/public/jira-management/boards.d.ts.map +1 -0
- package/public/jira-management/boards.js +306 -0
- package/public/jira-management/boards.js.map +1 -0
- package/public/jira-management/cursor-board.d.ts +37 -0
- package/public/jira-management/cursor-board.d.ts.map +1 -0
- package/public/jira-management/cursor-board.js +222 -0
- package/public/jira-management/cursor-board.js.map +1 -0
- package/public/jira-management/custom-fields.d.ts +32 -0
- package/public/jira-management/custom-fields.d.ts.map +1 -0
- package/public/jira-management/custom-fields.js +94 -0
- package/public/jira-management/custom-fields.js.map +1 -0
- package/public/jira-management/epics.d.ts +25 -0
- package/public/jira-management/epics.d.ts.map +1 -0
- package/public/jira-management/epics.js +98 -0
- package/public/jira-management/epics.js.map +1 -0
- package/public/jira-management/index.d.ts +19 -0
- package/public/jira-management/index.d.ts.map +1 -0
- package/public/jira-management/index.js +19 -0
- package/public/jira-management/index.js.map +1 -0
- package/public/jira-management/labels.d.ts +35 -0
- package/public/jira-management/labels.d.ts.map +1 -0
- package/public/jira-management/labels.js +153 -0
- package/public/jira-management/labels.js.map +1 -0
- package/public/jira-management/project-templates.d.ts +48 -0
- package/public/jira-management/project-templates.d.ts.map +1 -0
- package/public/jira-management/project-templates.js +120 -0
- package/public/jira-management/project-templates.js.map +1 -0
- package/public/jira-management/projects.d.ts +45 -0
- package/public/jira-management/projects.d.ts.map +1 -0
- package/public/jira-management/projects.js +127 -0
- package/public/jira-management/projects.js.map +1 -0
- package/public/jira-management/statuses.d.ts +46 -0
- package/public/jira-management/statuses.d.ts.map +1 -0
- package/public/jira-management/statuses.js +116 -0
- package/public/jira-management/statuses.js.map +1 -0
- package/public/jira-management/templates.d.ts +68 -0
- package/public/jira-management/templates.d.ts.map +1 -0
- package/public/jira-management/templates.js +244 -0
- package/public/jira-management/templates.js.map +1 -0
- package/public/jira-management/workflow-columns.d.ts +43 -0
- package/public/jira-management/workflow-columns.d.ts.map +1 -0
- package/public/jira-management/workflow-columns.js +195 -0
- package/public/jira-management/workflow-columns.js.map +1 -0
- package/public/jira-notes/index.d.ts +3 -0
- package/public/jira-notes/index.d.ts.map +1 -0
- package/public/jira-notes/index.js +5 -0
- package/public/jira-notes/index.js.map +1 -0
- package/public/jira-notes/lib/jiraNotesClient.d.ts +18 -0
- package/public/jira-notes/lib/jiraNotesClient.d.ts.map +1 -0
- package/public/jira-notes/lib/jiraNotesClient.js +61 -0
- package/public/jira-notes/lib/jiraNotesClient.js.map +1 -0
- package/public/jira-notes/lib/jiraNotesTypes.d.ts +28 -0
- package/public/jira-notes/lib/jiraNotesTypes.d.ts.map +1 -0
- package/public/jira-notes/lib/jiraNotesTypes.js +2 -0
- package/public/jira-notes/lib/jiraNotesTypes.js.map +1 -0
- package/public/lib/ai/ai-errors.d.ts +49 -0
- package/public/lib/ai/ai-errors.d.ts.map +1 -0
- package/public/lib/ai/ai-errors.js +115 -0
- package/public/lib/ai/ai-errors.js.map +1 -0
- package/public/lib/ai/llmRouter.d.ts +56 -0
- package/public/lib/ai/llmRouter.d.ts.map +1 -0
- package/public/lib/ai/llmRouter.js +190 -0
- package/public/lib/ai/llmRouter.js.map +1 -0
- package/public/lib/ai/models.d.ts +56 -0
- package/public/lib/ai/models.d.ts.map +1 -0
- package/public/lib/ai/models.js +84 -0
- package/public/lib/ai/models.js.map +1 -0
- package/public/lib/ai/openaiClient.d.ts +31 -0
- package/public/lib/ai/openaiClient.d.ts.map +1 -0
- package/public/lib/ai/openaiClient.js +92 -0
- package/public/lib/ai/openaiClient.js.map +1 -0
- package/public/lib/ai/planLimits.d.ts +43 -0
- package/public/lib/ai/planLimits.d.ts.map +1 -0
- package/public/lib/ai/planLimits.js +154 -0
- package/public/lib/ai/planLimits.js.map +1 -0
- package/public/lib/ai/priceConfig.d.ts +53 -0
- package/public/lib/ai/priceConfig.d.ts.map +1 -0
- package/public/lib/ai/priceConfig.js +111 -0
- package/public/lib/ai/priceConfig.js.map +1 -0
- package/public/lib/ai/provider.d.ts +63 -0
- package/public/lib/ai/provider.d.ts.map +1 -0
- package/public/lib/ai/provider.js +199 -0
- package/public/lib/ai/provider.js.map +1 -0
- package/public/lib/ai/replitClient.d.ts +44 -0
- package/public/lib/ai/replitClient.d.ts.map +1 -0
- package/public/lib/ai/replitClient.js +88 -0
- package/public/lib/ai/replitClient.js.map +1 -0
- package/public/lib/ai/usageLogger.d.ts +30 -0
- package/public/lib/ai/usageLogger.d.ts.map +1 -0
- package/public/lib/ai/usageLogger.js +113 -0
- package/public/lib/ai/usageLogger.js.map +1 -0
- package/public/lib/auth/debug.d.ts +3 -0
- package/public/lib/auth/debug.d.ts.map +1 -0
- package/public/lib/auth/debug.js +12 -0
- package/public/lib/auth/debug.js.map +1 -0
- package/public/lib/auth/index.d.ts +2 -0
- package/public/lib/auth/index.d.ts.map +1 -0
- package/public/lib/auth/index.js +2 -0
- package/public/lib/auth/index.js.map +1 -0
- package/public/lib/auth/options.d.ts +16 -0
- package/public/lib/auth/options.d.ts.map +1 -0
- package/public/lib/auth/options.js +893 -0
- package/public/lib/auth/options.js.map +1 -0
- package/public/lib/auth/requireAuthPage.d.ts +23 -0
- package/public/lib/auth/requireAuthPage.d.ts.map +1 -0
- package/public/lib/auth/requireAuthPage.js +33 -0
- package/public/lib/auth/requireAuthPage.js.map +1 -0
- package/public/lib/auth/superadmin.d.ts +20 -0
- package/public/lib/auth/superadmin.d.ts.map +1 -0
- package/public/lib/auth/superadmin.js +40 -0
- package/public/lib/auth/superadmin.js.map +1 -0
- package/public/lib/auth/token-mutex.d.ts +20 -0
- package/public/lib/auth/token-mutex.d.ts.map +1 -0
- package/public/lib/auth/token-mutex.js +36 -0
- package/public/lib/auth/token-mutex.js.map +1 -0
- package/public/lib/automation/engine.d.ts +12 -0
- package/public/lib/automation/engine.d.ts.map +1 -0
- package/public/lib/automation/engine.js +150 -0
- package/public/lib/automation/engine.js.map +1 -0
- package/public/lib/dashboard-widgets.d.ts +22 -0
- package/public/lib/dashboard-widgets.d.ts.map +1 -0
- package/public/lib/dashboard-widgets.js +99 -0
- package/public/lib/dashboard-widgets.js.map +1 -0
- package/public/lib/data/templates/index.d.ts +16 -0
- package/public/lib/data/templates/index.d.ts.map +1 -0
- package/public/lib/data/templates/index.js +37 -0
- package/public/lib/data/templates/index.js.map +1 -0
- package/public/lib/data/templates/it-service.json +122 -0
- package/public/lib/data/templates/marketing.json +122 -0
- package/public/lib/data/templates/software.json +122 -0
- package/public/lib/docs.d.ts +14 -0
- package/public/lib/docs.d.ts.map +1 -0
- package/public/lib/docs.js +87 -0
- package/public/lib/docs.js.map +1 -0
- package/public/lib/email/client.d.ts +18 -0
- package/public/lib/email/client.d.ts.map +1 -0
- package/public/lib/email/client.js +31 -0
- package/public/lib/email/client.js.map +1 -0
- package/public/lib/email/templates/TeamInviteEmail.d.ts +12 -0
- package/public/lib/email/templates/TeamInviteEmail.d.ts.map +1 -0
- package/public/lib/email/templates/TeamInviteEmail.js +12 -0
- package/public/lib/email/templates/TeamInviteEmail.js.map +1 -0
- package/public/lib/encryption/webhook-encryption.d.ts +11 -0
- package/public/lib/encryption/webhook-encryption.d.ts.map +1 -0
- package/public/lib/encryption/webhook-encryption.js +46 -0
- package/public/lib/encryption/webhook-encryption.js.map +1 -0
- package/public/lib/encryption.d.ts +17 -0
- package/public/lib/encryption.d.ts.map +1 -0
- package/public/lib/encryption.js +65 -0
- package/public/lib/encryption.js.map +1 -0
- package/public/lib/env/baseUrl.d.ts +34 -0
- package/public/lib/env/baseUrl.d.ts.map +1 -0
- package/public/lib/env/baseUrl.js +51 -0
- package/public/lib/env/baseUrl.js.map +1 -0
- package/public/lib/env/externalUrl.d.ts +34 -0
- package/public/lib/env/externalUrl.d.ts.map +1 -0
- package/public/lib/env/externalUrl.js +66 -0
- package/public/lib/env/externalUrl.js.map +1 -0
- package/public/lib/env/server.d.ts +26 -0
- package/public/lib/env/server.d.ts.map +1 -0
- package/public/lib/env/server.js +45 -0
- package/public/lib/env/server.js.map +1 -0
- package/public/lib/env.d.ts +75 -0
- package/public/lib/env.d.ts.map +1 -0
- package/public/lib/env.js +108 -0
- package/public/lib/env.js.map +1 -0
- package/public/lib/events/jira-connect-events.d.ts +47 -0
- package/public/lib/events/jira-connect-events.d.ts.map +1 -0
- package/public/lib/events/jira-connect-events.js +104 -0
- package/public/lib/events/jira-connect-events.js.map +1 -0
- package/public/lib/git/local.d.ts +27 -0
- package/public/lib/git/local.d.ts.map +1 -0
- package/public/lib/git/local.js +100 -0
- package/public/lib/git/local.js.map +1 -0
- package/public/lib/git/remote.d.ts +18 -0
- package/public/lib/git/remote.d.ts.map +1 -0
- package/public/lib/git/remote.js +92 -0
- package/public/lib/git/remote.js.map +1 -0
- package/public/lib/github/user-client.d.ts +8 -0
- package/public/lib/github/user-client.d.ts.map +1 -0
- package/public/lib/github/user-client.js +23 -0
- package/public/lib/github/user-client.js.map +1 -0
- package/public/lib/github-public.d.ts +37 -0
- package/public/lib/github-public.d.ts.map +1 -0
- package/public/lib/github-public.js +120 -0
- package/public/lib/github-public.js.map +1 -0
- package/public/lib/integrations/teams/auth.d.ts +14 -0
- package/public/lib/integrations/teams/auth.d.ts.map +1 -0
- package/public/lib/integrations/teams/auth.js +46 -0
- package/public/lib/integrations/teams/auth.js.map +1 -0
- package/public/lib/integrations/teams/event-router.d.ts +15 -0
- package/public/lib/integrations/teams/event-router.d.ts.map +1 -0
- package/public/lib/integrations/teams/event-router.js +122 -0
- package/public/lib/integrations/teams/event-router.js.map +1 -0
- package/public/lib/integrations/teams/message-builder.d.ts +5 -0
- package/public/lib/integrations/teams/message-builder.d.ts.map +1 -0
- package/public/lib/integrations/teams/message-builder.js +19 -0
- package/public/lib/integrations/teams/message-builder.js.map +1 -0
- package/public/lib/integrations/teams/templates.d.ts +237 -0
- package/public/lib/integrations/teams/templates.d.ts.map +1 -0
- package/public/lib/integrations/teams/templates.js +237 -0
- package/public/lib/integrations/teams/templates.js.map +1 -0
- package/public/lib/integrations/teams/transformer.d.ts +39 -0
- package/public/lib/integrations/teams/transformer.d.ts.map +1 -0
- package/public/lib/integrations/teams/transformer.js +83 -0
- package/public/lib/integrations/teams/transformer.js.map +1 -0
- package/public/lib/integrations.d.ts +28 -0
- package/public/lib/integrations.d.ts.map +1 -0
- package/public/lib/integrations.js +40 -0
- package/public/lib/integrations.js.map +1 -0
- package/public/lib/invite/accept.d.ts +30 -0
- package/public/lib/invite/accept.d.ts.map +1 -0
- package/public/lib/invite/accept.js +196 -0
- package/public/lib/invite/accept.js.map +1 -0
- package/public/lib/invite/service.d.ts +11 -0
- package/public/lib/invite/service.d.ts.map +1 -0
- package/public/lib/invite/service.js +87 -0
- package/public/lib/invite/service.js.map +1 -0
- package/public/lib/invite/types.d.ts +19 -0
- package/public/lib/invite/types.d.ts.map +1 -0
- package/public/lib/invite/types.js +2 -0
- package/public/lib/invite/types.js.map +1 -0
- package/public/lib/jql/jqlBuilder.d.ts +47 -0
- package/public/lib/jql/jqlBuilder.d.ts.map +1 -0
- package/public/lib/jql/jqlBuilder.js +258 -0
- package/public/lib/jql/jqlBuilder.js.map +1 -0
- package/public/lib/jql/useJqlBuilder.d.ts +12 -0
- package/public/lib/jql/useJqlBuilder.d.ts.map +1 -0
- package/public/lib/jql/useJqlBuilder.js +97 -0
- package/public/lib/jql/useJqlBuilder.js.map +1 -0
- package/public/lib/keyboard/ShortcutContext.d.ts +7 -0
- package/public/lib/keyboard/ShortcutContext.d.ts.map +1 -0
- package/public/lib/keyboard/ShortcutContext.js +37 -0
- package/public/lib/keyboard/ShortcutContext.js.map +1 -0
- package/public/lib/keyboard/types.d.ts +22 -0
- package/public/lib/keyboard/types.d.ts.map +1 -0
- package/public/lib/keyboard/types.js +2 -0
- package/public/lib/keyboard/types.js.map +1 -0
- package/public/lib/keyboard/useShortcut.d.ts +12 -0
- package/public/lib/keyboard/useShortcut.d.ts.map +1 -0
- package/public/lib/keyboard/useShortcut.js +55 -0
- package/public/lib/keyboard/useShortcut.js.map +1 -0
- package/public/lib/markdown/fallback-handler.d.ts +25 -0
- package/public/lib/markdown/fallback-handler.d.ts.map +1 -0
- package/public/lib/markdown/fallback-handler.js +104 -0
- package/public/lib/markdown/fallback-handler.js.map +1 -0
- package/public/lib/notifications-cli.d.ts +16 -0
- package/public/lib/notifications-cli.d.ts.map +1 -0
- package/public/lib/notifications-cli.js +36 -0
- package/public/lib/notifications-cli.js.map +1 -0
- package/public/lib/notifications.d.ts +77 -0
- package/public/lib/notifications.d.ts.map +1 -0
- package/public/lib/notifications.js +161 -0
- package/public/lib/notifications.js.map +1 -0
- package/public/lib/ollama.d.ts +94 -0
- package/public/lib/ollama.d.ts.map +1 -0
- package/public/lib/ollama.js +249 -0
- package/public/lib/ollama.js.map +1 -0
- package/public/lib/orcMcp/client.d.ts +55 -0
- package/public/lib/orcMcp/client.d.ts.map +1 -0
- package/public/lib/orcMcp/client.js +134 -0
- package/public/lib/orcMcp/client.js.map +1 -0
- package/public/lib/orcMcp/execution.d.ts +24 -0
- package/public/lib/orcMcp/execution.d.ts.map +1 -0
- package/public/lib/orcMcp/execution.js +19 -0
- package/public/lib/orcMcp/execution.js.map +1 -0
- package/public/lib/password.d.ts +12 -0
- package/public/lib/password.d.ts.map +1 -0
- package/public/lib/password.js +18 -0
- package/public/lib/password.js.map +1 -0
- package/public/lib/platform-event-bus.d.ts +15 -0
- package/public/lib/platform-event-bus.d.ts.map +1 -0
- package/public/lib/platform-event-bus.js +46 -0
- package/public/lib/platform-event-bus.js.map +1 -0
- package/public/lib/prisma.d.ts +23 -0
- package/public/lib/prisma.d.ts.map +1 -0
- package/public/lib/prisma.js +135 -0
- package/public/lib/prisma.js.map +1 -0
- package/public/lib/projects.d.ts +38 -0
- package/public/lib/projects.d.ts.map +1 -0
- package/public/lib/projects.js +91 -0
- package/public/lib/projects.js.map +1 -0
- package/public/lib/soft-failure.d.ts +38 -0
- package/public/lib/soft-failure.d.ts.map +1 -0
- package/public/lib/soft-failure.js +46 -0
- package/public/lib/soft-failure.js.map +1 -0
- package/public/lib/ticket-mate/dataLoader.d.ts +52 -0
- package/public/lib/ticket-mate/dataLoader.d.ts.map +1 -0
- package/public/lib/ticket-mate/dataLoader.js +128 -0
- package/public/lib/ticket-mate/dataLoader.js.map +1 -0
- package/public/lib/ticket-mate/filtering.d.ts +33 -0
- package/public/lib/ticket-mate/filtering.d.ts.map +1 -0
- package/public/lib/ticket-mate/filtering.js +190 -0
- package/public/lib/ticket-mate/filtering.js.map +1 -0
- package/public/lib/ticket-mate/logging.d.ts +42 -0
- package/public/lib/ticket-mate/logging.d.ts.map +1 -0
- package/public/lib/ticket-mate/logging.js +83 -0
- package/public/lib/ticket-mate/logging.js.map +1 -0
- package/public/lib/ticket-mate/repoRoot.d.ts +15 -0
- package/public/lib/ticket-mate/repoRoot.d.ts.map +1 -0
- package/public/lib/ticket-mate/repoRoot.js +34 -0
- package/public/lib/ticket-mate/repoRoot.js.map +1 -0
- package/public/lib/webhook-events-store.d.ts +23 -0
- package/public/lib/webhook-events-store.d.ts.map +1 -0
- package/public/lib/webhook-events-store.js +39 -0
- package/public/lib/webhook-events-store.js.map +1 -0
- package/public/lib/webhook-notifications.d.ts +32 -0
- package/public/lib/webhook-notifications.d.ts.map +1 -0
- package/public/lib/webhook-notifications.js +107 -0
- package/public/lib/webhook-notifications.js.map +1 -0
- package/public/lib/webhooks/delivery.d.ts +11 -0
- package/public/lib/webhooks/delivery.d.ts.map +1 -0
- package/public/lib/webhooks/delivery.js +54 -0
- package/public/lib/webhooks/delivery.js.map +1 -0
- package/public/lib/workflow-compiler.d.ts +6 -0
- package/public/lib/workflow-compiler.d.ts.map +1 -0
- package/public/lib/workflow-compiler.js +110 -0
- package/public/lib/workflow-compiler.js.map +1 -0
- package/public/observability/metrics.d.ts +52 -0
- package/public/observability/metrics.d.ts.map +1 -0
- package/public/observability/metrics.js +177 -0
- package/public/observability/metrics.js.map +1 -0
- package/public/pr/pr-builder.d.ts +16 -0
- package/public/pr/pr-builder.d.ts.map +1 -0
- package/public/pr/pr-builder.js +117 -0
- package/public/pr/pr-builder.js.map +1 -0
- package/public/progress/task-manager.d.ts +53 -0
- package/public/progress/task-manager.d.ts.map +1 -0
- package/public/progress/task-manager.js +204 -0
- package/public/progress/task-manager.js.map +1 -0
- package/public/progress/template.d.ts +38 -0
- package/public/progress/template.d.ts.map +1 -0
- package/public/progress/template.js +232 -0
- package/public/progress/template.js.map +1 -0
- package/public/prompts/prompt-builder.d.ts +11 -0
- package/public/prompts/prompt-builder.d.ts.map +1 -0
- package/public/prompts/prompt-builder.js +161 -0
- package/public/prompts/prompt-builder.js.map +1 -0
- package/public/research/types.d.ts +158 -0
- package/public/research/types.d.ts.map +1 -0
- package/public/research/types.js +5 -0
- package/public/research/types.js.map +1 -0
- package/public/scripts/seed-epics.d.ts +2 -0
- package/public/scripts/seed-epics.d.ts.map +1 -0
- package/public/scripts/seed-epics.js +88 -0
- package/public/scripts/seed-epics.js.map +1 -0
- package/public/search/search-engine.d.ts +75 -0
- package/public/search/search-engine.d.ts.map +1 -0
- package/public/search/search-engine.js +176 -0
- package/public/search/search-engine.js.map +1 -0
- package/public/server/auth/account-provisioning.d.ts +16 -0
- package/public/server/auth/account-provisioning.d.ts.map +1 -0
- package/public/server/auth/account-provisioning.js +109 -0
- package/public/server/auth/account-provisioning.js.map +1 -0
- package/public/server/auth/atlassian-user-mapping.d.ts +36 -0
- package/public/server/auth/atlassian-user-mapping.d.ts.map +1 -0
- package/public/server/auth/atlassian-user-mapping.js +97 -0
- package/public/server/auth/atlassian-user-mapping.js.map +1 -0
- package/public/server/auth.d.ts +14 -0
- package/public/server/auth.d.ts.map +1 -0
- package/public/server/auth.js +35 -0
- package/public/server/auth.js.map +1 -0
- package/public/server/jira/client.d.ts +17 -0
- package/public/server/jira/client.d.ts.map +1 -0
- package/public/server/jira/client.js +55 -0
- package/public/server/jira/client.js.map +1 -0
- package/public/server/jira/cloudInfo.d.ts +30 -0
- package/public/server/jira/cloudInfo.d.ts.map +1 -0
- package/public/server/jira/cloudInfo.js +152 -0
- package/public/server/jira/cloudInfo.js.map +1 -0
- package/public/server/jira/ensure-user.d.ts +20 -0
- package/public/server/jira/ensure-user.d.ts.map +1 -0
- package/public/server/jira/ensure-user.js +59 -0
- package/public/server/jira/ensure-user.js.map +1 -0
- package/public/server/jira/errors.d.ts +18 -0
- package/public/server/jira/errors.d.ts.map +1 -0
- package/public/server/jira/errors.js +30 -0
- package/public/server/jira/errors.js.map +1 -0
- package/public/server/jira/fieldResolver.d.ts +76 -0
- package/public/server/jira/fieldResolver.d.ts.map +1 -0
- package/public/server/jira/fieldResolver.js +320 -0
- package/public/server/jira/fieldResolver.js.map +1 -0
- package/public/server/jira/jiraClient.d.ts +84 -0
- package/public/server/jira/jiraClient.d.ts.map +1 -0
- package/public/server/jira/jiraClient.js +330 -0
- package/public/server/jira/jiraClient.js.map +1 -0
- package/public/server/jira/tokens.d.ts +37 -0
- package/public/server/jira/tokens.d.ts.map +1 -0
- package/public/server/jira/tokens.js +161 -0
- package/public/server/jira/tokens.js.map +1 -0
- package/public/server/jira/unified-client.d.ts +48 -0
- package/public/server/jira/unified-client.d.ts.map +1 -0
- package/public/server/jira/unified-client.js +227 -0
- package/public/server/jira/unified-client.js.map +1 -0
- package/public/server/mcp/execution.d.ts +22 -0
- package/public/server/mcp/execution.d.ts.map +1 -0
- package/public/server/mcp/execution.js +15 -0
- package/public/server/mcp/execution.js.map +1 -0
- package/public/server/openai/client.d.ts +23 -0
- package/public/server/openai/client.d.ts.map +1 -0
- package/public/server/openai/client.js +43 -0
- package/public/server/openai/client.js.map +1 -0
- package/public/server/startup/orcMcpHealthCheck.d.ts +8 -0
- package/public/server/startup/orcMcpHealthCheck.d.ts.map +1 -0
- package/public/server/startup/orcMcpHealthCheck.js +24 -0
- package/public/server/startup/orcMcpHealthCheck.js.map +1 -0
- package/public/services/config.service.d.ts +2 -0
- package/public/services/config.service.d.ts.map +1 -0
- package/public/services/config.service.js +3 -0
- package/public/services/config.service.js.map +1 -0
- package/public/services/index.d.ts +20 -0
- package/public/services/index.d.ts.map +1 -0
- package/public/services/index.js +21 -0
- package/public/services/index.js.map +1 -0
- package/public/services/issues.service.d.ts +2 -0
- package/public/services/issues.service.d.ts.map +1 -0
- package/public/services/issues.service.js +3 -0
- package/public/services/issues.service.js.map +1 -0
- package/public/services/jiraBootstrap.d.ts +18 -0
- package/public/services/jiraBootstrap.d.ts.map +1 -0
- package/public/services/jiraBootstrap.js +288 -0
- package/public/services/jiraBootstrap.js.map +1 -0
- package/public/services/jiraProjectCheck.d.ts +60 -0
- package/public/services/jiraProjectCheck.d.ts.map +1 -0
- package/public/services/jiraProjectCheck.js +264 -0
- package/public/services/jiraProjectCheck.js.map +1 -0
- package/public/services/prompts.service.d.ts +2 -0
- package/public/services/prompts.service.d.ts.map +1 -0
- package/public/services/prompts.service.js +3 -0
- package/public/services/prompts.service.js.map +1 -0
- package/public/services/sync.service.d.ts +2 -0
- package/public/services/sync.service.d.ts.map +1 -0
- package/public/services/sync.service.js +3 -0
- package/public/services/sync.service.js.map +1 -0
- package/public/shared/migrations/bugsMigrations.d.ts +46 -0
- package/public/shared/migrations/bugsMigrations.d.ts.map +1 -0
- package/public/shared/migrations/bugsMigrations.js +252 -0
- package/public/shared/migrations/bugsMigrations.js.map +1 -0
- package/public/shared/migrations/ticketMateMigrations.d.ts +53 -0
- package/public/shared/migrations/ticketMateMigrations.d.ts.map +1 -0
- package/public/shared/migrations/ticketMateMigrations.js +223 -0
- package/public/shared/migrations/ticketMateMigrations.js.map +1 -0
- package/public/shared/ticketMateHelpers.d.ts +46 -0
- package/public/shared/ticketMateHelpers.d.ts.map +1 -0
- package/public/shared/ticketMateHelpers.js +197 -0
- package/public/shared/ticketMateHelpers.js.map +1 -0
- package/public/shared/ticketMateProjectLinks.d.ts +27 -0
- package/public/shared/ticketMateProjectLinks.d.ts.map +1 -0
- package/public/shared/ticketMateProjectLinks.js +64 -0
- package/public/shared/ticketMateProjectLinks.js.map +1 -0
- package/public/shared/ticketMateTypes.d.ts +155 -0
- package/public/shared/ticketMateTypes.d.ts.map +1 -0
- package/public/shared/ticketMateTypes.js +56 -0
- package/public/shared/ticketMateTypes.js.map +1 -0
- package/public/sync/authoritative-sync.d.ts +111 -0
- package/public/sync/authoritative-sync.d.ts.map +1 -0
- package/public/sync/authoritative-sync.js +459 -0
- package/public/sync/authoritative-sync.js.map +1 -0
- package/public/sync/ensure-jira-before-md.d.ts +34 -0
- package/public/sync/ensure-jira-before-md.d.ts.map +1 -0
- package/public/sync/ensure-jira-before-md.js +40 -0
- package/public/sync/ensure-jira-before-md.js.map +1 -0
- package/public/sync/epic-sync.d.ts +23 -0
- package/public/sync/epic-sync.d.ts.map +1 -0
- package/public/sync/epic-sync.js +77 -0
- package/public/sync/epic-sync.js.map +1 -0
- package/public/sync/index.d.ts +11 -0
- package/public/sync/index.d.ts.map +1 -0
- package/public/sync/index.js +92 -0
- package/public/sync/index.js.map +1 -0
- package/public/sync/reports.d.ts +9 -0
- package/public/sync/reports.d.ts.map +1 -0
- package/public/sync/reports.js +55 -0
- package/public/sync/reports.js.map +1 -0
- package/public/sync/status.d.ts +31 -0
- package/public/sync/status.d.ts.map +1 -0
- package/public/sync/status.js +100 -0
- package/public/sync/status.js.map +1 -0
- package/public/sync/sync-engine.d.ts +38 -0
- package/public/sync/sync-engine.d.ts.map +1 -0
- package/public/sync/sync-engine.js +166 -0
- package/public/sync/sync-engine.js.map +1 -0
- package/public/sync/ticket-sync.d.ts +25 -0
- package/public/sync/ticket-sync.d.ts.map +1 -0
- package/public/sync/ticket-sync.js +148 -0
- package/public/sync/ticket-sync.js.map +1 -0
- package/public/templates/template-engine.d.ts +86 -0
- package/public/templates/template-engine.d.ts.map +1 -0
- package/public/templates/template-engine.js +214 -0
- package/public/templates/template-engine.js.map +1 -0
- package/public/ticket-mate/bugs/loader.d.ts +30 -0
- package/public/ticket-mate/bugs/loader.d.ts.map +1 -0
- package/public/ticket-mate/bugs/loader.js +242 -0
- package/public/ticket-mate/bugs/loader.js.map +1 -0
- package/public/ticket-mate/bugs/paths.d.ts +12 -0
- package/public/ticket-mate/bugs/paths.d.ts.map +1 -0
- package/public/ticket-mate/bugs/paths.js +17 -0
- package/public/ticket-mate/bugs/paths.js.map +1 -0
- package/public/ticket-mate/bugs/types.d.ts +99 -0
- package/public/ticket-mate/bugs/types.d.ts.map +1 -0
- package/public/ticket-mate/bugs/types.js +9 -0
- package/public/ticket-mate/bugs/types.js.map +1 -0
- package/public/ticket-mate/errors.d.ts +57 -0
- package/public/ticket-mate/errors.d.ts.map +1 -0
- package/public/ticket-mate/errors.js +98 -0
- package/public/ticket-mate/errors.js.map +1 -0
- package/public/ticket-mate/fsConfig.d.ts +34 -0
- package/public/ticket-mate/fsConfig.d.ts.map +1 -0
- package/public/ticket-mate/fsConfig.js +68 -0
- package/public/ticket-mate/fsConfig.js.map +1 -0
- package/public/ticket-mate/fsHelpers.d.ts +34 -0
- package/public/ticket-mate/fsHelpers.d.ts.map +1 -0
- package/public/ticket-mate/fsHelpers.js +199 -0
- package/public/ticket-mate/fsHelpers.js.map +1 -0
- package/public/ticket-mate/fsLayout.d.ts +115 -0
- package/public/ticket-mate/fsLayout.d.ts.map +1 -0
- package/public/ticket-mate/fsLayout.js +282 -0
- package/public/ticket-mate/fsLayout.js.map +1 -0
- package/public/ticket-mate/fsTickets.d.ts +62 -0
- package/public/ticket-mate/fsTickets.d.ts.map +1 -0
- package/public/ticket-mate/fsTickets.js +303 -0
- package/public/ticket-mate/fsTickets.js.map +1 -0
- package/public/ticket-mate/replitWebhook.d.ts +13 -0
- package/public/ticket-mate/replitWebhook.d.ts.map +1 -0
- package/public/ticket-mate/replitWebhook.js +102 -0
- package/public/ticket-mate/replitWebhook.js.map +1 -0
- package/public/ticket-mate/types.d.ts +89 -0
- package/public/ticket-mate/types.d.ts.map +1 -0
- package/public/ticket-mate/types.js +11 -0
- package/public/ticket-mate/types.js.map +1 -0
- package/public/ticket-mate/webhookSigning.d.ts +12 -0
- package/public/ticket-mate/webhookSigning.d.ts.map +1 -0
- package/public/ticket-mate/webhookSigning.js +21 -0
- package/public/ticket-mate/webhookSigning.js.map +1 -0
- package/public/types/common.d.ts +59 -0
- package/public/types/common.d.ts.map +1 -0
- package/public/types/common.js +28 -0
- package/public/types/common.js.map +1 -0
- package/public/types/workflow.d.ts +35 -0
- package/public/types/workflow.d.ts.map +1 -0
- package/public/types/workflow.js +2 -0
- package/public/types/workflow.js.map +1 -0
- package/public/types.d.ts +311 -0
- package/public/types.d.ts.map +1 -0
- package/public/types.js +5 -0
- package/public/types.js.map +1 -0
- package/public/utils/adf.d.ts +45 -0
- package/public/utils/adf.d.ts.map +1 -0
- package/public/utils/adf.js +197 -0
- package/public/utils/adf.js.map +1 -0
- package/public/utils/bug-reporter.d.ts +39 -0
- package/public/utils/bug-reporter.d.ts.map +1 -0
- package/public/utils/bug-reporter.js +189 -0
- package/public/utils/bug-reporter.js.map +1 -0
- package/public/utils/filesystem.d.ts +32 -0
- package/public/utils/filesystem.d.ts.map +1 -0
- package/public/utils/filesystem.js +78 -0
- package/public/utils/filesystem.js.map +1 -0
- package/public/utils/formatCurrency.d.ts +11 -0
- package/public/utils/formatCurrency.d.ts.map +1 -0
- package/public/utils/formatCurrency.js +27 -0
- package/public/utils/formatCurrency.js.map +1 -0
- package/public/utils/instruction-writer.d.ts +35 -0
- package/public/utils/instruction-writer.d.ts.map +1 -0
- package/public/utils/instruction-writer.js +84 -0
- package/public/utils/instruction-writer.js.map +1 -0
- package/public/utils/jira-keys.d.ts +26 -0
- package/public/utils/jira-keys.d.ts.map +1 -0
- package/public/utils/jira-keys.js +46 -0
- package/public/utils/jira-keys.js.map +1 -0
- package/public/utils/jiraAvatar.d.ts +20 -0
- package/public/utils/jiraAvatar.d.ts.map +1 -0
- package/public/utils/jiraAvatar.js +78 -0
- package/public/utils/jiraAvatar.js.map +1 -0
- package/public/utils/logger.d.ts +33 -0
- package/public/utils/logger.d.ts.map +1 -0
- package/public/utils/logger.js +73 -0
- package/public/utils/logger.js.map +1 -0
- package/public/utils/path-migration.d.ts +7 -0
- package/public/utils/path-migration.d.ts.map +1 -0
- package/public/utils/path-migration.js +57 -0
- package/public/utils/path-migration.js.map +1 -0
- package/public/utils/progress-reporter.d.ts +39 -0
- package/public/utils/progress-reporter.d.ts.map +1 -0
- package/public/utils/progress-reporter.js +66 -0
- package/public/utils/progress-reporter.js.map +1 -0
- package/public/utils/project-code-generator.d.ts +88 -0
- package/public/utils/project-code-generator.d.ts.map +1 -0
- package/public/utils/project-code-generator.js +212 -0
- package/public/utils/project-code-generator.js.map +1 -0
- package/public/utils/retry.d.ts +20 -0
- package/public/utils/retry.d.ts.map +1 -0
- package/public/utils/retry.js +82 -0
- package/public/utils/retry.js.map +1 -0
- package/public/utils/slugify.d.ts +5 -0
- package/public/utils/slugify.d.ts.map +1 -0
- package/public/utils/slugify.js +13 -0
- package/public/utils/slugify.js.map +1 -0
- package/public/utils/string.d.ts +8 -0
- package/public/utils/string.d.ts.map +1 -0
- package/public/utils/string.js +19 -0
- package/public/utils/string.js.map +1 -0
- package/public/utils/ticket-template.d.ts +28 -0
- package/public/utils/ticket-template.d.ts.map +1 -0
- package/public/utils/ticket-template.js +55 -0
- package/public/utils/ticket-template.js.map +1 -0
- package/public/utils/validation.d.ts +33 -0
- package/public/utils/validation.d.ts.map +1 -0
- package/public/utils/validation.js +86 -0
- package/public/utils/validation.js.map +1 -0
- package/public/validation/brief-validator.d.ts +55 -0
- package/public/validation/brief-validator.d.ts.map +1 -0
- package/public/validation/brief-validator.js +168 -0
- package/public/validation/brief-validator.js.map +1 -0
- package/public/validation/ticket-validator.d.ts +47 -0
- package/public/validation/ticket-validator.d.ts.map +1 -0
- package/public/validation/ticket-validator.js +155 -0
- package/public/validation/ticket-validator.js.map +1 -0
- package/public/webhooks/assignment-handler.d.ts +33 -0
- package/public/webhooks/assignment-handler.d.ts.map +1 -0
- package/public/webhooks/assignment-handler.js +187 -0
- package/public/webhooks/assignment-handler.js.map +1 -0
- package/public/webhooks/in-progress-handler.d.ts +36 -0
- package/public/webhooks/in-progress-handler.d.ts.map +1 -0
- package/public/webhooks/in-progress-handler.js +170 -0
- package/public/webhooks/in-progress-handler.js.map +1 -0
- package/public/webhooks/orchestrator-notifier.d.ts +42 -0
- package/public/webhooks/orchestrator-notifier.d.ts.map +1 -0
- package/public/webhooks/orchestrator-notifier.js +84 -0
- package/public/webhooks/orchestrator-notifier.js.map +1 -0
- package/public/webhooks/ticket-created-handler.d.ts +33 -0
- package/public/webhooks/ticket-created-handler.d.ts.map +1 -0
- package/public/webhooks/ticket-created-handler.js +150 -0
- package/public/webhooks/ticket-created-handler.js.map +1 -0
- package/public/webhooks/webhook-handler.d.ts +81 -0
- package/public/webhooks/webhook-handler.d.ts.map +1 -0
- package/public/webhooks/webhook-handler.js +186 -0
- package/public/webhooks/webhook-handler.js.map +1 -0
- package/public/webhooks/webhook-security.d.ts +58 -0
- package/public/webhooks/webhook-security.d.ts.map +1 -0
- package/public/webhooks/webhook-security.js +258 -0
- package/public/webhooks/webhook-security.js.map +1 -0
- package/public/workers/teams-delivery-worker.d.ts +91 -0
- package/public/workers/teams-delivery-worker.d.ts.map +1 -0
- package/public/workers/teams-delivery-worker.js +328 -0
- package/public/workers/teams-delivery-worker.js.map +1 -0
- package/scripts/cli-wrapper.mjs +28 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Handler (Pillar V - JIRA-TICKET-TO-GOVERNANCE)
|
|
3
|
+
|
|
4
|
+
*
|
|
5
|
+
* Processes Jira webhook events
|
|
6
|
+
*/
|
|
7
|
+
import { validateWebhookSecurity, isEventProcessed, markEventProcessed, } from "./webhook-security";
|
|
8
|
+
import { getJiraConfig } from "../config/config";
|
|
9
|
+
import { logger } from "../utils/logger";
|
|
10
|
+
import { getErrorMessage } from "../types/common";
|
|
11
|
+
import { processInProgressWebhook } from "./in-progress-handler";
|
|
12
|
+
import { notifyTicketCreated, notifyTicketUpdated } from "./orchestrator-notifier";
|
|
13
|
+
import { getIssue } from "../client/jira-client";
|
|
14
|
+
/**
|
|
15
|
+
* Process webhook event
|
|
16
|
+
*/
|
|
17
|
+
export async function processWebhookEvent(body, signature, options) {
|
|
18
|
+
const config = getJiraConfig();
|
|
19
|
+
const { handler, validatePayload = true, blockSQLi = true, blockXSS = true, strict = false, skipSignatureVerification = false, } = options || {};
|
|
20
|
+
// Parse payload first (needed for validation)
|
|
21
|
+
let payload;
|
|
22
|
+
try {
|
|
23
|
+
payload = JSON.parse(typeof body === "string" ? body : body.toString("utf-8"));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
logger.error("Failed to parse webhook payload", { error: getErrorMessage(error) });
|
|
27
|
+
return { processed: false, reason: "Invalid JSON payload" };
|
|
28
|
+
}
|
|
29
|
+
const eventId = `${payload.webhookEvent}-${payload.timestamp || Date.now()}`;
|
|
30
|
+
// Verify signature and validate payload
|
|
31
|
+
if (config.webhookSecret && !skipSignatureVerification) {
|
|
32
|
+
const webhookSecret = config.webhookSecret;
|
|
33
|
+
const securityResult = await validateWebhookSecurity(body, signature || "", webhookSecret, payload, {
|
|
34
|
+
validatePayload,
|
|
35
|
+
blockSQLi,
|
|
36
|
+
blockXSS,
|
|
37
|
+
strict,
|
|
38
|
+
});
|
|
39
|
+
if (!securityResult.valid) {
|
|
40
|
+
logger.warn("Webhook security validation failed", {
|
|
41
|
+
signatureValid: securityResult.signatureValid,
|
|
42
|
+
payloadValid: securityResult.payloadValid,
|
|
43
|
+
reason: securityResult.reason,
|
|
44
|
+
threats: securityResult.threats,
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
processed: false,
|
|
48
|
+
reason: securityResult.reason || "Security validation failed",
|
|
49
|
+
threats: securityResult.threats,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Log any threats detected (even if not blocked)
|
|
53
|
+
if (securityResult.threats && securityResult.threats.length > 0) {
|
|
54
|
+
logger.info("Webhook payload threats detected (not blocked)", {
|
|
55
|
+
threats: securityResult.threats,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (!config.webhookSecret && !skipSignatureVerification) {
|
|
60
|
+
logger.warn("Webhook secret not configured, skipping signature verification");
|
|
61
|
+
// Still validate payload if requested
|
|
62
|
+
if (validatePayload) {
|
|
63
|
+
const { validateWebhookPayload } = await import("./webhook-security");
|
|
64
|
+
const payloadResult = await validateWebhookPayload(payload, {
|
|
65
|
+
blockSQLi,
|
|
66
|
+
blockXSS,
|
|
67
|
+
strict,
|
|
68
|
+
});
|
|
69
|
+
if (!payloadResult.valid || payloadResult.blocked) {
|
|
70
|
+
logger.warn("Webhook payload validation failed", {
|
|
71
|
+
threats: payloadResult.threats,
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
processed: false,
|
|
75
|
+
reason: "Payload validation failed",
|
|
76
|
+
threats: payloadResult.threats,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Check idempotency
|
|
82
|
+
if (await isEventProcessed(eventId)) {
|
|
83
|
+
logger.info("Event already processed", { eventId });
|
|
84
|
+
return { processed: false, reason: "Already processed" };
|
|
85
|
+
}
|
|
86
|
+
// Process event
|
|
87
|
+
try {
|
|
88
|
+
// Notify orchestrator of Jira events (non-blocking)
|
|
89
|
+
if (payload.issue?.key) {
|
|
90
|
+
try {
|
|
91
|
+
const ticket = await getIssue(payload.issue.key);
|
|
92
|
+
if (payload.webhookEvent === "jira:issue_created") {
|
|
93
|
+
await notifyTicketCreated(ticket);
|
|
94
|
+
// Create instruction automatically (webhook-driven)
|
|
95
|
+
try {
|
|
96
|
+
const { writeInstruction } = await import('../utils/instruction-writer');
|
|
97
|
+
await writeInstruction(ticket.key, {
|
|
98
|
+
issueKey: ticket.key,
|
|
99
|
+
summary: ticket.fields.summary || '',
|
|
100
|
+
description: typeof ticket.fields.description === "string"
|
|
101
|
+
? ticket.fields.description
|
|
102
|
+
: undefined,
|
|
103
|
+
status: ticket.fields.status?.name,
|
|
104
|
+
assignee: ticket.fields.assignee?.displayName || ticket.fields.assignee?.accountId,
|
|
105
|
+
priority: ticket.fields.priority?.name,
|
|
106
|
+
labels: ticket.fields.labels || [],
|
|
107
|
+
issueType: ticket.fields.issuetype?.name,
|
|
108
|
+
});
|
|
109
|
+
logger.info('Instruction created from webhook (ticket created)', { issueKey: ticket.key });
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
logger.warn('Failed to create instruction from webhook', {
|
|
113
|
+
issueKey: ticket.key,
|
|
114
|
+
error: getErrorMessage(error),
|
|
115
|
+
});
|
|
116
|
+
// Continue processing even if this fails
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (payload.webhookEvent === "jira:issue_updated") {
|
|
120
|
+
// Extract previous status from changelog if available
|
|
121
|
+
const previousStatus = payload.changelog?.items?.find((item) => item.field === "status")?.fromString;
|
|
122
|
+
await notifyTicketUpdated(ticket, previousStatus);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
logger.warn("Failed to notify orchestrator of Jira event", {
|
|
127
|
+
eventId,
|
|
128
|
+
error: getErrorMessage(error),
|
|
129
|
+
});
|
|
130
|
+
// Continue processing even if orchestrator notification fails
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// TEAMS-003: Route event to Teams subscriptions (non-blocking)
|
|
134
|
+
try {
|
|
135
|
+
const { transformToJiraEvent } = await import("../lib/integrations/teams/transformer");
|
|
136
|
+
const { routeJiraEvent } = await import("../lib/integrations/teams/event-router");
|
|
137
|
+
// Transform raw payload to standardized event envelope
|
|
138
|
+
// workspaceId could come from account context if available
|
|
139
|
+
const teamsEvent = transformToJiraEvent(payload);
|
|
140
|
+
// Route to matching subscriptions (async, non-blocking)
|
|
141
|
+
routeJiraEvent(teamsEvent).catch((err) => {
|
|
142
|
+
logger.warn("[webhook] Teams event routing failed (non-blocking)", {
|
|
143
|
+
issueKey: payload.issue?.key,
|
|
144
|
+
error: err instanceof Error ? err.message : String(err),
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
catch (teamsError) {
|
|
149
|
+
logger.warn("[webhook] Failed to initialize Teams event routing", {
|
|
150
|
+
error: teamsError instanceof Error ? teamsError.message : String(teamsError),
|
|
151
|
+
});
|
|
152
|
+
// Continue processing even if Teams routing fails
|
|
153
|
+
}
|
|
154
|
+
const inProgressResult = await processInProgressWebhook(payload);
|
|
155
|
+
if (inProgressResult.handled) {
|
|
156
|
+
logger.info("In Progress transition handled", {
|
|
157
|
+
issueKey: payload.issue?.key,
|
|
158
|
+
result: inProgressResult.result,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// Call custom handler if provided
|
|
162
|
+
if (handler) {
|
|
163
|
+
try {
|
|
164
|
+
await handler(payload);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
logger.error("Custom webhook handler failed", {
|
|
168
|
+
eventId,
|
|
169
|
+
error: getErrorMessage(error),
|
|
170
|
+
});
|
|
171
|
+
// Continue processing even if custom handler fails
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Mark as processed
|
|
175
|
+
await markEventProcessed(eventId, payload.webhookEvent, payload.issue?.key || undefined, undefined, payload);
|
|
176
|
+
logger.info("Webhook event processed", { eventId, eventType: payload.webhookEvent });
|
|
177
|
+
return { processed: true };
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
logger.error("Failed to process webhook event", { eventId, error: getErrorMessage(error) });
|
|
181
|
+
// Mark as processed with error
|
|
182
|
+
await markEventProcessed(eventId, payload.webhookEvent, payload.issue?.key || undefined, undefined, payload, getErrorMessage(error));
|
|
183
|
+
return { processed: false, reason: getErrorMessage(error) };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=webhook-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-handler.js","sourceRoot":"","sources":["../../src/webhooks/webhook-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Security
|
|
3
|
+
*
|
|
4
|
+
* Implements webhook signature verification and basic payload validation
|
|
5
|
+
*/
|
|
6
|
+
export interface WebhookSignatureResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PayloadValidationResult {
|
|
11
|
+
valid: boolean;
|
|
12
|
+
blocked: boolean;
|
|
13
|
+
threats?: string[];
|
|
14
|
+
sanitized?: unknown;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if event has already been processed
|
|
18
|
+
*/
|
|
19
|
+
export declare function isEventProcessed(eventId: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Mark event as processed
|
|
22
|
+
*/
|
|
23
|
+
export declare function markEventProcessed(eventId: string, eventType: string, _issueKey?: string, _ticketId?: string, _payload?: unknown, _error?: unknown): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Clear processed events (useful for testing)
|
|
26
|
+
*/
|
|
27
|
+
export declare function clearProcessedEvents(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Verify webhook signature using HMAC SHA256
|
|
30
|
+
*/
|
|
31
|
+
export declare function verifyWebhookSignature(payload: string | Buffer, signature: string, secret: string): WebhookSignatureResult;
|
|
32
|
+
/**
|
|
33
|
+
* Validate webhook payload with basic checks
|
|
34
|
+
*
|
|
35
|
+
* Performs basic validation: length checks, type validation
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateWebhookPayload(payload: unknown, options?: {
|
|
38
|
+
blockSQLi?: boolean;
|
|
39
|
+
blockXSS?: boolean;
|
|
40
|
+
strict?: boolean;
|
|
41
|
+
}): Promise<PayloadValidationResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Validate webhook security (signature + payload)
|
|
44
|
+
*/
|
|
45
|
+
export declare function validateWebhookSecurity(body: string | Buffer, signature: string, secret: string, payload: unknown, options?: {
|
|
46
|
+
validatePayload?: boolean;
|
|
47
|
+
blockSQLi?: boolean;
|
|
48
|
+
blockXSS?: boolean;
|
|
49
|
+
strict?: boolean;
|
|
50
|
+
}): Promise<{
|
|
51
|
+
valid: boolean;
|
|
52
|
+
signatureValid: boolean;
|
|
53
|
+
payloadValid: boolean;
|
|
54
|
+
blocked: boolean;
|
|
55
|
+
reason?: string;
|
|
56
|
+
threats?: string[];
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=webhook-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-security.d.ts","sourceRoot":"","sources":["../../src/webhooks/webhook-security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AASD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,sBAAsB,CAkExB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC,uBAAuB,CAAC,CAkHlC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,OAAO,CAAC;IACT,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC,CAuDD"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Security
|
|
3
|
+
*
|
|
4
|
+
* Implements webhook signature verification and basic payload validation
|
|
5
|
+
*/
|
|
6
|
+
import crypto from "crypto";
|
|
7
|
+
import { logger } from "../utils/logger";
|
|
8
|
+
import { getErrorMessage } from "../types/common";
|
|
9
|
+
/**
|
|
10
|
+
* Simple in-memory idempotency store
|
|
11
|
+
*
|
|
12
|
+
* Note: In production, this should use a database or Redis
|
|
13
|
+
*/
|
|
14
|
+
const processedEvents = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Check if event has already been processed
|
|
17
|
+
*/
|
|
18
|
+
export async function isEventProcessed(eventId) {
|
|
19
|
+
return processedEvents.has(eventId);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Mark event as processed
|
|
23
|
+
*/
|
|
24
|
+
export async function markEventProcessed(eventId, eventType, _issueKey, _ticketId, _payload, _error) {
|
|
25
|
+
processedEvents.set(eventId, {
|
|
26
|
+
timestamp: new Date(),
|
|
27
|
+
eventType,
|
|
28
|
+
});
|
|
29
|
+
// Clean up old events (keep last 1000)
|
|
30
|
+
if (processedEvents.size > 1000) {
|
|
31
|
+
const entries = Array.from(processedEvents.entries());
|
|
32
|
+
entries.sort((a, b) => a[1].timestamp.getTime() - b[1].timestamp.getTime());
|
|
33
|
+
const toRemove = entries.slice(0, entries.length - 1000);
|
|
34
|
+
for (const [id] of toRemove) {
|
|
35
|
+
processedEvents.delete(id);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clear processed events (useful for testing)
|
|
41
|
+
*/
|
|
42
|
+
export function clearProcessedEvents() {
|
|
43
|
+
processedEvents.clear();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Verify webhook signature using HMAC SHA256
|
|
47
|
+
*/
|
|
48
|
+
export function verifyWebhookSignature(payload, signature, secret) {
|
|
49
|
+
try {
|
|
50
|
+
if (!secret) {
|
|
51
|
+
return { valid: false, error: "Webhook secret not configured" };
|
|
52
|
+
}
|
|
53
|
+
if (!signature) {
|
|
54
|
+
return { valid: false, error: "Signature header missing" };
|
|
55
|
+
}
|
|
56
|
+
// Extract signature from header (format: "sha256=...")
|
|
57
|
+
const signatureHash = signature.replace(/^sha256=/, "");
|
|
58
|
+
// Calculate expected signature
|
|
59
|
+
const expectedSignature = crypto
|
|
60
|
+
.createHmac("sha256", secret)
|
|
61
|
+
.update(payload)
|
|
62
|
+
.digest("hex");
|
|
63
|
+
// Validate hex format and length before comparison
|
|
64
|
+
if (!/^[0-9a-f]+$/i.test(signatureHash)) {
|
|
65
|
+
logger.warn("Webhook signature is not valid hex", {
|
|
66
|
+
signature: signatureHash.substring(0, 8) + "...",
|
|
67
|
+
});
|
|
68
|
+
return { valid: false, error: "Invalid signature format" };
|
|
69
|
+
}
|
|
70
|
+
// Check if lengths match (timingSafeEqual requires same length)
|
|
71
|
+
if (signatureHash.length !== expectedSignature.length) {
|
|
72
|
+
logger.warn("Webhook signature length mismatch", {
|
|
73
|
+
expected: expectedSignature.length,
|
|
74
|
+
received: signatureHash.length,
|
|
75
|
+
});
|
|
76
|
+
return { valid: false, error: "Invalid signature" };
|
|
77
|
+
}
|
|
78
|
+
// Compare signatures using constant-time comparison
|
|
79
|
+
let isValid;
|
|
80
|
+
try {
|
|
81
|
+
isValid = crypto.timingSafeEqual(Buffer.from(signatureHash, "hex"), Buffer.from(expectedSignature, "hex"));
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
logger.error("Error comparing signatures", {
|
|
85
|
+
error: getErrorMessage(error),
|
|
86
|
+
});
|
|
87
|
+
return { valid: false, error: "Signature comparison failed" };
|
|
88
|
+
}
|
|
89
|
+
if (!isValid) {
|
|
90
|
+
logger.warn("Webhook signature verification failed", {
|
|
91
|
+
expected: expectedSignature.substring(0, 8) + "...",
|
|
92
|
+
received: signatureHash.substring(0, 8) + "...",
|
|
93
|
+
});
|
|
94
|
+
return { valid: false, error: "Invalid signature" };
|
|
95
|
+
}
|
|
96
|
+
return { valid: true };
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger.error("Error verifying webhook signature", {
|
|
100
|
+
error: getErrorMessage(error),
|
|
101
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
102
|
+
});
|
|
103
|
+
return { valid: false, error: getErrorMessage(error) };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Validate webhook payload with basic checks
|
|
108
|
+
*
|
|
109
|
+
* Performs basic validation: length checks, type validation
|
|
110
|
+
*/
|
|
111
|
+
export async function validateWebhookPayload(payload, options) {
|
|
112
|
+
const { strict = false, blockSQLi = true, blockXSS = true, } = options || {};
|
|
113
|
+
try {
|
|
114
|
+
// Basic validation: check payload size
|
|
115
|
+
const payloadString = JSON.stringify(payload);
|
|
116
|
+
if (payloadString.length > 1000000) { // 1MB limit
|
|
117
|
+
logger.warn("Webhook payload too large", {
|
|
118
|
+
size: payloadString.length,
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
valid: false,
|
|
122
|
+
blocked: true,
|
|
123
|
+
threats: ["Payload exceeds size limit"],
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
// Basic type validation
|
|
127
|
+
if (payload === null || payload === undefined) {
|
|
128
|
+
if (strict) {
|
|
129
|
+
return {
|
|
130
|
+
valid: false,
|
|
131
|
+
blocked: true,
|
|
132
|
+
threats: ["Payload is null or undefined"],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return { valid: true, blocked: false };
|
|
136
|
+
}
|
|
137
|
+
// For objects, check for suspicious patterns (basic checks)
|
|
138
|
+
if (typeof payload === 'object') {
|
|
139
|
+
const payloadStr = JSON.stringify(payload);
|
|
140
|
+
// Basic SQL injection pattern detection (very simple)
|
|
141
|
+
const sqlPatterns = [
|
|
142
|
+
/(\b(SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC|EXECUTE)\b)/i,
|
|
143
|
+
/('|(\\')|(;)|(--)|(\/\*)|(\*\/))/,
|
|
144
|
+
];
|
|
145
|
+
// Basic XSS pattern detection (very simple)
|
|
146
|
+
const xssPatterns = [
|
|
147
|
+
/<script[^>]*>/i,
|
|
148
|
+
/javascript:/i,
|
|
149
|
+
/on\w+\s*=/i,
|
|
150
|
+
];
|
|
151
|
+
const threats = [];
|
|
152
|
+
if (options?.blockSQLi) {
|
|
153
|
+
for (const pattern of sqlPatterns) {
|
|
154
|
+
if (pattern.test(payloadStr)) {
|
|
155
|
+
threats.push("Potential SQL injection detected");
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (options?.blockXSS) {
|
|
161
|
+
for (const pattern of xssPatterns) {
|
|
162
|
+
if (pattern.test(payloadStr)) {
|
|
163
|
+
threats.push("Potential XSS detected");
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (threats.length > 0) {
|
|
169
|
+
logger.warn("Webhook payload contains suspicious patterns", {
|
|
170
|
+
threats,
|
|
171
|
+
});
|
|
172
|
+
if (strict) {
|
|
173
|
+
return {
|
|
174
|
+
valid: false,
|
|
175
|
+
blocked: true,
|
|
176
|
+
threats,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// In non-strict mode, warn but allow
|
|
180
|
+
return {
|
|
181
|
+
valid: true,
|
|
182
|
+
blocked: false,
|
|
183
|
+
threats,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
valid: true,
|
|
189
|
+
blocked: false,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
logger.error("Error validating webhook payload", {
|
|
194
|
+
error: getErrorMessage(error),
|
|
195
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
196
|
+
});
|
|
197
|
+
// In strict mode, block on validation errors
|
|
198
|
+
if (strict) {
|
|
199
|
+
return {
|
|
200
|
+
valid: false,
|
|
201
|
+
blocked: true,
|
|
202
|
+
threats: [getErrorMessage(error)],
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// In non-strict mode, allow on validation errors
|
|
206
|
+
return { valid: true, blocked: false };
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Validate webhook security (signature + payload)
|
|
211
|
+
*/
|
|
212
|
+
export async function validateWebhookSecurity(body, signature, secret, payload, options) {
|
|
213
|
+
const { validatePayload: shouldValidatePayload = true, blockSQLi = true, blockXSS = true, strict = false, } = options || {};
|
|
214
|
+
// Step 1: Verify signature
|
|
215
|
+
const signatureResult = verifyWebhookSignature(body, signature, secret);
|
|
216
|
+
if (!signatureResult.valid) {
|
|
217
|
+
return {
|
|
218
|
+
valid: false,
|
|
219
|
+
signatureValid: false,
|
|
220
|
+
payloadValid: true, // Not checked yet
|
|
221
|
+
blocked: true,
|
|
222
|
+
reason: signatureResult.error || "Invalid webhook signature",
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
// Step 2: Validate payload if requested
|
|
226
|
+
if (shouldValidatePayload) {
|
|
227
|
+
const payloadResult = await validateWebhookPayload(payload, {
|
|
228
|
+
blockSQLi,
|
|
229
|
+
blockXSS,
|
|
230
|
+
strict,
|
|
231
|
+
});
|
|
232
|
+
if (!payloadResult.valid || payloadResult.blocked) {
|
|
233
|
+
return {
|
|
234
|
+
valid: false,
|
|
235
|
+
signatureValid: true,
|
|
236
|
+
payloadValid: false,
|
|
237
|
+
blocked: true,
|
|
238
|
+
reason: "Payload validation failed",
|
|
239
|
+
threats: payloadResult.threats,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
valid: true,
|
|
244
|
+
signatureValid: true,
|
|
245
|
+
payloadValid: true,
|
|
246
|
+
blocked: false,
|
|
247
|
+
threats: payloadResult.threats,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// Signature valid, payload validation skipped
|
|
251
|
+
return {
|
|
252
|
+
valid: true,
|
|
253
|
+
signatureValid: true,
|
|
254
|
+
payloadValid: true, // Not checked, but not required
|
|
255
|
+
blocked: false,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=webhook-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-security.js","sourceRoot":"","sources":["../../src/webhooks/webhook-security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAclD;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkD,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,SAAiB,EACjB,SAAkB,EAClB,SAAkB,EAClB,QAAkB,EAClB,MAAgB;IAEhB,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE;QAC3B,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS;KACV,CAAC,CAAC;IACH,uCAAuC;IACvC,IAAI,eAAe,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAwB,EACxB,SAAiB,EACjB,MAAc;IAEd,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC7D,CAAC;QAED,uDAAuD;QACvD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAExD,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG,MAAM;aAC7B,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,mDAAmD;QACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBAChD,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;aACjD,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC7D,CAAC;QAED,gEAAgE;QAChE,IAAI,aAAa,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBAC/C,QAAQ,EAAE,iBAAiB,CAAC,MAAM;gBAClC,QAAQ,EAAE,aAAa,CAAC,MAAM;aAC/B,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QACtD,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,CAAC,eAAe,CAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EACjC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CACtC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACzC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACnD,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;gBACnD,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;aAChD,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QACtD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YAChD,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAgB,EAChB,OAIC;IAED,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,IAAI,GAChB,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,YAAY;YAChD,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,IAAI,EAAE,aAAa,CAAC,MAAM;aAC3B,CAAC,CAAC;YACH,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,4BAA4B,CAAC;aACxC,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,8BAA8B,CAAC;iBAC1C,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;QAED,4DAA4D;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE3C,sDAAsD;YACtD,MAAM,WAAW,GAAG;gBAClB,qEAAqE;gBACrE,kCAAkC;aACnC,CAAC;YAEF,4CAA4C;YAC5C,MAAM,WAAW,GAAG;gBAClB,gBAAgB;gBAChB,cAAc;gBACd,YAAY;aACb,CAAC;YAEF,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;oBAClC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;wBACjD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;oBAClC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;wBACvC,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;oBAC1D,OAAO;iBACR,CAAC,CAAC;gBAEH,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,IAAI;wBACb,OAAO;qBACR,CAAC;gBACJ,CAAC;gBAED,qCAAqC;gBACrC,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK;oBACd,OAAO;iBACR,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;YAC/C,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC;QAEH,6CAA6C;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAClC,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAqB,EACrB,SAAiB,EACjB,MAAc,EACd,OAAgB,EAChB,OAKC;IASD,MAAM,EACJ,eAAe,EAAE,qBAAqB,GAAG,IAAI,EAC7C,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,KAAK,GACf,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,2BAA2B;IAC3B,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,IAAI,EAAE,kBAAkB;YACtC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,eAAe,CAAC,KAAK,IAAI,2BAA2B;SAC7D,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE;YAC1D,SAAS;YACT,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,2BAA2B;gBACnC,OAAO,EAAE,aAAa,CAAC,OAAO;aAC/B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,OAAO;QACL,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,IAAI,EAAE,gCAAgC;QACpD,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Teams Delivery Worker (TEAMS-004)
|
|
3
|
+
*
|
|
4
|
+
* Reliable message delivery with exponential backoff, retry logic,
|
|
5
|
+
* and dead-letter queue for failed deliveries.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Custom error for delivery failures
|
|
9
|
+
*/
|
|
10
|
+
export declare class DeliveryError extends Error {
|
|
11
|
+
statusCode: number;
|
|
12
|
+
retryAfter?: number | undefined;
|
|
13
|
+
constructor(statusCode: number, message: string, retryAfter?: number | undefined);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Teams Delivery Worker Class
|
|
17
|
+
*/
|
|
18
|
+
export declare class TeamsDeliveryWorker {
|
|
19
|
+
private isRunning;
|
|
20
|
+
private stopPromise;
|
|
21
|
+
private stopResolve;
|
|
22
|
+
/**
|
|
23
|
+
* Start the worker (polling loop)
|
|
24
|
+
*/
|
|
25
|
+
start(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Gracefully stop the worker
|
|
28
|
+
*/
|
|
29
|
+
stop(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Process a batch of pending deliveries
|
|
32
|
+
*/
|
|
33
|
+
processBatch(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Process a single delivery job
|
|
36
|
+
*/
|
|
37
|
+
processJob(job: {
|
|
38
|
+
id: string;
|
|
39
|
+
webhookId: string | null;
|
|
40
|
+
eventType: string;
|
|
41
|
+
payloadExcerpt: string | null;
|
|
42
|
+
attempts: number;
|
|
43
|
+
maxAttempts: number;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Deliver message to Teams webhook
|
|
47
|
+
*/
|
|
48
|
+
deliver(job: {
|
|
49
|
+
webhookId: string | null;
|
|
50
|
+
eventType: string;
|
|
51
|
+
payloadExcerpt: string | null;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Mark delivery as successful
|
|
55
|
+
*/
|
|
56
|
+
markSuccess(job: {
|
|
57
|
+
id: string;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Handle delivery failure with retry logic
|
|
61
|
+
*/
|
|
62
|
+
handleFailure(job: {
|
|
63
|
+
id: string;
|
|
64
|
+
attempts: number;
|
|
65
|
+
maxAttempts: number;
|
|
66
|
+
}, error: unknown): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Mark job as dead letter (permanently failed)
|
|
69
|
+
*/
|
|
70
|
+
markDeadLetter(job: {
|
|
71
|
+
id: string;
|
|
72
|
+
}, error: DeliveryError): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Determine if delivery should be retried based on status code and attempts
|
|
75
|
+
*/
|
|
76
|
+
shouldRetry(statusCode: number, attempts: number, maxAttempts: number): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Calculate next retry time with exponential backoff
|
|
79
|
+
*/
|
|
80
|
+
calculateNextRetry(attempts: number, error: DeliveryError): Date;
|
|
81
|
+
/**
|
|
82
|
+
* Sleep utility
|
|
83
|
+
*/
|
|
84
|
+
private sleep;
|
|
85
|
+
}
|
|
86
|
+
export declare function getTeamsDeliveryWorker(): TeamsDeliveryWorker;
|
|
87
|
+
/**
|
|
88
|
+
* Process a single job immediately (for testing or one-off processing)
|
|
89
|
+
*/
|
|
90
|
+
export declare function processDeliveryJob(jobId: string): Promise<void>;
|
|
91
|
+
//# sourceMappingURL=teams-delivery-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-delivery-worker.d.ts","sourceRoot":"","sources":["../../src/workers/teams-delivery-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAEzB,UAAU,EAAE,MAAM;IAElB,UAAU,CAAC,EAAE,MAAM;gBAFnB,UAAU,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAKjC;AAmDD;;GAEG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA6B;IAEhD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBnC;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAejB;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE;QACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEjB;;OAEG;IACG,WAAW,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACG,aAAa,CACf,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAC1D,KAAK,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAgChB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9E;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAc/E;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAahE;;OAEG;IACH,OAAO,CAAC,KAAK;CAGhB;AAOD,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE"}
|