@detergent-software/atk 8.9.2-dev.8 → 8.9.2-dev.9
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/CHANGELOG.md +7 -0
- package/build/lib/api-client.d.ts +7 -2
- package/build/lib/api-client.d.ts.map +1 -1
- package/build/lib/api-client.js +22 -3
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/atk-api/errors.d.ts +9 -0
- package/build/lib/atk-api/errors.d.ts.map +1 -1
- package/build/lib/atk-api/errors.js +36 -0
- package/build/lib/atk-api/errors.js.map +1 -1
- package/build/lib/atk-api/index.d.ts +1 -1
- package/build/lib/atk-api/index.d.ts.map +1 -1
- package/build/lib/atk-api/index.js +1 -1
- package/build/lib/atk-api/index.js.map +1 -1
- package/build/lib/atk-api/transport.d.ts +4 -0
- package/build/lib/atk-api/transport.d.ts.map +1 -1
- package/build/lib/atk-api/transport.js +6 -1
- package/build/lib/atk-api/transport.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [8.9.2-dev.9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.2-dev.8&targetVersion=GTv8.9.2-dev.9) (2026-10-20)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **cli:** fall back to the cache at once when the API is unreachable ([536eb93](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/536eb93b162824879ac3040300b1855bf79ae4c5))
|
|
6
|
+
* **cli:** let the unreachable-API memo expire, and classify more connect failures ([93f6bb3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/93f6bb353aa75638638b01a2ab4db77f7da79a69))
|
|
7
|
+
|
|
1
8
|
## [8.9.2-dev.8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.2-dev.7&targetVersion=GTv8.9.2-dev.8) (2026-10-20)
|
|
2
9
|
|
|
3
10
|
### Bug Fixes
|
|
@@ -44,6 +44,10 @@ export declare class ApiRequestError extends ApiCodeError {
|
|
|
44
44
|
* chain, a config error) propagates unchanged. Offline (`--offline`), it throws
|
|
45
45
|
* an `offline` ApiRequestError at once, with no request.
|
|
46
46
|
*
|
|
47
|
+
* Once a call on the process-wide client fails to connect (refused, DNS,
|
|
48
|
+
* unreachable), every later one for the next 30 s throws that failure at once,
|
|
49
|
+
* worded for its own resource, rather than trying the dead API again (ATK-651).
|
|
50
|
+
*
|
|
47
51
|
* @param resource - Human-readable name of what was requested (used in messages)
|
|
48
52
|
* @param client - A specific client ({@link getAtkForToken}); the process-wide one by default
|
|
49
53
|
*/
|
|
@@ -76,8 +80,9 @@ export declare function presentProblem(error: AtkError, resource: string, source
|
|
|
76
80
|
message: string;
|
|
77
81
|
};
|
|
78
82
|
/**
|
|
79
|
-
* Drop the memoised client
|
|
80
|
-
* Intended for tests and for commands that
|
|
83
|
+
* Drop the memoised client, and any connection failure it had, so the next
|
|
84
|
+
* {@link getAtk} call rebuilds it. Intended for tests and for commands that
|
|
85
|
+
* change `apiUrl` mid-process.
|
|
81
86
|
*/
|
|
82
87
|
export declare function resetApiClient(): void;
|
|
83
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EAIb,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAI/D,+EAA+E;AAC/E,eAAO,MAAM,eAAe,4CAA4C,CAAC;AAEzE,uEAAuE;AACvE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IACvC,IAAI,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,IAAI,SAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;gBAGb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAMjG;AA0DD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAED;;;GAGG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAS3C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAOxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI,eAAe,CAW/F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,gBAAgB,GACxB;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiFtD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIlE;AAED,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAK/G"}
|
package/build/lib/api-client.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Call sites read as `await callApi('your identity', (atk) => atk.me())`.
|
|
13
13
|
*/
|
|
14
|
-
import { createAtkClient, isAtkError } from './atk-api/index.js';
|
|
14
|
+
import { createAtkClient, isAtkError, isConnectionFailure, } from './atk-api/index.js';
|
|
15
15
|
import { getCredential } from './auth.js';
|
|
16
16
|
import { loadConfig } from './config.js';
|
|
17
17
|
import { ApiCodeError } from './errors.js';
|
|
@@ -79,13 +79,24 @@ const SYNTHETIC_CODES = {
|
|
|
79
79
|
network: 'network_error',
|
|
80
80
|
unexpected_response: 'unexpected_response',
|
|
81
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* How long a connection failure stands for the API: long enough to cover one command's calls, short enough that
|
|
84
|
+
* a long session (`browse`) tries again once the network is back.
|
|
85
|
+
*/
|
|
86
|
+
const UNREACHABLE_FOR_MS = 30_000;
|
|
82
87
|
let atkPromise;
|
|
88
|
+
/** The process-wide client's last connection failure and when it happened. */
|
|
89
|
+
let unreachable;
|
|
83
90
|
/**
|
|
84
91
|
* Run one API call, turning an AtkError into an {@link ApiRequestError}
|
|
85
92
|
* worded for `resource`. Anything else (an AuthError from the credential
|
|
86
93
|
* chain, a config error) propagates unchanged. Offline (`--offline`), it throws
|
|
87
94
|
* an `offline` ApiRequestError at once, with no request.
|
|
88
95
|
*
|
|
96
|
+
* Once a call on the process-wide client fails to connect (refused, DNS,
|
|
97
|
+
* unreachable), every later one for the next 30 s throws that failure at once,
|
|
98
|
+
* worded for its own resource, rather than trying the dead API again (ATK-651).
|
|
99
|
+
*
|
|
89
100
|
* @param resource - Human-readable name of what was requested (used in messages)
|
|
90
101
|
* @param client - A specific client ({@link getAtkForToken}); the process-wide one by default
|
|
91
102
|
*/
|
|
@@ -97,6 +108,9 @@ export async function callApi(resource, call, client) {
|
|
|
97
108
|
status: 0,
|
|
98
109
|
});
|
|
99
110
|
}
|
|
111
|
+
if (!client && unreachable && Date.now() - unreachable.at < UNREACHABLE_FOR_MS) {
|
|
112
|
+
throw toApiRequestError(unreachable.error, resource);
|
|
113
|
+
}
|
|
100
114
|
const atk = client ?? (await getAtk());
|
|
101
115
|
try {
|
|
102
116
|
return await call(atk);
|
|
@@ -105,6 +119,9 @@ export async function callApi(resource, call, client) {
|
|
|
105
119
|
if (!isAtkError(err)) {
|
|
106
120
|
throw err;
|
|
107
121
|
}
|
|
122
|
+
if (!client && isAtkError(err, 'network') && isConnectionFailure(err)) {
|
|
123
|
+
unreachable = { at: Date.now(), error: err };
|
|
124
|
+
}
|
|
108
125
|
// A 401 from the process-wide client refused the chain's credential, which is resolved (and cached) by now.
|
|
109
126
|
// An explicit client carries its own token, whatever the chain holds.
|
|
110
127
|
const source = !client && err.status === 401 ? (await getCredential().catch(() => undefined))?.source : undefined;
|
|
@@ -239,11 +256,13 @@ export function presentProblem(error, resource, source) {
|
|
|
239
256
|
}
|
|
240
257
|
}
|
|
241
258
|
/**
|
|
242
|
-
* Drop the memoised client
|
|
243
|
-
* Intended for tests and for commands that
|
|
259
|
+
* Drop the memoised client, and any connection failure it had, so the next
|
|
260
|
+
* {@link getAtk} call rebuilds it. Intended for tests and for commands that
|
|
261
|
+
* change `apiUrl` mid-process.
|
|
244
262
|
*/
|
|
245
263
|
export function resetApiClient() {
|
|
246
264
|
atkPromise = undefined;
|
|
265
|
+
unreachable = undefined;
|
|
247
266
|
}
|
|
248
267
|
/**
|
|
249
268
|
* Resolve the ATK API base URL.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -155,6 +155,15 @@ export declare function isAtkError<K extends AtkProblem['kind']>(err: unknown, k
|
|
|
155
155
|
kind: K;
|
|
156
156
|
}>;
|
|
157
157
|
};
|
|
158
|
+
/**
|
|
159
|
+
* The request never reached the server, and retrying within seconds won't change that: a code in
|
|
160
|
+
* {@link CONNECTION_FAILURE_CODES} anywhere in the `cause` chain (Node's fetch rejects with
|
|
161
|
+
* `TypeError('fetch failed')` and the system error as its cause), the OS's `ETIMEDOUT` on `connect`, an
|
|
162
|
+
* `AggregateError` (one attempt per address of a dual-stack host) whose every attempt is one, or undici's
|
|
163
|
+
* `bad port` (a port fetch blocks, such as 9). A reset, hang-up or timeout after connecting is not one, nor is a
|
|
164
|
+
* browser's fetch failure, which carries no cause.
|
|
165
|
+
*/
|
|
166
|
+
export declare function isConnectionFailure(err: unknown): boolean;
|
|
158
167
|
/**
|
|
159
168
|
* Internal: status + response body (the parsed JSON, or the text when it was
|
|
160
169
|
* not JSON) -> AtkError. Exported for the client and the package's tests.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,42 @@ export function isAtkError(err, kind) {
|
|
|
41
41
|
}
|
|
42
42
|
return kind === undefined || err.problem.kind === kind;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* System error codes for a request that never reached the server: refused, no DNS answer, no route, or undici's
|
|
46
|
+
* connect timeout (a host that drops packets).
|
|
47
|
+
*/
|
|
48
|
+
const CONNECTION_FAILURE_CODES = new Set([
|
|
49
|
+
'EAI_AGAIN',
|
|
50
|
+
'ECONNREFUSED',
|
|
51
|
+
'EHOSTDOWN',
|
|
52
|
+
'EHOSTUNREACH',
|
|
53
|
+
'ENETDOWN',
|
|
54
|
+
'ENETUNREACH',
|
|
55
|
+
'ENOTFOUND',
|
|
56
|
+
'UND_ERR_CONNECT_TIMEOUT',
|
|
57
|
+
]);
|
|
58
|
+
/**
|
|
59
|
+
* The request never reached the server, and retrying within seconds won't change that: a code in
|
|
60
|
+
* {@link CONNECTION_FAILURE_CODES} anywhere in the `cause` chain (Node's fetch rejects with
|
|
61
|
+
* `TypeError('fetch failed')` and the system error as its cause), the OS's `ETIMEDOUT` on `connect`, an
|
|
62
|
+
* `AggregateError` (one attempt per address of a dual-stack host) whose every attempt is one, or undici's
|
|
63
|
+
* `bad port` (a port fetch blocks, such as 9). A reset, hang-up or timeout after connecting is not one, nor is a
|
|
64
|
+
* browser's fetch failure, which carries no cause.
|
|
65
|
+
*/
|
|
66
|
+
export function isConnectionFailure(err) {
|
|
67
|
+
for (let current = err, depth = 0; current instanceof Error && depth < 5; current = current.cause, depth++) {
|
|
68
|
+
const { code, syscall } = current;
|
|
69
|
+
if ((typeof code === 'string' && CONNECTION_FAILURE_CODES.has(code)) ||
|
|
70
|
+
(code === 'ETIMEDOUT' && syscall === 'connect') ||
|
|
71
|
+
current.message === 'bad port' ||
|
|
72
|
+
(current instanceof AggregateError &&
|
|
73
|
+
current.errors.length > 0 &&
|
|
74
|
+
current.errors.every((attempt) => isConnectionFailure(attempt)))) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
44
80
|
/**
|
|
45
81
|
* Classification table. `satisfies` makes it exhaustive: adding a code to the
|
|
46
82
|
* union above fails the build until it is classified here, and a typo or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/lib/atk-api/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/lib/atk-api/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export { createAtkClient } from './client.ts';
|
|
|
19
19
|
export type { AtkClient, AtkClientOptions, CallOptions, Deprecation, DeprecationFile, DeprecationPlan, RegistryChange, RegistryChangePlan, RegistryChangeReceipt, SubmitOptions, } from './client.ts';
|
|
20
20
|
export { assetRef, bundleRef, exactVersion, parseOrg } from './domain.ts';
|
|
21
21
|
export type { ArchiveFormat, AssetRef, AssetType, AssetVersionRef, BundleRef, BundleVersionRef, CliRelease, DownloadedArchive, ExactAssetRef, ExactBundleRef, ExactVersion, Org, Principal, PublishDependency, PublishEntryInput, PublishEntryPlan, PublishFileInput, PublishInput, PublishPlan, PublishReceipt, RegistryRead, RemoteFile, VersionSelector, } from './domain.ts';
|
|
22
|
-
export { AtkError, isAtkError } from './errors.ts';
|
|
22
|
+
export { AtkError, isAtkError, isConnectionFailure } from './errors.ts';
|
|
23
23
|
export type { AtkProblem, ProblemCode, ValidationIssue } from './errors.ts';
|
|
24
24
|
export { PUBLISH_LIMITS } from './limits.ts';
|
|
25
25
|
export { assetRoute, authRedirectRoute, bundleRoute, bundlesRoute, catalogRoute, GETTING_STARTED_SERIES, gettingStartedLinks, gettingStartedRoute, gettingStartedSeriesRoute, parseAssetQuery, parseBundleQuery, parseBundlesQuery, parseCatalogQuery, publishAssetRoute, publishBundleRoute, webRoutes, } from './web-routes.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,GAAG,EACH,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC1E,YAAY,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,GAAG,EACH,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,MAAM,EACN,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export { createAtkClient } from "./client.js";
|
|
20
20
|
export { assetRef, bundleRef, exactVersion, parseOrg } from "./domain.js";
|
|
21
|
-
export { AtkError, isAtkError } from "./errors.js";
|
|
21
|
+
export { AtkError, isAtkError, isConnectionFailure } from "./errors.js";
|
|
22
22
|
export { PUBLISH_LIMITS } from "./limits.js";
|
|
23
23
|
export { assetRoute, authRedirectRoute, bundleRoute, bundlesRoute, catalogRoute, GETTING_STARTED_SERIES, gettingStartedLinks, gettingStartedRoute, gettingStartedSeriesRoute, parseAssetQuery, parseBundleQuery, parseBundlesQuery, parseCatalogQuery, publishAssetRoute, publishBundleRoute, webRoutes, } from "./web-routes.js";
|
|
24
24
|
// The manifest, bundle and registry Zod schemas live in @atk/schemas; re-exported for the web app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/atk-api/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAc9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA2B1E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/atk-api/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAc9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA2B1E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,GACV,MAAM,iBAAiB,CAAC;AAczB,mGAAmG;AACnG,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* `maxDelayMs` is returned at once: retrying before the server's own time only
|
|
10
10
|
* spends more of the limit behind it (a GitHub rate limit sends 40+ minutes).
|
|
11
11
|
*
|
|
12
|
+
* A connection failure ({@link isConnectionFailure}: refused, DNS, unreachable)
|
|
13
|
+
* is thrown at once: the API won't come back within the backoff, and the CLI
|
|
14
|
+
* falls back to its cached registry sooner (ATK-651).
|
|
15
|
+
*
|
|
12
16
|
* POST and PATCH are retried only on a network error before a response
|
|
13
17
|
* arrived, never on a response: a 5xx or a 429 may come after part of the
|
|
14
18
|
* write happened (a blind retry would hit `branch_exists`). That network retry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/transport.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-api/transport.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,oHAAoH;IACpH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,KAAK,CAgCvF"}
|
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
* `maxDelayMs` is returned at once: retrying before the server's own time only
|
|
11
11
|
* spends more of the limit behind it (a GitHub rate limit sends 40+ minutes).
|
|
12
12
|
*
|
|
13
|
+
* A connection failure ({@link isConnectionFailure}: refused, DNS, unreachable)
|
|
14
|
+
* is thrown at once: the API won't come back within the backoff, and the CLI
|
|
15
|
+
* falls back to its cached registry sooner (ATK-651).
|
|
16
|
+
*
|
|
13
17
|
* POST and PATCH are retried only on a network error before a response
|
|
14
18
|
* arrived, never on a response: a 5xx or a 429 may come after part of the
|
|
15
19
|
* write happened (a blind retry would hit `branch_exists`). That network retry
|
|
16
20
|
* cannot rule out that the server received the first request; CLI 8.0.2 and
|
|
17
21
|
* earlier retried the same way.
|
|
18
22
|
*/
|
|
23
|
+
import { isConnectionFailure } from "./errors.js";
|
|
19
24
|
const DEFAULTS = { baseDelayMs: 1_000, jitter: true, maxDelayMs: 10_000, maxRetries: 3 };
|
|
20
25
|
const RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);
|
|
21
26
|
const NON_IDEMPOTENT = new Set(['PATCH', 'POST']);
|
|
@@ -33,7 +38,7 @@ export function withRetry(base, retryOptions) {
|
|
|
33
38
|
response = isRequest ? await base(input.clone()) : await base(input, init);
|
|
34
39
|
}
|
|
35
40
|
catch (error) {
|
|
36
|
-
if (signal?.aborted || attempt >= options.maxRetries) {
|
|
41
|
+
if (signal?.aborted || attempt >= options.maxRetries || isConnectionFailure(error)) {
|
|
37
42
|
throw error;
|
|
38
43
|
}
|
|
39
44
|
await sleep(backoff(attempt, options), signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/atk-api/transport.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/atk-api/transport.ts"],"names":[],"mappings":"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"}
|