@tetrascience-npm/ts-connectors-sdk 4.0.0-beta.183.1 → 4.0.0-beta.185.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.
@@ -60,7 +60,7 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
60
60
  * can connect to, allowing us to test actual timeout behavior with the real code path.
61
61
  */
62
62
  (0, vitest_1.describe)('AWS Handler Timeout Tests', () => {
63
- (0, fixture_1.connectorTest)('DAM-T186: HTTP handler for S3 client respects socket timeout configuration', { timeout: 1 * 60 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
63
+ (0, fixture_1.connectorTest)('DAM-T186: HTTP handler for S3 client respects socket timeout configuration', (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
64
64
  console.log('[TEST] Starting DAM-T186');
65
65
  // Set up test proxy server
66
66
  const proxyServer = new test_proxy_server_1.TestProxyServer();
@@ -116,6 +116,11 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
116
116
  finally {
117
117
  // Clean up: stop proxy server and restore environment
118
118
  console.log('[TEST] Entering finally block');
119
+ // Shut down the connector BEFORE stopping the proxy. shutdown() clears the
120
+ // heartbeat interval and sets listeningForCommands=false so that when the
121
+ // proxy destroys active sockets, the SQS retry loop does not reconnect.
122
+ // Without this, proxyServer.stop() hangs waiting for background traffic.
123
+ yield standaloneConnector.shutdown();
119
124
  console.log('[TEST] Stopping proxy server');
120
125
  yield proxyServer.stop();
121
126
  console.log('[TEST] Proxy server stopped');
@@ -135,7 +140,7 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
135
140
  console.log('[TEST] DAM-T186 cleanup complete');
136
141
  }
137
142
  }));
138
- (0, fixture_1.connectorTest)('DAM-T187: HTTP handler for SQS client respects request timeout configuration', { timeout: 1 * 60 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
143
+ (0, fixture_1.connectorTest)('DAM-T187: HTTP handler for SQS client respects request timeout configuration', (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
139
144
  // Set up test proxy server
140
145
  const proxyServer = new test_proxy_server_1.TestProxyServer();
141
146
  const proxyPort = yield proxyServer.start();
@@ -175,6 +180,9 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
175
180
  }))).rejects.toThrow(/timeout|timed out/i);
176
181
  }
177
182
  finally {
183
+ // Shut down the connector first so its background traffic (SQS poller,
184
+ // heartbeats) stops retrying before we close the proxy server.
185
+ yield standaloneConnector.shutdown();
178
186
  // Clean up: stop proxy server and restore environment
179
187
  yield proxyServer.stop();
180
188
  if (originalHttpProxy !== undefined) {
@@ -191,7 +199,7 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
191
199
  }
192
200
  }
193
201
  }));
194
- (0, fixture_1.connectorTest)('DAM-T188: HTTP handler for SSM and CloudWatch respects request timeout configuration', { timeout: 1 * 60 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
202
+ (0, fixture_1.connectorTest)('DAM-T188: HTTP handler for SSM and CloudWatch respects request timeout configuration', (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
195
203
  // Set up test proxy server
196
204
  const proxyServer = new test_proxy_server_1.TestProxyServer();
197
205
  const proxyPort = yield proxyServer.start();
@@ -231,6 +239,9 @@ const test_proxy_server_1 = require("./fixture/test-proxy-server");
231
239
  }))).rejects.toThrow(/timeout|timed out/i);
232
240
  }
