@sascha384/tic 2.0.1 → 2.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/.claude-plugin/plugin.json +1 -1
- package/dist/auth/github.d.ts +27 -0
- package/dist/auth/github.js +96 -0
- package/dist/auth/github.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keychain.d.ts +14 -0
- package/dist/auth/keychain.js +36 -0
- package/dist/auth/keychain.js.map +1 -0
- package/dist/backends/factory.d.ts +5 -2
- package/dist/backends/factory.js +4 -4
- package/dist/backends/factory.js.map +1 -1
- package/dist/backends/github/api.d.ts +9 -0
- package/dist/backends/github/api.js +117 -0
- package/dist/backends/github/api.js.map +1 -0
- package/dist/backends/github/index.d.ts +9 -5
- package/dist/backends/github/index.js +119 -81
- package/dist/backends/github/index.js.map +1 -1
- package/dist/backends/github/mappers.d.ts +1 -0
- package/dist/backends/github/mappers.js.map +1 -1
- package/dist/backends/shared/api-client.d.ts +16 -0
- package/dist/backends/shared/api-client.js +73 -0
- package/dist/backends/shared/api-client.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +17 -0
- package/dist/cli/commands/auth.js +47 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/mcp.js +32 -9
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/index.js +58 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/components/AutocompleteInput.d.ts +2 -1
- package/dist/components/AutocompleteInput.js +5 -1
- package/dist/components/AutocompleteInput.js.map +1 -1
- package/dist/components/MultiAutocompleteInput.d.ts +2 -1
- package/dist/components/MultiAutocompleteInput.js +5 -1
- package/dist/components/MultiAutocompleteInput.js.map +1 -1
- package/dist/components/WorkItemForm.js +12 -0
- package/dist/components/WorkItemForm.js.map +1 -1
- package/dist/stores/backendDataStore.js +12 -1
- package/dist/stores/backendDataStore.js.map +1 -1
- package/package.json +3 -1
- package/dist/backends/github/gh.d.ts +0 -9
- package/dist/backends/github/gh.js +0 -95
- package/dist/backends/github/gh.js.map +0 -1
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import open from 'open';
|
|
1
3
|
import { BaseBackend, UnsupportedOperationError } from '../types.js';
|
|
2
|
-
import {
|
|
4
|
+
import { getGitHubToken, authenticateGitHub } from '../../auth/github.js';
|
|
5
|
+
import { AuthError } from '../shared/api-client.js';
|
|
6
|
+
import { GitHubApiClient } from './api.js';
|
|
3
7
|
import { mapIssueToWorkItem } from './mappers.js';
|
|
4
8
|
const LIST_ISSUES_QUERY = `
|
|
5
9
|
query($owner: String!, $repo: String!, $cursor: String) {
|
|
@@ -57,14 +61,52 @@ const REMOVE_SUB_ISSUE_MUTATION = `
|
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
`;
|
|
64
|
+
const DELETE_ISSUE_MUTATION = `
|
|
65
|
+
mutation($issueId: ID!) {
|
|
66
|
+
deleteIssue(input: { issueId: $issueId }) {
|
|
67
|
+
repository { name }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
60
71
|
export class GitHubBackend extends BaseBackend {
|
|
61
|
-
|
|
62
|
-
|
|
72
|
+
api;
|
|
73
|
+
owner;
|
|
74
|
+
repo;
|
|
63
75
|
cachedMilestones = null;
|
|
64
|
-
constructor(
|
|
76
|
+
constructor(api, owner, repo) {
|
|
65
77
|
super(60_000);
|
|
66
|
-
this.
|
|
67
|
-
|
|
78
|
+
this.api = api;
|
|
79
|
+
this.owner = owner;
|
|
80
|
+
this.repo = repo;
|
|
81
|
+
}
|
|
82
|
+
static async create(cwd, options) {
|
|
83
|
+
const { owner, repo } = GitHubBackend.detectOwnerRepo(cwd);
|
|
84
|
+
let token = getGitHubToken();
|
|
85
|
+
if (!token) {
|
|
86
|
+
if (options?.skipAuth) {
|
|
87
|
+
throw new AuthError('GitHub authentication required. Run "tic auth login github" to authenticate.');
|
|
88
|
+
}
|
|
89
|
+
token = await authenticateGitHub({
|
|
90
|
+
onCode: (code, url) => {
|
|
91
|
+
console.log(`\nGitHub authentication required.`);
|
|
92
|
+
console.log(`Visit ${url} and enter code: ${code}\n`);
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const api = new GitHubApiClient(token);
|
|
97
|
+
return new GitHubBackend(api, owner, repo);
|
|
98
|
+
}
|
|
99
|
+
static detectOwnerRepo(cwd) {
|
|
100
|
+
const output = execSync('git remote -v', {
|
|
101
|
+
cwd,
|
|
102
|
+
encoding: 'utf-8',
|
|
103
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
104
|
+
});
|
|
105
|
+
const match = output.match(/github\.com[:/]([^/\s]+)\/([^/\s.]+?)(?:\.git)?(?:\s|$)/);
|
|
106
|
+
if (!match) {
|
|
107
|
+
throw new Error('Could not detect GitHub owner/repo from git remotes');
|
|
108
|
+
}
|
|
109
|
+
return { owner: match[1], repo: match[2] };
|
|
68
110
|
}
|
|
69
111
|
onCacheInvalidate() {
|
|
70
112
|
this.cachedMilestones = null;
|
|
@@ -107,8 +149,10 @@ export class GitHubBackend extends BaseBackend {
|
|
|
107
149
|
}
|
|
108
150
|
async getAssignees() {
|
|
109
151
|
try {
|
|
110
|
-
const
|
|
111
|
-
const
|
|
152
|
+
const collaborators = [];
|
|
153
|
+
for await (const page of this.api.paginate(`/repos/${this.owner}/${this.repo}/collaborators`)) {
|
|
154
|
+
collaborators.push(...page);
|
|
155
|
+
}
|
|
112
156
|
return collaborators.map((c) => c.login);
|
|
113
157
|
}
|
|
114
158
|
catch {
|
|
@@ -133,11 +177,14 @@ export class GitHubBackend extends BaseBackend {
|
|
|
133
177
|
// No-op — current iteration is always first open milestone
|
|
134
178
|
}
|
|
135
179
|
async listWorkItems(iteration) {
|
|
136
|
-
const { owner, repo } = await this.getOwnerRepo();
|
|
137
180
|
const allIssues = [];
|
|
138
181
|
let cursor = null;
|
|
139
182
|
do {
|
|
140
|
-
const data = await
|
|
183
|
+
const data = await this.api.graphql(LIST_ISSUES_QUERY, {
|
|
184
|
+
owner: this.owner,
|
|
185
|
+
repo: this.repo,
|
|
186
|
+
cursor,
|
|
187
|
+
});
|
|
141
188
|
allIssues.push(...data.repository.issues.nodes);
|
|
142
189
|
cursor = data.repository.issues.pageInfo.hasNextPage
|
|
143
190
|
? data.repository.issues.pageInfo.endCursor
|
|
@@ -150,14 +197,17 @@ export class GitHubBackend extends BaseBackend {
|
|
|
150
197
|
return items;
|
|
151
198
|
}
|
|
152
199
|
async getWorkItem(id) {
|
|
153
|
-
const
|
|
154
|
-
|
|
200
|
+
const data = await this.api.graphql(GET_ISSUE_QUERY, {
|
|
201
|
+
owner: this.owner,
|
|
202
|
+
repo: this.repo,
|
|
203
|
+
number: Number(id),
|
|
204
|
+
});
|
|
155
205
|
return mapIssueToWorkItem(data.repository.issue);
|
|
156
206
|
}
|
|
157
207
|
async ensureLabels(labels) {
|
|
158
208
|
for (const label of labels) {
|
|
159
209
|
try {
|
|
160
|
-
await
|
|
210
|
+
await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/labels`, { name: label });
|
|
161
211
|
}
|
|
162
212
|
catch {
|
|
163
213
|
// Label already exists — ignore
|
|
@@ -169,37 +219,32 @@ export class GitHubBackend extends BaseBackend {
|
|
|
169
219
|
if (data.labels.length > 0) {
|
|
170
220
|
await this.ensureLabels(data.labels);
|
|
171
221
|
}
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
'
|
|
175
|
-
|
|
176
|
-
data.title,
|
|
177
|
-
'--body',
|
|
178
|
-
data.description || '',
|
|
179
|
-
];
|
|
222
|
+
const issueBody = {
|
|
223
|
+
title: data.title,
|
|
224
|
+
body: data.description || '',
|
|
225
|
+
};
|
|
180
226
|
if (data.assignee) {
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
if (data.iteration) {
|
|
184
|
-
args.push('--milestone', data.iteration);
|
|
227
|
+
issueBody.assignees = [data.assignee];
|
|
185
228
|
}
|
|
186
|
-
|
|
187
|
-
|
|
229
|
+
if (data.labels.length > 0) {
|
|
230
|
+
issueBody.labels = data.labels;
|
|
188
231
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
232
|
+
if (data.iteration) {
|
|
233
|
+
const milestones = await this.fetchMilestones();
|
|
234
|
+
const milestone = milestones.find((m) => m.title === data.iteration);
|
|
235
|
+
if (milestone) {
|
|
236
|
+
issueBody.milestone = milestone.number;
|
|
237
|
+
}
|
|
194
238
|
}
|
|
195
|
-
const
|
|
239
|
+
const result = await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/issues`, issueBody);
|
|
240
|
+
const id = String(result.number);
|
|
196
241
|
if (data.parent) {
|
|
197
242
|
try {
|
|
198
243
|
await this.addSubIssue(data.parent, id);
|
|
199
244
|
}
|
|
200
245
|
catch (err) {
|
|
201
246
|
try {
|
|
202
|
-
await
|
|
247
|
+
await this.deleteWorkItem(id);
|
|
203
248
|
}
|
|
204
249
|
catch {
|
|
205
250
|
// Best-effort cleanup
|
|
@@ -229,55 +274,58 @@ export class GitHubBackend extends BaseBackend {
|
|
|
229
274
|
throw new Error(`Failed to update parent relationship for issue #${id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
230
275
|
}
|
|
231
276
|
}
|
|
232
|
-
//
|
|
233
|
-
|
|
234
|
-
|
|
277
|
+
// Build PATCH body for REST API
|
|
278
|
+
const patchBody = {};
|
|
279
|
+
let hasPatch = false;
|
|
280
|
+
if (data.status !== undefined) {
|
|
281
|
+
patchBody.state = data.status === 'closed' ? 'closed' : 'open';
|
|
282
|
+
hasPatch = true;
|
|
235
283
|
}
|
|
236
|
-
else if (data.status === 'open') {
|
|
237
|
-
await ghExec(['issue', 'reopen', id], this.cwd);
|
|
238
|
-
}
|
|
239
|
-
// Handle field edits
|
|
240
|
-
const editArgs = ['issue', 'edit', id];
|
|
241
|
-
let hasEdits = false;
|
|
242
284
|
if (data.title !== undefined) {
|
|
243
|
-
|
|
244
|
-
|
|
285
|
+
patchBody.title = data.title;
|
|
286
|
+
hasPatch = true;
|
|
245
287
|
}
|
|
246
288
|
if (data.description !== undefined) {
|
|
247
|
-
|
|
248
|
-
|
|
289
|
+
patchBody.body = data.description;
|
|
290
|
+
hasPatch = true;
|
|
249
291
|
}
|
|
250
292
|
if (data.iteration !== undefined) {
|
|
251
293
|
if (data.iteration) {
|
|
252
|
-
|
|
294
|
+
const milestones = await this.fetchMilestones();
|
|
295
|
+
const milestone = milestones.find((m) => m.title === data.iteration);
|
|
296
|
+
if (milestone) {
|
|
297
|
+
patchBody.milestone = milestone.number;
|
|
298
|
+
}
|
|
253
299
|
}
|
|
254
300
|
else {
|
|
255
|
-
|
|
301
|
+
patchBody.milestone = null;
|
|
256
302
|
}
|
|
257
|
-
|
|
303
|
+
hasPatch = true;
|
|
258
304
|
}
|
|
259
305
|
if (data.assignee !== undefined) {
|
|
260
306
|
if (data.assignee) {
|
|
261
|
-
|
|
307
|
+
patchBody.assignees = [data.assignee];
|
|
262
308
|
}
|
|
263
|
-
|
|
309
|
+
else {
|
|
310
|
+
patchBody.assignees = [];
|
|
311
|
+
}
|
|
312
|
+
hasPatch = true;
|
|
264
313
|
}
|
|
265
314
|
if (data.labels !== undefined) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
269
|
-
hasEdits = true;
|
|
315
|
+
patchBody.labels = data.labels;
|
|
316
|
+
hasPatch = true;
|
|
270
317
|
}
|
|
271
|
-
if (
|
|
272
|
-
await
|
|
318
|
+
if (hasPatch) {
|
|
319
|
+
await this.api.rest('PATCH', `/repos/${this.owner}/${this.repo}/issues/${id}`, patchBody);
|
|
273
320
|
}
|
|
274
321
|
return this.getWorkItem(id);
|
|
275
322
|
}
|
|
276
323
|
async deleteWorkItem(id) {
|
|
277
|
-
|
|
324
|
+
const nodeId = await this.getIssueNodeId(Number(id));
|
|
325
|
+
await this.api.graphql(DELETE_ISSUE_MUTATION, { issueId: nodeId });
|
|
278
326
|
}
|
|
279
327
|
async addComment(workItemId, comment) {
|
|
280
|
-
await
|
|
328
|
+
await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/issues/${workItemId}/comments`, { body: comment.body });
|
|
281
329
|
return {
|
|
282
330
|
author: comment.author,
|
|
283
331
|
date: new Date().toISOString(),
|
|
@@ -285,11 +333,11 @@ export class GitHubBackend extends BaseBackend {
|
|
|
285
333
|
};
|
|
286
334
|
}
|
|
287
335
|
getItemUrl(id) {
|
|
288
|
-
|
|
289
|
-
return result.url;
|
|
336
|
+
return `https://github.com/${this.owner}/${this.repo}/issues/${id}`;
|
|
290
337
|
}
|
|
291
338
|
async openItem(id) {
|
|
292
|
-
|
|
339
|
+
const url = this.getItemUrl(id);
|
|
340
|
+
await open(url);
|
|
293
341
|
}
|
|
294
342
|
/* eslint-disable @typescript-eslint/require-await, @typescript-eslint/no-unused-vars */
|
|
295
343
|
async listTemplates() {
|
|
@@ -309,33 +357,27 @@ export class GitHubBackend extends BaseBackend {
|
|
|
309
357
|
}
|
|
310
358
|
/* eslint-enable @typescript-eslint/require-await, @typescript-eslint/no-unused-vars */
|
|
311
359
|
async getIssueNodeId(issueNumber) {
|
|
312
|
-
const { owner, repo
|
|
313
|
-
const data = await ghGraphQL(GET_ISSUE_NODE_ID_QUERY, { owner, repo, number: issueNumber }, this.cwd);
|
|
360
|
+
const data = await this.api.graphql(GET_ISSUE_NODE_ID_QUERY, { owner: this.owner, repo: this.repo, number: issueNumber });
|
|
314
361
|
return data.repository.issue.id;
|
|
315
362
|
}
|
|
316
363
|
async addSubIssue(parentNumber, childNumber) {
|
|
317
364
|
const parentId = await this.getIssueNodeId(Number(parentNumber));
|
|
318
365
|
const childId = await this.getIssueNodeId(Number(childNumber));
|
|
319
|
-
await
|
|
366
|
+
await this.api.graphql(ADD_SUB_ISSUE_MUTATION, { parentId, childId });
|
|
320
367
|
}
|
|
321
368
|
async removeSubIssue(parentNumber, childNumber) {
|
|
322
369
|
const parentId = await this.getIssueNodeId(Number(parentNumber));
|
|
323
370
|
const childId = await this.getIssueNodeId(Number(childNumber));
|
|
324
|
-
await
|
|
325
|
-
}
|
|
326
|
-
async getOwnerRepo() {
|
|
327
|
-
if (!this.ownerRepo) {
|
|
328
|
-
const nwo = await this.getRepoNwo();
|
|
329
|
-
const [owner, repo] = nwo.split('/');
|
|
330
|
-
this.ownerRepo = { owner: owner, repo: repo };
|
|
331
|
-
}
|
|
332
|
-
return this.ownerRepo;
|
|
371
|
+
await this.api.graphql(REMOVE_SUB_ISSUE_MUTATION, { parentId, childId });
|
|
333
372
|
}
|
|
334
373
|
async fetchMilestones() {
|
|
335
374
|
if (this.cachedMilestones)
|
|
336
375
|
return this.cachedMilestones;
|
|
337
|
-
const
|
|
338
|
-
|
|
376
|
+
const milestones = [];
|
|
377
|
+
for await (const page of this.api.paginate(`/repos/${this.owner}/${this.repo}/milestones`)) {
|
|
378
|
+
milestones.push(...page);
|
|
379
|
+
}
|
|
380
|
+
this.cachedMilestones = milestones;
|
|
339
381
|
return this.cachedMilestones;
|
|
340
382
|
}
|
|
341
383
|
async fetchOpenMilestones() {
|
|
@@ -352,9 +394,5 @@ export class GitHubBackend extends BaseBackend {
|
|
|
352
394
|
return a.due_on.localeCompare(b.due_on);
|
|
353
395
|
});
|
|
354
396
|
}
|
|
355
|
-
async getRepoNwo() {
|
|
356
|
-
const result = await gh(['repo', 'view', '--json', 'nameWithOwner'], this.cwd);
|
|
357
|
-
return result.nameWithOwner;
|
|
358
|
-
}
|
|
359
397
|
}
|
|
360
398
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AASrE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;CAiBzB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;CAcvB,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;CAM/B,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;CAO9B,CAAC;AAEF,MAAM,yBAAyB,GAAG;;;;;;;CAOjC,CAAC;AAuBF,MAAM,OAAO,aAAc,SAAQ,WAAW;IACpC,GAAG,CAAS;IACZ,SAAS,GAA2C,IAAI,CAAC;IACzD,gBAAgB,GAAyB,IAAI,CAAC;IAEtD,YAAY,GAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,UAAU,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAEkB,iBAAiB;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,eAAe;QACb,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,KAAK;aACjB;YACD,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE;gBACd,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,KAAK;aACnB;SACF,CAAC;IACJ,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,gBAAgB;QACpB,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,EAAE,CAC5B,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,IAAI,gBAAgB,EAAE,MAAM,EAAE,GAAG,CAAC,EAC5D,IAAI,CAAC,GAAG,CACT,CAAC;YACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,mBAAmB,CAAC,KAAa;QACrC,2DAA2D;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAkB;QACpC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,SAAS,GAAc,EAAE,CAAC;QAChC,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,GAAG,CAAC;YACF,MAAM,IAAI,GAAuB,MAAM,SAAS,CAC9C,iBAAiB,EACjB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EACvB,IAAI,CAAC,GAAG,CACT,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;gBAClD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS;gBAC3C,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,QAAQ,MAAM,KAAK,IAAI,EAAE;QAE1B,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,SAAS,CAC1B,eAAe,EACf,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EACnC,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAgB;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAiB;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG;YACX,OAAO;YACP,QAAQ;YACR,SAAS;YACT,IAAI,CAAC,KAAK;YACV,QAAQ;YACR,IAAI,CAAC,WAAW,IAAI,EAAE;SACvB,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,MAAM,cAAc,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,IAAuB;QACtD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,mDAAmD,EAAE,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtC,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAmB;QACtD,MAAM,MAAM,CACV,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EACxD,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,MAAM,MAAM,GAAG,MAAM,CACnB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EACtC,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,SAAmB;QACtC,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAmB;QAEnB,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,uFAAuF;IAE/E,KAAK,CAAC,cAAc,CAAC,WAAmB;QAC9C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,SAAS,CAC1B,uBAAuB,EACvB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EACpC,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,YAAoB,EACpB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,MAAM,SAAS,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,YAAoB,EACpB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,MAAM,SAAS,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,KAAM,EAAE,IAAI,EAAE,IAAK,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,CAC9B,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,IAAI,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,EACzD,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,UAAU;aACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,MAAM,GAAG,MAAM,EAAE,CACrB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,EAC3C,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/github/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/backends/github/mappers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/backends/github/mappers.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK;QAC9B,IAAI,EAAE,SAAS,CAAC,SAAS;QACzB,IAAI,EAAE,SAAS,CAAC,IAAI;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QAC/B,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACpD,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzC,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7D,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class AuthError extends Error {
|
|
2
|
+
constructor(message?: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class RateLimitError extends Error {
|
|
5
|
+
resetAt: Date;
|
|
6
|
+
constructor(resetAt: Date, message?: string);
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class BaseApiClient {
|
|
9
|
+
protected token: string;
|
|
10
|
+
protected baseUrl: string;
|
|
11
|
+
constructor(token: string, baseUrl: string);
|
|
12
|
+
protected fetch<T>(method: string, path: string, body?: unknown): Promise<T>;
|
|
13
|
+
protected retry<T>(fn: () => Promise<T>): Promise<T>;
|
|
14
|
+
protected checkRateLimit(headers: Headers): void;
|
|
15
|
+
abstract paginate<T>(path: string): AsyncGenerator<T[]>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export class AuthError extends Error {
|
|
2
|
+
constructor(message = 'Authentication failed') {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = 'AuthError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class RateLimitError extends Error {
|
|
8
|
+
resetAt;
|
|
9
|
+
constructor(resetAt, message = 'Rate limit exceeded') {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'RateLimitError';
|
|
12
|
+
this.resetAt = resetAt;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class BaseApiClient {
|
|
16
|
+
token;
|
|
17
|
+
baseUrl;
|
|
18
|
+
constructor(token, baseUrl) {
|
|
19
|
+
this.token = token;
|
|
20
|
+
this.baseUrl = baseUrl;
|
|
21
|
+
}
|
|
22
|
+
async fetch(method, path, body) {
|
|
23
|
+
const url = this.baseUrl + path;
|
|
24
|
+
const headers = {
|
|
25
|
+
Authorization: `Bearer ${this.token}`,
|
|
26
|
+
Accept: 'application/json',
|
|
27
|
+
};
|
|
28
|
+
const init = { method, headers };
|
|
29
|
+
if (body !== undefined && ['POST', 'PATCH', 'PUT'].includes(method)) {
|
|
30
|
+
headers['Content-Type'] = 'application/json';
|
|
31
|
+
init.body = JSON.stringify(body);
|
|
32
|
+
}
|
|
33
|
+
const response = await globalThis.fetch(url, init);
|
|
34
|
+
this.checkRateLimit(response.headers);
|
|
35
|
+
if (response.status === 401) {
|
|
36
|
+
throw new AuthError();
|
|
37
|
+
}
|
|
38
|
+
if (response.status === 403) {
|
|
39
|
+
const remaining = response.headers.get('X-RateLimit-Remaining');
|
|
40
|
+
const reset = response.headers.get('X-RateLimit-Reset');
|
|
41
|
+
if (remaining === '0' && reset) {
|
|
42
|
+
throw new RateLimitError(new Date(Number(reset) * 1000));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
const text = await response.text();
|
|
47
|
+
throw new Error(`HTTP ${response.status}: ${text}`);
|
|
48
|
+
}
|
|
49
|
+
return (await response.json());
|
|
50
|
+
}
|
|
51
|
+
async retry(fn) {
|
|
52
|
+
try {
|
|
53
|
+
return await fn();
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (error instanceof AuthError || error instanceof RateLimitError) {
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
if (error instanceof Error && error.message.startsWith('HTTP 5')) {
|
|
60
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
61
|
+
return await fn();
|
|
62
|
+
}
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
checkRateLimit(headers) {
|
|
67
|
+
const remaining = headers.get('X-RateLimit-Remaining');
|
|
68
|
+
if (remaining !== null && Number(remaining) < 100) {
|
|
69
|
+
console.warn(`API rate limit warning: ${remaining} requests remaining`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/backends/shared/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authenticate with a backend provider using the device code flow.
|
|
3
|
+
* Currently supports: github
|
|
4
|
+
*/
|
|
5
|
+
export declare function runAuthLogin(provider: string): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Return authentication status for all known providers.
|
|
8
|
+
*/
|
|
9
|
+
export declare function runAuthStatus(): {
|
|
10
|
+
provider: string;
|
|
11
|
+
authenticated: boolean;
|
|
12
|
+
}[];
|
|
13
|
+
/**
|
|
14
|
+
* Remove stored credentials for a provider.
|
|
15
|
+
* Currently supports: github
|
|
16
|
+
*/
|
|
17
|
+
export declare function runAuthLogout(provider: string): void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { authenticateGitHub, clearGitHubToken, GITHUB_ACCOUNT, } from '../../auth/github.js';
|
|
2
|
+
import { getToken } from '../../auth/keychain.js';
|
|
3
|
+
const VALID_PROVIDERS = ['github'];
|
|
4
|
+
function assertProvider(provider) {
|
|
5
|
+
if (!VALID_PROVIDERS.includes(provider)) {
|
|
6
|
+
throw new Error(`Unknown provider "${provider}". Valid providers: ${VALID_PROVIDERS.join(', ')}`);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Authenticate with a backend provider using the device code flow.
|
|
11
|
+
* Currently supports: github
|
|
12
|
+
*/
|
|
13
|
+
export async function runAuthLogin(provider) {
|
|
14
|
+
assertProvider(provider);
|
|
15
|
+
switch (provider) {
|
|
16
|
+
case 'github':
|
|
17
|
+
return authenticateGitHub({
|
|
18
|
+
onCode(userCode, verificationUri) {
|
|
19
|
+
console.log(`Open ${verificationUri} and enter code: ${userCode}`);
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Return authentication status for all known providers.
|
|
26
|
+
*/
|
|
27
|
+
export function runAuthStatus() {
|
|
28
|
+
return [
|
|
29
|
+
{
|
|
30
|
+
provider: 'github',
|
|
31
|
+
authenticated: getToken(GITHUB_ACCOUNT) !== null,
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Remove stored credentials for a provider.
|
|
37
|
+
* Currently supports: github
|
|
38
|
+
*/
|
|
39
|
+
export function runAuthLogout(provider) {
|
|
40
|
+
assertProvider(provider);
|
|
41
|
+
switch (provider) {
|
|
42
|
+
case 'github':
|
|
43
|
+
clearGitHubToken();
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAU,CAAC;AAG5C,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAoB,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,uBAAuB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEzB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC;gBACxB,MAAM,CAAC,QAAQ,EAAE,eAAe;oBAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,eAAe,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC;aACF,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAI3B,OAAO;QACL;YACE,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI;SACjD;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEzB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,gBAAgB,EAAE,CAAC;YACnB,MAAM;IACV,CAAC;AACH,CAAC"}
|
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -2,7 +2,8 @@ import { VERSION } from '../../version.js';
|
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { createBackendWithSync, VALID_BACKENDS, } from '../../backends/factory.js';
|
|
5
|
+
import { createBackend, createBackendWithSync, VALID_BACKENDS, } from '../../backends/factory.js';
|
|
6
|
+
import { AuthError } from '../../backends/shared/api-client.js';
|
|
6
7
|
import { configStore } from '../../stores/configStore.js';
|
|
7
8
|
import fs from 'node:fs';
|
|
8
9
|
import path from 'node:path';
|
|
@@ -490,10 +491,22 @@ export async function startMcpServer() {
|
|
|
490
491
|
let backend = null;
|
|
491
492
|
const syncState = { syncManager: null, queue: null };
|
|
492
493
|
if (isTicProject(root)) {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
494
|
+
try {
|
|
495
|
+
const setup = await createBackendWithSync(root, { skipAuth: true });
|
|
496
|
+
backend = setup.backend;
|
|
497
|
+
syncState.syncManager = setup.syncManager;
|
|
498
|
+
syncState.queue = setup.queue;
|
|
499
|
+
}
|
|
500
|
+
catch (err) {
|
|
501
|
+
if (err instanceof AuthError) {
|
|
502
|
+
// Remote backend requires auth — fall back to local-only so local operations still work
|
|
503
|
+
console.error(err.message);
|
|
504
|
+
backend = await createBackend(root);
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
throw err;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
497
510
|
}
|
|
498
511
|
const pendingDeletes = createDeleteTracker();
|
|
499
512
|
const guardedBackend = new Proxy({}, {
|
|
@@ -508,10 +521,20 @@ export async function startMcpServer() {
|
|
|
508
521
|
server.tool('init_project', 'Initialize a new tic project', async () => {
|
|
509
522
|
const result = await handleInitProject(root);
|
|
510
523
|
if (!result.isError && !backend && isTicProject(root)) {
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
524
|
+
try {
|
|
525
|
+
const setup = await createBackendWithSync(root, { skipAuth: true });
|
|
526
|
+
backend = setup.backend;
|
|
527
|
+
syncState.syncManager = setup.syncManager;
|
|
528
|
+
syncState.queue = setup.queue;
|
|
529
|
+
}
|
|
530
|
+
catch (err) {
|
|
531
|
+
if (err instanceof AuthError) {
|
|
532
|
+
// Remote backend requires auth — fall back to local-only
|
|
533
|
+
backend = await createBackend(root);
|
|
534
|
+
return error(err.message);
|
|
535
|
+
}
|
|
536
|
+
throw err;
|
|
537
|
+
}
|
|
515
538
|
}
|
|
516
539
|
return result;
|
|
517
540
|
});
|