@chief-clancy/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/board/azdo/api/api.d.ts +95 -0
- package/dist/board/azdo/api/api.d.ts.map +1 -0
- package/dist/board/azdo/api/api.js +173 -0
- package/dist/board/azdo/api/api.js.map +1 -0
- package/dist/board/azdo/api/helpers.d.ts +89 -0
- package/dist/board/azdo/api/helpers.d.ts.map +1 -0
- package/dist/board/azdo/api/helpers.js +133 -0
- package/dist/board/azdo/api/helpers.js.map +1 -0
- package/dist/board/azdo/api/index.d.ts +5 -0
- package/dist/board/azdo/api/index.d.ts.map +1 -0
- package/dist/board/azdo/api/index.js +3 -0
- package/dist/board/azdo/api/index.js.map +1 -0
- package/dist/board/azdo/azdo-board.d.ts +12 -0
- package/dist/board/azdo/azdo-board.d.ts.map +1 -0
- package/dist/board/azdo/azdo-board.js +104 -0
- package/dist/board/azdo/azdo-board.js.map +1 -0
- package/dist/board/azdo/index.d.ts +3 -0
- package/dist/board/azdo/index.d.ts.map +1 -0
- package/dist/board/azdo/index.js +3 -0
- package/dist/board/azdo/index.js.map +1 -0
- package/dist/board/azdo/labels/index.d.ts +2 -0
- package/dist/board/azdo/labels/index.d.ts.map +1 -0
- package/dist/board/azdo/labels/index.js +2 -0
- package/dist/board/azdo/labels/index.js.map +1 -0
- package/dist/board/azdo/labels/labels.d.ts +27 -0
- package/dist/board/azdo/labels/labels.d.ts.map +1 -0
- package/dist/board/azdo/labels/labels.js +64 -0
- package/dist/board/azdo/labels/labels.js.map +1 -0
- package/dist/board/azdo/relations/index.d.ts +2 -0
- package/dist/board/azdo/relations/index.d.ts.map +1 -0
- package/dist/board/azdo/relations/index.js +2 -0
- package/dist/board/azdo/relations/index.js.map +1 -0
- package/dist/board/azdo/relations/relations.d.ts +37 -0
- package/dist/board/azdo/relations/relations.d.ts.map +1 -0
- package/dist/board/azdo/relations/relations.js +109 -0
- package/dist/board/azdo/relations/relations.js.map +1 -0
- package/dist/board/detect-board.d.ts +28 -0
- package/dist/board/detect-board.d.ts.map +1 -0
- package/dist/board/detect-board.js +80 -0
- package/dist/board/detect-board.js.map +1 -0
- package/dist/board/factory/factory.d.ts +18 -0
- package/dist/board/factory/factory.d.ts.map +1 -0
- package/dist/board/factory/factory.js +34 -0
- package/dist/board/factory/factory.js.map +1 -0
- package/dist/board/factory/index.d.ts +2 -0
- package/dist/board/factory/index.d.ts.map +1 -0
- package/dist/board/factory/index.js +2 -0
- package/dist/board/factory/index.js.map +1 -0
- package/dist/board/github/api/api.d.ts +86 -0
- package/dist/board/github/api/api.d.ts.map +1 -0
- package/dist/board/github/api/api.js +161 -0
- package/dist/board/github/api/api.js.map +1 -0
- package/dist/board/github/api/index.d.ts +3 -0
- package/dist/board/github/api/index.d.ts.map +1 -0
- package/dist/board/github/api/index.js +2 -0
- package/dist/board/github/api/index.js.map +1 -0
- package/dist/board/github/github-board.d.ts +19 -0
- package/dist/board/github/github-board.d.ts.map +1 -0
- package/dist/board/github/github-board.js +104 -0
- package/dist/board/github/github-board.js.map +1 -0
- package/dist/board/github/index.d.ts +3 -0
- package/dist/board/github/index.d.ts.map +1 -0
- package/dist/board/github/index.js +3 -0
- package/dist/board/github/index.js.map +1 -0
- package/dist/board/github/labels/index.d.ts +2 -0
- package/dist/board/github/labels/index.d.ts.map +1 -0
- package/dist/board/github/labels/index.js +2 -0
- package/dist/board/github/labels/index.js.map +1 -0
- package/dist/board/github/labels/labels.d.ts +42 -0
- package/dist/board/github/labels/labels.d.ts.map +1 -0
- package/dist/board/github/labels/labels.js +93 -0
- package/dist/board/github/labels/labels.js.map +1 -0
- package/dist/board/github/relations/index.d.ts +2 -0
- package/dist/board/github/relations/index.d.ts.map +1 -0
- package/dist/board/github/relations/index.js +2 -0
- package/dist/board/github/relations/index.js.map +1 -0
- package/dist/board/github/relations/relations.d.ts +54 -0
- package/dist/board/github/relations/relations.d.ts.map +1 -0
- package/dist/board/github/relations/relations.js +152 -0
- package/dist/board/github/relations/relations.js.map +1 -0
- package/dist/board/index.d.ts +2 -0
- package/dist/board/index.d.ts.map +1 -0
- package/dist/board/index.js +2 -0
- package/dist/board/index.js.map +1 -0
- package/dist/board/jira/api/api.d.ts +129 -0
- package/dist/board/jira/api/api.d.ts.map +1 -0
- package/dist/board/jira/api/api.js +207 -0
- package/dist/board/jira/api/api.js.map +1 -0
- package/dist/board/jira/api/index.d.ts +3 -0
- package/dist/board/jira/api/index.d.ts.map +1 -0
- package/dist/board/jira/api/index.js +2 -0
- package/dist/board/jira/api/index.js.map +1 -0
- package/dist/board/jira/index.d.ts +3 -0
- package/dist/board/jira/index.d.ts.map +1 -0
- package/dist/board/jira/index.js +3 -0
- package/dist/board/jira/index.js.map +1 -0
- package/dist/board/jira/jira-board.d.ts +12 -0
- package/dist/board/jira/jira-board.d.ts.map +1 -0
- package/dist/board/jira/jira-board.js +112 -0
- package/dist/board/jira/jira-board.js.map +1 -0
- package/dist/board/jira/labels/index.d.ts +2 -0
- package/dist/board/jira/labels/index.d.ts.map +1 -0
- package/dist/board/jira/labels/index.js +2 -0
- package/dist/board/jira/labels/index.js.map +1 -0
- package/dist/board/jira/labels/labels.d.ts +34 -0
- package/dist/board/jira/labels/labels.d.ts.map +1 -0
- package/dist/board/jira/labels/labels.js +69 -0
- package/dist/board/jira/labels/labels.js.map +1 -0
- package/dist/board/jira/relations/index.d.ts +2 -0
- package/dist/board/jira/relations/index.d.ts.map +1 -0
- package/dist/board/jira/relations/index.js +2 -0
- package/dist/board/jira/relations/index.js.map +1 -0
- package/dist/board/jira/relations/relations.d.ts +44 -0
- package/dist/board/jira/relations/relations.d.ts.map +1 -0
- package/dist/board/jira/relations/relations.js +111 -0
- package/dist/board/jira/relations/relations.js.map +1 -0
- package/dist/board/linear/api/api.d.ts +68 -0
- package/dist/board/linear/api/api.d.ts.map +1 -0
- package/dist/board/linear/api/api.js +179 -0
- package/dist/board/linear/api/api.js.map +1 -0
- package/dist/board/linear/api/index.d.ts +2 -0
- package/dist/board/linear/api/index.d.ts.map +1 -0
- package/dist/board/linear/api/index.js +2 -0
- package/dist/board/linear/api/index.js.map +1 -0
- package/dist/board/linear/index.d.ts +3 -0
- package/dist/board/linear/index.d.ts.map +1 -0
- package/dist/board/linear/index.js +3 -0
- package/dist/board/linear/index.js.map +1 -0
- package/dist/board/linear/labels/index.d.ts +2 -0
- package/dist/board/linear/labels/index.d.ts.map +1 -0
- package/dist/board/linear/labels/index.js +2 -0
- package/dist/board/linear/labels/index.js.map +1 -0
- package/dist/board/linear/labels/labels.d.ts +63 -0
- package/dist/board/linear/labels/labels.d.ts.map +1 -0
- package/dist/board/linear/labels/labels.js +204 -0
- package/dist/board/linear/labels/labels.js.map +1 -0
- package/dist/board/linear/linear-board.d.ts +18 -0
- package/dist/board/linear/linear-board.d.ts.map +1 -0
- package/dist/board/linear/linear-board.js +115 -0
- package/dist/board/linear/linear-board.js.map +1 -0
- package/dist/board/linear/relations/index.d.ts +2 -0
- package/dist/board/linear/relations/index.d.ts.map +1 -0
- package/dist/board/linear/relations/index.js +2 -0
- package/dist/board/linear/relations/index.js.map +1 -0
- package/dist/board/linear/relations/relations.d.ts +67 -0
- package/dist/board/linear/relations/relations.d.ts.map +1 -0
- package/dist/board/linear/relations/relations.js +195 -0
- package/dist/board/linear/relations/relations.js.map +1 -0
- package/dist/board/notion/api/api.d.ts +83 -0
- package/dist/board/notion/api/api.d.ts.map +1 -0
- package/dist/board/notion/api/api.js +124 -0
- package/dist/board/notion/api/api.js.map +1 -0
- package/dist/board/notion/api/helpers.d.ts +105 -0
- package/dist/board/notion/api/helpers.d.ts.map +1 -0
- package/dist/board/notion/api/helpers.js +175 -0
- package/dist/board/notion/api/helpers.js.map +1 -0
- package/dist/board/notion/api/index.d.ts +4 -0
- package/dist/board/notion/api/index.d.ts.map +1 -0
- package/dist/board/notion/api/index.js +3 -0
- package/dist/board/notion/api/index.js.map +1 -0
- package/dist/board/notion/index.d.ts +3 -0
- package/dist/board/notion/index.d.ts.map +1 -0
- package/dist/board/notion/index.js +3 -0
- package/dist/board/notion/index.js.map +1 -0
- package/dist/board/notion/labels/index.d.ts +2 -0
- package/dist/board/notion/labels/index.d.ts.map +1 -0
- package/dist/board/notion/labels/index.js +2 -0
- package/dist/board/notion/labels/index.js.map +1 -0
- package/dist/board/notion/labels/labels.d.ts +30 -0
- package/dist/board/notion/labels/labels.d.ts.map +1 -0
- package/dist/board/notion/labels/labels.js +56 -0
- package/dist/board/notion/labels/labels.js.map +1 -0
- package/dist/board/notion/notion-board.d.ts +12 -0
- package/dist/board/notion/notion-board.d.ts.map +1 -0
- package/dist/board/notion/notion-board.js +156 -0
- package/dist/board/notion/notion-board.js.map +1 -0
- package/dist/board/notion/relations/index.d.ts +2 -0
- package/dist/board/notion/relations/index.d.ts.map +1 -0
- package/dist/board/notion/relations/index.js +2 -0
- package/dist/board/notion/relations/index.js.map +1 -0
- package/dist/board/notion/relations/relations.d.ts +43 -0
- package/dist/board/notion/relations/relations.d.ts.map +1 -0
- package/dist/board/notion/relations/relations.js +127 -0
- package/dist/board/notion/relations/relations.js.map +1 -0
- package/dist/board/shortcut/api/api.d.ts +110 -0
- package/dist/board/shortcut/api/api.d.ts.map +1 -0
- package/dist/board/shortcut/api/api.js +227 -0
- package/dist/board/shortcut/api/api.js.map +1 -0
- package/dist/board/shortcut/api/index.d.ts +2 -0
- package/dist/board/shortcut/api/index.d.ts.map +1 -0
- package/dist/board/shortcut/api/index.js +2 -0
- package/dist/board/shortcut/api/index.js.map +1 -0
- package/dist/board/shortcut/index.d.ts +3 -0
- package/dist/board/shortcut/index.d.ts.map +1 -0
- package/dist/board/shortcut/index.js +3 -0
- package/dist/board/shortcut/index.js.map +1 -0
- package/dist/board/shortcut/labels/index.d.ts +2 -0
- package/dist/board/shortcut/labels/index.d.ts.map +1 -0
- package/dist/board/shortcut/labels/index.js +2 -0
- package/dist/board/shortcut/labels/index.js.map +1 -0
- package/dist/board/shortcut/labels/labels.d.ts +95 -0
- package/dist/board/shortcut/labels/labels.d.ts.map +1 -0
- package/dist/board/shortcut/labels/labels.js +154 -0
- package/dist/board/shortcut/labels/labels.js.map +1 -0
- package/dist/board/shortcut/relations/index.d.ts +2 -0
- package/dist/board/shortcut/relations/index.d.ts.map +1 -0
- package/dist/board/shortcut/relations/index.js +2 -0
- package/dist/board/shortcut/relations/index.js.map +1 -0
- package/dist/board/shortcut/relations/relations.d.ts +44 -0
- package/dist/board/shortcut/relations/relations.d.ts.map +1 -0
- package/dist/board/shortcut/relations/relations.js +118 -0
- package/dist/board/shortcut/relations/relations.js.map +1 -0
- package/dist/board/shortcut/shortcut-board.d.ts +18 -0
- package/dist/board/shortcut/shortcut-board.d.ts.map +1 -0
- package/dist/board/shortcut/shortcut-board.js +143 -0
- package/dist/board/shortcut/shortcut-board.js.map +1 -0
- package/dist/dev/lifecycle/branch/branch.d.ts +35 -0
- package/dist/dev/lifecycle/branch/branch.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/branch.js +48 -0
- package/dist/dev/lifecycle/branch/branch.js.map +1 -0
- package/dist/dev/lifecycle/branch/index.d.ts +2 -0
- package/dist/dev/lifecycle/branch/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/index.js +2 -0
- package/dist/dev/lifecycle/branch/index.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts +22 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js +50 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts +2 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.js +2 -0
- package/dist/dev/lifecycle/commit-type/index.js.map +1 -0
- package/dist/dev/lifecycle/cost/cost.d.ts +28 -0
- package/dist/dev/lifecycle/cost/cost.d.ts.map +1 -0
- package/dist/dev/lifecycle/cost/cost.js +36 -0
- package/dist/dev/lifecycle/cost/cost.js.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts +44 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js +75 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts +51 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js +132 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js.map +1 -0
- package/dist/dev/lifecycle/epic/epic.d.ts +66 -0
- package/dist/dev/lifecycle/epic/epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/epic.js +91 -0
- package/dist/dev/lifecycle/epic/epic.js.map +1 -0
- package/dist/dev/lifecycle/epic/index.d.ts +2 -0
- package/dist/dev/lifecycle/epic/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/index.js +2 -0
- package/dist/dev/lifecycle/epic/index.js.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts +55 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js +75 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts +49 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js +81 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js.map +1 -0
- package/dist/dev/lifecycle/format/format.d.ts +11 -0
- package/dist/dev/lifecycle/format/format.d.ts.map +1 -0
- package/dist/dev/lifecycle/format/format.js +23 -0
- package/dist/dev/lifecycle/format/format.js.map +1 -0
- package/dist/dev/lifecycle/lock/index.d.ts +3 -0
- package/dist/dev/lifecycle/lock/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/index.js +2 -0
- package/dist/dev/lifecycle/lock/index.js.map +1 -0
- package/dist/dev/lifecycle/lock/lock.d.ts +68 -0
- package/dist/dev/lifecycle/lock/lock.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/lock.js +125 -0
- package/dist/dev/lifecycle/lock/lock.js.map +1 -0
- package/dist/dev/lifecycle/outcome/index.d.ts +2 -0
- package/dist/dev/lifecycle/outcome/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/index.js +2 -0
- package/dist/dev/lifecycle/outcome/index.js.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts +65 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.js +61 -0
- package/dist/dev/lifecycle/outcome/outcome.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts +3 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.js +2 -0
- package/dist/dev/lifecycle/pr-creation/index.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts +47 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js +143 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts +42 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.js +101 -0
- package/dist/dev/lifecycle/preflight/preflight.js.map +1 -0
- package/dist/dev/lifecycle/progress/index.d.ts +3 -0
- package/dist/dev/lifecycle/progress/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/index.js +2 -0
- package/dist/dev/lifecycle/progress/index.js.map +1 -0
- package/dist/dev/lifecycle/progress/progress.d.ts +98 -0
- package/dist/dev/lifecycle/progress/progress.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/progress.js +212 -0
- package/dist/dev/lifecycle/progress/progress.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts +86 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js +198 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js +158 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js +168 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts +107 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.js +225 -0
- package/dist/dev/lifecycle/pull-request/github/github.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts +103 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js +215 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts +44 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js +64 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts +65 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js +144 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts +30 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js +39 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js.map +1 -0
- package/dist/dev/lifecycle/quality/quality.d.ts +99 -0
- package/dist/dev/lifecycle/quality/quality.d.ts.map +1 -0
- package/dist/dev/lifecycle/quality/quality.js +213 -0
- package/dist/dev/lifecycle/quality/quality.js.map +1 -0
- package/dist/dev/lifecycle/resume/resume.d.ts +64 -0
- package/dist/dev/lifecycle/resume/resume.d.ts.map +1 -0
- package/dist/dev/lifecycle/resume/resume.js +171 -0
- package/dist/dev/lifecycle/resume/resume.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts +20 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.js +203 -0
- package/dist/dev/lifecycle/rework/rework-builders.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts +50 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js +41 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework.d.ts +63 -0
- package/dist/dev/lifecycle/rework/rework.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework.js +141 -0
- package/dist/dev/lifecycle/rework/rework.js.map +1 -0
- package/dist/dev/pipeline/context.d.ts +105 -0
- package/dist/dev/pipeline/context.d.ts.map +1 -0
- package/dist/dev/pipeline/context.js +107 -0
- package/dist/dev/pipeline/context.js.map +1 -0
- package/dist/dev/pipeline/index.d.ts +6 -0
- package/dist/dev/pipeline/index.d.ts.map +1 -0
- package/dist/dev/pipeline/index.js +5 -0
- package/dist/dev/pipeline/index.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts +62 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js +128 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js +2 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts +40 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js +43 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts +68 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js +125 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts +38 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js +33 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.js +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts +48 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js +42 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js +2 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts +52 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js +34 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.js +2 -0
- package/dist/dev/pipeline/phases/feasibility/index.js.map +1 -0
- package/dist/dev/pipeline/phases/index.d.ts +26 -0
- package/dist/dev/pipeline/phases/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/index.js +14 -0
- package/dist/dev/pipeline/phases/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.js +2 -0
- package/dist/dev/pipeline/phases/lock-check/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts +55 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js +60 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js +2 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts +58 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js +82 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts +42 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js +41 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js +2 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts +40 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js +38 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js +2 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts +46 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js +64 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.js +2 -0
- package/dist/dev/pipeline/phases/transition/index.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts +30 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.js +27 -0
- package/dist/dev/pipeline/phases/transition/transition.js.map +1 -0
- package/dist/dev/pipeline/run-pipeline.d.ts +98 -0
- package/dist/dev/pipeline/run-pipeline.d.ts.map +1 -0
- package/dist/dev/pipeline/run-pipeline.js +106 -0
- package/dist/dev/pipeline/run-pipeline.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/azdo/azdo-pr.d.ts +58 -0
- package/dist/schemas/azdo/azdo-pr.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo-pr.js +48 -0
- package/dist/schemas/azdo/azdo-pr.js.map +1 -0
- package/dist/schemas/azdo/azdo.d.ts +88 -0
- package/dist/schemas/azdo/azdo.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo.js +60 -0
- package/dist/schemas/azdo/azdo.js.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts +112 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.js +73 -0
- package/dist/schemas/bitbucket/bitbucket.js.map +1 -0
- package/dist/schemas/env/env.d.ts +336 -0
- package/dist/schemas/env/env.d.ts.map +1 -0
- package/dist/schemas/env/env.js +94 -0
- package/dist/schemas/env/env.js.map +1 -0
- package/dist/schemas/github/github.d.ts +128 -0
- package/dist/schemas/github/github.d.ts.map +1 -0
- package/dist/schemas/github/github.js +65 -0
- package/dist/schemas/github/github.js.map +1 -0
- package/dist/schemas/gitlab/gitlab.d.ts +72 -0
- package/dist/schemas/gitlab/gitlab.d.ts.map +1 -0
- package/dist/schemas/gitlab/gitlab.js +38 -0
- package/dist/schemas/gitlab/gitlab.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/jira/jira.d.ts +79 -0
- package/dist/schemas/jira/jira.d.ts.map +1 -0
- package/dist/schemas/jira/jira.js +69 -0
- package/dist/schemas/jira/jira.js.map +1 -0
- package/dist/schemas/linear/linear.d.ts +178 -0
- package/dist/schemas/linear/linear.d.ts.map +1 -0
- package/dist/schemas/linear/linear.js +136 -0
- package/dist/schemas/linear/linear.js.map +1 -0
- package/dist/schemas/notion/notion.d.ts +131 -0
- package/dist/schemas/notion/notion.d.ts.map +1 -0
- package/dist/schemas/notion/notion.js +102 -0
- package/dist/schemas/notion/notion.js.map +1 -0
- package/dist/schemas/shortcut/shortcut.d.ts +149 -0
- package/dist/schemas/shortcut/shortcut.d.ts.map +1 -0
- package/dist/schemas/shortcut/shortcut.js +68 -0
- package/dist/schemas/shortcut/shortcut.js.map +1 -0
- package/dist/shared/cache/cache.d.ts +14 -0
- package/dist/shared/cache/cache.d.ts.map +1 -0
- package/dist/shared/cache/cache.js +25 -0
- package/dist/shared/cache/cache.js.map +1 -0
- package/dist/shared/cache/index.d.ts +2 -0
- package/dist/shared/cache/index.d.ts.map +1 -0
- package/dist/shared/cache/index.js +2 -0
- package/dist/shared/cache/index.js.map +1 -0
- package/dist/shared/env-parser/env-parser.d.ts +42 -0
- package/dist/shared/env-parser/env-parser.d.ts.map +1 -0
- package/dist/shared/env-parser/env-parser.js +97 -0
- package/dist/shared/env-parser/env-parser.js.map +1 -0
- package/dist/shared/env-parser/index.d.ts +3 -0
- package/dist/shared/env-parser/index.d.ts.map +1 -0
- package/dist/shared/env-parser/index.js +2 -0
- package/dist/shared/env-parser/index.js.map +1 -0
- package/dist/shared/git-ops/git-ops.d.ts +127 -0
- package/dist/shared/git-ops/git-ops.d.ts.map +1 -0
- package/dist/shared/git-ops/git-ops.js +225 -0
- package/dist/shared/git-ops/git-ops.js.map +1 -0
- package/dist/shared/git-ops/index.d.ts +3 -0
- package/dist/shared/git-ops/index.d.ts.map +1 -0
- package/dist/shared/git-ops/index.js +2 -0
- package/dist/shared/git-ops/index.js.map +1 -0
- package/dist/shared/git-token/git-token.d.ts +18 -0
- package/dist/shared/git-token/git-token.d.ts.map +1 -0
- package/dist/shared/git-token/git-token.js +28 -0
- package/dist/shared/git-token/git-token.js.map +1 -0
- package/dist/shared/git-token/index.d.ts +2 -0
- package/dist/shared/git-token/index.d.ts.map +1 -0
- package/dist/shared/git-token/index.js +2 -0
- package/dist/shared/git-token/index.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts +32 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js +53 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts +3 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.js +2 -0
- package/dist/shared/http/fetch-and-parse/index.js.map +1 -0
- package/dist/shared/http/index.d.ts +7 -0
- package/dist/shared/http/index.d.ts.map +1 -0
- package/dist/shared/http/index.js +4 -0
- package/dist/shared/http/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/index.d.ts +3 -0
- package/dist/shared/http/ping-endpoint/index.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/index.js +2 -0
- package/dist/shared/http/ping-endpoint/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts +29 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js +31 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js.map +1 -0
- package/dist/shared/http/retry-fetch/index.d.ts +3 -0
- package/dist/shared/http/retry-fetch/index.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/index.js +2 -0
- package/dist/shared/http/retry-fetch/index.js.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts +33 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js +94 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js.map +1 -0
- package/dist/shared/label-helpers/index.d.ts +3 -0
- package/dist/shared/label-helpers/index.d.ts.map +1 -0
- package/dist/shared/label-helpers/index.js +2 -0
- package/dist/shared/label-helpers/index.js.map +1 -0
- package/dist/shared/label-helpers/label-helpers.d.ts +41 -0
- package/dist/shared/label-helpers/label-helpers.d.ts.map +1 -0
- package/dist/shared/label-helpers/label-helpers.js +51 -0
- package/dist/shared/label-helpers/label-helpers.js.map +1 -0
- package/dist/shared/remote/index.d.ts +2 -0
- package/dist/shared/remote/index.d.ts.map +1 -0
- package/dist/shared/remote/index.js +2 -0
- package/dist/shared/remote/index.js.map +1 -0
- package/dist/shared/remote/remote.d.ts +39 -0
- package/dist/shared/remote/remote.d.ts.map +1 -0
- package/dist/shared/remote/remote.js +180 -0
- package/dist/shared/remote/remote.js.map +1 -0
- package/dist/types/board.d.ts +62 -0
- package/dist/types/board.d.ts.map +1 -0
- package/dist/types/board.js +5 -0
- package/dist/types/board.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/progress.d.ts +21 -0
- package/dist/types/progress.d.ts.map +1 -0
- package/dist/types/progress.js +34 -0
- package/dist/types/progress.js.map +1 -0
- package/dist/types/remote.d.ts +77 -0
- package/dist/types/remote.d.ts.map +1 -0
- package/dist/types/remote.js +5 -0
- package/dist/types/remote.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/git-token/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic fetch → parse → validate utility.
|
|
3
|
+
*
|
|
4
|
+
* Eliminates the repeated try/fetch/check-ok/parse-json/validate-zod
|
|
5
|
+
* boilerplate across board modules.
|
|
6
|
+
*/
|
|
7
|
+
import type { ZodMiniType } from 'zod/mini';
|
|
8
|
+
/** Injectable fetch function for dependency injection in tests. */
|
|
9
|
+
export type Fetcher = (url: string, init?: RequestInit) => Promise<Response>;
|
|
10
|
+
/** Options for {@link fetchAndParse}. */
|
|
11
|
+
export type FetchAndParseOptions<T> = {
|
|
12
|
+
/** Zod schema to validate the response body against. */
|
|
13
|
+
readonly schema: ZodMiniType<T>;
|
|
14
|
+
/** Human-readable label for error messages (e.g., `'Jira API'`). */
|
|
15
|
+
readonly label: string;
|
|
16
|
+
/** Custom fetch function (e.g., `retryFetch`). Defaults to global `fetch`. */
|
|
17
|
+
readonly fetcher?: Fetcher;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Fetch a URL, parse the JSON response, and validate against a Zod schema.
|
|
21
|
+
*
|
|
22
|
+
* Returns the parsed data on success, or `undefined` on any failure
|
|
23
|
+
* (network error, non-OK status, invalid JSON, schema mismatch).
|
|
24
|
+
* All failures are logged to `console.warn` with the provided label.
|
|
25
|
+
*
|
|
26
|
+
* @param url - The URL to fetch.
|
|
27
|
+
* @param init - Standard `fetch` RequestInit options.
|
|
28
|
+
* @param opts - Schema, label, and optional custom fetcher.
|
|
29
|
+
* @returns The parsed and validated data, or `undefined` on failure.
|
|
30
|
+
*/
|
|
31
|
+
export declare function fetchAndParse<T>(url: string, init: RequestInit | undefined, opts: FetchAndParseOptions<T>): Promise<T | undefined>;
|
|
32
|
+
//# sourceMappingURL=fetch-and-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-and-parse.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/fetch-and-parse/fetch-and-parse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE7E,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAiBF;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAgCxB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Read a response body snippet for error messages (max 200 chars). */
|
|
2
|
+
async function readBodySnippet(response) {
|
|
3
|
+
try {
|
|
4
|
+
const body = await response.text();
|
|
5
|
+
return body ? ` — ${body.slice(0, 200)}` : '';
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return '';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** Format a caught error value into a message string. */
|
|
12
|
+
function formatError(err) {
|
|
13
|
+
return err instanceof Error ? err.message : String(err);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Fetch a URL, parse the JSON response, and validate against a Zod schema.
|
|
17
|
+
*
|
|
18
|
+
* Returns the parsed data on success, or `undefined` on any failure
|
|
19
|
+
* (network error, non-OK status, invalid JSON, schema mismatch).
|
|
20
|
+
* All failures are logged to `console.warn` with the provided label.
|
|
21
|
+
*
|
|
22
|
+
* @param url - The URL to fetch.
|
|
23
|
+
* @param init - Standard `fetch` RequestInit options.
|
|
24
|
+
* @param opts - Schema, label, and optional custom fetcher.
|
|
25
|
+
* @returns The parsed and validated data, or `undefined` on failure.
|
|
26
|
+
*/
|
|
27
|
+
export async function fetchAndParse(url, init, opts) {
|
|
28
|
+
const { schema, label, fetcher = fetch } = opts;
|
|
29
|
+
const response = await fetcher(url, init).catch((err) => {
|
|
30
|
+
console.warn(`⚠ ${label} request failed: ${formatError(err)}`);
|
|
31
|
+
return undefined;
|
|
32
|
+
});
|
|
33
|
+
if (!response)
|
|
34
|
+
return undefined;
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
const detail = await readBodySnippet(response);
|
|
37
|
+
console.warn(`⚠ ${label} returned HTTP ${response.status}${detail}`);
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const json = await response.json().catch(() => {
|
|
41
|
+
console.warn(`⚠ ${label} returned invalid JSON`);
|
|
42
|
+
return undefined;
|
|
43
|
+
});
|
|
44
|
+
if (json === undefined)
|
|
45
|
+
return undefined;
|
|
46
|
+
const parsed = schema.safeParse(json);
|
|
47
|
+
if (!parsed.success) {
|
|
48
|
+
console.warn(`⚠ ${label} unexpected response shape: ${parsed.error.message}`);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return parsed.data;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=fetch-and-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-and-parse.js","sourceRoot":"","sources":["../../../../src/shared/http/fetch-and-parse/fetch-and-parse.ts"],"names":[],"mappings":"AAqBA,uEAAuE;AACvE,KAAK,UAAU,eAAe,CAAC,QAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAA6B,EAC7B,IAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC/D,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,oBAAoB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,kBAAkB,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACrD,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,wBAAwB,CAAC,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CACV,KAAK,KAAK,+BAA+B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAChE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/fetch-and-parse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/http/fetch-and-parse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { fetchAndParse } from './fetch-and-parse/index.js';
|
|
2
|
+
export type { FetchAndParseOptions, Fetcher } from './fetch-and-parse/index.js';
|
|
3
|
+
export { pingEndpoint } from './ping-endpoint/index.js';
|
|
4
|
+
export type { PingEndpointOpts } from './ping-endpoint/index.js';
|
|
5
|
+
export { retryFetch } from './retry-fetch/index.js';
|
|
6
|
+
export type { RetryOptions } from './retry-fetch/index.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/ping-endpoint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/http/ping-endpoint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic endpoint ping with HTTP status code mapping.
|
|
3
|
+
*/
|
|
4
|
+
import type { Fetcher } from '../fetch-and-parse/fetch-and-parse.js';
|
|
5
|
+
import type { PingResult } from '../../../types/index.js';
|
|
6
|
+
/** Options for {@link pingEndpoint}. */
|
|
7
|
+
export type PingEndpointOpts = {
|
|
8
|
+
/** The URL to ping. */
|
|
9
|
+
readonly url: string;
|
|
10
|
+
/** HTTP headers to send. */
|
|
11
|
+
readonly headers: Record<string, string>;
|
|
12
|
+
/** Map of HTTP status codes to error messages. */
|
|
13
|
+
readonly statusErrors: Record<number, string>;
|
|
14
|
+
/** Error message for network failures. */
|
|
15
|
+
readonly networkError: string;
|
|
16
|
+
/** Custom fetch function for DI in tests. */
|
|
17
|
+
readonly fetcher?: Fetcher;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Ping an API endpoint and map common HTTP error codes to messages.
|
|
21
|
+
*
|
|
22
|
+
* Returns `{ ok: true }` on success, or `{ ok: false, error }` with
|
|
23
|
+
* a human-readable message on failure. Includes a 10s timeout.
|
|
24
|
+
*
|
|
25
|
+
* @param opts - URL, headers, status-to-error map, and network error message.
|
|
26
|
+
* @returns A ping result with `ok` and optional `error`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function pingEndpoint(opts: PingEndpointOpts): Promise<PingResult>;
|
|
29
|
+
//# sourceMappingURL=ping-endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping-endpoint.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/ping-endpoint/ping-endpoint.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uBAAuB;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ping an API endpoint and map common HTTP error codes to messages.
|
|
3
|
+
*
|
|
4
|
+
* Returns `{ ok: true }` on success, or `{ ok: false, error }` with
|
|
5
|
+
* a human-readable message on failure. Includes a 10s timeout.
|
|
6
|
+
*
|
|
7
|
+
* @param opts - URL, headers, status-to-error map, and network error message.
|
|
8
|
+
* @returns A ping result with `ok` and optional `error`.
|
|
9
|
+
*/
|
|
10
|
+
export async function pingEndpoint(opts) {
|
|
11
|
+
const { url, headers, statusErrors, networkError, fetcher } = opts;
|
|
12
|
+
const doFetch = fetcher ?? fetch;
|
|
13
|
+
try {
|
|
14
|
+
const response = await doFetch(url, {
|
|
15
|
+
headers,
|
|
16
|
+
signal: AbortSignal.timeout(10_000),
|
|
17
|
+
});
|
|
18
|
+
// Drain body to release the connection back to the pool
|
|
19
|
+
await response.arrayBuffer().catch(() => { });
|
|
20
|
+
if (response.ok)
|
|
21
|
+
return { ok: true };
|
|
22
|
+
const mapped = statusErrors[response.status];
|
|
23
|
+
return mapped
|
|
24
|
+
? { ok: false, error: mapped }
|
|
25
|
+
: { ok: false, error: `✗ HTTP ${response.status}` };
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return { ok: false, error: networkError };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ping-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping-endpoint.js","sourceRoot":"","sources":["../../../../src/shared/http/ping-endpoint/ping-endpoint.ts"],"names":[],"mappings":"AAoBA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAsB;IAEtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAClC,OAAO;YACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAErC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,MAAM;YACX,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YAC9B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/retry-fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/http/retry-fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetch with automatic retry for transient failures.
|
|
3
|
+
*
|
|
4
|
+
* Handles 429 (rate limited) with Retry-After header, 5xx with exponential
|
|
5
|
+
* backoff, and network errors. Non-retryable responses (4xx other than 429)
|
|
6
|
+
* are returned immediately.
|
|
7
|
+
*/
|
|
8
|
+
/** Options for retry behaviour. */
|
|
9
|
+
export type RetryOptions = {
|
|
10
|
+
/** Maximum number of retry attempts (excludes the initial attempt). Default: 3. */
|
|
11
|
+
readonly maxRetries?: number;
|
|
12
|
+
/** Base delay in milliseconds for exponential backoff. Default: 1000. */
|
|
13
|
+
readonly baseDelayMs?: number;
|
|
14
|
+
/** Maximum delay in milliseconds. Default: 10000. */
|
|
15
|
+
readonly maxDelayMs?: number;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Fetch with automatic retry for transient failures.
|
|
19
|
+
*
|
|
20
|
+
* - On 429 (rate limited): honours `Retry-After` header, then retries.
|
|
21
|
+
* - On 5xx: retries with exponential backoff.
|
|
22
|
+
* - On other errors: returns the response immediately (no retry).
|
|
23
|
+
* - On network error (fetch throws): retries with exponential backoff.
|
|
24
|
+
* - After `maxRetries` exhausted: returns the last response or throws
|
|
25
|
+
* the last network error.
|
|
26
|
+
*
|
|
27
|
+
* @param url - The URL to fetch.
|
|
28
|
+
* @param init - Optional fetch init (method, headers, body, etc.).
|
|
29
|
+
* @param opts - Retry behaviour options.
|
|
30
|
+
* @returns The fetch Response.
|
|
31
|
+
*/
|
|
32
|
+
export declare function retryFetch(url: string, init?: RequestInit, opts?: RetryOptions): Promise<Response>;
|
|
33
|
+
//# sourceMappingURL=retry-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-fetch.d.ts","sourceRoot":"","sources":["../../../../src/shared/http/retry-fetch/retry-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mCAAmC;AACnC,MAAM,MAAM,YAAY,GAAG;IACzB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AA+FF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,QAAQ,CAAC,CAUnB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetch with automatic retry for transient failures.
|
|
3
|
+
*
|
|
4
|
+
* Handles 429 (rate limited) with Retry-After header, 5xx with exponential
|
|
5
|
+
* backoff, and network errors. Non-retryable responses (4xx other than 429)
|
|
6
|
+
* are returned immediately.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse a Retry-After header value into milliseconds.
|
|
10
|
+
*
|
|
11
|
+
* Supports both delta-seconds (e.g. "120") and HTTP-date formats.
|
|
12
|
+
* Returns `undefined` if the header is missing or unparseable.
|
|
13
|
+
*/
|
|
14
|
+
function parseRetryAfter(header) {
|
|
15
|
+
if (!header)
|
|
16
|
+
return undefined;
|
|
17
|
+
const seconds = parseInt(header, 10);
|
|
18
|
+
if (!Number.isNaN(seconds) && seconds >= 0)
|
|
19
|
+
return seconds * 1000;
|
|
20
|
+
const date = new Date(header);
|
|
21
|
+
if (!Number.isNaN(date.getTime())) {
|
|
22
|
+
const delayMs = date.getTime() - Date.now();
|
|
23
|
+
return delayMs > 0 ? delayMs : 0;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
/** Compute exponential backoff delay, capped at maxDelayMs. */
|
|
28
|
+
function backoffDelay(attempt, baseDelayMs, maxDelayMs) {
|
|
29
|
+
return Math.min(baseDelayMs * 2 ** attempt, maxDelayMs);
|
|
30
|
+
}
|
|
31
|
+
/** Whether an HTTP status code is retryable. */
|
|
32
|
+
function isRetryableStatus(status) {
|
|
33
|
+
return status === 429 || (status >= 500 && status <= 599);
|
|
34
|
+
}
|
|
35
|
+
/** Compute the retry delay for a retryable response. */
|
|
36
|
+
function retryDelay(response, config, attempt) {
|
|
37
|
+
if (response.status === 429) {
|
|
38
|
+
const after = parseRetryAfter(response.headers.get('Retry-After'));
|
|
39
|
+
const fallback = backoffDelay(attempt, config.baseDelayMs, config.maxDelayMs);
|
|
40
|
+
return Math.min(after ?? fallback, config.maxDelayMs);
|
|
41
|
+
}
|
|
42
|
+
return backoffDelay(attempt, config.baseDelayMs, config.maxDelayMs);
|
|
43
|
+
}
|
|
44
|
+
/** Wait for a given number of milliseconds. */
|
|
45
|
+
function delay(ms) {
|
|
46
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
47
|
+
}
|
|
48
|
+
/** Recursive retry implementation. */
|
|
49
|
+
async function attemptFetch(config, attempt) {
|
|
50
|
+
try {
|
|
51
|
+
const response = await fetch(config.url, config.init);
|
|
52
|
+
if (!isRetryableStatus(response.status))
|
|
53
|
+
return response;
|
|
54
|
+
if (attempt >= config.maxRetries)
|
|
55
|
+
return response;
|
|
56
|
+
const ms = retryDelay(response, config, attempt);
|
|
57
|
+
await response.arrayBuffer().catch(() => { });
|
|
58
|
+
await delay(ms);
|
|
59
|
+
return attemptFetch(config, attempt + 1);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
if (attempt >= config.maxRetries)
|
|
63
|
+
throw err;
|
|
64
|
+
const ms = backoffDelay(attempt, config.baseDelayMs, config.maxDelayMs);
|
|
65
|
+
await delay(ms);
|
|
66
|
+
return attemptFetch(config, attempt + 1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Fetch with automatic retry for transient failures.
|
|
71
|
+
*
|
|
72
|
+
* - On 429 (rate limited): honours `Retry-After` header, then retries.
|
|
73
|
+
* - On 5xx: retries with exponential backoff.
|
|
74
|
+
* - On other errors: returns the response immediately (no retry).
|
|
75
|
+
* - On network error (fetch throws): retries with exponential backoff.
|
|
76
|
+
* - After `maxRetries` exhausted: returns the last response or throws
|
|
77
|
+
* the last network error.
|
|
78
|
+
*
|
|
79
|
+
* @param url - The URL to fetch.
|
|
80
|
+
* @param init - Optional fetch init (method, headers, body, etc.).
|
|
81
|
+
* @param opts - Retry behaviour options.
|
|
82
|
+
* @returns The fetch Response.
|
|
83
|
+
*/
|
|
84
|
+
export async function retryFetch(url, init, opts) {
|
|
85
|
+
const config = {
|
|
86
|
+
url,
|
|
87
|
+
init,
|
|
88
|
+
maxRetries: Math.max(0, opts?.maxRetries ?? 3),
|
|
89
|
+
baseDelayMs: opts?.baseDelayMs ?? 1000,
|
|
90
|
+
maxDelayMs: opts?.maxDelayMs ?? 10_000,
|
|
91
|
+
};
|
|
92
|
+
return attemptFetch(config, 0);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=retry-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-fetch.js","sourceRoot":"","sources":["../../../../src/shared/http/retry-fetch/retry-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAqB;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,OAAO,GAAG,IAAI,CAAC;IAElE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+DAA+D;AAC/D,SAAS,YAAY,CACnB,OAAe,EACf,WAAmB,EACnB,UAAkB;IAElB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,gDAAgD;AAChD,SAAS,iBAAiB,CAAC,MAAc;IACvC,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,wDAAwD;AACxD,SAAS,UAAU,CACjB,QAAkB,EAClB,MAAmB,EACnB,OAAe;IAEf,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,YAAY,CAC3B,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AACtE,CAAC;AAED,+CAA+C;AAC/C,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,sCAAsC;AACtC,KAAK,UAAU,YAAY,CACzB,MAAmB,EACnB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QACzD,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO,QAAQ,CAAC;QAElD,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,GAAG,CAAC;QAE5C,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAkB,EAClB,IAAmB;IAEnB,MAAM,MAAM,GAAgB;QAC1B,GAAG;QACH,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC;QAC9C,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI;QACtC,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,MAAM;KACvC,CAAC;IAEF,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/label-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/label-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared label CRUD helpers for board wrappers.
|
|
3
|
+
*
|
|
4
|
+
* Boards with a read-modify-write pattern for labels (Jira, Shortcut,
|
|
5
|
+
* Notion, Azure DevOps) use {@link modifyLabelList} to eliminate the
|
|
6
|
+
* duplicated fetch → check → write boilerplate. All label operations
|
|
7
|
+
* wrap in {@link safeLabel} for consistent error handling.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Wrap a label operation in try-catch with a warning on failure.
|
|
11
|
+
*
|
|
12
|
+
* Label operations are best-effort — they should never crash the run.
|
|
13
|
+
*
|
|
14
|
+
* @param fn - The async label operation to execute.
|
|
15
|
+
* @param operation - Human-readable name for error messages (e.g., `'addLabel'`).
|
|
16
|
+
* @returns Resolves when complete — never rejects.
|
|
17
|
+
*/
|
|
18
|
+
export declare function safeLabel(fn: () => Promise<void>, operation: string): Promise<void>;
|
|
19
|
+
/** Options for {@link modifyLabelList}. */
|
|
20
|
+
export type ModifyLabelListOpts<T extends string | number> = {
|
|
21
|
+
/** Board-specific function to fetch current labels. */
|
|
22
|
+
readonly fetchCurrent: () => Promise<readonly T[] | undefined>;
|
|
23
|
+
/** Board-specific function to write the updated list. */
|
|
24
|
+
readonly writeUpdated: (updated: readonly T[]) => Promise<void>;
|
|
25
|
+
/** The label (or ID) to add or remove. */
|
|
26
|
+
readonly target: T;
|
|
27
|
+
/** Whether to add or remove the target. */
|
|
28
|
+
readonly mode: 'add' | 'remove';
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Read-modify-write a label list with idempotence checking.
|
|
32
|
+
*
|
|
33
|
+
* Fetches the current labels, checks if the target is already present
|
|
34
|
+
* (add) or absent (remove), and writes the updated list only when a
|
|
35
|
+
* change is needed. Works with string labels and numeric IDs.
|
|
36
|
+
*
|
|
37
|
+
* @param opts - Fetch/write callbacks, target label, and add/remove mode.
|
|
38
|
+
* @returns Resolves when the write completes (no-op if unchanged).
|
|
39
|
+
*/
|
|
40
|
+
export declare function modifyLabelList<T extends string | number>(opts: ModifyLabelListOpts<T>): Promise<void>;
|
|
41
|
+
//# sourceMappingURL=label-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-helpers.d.ts","sourceRoot":"","sources":["../../../src/shared/label-helpers/label-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,2CAA2C;AAC3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAC3D,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/D,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;CACjC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7D,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared label CRUD helpers for board wrappers.
|
|
3
|
+
*
|
|
4
|
+
* Boards with a read-modify-write pattern for labels (Jira, Shortcut,
|
|
5
|
+
* Notion, Azure DevOps) use {@link modifyLabelList} to eliminate the
|
|
6
|
+
* duplicated fetch → check → write boilerplate. All label operations
|
|
7
|
+
* wrap in {@link safeLabel} for consistent error handling.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Wrap a label operation in try-catch with a warning on failure.
|
|
11
|
+
*
|
|
12
|
+
* Label operations are best-effort — they should never crash the run.
|
|
13
|
+
*
|
|
14
|
+
* @param fn - The async label operation to execute.
|
|
15
|
+
* @param operation - Human-readable name for error messages (e.g., `'addLabel'`).
|
|
16
|
+
* @returns Resolves when complete — never rejects.
|
|
17
|
+
*/
|
|
18
|
+
export async function safeLabel(fn, operation) {
|
|
19
|
+
try {
|
|
20
|
+
await fn();
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
console.warn(`⚠ ${operation} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Read-modify-write a label list with idempotence checking.
|
|
28
|
+
*
|
|
29
|
+
* Fetches the current labels, checks if the target is already present
|
|
30
|
+
* (add) or absent (remove), and writes the updated list only when a
|
|
31
|
+
* change is needed. Works with string labels and numeric IDs.
|
|
32
|
+
*
|
|
33
|
+
* @param opts - Fetch/write callbacks, target label, and add/remove mode.
|
|
34
|
+
* @returns Resolves when the write completes (no-op if unchanged).
|
|
35
|
+
*/
|
|
36
|
+
export async function modifyLabelList(opts) {
|
|
37
|
+
const { fetchCurrent, writeUpdated, target, mode } = opts;
|
|
38
|
+
const current = await fetchCurrent();
|
|
39
|
+
if (!current)
|
|
40
|
+
return;
|
|
41
|
+
const has = current.includes(target);
|
|
42
|
+
if (mode === 'add' && has)
|
|
43
|
+
return;
|
|
44
|
+
if (mode === 'remove' && !has)
|
|
45
|
+
return;
|
|
46
|
+
const updated = mode === 'add'
|
|
47
|
+
? [...current, target]
|
|
48
|
+
: current.filter((item) => item !== target);
|
|
49
|
+
await writeUpdated(updated);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=label-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-helpers.js","sourceRoot":"","sources":["../../../src/shared/label-helpers/label-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAuB,EACvB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,KAAK,SAAS,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAcD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG;QAAE,OAAO;IAClC,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG;QAAE,OAAO;IAEtC,MAAM,OAAO,GACX,IAAI,KAAK,KAAK;QACZ,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChD,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/remote/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/remote/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remote git host detection — pure parsing functions.
|
|
3
|
+
*
|
|
4
|
+
* Parses git remote URLs to detect the hosting platform (GitHub, GitLab,
|
|
5
|
+
* Bitbucket, etc.) and extract owner/repo/project info. No I/O — the
|
|
6
|
+
* actual `git remote get-url` shell-out lives in `git-ops/`.
|
|
7
|
+
*/
|
|
8
|
+
import type { GitPlatform, RemoteInfo } from '../../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Parse a git remote URL into platform-specific info.
|
|
11
|
+
*
|
|
12
|
+
* Supports HTTPS, SSH, and SSH-URL formats for GitHub, GitLab, Bitbucket
|
|
13
|
+
* (Cloud and Server), Azure DevOps, and self-hosted instances.
|
|
14
|
+
*
|
|
15
|
+
* @param rawUrl - The raw git remote URL.
|
|
16
|
+
* @param platformOverride - Force a specific platform instead of detecting from hostname.
|
|
17
|
+
* @returns Parsed remote info with platform and path details.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseRemote(rawUrl: string, platformOverride?: GitPlatform): RemoteInfo;
|
|
20
|
+
/**
|
|
21
|
+
* Detect the git hosting platform from a hostname.
|
|
22
|
+
*
|
|
23
|
+
* Uses known domain patterns. Self-hosted instances with custom domains
|
|
24
|
+
* (e.g. `git.acme.com`) fall through to `'unknown'` — use
|
|
25
|
+
* `CLANCY_GIT_PLATFORM` env var to override.
|
|
26
|
+
*
|
|
27
|
+
* @param hostname - The hostname from the remote URL.
|
|
28
|
+
* @returns The detected platform.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectPlatformFromHostname(hostname: string): GitPlatform;
|
|
31
|
+
/**
|
|
32
|
+
* Build the API base URL for a given remote.
|
|
33
|
+
*
|
|
34
|
+
* @param remote - The parsed remote info.
|
|
35
|
+
* @param apiUrlOverride - Override from `CLANCY_GIT_API_URL` env var.
|
|
36
|
+
* @returns The API base URL, or `undefined` if not applicable.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildApiBaseUrl(remote: RemoteInfo, apiUrlOverride?: string): string | undefined;
|
|
39
|
+
//# sourceMappingURL=remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/shared/remote/remote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqJlE;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,WAAW,GAC7B,UAAU,CASZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAcxE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAoBpB"}
|