ssh-mcp-pro 1.1.5 → 1.2.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.
Files changed (123) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +47 -7
  3. package/SECURITY.md +4 -0
  4. package/SECURITY_DECISIONS.md +32 -1
  5. package/dist/agent-bin.js +0 -0
  6. package/dist/connector-profile.d.ts +3 -0
  7. package/dist/connector-profile.d.ts.map +1 -1
  8. package/dist/connector-profile.js +36 -14
  9. package/dist/connector-profile.js.map +1 -1
  10. package/dist/http-security.d.ts.map +1 -1
  11. package/dist/http-security.js +19 -4
  12. package/dist/http-security.js.map +1 -1
  13. package/dist/http-server-lifecycle.d.ts +17 -0
  14. package/dist/http-server-lifecycle.d.ts.map +1 -0
  15. package/dist/http-server-lifecycle.js +122 -0
  16. package/dist/http-server-lifecycle.js.map +1 -0
  17. package/dist/http-server-router.d.ts +28 -0
  18. package/dist/http-server-router.d.ts.map +1 -0
  19. package/dist/http-server-router.js +108 -0
  20. package/dist/http-server-router.js.map +1 -0
  21. package/dist/http-server-runtime.d.ts +21 -0
  22. package/dist/http-server-runtime.d.ts.map +1 -0
  23. package/dist/http-server-runtime.js +415 -0
  24. package/dist/http-server-runtime.js.map +1 -0
  25. package/dist/http-session-registry.d.ts.map +1 -1
  26. package/dist/http-session-registry.js.map +1 -1
  27. package/dist/index.js +12 -5
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp.d.ts +1 -1
  30. package/dist/mcp.js +1 -1
  31. package/dist/prompts.d.ts.map +1 -1
  32. package/dist/prompts.js +8 -1
  33. package/dist/prompts.js.map +1 -1
  34. package/dist/remote/agent-cli.d.ts.map +1 -1
  35. package/dist/remote/agent-cli.js +20 -1
  36. package/dist/remote/agent-cli.js.map +1 -1
  37. package/dist/remote/agent-connection-lifecycle.d.ts +47 -0
  38. package/dist/remote/agent-connection-lifecycle.d.ts.map +1 -0
  39. package/dist/remote/agent-connection-lifecycle.js +304 -0
  40. package/dist/remote/agent-connection-lifecycle.js.map +1 -0
  41. package/dist/remote/agent-executor.d.ts.map +1 -1
  42. package/dist/remote/agent-executor.js +93 -68
  43. package/dist/remote/agent-executor.js.map +1 -1
  44. package/dist/remote/agent-handler.d.ts +22 -8
  45. package/dist/remote/agent-handler.d.ts.map +1 -1
  46. package/dist/remote/agent-handler.js +151 -98
  47. package/dist/remote/agent-handler.js.map +1 -1
  48. package/dist/remote/config.d.ts.map +1 -1
  49. package/dist/remote/config.js +14 -0
  50. package/dist/remote/config.js.map +1 -1
  51. package/dist/remote/control-plane.d.ts.map +1 -1
  52. package/dist/remote/control-plane.js +3 -0
  53. package/dist/remote/control-plane.js.map +1 -1
  54. package/dist/remote/policy-update-guard.d.ts +14 -0
  55. package/dist/remote/policy-update-guard.d.ts.map +1 -0
  56. package/dist/remote/policy-update-guard.js +27 -0
  57. package/dist/remote/policy-update-guard.js.map +1 -0
  58. package/dist/remote/policy.d.ts.map +1 -1
  59. package/dist/remote/policy.js +13 -2
  60. package/dist/remote/policy.js.map +1 -1
  61. package/dist/remote/safe-file.d.ts +5 -0
  62. package/dist/remote/safe-file.d.ts.map +1 -0
  63. package/dist/remote/safe-file.js +194 -0
  64. package/dist/remote/safe-file.js.map +1 -0
  65. package/dist/remote/store.d.ts.map +1 -1
  66. package/dist/remote/store.js.map +1 -1
  67. package/dist/remote/types.d.ts +5 -0
  68. package/dist/remote/types.d.ts.map +1 -1
  69. package/dist/remote/websocket.d.ts +38 -13
  70. package/dist/remote/websocket.d.ts.map +1 -1
  71. package/dist/remote/websocket.js +90 -126
  72. package/dist/remote/websocket.js.map +1 -1
  73. package/dist/render-http.js +2 -1
  74. package/dist/render-http.js.map +1 -1
  75. package/dist/retry.d.ts.map +1 -1
  76. package/dist/retry.js +4 -2
  77. package/dist/retry.js.map +1 -1
  78. package/dist/server-http.d.ts +1 -1
  79. package/dist/server-http.d.ts.map +1 -1
  80. package/dist/server-http.js +1 -421
  81. package/dist/server-http.js.map +1 -1
  82. package/dist/tools/connector.provider.d.ts.map +1 -1
  83. package/dist/tools/connector.provider.js +2 -1
  84. package/dist/tools/connector.provider.js.map +1 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/types.js.map +1 -1
  87. package/docs/agent-runtime-config.md +34 -0
  88. package/docs/development/api-stability.md +44 -0
  89. package/docs/development/coding-standards.md +35 -0
  90. package/docs/development/commit-conventions.md +35 -0
  91. package/docs/development/dependency-management.md +60 -0
  92. package/docs/development/deprecation-policy.md +29 -0
  93. package/docs/development/local-setup.md +46 -0
  94. package/docs/development/release-process.md +57 -0
  95. package/docs/development/testing-policy.md +47 -0
  96. package/docs/explanation/architecture.md +44 -0
  97. package/docs/how-to/README.md +14 -0
  98. package/docs/how-to/configure-ssh-policy.md +50 -0
  99. package/docs/openssf-evidence.md +75 -0
  100. package/docs/openssf-gap-analysis.md +63 -0
  101. package/docs/openssf-proposal-links.md +37 -0
  102. package/docs/professionalization-plan.md +81 -0
  103. package/docs/reference/README.md +21 -0
  104. package/docs/reference/cli.md +41 -0
  105. package/docs/reference/compatibility.md +46 -0
  106. package/docs/reference/configuration.md +72 -0
  107. package/docs/remote-mcp-hardening.md +10 -0
  108. package/docs/repo-maturity-report.md +565 -0
  109. package/docs/security/assurance-case.md +58 -0
  110. package/docs/security/dependency-audit-exceptions.json +4 -0
  111. package/docs/security/dependency-audit-exceptions.md +15 -0
  112. package/docs/security/input-validation.md +54 -0
  113. package/docs/security/release-integrity.md +28 -0
  114. package/docs/security/scanning-policy.md +50 -0
  115. package/docs/security/secrets-management.md +49 -0
  116. package/docs/security/threat-model.md +65 -0
  117. package/docs/testing.md +24 -0
  118. package/docs/troubleshooting.md +56 -0
  119. package/docs/tutorials/getting-started.md +84 -0
  120. package/mcp.json +1 -1
  121. package/package.json +82 -68
  122. package/registry/ssh-mcp-pro/mcp.json +1 -1
  123. package/server.json +3 -3