233
241
  finally {
242
+ // Shut down the connector first so its background traffic (SQS poller,
243
+ // heartbeats) stops retrying before we close the proxy server.
244
+ yield standaloneConnector.shutdown();
234
245
  // Clean up: stop proxy server and restore environment
235
246
  yield proxyServer.stop();
236
247
  if (originalHttpProxy !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"aws-timeout.test.js","sourceRoot":"","sources":["../../api-tests/aws-timeout.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws-timeout.test.js","sourceRoot":"","sources":["../../api-tests/aws-timeout.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-aws-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-aws-client.test.d.ts","sourceRoot":"","sources":["../../api-tests/create-aws-client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ const ssm = __importStar(require("@aws-sdk/client-ssm"));
46
+ const vitest_1 = require("vitest");
47
+ const auth_1 = require("../src/auth");
48
+ const fixture_1 = require("./fixture/fixture");
49
+ /**
50
+ * Integration tests for createAwsClient() (WA-1231 / PR #126).
51
+ *
52
+ * Unit tests in test/tdp-client.test.ts cover Priority 1 (authToken → AwsEnvClientProvider)
53
+ * and Priority 3 (cloud IAM → AwsEnvClientProvider) — both paths return undefined from
54
+ * getCredentialsProvider(), so no credentials are injected and the AWS SDK uses its ambient
55
+ * IAM chain. Those paths are also already exercised end-to-end by the existing api-tests.
56
+ *
57
+ * This file covers the gap: Priority 2 (CONNECTOR_TOKEN → AwsRefreshClientProvider), where
58
+ * getCredentialsProvider() returns a live function that must be injected by the factory and
59
+ * must successfully exchange the connector JWT for STS credentials via TDP's /credentials API.
60
+ * That exchange can only be validated against a real TDP environment, not in a unit test.
61
+ */
62
+ (0, vitest_1.describe)('createAwsClient() Factory Tests', () => {
63
+ (0, fixture_1.connectorTest)('DAM-T192: createAwsClient() injects AwsRefreshClientProvider credentials when initialized via CONNECTOR_TOKEN', { timeout: 2 * 60 * 1000 }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ standaloneConnector, expect }) {
64
+ // The fixture sets CONNECTOR_TOKEN before init(), so init() takes the Priority 2 branch
65
+ // and creates an AwsRefreshClientProvider (not the default AwsEnvClientProvider).
66
+ yield standaloneConnector.start();
67
+ const tdpClient = standaloneConnector.tdpClient;
68
+ // Guard: confirm we are on the CONNECTOR_TOKEN path as expected.
69
+ expect(tdpClient['awsClientProvider']).toBeInstanceOf(auth_1.AwsRefreshClientProvider);
70
+ // createAwsClient() calls getCredentialsProvider() and injects the result via
71
+ // ...(credentials && { credentials }). For AwsRefreshClientProvider this is a
72
+ // non-undefined async function, so it gets injected into the client config.
73
+ const ssmClient = tdpClient.createAwsClient(ssm.SSMClient);
74
+ expect(ssmClient).toBeInstanceOf(ssm.SSMClient);
75
+ // Invoking the injected function makes a real HTTP call to TDP's /credentials API,
76
+ // exchanging the connector JWT for short-lived STS credentials. Success here proves
77
+ // the full chain: credential function extracted → injected → called → credentials valid.
78
+ const credentials = yield ssmClient.config.credentials();
79
+ expect(credentials.accessKeyId).toBeTruthy();
80
+ expect(credentials.secretAccessKey).toBeTruthy();
81
+ expect(credentials.sessionToken).toBeTruthy(); // present for STS-issued temporary credentials
82
+ }));
83
+ });
84
+ //# sourceMappingURL=create-aws-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-aws-client.test.js","sourceRoot":"","sources":["../../api-tests/create-aws-client.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAC3C,mCAAkC;AAElC,sCAAuD;AACvD,+CAAkD;AAElD;;;;;;;;;;;;GAYG;AACH,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAA,uBAAa,EACX,+GAA+G,EAC/G,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAC1B,KAAwC,EAAE,4CAAnC,EAAE,mBAAmB,EAAE,MAAM,EAAE;QACpC,wFAAwF;QACxF,kFAAkF;QAClF,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,SAAS,GAAI,mBAA2B,CAAC,SAAS,CAAC;QAEzD,iEAAiE;QACjE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,+BAAwB,CAAC,CAAC;QAEhF,8EAA8E;QAC9E,8EAA8E;QAC9E,4EAA4E;QAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEhD,mFAAmF;QACnF,oFAAoF;QACpF,yFAAyF;QACzF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,+CAA+C;IAChG,CAAC,CAAA,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -32,9 +32,9 @@ export declare class TestProxyServer {
32
32
  addMockResponse(pattern: RegExp, statusCode: number, body: string, headers?: Record<string, string>, delayMs?: number): void;
33
33
  /**
34
34
  * Add a socket hang rule for HTTPS requests matching the given pattern.
35
- * The connection will be established, but no data will be sent,
36
- * causing a socket timeout. The socket will remain open indefinitely
37
- * (or until closed by the client timeout).
35
+ * The connection will be established, but no data will be sent back,
36
+ * causing a socket timeout on the client. When the client timeout fires
37
+ * and half-closes the connection, the server side is destroyed immediately.
38
38
  * This is useful for testing socket idle timeouts.
39
39
  *
40
40
  * @param pattern - Regex pattern to match URLs
@@ -1 +1 @@
1
- {"version":3,"file":"test-proxy-server.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,cAAc,CAAgB;;IAOtC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpD;;;;OAIG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;;OAGG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAc9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAwE1B;;OAEG;IACH,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"test-proxy-server.d.ts","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,cAAc,CAAgB;;IAOtC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpD;;;;OAIG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAIP;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;;OAGG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAc9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C3B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8E1B;;OAEG;IACH,OAAO,CAAC,cAAc;CAIvB"}
@@ -59,9 +59,9 @@ class TestProxyServer {
59
59
  }
60
60
  /**
61
61
  * Add a socket hang rule for HTTPS requests matching the given pattern.
62
- * The connection will be established, but no data will be sent,
63
- * causing a socket timeout. The socket will remain open indefinitely
64
- * (or until closed by the client timeout).
62
+ * The connection will be established, but no data will be sent back,
63
+ * causing a socket timeout on the client. When the client timeout fires
64
+ * and half-closes the connection, the server side is destroyed immediately.
65
65
  * This is useful for testing socket idle timeouts.
66
66
  *
67
67
  * @param pattern - Regex pattern to match URLs
@@ -116,13 +116,31 @@ class TestProxyServer {
116
116
  stop() {
117
117
  return __awaiter(this, void 0, void 0, function* () {
118
118
  logIfDebug(`[ProxyServer] Stopping server. Active sockets: ${this.activeSockets.size}`);
119
- // Forcefully close all active sockets
119
+ // Forcefully close all active sockets we are tracking
120
120
  for (const socket of this.activeSockets) {
121
121
  logIfDebug('[ProxyServer] Destroying active socket');
122
122
  socket.destroy();
123
123
  }
124
124
  this.activeSockets.clear();
125
125
  return new Promise((resolve, reject) => {
126
+ // server.close() must be called FIRST: it closes the listening socket so no
127
+ // new connections are accepted, and schedules the callback to fire once all
128
+ // connections are gone.
129
+ //
130
+ // server.closeAllConnections() must be called SECOND: it kills plain HTTP
131
+ // connections in Node's internal connection map that were not tracked in
132
+ // activeSockets (e.g. background traffic from the connector's SQS long-poll
133
+ // that arrived during the race window between the destroy loop above and this
134
+ // point). Because the listening socket is already closed, no new connections
135
+ // can arrive after this call.
136
+ //
137
+ // Note: CONNECT-upgraded tunnel sockets are NOT in Node's internal map and
138
+ // are not reached by closeAllConnections(). They are handled by the destroy
139
+ // loop above (activeSockets) and the half-close fix on hang rule sockets.
140
+ //
141
+ // WARNING: Swapping this order (closeAllConnections before close) leaves a race
142
+ // window where a new connection can be accepted and added to Node's map between
143
+ // the two calls, causing server.close() to hang on that connection.
126
144
  logIfDebug('[ProxyServer] Calling server.close()');
127
145
  this.server.close((err) => {
128
146
  if (err) {
@@ -134,6 +152,9 @@ class TestProxyServer {
134
152
  resolve();
135
153
  }
136
154
  });
155
+ // Now drain the internal map. The listening socket is already closed above,
156
+ // so no new connections can be added after this point.
157
+ this.server.closeAllConnections();
137
158
  });
138
159
  });
139
160
  }
@@ -220,6 +241,11 @@ class TestProxyServer {
220
241
  // Intentionally do nothing - just discard the data
221
242
  // The client will wait for a response that never comes, triggering a timeout
222
243
  });
244
+ // When the client half-closes (sends FIN after its timeout fires), destroy the server
245
+ // side too. Without this, the socket stays half-open: client done sending, server still
246
+ // writable but silent. The OS keeps the connection alive indefinitely, and
247
+ // server.close() hangs because getConnections() still counts it.
248
+ clientSocket.on('end', () => clientSocket.destroy());
223
249
  // DO NOT close the socket - let it hang indefinitely until the client times out
224
250
  // This simulates a real-world scenario where a server accepts a connection but never responds
225
251
  return;
@@ -239,8 +265,8 @@ class TestProxyServer {
239
265
  serverSocket.on('end', () => this.activeSockets.delete(serverSocket));
240
266
  serverSocket.on('close', () => this.activeSockets.delete(serverSocket));
241
267
  serverSocket.on('error', () => {
242
- // Don't try to write to clientSocket if it's already closed
243
- if (!clientSocket.destroyed) {
268
+ // Only write if clientSocket is still open and writable
269
+ if (!clientSocket.destroyed && clientSocket.writable) {
244
270
  clientSocket.end(`HTTP/1.1 502 Bad Gateway\r\n\r\n`);
245
271
  }
246
272
  });
@@ -1 +1 @@
1
- {"version":3,"file":"test-proxy-server.js","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-proxy-server.js","sourceRoot":"","sources":["../../../api-tests/fixture/test-proxy-server.ts"],"names":[],"mappings":"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"}