@madewithremy/admin 0.1.4 → 0.1.6
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/index.d.ts +408 -25
- package/dist/index.js +212 -28
- package/dist/index.js.map +1 -1
- package/dist/prod.js +468 -35
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -89,6 +89,16 @@ var AdminTimeoutError = class extends Error {
|
|
|
89
89
|
|
|
90
90
|
// src/http.ts
|
|
91
91
|
var REQUEST_TIMEOUT_MS = 3e4;
|
|
92
|
+
var TRANSIENT_GRACE_MS = 2 * 6e4;
|
|
93
|
+
function isTransientError(err) {
|
|
94
|
+
if (err instanceof AdminApiError) {
|
|
95
|
+
return err.status >= 500;
|
|
96
|
+
}
|
|
97
|
+
if (err instanceof AdminTimeoutError) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
return err instanceof TypeError;
|
|
101
|
+
}
|
|
92
102
|
var REPORT_TIMEOUT_MS = 6e4;
|
|
93
103
|
function seg(value) {
|
|
94
104
|
return encodeURIComponent(String(value));
|
|
@@ -350,9 +360,12 @@ function liftFromLive(ctx, params = {}) {
|
|
|
350
360
|
var dataSources_exports = {};
|
|
351
361
|
__export(dataSources_exports, {
|
|
352
362
|
DEFAULT_WAIT_TIMEOUT_MS: () => DEFAULT_WAIT_TIMEOUT_MS,
|
|
363
|
+
DOCUMENTS_IDS_MAX: () => DOCUMENTS_IDS_MAX,
|
|
353
364
|
addDocument: () => addDocument,
|
|
365
|
+
allDocuments: () => allDocuments,
|
|
354
366
|
configGet: () => configGet,
|
|
355
367
|
configSet: () => configSet,
|
|
368
|
+
create: () => create,
|
|
356
369
|
deleteSource: () => deleteSource,
|
|
357
370
|
documents: () => documents,
|
|
358
371
|
drop: () => drop,
|
|
@@ -456,12 +469,26 @@ async function waitForIngest(ctx, params) {
|
|
|
456
469
|
}
|
|
457
470
|
const wanted = new Set(documentIds);
|
|
458
471
|
const start = Date.now();
|
|
472
|
+
let transientSince = null;
|
|
459
473
|
for (; ; ) {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
)
|
|
474
|
+
let docs;
|
|
475
|
+
try {
|
|
476
|
+
docs = await allDocuments(ctx, { slug, ids: documentIds });
|
|
477
|
+
transientSince = null;
|
|
478
|
+
} catch (err) {
|
|
479
|
+
if (!isTransientError(err)) {
|
|
480
|
+
throw err;
|
|
481
|
+
}
|
|
482
|
+
transientSince ??= Date.now();
|
|
483
|
+
if (Date.now() - transientSince > TRANSIENT_GRACE_MS) {
|
|
484
|
+
throw err;
|
|
485
|
+
}
|
|
486
|
+
onProgress?.(
|
|
487
|
+
`retrying after a gateway error\u2026 (${Math.round((Date.now() - start) / 1e3)}s)`
|
|
488
|
+
);
|
|
489
|
+
await sleep(POLL_MS);
|
|
490
|
+
continue;
|
|
491
|
+
}
|
|
465
492
|
const tracked = (docs ?? []).filter((d) => wanted.has(d.id));
|
|
466
493
|
const pending = tracked.filter((d) => d.status === "processing");
|
|
467
494
|
const failed = tracked.filter((d) => d.status === "error");
|
|
@@ -486,12 +513,41 @@ async function waitForIngest(ctx, params) {
|
|
|
486
513
|
await sleep(POLL_MS);
|
|
487
514
|
}
|
|
488
515
|
}
|
|
516
|
+
var DOCUMENTS_IDS_MAX = 200;
|
|
489
517
|
function documents(ctx, params) {
|
|
490
518
|
return call(
|
|
491
519
|
ctx,
|
|
492
520
|
"GET",
|
|
493
|
-
`${base(ctx.appId)}/documents${qs({
|
|
494
|
-
|
|
521
|
+
`${base(ctx.appId)}/documents${qs({
|
|
522
|
+
slug: params.slug,
|
|
523
|
+
candidate: params.candidate || void 0,
|
|
524
|
+
ids: params.ids?.length ? params.ids.join(",") : void 0,
|
|
525
|
+
limit: params.limit,
|
|
526
|
+
cursor: params.cursor
|
|
527
|
+
})}`
|
|
528
|
+
);
|
|
529
|
+
}
|
|
530
|
+
async function allDocuments(ctx, params) {
|
|
531
|
+
const groups = params.ids ? Array.from(
|
|
532
|
+
{ length: Math.ceil(params.ids.length / DOCUMENTS_IDS_MAX) },
|
|
533
|
+
(_, i) => params.ids.slice(i * DOCUMENTS_IDS_MAX, (i + 1) * DOCUMENTS_IDS_MAX)
|
|
534
|
+
) : [void 0];
|
|
535
|
+
const out = [];
|
|
536
|
+
for (const ids of groups) {
|
|
537
|
+
let cursor;
|
|
538
|
+
do {
|
|
539
|
+
const page = await documents(ctx, {
|
|
540
|
+
slug: params.slug,
|
|
541
|
+
candidate: params.candidate,
|
|
542
|
+
ids,
|
|
543
|
+
limit: 1e3,
|
|
544
|
+
cursor
|
|
545
|
+
});
|
|
546
|
+
out.push(...page.documents ?? []);
|
|
547
|
+
cursor = page.nextCursor ?? void 0;
|
|
548
|
+
} while (cursor);
|
|
549
|
+
}
|
|
550
|
+
return out;
|
|
495
551
|
}
|
|
496
552
|
function list3(ctx) {
|
|
497
553
|
return call(ctx, "GET", base(ctx.appId));
|
|
@@ -533,7 +589,7 @@ function configGet(ctx, slug) {
|
|
|
533
589
|
);
|
|
534
590
|
}
|
|
535
591
|
function configSet(ctx, params) {
|
|
536
|
-
const { slug, ingest, retrieval } = params;
|
|
592
|
+
const { slug, ingest, retrieval, placement } = params;
|
|
537
593
|
return call(
|
|
538
594
|
ctx,
|
|
539
595
|
"POST",
|
|
@@ -541,10 +597,20 @@ function configSet(ctx, params) {
|
|
|
541
597
|
{
|
|
542
598
|
slug,
|
|
543
599
|
...ingest ? { ingest } : {},
|
|
544
|
-
...retrieval ? { retrieval } : {}
|
|
600
|
+
...retrieval ? { retrieval } : {},
|
|
601
|
+
...placement !== void 0 ? { placement } : {}
|
|
545
602
|
}
|
|
546
603
|
);
|
|
547
604
|
}
|
|
605
|
+
function create(ctx, params) {
|
|
606
|
+
const { slug, name, ingest, placement } = params;
|
|
607
|
+
return call(ctx, "POST", base(ctx.appId), {
|
|
608
|
+
slug,
|
|
609
|
+
...name ? { name } : {},
|
|
610
|
+
...ingest ? { ingest } : {},
|
|
611
|
+
...placement !== void 0 ? { placement } : {}
|
|
612
|
+
});
|
|
613
|
+
}
|
|
548
614
|
function revectorize(ctx, params) {
|
|
549
615
|
const { slug, ingest } = params;
|
|
550
616
|
return call(
|
|
@@ -681,7 +747,9 @@ function summarizeRelease(release) {
|
|
|
681
747
|
}
|
|
682
748
|
return {
|
|
683
749
|
...summary2,
|
|
684
|
-
error: buildFailureReason(release) ?? "Build failed (no error entry in the build log)"
|
|
750
|
+
error: release.failureReason ?? buildFailureReason(release) ?? "Build failed (no error entry in the build log)",
|
|
751
|
+
...release.failureKind ? { failureKind: release.failureKind } : {},
|
|
752
|
+
...release.failurePhase ? { failurePhase: release.failurePhase } : {}
|
|
685
753
|
};
|
|
686
754
|
}
|
|
687
755
|
var POLL_MS2 = 3e3;
|
|
@@ -1101,33 +1169,148 @@ function remove(ctx, ref) {
|
|
|
1101
1169
|
);
|
|
1102
1170
|
}
|
|
1103
1171
|
|
|
1172
|
+
// src/ops/infra.ts
|
|
1173
|
+
var infra_exports = {};
|
|
1174
|
+
__export(infra_exports, {
|
|
1175
|
+
DEFAULT_WAIT_TIMEOUT_MS: () => DEFAULT_WAIT_TIMEOUT_MS2,
|
|
1176
|
+
destroy: () => destroy,
|
|
1177
|
+
get: () => get5,
|
|
1178
|
+
hibernate: () => hibernate,
|
|
1179
|
+
list: () => list6,
|
|
1180
|
+
provision: () => provision,
|
|
1181
|
+
rename: () => rename,
|
|
1182
|
+
resume: () => resume,
|
|
1183
|
+
waitForPhase: () => waitForPhase
|
|
1184
|
+
});
|
|
1185
|
+
var DEFAULT_WAIT_TIMEOUT_MS2 = 10 * 60 * 1e3;
|
|
1186
|
+
var POLL_MS3 = 3e3;
|
|
1187
|
+
function base2(appId) {
|
|
1188
|
+
return `/_internal/v2/apps/${appId}/infra`;
|
|
1189
|
+
}
|
|
1190
|
+
function list6(ctx, params) {
|
|
1191
|
+
return call(
|
|
1192
|
+
ctx,
|
|
1193
|
+
"GET",
|
|
1194
|
+
`${base2(ctx.appId)}${params?.includeDestroyed ? "?includeDestroyed=true" : ""}`
|
|
1195
|
+
);
|
|
1196
|
+
}
|
|
1197
|
+
function get5(ctx, params) {
|
|
1198
|
+
return call(
|
|
1199
|
+
ctx,
|
|
1200
|
+
"GET",
|
|
1201
|
+
`${base2(ctx.appId)}/${encodeURIComponent(params.id)}`
|
|
1202
|
+
);
|
|
1203
|
+
}
|
|
1204
|
+
function provision(ctx, params) {
|
|
1205
|
+
return call(ctx, "POST", base2(ctx.appId), {
|
|
1206
|
+
offeringId: params.offeringId,
|
|
1207
|
+
...params.name ? { name: params.name } : {}
|
|
1208
|
+
});
|
|
1209
|
+
}
|
|
1210
|
+
function hibernate(ctx, params) {
|
|
1211
|
+
return call(
|
|
1212
|
+
ctx,
|
|
1213
|
+
"POST",
|
|
1214
|
+
`${base2(ctx.appId)}/${encodeURIComponent(params.id)}/hibernate`
|
|
1215
|
+
);
|
|
1216
|
+
}
|
|
1217
|
+
function resume(ctx, params) {
|
|
1218
|
+
return call(
|
|
1219
|
+
ctx,
|
|
1220
|
+
"POST",
|
|
1221
|
+
`${base2(ctx.appId)}/${encodeURIComponent(params.id)}/resume`
|
|
1222
|
+
);
|
|
1223
|
+
}
|
|
1224
|
+
function destroy(ctx, params) {
|
|
1225
|
+
return call(
|
|
1226
|
+
ctx,
|
|
1227
|
+
"POST",
|
|
1228
|
+
`${base2(ctx.appId)}/${encodeURIComponent(params.id)}/destroy`
|
|
1229
|
+
);
|
|
1230
|
+
}
|
|
1231
|
+
function rename(ctx, params) {
|
|
1232
|
+
return call(
|
|
1233
|
+
ctx,
|
|
1234
|
+
"POST",
|
|
1235
|
+
`${base2(ctx.appId)}/${encodeURIComponent(params.id)}/rename`,
|
|
1236
|
+
{ name: params.name }
|
|
1237
|
+
);
|
|
1238
|
+
}
|
|
1239
|
+
async function waitForPhase(ctx, params) {
|
|
1240
|
+
const timeoutMs = params.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS2;
|
|
1241
|
+
const wanted = new Set(params.phases);
|
|
1242
|
+
const start = Date.now();
|
|
1243
|
+
let transientSince = null;
|
|
1244
|
+
for (; ; ) {
|
|
1245
|
+
let resource;
|
|
1246
|
+
try {
|
|
1247
|
+
({ resource } = await get5(ctx, { id: params.id }));
|
|
1248
|
+
transientSince = null;
|
|
1249
|
+
} catch (err) {
|
|
1250
|
+
if (!isTransientError(err)) {
|
|
1251
|
+
throw err;
|
|
1252
|
+
}
|
|
1253
|
+
transientSince ??= Date.now();
|
|
1254
|
+
if (Date.now() - transientSince > TRANSIENT_GRACE_MS) {
|
|
1255
|
+
throw err;
|
|
1256
|
+
}
|
|
1257
|
+
params.onProgress?.(
|
|
1258
|
+
`retrying after a gateway error\u2026 (${Math.round((Date.now() - start) / 1e3)}s)`
|
|
1259
|
+
);
|
|
1260
|
+
await sleep(POLL_MS3);
|
|
1261
|
+
continue;
|
|
1262
|
+
}
|
|
1263
|
+
if (wanted.has(resource.phase)) {
|
|
1264
|
+
return { status: "done", resource };
|
|
1265
|
+
}
|
|
1266
|
+
if (resource.phase === "failed") {
|
|
1267
|
+
return {
|
|
1268
|
+
status: "failed",
|
|
1269
|
+
resource,
|
|
1270
|
+
error: resource.lastError ?? "The platform could not complete the change."
|
|
1271
|
+
};
|
|
1272
|
+
}
|
|
1273
|
+
if (Date.now() - start > timeoutMs) {
|
|
1274
|
+
return {
|
|
1275
|
+
status: "timeout",
|
|
1276
|
+
resource,
|
|
1277
|
+
error: `Timed out after ${Math.round(timeoutMs / 1e3)}s; resource is still ${resource.phase}`
|
|
1278
|
+
};
|
|
1279
|
+
}
|
|
1280
|
+
params.onProgress?.(
|
|
1281
|
+
`${resource.phase}${resource.detail ? ` \xB7 ${resource.detail}` : ""}\u2026 (${Math.round((Date.now() - start) / 1e3)}s)`
|
|
1282
|
+
);
|
|
1283
|
+
await sleep(POLL_MS3);
|
|
1284
|
+
}
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1104
1287
|
// src/ops/issues.ts
|
|
1105
1288
|
var issues_exports = {};
|
|
1106
1289
|
__export(issues_exports, {
|
|
1107
1290
|
close: () => close,
|
|
1108
1291
|
comment: () => comment,
|
|
1109
|
-
create: () =>
|
|
1292
|
+
create: () => create2,
|
|
1110
1293
|
del: () => del,
|
|
1111
1294
|
edit: () => edit,
|
|
1112
|
-
get: () =>
|
|
1113
|
-
list: () =>
|
|
1295
|
+
get: () => get6,
|
|
1296
|
+
list: () => list7,
|
|
1114
1297
|
reopen: () => reopen
|
|
1115
1298
|
});
|
|
1116
|
-
function
|
|
1299
|
+
function list7(ctx, params = {}) {
|
|
1117
1300
|
return call(
|
|
1118
1301
|
ctx,
|
|
1119
1302
|
"GET",
|
|
1120
1303
|
`/_internal/v2/apps/${ctx.appId}/issues${qs(params)}`
|
|
1121
1304
|
);
|
|
1122
1305
|
}
|
|
1123
|
-
function
|
|
1306
|
+
function get6(ctx, number) {
|
|
1124
1307
|
return call(
|
|
1125
1308
|
ctx,
|
|
1126
1309
|
"GET",
|
|
1127
1310
|
`/_internal/v2/apps/${ctx.appId}/issues/${seg(number)}`
|
|
1128
1311
|
);
|
|
1129
1312
|
}
|
|
1130
|
-
function
|
|
1313
|
+
function create2(ctx, params) {
|
|
1131
1314
|
const requestBody = {
|
|
1132
1315
|
title: params.title,
|
|
1133
1316
|
authorKind: "agent"
|
|
@@ -1322,9 +1505,9 @@ function grade(ctx, runId) {
|
|
|
1322
1505
|
var methods_exports = {};
|
|
1323
1506
|
__export(methods_exports, {
|
|
1324
1507
|
invoke: () => invoke,
|
|
1325
|
-
list: () =>
|
|
1508
|
+
list: () => list8
|
|
1326
1509
|
});
|
|
1327
|
-
async function
|
|
1510
|
+
async function list8(ctx) {
|
|
1328
1511
|
const dashboard = await call(
|
|
1329
1512
|
ctx,
|
|
1330
1513
|
"GET",
|
|
@@ -1381,19 +1564,19 @@ function invalidate(ctx, params = {}) {
|
|
|
1381
1564
|
// src/ops/requests.ts
|
|
1382
1565
|
var requests_exports = {};
|
|
1383
1566
|
__export(requests_exports, {
|
|
1384
|
-
get: () =>
|
|
1385
|
-
list: () =>
|
|
1567
|
+
get: () => get7,
|
|
1568
|
+
list: () => list9,
|
|
1386
1569
|
statsForMethod: () => statsForMethod,
|
|
1387
1570
|
statsSummary: () => statsSummary
|
|
1388
1571
|
});
|
|
1389
|
-
function
|
|
1572
|
+
function list9(ctx, params = {}) {
|
|
1390
1573
|
return call(
|
|
1391
1574
|
ctx,
|
|
1392
1575
|
"GET",
|
|
1393
1576
|
`/_internal/v2/apps/${ctx.appId}/requests${qs(params)}`
|
|
1394
1577
|
);
|
|
1395
1578
|
}
|
|
1396
|
-
function
|
|
1579
|
+
function get7(ctx, requestId) {
|
|
1397
1580
|
return call(
|
|
1398
1581
|
ctx,
|
|
1399
1582
|
"GET",
|
|
@@ -1419,18 +1602,18 @@ function statsForMethod(ctx, methodId, params = {}) {
|
|
|
1419
1602
|
var secrets_exports = {};
|
|
1420
1603
|
__export(secrets_exports, {
|
|
1421
1604
|
del: () => del2,
|
|
1422
|
-
get: () =>
|
|
1423
|
-
list: () =>
|
|
1605
|
+
get: () => get8,
|
|
1606
|
+
list: () => list10,
|
|
1424
1607
|
set: () => set2
|
|
1425
1608
|
});
|
|
1426
|
-
function
|
|
1609
|
+
function list10(ctx) {
|
|
1427
1610
|
return call(
|
|
1428
1611
|
ctx,
|
|
1429
1612
|
"GET",
|
|
1430
1613
|
`/_internal/v2/apps/${ctx.appId}/secrets`
|
|
1431
1614
|
);
|
|
1432
1615
|
}
|
|
1433
|
-
function
|
|
1616
|
+
function get8(ctx, key) {
|
|
1434
1617
|
return call(
|
|
1435
1618
|
ctx,
|
|
1436
1619
|
"GET",
|
|
@@ -1486,11 +1669,11 @@ function updateSettings(ctx, partial) {
|
|
|
1486
1669
|
var users_exports = {};
|
|
1487
1670
|
__export(users_exports, {
|
|
1488
1671
|
createApiKey: () => createApiKey,
|
|
1489
|
-
list: () =>
|
|
1672
|
+
list: () => list11,
|
|
1490
1673
|
revokeApiKey: () => revokeApiKey,
|
|
1491
1674
|
setRole: () => setRole
|
|
1492
1675
|
});
|
|
1493
|
-
function
|
|
1676
|
+
function list11(ctx, params = {}) {
|
|
1494
1677
|
return call(
|
|
1495
1678
|
ctx,
|
|
1496
1679
|
"GET",
|
|
@@ -1691,6 +1874,7 @@ function buildClient(ctx) {
|
|
|
1691
1874
|
removeDomain: (direction, domain) => removeDomain(ctx, direction, domain)
|
|
1692
1875
|
},
|
|
1693
1876
|
files: bindOps(files_exports, ctx),
|
|
1877
|
+
infra: bindOps(infra_exports, ctx),
|
|
1694
1878
|
issues: bindOps(issues_exports, ctx),
|
|
1695
1879
|
jewels: bindOps(jewels_exports, ctx),
|
|
1696
1880
|
methods: bindOps(methods_exports, ctx),
|