checkly 8.9.0 → 8.10.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/commands/deploy.d.ts +1 -0
- package/dist/commands/deploy.js +35 -3
- package/dist/commands/deploy.js.map +1 -1
- package/dist/constructs/construct.d.ts +7 -0
- package/dist/constructs/construct.js +13 -0
- package/dist/constructs/construct.js.map +1 -1
- package/dist/constructs/dns-assertion.d.ts +4 -0
- package/dist/constructs/dns-assertion.js +4 -0
- package/dist/constructs/dns-assertion.js.map +1 -1
- package/dist/constructs/dns-request.d.ts +2 -1
- package/dist/constructs/project.js +8 -2
- package/dist/constructs/project.js.map +1 -1
- package/dist/constructs/session.js +0 -4
- package/dist/constructs/session.js.map +1 -1
- package/dist/rest/errors.d.ts +5 -0
- package/dist/rest/errors.js.map +1 -1
- package/dist/rest/projects.d.ts +91 -5
- package/dist/rest/projects.js +262 -3
- package/dist/rest/projects.js.map +1 -1
- package/oclif.manifest.json +212 -206
- package/package.json +11 -11
- package/dist/constructs/validator-error.d.ts +0 -2
- package/dist/constructs/validator-error.js +0 -3
- package/dist/constructs/validator-error.js.map +0 -1
package/dist/rest/projects.js
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
|
+
import { isAxiosError } from 'axios';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
1
3
|
import { compressJSONPayload } from './util.js';
|
|
2
|
-
import { ConflictError, ForbiddenError, NotFoundError } from './errors.js';
|
|
4
|
+
import { ConflictError, ForbiddenError, handleErrorResponse, NotFoundError, RequestTimeoutError } from './errors.js';
|
|
5
|
+
export class ProjectDeployFailedError extends Error {
|
|
6
|
+
constructor(message, options) {
|
|
7
|
+
super(message, options);
|
|
8
|
+
this.name = 'ProjectDeployFailedError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** The deployment was cancelled before it finished (e.g. superseded by a newer deploy). */
|
|
12
|
+
export class ProjectDeployCancelledError extends Error {
|
|
13
|
+
constructor(message, options) {
|
|
14
|
+
super(message, options);
|
|
15
|
+
this.name = 'ProjectDeployCancelledError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Internal: the SSE stream ended before a terminal event (eligible for reconnect). */
|
|
19
|
+
class DeploymentStreamInterruptedError extends Error {
|
|
20
|
+
constructor() {
|
|
21
|
+
super('The deployment event stream ended before completion.');
|
|
22
|
+
this.name = 'DeploymentStreamInterruptedError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function streamToString(stream) {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
const chunks = [];
|
|
28
|
+
stream.on('data', chunk => chunks.push(Buffer.from(chunk)));
|
|
29
|
+
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
30
|
+
stream.on('error', reject);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/** Parse one SSE frame ("event: x\ndata: {...}"), assuming LF line endings.
|
|
34
|
+
* Returns null for keep-alive comments or frames without parseable JSON data. */
|
|
35
|
+
function parseSseFrame(raw) {
|
|
36
|
+
let event = 'message';
|
|
37
|
+
const dataLines = [];
|
|
38
|
+
for (const line of raw.split('\n')) {
|
|
39
|
+
if (line.startsWith(':')) {
|
|
40
|
+
continue; // keep-alive comment
|
|
41
|
+
}
|
|
42
|
+
if (line.startsWith('event:')) {
|
|
43
|
+
event = line.slice('event:'.length).trim();
|
|
44
|
+
}
|
|
45
|
+
else if (line.startsWith('data:')) {
|
|
46
|
+
dataLines.push(line.slice('data:'.length).trim());
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (dataLines.length === 0) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return { event, data: JSON.parse(dataLines.join('\n')) };
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
3
59
|
export class ProjectNotFoundError extends Error {
|
|
4
60
|
logicalId;
|
|
5
61
|
constructor(logicalId, options) {
|
|
@@ -34,6 +90,10 @@ export class InvalidImportPlanStateError extends Error {
|
|
|
34
90
|
this.name = 'InvalidImportPlanStateError';
|
|
35
91
|
}
|
|
36
92
|
}
|
|
93
|
+
// How long deploy() will keep waiting-and-retrying behind an in-progress
|
|
94
|
+
// deployment before giving up and surfacing the 409. Generous, since a large
|
|
95
|
+
// predecessor deploy can legitimately run for many minutes.
|
|
96
|
+
const DEPLOY_CONFLICT_WAIT_DEADLINE_MS = 30 * 60_000;
|
|
37
97
|
class Projects {
|
|
38
98
|
api;
|
|
39
99
|
constructor(api) {
|
|
@@ -88,8 +148,207 @@ class Projects {
|
|
|
88
148
|
throw err;
|
|
89
149
|
}
|
|
90
150
|
}
|
|
91
|
-
|
|
92
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Deploy a project. The deployment runs asynchronously on the backend: this
|
|
153
|
+
* submits it, then follows its progress stream to completion, so large projects
|
|
154
|
+
* are no longer bound by the API gateway request timeout. A dry run returns the
|
|
155
|
+
* preview diff synchronously without starting a deployment.
|
|
156
|
+
*
|
|
157
|
+
* @throws {ProjectDeployFailedError} If the deployment finishes unsuccessfully.
|
|
158
|
+
*/
|
|
159
|
+
async deploy(resources, { dryRun = false, scheduleOnDeploy = true, cancelInProgress = false, onProgress, onStatus } = {}) {
|
|
160
|
+
const logicalId = resources.project.logicalId;
|
|
161
|
+
// On a 409 the project already has a deployment in progress. By default we
|
|
162
|
+
// wait for it to finish then retry; with cancelInProgress we cancel it first.
|
|
163
|
+
// resolveInProgressDeployment only returns once the predecessor has reached a
|
|
164
|
+
// final state, so we re-POST the (potentially large) payload exactly once per
|
|
165
|
+
// predecessor — never while it is still running. Bound by an overall deadline
|
|
166
|
+
// so a stuck predecessor can't make us wait forever.
|
|
167
|
+
const deadlineAt = Date.now() + DEPLOY_CONFLICT_WAIT_DEADLINE_MS;
|
|
168
|
+
for (;;) {
|
|
169
|
+
try {
|
|
170
|
+
return await this.submitDeployment(resources, { dryRun, scheduleOnDeploy, onProgress });
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
if (dryRun
|
|
174
|
+
|| !(err instanceof ConflictError)
|
|
175
|
+
|| typeof err.data.deploymentId !== 'string'
|
|
176
|
+
|| Date.now() >= deadlineAt) {
|
|
177
|
+
throw err;
|
|
178
|
+
}
|
|
179
|
+
await this.resolveInProgressDeployment(logicalId, err.data.deploymentId, {
|
|
180
|
+
cancel: cancelInProgress,
|
|
181
|
+
onStatus,
|
|
182
|
+
deadlineAt,
|
|
183
|
+
});
|
|
184
|
+
// loop → re-POST, now that the predecessor has reached a final state
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
async submitDeployment(resources, { dryRun, scheduleOnDeploy, onProgress }) {
|
|
189
|
+
const { data } = await this.api.post(`/v1/projects/deploy?dryRun=${dryRun}&scheduleOnDeploy=${scheduleOnDeploy}`, resources, { transformRequest: compressJSONPayload });
|
|
190
|
+
// A dry run responds synchronously with the preview diff.
|
|
191
|
+
if (dryRun) {
|
|
192
|
+
return { data: data };
|
|
193
|
+
}
|
|
194
|
+
// A real deploy responds with a deployment to follow to completion.
|
|
195
|
+
const deployment = data;
|
|
196
|
+
const completed = await this.streamDeploymentEvents(resources.project.logicalId, deployment.id, { onProgress });
|
|
197
|
+
if (completed.status === 'CANCELLED') {
|
|
198
|
+
throw new ProjectDeployCancelledError('A newer deployment may have cancelled yours. Try deploying again if you still need to apply your changes.');
|
|
199
|
+
}
|
|
200
|
+
if (completed.status !== 'SUCCEEDED' || completed.result === null) {
|
|
201
|
+
throw new ProjectDeployFailedError(completed.error?.message ?? 'The deployment did not complete successfully.');
|
|
202
|
+
}
|
|
203
|
+
return { data: completed.result };
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Resolve a collision with an in-progress deployment so the caller can retry:
|
|
207
|
+
* optionally cancel it, then wait until it reaches a final state (or is gone)
|
|
208
|
+
* before returning — so the caller re-POSTs only when the slot is actually
|
|
209
|
+
* free, never re-uploading the payload while the predecessor is still running.
|
|
210
|
+
* Returns early if the overall `deadlineAt` passes (the caller then re-POSTs
|
|
211
|
+
* once and surfaces the conflict).
|
|
212
|
+
*/
|
|
213
|
+
async resolveInProgressDeployment(logicalId, deploymentId, { cancel, onStatus, deadlineAt }) {
|
|
214
|
+
if (cancel) {
|
|
215
|
+
onStatus?.('Cancelling an in-progress deployment...');
|
|
216
|
+
try {
|
|
217
|
+
await this.cancelDeployment(logicalId, deploymentId);
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
// Already gone → nothing to cancel; proceed to retry.
|
|
221
|
+
if (!(err instanceof NotFoundError)) {
|
|
222
|
+
throw err;
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
onStatus?.('Waiting for an in-progress deployment to finish...');
|
|
229
|
+
}
|
|
230
|
+
// Poll the completion endpoint until the predecessor is final. Pacing comes
|
|
231
|
+
// from the server-side long-poll (~maxWaitSeconds per call), so this is not a
|
|
232
|
+
// busy loop; the deadline bounds the total wait.
|
|
233
|
+
for (;;) {
|
|
234
|
+
try {
|
|
235
|
+
await this.awaitDeploymentCompletion(logicalId, deploymentId);
|
|
236
|
+
return; // reached a final state → slot free
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
if (err instanceof NotFoundError) {
|
|
240
|
+
return; // gone → slot free
|
|
241
|
+
}
|
|
242
|
+
// 408 = still running after the long-poll window. Keep waiting unless the
|
|
243
|
+
// overall deadline has passed, in which case return and let the caller
|
|
244
|
+
// re-POST once and surface the conflict.
|
|
245
|
+
if (err instanceof RequestTimeoutError) {
|
|
246
|
+
if (Date.now() >= deadlineAt) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
throw err;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
getDeployment(logicalId, deploymentId) {
|
|
256
|
+
return this.api.get(`/v1/projects/${encodeURIComponent(logicalId)}/deployments/${encodeURIComponent(deploymentId)}`);
|
|
257
|
+
}
|
|
258
|
+
/** Request cancellation of an in-flight deployment (idempotent on the server). */
|
|
259
|
+
cancelDeployment(logicalId, deploymentId) {
|
|
260
|
+
return this.api.post(`/v1/projects/${encodeURIComponent(logicalId)}/deployments/${encodeURIComponent(deploymentId)}/cancel`);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Long-poll the completion endpoint once: the server blocks up to
|
|
264
|
+
* `maxWaitSeconds` and returns the deployment when it reaches a final state, or
|
|
265
|
+
* 408 (`RequestTimeoutError`) if it is still running when that window elapses.
|
|
266
|
+
* The retry cadence lives in the caller, not here.
|
|
267
|
+
*/
|
|
268
|
+
async awaitDeploymentCompletion(logicalId, deploymentId, { maxWaitSeconds = 30 } = {}) {
|
|
269
|
+
const { data } = await this.api.get(`/v1/projects/${encodeURIComponent(logicalId)}/deployments/${encodeURIComponent(deploymentId)}/completion`, { params: { maxWaitSeconds } });
|
|
270
|
+
return data;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Follow a deployment to completion over its Server-Sent Events stream,
|
|
274
|
+
* invoking `onProgress` as progress frames arrive and resolving with the final
|
|
275
|
+
* deployment on the terminal `complete` frame. If the stream drops before a
|
|
276
|
+
* terminal frame (a transient network blip), it reconnects up to `maxReconnects`
|
|
277
|
+
* times — the server is stateless and re-reads current state, so resuming needs
|
|
278
|
+
* no cursor.
|
|
279
|
+
*/
|
|
280
|
+
async streamDeploymentEvents(logicalId, deploymentId, { onProgress, maxReconnects = 5 } = {}) {
|
|
281
|
+
let reconnects = 0;
|
|
282
|
+
for (;;) {
|
|
283
|
+
try {
|
|
284
|
+
return await this.consumeEventStream(logicalId, deploymentId, onProgress);
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
if (err instanceof DeploymentStreamInterruptedError && reconnects < maxReconnects) {
|
|
288
|
+
reconnects += 1;
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
throw err;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
async openEventStream(logicalId, deploymentId) {
|
|
296
|
+
try {
|
|
297
|
+
const { data } = await this.api.get(`/v1/projects/${encodeURIComponent(logicalId)}/deployments/${encodeURIComponent(deploymentId)}/events`, { responseType: 'stream', headers: { Accept: 'text/event-stream' } });
|
|
298
|
+
return data;
|
|
299
|
+
}
|
|
300
|
+
catch (err) {
|
|
301
|
+
// On an HTTP error the body arrives as an unparsed stream (responseType
|
|
302
|
+
// 'stream'), so the response interceptor couldn't classify it. Buffer it and
|
|
303
|
+
// re-run the classifier to surface the typed error (NotFoundError, etc.).
|
|
304
|
+
if (isAxiosError(err) && err.response && err.response.data instanceof Readable) {
|
|
305
|
+
err.response.data = await streamToString(err.response.data);
|
|
306
|
+
handleErrorResponse(err);
|
|
307
|
+
}
|
|
308
|
+
throw err;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
async consumeEventStream(logicalId, deploymentId, onProgress) {
|
|
312
|
+
const stream = await this.openEventStream(logicalId, deploymentId);
|
|
313
|
+
return new Promise((resolve, reject) => {
|
|
314
|
+
let buffer = '';
|
|
315
|
+
let settled = false;
|
|
316
|
+
const settle = (action) => {
|
|
317
|
+
if (settled) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
settled = true;
|
|
321
|
+
stream.destroy();
|
|
322
|
+
action();
|
|
323
|
+
};
|
|
324
|
+
stream.on('data', (chunk) => {
|
|
325
|
+
buffer += chunk.toString('utf8');
|
|
326
|
+
let boundary = buffer.indexOf('\n\n');
|
|
327
|
+
while (boundary !== -1) {
|
|
328
|
+
const frame = parseSseFrame(buffer.slice(0, boundary));
|
|
329
|
+
buffer = buffer.slice(boundary + 2);
|
|
330
|
+
if (frame?.event === 'progress') {
|
|
331
|
+
if (onProgress !== undefined && typeof frame.data?.progress === 'number') {
|
|
332
|
+
onProgress(frame.data.progress);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
else if (frame?.event === 'complete') {
|
|
336
|
+
settle(() => resolve(frame.data));
|
|
337
|
+
}
|
|
338
|
+
else if (frame?.event === 'error') {
|
|
339
|
+
const message = typeof frame.data?.message === 'string'
|
|
340
|
+
? frame.data.message
|
|
341
|
+
: 'The deployment event stream reported an error.';
|
|
342
|
+
settle(() => reject(new ProjectDeployFailedError(message)));
|
|
343
|
+
}
|
|
344
|
+
boundary = buffer.indexOf('\n\n');
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
// Both a clean EOF before a terminal frame and a socket error (the common
|
|
348
|
+
// mid-deploy drop, e.g. ECONNRESET) are interruptions eligible for reconnect.
|
|
349
|
+
stream.on('end', () => settle(() => reject(new DeploymentStreamInterruptedError())));
|
|
350
|
+
stream.on('error', () => settle(() => reject(new DeploymentStreamInterruptedError())));
|
|
351
|
+
});
|
|
93
352
|
}
|
|
94
353
|
/**
|
|
95
354
|
* @throws {ProjectNotFoundError} If the project does not exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/rest/projects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AA0G1E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,SAAS,CAAQ;IAEjB,YAAa,SAAiB,EAAE,OAAsB;QACpD,KAAK,CAAC,YAAY,SAAS,mBAAmB,EAAE,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,SAAS,CAAQ;IAEjB,YAAa,SAAiB,EAAE,OAAsB;QACpD,KAAK,CAAC,wCAAwC,SAAS,4BAA4B,EAAE,OAAO,CAAC,CAAA;QAC7F,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,YAAa,OAAsB;QACjC,KAAK,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAA;QACrD,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAa,OAAsB;QACjC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAa,OAAsB;QACjC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,QAAQ;IACZ,GAAG,CAAe;IAClB,YAAa,GAAkB;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAyB,gBAAgB,CAAC,CAAA;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,SAAiB;QAC1B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAkB,kBAAkB,cAAc,EAAE,CAAC,CAAA;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,OAAgB;QAC5B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACxD,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAE,SAAiB,EAAE,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,EAAE;QACxE,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,cAAc,EAAE,EAAE;gBAC/D,MAAM,EAAE,EAAE,iBAAiB,EAAE;aAC9B,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,MAAM,CAAE,SAAsB,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,EAAE;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAClB,mCAAmC,MAAM,qBAAqB,gBAAgB,EAAE,EAChF,SAAS,EACT,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAC1C,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,SAAiB,EAAE,OAA2B;QACpE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAA;QACD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAa,kBAAkB,cAAc,UAAU,EAAE,OAAO,EAAE;gBAC1F,MAAM,EAAE;oBACN,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;iBACnC;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjE,MAAM,IAAI,+BAA+B,EAAE,CAAA;gBAC7C,CAAC;gBAED,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,SAAiB,EAAE,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,EAAE;QAC/F,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,kBAAkB,cAAc,UAAU,EAAE;gBAClF,MAAM,EAAE;oBACN,aAAa;oBACb,eAAe;iBAChB;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,eAAe,CAAE,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,EAAE;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,wBAAwB,EAAE;YAC1D,MAAM,EAAE;gBACN,aAAa;gBACb,eAAe;aAChB;SACF,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,YAAoB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAO,0BAA0B,YAAY,EAAE,CAAC,CAAA;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,2BAA2B,EAAE,CAAA;YACzC,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,uBAAuB,EAAE,CAAA;YACrC,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAE,YAAoB;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAO,0BAA0B,YAAY,QAAQ,CAAC,CAAA;QAClF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,2BAA2B,EAAE,CAAA;YACzC,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,uBAAuB,EAAE,CAAA;YACrC,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,YAAoB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAO,0BAA0B,YAAY,SAAS,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,2BAA2B,EAAE,CAAA;YACzC,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,uBAAuB,EAAE,CAAA;YACrC,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;CACF;AAED,eAAe,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/rest/projects.ts"],"names":[],"mappings":"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"}
|