backfarm 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/chunk-7QVYU63E.js +7 -0
  2. package/dist/chunk-7QVYU63E.js.map +1 -0
  3. package/dist/chunk-BMPUYKJJ.js +148 -0
  4. package/dist/chunk-BMPUYKJJ.js.map +1 -0
  5. package/dist/chunk-EB35KLDE.js +49 -0
  6. package/dist/chunk-EB35KLDE.js.map +1 -0
  7. package/dist/chunk-EWQYVPOL.js +30 -0
  8. package/dist/chunk-EWQYVPOL.js.map +1 -0
  9. package/dist/chunk-FMCW72HO.js +110 -0
  10. package/dist/chunk-FMCW72HO.js.map +1 -0
  11. package/dist/chunk-GBXVVI2R.js +528 -0
  12. package/dist/chunk-GBXVVI2R.js.map +1 -0
  13. package/dist/chunk-HZ4GLSOO.js +91 -0
  14. package/dist/chunk-HZ4GLSOO.js.map +1 -0
  15. package/dist/chunk-I6VD2JKM.js +72 -0
  16. package/dist/chunk-I6VD2JKM.js.map +1 -0
  17. package/dist/chunk-IN3YY526.js +165 -0
  18. package/dist/chunk-IN3YY526.js.map +1 -0
  19. package/dist/chunk-MEQAHLW6.js +135 -0
  20. package/dist/chunk-MEQAHLW6.js.map +1 -0
  21. package/dist/chunk-MNSQSU7T.js +90 -0
  22. package/dist/chunk-MNSQSU7T.js.map +1 -0
  23. package/dist/chunk-NDJVYPUT.js +61 -0
  24. package/dist/chunk-NDJVYPUT.js.map +1 -0
  25. package/dist/chunk-NMNAPTVV.js +91 -0
  26. package/dist/chunk-NMNAPTVV.js.map +1 -0
  27. package/dist/chunk-P5XJG7OG.js +71 -0
  28. package/dist/chunk-P5XJG7OG.js.map +1 -0
  29. package/dist/chunk-SSFPGDA3.js +73 -0
  30. package/dist/chunk-SSFPGDA3.js.map +1 -0
  31. package/dist/chunk-UWIMSKL5.js +35 -0
  32. package/dist/chunk-UWIMSKL5.js.map +1 -0
  33. package/dist/chunk-W2745SOE.js +38 -0
  34. package/dist/chunk-W2745SOE.js.map +1 -0
  35. package/dist/chunk-X3R3RLXY.js +62 -0
  36. package/dist/chunk-X3R3RLXY.js.map +1 -0
  37. package/dist/engine/cloudBucket/r2Storage.d.ts +5 -0
  38. package/dist/engine/cloudBucket/r2Storage.js +10 -0
  39. package/dist/engine/cloudBucket/r2Storage.js.map +1 -0
  40. package/dist/engine/mondoDb/mongoDB.d.ts +6 -0
  41. package/dist/engine/mondoDb/mongoDB.js +11 -0
  42. package/dist/engine/mondoDb/mongoDB.js.map +1 -0
  43. package/dist/engine/multer/multer_configs.d.ts +6 -0
  44. package/dist/engine/multer/multer_configs.js +11 -0
  45. package/dist/engine/multer/multer_configs.js.map +1 -0
  46. package/dist/engine/server/app.d.ts +5 -0
  47. package/dist/engine/server/app.js +8 -0
  48. package/dist/engine/server/app.js.map +1 -0
  49. package/dist/engine/server/server.d.ts +6 -0
  50. package/dist/engine/server/server.js +17 -0
  51. package/dist/engine/server/server.js.map +1 -0
  52. package/dist/engine/sql/mySql.d.ts +7 -0
  53. package/dist/engine/sql/mySql.js +13 -0
  54. package/dist/engine/sql/mySql.js.map +1 -0
  55. package/dist/engine/sql/pgSql.d.ts +7 -0
  56. package/dist/engine/sql/pgSql.js +13 -0
  57. package/dist/engine/sql/pgSql.js.map +1 -0
  58. package/dist/event-streams-PM4LQKAH.js +993 -0
  59. package/dist/event-streams-PM4LQKAH.js.map +1 -0
  60. package/dist/utility/libs/env.d.ts +24 -0
  61. package/dist/utility/libs/env.js +8 -0
  62. package/dist/utility/libs/env.js.map +1 -0
  63. package/dist/utility/libs/interface.d.ts +114 -0
  64. package/dist/utility/libs/interface.js +1 -0
  65. package/dist/utility/libs/interface.js.map +1 -0
  66. package/dist/utility/libs/types.d.ts +207 -0
  67. package/dist/utility/libs/types.js +6 -0
  68. package/dist/utility/libs/types.js.map +1 -0
  69. package/dist/utility/utilis/cloud_storage/deleteFile.d.ts +9 -0
  70. package/dist/utility/utilis/cloud_storage/deleteFile.js +60 -0
  71. package/dist/utility/utilis/cloud_storage/deleteFile.js.map +1 -0
  72. package/dist/utility/utilis/cloud_storage/deleteFiles.d.ts +9 -0
  73. package/dist/utility/utilis/cloud_storage/deleteFiles.js +89 -0
  74. package/dist/utility/utilis/cloud_storage/deleteFiles.js.map +1 -0
  75. package/dist/utility/utilis/cloud_storage/downloadFile.d.ts +9 -0
  76. package/dist/utility/utilis/cloud_storage/downloadFile.js +74 -0
  77. package/dist/utility/utilis/cloud_storage/downloadFile.js.map +1 -0
  78. package/dist/utility/utilis/cloud_storage/downloadFiles.d.ts +9 -0
  79. package/dist/utility/utilis/cloud_storage/downloadFiles.js +88 -0
  80. package/dist/utility/utilis/cloud_storage/downloadFiles.js.map +1 -0
  81. package/dist/utility/utilis/cloud_storage/s3Client.d.ts +5 -0
  82. package/dist/utility/utilis/cloud_storage/s3Client.js +17 -0
  83. package/dist/utility/utilis/cloud_storage/s3Client.js.map +1 -0
  84. package/dist/utility/utilis/cloud_storage/uploadFile.d.ts +51 -0
  85. package/dist/utility/utilis/cloud_storage/uploadFile.js +14 -0
  86. package/dist/utility/utilis/cloud_storage/uploadFile.js.map +1 -0
  87. package/dist/utility/utilis/cloud_storage/uploadFiles.d.ts +73 -0
  88. package/dist/utility/utilis/cloud_storage/uploadFiles.js +49 -0
  89. package/dist/utility/utilis/cloud_storage/uploadFiles.js.map +1 -0
  90. package/dist/utility/utilis/general/error_handler.d.ts +31 -0
  91. package/dist/utility/utilis/general/error_handler.js +8 -0
  92. package/dist/utility/utilis/general/error_handler.js.map +1 -0
  93. package/dist/utility/utilis/general/file-operations.d.ts +140 -0
  94. package/dist/utility/utilis/general/file-operations.js +19 -0
  95. package/dist/utility/utilis/general/file-operations.js.map +1 -0
  96. package/dist/utility/utilis/general/sqlDb.js.d.ts +151 -0
  97. package/dist/utility/utilis/general/sqlDb.js.js +13 -0
  98. package/dist/utility/utilis/general/sqlDb.js.js.map +1 -0
  99. package/dist/utility/utilis/general/uuids.d.ts +55 -0
  100. package/dist/utility/utilis/general/uuids.js +8 -0
  101. package/dist/utility/utilis/general/uuids.js.map +1 -0
  102. package/dist/utility/utilis/general/web.d.ts +247 -0
  103. package/dist/utility/utilis/general/web.js +13 -0
  104. package/dist/utility/utilis/general/web.js.map +1 -0
  105. package/dist/utility/utilis/mongoDb/buldWrite.d.ts +53 -0
  106. package/dist/utility/utilis/mongoDb/buldWrite.js +32 -0
  107. package/dist/utility/utilis/mongoDb/buldWrite.js.map +1 -0
  108. package/dist/utility/utilis/mongoDb/deleteDocument.d.ts +54 -0
  109. package/dist/utility/utilis/mongoDb/deleteDocument.js +34 -0
  110. package/dist/utility/utilis/mongoDb/deleteDocument.js.map +1 -0
  111. package/dist/utility/utilis/mongoDb/insertField.d.ts +40 -0
  112. package/dist/utility/utilis/mongoDb/insertField.js +33 -0
  113. package/dist/utility/utilis/mongoDb/insertField.js.map +1 -0
  114. package/dist/utility/utilis/mongoDb/insertFields.d.ts +48 -0
  115. package/dist/utility/utilis/mongoDb/insertFields.js +35 -0
  116. package/dist/utility/utilis/mongoDb/insertFields.js.map +1 -0
  117. package/dist/utility/utilis/mongoDb/updateFiled.d.ts +65 -0
  118. package/dist/utility/utilis/mongoDb/updateFiled.js +40 -0
  119. package/dist/utility/utilis/mongoDb/updateFiled.js.map +1 -0
  120. package/dist/utility/utilis/multer/upload_batch.d.ts +7 -0
  121. package/dist/utility/utilis/multer/upload_batch.js +17 -0
  122. package/dist/utility/utilis/multer/upload_batch.js.map +1 -0
  123. package/dist/utility/utilis/multer/upload_single.d.ts +7 -0
  124. package/dist/utility/utilis/multer/upload_single.js +16 -0
  125. package/dist/utility/utilis/multer/upload_single.js.map +1 -0
  126. package/dist/utility/utilis/postgres/executeQuery.d.ts +215 -0
  127. package/dist/utility/utilis/postgres/executeQuery.js +46 -0
  128. package/dist/utility/utilis/postgres/executeQuery.js.map +1 -0
  129. package/dist/utility/utilis/postgres/subSqlfiles/executeMySqlQuery.d.ts +9 -0
  130. package/dist/utility/utilis/postgres/subSqlfiles/executeMySqlQuery.js +10 -0
  131. package/dist/utility/utilis/postgres/subSqlfiles/executeMySqlQuery.js.map +1 -0
  132. package/dist/utility/utilis/postgres/subSqlfiles/executePgQuery.d.ts +11 -0
  133. package/dist/utility/utilis/postgres/subSqlfiles/executePgQuery.js +12 -0
  134. package/dist/utility/utilis/postgres/subSqlfiles/executePgQuery.js.map +1 -0
  135. package/dist/utility/utilis/server/app.d.ts +5 -0
  136. package/dist/utility/utilis/server/app.js +15 -0
  137. package/dist/utility/utilis/server/app.js.map +1 -0
  138. package/dist/utility/utilis/server/server.d.ts +5 -0
  139. package/dist/utility/utilis/server/server.js +24 -0
  140. package/dist/utility/utilis/server/server.js.map +1 -0
  141. package/package.json +55 -0
