@varveai/adit-cloud 0.3.3 → 0.3.4

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.
@@ -4,7 +4,7 @@
4
4
  * Handles Bearer auth, automatic token refresh, and exponential
5
5
  * backoff retry on network errors and 429 rate limits.
6
6
  */
7
- import { isTokenExpired, saveCredentials } from "../auth/credentials.js";
7
+ import { clearAuthFailure, isTokenExpired, loadCredentials, recordAuthFailure, saveCredentials, withCredentialsRefreshLock, } from "../auth/credentials.js";
8
8
  import { CloudAuthError, CloudNetworkError, CloudApiError } from "./errors.js";
9
9
  const MAX_RETRIES = 5;
10
10
  const MAX_REDIRECTS = 5;
@@ -13,7 +13,7 @@ export class CloudClient {
13
13
  credentials;
14
14
  serverUrl;
15
15
  constructor(serverUrl, credentials) {
16
- this.serverUrl = serverUrl.replace(/\/$/, ""); // Strip trailing slash
16
+ this.serverUrl = serverUrl.replace(/\/$/, "");
17
17
  this.credentials = credentials;
18
18
  }
19
19
  /** GET request with auth */
@@ -22,23 +22,19 @@ export class CloudClient {
22
22
  }
23
23
  /** HEAD request with auth — returns headers only */
24
24
  async head(path) {
25
- // Refresh token if expired before making the request (skip for static tokens)
26
- if (this.credentials.authType !== "token" && isTokenExpired(this.credentials)) {
27
- await this.refreshToken();
28
- }
25
+ await this.ensureFreshToken();
29
26
  const url = `${this.serverUrl}${path}`;
30
27
  const headers = {
31
28
  Authorization: `Bearer ${this.credentials.accessToken}`,
32
29
  };
33
30
  const response = await fetch(url, { method: "HEAD", headers });
34
31
  if (response.status === 401 || response.status === 403) {
35
- // Static tokens cannot be refreshed — fail immediately
36
32
  if (this.credentials.authType === "token") {
33
+ this.recordRequestAuthFailure(response.status, response.statusText);
37
34
  throw new CloudAuthError(`Authentication failed: ${response.status} ${response.statusText}`);
38
35
  }
39
36
  if (response.status === 401) {
40
- await this.refreshToken();
41
- // Retry once with new token
37
+ await this.refreshToken(true);
42
38
  const retry = await fetch(url, {
43
39
  method: "HEAD",
44
40
  headers: {
@@ -46,15 +42,22 @@ export class CloudClient {
46
42
  },
47
43
  });
48
44
  if (!retry.ok) {
45
+ if (retry.status === 401 || retry.status === 403) {
46
+ this.recordRequestAuthFailure(retry.status, retry.statusText);
47
+ throw new CloudAuthError(`Authentication failed: ${retry.status} ${retry.statusText}`);
48
+ }
49
49
  throw new CloudApiError(`HEAD ${path}: ${retry.status} ${retry.statusText}`, retry.status);
50
50
  }
51
+ clearAuthFailure();
51
52
  return headersToRecord(retry.headers);
52
53
  }
54
+ this.recordRequestAuthFailure(response.status, response.statusText);
53
55
  throw new CloudAuthError(`Authentication failed: ${response.status} ${response.statusText}`);
54
56
  }
55
57
  if (!response.ok) {
56
58
  throw new CloudApiError(`HEAD ${path}: ${response.status} ${response.statusText}`, response.status);
57
59
  }
60
+ clearAuthFailure();
58
61
  return headersToRecord(response.headers);
59
62
  }
60
63
  /** POST request with auth and JSON body */
@@ -73,11 +76,52 @@ export class CloudClient {
73
76
  getCredentials() {
74
77
  return this.credentials;
75
78
  }
76
- async request(method, path, body, redirectCount = 0) {
77
- // Refresh token if expired before making the request (skip for static tokens)
78
- if (this.credentials.authType !== "token" && isTokenExpired(this.credentials)) {
79
- await this.refreshToken();
79
+ /** Check refresh-token health without rotating it. */
80
+ async getRefreshTokenStatus() {
81
+ if (this.credentials.authType === "token") {
82
+ return {
83
+ valid: true,
84
+ reason: "static_token",
85
+ message: "Static token auth does not use refresh tokens.",
86
+ };
87
+ }
88
+ try {
89
+ const response = await fetch(`${this.serverUrl}/api/auth/token/status`, {
90
+ method: "POST",
91
+ headers: { "Content-Type": "application/json" },
92
+ body: JSON.stringify({ refreshToken: this.credentials.refreshToken }),
93
+ });
94
+ const body = await readResponseBody(response);
95
+ const record = asRecord(body);
96
+ if (!response.ok) {
97
+ return {
98
+ valid: false,
99
+ status: response.status,
100
+ reason: readString(record.reason) ?? readString(record.code) ?? "unknown",
101
+ message: readString(record.error) ?? response.statusText,
102
+ clientId: readString(record.clientId),
103
+ expiresAt: readString(record.expiresAt),
104
+ revokedAt: readString(record.revokedAt),
105
+ };
106
+ }
107
+ return {
108
+ valid: record.valid === true,
109
+ reason: readString(record.reason),
110
+ message: readString(record.error),
111
+ clientId: readString(record.clientId),
112
+ userId: readString(record.userId),
113
+ expiresAt: readString(record.expiresAt),
114
+ client: asRefreshTokenStatusClient(record.client),
115
+ };
80
116
  }
117
+ catch (error) {
118
+ if (error instanceof CloudApiError || error instanceof CloudAuthError)
119
+ throw error;
120
+ throw new CloudNetworkError(`Refresh token status check failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
121
+ }
122
+ }
123
+ async request(method, path, body, redirectCount = 0) {
124
+ await this.ensureFreshToken();
81
125
  let lastError;
82
126
  let currentUrl = `${this.serverUrl}${path}`;
83
127
  for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
@@ -86,7 +130,7 @@ export class CloudClient {
86
130
  await sleep(backoffMs);
87
131
  }
88
132
  try {
89
- let url = currentUrl;
133
+ const url = currentUrl;
90
134
  const headers = {
91
135
  Authorization: `Bearer ${this.credentials.accessToken}`,
92
136
  "Content-Type": "application/json",
@@ -96,16 +140,14 @@ export class CloudClient {
96
140
  headers,
97
141
  body: body !== undefined ? JSON.stringify(body) : undefined,
98
142
  });
99
- // Handle 401 — static tokens cannot be refreshed, fail immediately
100
143
  if (response.status === 401 && this.credentials.authType === "token") {
144
+ this.recordRequestAuthFailure(response.status, response.statusText);
101
145
  throw new CloudAuthError(`Authentication failed: ${response.status} ${response.statusText}`);
102
146
  }
103
- // Handle 401 — try refreshing token once (device auth only)
104
147
  if (response.status === 401 && attempt === 0) {
105
- await this.refreshToken();
106
- continue; // Retry with new token
148
+ await this.refreshToken(true);
149
+ continue;
107
150
  }
108
- // Handle 429 rate limit — respect Retry-After header
109
151
  if (response.status === 429) {
110
152
  const retryAfter = response.headers.get("Retry-After");
111
153
  if (retryAfter) {
@@ -114,107 +156,189 @@ export class CloudClient {
114
156
  await sleep(Math.min(waitMs, 60_000));
115
157
  }
116
158
  }
117
- continue; // Retry
159
+ continue;
118
160
  }
119
- // Handle redirects
120
161
  if (response.status >= 300 && response.status < 400) {
121
162
  const location = response.headers.get("Location");
122
163
  if (!location) {
123
- throw new CloudApiError(`Redirect missing Location header`, response.status);
164
+ throw new CloudApiError("Redirect missing Location header", response.status);
124
165
  }
125
166
  if (redirectCount >= MAX_REDIRECTS) {
126
167
  throw new CloudNetworkError(`Too many redirects (max ${MAX_REDIRECTS}) for ${method} ${path}`);
127
168
  }
128
- // Parse Location URL
129
169
  const redirectUrl = new URL(location, url);
130
- // For 303, always use GET method
131
170
  const effectiveMethod = response.status === 303 ? "GET" : method;
132
- // Update URL and continue the loop
133
171
  currentUrl = redirectUrl.toString();
134
172
  method = effectiveMethod;
135
- // Clear body for GET/HEAD redirects after 303
136
173
  if (response.status === 303 || effectiveMethod === "GET" || effectiveMethod === "HEAD") {
137
174
  body = undefined;
138
175
  }
139
- // Increment redirect count for the next iteration
140
176
  return this.request(method, path, body, redirectCount + 1);
141
177
  }
142
178
  if (!response.ok) {
143
- // Read body as text first (always safe), then try to parse as JSON.
144
- // This avoids the "Body is unusable: Body has already been read"
145
- // error that occurs when response.json() fails on an empty body
146
- // and then response.text() tries to read the already-consumed stream.
147
- let responseBody;
148
- try {
149
- const text = await response.text();
150
- try {
151
- responseBody = JSON.parse(text);
152
- }
153
- catch {
154
- responseBody = text || null;
155
- }
156
- }
157
- catch {
158
- responseBody = null;
159
- }
179
+ const responseBody = await readResponseBody(response);
160
180
  if (response.status === 401 || response.status === 403) {
181
+ this.recordRequestAuthFailure(response.status, response.statusText, readBodyCode(responseBody));
161
182
  throw new CloudAuthError(`Authentication failed: ${response.status} ${response.statusText}`);
162
183
  }
163
184
  throw new CloudApiError(`API error: ${response.status} ${response.statusText}`, response.status, responseBody);
164
185
  }
165
- // 204 No Content
186
+ clearAuthFailure();
166
187
  if (response.status === 204) {
167
188
  return undefined;
168
189
  }
169
190
  return (await response.json());
170
191
  }
171
192
  catch (error) {
172
- // Don't retry auth errors
173
193
  if (error instanceof CloudAuthError)
174
194
  throw error;
175
195
  if (error instanceof CloudApiError)
176
196
  throw error;
177
- // Network error retry with backoff
178
- lastError =
179
- error instanceof Error
180
- ? error
181
- : new Error(String(error));
197
+ lastError = error instanceof Error ? error : new Error(String(error));
182
198
  }
183
199
  }
184
200
  throw new CloudNetworkError(`Request failed after ${MAX_RETRIES} retries: ${method} ${path}`, lastError);
185
201
  }
186
- /** Refresh the access token using the refresh token */
187
- async refreshToken() {
202
+ async ensureFreshToken() {
203
+ if (this.credentials.authType !== "token" && isTokenExpired(this.credentials)) {
204
+ await this.refreshToken(false);
205
+ }
206
+ }
207
+ /** Refresh the access token using the refresh token. */
208
+ async refreshToken(force) {
188
209
  if (this.credentials.authType === "token") {
189
210
  throw new CloudAuthError("Cannot refresh a static token. Re-authenticate with a new token or use 'adit cloud login'.");
190
211
  }
191
- try {
192
- const response = await fetch(`${this.serverUrl}/api/auth/token/refresh`, {
193
- method: "POST",
194
- headers: { "Content-Type": "application/json" },
195
- body: JSON.stringify({
196
- refreshToken: this.credentials.refreshToken,
197
- }),
198
- });
199
- if (!response.ok) {
200
- throw new CloudAuthError(`Token refresh failed: ${response.status}. Please re-authenticate with 'adit cloud login'.`);
212
+ await withCredentialsRefreshLock(async () => {
213
+ const original = this.credentials;
214
+ const stored = loadCredentials();
215
+ if (stored &&
216
+ stored.authType !== "token" &&
217
+ stored.clientId === original.clientId &&
218
+ this.sameServer(stored.serverUrl)) {
219
+ this.credentials = stored;
220
+ const tokenChanged = stored.accessToken !== original.accessToken ||
221
+ stored.refreshToken !== original.refreshToken;
222
+ if ((tokenChanged || !force) && !isTokenExpired(stored)) {
223
+ return;
224
+ }
201
225
  }
202
- const data = (await response.json());
203
- this.credentials = {
204
- ...this.credentials,
205
- accessToken: data.accessToken,
206
- refreshToken: data.refreshToken,
207
- expiresAt: data.expiresAt,
208
- };
209
- // Persist the refreshed credentials
210
- saveCredentials(this.credentials);
226
+ try {
227
+ const response = await fetch(`${this.serverUrl}/api/auth/token/refresh`, {
228
+ method: "POST",
229
+ headers: { "Content-Type": "application/json" },
230
+ body: JSON.stringify({
231
+ refreshToken: this.credentials.refreshToken,
232
+ }),
233
+ });
234
+ const data = await readResponseBody(response);
235
+ if (!response.ok) {
236
+ const code = readBodyCode(data);
237
+ const message = `Token refresh failed: ${response.status}. Please re-authenticate with 'adit cloud login'.`;
238
+ recordAuthFailure({
239
+ stage: "refresh",
240
+ message,
241
+ status: response.status,
242
+ code,
243
+ });
244
+ throw new CloudAuthError(message);
245
+ }
246
+ const tokenData = asRecord(data);
247
+ const accessToken = readString(tokenData.accessToken);
248
+ const refreshToken = readString(tokenData.refreshToken);
249
+ if (!accessToken || !refreshToken) {
250
+ const message = "Token refresh failed: response missing accessToken or refreshToken.";
251
+ recordAuthFailure({ stage: "refresh", message, code: "malformed_refresh_response" });
252
+ throw new CloudAuthError(message);
253
+ }
254
+ const expiresAt = resolveExpiresAt(tokenData);
255
+ this.credentials = {
256
+ ...this.credentials,
257
+ accessToken,
258
+ refreshToken,
259
+ clientId: readString(tokenData.clientId) ?? this.credentials.clientId,
260
+ expiresAt,
261
+ lastAuthFailure: undefined,
262
+ };
263
+ saveCredentials(this.credentials);
264
+ }
265
+ catch (error) {
266
+ if (error instanceof CloudAuthError)
267
+ throw error;
268
+ const message = `Token refresh failed: ${error instanceof Error ? error.message : String(error)}`;
269
+ recordAuthFailure({ stage: "refresh", message });
270
+ throw new CloudAuthError(message);
271
+ }
272
+ });
273
+ }
274
+ sameServer(serverUrl) {
275
+ return serverUrl.replace(/\/$/, "") === this.serverUrl;
276
+ }
277
+ recordRequestAuthFailure(status, statusText, code) {
278
+ recordAuthFailure({
279
+ stage: "request",
280
+ message: `Authentication failed: ${status} ${statusText}`,
281
+ status,
282
+ code,
283
+ });
284
+ }
285
+ }
286
+ function resolveExpiresAt(data) {
287
+ const explicit = readString(data.expiresAt);
288
+ if (explicit) {
289
+ const timestamp = new Date(explicit).getTime();
290
+ if (Number.isFinite(timestamp))
291
+ return new Date(timestamp).toISOString();
292
+ }
293
+ const expiresIn = typeof data.expiresIn === "number" ? data.expiresIn : Number(data.expiresIn);
294
+ if (Number.isFinite(expiresIn) && expiresIn > 0) {
295
+ return new Date(Date.now() + expiresIn * 1000).toISOString();
296
+ }
297
+ const message = "Token refresh failed: response missing valid expiresAt or expiresIn.";
298
+ recordAuthFailure({ stage: "refresh", message, code: "malformed_refresh_response" });
299
+ throw new CloudAuthError(message);
300
+ }
301
+ async function readResponseBody(response) {
302
+ try {
303
+ const text = await response.text();
304
+ if (!text)
305
+ return null;
306
+ try {
307
+ return JSON.parse(text);
211
308
  }
212
- catch (error) {
213
- if (error instanceof CloudAuthError)
214
- throw error;
215
- throw new CloudAuthError(`Token refresh failed: ${error instanceof Error ? error.message : String(error)}`);
309
+ catch {
310
+ return text;
216
311
  }
217
312
  }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ function readBodyCode(body) {
318
+ const record = asRecord(body);
319
+ return readString(record.code) ?? readString(record.reason) ?? readString(record.error);
320
+ }
321
+ function asRecord(value) {
322
+ return value && typeof value === "object" && !Array.isArray(value)
323
+ ? value
324
+ : {};
325
+ }
326
+ function readString(value) {
327
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
328
+ }
329
+ function asRefreshTokenStatusClient(value) {
330
+ const record = asRecord(value);
331
+ const id = readString(record.id);
332
+ const displayName = readString(record.displayName);
333
+ if (!id || !displayName)
334
+ return undefined;
335
+ return {
336
+ id,
337
+ displayName,
338
+ platform: readString(record.platform) ?? null,
339
+ isActive: record.isActive === true,
340
+ lastSeenAt: readString(record.lastSeenAt) ?? null,
341
+ };
218
342
  }
219
343
  function sleep(ms) {
220
344
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,OAAO,WAAW;IACd,WAAW,CAAmB;IACrB,SAAS,CAAS;IAEnC,YAAY,SAAiB,EAAE,WAA6B;QAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;QACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,GAAG,CAAI,IAAY;QACvB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;SACxD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,uDAAuD;YACvD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC1C,MAAM,IAAI,cAAc,CACpB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,4BAA4B;gBAC5B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC7B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;qBACxD;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBACd,MAAM,IAAI,aAAa,CACnB,QAAQ,IAAI,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,EACnD,KAAK,CAAC,MAAM,CACf,CAAC;gBACJ,CAAC;gBACD,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,IAAI,cAAc,CACpB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,aAAa,CACnB,QAAQ,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EACzD,QAAQ,CAAC,MAAM,CAClB,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QACvC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,IAAa;QACxC,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,CAAC,OAAO,CAAO,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,4DAA4D;IAC5D,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,OAAO,CACjB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,aAAa,GAAG,CAAC;QAEnB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,SAA4B,CAAC;QACjC,IAAI,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;QAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,GAAG,GAAG,UAAU,CAAC;gBACrB,MAAM,OAAO,GAA2B;oBACtC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;oBACvD,cAAc,EAAE,kBAAkB;iBACnC,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM;oBACN,OAAO;oBACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D,CAAC,CAAC;gBAEH,mEAAmE;gBACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACrE,MAAM,IAAI,cAAc,CACpB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACrE,CAAC;gBACJ,CAAC;gBAED,4DAA4D;gBAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,SAAS,CAAC,uBAAuB;gBACnC,CAAC;gBAED,qDAAqD;gBACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvD,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;wBAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBACD,SAAS,CAAC,QAAQ;gBACpB,CAAC;gBAED,mBAAmB;gBACnB,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,aAAa,CACnB,kCAAkC,EAClC,QAAQ,CAAC,MAAM,CAClB,CAAC;oBACJ,CAAC;oBAED,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;wBACnC,MAAM,IAAI,iBAAiB,CACvB,2BAA2B,aAAa,SAAS,MAAM,IAAI,IAAI,EAAE,CACpE,CAAC;oBACJ,CAAC;oBAED,qBAAqB;oBACrB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAE3C,iCAAiC;oBACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEjE,mCAAmC;oBACnC,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACpC,MAAM,GAAG,eAAe,CAAC;oBAEzB,8CAA8C;oBAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;wBACvF,IAAI,GAAG,SAAS,CAAC;oBACnB,CAAC;oBAED,kDAAkD;oBAClD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,oEAAoE;oBACpE,iEAAiE;oBACjE,gEAAgE;oBAChE,sEAAsE;oBACtE,IAAI,YAAqB,CAAC;oBAC1B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,IAAI,CAAC;4BACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClC,CAAC;wBAAC,MAAM,CAAC;4BACP,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC;wBAC9B,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;oBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBACvD,MAAM,IAAI,cAAc,CACpB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACrE,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,aAAa,CACnB,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EACtD,QAAQ,CAAC,MAAM,EACf,YAAY,CACf,CAAC;gBACJ,CAAC;gBAED,iBAAiB;gBACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,SAAc,CAAC;gBACxB,CAAC;gBAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0BAA0B;gBAC1B,IAAI,KAAK,YAAY,cAAc;oBAAE,MAAM,KAAK,CAAC;gBACjD,IAAI,KAAK,YAAY,aAAa;oBAAE,MAAM,KAAK,CAAC;gBAEhD,qCAAqC;gBACrC,SAAS;oBACL,KAAK,YAAY,KAAK;wBAClB,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,iBAAiB,CACvB,wBAAwB,WAAW,aAAa,MAAM,IAAI,IAAI,EAAE,EAChE,SAAS,CACZ,CAAC;IACJ,CAAC;IAED,uDAAuD;IAC/C,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,cAAc,CACpB,4FAA4F,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,IAAI,CAAC,SAAS,yBAAyB,EAC1C;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;iBAC5C,CAAC;aACH,CACJ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,cAAc,CACpB,yBAAyB,QAAQ,CAAC,MAAM,mDAAmD,CAC9F,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;YAEF,IAAI,CAAC,WAAW,GAAG;gBACjB,GAAG,IAAI,CAAC,WAAW;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;YAEF,oCAAoC;YACpC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc;gBAAE,MAAM,KAAK,CAAC;YACjD,MAAM,IAAI,cAAc,CACpB,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC;AA4BhC,MAAM,OAAO,WAAW;IACd,WAAW,CAAmB;IACrB,SAAS,CAAS;IAEnC,YAAY,SAAiB,EAAE,WAA6B;QAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,GAAG,CAAI,IAAY;QACvB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;SACxD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpE,MAAM,IAAI,cAAc,CACtB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACnE,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC7B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;qBACxD;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBACd,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBACjD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC9D,MAAM,IAAI,cAAc,CACtB,0BAA0B,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAC7D,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,aAAa,CACrB,QAAQ,IAAI,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,EACnD,KAAK,CAAC,MAAM,CACb,CAAC;gBACJ,CAAC;gBACD,gBAAgB,EAAE,CAAC;gBACnB,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,IAAI,cAAc,CACtB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACnE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,aAAa,CACrB,QAAQ,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EACzD,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QAED,gBAAgB,EAAE,CAAC;QACnB,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QACvC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,IAAa;QACxC,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,CAAC,OAAO,CAAO,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,4DAA4D;IAC5D,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,qBAAqB;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC1C,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,gDAAgD;aAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,wBAAwB,EAAE;gBACtE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;aACtE,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS;oBACzE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU;oBACxD,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACrC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;oBACvC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;iBACxC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI;gBAC5B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACrC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;gBACvC,MAAM,EAAE,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC;aAClD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,cAAc;gBAAE,MAAM,KAAK,CAAC;YACnF,MAAM,IAAI,iBAAiB,CACzB,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9F,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,aAAa,GAAG,CAAC;QAEjB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,SAA4B,CAAC;QACjC,IAAI,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;QAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC;gBACvB,MAAM,OAAO,GAA2B;oBACtC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;oBACvD,cAAc,EAAE,kBAAkB;iBACnC,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM;oBACN,OAAO;oBACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACrE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACpE,MAAM,IAAI,cAAc,CACtB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACnE,CAAC;gBACJ,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC9B,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvD,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;wBAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;4BACjC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,aAAa,CAAC,kCAAkC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC/E,CAAC;oBAED,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;wBACnC,MAAM,IAAI,iBAAiB,CACzB,2BAA2B,aAAa,SAAS,MAAM,IAAI,IAAI,EAAE,CAClE,CAAC;oBACJ,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjE,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACpC,MAAM,GAAG,eAAe,CAAC;oBAEzB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;wBACvF,IAAI,GAAG,SAAS,CAAC;oBACnB,CAAC;oBAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAEtD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBACvD,IAAI,CAAC,wBAAwB,CAC3B,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,YAAY,CAAC,YAAY,CAAC,CAC3B,CAAC;wBACF,MAAM,IAAI,cAAc,CACtB,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACnE,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,aAAa,CACrB,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EACtD,QAAQ,CAAC,MAAM,EACf,YAAY,CACb,CAAC;gBACJ,CAAC;gBAED,gBAAgB,EAAE,CAAC;gBACnB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,SAAc,CAAC;gBACxB,CAAC;gBAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,cAAc;oBAAE,MAAM,KAAK,CAAC;gBACjD,IAAI,KAAK,YAAY,aAAa;oBAAE,MAAM,KAAK,CAAC;gBAEhD,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,iBAAiB,CACzB,wBAAwB,WAAW,aAAa,MAAM,IAAI,IAAI,EAAE,EAChE,SAAS,CACV,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,wDAAwD;IAChD,KAAK,CAAC,YAAY,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,cAAc,CACtB,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QAED,MAAM,0BAA0B,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YACjC,IACE,MAAM;gBACN,MAAM,CAAC,QAAQ,KAAK,OAAO;gBAC3B,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;gBACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EACjC,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC1B,MAAM,YAAY,GAChB,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW;oBAC3C,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC;gBAChD,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,yBAAyB,EAAE;oBACvE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;qBAC5C,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,OAAO,GAAG,yBAAyB,QAAQ,CAAC,MAAM,mDAAmD,CAAC;oBAC5G,iBAAiB,CAAC;wBAChB,KAAK,EAAE,SAAS;wBAChB,OAAO;wBACP,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,IAAI;qBACL,CAAC,CAAC;oBACH,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAyB,CAAC;gBACzD,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClC,MAAM,OAAO,GAAG,qEAAqE,CAAC;oBACtF,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;oBACrF,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,WAAW,GAAG;oBACjB,GAAG,IAAI,CAAC,WAAW;oBACnB,WAAW;oBACX,YAAY;oBACZ,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ;oBACrE,SAAS;oBACT,eAAe,EAAE,SAAS;iBAC3B,CAAC;gBAEF,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,cAAc;oBAAE,MAAM,KAAK,CAAC;gBACjD,MAAM,OAAO,GAAG,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClG,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjD,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC;IACzD,CAAC;IAEO,wBAAwB,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAa;QAChF,iBAAiB,CAAC;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,0BAA0B,MAAM,IAAI,UAAU,EAAE;YACzD,MAAM;YACN,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAA0B;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,sEAAsE,CAAC;IACvF,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB;IAChD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO;QACL,EAAE;QACF,WAAW;QACX,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI;QAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI;QAClC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,9 +5,9 @@
5
5
  * cursor-based incremental sync engine, and conflict resolution.
6
6
  */
7
7
  export { loadCloudConfig, DEFAULT_SERVER_URL, type CloudConfig, type ProjectLinkConfig } from "./config.js";
8
- export { loadCredentials, saveCredentials, clearCredentials, isTokenExpired, credentialsFromEnvToken, incrementSyncErrors, clearSyncErrors, isSyncDisabled, type CloudCredentials, } from "./auth/credentials.js";
8
+ export { loadCredentials, saveCredentials, clearCredentials, isTokenExpired, credentialsFromEnvToken, incrementSyncErrors, clearSyncErrors, isSyncDisabled, recordAuthFailure, clearAuthFailure, type CloudCredentials, type CloudAuthFailure, type CloudAuthFailureStage, } from "./auth/credentials.js";
9
9
  export { requestDeviceCode, pollForToken, type DeviceCodeResponse, type TokenResponse, type DeviceAuthOptions, } from "./auth/device-auth.js";
10
- export { CloudClient } from "./http/client.js";
10
+ export { CloudClient, type RefreshTokenStatus } from "./http/client.js";
11
11
  export { CloudAuthError, CloudNetworkError, CloudApiError, } from "./http/errors.js";
12
12
  export { SyncEngine, type SyncResult, type SyncConflict, } from "./sync/engine.js";
13
13
  export { buildSyncBatch, countUnsyncedRecords, batchRecordCount, type SyncBatch, } from "./sync/serializer.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG5G,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG5G,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  // Config
8
8
  export { loadCloudConfig, DEFAULT_SERVER_URL } from "./config.js";
9
9
  // Auth
10
- export { loadCredentials, saveCredentials, clearCredentials, isTokenExpired, credentialsFromEnvToken, incrementSyncErrors, clearSyncErrors, isSyncDisabled, } from "./auth/credentials.js";
10
+ export { loadCredentials, saveCredentials, clearCredentials, isTokenExpired, credentialsFromEnvToken, incrementSyncErrors, clearSyncErrors, isSyncDisabled, recordAuthFailure, clearAuthFailure, } from "./auth/credentials.js";
11
11
  export { requestDeviceCode, pollForToken, } from "./auth/device-auth.js";
12
12
  // HTTP
13
13
  export { CloudClient } from "./http/client.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAA4C,MAAM,aAAa,CAAC;AAE5G,OAAO;AACP,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,YAAY,GAIb,MAAM,uBAAuB,CAAC;AAE/B,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO;AACP,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GAOnB,MAAM,uBAAuB,CAAC;AAI/B,eAAe;AACf,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GActB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAA4C,MAAM,aAAa,CAAC;AAE5G,OAAO;AACP,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,YAAY,GAIb,MAAM,uBAAuB,CAAC;AAE/B,OAAO;AACP,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO;AACP,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GAOnB,MAAM,uBAAuB,CAAC;AAI/B,eAAe;AACf,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GActB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -16,9 +16,10 @@
16
16
  * with inherited environment, so credentials and config are available.
17
17
  */
18
18
  import type Database from "better-sqlite3";
19
+ export declare const REFS_FINGERPRINT_CACHE_KEY = "__adit_git_refs_fingerprint";
19
20
  /**
20
- * Trigger a background project-link sync if credentials exist and
21
- * the cached link data is stale.
21
+ * Trigger a background project-link sync if credentials exist and the
22
+ * cached link data is stale or git refs changed since the last check.
22
23
  *
23
24
  * This function is designed to be called as fire-and-forget:
24
25
  * triggerProjectLinkSync(db, projectId, projectRoot).catch(() => {})
@@ -27,4 +28,5 @@ import type Database from "better-sqlite3";
27
28
  * process, so the 10-second hook timeout does not apply.
28
29
  */
29
30
  export declare function triggerProjectLinkSync(db: Database.Database, projectId: string, projectRoot: string): Promise<void>;
31
+ export declare function collectGitRefsFingerprint(projectRoot: string): Promise<string | null>;
30
32
  //# sourceMappingURL=auto-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-link.d.ts","sourceRoot":"","sources":["../../src/project-link/auto-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAS3C;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
1
+ {"version":3,"file":"auto-link.d.ts","sourceRoot":"","sources":["../../src/project-link/auto-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAU3C,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc3F"}
@@ -16,12 +16,15 @@
16
16
  * with inherited environment, so credentials and config are available.
17
17
  */
18
18
  import { spawn } from "node:child_process";
19
+ import { createHash } from "node:crypto";
19
20
  import { loadCloudConfig, DEFAULT_SERVER_URL } from "../config.js";
20
21
  import { loadCredentials, credentialsFromEnvToken, isSyncDisabled, } from "../auth/credentials.js";
21
22
  import { getProjectLinkCache } from "./cache.js";
23
+ import { runGit } from "@varveai/adit-engine";
24
+ export const REFS_FINGERPRINT_CACHE_KEY = "__adit_git_refs_fingerprint";
22
25
  /**
23
- * Trigger a background project-link sync if credentials exist and
24
- * the cached link data is stale.
26
+ * Trigger a background project-link sync if credentials exist and the
27
+ * cached link data is stale or git refs changed since the last check.
25
28
  *
26
29
  * This function is designed to be called as fire-and-forget:
27
30
  * triggerProjectLinkSync(db, projectId, projectRoot).catch(() => {})
@@ -58,23 +61,37 @@ export async function triggerProjectLinkSync(db, projectId, projectRoot) {
58
61
  }
59
62
  if (!serverUrl)
60
63
  return;
61
- // 3. Check staleness skip if cached data is fresh enough
64
+ // 3. Check staleness. If the cache is still fresh, do one cheap refs
65
+ // fingerprint check so new branches/commits can still trigger a git-only
66
+ // link without scanning docs.
62
67
  const cache = getProjectLinkCache(db, projectId, serverUrl);
68
+ let gitOnlySync = false;
63
69
  if (cache?.lastBranchSyncAt) {
64
70
  const staleMs = cloudConfig.projectLink.staleHours * 60 * 60 * 1000;
65
71
  const lastSyncTime = new Date(cache.lastBranchSyncAt).getTime();
66
72
  // Guard against corrupted date strings that produce NaN
67
73
  if (!Number.isNaN(lastSyncTime)) {
68
74
  const elapsed = Date.now() - lastSyncTime;
69
- if (elapsed < staleMs)
70
- return;
75
+ if (elapsed < staleMs) {
76
+ const refsFingerprint = await collectGitRefsFingerprint(projectRoot);
77
+ const cachedRefsFingerprint = typeof cache.docHashes[REFS_FINGERPRINT_CACHE_KEY] === "string"
78
+ ? cache.docHashes[REFS_FINGERPRINT_CACHE_KEY]
79
+ : null;
80
+ if (!refsFingerprint || refsFingerprint === cachedRefsFingerprint)
81
+ return;
82
+ gitOnlySync = true;
83
+ }
71
84
  }
72
85
  }
73
86
  // 4. Spawn detached child process to run the full link flow.
74
87
  // Uses `npx adit cloud link` which handles its own
75
88
  // credential loading, database opening, and error handling.
76
89
  try {
77
- const child = spawn("npx", ["adit", "cloud", "link", "--json", "--skip-qualify"], {
90
+ const args = ["adit", "cloud", "link", "--json", "--skip-qualify"];
91
+ if (gitOnlySync) {
92
+ args.push("--skip-docs");
93
+ }
94
+ const child = spawn("npx", args, {
78
95
  cwd: projectRoot,
79
96
  stdio: ["ignore", "ignore", "ignore"],
80
97
  detached: true,
@@ -88,4 +105,16 @@ export async function triggerProjectLinkSync(db, projectId, projectRoot) {
88
105
  // fail-open — spawn itself may throw (e.g. npx not found)
89
106
  }
90
107
  }
108
+ export async function collectGitRefsFingerprint(projectRoot) {
109
+ const result = await runGit([
110
+ "for-each-ref",
111
+ "refs/heads",
112
+ "refs/remotes",
113
+ "--sort=refname",
114
+ "--format=%(refname)%00%(objectname)",
115
+ ], { cwd: projectRoot, timeout: 5_000 });
116
+ if (result.exitCode !== 0)
117
+ return null;
118
+ return createHash("sha256").update(result.stdout).digest("hex");
119
+ }
91
120
  //# sourceMappingURL=auto-link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-link.js","sourceRoot":"","sources":["../../src/project-link/auto-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAqB,EACrB,SAAiB,EACjB,WAAmB;IAEnB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IAEtC,gDAAgD;IAChD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ;QAAE,OAAO;IAE9C,sEAAsE;IACtE,IAAI,cAAc,EAAE;QAAE,OAAO;IAE7B,0EAA0E;IAC1E,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,MAAM,iBAAiB,GAAG,eAAe,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACxD,MAAM,QAAQ,GAAG,iBAAiB,EAAE,QAAQ,IAAI,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;QAC3G,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK;YAAE,OAAO;IACrB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAC/B,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAEjE,gEAAgE;QAChE,IAAI,WAAW,CAAC,SAAS,IAAI,iBAAiB,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YACnF,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,2DAA2D;IAC3D,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,gBAAgB,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACpE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,wDAAwD;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YAC1C,IAAI,OAAO,GAAG,OAAO;gBAAE,OAAO;QAChC,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,sDAAsD;IACtD,+DAA+D;IAC/D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CACjB,KAAK,EACL,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EACrD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACrC,QAAQ,EAAE,IAAI;SACf,CACF,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,YAAY;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auto-link.js","sourceRoot":"","sources":["../../src/project-link/auto-link.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare function clearProjectLinkCache(db: Database.Database, projectId:
17
17
  export declare function updateCachedCommitSha(db: Database.Database, projectId: string, serverUrl: string, sha: string): void;
18
18
  /** Update cached document hashes after upload */
19
19
  export declare function updateCachedDocHashes(db: Database.Database, projectId: string, serverUrl: string, hashes: Record<string, string>): void;
20
+ /** Update cached metadata JSON without marking documents as synced. */
21
+ export declare function updateCachedMetadata(db: Database.Database, projectId: string, serverUrl: string, hashes: Record<string, string>): void;
20
22
  /** Mark as qualified or not */
21
23
  export declare function updateCachedQualified(db: Database.Database, projectId: string, serverUrl: string, qualified: boolean): void;
22
24
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/project-link/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgBnD,0CAA0C;AAC1C,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,gBAAgB,GAAG,IAAI,CA0BzB;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,gBAAgB,GACtB,IAAI,CA2BN;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAGN;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,IAAI,CAMN;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAYN;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,GACjB,IAAI,CAMN"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/project-link/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgBnD,0CAA0C;AAC1C,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,gBAAgB,GAAG,IAAI,CA0BzB;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,gBAAgB,GACtB,IAAI,CA2BN;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI,CAGN;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,IAAI,CAMN;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAYN;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,IAAI,CAWN;AAED,+BAA+B;AAC/B,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,GACjB,IAAI,CAMN"}