process-graph 1.0.6 → 1.1.1
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/README.md +85 -17
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +92 -0
- package/dist/cli.d.ts +512 -0
- package/dist/cli.js +3 -0
- package/dist/control-aDk9560d.js +294 -0
- package/dist/detail-panel-B1ZmMuJT.js +341 -0
- package/dist/dist-BpCBmnMl.js +582 -0
- package/dist/dist-HLlW8vgT.js +1388 -0
- package/dist/dist-IjrgWhHQ.js +3 -0
- package/dist/errors-BZe5WzCn.js +19 -0
- package/dist/exit-codes-0ultCqdS.js +23 -0
- package/dist/graphql-C1j5wQFz.d.ts +631 -0
- package/dist/index-CCfe0csl.d.ts +353 -0
- package/dist/index-CmZOswkx.d.ts +512 -0
- package/dist/index-CoA6vXqe.d.ts +404 -0
- package/dist/index-CptUHq6F.d.ts +58 -0
- package/dist/index-CrM5qWUA.d.ts +110 -0
- package/dist/index-DhbvDgK4.d.ts +1582 -0
- package/dist/index-DricKcyl.d.ts +421 -0
- package/dist/index.d.ts +111 -4
- package/dist/index.js +929 -5
- package/dist/layout-CCM-KBdp.js +307 -0
- package/dist/layout.d.ts +8 -0
- package/dist/layout.js +2 -0
- package/dist/node-AchI1T-K.js +40 -0
- package/dist/open-CyRXJ4bt.js +29 -0
- package/dist/parse-CuipC_2K.js +41 -0
- package/dist/queries-CCexJAE2.js +2202 -0
- package/dist/react-flow/style.css +658 -0
- package/dist/react-flow.d.ts +173 -0
- package/dist/react-flow.js +450 -0
- package/dist/react.d.ts +2 -0
- package/dist/react.js +107 -0
- package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/router-D4gtTlXm.js +188 -0
- package/dist/schema-CVnS6HiX.js +234 -0
- package/dist/selection-BW_xXWOy.js +314 -0
- package/dist/source/github/node.d.ts +16 -0
- package/dist/source/github/node.js +2 -0
- package/dist/source/github.d.ts +49 -0
- package/dist/source/github.js +201 -0
- package/dist/source-DRDpEA8Q.js +1316 -0
- package/dist/status-Bm1CGu9C.js +11 -0
- package/dist/store/node.d.ts +24 -0
- package/dist/store/node.js +2 -0
- package/dist/store/wasm/worker.d.ts +16 -0
- package/dist/store/wasm/worker.js +98 -0
- package/dist/store/wasm.d.ts +9 -0
- package/dist/store/wasm.js +11 -0
- package/dist/store-BcR70CaO.js +1287 -0
- package/dist/store.d.ts +1328 -0
- package/dist/store.js +238 -0
- package/dist/ui/style.css +351 -0
- package/dist/ui.d.ts +235 -0
- package/dist/ui.js +2 -0
- package/dist/validate-DF3mQZww.js +125 -0
- package/package.json +150 -15
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
import { K as OpenIds, a as Overlay, g as Model } from "./index-CmZOswkx.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { ContractRouterClient, InitialInputSchema, ProcedureContract, RouterContract, eventIterator } from "@orpc/contract";
|
|
4
|
+
import { ContractedRouter, DefaultInitialContext } from "@orpc/server";
|
|
5
|
+
//#region ../../core/graph/source-contract/dist/schema.d.ts
|
|
6
|
+
/** A participant as the model declares it: an organisation, a repository, a person. */
|
|
7
|
+
declare const participantSchema: z.ZodReadonly<z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
label: z.ZodString;
|
|
10
|
+
kind: z.ZodEnum<{
|
|
11
|
+
role: "role";
|
|
12
|
+
system: "system";
|
|
13
|
+
entity: "entity";
|
|
14
|
+
}>;
|
|
15
|
+
}, z.core.$strict>>;
|
|
16
|
+
/** A transition as the model declares it. A source emits one per dependency, from the prerequisite to the work that waits on it. */
|
|
17
|
+
declare const transitionSchema: z.ZodReadonly<z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
source: z.ZodString;
|
|
20
|
+
target: z.ZodString;
|
|
21
|
+
trigger: z.ZodExactOptional<z.ZodString>;
|
|
22
|
+
guard: z.ZodExactOptional<z.ZodString>;
|
|
23
|
+
condition: z.ZodExactOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
24
|
+
kind: z.ZodLiteral<"not">;
|
|
25
|
+
operand: typeof import("trilean").PredicateNodeSchema;
|
|
26
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
27
|
+
kind: z.ZodLiteral<"and">;
|
|
28
|
+
left: typeof import("trilean").PredicateNodeSchema;
|
|
29
|
+
right: typeof import("trilean").PredicateNodeSchema;
|
|
30
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
31
|
+
kind: z.ZodLiteral<"or">;
|
|
32
|
+
left: typeof import("trilean").PredicateNodeSchema;
|
|
33
|
+
right: typeof import("trilean").PredicateNodeSchema;
|
|
34
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
35
|
+
kind: z.ZodLiteral<"allOf">;
|
|
36
|
+
operands: z.ZodArray<typeof import("trilean").PredicateNodeSchema>;
|
|
37
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
38
|
+
kind: z.ZodLiteral<"anyOf">;
|
|
39
|
+
operands: z.ZodArray<typeof import("trilean").PredicateNodeSchema>;
|
|
40
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
41
|
+
kind: z.ZodLiteral<"compare">;
|
|
42
|
+
op: z.ZodEnum<{
|
|
43
|
+
gt: "gt";
|
|
44
|
+
gte: "gte";
|
|
45
|
+
lt: "lt";
|
|
46
|
+
lte: "lte";
|
|
47
|
+
eq: "eq";
|
|
48
|
+
neq: "neq";
|
|
49
|
+
}>;
|
|
50
|
+
left: typeof import("trilean").ExpressionNodeSchema;
|
|
51
|
+
right: typeof import("trilean").ExpressionNodeSchema;
|
|
52
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
53
|
+
kind: z.ZodLiteral<"textCompare">;
|
|
54
|
+
op: z.ZodEnum<{
|
|
55
|
+
equals: "equals";
|
|
56
|
+
notEquals: "notEquals";
|
|
57
|
+
matches: "matches";
|
|
58
|
+
notMatches: "notMatches";
|
|
59
|
+
portableMatches: "portableMatches";
|
|
60
|
+
portableNotMatches: "portableNotMatches";
|
|
61
|
+
}>;
|
|
62
|
+
left: typeof import("trilean").ExpressionNodeSchema;
|
|
63
|
+
right: typeof import("trilean").ExpressionNodeSchema;
|
|
64
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
65
|
+
kind: z.ZodLiteral<"memberOf">;
|
|
66
|
+
op: z.ZodEnum<{
|
|
67
|
+
in: "in";
|
|
68
|
+
notIn: "notIn";
|
|
69
|
+
}>;
|
|
70
|
+
operand: typeof import("trilean").ExpressionNodeSchema;
|
|
71
|
+
candidates: z.ZodArray<typeof import("trilean").ExpressionNodeSchema>;
|
|
72
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
73
|
+
kind: z.ZodLiteral<"exists">;
|
|
74
|
+
operand: typeof import("trilean").ExpressionNodeSchema;
|
|
75
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
76
|
+
kind: z.ZodLiteral<"some">;
|
|
77
|
+
collection: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
78
|
+
item: typeof import("trilean").PredicateNodeSchema;
|
|
79
|
+
filter: z.ZodOptional<typeof import("trilean").PredicateNodeSchema>;
|
|
80
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
81
|
+
kind: z.ZodLiteral<"every">;
|
|
82
|
+
collection: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
83
|
+
item: typeof import("trilean").PredicateNodeSchema;
|
|
84
|
+
filter: z.ZodOptional<typeof import("trilean").PredicateNodeSchema>;
|
|
85
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
86
|
+
kind: z.ZodLiteral<"treeReference">;
|
|
87
|
+
key: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
88
|
+
}, z.core.$strip>], "kind">>;
|
|
89
|
+
effect: z.ZodExactOptional<z.ZodString>;
|
|
90
|
+
}, z.core.$strict>>;
|
|
91
|
+
/**
|
|
92
|
+
* An activity bound to the external record it stands for. `source` is required here, where the model leaves it optional, and it equals `id`: the source-qualified identifier (`github:org/repo#12`) is the element's identity, so the same record synced twice, or reached from two places, is the same element.
|
|
93
|
+
*/
|
|
94
|
+
declare const boundActivitySchema: z.ZodReadonly<z.ZodObject<{
|
|
95
|
+
kind: z.ZodLiteral<"activity">;
|
|
96
|
+
id: z.ZodString;
|
|
97
|
+
extensions: z.ZodExactOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>>>>;
|
|
98
|
+
label: z.ZodString;
|
|
99
|
+
actor: z.ZodExactOptional<z.ZodString>;
|
|
100
|
+
action: z.ZodExactOptional<z.ZodString>;
|
|
101
|
+
affects: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
102
|
+
consumes: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
103
|
+
produces: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
104
|
+
source: z.ZodString;
|
|
105
|
+
}, z.core.$strict>>;
|
|
106
|
+
/** The relation kinds a source reports beside the model's transitions. */
|
|
107
|
+
declare const relationKinds: readonly ["child-of", "assigned-to", "part-of"];
|
|
108
|
+
/**
|
|
109
|
+
* A structural link between two identifiers that the model has no field for: `child-of` from a sub-task activity to its parent activity, `assigned-to` from an activity to a person participant, `part-of` from one participant to the participant that contains it (a repository to its organisation). Relations carry no ordering, so a consumer decides whether a parent waits on its children.
|
|
110
|
+
*/
|
|
111
|
+
declare const relationSchema: z.ZodReadonly<z.ZodObject<{
|
|
112
|
+
kind: z.ZodEnum<{
|
|
113
|
+
"child-of": "child-of";
|
|
114
|
+
"assigned-to": "assigned-to";
|
|
115
|
+
"part-of": "part-of";
|
|
116
|
+
}>;
|
|
117
|
+
from: z.ZodString;
|
|
118
|
+
to: z.ZodString;
|
|
119
|
+
}, z.core.$strict>>;
|
|
120
|
+
/** Why part of a requested scope is missing from a sync. */
|
|
121
|
+
declare const gapReasons: readonly ["not-found", "forbidden"];
|
|
122
|
+
/**
|
|
123
|
+
* A part of the requested scope that the source could not read, reported as data so the rest of the sync still arrives. `target` is the source-qualified identifier of what is missing: a scope, a record, or one of a record's connections.
|
|
124
|
+
*/
|
|
125
|
+
declare const gapSchema: z.ZodReadonly<z.ZodObject<{
|
|
126
|
+
target: z.ZodString;
|
|
127
|
+
reason: z.ZodEnum<{
|
|
128
|
+
"not-found": "not-found";
|
|
129
|
+
forbidden: "forbidden";
|
|
130
|
+
}>;
|
|
131
|
+
message: z.ZodString;
|
|
132
|
+
}, z.core.$strict>>;
|
|
133
|
+
/**
|
|
134
|
+
* One page of a sync: bound activities, the participants they name, the transitions between them, their relations, their run state, and any gaps. A page is a partial view; `assembleSync` merges a whole sync into one model.
|
|
135
|
+
*
|
|
136
|
+
* `next` is the cursor to resume after this page. It is absent on the last page.
|
|
137
|
+
*/
|
|
138
|
+
declare const syncPageSchema: z.ZodReadonly<z.ZodObject<{
|
|
139
|
+
participants: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
140
|
+
id: z.ZodString;
|
|
141
|
+
label: z.ZodString;
|
|
142
|
+
kind: z.ZodEnum<{
|
|
143
|
+
role: "role";
|
|
144
|
+
system: "system";
|
|
145
|
+
entity: "entity";
|
|
146
|
+
}>;
|
|
147
|
+
}, z.core.$strict>>>>;
|
|
148
|
+
activities: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
149
|
+
kind: z.ZodLiteral<"activity">;
|
|
150
|
+
id: z.ZodString;
|
|
151
|
+
extensions: z.ZodExactOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>>>>;
|
|
152
|
+
label: z.ZodString;
|
|
153
|
+
actor: z.ZodExactOptional<z.ZodString>;
|
|
154
|
+
action: z.ZodExactOptional<z.ZodString>;
|
|
155
|
+
affects: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
156
|
+
consumes: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
157
|
+
produces: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
158
|
+
source: z.ZodString;
|
|
159
|
+
}, z.core.$strict>>>>;
|
|
160
|
+
transitions: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
161
|
+
id: z.ZodString;
|
|
162
|
+
source: z.ZodString;
|
|
163
|
+
target: z.ZodString;
|
|
164
|
+
trigger: z.ZodExactOptional<z.ZodString>;
|
|
165
|
+
guard: z.ZodExactOptional<z.ZodString>;
|
|
166
|
+
condition: z.ZodExactOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
167
|
+
kind: z.ZodLiteral<"not">;
|
|
168
|
+
operand: typeof import("trilean").PredicateNodeSchema;
|
|
169
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
170
|
+
kind: z.ZodLiteral<"and">;
|
|
171
|
+
left: typeof import("trilean").PredicateNodeSchema;
|
|
172
|
+
right: typeof import("trilean").PredicateNodeSchema;
|
|
173
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
174
|
+
kind: z.ZodLiteral<"or">;
|
|
175
|
+
left: typeof import("trilean").PredicateNodeSchema;
|
|
176
|
+
right: typeof import("trilean").PredicateNodeSchema;
|
|
177
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
178
|
+
kind: z.ZodLiteral<"allOf">;
|
|
179
|
+
operands: z.ZodArray<typeof import("trilean").PredicateNodeSchema>;
|
|
180
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
181
|
+
kind: z.ZodLiteral<"anyOf">;
|
|
182
|
+
operands: z.ZodArray<typeof import("trilean").PredicateNodeSchema>;
|
|
183
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
184
|
+
kind: z.ZodLiteral<"compare">;
|
|
185
|
+
op: z.ZodEnum<{
|
|
186
|
+
gt: "gt";
|
|
187
|
+
gte: "gte";
|
|
188
|
+
lt: "lt";
|
|
189
|
+
lte: "lte";
|
|
190
|
+
eq: "eq";
|
|
191
|
+
neq: "neq";
|
|
192
|
+
}>;
|
|
193
|
+
left: typeof import("trilean").ExpressionNodeSchema;
|
|
194
|
+
right: typeof import("trilean").ExpressionNodeSchema;
|
|
195
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
196
|
+
kind: z.ZodLiteral<"textCompare">;
|
|
197
|
+
op: z.ZodEnum<{
|
|
198
|
+
equals: "equals";
|
|
199
|
+
notEquals: "notEquals";
|
|
200
|
+
matches: "matches";
|
|
201
|
+
notMatches: "notMatches";
|
|
202
|
+
portableMatches: "portableMatches";
|
|
203
|
+
portableNotMatches: "portableNotMatches";
|
|
204
|
+
}>;
|
|
205
|
+
left: typeof import("trilean").ExpressionNodeSchema;
|
|
206
|
+
right: typeof import("trilean").ExpressionNodeSchema;
|
|
207
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
+
kind: z.ZodLiteral<"memberOf">;
|
|
209
|
+
op: z.ZodEnum<{
|
|
210
|
+
in: "in";
|
|
211
|
+
notIn: "notIn";
|
|
212
|
+
}>;
|
|
213
|
+
operand: typeof import("trilean").ExpressionNodeSchema;
|
|
214
|
+
candidates: z.ZodArray<typeof import("trilean").ExpressionNodeSchema>;
|
|
215
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
216
|
+
kind: z.ZodLiteral<"exists">;
|
|
217
|
+
operand: typeof import("trilean").ExpressionNodeSchema;
|
|
218
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
219
|
+
kind: z.ZodLiteral<"some">;
|
|
220
|
+
collection: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
221
|
+
item: typeof import("trilean").PredicateNodeSchema;
|
|
222
|
+
filter: z.ZodOptional<typeof import("trilean").PredicateNodeSchema>;
|
|
223
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
224
|
+
kind: z.ZodLiteral<"every">;
|
|
225
|
+
collection: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
226
|
+
item: typeof import("trilean").PredicateNodeSchema;
|
|
227
|
+
filter: z.ZodOptional<typeof import("trilean").PredicateNodeSchema>;
|
|
228
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
229
|
+
kind: z.ZodLiteral<"treeReference">;
|
|
230
|
+
key: z.ZodType<import("trilean").JsonValue, unknown, z.core.$ZodTypeInternals<import("trilean").JsonValue, unknown>>;
|
|
231
|
+
}, z.core.$strip>], "kind">>;
|
|
232
|
+
effect: z.ZodExactOptional<z.ZodString>;
|
|
233
|
+
}, z.core.$strict>>>>;
|
|
234
|
+
relations: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
235
|
+
kind: z.ZodEnum<{
|
|
236
|
+
"child-of": "child-of";
|
|
237
|
+
"assigned-to": "assigned-to";
|
|
238
|
+
"part-of": "part-of";
|
|
239
|
+
}>;
|
|
240
|
+
from: z.ZodString;
|
|
241
|
+
to: z.ZodString;
|
|
242
|
+
}, z.core.$strict>>>>;
|
|
243
|
+
overlay: z.ZodReadonly<z.ZodRecord<z.ZodString & z.core.$partial, z.ZodEnum<{
|
|
244
|
+
done: "done";
|
|
245
|
+
open: "open";
|
|
246
|
+
unknown: "unknown";
|
|
247
|
+
}>>>;
|
|
248
|
+
gaps: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
249
|
+
target: z.ZodString;
|
|
250
|
+
reason: z.ZodEnum<{
|
|
251
|
+
"not-found": "not-found";
|
|
252
|
+
forbidden: "forbidden";
|
|
253
|
+
}>;
|
|
254
|
+
message: z.ZodString;
|
|
255
|
+
}, z.core.$strict>>>>;
|
|
256
|
+
next: z.ZodExactOptional<z.ZodString>;
|
|
257
|
+
}, z.core.$strict>>;
|
|
258
|
+
/** The run states a sync filter can select by: whether the work is still open or done. */
|
|
259
|
+
declare const filterStates: readonly ["open", "done"];
|
|
260
|
+
/** What a sync filter can order the listed records by: when they were created, when they last changed, or how much discussion they have. */
|
|
261
|
+
declare const orderFields: readonly ["created", "updated", "comments"];
|
|
262
|
+
/** Which way a sync filter orders the listed records. */
|
|
263
|
+
declare const orderDirections: readonly ["ascending", "descending"];
|
|
264
|
+
/**
|
|
265
|
+
* Narrows and orders the records each scope lists, applied on the source's side where the source supports it. Every field is optional, and an absent field does not narrow.
|
|
266
|
+
*
|
|
267
|
+
* - `states` keeps records whose run state is one of those given.
|
|
268
|
+
* - `labels` keeps records carrying at least one of the labels given.
|
|
269
|
+
* - `order` is the order the records are listed in; absent, the source's own stable order.
|
|
270
|
+
*
|
|
271
|
+
* A filter narrows what a scope lists, not what the listed records reach: a blocker of a listed record is read whatever its own state or labels, because it is a dependency of work the filter kept.
|
|
272
|
+
*/
|
|
273
|
+
declare const syncFilterSchema: z.ZodReadonly<z.ZodObject<{
|
|
274
|
+
states: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
275
|
+
open: "open";
|
|
276
|
+
done: "done";
|
|
277
|
+
}>>>>;
|
|
278
|
+
labels: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
279
|
+
order: z.ZodExactOptional<z.ZodReadonly<z.ZodObject<{
|
|
280
|
+
field: z.ZodEnum<{
|
|
281
|
+
created: "created";
|
|
282
|
+
updated: "updated";
|
|
283
|
+
comments: "comments";
|
|
284
|
+
}>;
|
|
285
|
+
direction: z.ZodEnum<{
|
|
286
|
+
ascending: "ascending";
|
|
287
|
+
descending: "descending";
|
|
288
|
+
}>;
|
|
289
|
+
}, z.core.$strict>>>;
|
|
290
|
+
}, z.core.$strict>>;
|
|
291
|
+
/**
|
|
292
|
+
* What to sync and where to resume. `scope` names what to read as source-qualified scope identifiers (for GitHub, `github:org` for every repository an owner has, or `github:org/repo`), read in the order given. `after` is a cursor from an earlier page's `next`: the sync continues with the page that followed it. A cursor is valid only with the scope list and the filter it was issued for.
|
|
293
|
+
*
|
|
294
|
+
* `filter` narrows and orders what each scope lists (see `syncFilterSchema`).
|
|
295
|
+
*/
|
|
296
|
+
declare const syncInputSchema: z.ZodReadonly<z.ZodObject<{
|
|
297
|
+
scope: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
298
|
+
after: z.ZodExactOptional<z.ZodString>;
|
|
299
|
+
filter: z.ZodExactOptional<z.ZodReadonly<z.ZodObject<{
|
|
300
|
+
states: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
301
|
+
open: "open";
|
|
302
|
+
done: "done";
|
|
303
|
+
}>>>>;
|
|
304
|
+
labels: z.ZodExactOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
305
|
+
order: z.ZodExactOptional<z.ZodReadonly<z.ZodObject<{
|
|
306
|
+
field: z.ZodEnum<{
|
|
307
|
+
created: "created";
|
|
308
|
+
updated: "updated";
|
|
309
|
+
comments: "comments";
|
|
310
|
+
}>;
|
|
311
|
+
direction: z.ZodEnum<{
|
|
312
|
+
ascending: "ascending";
|
|
313
|
+
descending: "descending";
|
|
314
|
+
}>;
|
|
315
|
+
}, z.core.$strict>>>;
|
|
316
|
+
}, z.core.$strict>>>;
|
|
317
|
+
}, z.core.$strict>>;
|
|
318
|
+
/**
|
|
319
|
+
* A scope a person can choose to sync, as a picker lists it. `scope` is the scope identifier to pass to `sync` (for GitHub, `github:org` for an organisation, `github:org/repo` for a repository), `label` its display name, `description` the source's own description when it has one, `url` where it lives in the source's own interface, and `archived` whether the source has archived it.
|
|
320
|
+
*/
|
|
321
|
+
declare const scopeEntrySchema: z.ZodReadonly<z.ZodObject<{
|
|
322
|
+
scope: z.ZodString;
|
|
323
|
+
label: z.ZodString;
|
|
324
|
+
description: z.ZodExactOptional<z.ZodString>;
|
|
325
|
+
url: z.ZodExactOptional<z.ZodURL>;
|
|
326
|
+
archived: z.ZodBoolean;
|
|
327
|
+
}, z.core.$strict>>;
|
|
328
|
+
/**
|
|
329
|
+
* One page of a scope listing. `entries` are in the source's stable listing order, `gaps` name a parent the source could not read (it does not exist, or the credentials cannot see it), and `next` is the cursor to resume after this page, absent on the last.
|
|
330
|
+
*/
|
|
331
|
+
declare const scopeListingSchema: z.ZodReadonly<z.ZodObject<{
|
|
332
|
+
entries: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
333
|
+
scope: z.ZodString;
|
|
334
|
+
label: z.ZodString;
|
|
335
|
+
description: z.ZodExactOptional<z.ZodString>;
|
|
336
|
+
url: z.ZodExactOptional<z.ZodURL>;
|
|
337
|
+
archived: z.ZodBoolean;
|
|
338
|
+
}, z.core.$strict>>>>;
|
|
339
|
+
gaps: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
|
|
340
|
+
target: z.ZodString;
|
|
341
|
+
reason: z.ZodEnum<{
|
|
342
|
+
"not-found": "not-found";
|
|
343
|
+
forbidden: "forbidden";
|
|
344
|
+
}>;
|
|
345
|
+
message: z.ZodString;
|
|
346
|
+
}, z.core.$strict>>>>;
|
|
347
|
+
next: z.ZodExactOptional<z.ZodString>;
|
|
348
|
+
}, z.core.$strict>>;
|
|
349
|
+
/** Where a listing of the top-level scopes resumes: a cursor from an earlier page's `next`. */
|
|
350
|
+
declare const scopeRootsInputSchema: z.ZodReadonly<z.ZodObject<{
|
|
351
|
+
after: z.ZodExactOptional<z.ZodString>;
|
|
352
|
+
}, z.core.$strict>>;
|
|
353
|
+
/** The scope whose child scopes to list (for GitHub, the repositories of `github:owner`), and where to resume. A cursor is valid only for the parent it was issued for. */
|
|
354
|
+
declare const scopeChildrenInputSchema: z.ZodReadonly<z.ZodObject<{
|
|
355
|
+
scope: z.ZodString;
|
|
356
|
+
after: z.ZodExactOptional<z.ZodString>;
|
|
357
|
+
}, z.core.$strict>>;
|
|
358
|
+
/** What a source says about itself. `source` is the prefix of every identifier it emits, before the colon. */
|
|
359
|
+
declare const sourceDescriptionSchema: z.ZodReadonly<z.ZodObject<{
|
|
360
|
+
source: z.ZodString;
|
|
361
|
+
}, z.core.$strict>>;
|
|
362
|
+
/** Why a request was rejected as malformed. */
|
|
363
|
+
declare const badRequestReasons: readonly ["invalid-cursor", "invalid-scope"];
|
|
364
|
+
type BoundActivity = z.infer<typeof boundActivitySchema>;
|
|
365
|
+
type SourceParticipant = z.infer<typeof participantSchema>;
|
|
366
|
+
type SourceTransition = z.infer<typeof transitionSchema>;
|
|
367
|
+
type Relation = z.infer<typeof relationSchema>;
|
|
368
|
+
type RelationKind = (typeof relationKinds)[number];
|
|
369
|
+
type Gap = z.infer<typeof gapSchema>;
|
|
370
|
+
type GapReason = (typeof gapReasons)[number];
|
|
371
|
+
type SyncPage = z.output<typeof syncPageSchema>;
|
|
372
|
+
/** A page as an implementation supplies it, before parsing. */
|
|
373
|
+
type SyncPageInput = z.input<typeof syncPageSchema>;
|
|
374
|
+
type SyncInput = z.infer<typeof syncInputSchema>;
|
|
375
|
+
type SyncFilter = z.infer<typeof syncFilterSchema>;
|
|
376
|
+
type FilterState = (typeof filterStates)[number];
|
|
377
|
+
type OrderField = (typeof orderFields)[number];
|
|
378
|
+
type OrderDirection = (typeof orderDirections)[number];
|
|
379
|
+
type ScopeEntry = z.infer<typeof scopeEntrySchema>;
|
|
380
|
+
type ScopeListing = z.output<typeof scopeListingSchema>;
|
|
381
|
+
/** A listing page as an implementation supplies it, before parsing. */
|
|
382
|
+
type ScopeListingInput = z.input<typeof scopeListingSchema>;
|
|
383
|
+
type ScopeRootsInput = z.infer<typeof scopeRootsInputSchema>;
|
|
384
|
+
type ScopeChildrenInput = z.infer<typeof scopeChildrenInputSchema>;
|
|
385
|
+
type SourceDescription = z.infer<typeof sourceDescriptionSchema>;
|
|
386
|
+
type BadRequestReason = (typeof badRequestReasons)[number];
|
|
387
|
+
//#endregion
|
|
388
|
+
//#region ../../core/graph/source-contract/dist/contract.d.ts
|
|
389
|
+
/**
|
|
390
|
+
* The typed errors every procedure can end with, each carrying its detail as data. The codes are oRPC's common codes, so an HTTP transport answers with the matching status (401, 429, 400) without any per-transport mapping.
|
|
391
|
+
*/
|
|
392
|
+
declare const graphSourceErrors: {
|
|
393
|
+
UNAUTHORIZED: {
|
|
394
|
+
message: string;
|
|
395
|
+
data: z.ZodObject<{}, z.core.$strict>;
|
|
396
|
+
};
|
|
397
|
+
TOO_MANY_REQUESTS: {
|
|
398
|
+
message: string;
|
|
399
|
+
data: z.ZodObject<{
|
|
400
|
+
resetAt: z.ZodOptional<z.ZodISODateTime>;
|
|
401
|
+
}, z.core.$strict>;
|
|
402
|
+
};
|
|
403
|
+
BAD_REQUEST: {
|
|
404
|
+
message: string;
|
|
405
|
+
data: z.ZodObject<{
|
|
406
|
+
reason: z.ZodEnum<{
|
|
407
|
+
"invalid-cursor": "invalid-cursor";
|
|
408
|
+
"invalid-scope": "invalid-scope";
|
|
409
|
+
}>;
|
|
410
|
+
value: z.ZodString;
|
|
411
|
+
}, z.core.$strict>;
|
|
412
|
+
};
|
|
413
|
+
};
|
|
414
|
+
type GraphSourceErrors = typeof graphSourceErrors;
|
|
415
|
+
/**
|
|
416
|
+
* The scope listings' errors: every procedure's, and `NOT_IMPLEMENTED` for a source that offers no listing, which oRPC's common code answers with HTTP 501 over HTTP.
|
|
417
|
+
*/
|
|
418
|
+
declare const scopeListingErrors: {
|
|
419
|
+
NOT_IMPLEMENTED: {
|
|
420
|
+
message: string;
|
|
421
|
+
data: z.ZodObject<{}, z.core.$strict>;
|
|
422
|
+
};
|
|
423
|
+
UNAUTHORIZED: {
|
|
424
|
+
message: string;
|
|
425
|
+
data: z.ZodObject<{}, z.core.$strict>;
|
|
426
|
+
};
|
|
427
|
+
TOO_MANY_REQUESTS: {
|
|
428
|
+
message: string;
|
|
429
|
+
data: z.ZodObject<{
|
|
430
|
+
resetAt: z.ZodOptional<z.ZodISODateTime>;
|
|
431
|
+
}, z.core.$strict>;
|
|
432
|
+
};
|
|
433
|
+
BAD_REQUEST: {
|
|
434
|
+
message: string;
|
|
435
|
+
data: z.ZodObject<{
|
|
436
|
+
reason: z.ZodEnum<{
|
|
437
|
+
"invalid-cursor": "invalid-cursor";
|
|
438
|
+
"invalid-scope": "invalid-scope";
|
|
439
|
+
}>;
|
|
440
|
+
value: z.ZodString;
|
|
441
|
+
}, z.core.$strict>;
|
|
442
|
+
};
|
|
443
|
+
};
|
|
444
|
+
type ScopeListingErrors = typeof scopeListingErrors;
|
|
445
|
+
/** The event iterator of pages `sync.stream` returns, typed by name so declarations stay small. */
|
|
446
|
+
declare const syncPageEvents: ReturnType<typeof eventIterator<SyncPageInput, SyncPage>>;
|
|
447
|
+
/**
|
|
448
|
+
* The shape of version 1, stated so the published declarations name the page and input schemas rather than expanding them into every procedure.
|
|
449
|
+
*/
|
|
450
|
+
interface GraphSourceV1Contract {
|
|
451
|
+
/** Present so the contract is assignable to oRPC's `RouterContract`, which is an index-signature type. */
|
|
452
|
+
readonly [key: string]: RouterContract;
|
|
453
|
+
readonly describe: ProcedureContract<InitialInputSchema, typeof sourceDescriptionSchema, GraphSourceErrors>;
|
|
454
|
+
readonly sync: {
|
|
455
|
+
readonly page: ProcedureContract<typeof syncInputSchema, typeof syncPageSchema, GraphSourceErrors>;
|
|
456
|
+
readonly stream: ProcedureContract<typeof syncInputSchema, typeof syncPageEvents, GraphSourceErrors>;
|
|
457
|
+
};
|
|
458
|
+
readonly scopes: {
|
|
459
|
+
readonly roots: ProcedureContract<typeof scopeRootsInputSchema, typeof scopeListingSchema, ScopeListingErrors>;
|
|
460
|
+
readonly children: ProcedureContract<typeof scopeChildrenInputSchema, typeof scopeListingSchema, ScopeListingErrors>;
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/** The `GraphSource` port: an oRPC router contract, keyed by version. */
|
|
464
|
+
declare const graphSourceContract: {
|
|
465
|
+
readonly v1: GraphSourceV1Contract;
|
|
466
|
+
};
|
|
467
|
+
/** A client for the `GraphSource` port over any transport: an in-process router client or one built on an oRPC link. */
|
|
468
|
+
type GraphSourceClient = ContractRouterClient<typeof graphSourceContract>;
|
|
469
|
+
//#endregion
|
|
470
|
+
//#region ../../core/graph/source-contract/dist/errors.d.ts
|
|
471
|
+
/**
|
|
472
|
+
* The failures that end a sync call, as a closed union a caller can switch on exhaustively. What a source can still partly read is not a failure: it arrives as a `Gap` in the page.
|
|
473
|
+
*
|
|
474
|
+
* - `unauthorised`: the source rejected the credentials outright.
|
|
475
|
+
* - `rate-limited`: the source refused the request until `resetAt` (an ISO 8601 instant) when it said so. Resume from the last page's `next` after that.
|
|
476
|
+
* - `bad-request`: the cursor or a scope identifier is not one this source issued or understands.
|
|
477
|
+
*/
|
|
478
|
+
type GraphSourceFailure = {
|
|
479
|
+
readonly kind: "unauthorised";
|
|
480
|
+
readonly message: string;
|
|
481
|
+
} | {
|
|
482
|
+
readonly kind: "rate-limited";
|
|
483
|
+
readonly message: string;
|
|
484
|
+
readonly resetAt: string | undefined;
|
|
485
|
+
} | {
|
|
486
|
+
readonly kind: "bad-request";
|
|
487
|
+
readonly message: string;
|
|
488
|
+
readonly reason: BadRequestReason;
|
|
489
|
+
readonly value: string;
|
|
490
|
+
};
|
|
491
|
+
/**
|
|
492
|
+
* Thrown by a `GraphSourcePager` to end a call with a typed failure. `createGraphSourceRouter` turns it into the contract's matching oRPC error, so it reaches a client over any transport as `UNAUTHORIZED`, `TOO_MANY_REQUESTS` or `BAD_REQUEST` with its data.
|
|
493
|
+
*/
|
|
494
|
+
declare class GraphSourceError extends Error {
|
|
495
|
+
/** The failure, with the detail a caller branches on. */
|
|
496
|
+
readonly failure: GraphSourceFailure;
|
|
497
|
+
/**
|
|
498
|
+
* @param failure - The failure this error carries; its `message` becomes the error's message.
|
|
499
|
+
* @param options - Standard error options: `cause` is the underlying error, when there is one.
|
|
500
|
+
*/
|
|
501
|
+
constructor(failure: GraphSourceFailure, options?: ErrorOptions);
|
|
502
|
+
}
|
|
503
|
+
//#endregion
|
|
504
|
+
//#region ../../core/graph/source-contract/dist/router.d.ts
|
|
505
|
+
/** One request for a page, as a pager receives it. */
|
|
506
|
+
interface PageRequest {
|
|
507
|
+
/** The scope identifiers to read, in order. */
|
|
508
|
+
readonly scope: SyncInput["scope"];
|
|
509
|
+
/** Where to start: the `next` of the page before, or `undefined` for the first page. */
|
|
510
|
+
readonly cursor: string | undefined;
|
|
511
|
+
/** The caller's abort signal. A pager passes it to every request it makes and stops when it fires. */
|
|
512
|
+
readonly signal: AbortSignal | undefined;
|
|
513
|
+
/** What narrows and orders each scope's listing; absent or `undefined`, nothing narrows it. A cursor issued under one filter is not valid under another. */
|
|
514
|
+
readonly filter?: SyncFilter | undefined;
|
|
515
|
+
}
|
|
516
|
+
/** One request for a page of a scope listing. */
|
|
517
|
+
interface ListingRequest {
|
|
518
|
+
/** Where to start: the `next` of the page before, or `undefined` for the first page. */
|
|
519
|
+
readonly cursor: string | undefined;
|
|
520
|
+
/** The caller's abort signal, passed to every request the listing makes. */
|
|
521
|
+
readonly signal: AbortSignal | undefined;
|
|
522
|
+
}
|
|
523
|
+
/** One request for a page of the scopes inside a scope. */
|
|
524
|
+
interface ChildrenRequest extends ListingRequest {
|
|
525
|
+
/** The scope identifier whose child scopes to list. */
|
|
526
|
+
readonly scope: string;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* How a source lists the scopes a person can choose to sync, one page at a time. Cursors follow the pager's rules: stable, holding no in-memory state, and valid only for the listing (and parent) that issued them, so a foreign one throws `GraphSourceError` with `bad-request` and `invalid-cursor`.
|
|
530
|
+
*/
|
|
531
|
+
interface GraphSourceScopes {
|
|
532
|
+
/**
|
|
533
|
+
* Lists the top-level scopes the credentials reach.
|
|
534
|
+
* @param request - The cursor to start after, and the abort signal.
|
|
535
|
+
* @returns One page of entries, with `next` absent on the last.
|
|
536
|
+
* @throws GraphSourceError for a failure that ends the call.
|
|
537
|
+
*/
|
|
538
|
+
readonly roots: (request: ListingRequest) => Promise<ScopeListing>;
|
|
539
|
+
/**
|
|
540
|
+
* Lists the scopes inside one scope. A parent that does not exist, or that the credentials cannot see, is a gap on an empty page; a scope with nothing inside it is an empty page; a parent that is not a scope identifier of this source throws `bad-request` with `invalid-scope`.
|
|
541
|
+
* @param request - The parent scope, the cursor to start after, and the abort signal.
|
|
542
|
+
* @returns One page of entries, with `next` absent on the last.
|
|
543
|
+
* @throws GraphSourceError for a failure that ends the call.
|
|
544
|
+
*/
|
|
545
|
+
readonly children: (request: ChildrenRequest) => Promise<ScopeListing>;
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* What an adapter implements: one page at a time. `createGraphSourceRouter` builds the whole port on it, so paging, streaming, resumption and error mapping behave identically for every source.
|
|
549
|
+
*
|
|
550
|
+
* A pager's cursors must be stable: the same scope and cursor return the same page while the source is unchanged, and a cursor never names a position relative to state held in memory, so a sync resumes in a different process. A cursor the pager did not issue, or one from a different scope list, throws `GraphSourceError` with `bad-request` and `invalid-cursor`; a scope identifier it cannot parse throws `bad-request` and `invalid-scope`.
|
|
551
|
+
*/
|
|
552
|
+
interface GraphSourcePager {
|
|
553
|
+
/** The identifier prefix this source emits, such as `github`. */
|
|
554
|
+
readonly source: string;
|
|
555
|
+
/**
|
|
556
|
+
* Reads one page.
|
|
557
|
+
* @param request - The scope, the cursor to start after, and the abort signal.
|
|
558
|
+
* @returns The page, with `next` absent when it is the last.
|
|
559
|
+
* @throws GraphSourceError for a failure that ends the call.
|
|
560
|
+
*/
|
|
561
|
+
readonly page: (request: PageRequest) => Promise<SyncPage>;
|
|
562
|
+
/** Lists the scopes a person can choose from. Absent, the source offers no listing and the router answers its procedures with `NOT_IMPLEMENTED`. */
|
|
563
|
+
readonly scopes?: GraphSourceScopes;
|
|
564
|
+
}
|
|
565
|
+
/** The implemented `GraphSource` router: serve it over any oRPC transport, or call it in process with `createRouterClient`. */
|
|
566
|
+
type GraphSourceRouter = ContractedRouter<typeof graphSourceContract, DefaultInitialContext>;
|
|
567
|
+
/**
|
|
568
|
+
* Builds the `GraphSource` router over a pager. Serve it over any oRPC transport, or call it in process with `createRouterClient`.
|
|
569
|
+
* @param pager - The adapter's page reader.
|
|
570
|
+
* @returns The implemented router for `graphSourceContract`.
|
|
571
|
+
*/
|
|
572
|
+
declare const createGraphSourceRouter: (pager: GraphSourcePager) => GraphSourceRouter;
|
|
573
|
+
//#endregion
|
|
574
|
+
//#region ../../core/graph/source-contract/dist/assemble.d.ts
|
|
575
|
+
/** A whole sync merged into one model, with what the model has no place for kept beside it. */
|
|
576
|
+
interface AssembledSync {
|
|
577
|
+
/** The participants, bound activities and transitions of every page, each identifier once. */
|
|
578
|
+
readonly model: Model<OpenIds>;
|
|
579
|
+
/** The run state of every activity, keyed by its identifier. */
|
|
580
|
+
readonly overlay: Overlay<OpenIds>;
|
|
581
|
+
/** Every relation, each distinct one once. */
|
|
582
|
+
readonly relations: readonly Relation[];
|
|
583
|
+
/** Every gap, in page order. */
|
|
584
|
+
readonly gaps: readonly Gap[];
|
|
585
|
+
}
|
|
586
|
+
/**
|
|
587
|
+
* Merges the pages of a sync into one model. A record can appear on several pages, for example an issue in another repository reached through a dependency before its own repository is read; identity is the identifier, so it becomes one element, and where pages disagree the later page wins, being the more recent read.
|
|
588
|
+
* @param pages - The pages of one sync, in the order they arrived.
|
|
589
|
+
* @returns The model, overlay, relations and gaps of the whole sync.
|
|
590
|
+
*/
|
|
591
|
+
declare const assembleSync: (pages: readonly SyncPage[]) => AssembledSync;
|
|
592
|
+
//#endregion
|
|
593
|
+
//#region ../../core/graph/source-contract/dist/fake.d.ts
|
|
594
|
+
/** A page's content without its cursor, which the fake derives. */
|
|
595
|
+
type FakePage = Omit<SyncPage, "next">;
|
|
596
|
+
/** What the in-memory fake serves. */
|
|
597
|
+
interface FakeGraphSourceOptions {
|
|
598
|
+
/** The identifier prefix, such as `fake`. Every scope identifier must start with it and a colon. */
|
|
599
|
+
readonly source: string;
|
|
600
|
+
/** The pages of each known scope, keyed by scope identifier. A scope with no pages is known and empty. */
|
|
601
|
+
readonly scopes: Readonly<Record<string, readonly FakePage[]>>;
|
|
602
|
+
/** What `scopes.roots` lists, in order; nothing when absent. */
|
|
603
|
+
readonly roots?: readonly ScopeEntry[];
|
|
604
|
+
/** What `scopes.children` lists for each parent scope, in order. A parent named here, in `scopes` or among `roots` is known; any other parent is a `not-found` gap. */
|
|
605
|
+
readonly children?: Readonly<Record<string, readonly ScopeEntry[]>>;
|
|
606
|
+
/** Entries per listing page, a positive integer; absent, a listing is one page. */
|
|
607
|
+
readonly listingPageSize?: number;
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* The reference in-memory `GraphSourcePager`: a fixed set of pages per scope, served in scope order. A scope that is well formed but unknown yields one page holding a `not-found` gap, so a sync over several scopes still returns the rest. Cursors encode the scope identifier, page index and filter, so they are stable, resume in any instance built from the same pages, and are refused under a different filter. A filter is applied to each page as described at `filtered`.
|
|
611
|
+
*
|
|
612
|
+
* Its scope listing serves `roots` and `children` from the options, `listingPageSize` entries a page.
|
|
613
|
+
* @param options - The source prefix and the pages of each scope.
|
|
614
|
+
* @returns A pager for `createGraphSourceRouter`.
|
|
615
|
+
*/
|
|
616
|
+
declare const createFakeGraphSource: (options: FakeGraphSourceOptions) => GraphSourcePager;
|
|
617
|
+
//#endregion
|
|
618
|
+
//#region ../../adapters/graph/source-github-issues/dist/graphql.d.ts
|
|
619
|
+
/** GitHub's GraphQL endpoint. */
|
|
620
|
+
declare const githubGraphqlEndpoint = "https://api.github.com/graphql";
|
|
621
|
+
/**
|
|
622
|
+
* Supplies the token for requests about one owner's repositories, so different organisations can use different credentials. The token is only ever sent in the `Authorization` header; this adapter never logs or returns it.
|
|
623
|
+
* @param owner - The login of the account whose repositories or board the request reads, or `undefined` for a request about the token's own holder (the viewer and the organisations it belongs to), which no owner names.
|
|
624
|
+
* @param signal - The caller's abort signal.
|
|
625
|
+
* @returns The token.
|
|
626
|
+
*/
|
|
627
|
+
type GitHubTokenPort = (owner: string | undefined, signal: AbortSignal | undefined) => Promise<string>;
|
|
628
|
+
/** The part of `fetch` this adapter uses: one POST to the GraphQL endpoint. The global `fetch` satisfies it. */
|
|
629
|
+
type GraphqlFetch = (url: string, init: RequestInit) => Promise<Response>;
|
|
630
|
+
//#endregion
|
|
631
|
+
export { scopeRootsInputSchema as $, ScopeEntry as A, badRequestReasons as B, Gap as C, Relation as D, OrderField as E, SourceParticipant as F, orderDirections as G, filterStates as H, SourceTransition as I, relationKinds as J, orderFields as K, SyncFilter as L, ScopeListingInput as M, ScopeRootsInput as N, RelationKind as O, SourceDescription as P, scopeListingSchema as Q, SyncInput as R, FilterState as S, OrderDirection as T, gapReasons as U, boundActivitySchema as V, gapSchema as W, scopeChildrenInputSchema as X, relationSchema as Y, scopeEntrySchema as Z, GraphSourceFailure as _, FakePage as a, BadRequestReason as b, assembleSync as c, GraphSourceRouter as d, sourceDescriptionSchema as et, GraphSourceScopes as f, GraphSourceError as g, createGraphSourceRouter as h, FakeGraphSourceOptions as i, transitionSchema as it, ScopeListing as j, ScopeChildrenInput as k, ChildrenRequest as l, PageRequest as m, GraphqlFetch as n, syncInputSchema as nt, createFakeGraphSource as o, ListingRequest as p, participantSchema as q, githubGraphqlEndpoint as r, syncPageSchema as rt, AssembledSync as s, GitHubTokenPort as t, syncFilterSchema as tt, GraphSourcePager as u, GraphSourceClient as v, GapReason as w, BoundActivity as x, graphSourceContract as y, SyncPage as z };
|