@ghcrawl/api-contract 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +22 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +36 -1
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +748 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +38 -0
- package/dist/contracts.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ActionRequest, type ActionResponse, type ClusterDetailResponse, type ClusterSummariesResponse, type ClustersResponse, type HealthResponse, type RefreshRequest, type RefreshResponse, type RepositoriesResponse, type SearchMode, type SearchResponse, type ThreadsResponse } from './contracts.js';
|
|
1
|
+
import { type ActionRequest, type ActionResponse, type CloseResponse, type AuthorThreadsResponse, type ClusterDetailResponse, type ClusterSummariesResponse, type ClustersResponse, type HealthResponse, type RefreshRequest, type RefreshResponse, type RepositoriesResponse, type SearchMode, type SearchResponse, type ThreadsResponse } from './contracts.js';
|
|
2
2
|
export type GitcrawlClient = {
|
|
3
3
|
health: () => Promise<HealthResponse>;
|
|
4
4
|
listRepositories: () => Promise<RepositoriesResponse>;
|
|
@@ -6,7 +6,15 @@ export type GitcrawlClient = {
|
|
|
6
6
|
owner: string;
|
|
7
7
|
repo: string;
|
|
8
8
|
kind?: 'issue' | 'pull_request';
|
|
9
|
+
numbers?: number[];
|
|
10
|
+
includeClosed?: boolean;
|
|
9
11
|
}) => Promise<ThreadsResponse>;
|
|
12
|
+
listAuthorThreads: (params: {
|
|
13
|
+
owner: string;
|
|
14
|
+
repo: string;
|
|
15
|
+
login: string;
|
|
16
|
+
includeClosed?: boolean;
|
|
17
|
+
}) => Promise<AuthorThreadsResponse>;
|
|
10
18
|
search: (params: {
|
|
11
19
|
owner: string;
|
|
12
20
|
repo: string;
|
|
@@ -16,6 +24,7 @@ export type GitcrawlClient = {
|
|
|
16
24
|
listClusters: (params: {
|
|
17
25
|
owner: string;
|
|
18
26
|
repo: string;
|
|
27
|
+
includeClosed?: boolean;
|
|
19
28
|
}) => Promise<ClustersResponse>;
|
|
20
29
|
listClusterSummaries: (params: {
|
|
21
30
|
owner: string;
|
|
@@ -24,6 +33,7 @@ export type GitcrawlClient = {
|
|
|
24
33
|
limit?: number;
|
|
25
34
|
sort?: 'recent' | 'size';
|
|
26
35
|
search?: string;
|
|
36
|
+
includeClosed?: boolean;
|
|
27
37
|
}) => Promise<ClusterSummariesResponse>;
|
|
28
38
|
getClusterDetail: (params: {
|
|
29
39
|
owner: string;
|
|
@@ -31,9 +41,20 @@ export type GitcrawlClient = {
|
|
|
31
41
|
clusterId: number;
|
|
32
42
|
memberLimit?: number;
|
|
33
43
|
bodyChars?: number;
|
|
44
|
+
includeClosed?: boolean;
|
|
34
45
|
}) => Promise<ClusterDetailResponse>;
|
|
35
46
|
refresh: (request: RefreshRequest) => Promise<RefreshResponse>;
|
|
36
47
|
rerun: (request: ActionRequest) => Promise<ActionResponse>;
|
|
48
|
+
closeThread: (request: {
|
|
49
|
+
owner: string;
|
|
50
|
+
repo: string;
|
|
51
|
+
threadNumber: number;
|
|
52
|
+
}) => Promise<CloseResponse>;
|
|
53
|
+
closeCluster: (request: {
|
|
54
|
+
owner: string;
|
|
55
|
+
repo: string;
|
|
56
|
+
clusterId: number;
|
|
57
|
+
}) => Promise<CloseResponse>;
|
|
37
58
|
};
|
|
38
59
|
type FetchLike = typeof fetch;
|
|
39
60
|
export declare function createGitcrawlClient(baseUrl: string, fetchImpl?: FetchLike): GitcrawlClient;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { actionRequestSchema, actionResponseSchema, clusterDetailResponseSchema, clusterSummariesResponseSchema, clustersResponseSchema, healthResponseSchema, refreshRequestSchema, refreshResponseSchema, repositoriesResponseSchema, searchResponseSchema, threadsResponseSchema, } from './contracts.js';
|
|
1
|
+
import { actionRequestSchema, actionResponseSchema, closeClusterRequestSchema, closeResponseSchema, closeThreadRequestSchema, authorThreadsResponseSchema, clusterDetailResponseSchema, clusterSummariesResponseSchema, clustersResponseSchema, healthResponseSchema, refreshRequestSchema, refreshResponseSchema, repositoriesResponseSchema, searchResponseSchema, threadsResponseSchema, } from './contracts.js';
|
|
2
2
|
async function readJson(res, schema) {
|
|
3
3
|
if (!res.ok) {
|
|
4
4
|
const text = await res.text().catch(() => '');
|
|
@@ -22,9 +22,20 @@ export function createGitcrawlClient(baseUrl, fetchImpl = fetch) {
|
|
|
22
22
|
const search = new URLSearchParams({ owner: params.owner, repo: params.repo });
|
|
23
23
|
if (params.kind)
|
|
24
24
|
search.set('kind', params.kind);
|
|
25
|
+
if (params.numbers && params.numbers.length > 0)
|
|
26
|
+
search.set('numbers', params.numbers.join(','));
|
|
27
|
+
if (params.includeClosed)
|
|
28
|
+
search.set('includeClosed', 'true');
|
|
25
29
|
const res = await fetchImpl(`${normalized}/threads?${search.toString()}`);
|
|
26
30
|
return readJson(res, threadsResponseSchema);
|
|
27
31
|
},
|
|
32
|
+
async listAuthorThreads(params) {
|
|
33
|
+
const search = new URLSearchParams({ owner: params.owner, repo: params.repo, login: params.login });
|
|
34
|
+
if (params.includeClosed)
|
|
35
|
+
search.set('includeClosed', 'true');
|
|
36
|
+
const res = await fetchImpl(`${normalized}/author-threads?${search.toString()}`);
|
|
37
|
+
return readJson(res, authorThreadsResponseSchema);
|
|
38
|
+
},
|
|
28
39
|
async search(params) {
|
|
29
40
|
const search = new URLSearchParams({
|
|
30
41
|
owner: params.owner,
|
|
@@ -38,6 +49,8 @@ export function createGitcrawlClient(baseUrl, fetchImpl = fetch) {
|
|
|
38
49
|
},
|
|
39
50
|
async listClusters(params) {
|
|
40
51
|
const search = new URLSearchParams({ owner: params.owner, repo: params.repo });
|
|
52
|
+
if (params.includeClosed)
|
|
53
|
+
search.set('includeClosed', 'true');
|
|
41
54
|
const res = await fetchImpl(`${normalized}/clusters?${search.toString()}`);
|
|
42
55
|
return readJson(res, clustersResponseSchema);
|
|
43
56
|
},
|
|
@@ -51,6 +64,8 @@ export function createGitcrawlClient(baseUrl, fetchImpl = fetch) {
|
|
|
51
64
|
search.set('sort', params.sort);
|
|
52
65
|
if (params.search)
|
|
53
66
|
search.set('search', params.search);
|
|
67
|
+
if (params.includeClosed)
|
|
68
|
+
search.set('includeClosed', 'true');
|
|
54
69
|
const res = await fetchImpl(`${normalized}/cluster-summaries?${search.toString()}`);
|
|
55
70
|
return readJson(res, clusterSummariesResponseSchema);
|
|
56
71
|
},
|
|
@@ -64,6 +79,8 @@ export function createGitcrawlClient(baseUrl, fetchImpl = fetch) {
|
|
|
64
79
|
search.set('memberLimit', String(params.memberLimit));
|
|
65
80
|
if (params.bodyChars !== undefined)
|
|
66
81
|
search.set('bodyChars', String(params.bodyChars));
|
|
82
|
+
if (params.includeClosed)
|
|
83
|
+
search.set('includeClosed', 'true');
|
|
67
84
|
const res = await fetchImpl(`${normalized}/cluster-detail?${search.toString()}`);
|
|
68
85
|
return readJson(res, clusterDetailResponseSchema);
|
|
69
86
|
},
|
|
@@ -85,6 +102,24 @@ export function createGitcrawlClient(baseUrl, fetchImpl = fetch) {
|
|
|
85
102
|
});
|
|
86
103
|
return readJson(res, actionResponseSchema);
|
|
87
104
|
},
|
|
105
|
+
async closeThread(request) {
|
|
106
|
+
const body = closeThreadRequestSchema.parse(request);
|
|
107
|
+
const res = await fetchImpl(`${normalized}/actions/close-thread`, {
|
|
108
|
+
method: 'POST',
|
|
109
|
+
headers: { 'content-type': 'application/json' },
|
|
110
|
+
body: JSON.stringify(body),
|
|
111
|
+
});
|
|
112
|
+
return readJson(res, closeResponseSchema);
|
|
113
|
+
},
|
|
114
|
+
async closeCluster(request) {
|
|
115
|
+
const body = closeClusterRequestSchema.parse(request);
|
|
116
|
+
const res = await fetchImpl(`${normalized}/actions/close-cluster`, {
|
|
117
|
+
method: 'POST',
|
|
118
|
+
headers: { 'content-type': 'application/json' },
|
|
119
|
+
body: JSON.stringify(body),
|
|
120
|
+
});
|
|
121
|
+
return readJson(res, closeResponseSchema);
|
|
122
|
+
},
|
|
88
123
|
};
|
|
89
124
|
}
|
|
90
125
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|