@@ -1,139 +1,108 @@
1
- import { createHash } from "node:crypto";
1
+ import WebSocket, { WebSocketServer } from "ws";
2
+ export const MAX_AGENT_WEBSOCKET_MESSAGE_BYTES = 1_048_576;
3
+ const upgradeServer = new WebSocketServer({
4
+ noServer: true,
5
+ clientTracking: false,
6
+ maxPayload: MAX_AGENT_WEBSOCKET_MESSAGE_BYTES,
7
+ perMessageDeflate: false,
8
+ });
9
+ upgradeServer.on("wsClientError", (_error, socket) => {
10
+ socket.destroy();
11
+ });
12
+ /**
13
+ * Small application-facing adapter around the maintained `ws` protocol implementation.
14
+ *
15
+ * `ws` owns RFC 6455 framing, masking, fragmentation, UTF-8 validation, control-frame
16
+ * validation, close-code validation, and payload limits. This adapter intentionally exposes
17
+ * only the text-message and lifecycle operations needed by the remote agent control plane.
18
+ */
2
19
  export class MinimalWebSocketConnection {
3
- socket;
4
- static MAX_FRAME_BYTES = 1_048_576;
5
- buffer = Buffer.alloc(0);
6
- closed = false;
20
+ websocket;
7
21
  closeNotified = false;
22
+ closeCode = 1006;
23
+ closeReason = "";
8
24
  textHandlers = new Set();
9
25
  closeHandlers = new Set();
10
- constructor(socket, initialBuffer = Buffer.alloc(0)) {
11
- this.socket = socket;
12
- if (initialBuffer.length > MinimalWebSocketConnection.MAX_FRAME_BYTES) {
13
- socket.destroy();
14
- }
15
- else {
16
- this.buffer = initialBuffer;
17
- }
18
- socket.on("data", (chunk) => this.handleData(chunk));
19
- socket.on("close", () => this.handleClose());
20
- socket.on("end", () => this.handleClose());
21
- socket.on("error", () => this.handleClose());
26
+ pongHandlers = new Set();
27
+ constructor(websocket) {
28
+ this.websocket = websocket;
29
+ websocket.on("message", (data, isBinary) => this.handleMessage(data, isBinary));
30
+ websocket.on("pong", () => {
31
+ for (const handler of this.pongHandlers) {
32
+ handler();
33
+ }
34
+ });
35
+ websocket.on("close", (code, reason) => {
36
+ this.closeCode = code;
37
+ this.closeReason = reason.toString("utf8");
38
+ this.notifyClose();
39
+ });
40
+ websocket.on("error", () => {
41
+ if (websocket.readyState === WebSocket.CLOSED) {
42
+ this.notifyClose();
43
+ }
44
+ });
45
+ }
46
+ get isOpen() {
47
+ return this.websocket.readyState === WebSocket.OPEN;
48
+ }
49
+ get isClosed() {
50
+ return this.websocket.readyState === WebSocket.CLOSED;
22
51
  }
23
52
  onText(handler) {
24
53
  this.textHandlers.add(handler);
25
- this.drainFrames();
26
54
  }
27
55
  onClose(handler) {
28
56
  this.closeHandlers.add(handler);
57
+ if (this.closeNotified) {
58
+ handler(this.closeCode, this.closeReason);
59
+ }
60
+ }
61
+ onPong(handler) {
62
+ this.pongHandlers.add(handler);
29
63
  }
30
64
  sendJson(value) {
31
65
  this.sendText(JSON.stringify(value));
32
66
  }
33
67
  sendText(value) {
34
- if (this.closed) {
68
+ if (!this.isOpen) {
35
69
  return;
36
70
  }
37
71
  const payload = Buffer.from(value, "utf8");
38
- const header = this.createFrameHeader(payload.length, 0x1);
39
- this.socket.write(Buffer.concat([header, payload]));
40
- }
41
- close() {
42
- if (this.closed) {
72
+ if (payload.length > MAX_AGENT_WEBSOCKET_MESSAGE_BYTES) {
73
+ this.close(1009, "message too large");
43
74
  return;
44
75
  }
45
- this.closed = true;
46
- this.socket.end(Buffer.from([0x88, 0x00]));
47
- this.notifyClose();
76
+ this.websocket.send(payload, { binary: false });
48
77
  }
49
- handleData(chunk) {
50
- if (this.buffer.length + chunk.length > MinimalWebSocketConnection.MAX_FRAME_BYTES) {
51
- this.close();
78
+ ping() {
79
+ if (this.isOpen) {
80
+ this.websocket.ping();
81
+ }
82
+ }
83
+ close(code = 1000, reason = "") {
84
+ if (this.websocket.readyState === WebSocket.CONNECTING) {
85
+ this.websocket.terminate();
52
86
  return;
53
87
  }
54
- this.buffer = Buffer.concat([this.buffer, chunk]);
55
- this.drainFrames();
88
+ if (this.websocket.readyState === WebSocket.OPEN) {
89
+ this.websocket.close(code, reason);
90
+ }
56
91
  }
57
- drainFrames() {
58
- while (this.buffer.length >= 2) {
59
- const first = this.buffer[0] ?? 0;
60
- const second = this.buffer[1] ?? 0;
61
- const opcode = first & 0x0f;
62
- const masked = (second & 0x80) !== 0;
63
- let length = second & 0x7f;
64
- let offset = 2;
65
- if (length === 126) {
66
- if (this.buffer.length < 4) {
67
- return;
68
- }
69
- length = this.buffer.readUInt16BE(2);
70
- offset = 4;
71
- }
72
- else if (length === 127) {
73
- if (this.buffer.length < 10) {
74
- return;
75
- }
76
- const longLength = this.buffer.readBigUInt64BE(2);
77
- if (longLength > BigInt(Number.MAX_SAFE_INTEGER)) {
78
- this.close();
79
- return;
80
- }
81
- length = Number(longLength);
82
- offset = 10;
83
- }
84
- if (length > MinimalWebSocketConnection.MAX_FRAME_BYTES) {
85
- this.close();
86
- return;
87
- }
88
- const maskLength = masked ? 4 : 0;
89
- if (this.buffer.length < offset + maskLength + length) {
90
- return;
91
- }
92
- const mask = masked ? this.buffer.subarray(offset, offset + 4) : undefined;
93
- offset += maskLength;
94
- const payload = Buffer.from(this.buffer.subarray(offset, offset + length));
95
- this.buffer = this.buffer.subarray(offset + length);
96
- if (mask) {
97
- for (let index = 0; index < payload.length; index++) {
98
- payload[index] = (payload[index] ?? 0) ^ (mask[index % 4] ?? 0);
99
- }
100
- }
101
- if (opcode === 0x8) {
102
- this.close();
103
- return;
104
- }
105
- if (opcode === 0x9) {
106
- this.socket.write(Buffer.concat([this.createFrameHeader(payload.length, 0x0a), payload]));
107
- continue;
108
- }
109
- if (opcode === 0x1) {
110
- const message = payload.toString("utf8");
111
- for (const handler of this.textHandlers) {
112
- handler(message);
113
- }
114
- }
92
+ terminate() {
93
+ if (!this.isClosed) {
94
+ this.websocket.terminate();
115
95
  }
116
96
  }
117
- createFrameHeader(length, opcode) {
118
- if (length < 126) {
119
- return Buffer.from([0x80 | opcode, length]);
97
+ handleMessage(data, isBinary) {
98
+ if (isBinary) {
99
+ this.close(1003, "text messages required");
100
+ return;
120
101
  }
121
- if (length <= 0xffff) {
122
- const header = Buffer.alloc(4);
123
- header[0] = 0x80 | opcode;
124
- header[1] = 126;
125
- header.writeUInt16BE(length, 2);
126
- return header;
102
+ const message = rawDataToBuffer(data).toString("utf8");
103
+ for (const handler of this.textHandlers) {
104
+ handler(message);
127
105
  }
128
- const header = Buffer.alloc(10);
129
- header[0] = 0x80 | opcode;
130
- header[1] = 127;
131
- header.writeBigUInt64BE(BigInt(length), 2);
132
- return header;
133
- }
134
- handleClose() {
135
- this.closed = true;
136
- this.notifyClose();
137
106
  }
138
107
  notifyClose() {
139
108
  if (this.closeNotified) {
@@ -141,27 +110,22 @@ export class MinimalWebSocketConnection {
141
110
  }
142
111
  this.closeNotified = true;
143
112
  for (const handler of this.closeHandlers) {
144
- handler();
113
+ handler(this.closeCode, this.closeReason);
145
114
  }
146
115
  }
147
116
  }
148
- export function acceptWebSocketUpgrade(req, socket, head = Buffer.alloc(0)) {
149
- const key = req.headers["sec-websocket-key"];
150
- if (typeof key !== "string") {
151
- socket.destroy();
152
- throw new Error("Missing Sec-WebSocket-Key");
117
+ function rawDataToBuffer(data) {
118
+ if (Buffer.isBuffer(data)) {
119
+ return data;
120
+ }
121
+ if (data instanceof ArrayBuffer) {
122
+ return Buffer.from(data);
153
123
  }
154
- const accept = createHash("sha1")
155
- .update(`${key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11`)
156
- .digest("base64");
157
- socket.write([
158
- "HTTP/1.1 101 Switching Protocols",
159
- "Upgrade: websocket",
160
- "Connection: Upgrade",
161
- `Sec-WebSocket-Accept: ${accept}`,
162
- "",
163
- "",
164
- ].join("\r\n"));
165
- return new MinimalWebSocketConnection(socket, head);
124
+ return Buffer.concat(data);
125
+ }
126
+ export function acceptWebSocketUpgrade(req, socket, head, onAccepted) {
127
+ upgradeServer.handleUpgrade(req, socket, Buffer.from(head), (websocket) => {
128
+ onAccepted(new MinimalWebSocketConnection(websocket));
129
+ });
166
130
  }
167
131
  //# sourceMappingURL=websocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/remote/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/remote/websocket.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,6 @@ if (bearerToken && !process.env.SSH_MCP_HTTP_BEARER_TOKEN_FILE) {
10
10
  chmodSync(tokenPath, 0o600);
11
11
  process.env.SSH_MCP_HTTP_BEARER_TOKEN_FILE = tokenPath;
12
12
  }
13
- await import("./server-http.js");
13
+ const { startHttpServer } = await import("./server-http.js");
14
+ await startHttpServer({ registerSignalHandlers: true });
14
15
  //# sourceMappingURL=render-http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-http.js","sourceRoot":"","sources":["../src/render-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC;AAElE,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjD,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"render-http.js","sourceRoot":"","sources":["../src/render-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC;AAElE,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjD,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;AACzD,CAAC;AAED,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC7D,MAAM,eAAe,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1C,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,oBAAoB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAuDrE;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA+CzB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,IAEzD,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,YAAY,uBAAuB,CAAC,oBAAoB,CAAC,mDAmB5D;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1C,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,oBAAoB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAwDrE;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA+CzB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,IAEzD,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,YAAY,uBAAuB,CAAC,oBAAoB,CAAC,mDAmB5D;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
package/dist/retry.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { randomInt } from "node:crypto";
1
2
  import { logger } from "./logging.js";
2
3
  const DEFAULT_OPTIONS = {
3
4
  maxAttempts: 3,
@@ -30,9 +31,10 @@ function calculateDelay(attempt, options) {
30
31
  const exponentialDelay = options.initialDelayMs * Math.pow(options.backoffMultiplier, attempt - 1);
31
32
  const cappedDelay = Math.min(exponentialDelay, options.maxDelayMs);
32
33
  if (options.jitter) {
33
- // Add random jitter: ±25% of the delay
34
+ // Add random jitter: ±25% of the delay using CSPRNG
34
35
  const jitterRange = cappedDelay * 0.25;
35
- const jitter = (Math.random() * 2 - 1) * jitterRange;
36
+ const jitterUnit = randomInt(10001);
37
+ const jitter = ((jitterUnit / 10000) * 2 - 1) * jitterRange;
36
38
  return Math.max(0, cappedDelay + jitter);
37
39
  }
38
40
  return cappedDelay;
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export * from "./http-server-runtime.js";
2
2
  //# sourceMappingURL=server-http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../src/server-http.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}