@@ -0,0 +1,528 @@
1
+ import {
2
+ ENV
3
+ } from "./chunk-EWQYVPOL.js";
4
+ import {
5
+ __name
6
+ } from "./chunk-7QVYU63E.js";
7
+
8
+ // src/engine/cloudBucket/r2Storage.ts
9
+ import { S3Client } from "@aws-sdk/client-s3";
10
+
11
+ // node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js
12
+ var HttpResponse = class {
13
+ static {
14
+ __name(this, "HttpResponse");
15
+ }
16
+ statusCode;
17
+ reason;
18
+ headers;
19
+ body;
20
+ constructor(options) {
21
+ this.statusCode = options.statusCode;
22
+ this.reason = options.reason;
23
+ this.headers = options.headers || {};
24
+ this.body = options.body;
25
+ }
26
+ static isInstance(response) {
27
+ if (!response)
28
+ return false;
29
+ const resp = response;
30
+ return typeof resp.statusCode === "number" && typeof resp.headers === "object";
31
+ }
32
+ };
33
+
34
+ // node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri.js
35
+ var escapeUri = /* @__PURE__ */ __name((uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode), "escapeUri");
36
+ var hexEncode = /* @__PURE__ */ __name((c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode");
37
+
38
+ // node_modules/@smithy/core/dist-es/submodules/protocols/querystring-builder/buildQueryString.js
39
+ function buildQueryString(query) {
40
+ const parts = [];
41
+ for (let key of Object.keys(query).sort()) {
42
+ const value = query[key];
43
+ key = escapeUri(key);
44
+ if (Array.isArray(value)) {
45
+ for (let i = 0, iLen = value.length; i < iLen; i++) {
46
+ parts.push(`${key}=${escapeUri(value[i])}`);
47
+ }
48
+ } else {
49
+ let qsEntry = key;
50
+ if (value || typeof value === "string") {
51
+ qsEntry += `=${escapeUri(value)}`;
52
+ }
53
+ parts.push(qsEntry);
54
+ }
55
+ }
56
+ return parts.join("&");
57
+ }
58
+ __name(buildQueryString, "buildQueryString");
59
+
60
+ // node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js
61
+ function buildAbortError(abortSignal) {
62
+ const reason = abortSignal && typeof abortSignal === "object" && "reason" in abortSignal ? abortSignal.reason : void 0;
63
+ if (reason) {
64
+ if (reason instanceof Error) {
65
+ const abortError3 = new Error("Request aborted");
66
+ abortError3.name = "AbortError";
67
+ abortError3.cause = reason;
68
+ return abortError3;
69
+ }
70
+ const abortError2 = new Error(String(reason));
71
+ abortError2.name = "AbortError";
72
+ return abortError2;
73
+ }
74
+ const abortError = new Error("Request aborted");
75
+ abortError.name = "AbortError";
76
+ return abortError;
77
+ }
78
+ __name(buildAbortError, "buildAbortError");
79
+
80
+ // node_modules/@smithy/node-http-handler/dist-es/constants.js
81
+ var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"];
82
+
83
+ // node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js
84
+ var getTransformedHeaders = /* @__PURE__ */ __name((headers) => {
85
+ const transformedHeaders = {};
86
+ for (const name in headers) {
87
+ const headerValues = headers[name];
88
+ transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues;
89
+ }
90
+ return transformedHeaders;
91
+ }, "getTransformedHeaders");
92
+
93
+ // node_modules/@smithy/node-http-handler/dist-es/node-https.js
94
+ import node_https from "https";
95
+
96
+ // node_modules/@smithy/node-http-handler/dist-es/timing.js
97
+ var timing = {
98
+ setTimeout: /* @__PURE__ */ __name((cb, ms) => setTimeout(cb, ms), "setTimeout"),
99
+ clearTimeout: /* @__PURE__ */ __name((timeoutId) => clearTimeout(timeoutId), "clearTimeout")
100
+ };
101
+
102
+ // node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js
103
+ var DEFER_EVENT_LISTENER_TIME = 1e3;
104
+ var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => {
105
+ if (!timeoutInMs) {
106
+ return -1;
107
+ }
108
+ const registerTimeout = /* @__PURE__ */ __name((offset) => {
109
+ const timeoutId = timing.setTimeout(() => {
110
+ request.destroy();
111
+ reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {
112
+ name: "TimeoutError"
113
+ }));
114
+ }, timeoutInMs - offset);
115
+ const doWithSocket = /* @__PURE__ */ __name((socket) => {
116
+ if (socket?.connecting) {
117
+ socket.on("connect", () => {
118
+ timing.clearTimeout(timeoutId);
119
+ });
120
+ } else {
121
+ timing.clearTimeout(timeoutId);
122
+ }
123
+ }, "doWithSocket");
124
+ if (request.socket) {
125
+ doWithSocket(request.socket);
126
+ } else {
127
+ request.on("socket", doWithSocket);
128
+ }
129
+ }, "registerTimeout");
130
+ if (timeoutInMs < 2e3) {
131
+ registerTimeout(0);
132
+ return 0;
133
+ }
134
+ return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
135
+ }, "setConnectionTimeout");
136
+
137
+ // node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js
138
+ var setRequestTimeout = /* @__PURE__ */ __name((req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {
139
+ if (timeoutInMs) {
140
+ return timing.setTimeout(() => {
141
+ let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? "ERROR" : "WARN"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;
142
+ if (throwOnRequestTimeout) {
143
+ const error = Object.assign(new Error(msg), {
144
+ name: "TimeoutError",
145
+ code: "ETIMEDOUT"
146
+ });
147
+ req.destroy(error);
148
+ reject(error);
149
+ } else {
150
+ msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;
151
+ logger?.warn?.(msg);
152
+ }
153
+ }, timeoutInMs);
154
+ }
155
+ return -1;
156
+ }, "setRequestTimeout");
157
+
158
+ // node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js
159
+ var DEFER_EVENT_LISTENER_TIME2 = 3e3;
160
+ var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => {
161
+ if (keepAlive !== true) {
162
+ return -1;
163
+ }
164
+ const registerListener = /* @__PURE__ */ __name(() => {
165
+ if (request.socket) {
166
+ request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);
167
+ } else {
168
+ request.on("socket", (socket) => {
169
+ socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);
170
+ });
171
+ }
172
+ }, "registerListener");
173
+ if (deferTimeMs === 0) {
174
+ registerListener();
175
+ return 0;
176
+ }
177
+ return timing.setTimeout(registerListener, deferTimeMs);
178
+ }, "setSocketKeepAlive");
179
+
180
+ // node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js
181
+ var DEFER_EVENT_LISTENER_TIME3 = 3e3;
182
+ var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => {
183
+ const registerTimeout = /* @__PURE__ */ __name((offset) => {
184
+ const timeout = timeoutInMs - offset;
185
+ const onTimeout = /* @__PURE__ */ __name(() => {
186
+ request.destroy();
187
+ reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: "TimeoutError" }));
188
+ }, "onTimeout");
189
+ if (request.socket) {
190
+ request.socket.setTimeout(timeout, onTimeout);
191
+ request.on("close", () => request.socket?.removeListener("timeout", onTimeout));
192
+ } else {
193
+ request.setTimeout(timeout, onTimeout);
194
+ }
195
+ }, "registerTimeout");
196
+ if (0 < timeoutInMs && timeoutInMs < 6e3) {
197
+ registerTimeout(0);
198
+ return 0;
199
+ }
200
+ return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), DEFER_EVENT_LISTENER_TIME3);
201
+ }, "setSocketTimeout");
202
+
203
+ // node_modules/@smithy/node-http-handler/dist-es/write-request-body.js
204
+ import { Readable } from "stream";
205
+ var MIN_WAIT_TIME = 6e3;
206
+ async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {
207
+ const headers = request.headers;
208
+ const expect = headers ? headers.Expect || headers.expect : void 0;
209
+ let timeoutId = -1;
210
+ let sendBody = true;
211
+ if (!externalAgent && expect === "100-continue") {
212
+ sendBody = await Promise.race([
213
+ new Promise((resolve) => {
214
+ timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));
215
+ }),
216
+ new Promise((resolve) => {
217
+ httpRequest.on("continue", () => {
218
+ timing.clearTimeout(timeoutId);
219
+ resolve(true);
220
+ });
221
+ httpRequest.on("response", () => {
222
+ timing.clearTimeout(timeoutId);
223
+ resolve(false);
224
+ });
225
+ httpRequest.on("error", () => {
226
+ timing.clearTimeout(timeoutId);
227
+ resolve(false);
228
+ });
229
+ })
230
+ ]);
231
+ }
232
+ if (sendBody) {
233
+ writeBody(httpRequest, request.body);
234
+ }
235
+ }
236
+ __name(writeRequestBody, "writeRequestBody");
237
+ function writeBody(httpRequest, body) {
238
+ if (body instanceof Readable) {
239
+ body.pipe(httpRequest);
240
+ return;
241
+ }
242
+ if (body) {
243
+ const isBuffer = Buffer.isBuffer(body);
244
+ const isString = typeof body === "string";
245
+ if (isBuffer || isString) {
246
+ if (isBuffer && body.byteLength === 0) {
247
+ httpRequest.end();
248
+ } else {
249
+ httpRequest.end(body);
250
+ }
251
+ return;
252
+ }
253
+ const uint8 = body;
254
+ if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") {
255
+ httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));
256
+ return;
257
+ }
258
+ httpRequest.end(Buffer.from(body));
259
+ return;
260
+ }
261
+ httpRequest.end();
262
+ }
263
+ __name(writeBody, "writeBody");
264
+
265
+ // node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js
266
+ var hAgent = void 0;
267
+ var hRequest = void 0;
268
+ var NodeHttpHandler = class _NodeHttpHandler {
269
+ static {
270
+ __name(this, "NodeHttpHandler");
271
+ }
272
+ config;
273
+ configProvider;
274
+ socketWarningTimestamp = 0;
275
+ externalAgent = false;
276
+ metadata = { handlerProtocol: "http/1.1" };
277
+ static create(instanceOrOptions) {
278
+ if (typeof instanceOrOptions?.handle === "function") {
279
+ return instanceOrOptions;
280
+ }
281
+ return new _NodeHttpHandler(instanceOrOptions);
282
+ }
283
+ static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {
284
+ const { sockets, requests, maxSockets } = agent;
285
+ if (typeof maxSockets !== "number" || maxSockets === Infinity) {
286
+ return socketWarningTimestamp;
287
+ }
288
+ const interval = 15e3;
289
+ if (Date.now() - interval < socketWarningTimestamp) {
290
+ return socketWarningTimestamp;
291
+ }
292
+ if (sockets && requests) {
293
+ for (const origin in sockets) {
294
+ const socketsInUse = sockets[origin]?.length ?? 0;
295
+ const requestsEnqueued = requests[origin]?.length ?? 0;
296
+ if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {
297
+ logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.
298
+ See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html
299
+ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);
300
+ return Date.now();
301
+ }
302
+ }
303
+ }
304
+ return socketWarningTimestamp;
305
+ }
306
+ constructor(options) {
307
+ this.configProvider = new Promise((resolve, reject) => {
308
+ if (typeof options === "function") {
309
+ options().then((_options) => {
310
+ resolve(this.resolveDefaultConfig(_options));
311
+ }).catch(reject);
312
+ } else {
313
+ resolve(this.resolveDefaultConfig(options));
314
+ }
315
+ });
316
+ }
317
+ destroy() {
318
+ this.config?.httpAgent?.destroy();
319
+ this.config?.httpsAgent?.destroy();
320
+ }
321
+ async handle(request, { abortSignal, requestTimeout } = {}) {
322
+ if (!this.config) {
323
+ this.config = await this.configProvider;
324
+ }
325
+ const config = this.config;
326
+ const isSSL = request.protocol === "https:";
327
+ if (!isSSL && !this.config.httpAgent) {
328
+ this.config.httpAgent = await this.config.httpAgentProvider();
329
+ }
330
+ return new Promise((_resolve, _reject) => {
331
+ let writeRequestBodyPromise = void 0;
332
+ let socketWarningTimeoutId = -1;
333
+ let connectionTimeoutId = -1;
334
+ let requestTimeoutId = -1;
335
+ let socketTimeoutId = -1;
336
+ let keepAliveTimeoutId = -1;
337
+ const clearTimeouts = /* @__PURE__ */ __name(() => {
338
+ timing.clearTimeout(socketWarningTimeoutId);
339
+ timing.clearTimeout(connectionTimeoutId);
340
+ timing.clearTimeout(requestTimeoutId);
341
+ timing.clearTimeout(socketTimeoutId);
342
+ timing.clearTimeout(keepAliveTimeoutId);
343
+ }, "clearTimeouts");
344
+ const resolve = /* @__PURE__ */ __name(async (arg) => {
345
+ await writeRequestBodyPromise;
346
+ clearTimeouts();
347
+ _resolve(arg);
348
+ }, "resolve");
349
+ const reject = /* @__PURE__ */ __name(async (arg) => {
350
+ await writeRequestBodyPromise;
351
+ clearTimeouts();
352
+ _reject(arg);
353
+ }, "reject");
354
+ if (abortSignal?.aborted) {
355
+ const abortError = buildAbortError(abortSignal);
356
+ reject(abortError);
357
+ return;
358
+ }
359
+ const headers = request.headers;
360
+ const expectContinue = headers ? (headers.Expect ?? headers.expect) === "100-continue" : false;
361
+ let agent = isSSL ? config.httpsAgent : config.httpAgent;
362
+ if (expectContinue && !this.externalAgent) {
363
+ agent = new (isSSL ? node_https.Agent : hAgent)({
364
+ keepAlive: false,
365
+ maxSockets: Infinity
366
+ });
367
+ }
368
+ socketWarningTimeoutId = timing.setTimeout(() => {
369
+ this.socketWarningTimestamp = _NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);
370
+ }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2e3) + (config.connectionTimeout ?? 1e3));
371
+ const queryString = request.query ? buildQueryString(request.query) : "";
372
+ let auth = void 0;
373
+ if (request.username != null || request.password != null) {
374
+ const username = request.username ?? "";
375
+ const password = request.password ?? "";
376
+ auth = `${username}:${password}`;
377
+ }
378
+ let path = request.path;
379
+ if (queryString) {
380
+ path += `?${queryString}`;
381
+ }
382
+ if (request.fragment) {
383
+ path += `#${request.fragment}`;
384
+ }
385
+ let hostname = request.hostname ?? "";
386
+ if (hostname[0] === "[" && hostname.endsWith("]")) {
387
+ hostname = request.hostname.slice(1, -1);
388
+ } else {
389
+ hostname = request.hostname;
390
+ }
391
+ const nodeHttpsOptions = {
392
+ headers: request.headers,
393
+ host: hostname,
394
+ method: request.method,
395
+ path,
396
+ port: request.port,
397
+ agent,
398
+ auth
399
+ };
400
+ const requestFunc = isSSL ? node_https.request : hRequest;
401
+ const req = requestFunc(nodeHttpsOptions, (res) => {
402
+ const httpResponse = new HttpResponse({
403
+ statusCode: res.statusCode || -1,
404
+ reason: res.statusMessage,
405
+ headers: getTransformedHeaders(res.headers),
406
+ body: res
407
+ });
408
+ resolve({ response: httpResponse });
409
+ });
410
+ req.on("error", (err) => {
411
+ if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {
412
+ reject(Object.assign(err, { name: "TimeoutError" }));
413
+ } else {
414
+ reject(err);
415
+ }
416
+ });
417
+ if (abortSignal) {
418
+ const onAbort = /* @__PURE__ */ __name(() => {
419
+ req.destroy();
420
+ const abortError = buildAbortError(abortSignal);
421
+ reject(abortError);
422
+ }, "onAbort");
423
+ if (typeof abortSignal.addEventListener === "function") {
424
+ const signal = abortSignal;
425
+ signal.addEventListener("abort", onAbort, { once: true });
426
+ req.once("close", () => signal.removeEventListener("abort", onAbort));
427
+ } else {
428
+ abortSignal.onabort = onAbort;
429
+ }
430
+ }
431
+ const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;
432
+ connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);
433
+ requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console);
434
+ socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);
435
+ const httpAgent = nodeHttpsOptions.agent;
436
+ if (typeof httpAgent === "object" && "keepAlive" in httpAgent) {
437
+ keepAliveTimeoutId = setSocketKeepAlive(req, {
438
+ keepAlive: httpAgent.keepAlive,
439
+ keepAliveMsecs: httpAgent.keepAliveMsecs
440
+ });
441
+ }
442
+ writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {
443
+ clearTimeouts();
444
+ return _reject(e);
445
+ });
446
+ });
447
+ }
448
+ updateHttpClientConfig(key, value) {
449
+ this.config = void 0;
450
+ this.configProvider = this.configProvider.then((config) => {
451
+ return {
452
+ ...config,
453
+ [key]: value
454
+ };
455
+ });
456
+ }
457
+ httpHandlerConfigs() {
458
+ return this.config ?? {};
459
+ }
460
+ resolveDefaultConfig(options) {
461
+ const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger } = options || {};
462
+ const keepAlive = true;
463
+ const maxSockets = 50;
464
+ return {
465
+ connectionTimeout,
466
+ requestTimeout,
467
+ socketTimeout,
468
+ socketAcquisitionWarningTimeout,
469
+ throwOnRequestTimeout,
470
+ httpAgentProvider: /* @__PURE__ */ __name(async () => {
471
+ const node_http = await import("http");
472
+ const { Agent, request } = node_http.default ?? node_http;
473
+ hRequest = request;
474
+ hAgent = Agent;
475
+ if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === "function") {
476
+ this.externalAgent = true;
477
+ return httpAgent;
478
+ }
479
+ return new hAgent({ keepAlive, maxSockets, ...httpAgent });
480
+ }, "httpAgentProvider"),
481
+ httpsAgent: (() => {
482
+ if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === "function") {
483
+ this.externalAgent = true;
484
+ return httpsAgent;
485
+ }
486
+ return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });
487
+ })(),
488
+ logger
489
+ };
490
+ }
491
+ };
492
+
493
+ // src/engine/cloudBucket/r2Storage.ts
494
+ var requiredEnv = {
495
+ endpoint: ENV.BUCKET_END_POINT,
496
+ accessKeyId: ENV.BUCKET_ACCESS_KEY_ID,
497
+ secretAccessKey: ENV.BUCKET_SECRET_KEY_ID
498
+ };
499
+ for (const [key, value] of Object.entries(requiredEnv)) {
500
+ if (!value) {
501
+ throw new Error(`[R2 Storage Initialization Error]: Missing environment variable for ${key}`);
502
+ }
503
+ }
504
+ var s3Client = new S3Client({
505
+ region: "auto",
506
+ // Required by Cloudflare R2
507
+ endpoint: requiredEnv.endpoint,
508
+ credentials: {
509
+ accessKeyId: requiredEnv.accessKeyId,
510
+ secretAccessKey: requiredEnv.secretAccessKey
511
+ },
512
+ // Force path style is required for local S3 emulators (e.g. MinIO, LocalStack)
513
+ forcePathStyle: ENV.CURRENT_ENVIRONMENT === ENV.ENV_TYPE_LOCAL,
514
+ // 3. HTTP Connection Pooling & Socket Timeout Management
515
+ requestHandler: new NodeHttpHandler({
516
+ connectionTimeout: 5e3,
517
+ // 5 seconds to establish TCP connection
518
+ socketTimeout: 3e4
519
+ // 30 seconds idle socket timeout before timing out requests
520
+ }),
521
+ // 4. Built-in Retry Strategy with Exponential Backoff
522
+ maxAttempts: 3
523
+ });
524
+
525
+ export {
526
+ s3Client
527
+ };
528
+ //# sourceMappingURL=chunk-GBXVVI2R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/cloudBucket/r2Storage.ts","../node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js","../node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri.js","../node_modules/@smithy/core/dist-es/submodules/protocols/querystring-builder/buildQueryString.js","../node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js","../node_modules/@smithy/node-http-handler/dist-es/constants.js","../node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js","../node_modules/@smithy/node-http-handler/dist-es/node-https.js","../node_modules/@smithy/node-http-handler/dist-es/timing.js","../node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js","../node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js","../node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js","../node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js","../node_modules/@smithy/node-http-handler/dist-es/write-request-body.js","../node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js"],"sourcesContent":["// Functions/utils/r2Storage.ts\r\nimport { S3Client } from '@aws-sdk/client-s3';\r\nimport { NodeHttpHandler } from '@smithy/node-http-handler';\r\nimport { ENV } from \"../../utility/libs/env.js\";\r\n\r\n// 1. Fail-Fast Validation: Crash early on startup if missing critical environment variables\r\nconst requiredEnv = {\r\n endpoint: ENV.BUCKET_END_POINT,\r\n accessKeyId: ENV.BUCKET_ACCESS_KEY_ID,\r\n secretAccessKey: ENV.BUCKET_SECRET_KEY_ID,\r\n};\r\n\r\nfor (const [key, value] of Object.entries(requiredEnv)) {\r\n if (!value) {\r\n throw new Error(`[R2 Storage Initialization Error]: Missing environment variable for ${key}`);\r\n }\r\n}\r\n\r\n// 2. Production-Grade S3 Client Configuration\r\nexport const s3Client: S3Client = new S3Client({\r\n region: 'auto', // Required by Cloudflare R2\r\n endpoint: requiredEnv.endpoint,\r\n credentials: {\r\n accessKeyId: requiredEnv.accessKeyId,\r\n secretAccessKey: requiredEnv.secretAccessKey,\r\n },\r\n // Force path style is required for local S3 emulators (e.g. MinIO, LocalStack)\r\n forcePathStyle: ENV.CURRENT_ENVIRONMENT === ENV.ENV_TYPE_LOCAL,\r\n\r\n // 3. HTTP Connection Pooling & Socket Timeout Management\r\n requestHandler: new NodeHttpHandler({\r\n connectionTimeout: 5000, // 5 seconds to establish TCP connection\r\n socketTimeout: 30000, // 30 seconds idle socket timeout before timing out requests\r\n }),\r\n\r\n // 4. Built-in Retry Strategy with Exponential Backoff\r\n maxAttempts: 3,\r\n});\r\n","export class HttpResponse {\n statusCode;\n reason;\n headers;\n body;\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { escapeUri } from \"../util-uri-escape/escape-uri\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","export function buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n","export const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n","const getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name in headers) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\nexport { getTransformedHeaders };\n","import node_https from \"node:https\";\nexport { node_https };\n","export const timing = {\n setTimeout: (cb, ms) => setTimeout(cb, ms),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n};\n","import { timing } from \"./timing\";\nconst DEFER_EVENT_LISTENER_TIME = 1000;\nexport const setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return -1;\n }\n const registerTimeout = (offset) => {\n const timeoutId = timing.setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket did not establish a connection with the server within the configured timeout of ${timeoutInMs} ms.`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs - offset);\n const doWithSocket = (socket) => {\n if (socket?.connecting) {\n socket.on(\"connect\", () => {\n timing.clearTimeout(timeoutId);\n });\n }\n else {\n timing.clearTimeout(timeoutId);\n }\n };\n if (request.socket) {\n doWithSocket(request.socket);\n }\n else {\n request.on(\"socket\", doWithSocket);\n }\n };\n if (timeoutInMs < 2000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n","import { timing } from \"./timing\";\nexport const setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {\n if (timeoutInMs) {\n return timing.setTimeout(() => {\n let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? \"ERROR\" : \"WARN\"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;\n if (throwOnRequestTimeout) {\n const error = Object.assign(new Error(msg), {\n name: \"TimeoutError\",\n code: \"ETIMEDOUT\",\n });\n req.destroy(error);\n reject(error);\n }\n else {\n msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;\n logger?.warn?.(msg);\n }\n }, timeoutInMs);\n }\n return -1;\n};\n","import { timing } from \"./timing\";\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nexport const setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME) => {\n if (keepAlive !== true) {\n return -1;\n }\n const registerListener = () => {\n if (request.socket) {\n request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n }\n else {\n request.on(\"socket\", (socket) => {\n socket.setKeepAlive(keepAlive, keepAliveMsecs || 0);\n });\n }\n };\n if (deferTimeMs === 0) {\n registerListener();\n return 0;\n }\n return timing.setTimeout(registerListener, deferTimeMs);\n};\n","import { timing } from \"./timing\";\nconst DEFER_EVENT_LISTENER_TIME = 3000;\nexport const setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n const registerTimeout = (offset) => {\n const timeout = timeoutInMs - offset;\n const onTimeout = () => {\n request.destroy();\n reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: \"TimeoutError\" }));\n };\n if (request.socket) {\n request.socket.setTimeout(timeout, onTimeout);\n request.on(\"close\", () => request.socket?.removeListener(\"timeout\", onTimeout));\n }\n else {\n request.setTimeout(timeout, onTimeout);\n }\n };\n if (0 < timeoutInMs && timeoutInMs < 6000) {\n registerTimeout(0);\n return 0;\n }\n return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);\n};\n","import { Readable } from \"node:stream\";\nimport { timing } from \"./timing\";\nconst MIN_WAIT_TIME = 6_000;\nexport async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {\n const headers = request.headers;\n const expect = headers ? headers.Expect || headers.expect : undefined;\n let timeoutId = -1;\n let sendBody = true;\n if (!externalAgent && expect === \"100-continue\") {\n sendBody = await Promise.race([\n new Promise((resolve) => {\n timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));\n }),\n new Promise((resolve) => {\n httpRequest.on(\"continue\", () => {\n timing.clearTimeout(timeoutId);\n resolve(true);\n });\n httpRequest.on(\"response\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n httpRequest.on(\"error\", () => {\n timing.clearTimeout(timeoutId);\n resolve(false);\n });\n }),\n ]);\n }\n if (sendBody) {\n writeBody(httpRequest, request.body);\n }\n}\nfunction writeBody(httpRequest, body) {\n if (body instanceof Readable) {\n body.pipe(httpRequest);\n return;\n }\n if (body) {\n const isBuffer = Buffer.isBuffer(body);\n const isString = typeof body === \"string\";\n if (isBuffer || isString) {\n if (isBuffer && body.byteLength === 0) {\n httpRequest.end();\n }\n else {\n httpRequest.end(body);\n }\n return;\n }\n const uint8 = body;\n if (typeof uint8 === \"object\" &&\n uint8.buffer &&\n typeof uint8.byteOffset === \"number\" &&\n typeof uint8.byteLength === \"number\") {\n httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));\n return;\n }\n httpRequest.end(Buffer.from(body));\n return;\n }\n httpRequest.end();\n}\n","import { HttpResponse, buildQueryString } from \"@smithy/core/protocols\";\nimport { buildAbortError } from \"./build-abort-error\";\nimport { NODEJS_TIMEOUT_ERROR_CODES } from \"./constants\";\nimport { getTransformedHeaders } from \"./get-transformed-headers\";\nimport { node_https } from \"./node-https\";\nimport { setConnectionTimeout } from \"./set-connection-timeout\";\nimport { setRequestTimeout } from \"./set-request-timeout\";\nimport { setSocketKeepAlive } from \"./set-socket-keep-alive\";\nimport { setSocketTimeout } from \"./set-socket-timeout\";\nimport { timing } from \"./timing\";\nimport { writeRequestBody } from \"./write-request-body\";\nexport const DEFAULT_REQUEST_TIMEOUT = 0;\nlet hAgent = undefined;\nlet hRequest = undefined;\nexport class NodeHttpHandler {\n config;\n configProvider;\n socketWarningTimestamp = 0;\n externalAgent = false;\n metadata = { handlerProtocol: \"http/1.1\" };\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new NodeHttpHandler(instanceOrOptions);\n }\n static checkSocketUsage(agent, socketWarningTimestamp, logger = console) {\n const { sockets, requests, maxSockets } = agent;\n if (typeof maxSockets !== \"number\" || maxSockets === Infinity) {\n return socketWarningTimestamp;\n }\n const interval = 15_000;\n if (Date.now() - interval < socketWarningTimestamp) {\n return socketWarningTimestamp;\n }\n if (sockets && requests) {\n for (const origin in sockets) {\n const socketsInUse = sockets[origin]?.length ?? 0;\n const requestsEnqueued = requests[origin]?.length ?? 0;\n if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) {\n logger?.warn?.(`@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued.\nSee https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html\nor increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.`);\n return Date.now();\n }\n }\n }\n return socketWarningTimestamp;\n }\n constructor(options) {\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n destroy() {\n this.config?.httpAgent?.destroy();\n this.config?.httpsAgent?.destroy();\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const config = this.config;\n const isSSL = request.protocol === \"https:\";\n if (!isSSL && !this.config.httpAgent) {\n this.config.httpAgent = await this.config.httpAgentProvider();\n }\n return new Promise((_resolve, _reject) => {\n let writeRequestBodyPromise = undefined;\n let socketWarningTimeoutId = -1;\n let connectionTimeoutId = -1;\n let requestTimeoutId = -1;\n let socketTimeoutId = -1;\n let keepAliveTimeoutId = -1;\n const clearTimeouts = () => {\n timing.clearTimeout(socketWarningTimeoutId);\n timing.clearTimeout(connectionTimeoutId);\n timing.clearTimeout(requestTimeoutId);\n timing.clearTimeout(socketTimeoutId);\n timing.clearTimeout(keepAliveTimeoutId);\n };\n const resolve = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _resolve(arg);\n };\n const reject = async (arg) => {\n await writeRequestBodyPromise;\n clearTimeouts();\n _reject(arg);\n };\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n return;\n }\n const headers = request.headers;\n const expectContinue = headers ? (headers.Expect ?? headers.expect) === \"100-continue\" : false;\n let agent = isSSL ? config.httpsAgent : config.httpAgent;\n if (expectContinue && !this.externalAgent) {\n agent = new (isSSL ? node_https.Agent : hAgent)({\n keepAlive: false,\n maxSockets: Infinity,\n });\n }\n socketWarningTimeoutId = timing.setTimeout(() => {\n this.socketWarningTimestamp = NodeHttpHandler.checkSocketUsage(agent, this.socketWarningTimestamp, config.logger);\n }, config.socketAcquisitionWarningTimeout ?? (config.requestTimeout ?? 2000) + (config.connectionTimeout ?? 1000));\n const queryString = request.query ? buildQueryString(request.query) : \"\";\n let auth = undefined;\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}`;\n }\n let path = request.path;\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let hostname = request.hostname ?? \"\";\n if (hostname[0] === \"[\" && hostname.endsWith(\"]\")) {\n hostname = request.hostname.slice(1, -1);\n }\n else {\n hostname = request.hostname;\n }\n const nodeHttpsOptions = {\n headers: request.headers,\n host: hostname,\n method: request.method,\n path,\n port: request.port,\n agent,\n auth,\n };\n const requestFunc = isSSL ? node_https.request : hRequest;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new HttpResponse({\n statusCode: res.statusCode || -1,\n reason: res.statusMessage,\n headers: getTransformedHeaders(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n if (abortSignal) {\n const onAbort = () => {\n req.destroy();\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n req.once(\"close\", () => signal.removeEventListener(\"abort\", onAbort));\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }\n const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;\n connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);\n requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, config.logger ?? console);\n socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);\n const httpAgent = nodeHttpsOptions.agent;\n if (typeof httpAgent === \"object\" && \"keepAlive\" in httpAgent) {\n keepAliveTimeoutId = setSocketKeepAlive(req, {\n keepAlive: httpAgent.keepAlive,\n keepAliveMsecs: httpAgent.keepAliveMsecs,\n });\n }\n writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout, this.externalAgent).catch((e) => {\n clearTimeouts();\n return _reject(e);\n });\n });\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n return {\n ...config,\n [key]: value,\n };\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n resolveDefaultConfig(options) {\n const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent, throwOnRequestTimeout, logger, } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n requestTimeout,\n socketTimeout,\n socketAcquisitionWarningTimeout,\n throwOnRequestTimeout,\n httpAgentProvider: async () => {\n const node_http = await import(\"node:http\");\n const { Agent, request } = node_http.default ?? node_http;\n hRequest = request;\n hAgent = Agent;\n if (httpAgent instanceof hAgent || typeof httpAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpAgent;\n }\n return new hAgent({ keepAlive, maxSockets, ...httpAgent });\n },\n httpsAgent: (() => {\n if (httpsAgent instanceof node_https.Agent || typeof httpsAgent?.destroy === \"function\") {\n this.externalAgent = true;\n return httpsAgent;\n }\n return new node_https.Agent({ keepAlive, maxSockets, ...httpsAgent });\n })(),\n logger,\n };\n }\n}\n"],"mappings":"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","names":["abortError","DEFER_EVENT_LISTENER_TIME","DEFER_EVENT_LISTENER_TIME"]}