@quiltr/sdk 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/shared/http-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,QAAQ,EAA8B,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IAMT,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;gBAEH,MAAM,EAAE,SAAS;IAM9C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAK1D,WAAW,IAAI,IAAI;IAKnB,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/shared/http-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,QAAQ,EAA8B,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IAMT,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;gBAEH,MAAM,EAAE,SAAS;IAM9C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAK1D,WAAW,IAAI,IAAI;IAKnB,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YA2FzD,cAAc;YAsEd,mBAAmB;IA6BjC,OAAO,CAAC,QAAQ;IAgBhB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -41,38 +41,47 @@ export class HttpClient {
|
|
|
41
41
|
const maxRetries = this.config.maxRetries ?? 2;
|
|
42
42
|
let lastError = null;
|
|
43
43
|
const startTime = Date.now();
|
|
44
|
+
// Generate correlation ID ONCE for the entire request lifecycle (including retries)
|
|
45
|
+
const correlationId = this.config.correlationIdProvider?.() || undefined;
|
|
44
46
|
this.log.debug(`${options.method} ${options.path}`, {
|
|
45
47
|
method: options.method,
|
|
46
48
|
path: options.path,
|
|
49
|
+
correlationId,
|
|
47
50
|
});
|
|
48
51
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
49
|
-
const result = await this.executeRequest(options);
|
|
52
|
+
const result = await this.executeRequest(options, correlationId);
|
|
50
53
|
if (result.success) {
|
|
51
54
|
this.log.info(`${options.method} ${options.path} OK`, {
|
|
52
55
|
method: options.method,
|
|
53
56
|
path: options.path,
|
|
54
57
|
duration: Date.now() - startTime,
|
|
55
58
|
attempts: attempt + 1,
|
|
59
|
+
correlationId,
|
|
56
60
|
});
|
|
57
61
|
return result;
|
|
58
62
|
}
|
|
59
63
|
lastError = result.error;
|
|
60
64
|
// On 401, attempt token refresh (once)
|
|
61
65
|
if (result.error.statusCode === 401 && attempt === 0 && !options.skipAuth) {
|
|
62
|
-
this.log.info(`${options.method} ${options.path} 401 — attempting token refresh
|
|
66
|
+
this.log.info(`${options.method} ${options.path} 401 — attempting token refresh`, {
|
|
67
|
+
correlationId,
|
|
68
|
+
});
|
|
63
69
|
const refreshed = await this.attemptTokenRefresh();
|
|
64
70
|
if (refreshed) {
|
|
65
|
-
// Retry the original request with new token
|
|
66
|
-
const retryResult = await this.executeRequest(options);
|
|
71
|
+
// Retry the original request with new token (same correlation ID)
|
|
72
|
+
const retryResult = await this.executeRequest(options, correlationId);
|
|
67
73
|
if (retryResult.success) {
|
|
68
74
|
this.log.info(`${options.method} ${options.path} OK after token refresh`, {
|
|
69
75
|
duration: Date.now() - startTime,
|
|
76
|
+
correlationId,
|
|
70
77
|
});
|
|
71
78
|
}
|
|
72
79
|
return retryResult;
|
|
73
80
|
}
|
|
74
81
|
// Refresh failed - auth is gone
|
|
75
|
-
this.log.warn(`${options.method} ${options.path} auth expired — refresh failed
|
|
82
|
+
this.log.warn(`${options.method} ${options.path} auth expired — refresh failed`, {
|
|
83
|
+
correlationId,
|
|
84
|
+
});
|
|
76
85
|
this.config.onAuthExpired?.();
|
|
77
86
|
return result;
|
|
78
87
|
}
|
|
@@ -84,6 +93,7 @@ export class HttpClient {
|
|
|
84
93
|
status: result.error.statusCode,
|
|
85
94
|
message: result.error.message,
|
|
86
95
|
duration: Date.now() - startTime,
|
|
96
|
+
correlationId,
|
|
87
97
|
});
|
|
88
98
|
return result;
|
|
89
99
|
}
|
|
@@ -94,6 +104,7 @@ export class HttpClient {
|
|
|
94
104
|
status: result.error.statusCode,
|
|
95
105
|
message: result.error.message,
|
|
96
106
|
delay,
|
|
107
|
+
correlationId,
|
|
97
108
|
});
|
|
98
109
|
await this.delay(delay);
|
|
99
110
|
}
|
|
@@ -101,10 +112,11 @@ export class HttpClient {
|
|
|
101
112
|
this.log.error(`${options.method} ${options.path} failed after ${maxRetries + 1} attempts`, {
|
|
102
113
|
message: lastError?.message,
|
|
103
114
|
duration: Date.now() - startTime,
|
|
115
|
+
correlationId,
|
|
104
116
|
});
|
|
105
117
|
return failure(lastError || new SdkError('Request failed after retries'));
|
|
106
118
|
}
|
|
107
|
-
async executeRequest(options) {
|
|
119
|
+
async executeRequest(options, correlationId) {
|
|
108
120
|
const url = this.buildUrl(options.path, options.query);
|
|
109
121
|
const timeout = options.timeout ?? this.config.timeout ?? 30000;
|
|
110
122
|
const headers = {
|
|
@@ -113,12 +125,9 @@ export class HttpClient {
|
|
|
113
125
|
...this.config.headers,
|
|
114
126
|
...options.headers,
|
|
115
127
|
};
|
|
116
|
-
// Inject correlation ID for distributed tracing
|
|
117
|
-
if (
|
|
118
|
-
|
|
119
|
-
if (correlationId) {
|
|
120
|
-
headers['x-correlation-id'] = correlationId;
|
|
121
|
-
}
|
|
128
|
+
// Inject pre-generated correlation ID for distributed tracing
|
|
129
|
+
if (correlationId) {
|
|
130
|
+
headers['x-correlation-id'] = correlationId;
|
|
122
131
|
}
|
|
123
132
|
if (!options.skipAuth && this.accessToken) {
|
|
124
133
|
headers['Authorization'] = `Bearer ${this.accessToken}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/shared/http-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAe,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAchE,MAAM,OAAO,UAAU;IAMQ;IALrB,WAAW,GAAkB,IAAI,CAAC;IAClC,YAAY,GAAkB,IAAI,CAAC;IACnC,cAAc,GAA4B,IAAI,CAAC;IACtC,GAAG,CAAY;IAEhC,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAC5C,qCAAqC;QACrC,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACnF,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,YAAoB;QACjD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,OAAuB;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,GAAoB,IAAI,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/shared/http-client.ts"],"names":[],"mappings":"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"}
|