mongodb-mcp-server 0.1.3 → 0.2.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 (267) hide show
  1. package/.github/workflows/accuracy-tests.yml +55 -0
  2. package/.github/workflows/check.yml +1 -1
  3. package/.github/workflows/code_health.yaml +1 -1
  4. package/.github/workflows/code_health_fork.yaml +0 -14
  5. package/.github/workflows/dependabot_pr.yaml +26 -0
  6. package/.github/workflows/jira-issue.yml +72 -0
  7. package/.vscode/extensions.json +1 -1
  8. package/.vscode/launch.json +11 -1
  9. package/.vscode/settings.json +1 -11
  10. package/Dockerfile +1 -0
  11. package/README.md +118 -31
  12. package/dist/common/atlas/accessListUtils.js +36 -0
  13. package/dist/common/atlas/accessListUtils.js.map +1 -0
  14. package/dist/common/atlas/apiClient.js +25 -6
  15. package/dist/common/atlas/apiClient.js.map +1 -1
  16. package/dist/common/atlas/cluster.js +1 -1
  17. package/dist/common/atlas/cluster.js.map +1 -1
  18. package/dist/{config.js → common/config.js} +7 -1
  19. package/dist/common/config.js.map +1 -0
  20. package/dist/common/errors.js.map +1 -0
  21. package/dist/{logger.js → common/logger.js} +20 -18
  22. package/dist/common/logger.js.map +1 -0
  23. package/dist/common/managedTimeout.js +20 -0
  24. package/dist/common/managedTimeout.js.map +1 -0
  25. package/dist/common/packageInfo.js.map +1 -0
  26. package/dist/{session.js → common/session.js} +20 -21
  27. package/dist/common/session.js.map +1 -0
  28. package/dist/common/sessionStore.js +73 -0
  29. package/dist/common/sessionStore.js.map +1 -0
  30. package/dist/helpers/container.js +28 -0
  31. package/dist/helpers/container.js.map +1 -0
  32. package/dist/helpers/generatePassword.js.map +1 -0
  33. package/dist/helpers/indexCheck.js +1 -1
  34. package/dist/helpers/indexCheck.js.map +1 -1
  35. package/dist/index.js +30 -37
  36. package/dist/index.js.map +1 -1
  37. package/dist/server.js +43 -6
  38. package/dist/server.js.map +1 -1
  39. package/dist/telemetry/constants.js +1 -1
  40. package/dist/telemetry/constants.js.map +1 -1
  41. package/dist/telemetry/telemetry.js +28 -21
  42. package/dist/telemetry/telemetry.js.map +1 -1
  43. package/dist/tools/atlas/atlasTool.js +3 -3
  44. package/dist/tools/atlas/atlasTool.js.map +1 -1
  45. package/dist/tools/atlas/connect/connectCluster.js +198 -0
  46. package/dist/tools/atlas/connect/connectCluster.js.map +1 -0
  47. package/dist/tools/atlas/create/createAccessList.js +9 -10
  48. package/dist/tools/atlas/create/createAccessList.js.map +1 -1
  49. package/dist/tools/atlas/create/createDBUser.js +3 -1
  50. package/dist/tools/atlas/create/createDBUser.js.map +1 -1
  51. package/dist/tools/atlas/create/createFreeCluster.js +2 -0
  52. package/dist/tools/atlas/create/createFreeCluster.js.map +1 -1
  53. package/dist/tools/atlas/create/createProject.js.map +1 -1
  54. package/dist/tools/atlas/read/inspectAccessList.js.map +1 -1
  55. package/dist/tools/atlas/read/inspectCluster.js.map +1 -1
  56. package/dist/tools/atlas/read/listAlerts.js.map +1 -1
  57. package/dist/tools/atlas/read/listClusters.js.map +1 -1
  58. package/dist/tools/atlas/read/listDBUsers.js.map +1 -1
  59. package/dist/tools/atlas/read/listOrgs.js.map +1 -1
  60. package/dist/tools/atlas/read/listProjects.js.map +1 -1
  61. package/dist/tools/atlas/tools.js +1 -1
  62. package/dist/tools/atlas/tools.js.map +1 -1
  63. package/dist/tools/mongodb/{metadata → connect}/connect.js +7 -4
  64. package/dist/tools/mongodb/connect/connect.js.map +1 -0
  65. package/dist/tools/mongodb/create/createCollection.js.map +1 -1
  66. package/dist/tools/mongodb/create/createIndex.js +1 -1
  67. package/dist/tools/mongodb/create/createIndex.js.map +1 -1
  68. package/dist/tools/mongodb/create/insertMany.js +1 -1
  69. package/dist/tools/mongodb/create/insertMany.js.map +1 -1
  70. package/dist/tools/mongodb/delete/deleteMany.js +2 -1
  71. package/dist/tools/mongodb/delete/deleteMany.js.map +1 -1
  72. package/dist/tools/mongodb/delete/dropCollection.js.map +1 -1
  73. package/dist/tools/mongodb/delete/dropDatabase.js.map +1 -1
  74. package/dist/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  75. package/dist/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  76. package/dist/tools/mongodb/metadata/dbStats.js.map +1 -1
  77. package/dist/tools/mongodb/metadata/explain.js +1 -1
  78. package/dist/tools/mongodb/metadata/explain.js.map +1 -1
  79. package/dist/tools/mongodb/metadata/listCollections.js.map +1 -1
  80. package/dist/tools/mongodb/metadata/listDatabases.js.map +1 -1
  81. package/dist/tools/mongodb/metadata/logs.js.map +1 -1
  82. package/dist/tools/mongodb/mongodbTool.js +37 -10
  83. package/dist/tools/mongodb/mongodbTool.js.map +1 -1
  84. package/dist/tools/mongodb/read/aggregate.js +1 -1
  85. package/dist/tools/mongodb/read/aggregate.js.map +1 -1
  86. package/dist/tools/mongodb/read/collectionIndexes.js.map +1 -1
  87. package/dist/tools/mongodb/read/count.js +2 -1
  88. package/dist/tools/mongodb/read/count.js.map +1 -1
  89. package/dist/tools/mongodb/read/find.js +7 -4
  90. package/dist/tools/mongodb/read/find.js.map +1 -1
  91. package/dist/tools/mongodb/tools.js +1 -1
  92. package/dist/tools/mongodb/tools.js.map +1 -1
  93. package/dist/tools/mongodb/update/renameCollection.js.map +1 -1
  94. package/dist/tools/mongodb/update/updateMany.js +4 -2
  95. package/dist/tools/mongodb/update/updateMany.js.map +1 -1
  96. package/dist/tools/tool.js +8 -5
  97. package/dist/tools/tool.js.map +1 -1
  98. package/dist/transports/base.js +26 -0
  99. package/dist/transports/base.js.map +1 -0
  100. package/dist/{helpers/EJsonTransport.js → transports/stdio.js} +24 -2
  101. package/dist/transports/stdio.js.map +1 -0
  102. package/dist/transports/streamableHttp.js +140 -0
  103. package/dist/transports/streamableHttp.js.map +1 -0
  104. package/eslint.config.js +13 -4
  105. package/package.json +43 -33
  106. package/resources/test-summary-template.html +415 -0
  107. package/scripts/accuracy/generateTestSummary.ts +335 -0
  108. package/scripts/accuracy/runAccuracyTests.sh +45 -0
  109. package/scripts/accuracy/updateAccuracyRunStatus.ts +21 -0
  110. package/src/common/atlas/accessListUtils.ts +54 -0
  111. package/src/common/atlas/apiClient.ts +25 -6
  112. package/src/common/atlas/cluster.ts +1 -1
  113. package/src/{config.ts → common/config.ts} +14 -2
  114. package/src/{logger.ts → common/logger.ts} +21 -23
  115. package/src/common/managedTimeout.ts +27 -0
  116. package/src/{session.ts → common/session.ts} +24 -26
  117. package/src/common/sessionStore.ts +111 -0
  118. package/src/helpers/container.ts +35 -0
  119. package/src/helpers/indexCheck.ts +1 -1
  120. package/src/index.ts +30 -40
  121. package/src/server.ts +54 -10
  122. package/src/telemetry/constants.ts +1 -1
  123. package/src/telemetry/telemetry.ts +34 -26
  124. package/src/telemetry/types.ts +2 -0
  125. package/src/tools/atlas/atlasTool.ts +4 -4
  126. package/src/tools/atlas/connect/connectCluster.ts +259 -0
  127. package/src/tools/atlas/create/createAccessList.ts +15 -13
  128. package/src/tools/atlas/create/createDBUser.ts +5 -3
  129. package/src/tools/atlas/create/createFreeCluster.ts +4 -2
  130. package/src/tools/atlas/create/createProject.ts +2 -2
  131. package/src/tools/atlas/read/inspectAccessList.ts +2 -2
  132. package/src/tools/atlas/read/inspectCluster.ts +2 -2
  133. package/src/tools/atlas/read/listAlerts.ts +2 -2
  134. package/src/tools/atlas/read/listClusters.ts +2 -2
  135. package/src/tools/atlas/read/listDBUsers.ts +2 -2
  136. package/src/tools/atlas/read/listOrgs.ts +2 -2
  137. package/src/tools/atlas/read/listProjects.ts +2 -2
  138. package/src/tools/atlas/tools.ts +1 -1
  139. package/src/tools/mongodb/{metadata → connect}/connect.ts +12 -9
  140. package/src/tools/mongodb/create/createCollection.ts +2 -2
  141. package/src/tools/mongodb/create/createIndex.ts +3 -3
  142. package/src/tools/mongodb/create/insertMany.ts +3 -3
  143. package/src/tools/mongodb/delete/deleteMany.ts +4 -3
  144. package/src/tools/mongodb/delete/dropCollection.ts +2 -2
  145. package/src/tools/mongodb/delete/dropDatabase.ts +2 -2
  146. package/src/tools/mongodb/metadata/collectionSchema.ts +2 -2
  147. package/src/tools/mongodb/metadata/collectionStorageSize.ts +2 -2
  148. package/src/tools/mongodb/metadata/dbStats.ts +2 -2
  149. package/src/tools/mongodb/metadata/explain.ts +3 -3
  150. package/src/tools/mongodb/metadata/listCollections.ts +2 -2
  151. package/src/tools/mongodb/metadata/listDatabases.ts +2 -2
  152. package/src/tools/mongodb/metadata/logs.ts +2 -2
  153. package/src/tools/mongodb/mongodbTool.ts +50 -14
  154. package/src/tools/mongodb/read/aggregate.ts +3 -3
  155. package/src/tools/mongodb/read/collectionIndexes.ts +2 -2
  156. package/src/tools/mongodb/read/count.ts +4 -3
  157. package/src/tools/mongodb/read/find.ts +11 -6
  158. package/src/tools/mongodb/tools.ts +1 -1
  159. package/src/tools/mongodb/update/renameCollection.ts +2 -2
  160. package/src/tools/mongodb/update/updateMany.ts +6 -4
  161. package/src/tools/tool.ts +18 -13
  162. package/src/transports/base.ts +34 -0
  163. package/src/{helpers/EJsonTransport.ts → transports/stdio.ts} +30 -1
  164. package/src/transports/streamableHttp.ts +178 -0
  165. package/tests/accuracy/aggregate.test.ts +27 -0
  166. package/tests/accuracy/collectionIndexes.test.ts +40 -0
  167. package/tests/accuracy/collectionSchema.test.ts +28 -0
  168. package/tests/accuracy/collectionStorageSize.test.ts +41 -0
  169. package/tests/accuracy/count.test.ts +44 -0
  170. package/tests/accuracy/createCollection.test.ts +46 -0
  171. package/tests/accuracy/createIndex.test.ts +37 -0
  172. package/tests/accuracy/dbStats.test.ts +15 -0
  173. package/tests/accuracy/deleteMany.test.ts +44 -0
  174. package/tests/accuracy/dropCollection.test.ts +74 -0
  175. package/tests/accuracy/dropDatabase.test.ts +41 -0
  176. package/tests/accuracy/explain.test.ts +73 -0
  177. package/tests/accuracy/find.test.ts +114 -0
  178. package/tests/accuracy/insertMany.test.ts +48 -0
  179. package/tests/accuracy/listCollections.test.ts +60 -0
  180. package/tests/accuracy/listDatabases.test.ts +31 -0
  181. package/tests/accuracy/logs.test.ts +28 -0
  182. package/tests/accuracy/renameCollection.test.ts +31 -0
  183. package/tests/accuracy/sdk/accuracyResultStorage/diskStorage.ts +189 -0
  184. package/tests/accuracy/sdk/accuracyResultStorage/getAccuracyResultStorage.ts +11 -0
  185. package/tests/accuracy/sdk/accuracyResultStorage/mongodbStorage.ts +151 -0
  186. package/tests/accuracy/sdk/accuracyResultStorage/resultStorage.ts +117 -0
  187. package/tests/accuracy/sdk/accuracyScorer.ts +93 -0
  188. package/tests/accuracy/sdk/accuracyTestingClient.ts +94 -0
  189. package/tests/accuracy/sdk/agent.ts +56 -0
  190. package/tests/accuracy/sdk/constants.ts +26 -0
  191. package/tests/accuracy/sdk/describeAccuracyTests.ts +126 -0
  192. package/tests/accuracy/sdk/gitInfo.ts +7 -0
  193. package/tests/accuracy/sdk/matcher.ts +193 -0
  194. package/tests/accuracy/sdk/models.ts +95 -0
  195. package/tests/accuracy/test-data-dumps/comics.books.json +417 -0
  196. package/tests/accuracy/test-data-dumps/comics.characters.json +402 -0
  197. package/tests/accuracy/test-data-dumps/mflix.movies.json +496 -0
  198. package/tests/accuracy/test-data-dumps/mflix.shows.json +572 -0
  199. package/tests/accuracy/updateMany.test.ts +42 -0
  200. package/tests/integration/helpers.ts +9 -9
  201. package/tests/integration/indexCheck.test.ts +1 -0
  202. package/tests/integration/server.test.ts +1 -0
  203. package/tests/integration/telemetry.test.ts +4 -3
  204. package/tests/integration/tools/atlas/accessLists.test.ts +22 -2
  205. package/tests/integration/tools/atlas/alerts.test.ts +3 -2
  206. package/tests/integration/tools/atlas/atlasHelpers.ts +3 -0
  207. package/tests/integration/tools/atlas/clusters.test.ts +68 -16
  208. package/tests/integration/tools/atlas/dbUsers.test.ts +14 -1
  209. package/tests/integration/tools/atlas/orgs.test.ts +2 -1
  210. package/tests/integration/tools/atlas/projects.test.ts +4 -3
  211. package/tests/integration/tools/mongodb/{metadata → connect}/connect.test.ts +34 -3
  212. package/tests/integration/tools/mongodb/create/createCollection.test.ts +1 -0
  213. package/tests/integration/tools/mongodb/create/createIndex.test.ts +1 -0
  214. package/tests/integration/tools/mongodb/create/insertMany.test.ts +1 -0
  215. package/tests/integration/tools/mongodb/delete/deleteMany.test.ts +1 -0
  216. package/tests/integration/tools/mongodb/delete/dropCollection.test.ts +1 -1
  217. package/tests/integration/tools/mongodb/delete/dropDatabase.test.ts +1 -0
  218. package/tests/integration/tools/mongodb/metadata/collectionSchema.test.ts +1 -0
  219. package/tests/integration/tools/mongodb/metadata/collectionStorageSize.test.ts +1 -0
  220. package/tests/integration/tools/mongodb/metadata/dbStats.test.ts +1 -0
  221. package/tests/integration/tools/mongodb/metadata/explain.test.ts +1 -0
  222. package/tests/integration/tools/mongodb/metadata/listCollections.test.ts +1 -0
  223. package/tests/integration/tools/mongodb/metadata/listDatabases.test.ts +3 -2
  224. package/tests/integration/tools/mongodb/metadata/logs.test.ts +1 -0
  225. package/tests/integration/tools/mongodb/mongodbHelpers.ts +66 -2
  226. package/tests/integration/tools/mongodb/read/aggregate.test.ts +2 -1
  227. package/tests/integration/tools/mongodb/read/collectionIndexes.test.ts +1 -0
  228. package/tests/integration/tools/mongodb/read/count.test.ts +1 -0
  229. package/tests/integration/tools/mongodb/read/find.test.ts +2 -1
  230. package/tests/integration/tools/mongodb/update/renameCollection.test.ts +1 -0
  231. package/tests/integration/tools/mongodb/update/updateMany.test.ts +1 -0
  232. package/tests/integration/transports/stdio.test.ts +40 -0
  233. package/tests/integration/transports/streamableHttp.test.ts +56 -0
  234. package/tests/matchers/toIncludeSameMembers.test.ts +59 -0
  235. package/tests/matchers/toIncludeSameMembers.ts +12 -0
  236. package/tests/setup.ts +7 -0
  237. package/tests/unit/accessListUtils.test.ts +39 -0
  238. package/tests/unit/accuracyScorer.test.ts +390 -0
  239. package/tests/unit/{apiClient.test.ts → common/apiClient.test.ts} +15 -15
  240. package/tests/unit/common/managedTimeout.test.ts +67 -0
  241. package/tests/unit/{session.test.ts → common/session.test.ts} +7 -12
  242. package/tests/unit/{indexCheck.test.ts → helpers/indexCheck.test.ts} +2 -1
  243. package/tests/unit/telemetry.test.ts +52 -42
  244. package/tests/unit/{EJsonTransport.test.ts → transports/stdio.test.ts} +4 -4
  245. package/tests/vitest.d.ts +11 -0
  246. package/tsconfig.json +0 -1
  247. package/{tsconfig.jest.json → tsconfig.test.json} +1 -2
  248. package/vitest.config.ts +41 -0
  249. package/dist/common/atlas/generatePassword.js.map +0 -1
  250. package/dist/config.js.map +0 -1
  251. package/dist/errors.js.map +0 -1
  252. package/dist/helpers/EJsonTransport.js.map +0 -1
  253. package/dist/helpers/packageInfo.js.map +0 -1
  254. package/dist/logger.js.map +0 -1
  255. package/dist/session.js.map +0 -1
  256. package/dist/tools/atlas/metadata/connectCluster.js +0 -100
  257. package/dist/tools/atlas/metadata/connectCluster.js.map +0 -1
  258. package/dist/tools/mongodb/metadata/connect.js.map +0 -1
  259. package/global.d.ts +0 -1
  260. package/jest.config.cjs +0 -22
  261. package/src/tools/atlas/metadata/connectCluster.ts +0 -121
  262. /package/dist/{errors.js → common/errors.js} +0 -0
  263. /package/dist/{helpers → common}/packageInfo.js +0 -0
  264. /package/dist/{common/atlas → helpers}/generatePassword.js +0 -0
  265. /package/src/{errors.ts → common/errors.ts} +0 -0
  266. /package/src/{helpers → common}/packageInfo.ts +0 -0
  267. /package/src/{common/atlas → helpers}/generatePassword.ts +0 -0
@@ -1,6 +1,6 @@
1
- import { jest } from "@jest/globals";
2
- import { ApiClient } from "../../src/common/atlas/apiClient.js";
3
- import { CommonProperties, TelemetryEvent, TelemetryResult } from "../../src/telemetry/types.js";
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { ApiClient } from "../../../src/common/atlas/apiClient.js";
3
+ import { CommonProperties, TelemetryEvent, TelemetryResult } from "../../../src/telemetry/types.js";
4
4
 
5
5
  describe("ApiClient", () => {
6
6
  let apiClient: ApiClient;
@@ -36,11 +36,11 @@ describe("ApiClient", () => {
36
36
  });
37
37
 
38
38
  // @ts-expect-error accessing private property for testing
39
- apiClient.getAccessToken = jest.fn().mockResolvedValue("mockToken");
39
+ apiClient.getAccessToken = vi.fn().mockResolvedValue("mockToken");
40
40
  });
41
41
 
42
42
  afterEach(() => {
43
- jest.clearAllMocks();
43
+ vi.clearAllMocks();
44
44
  });
45
45
 
46
46
  describe("constructor", () => {
@@ -60,7 +60,7 @@ describe("ApiClient", () => {
60
60
  totalCount: 2,
61
61
  };
62
62
 
63
- const mockGet = jest.fn().mockImplementation(() => ({
63
+ const mockGet = vi.fn().mockImplementation(() => ({
64
64
  data: mockProjects,
65
65
  error: null,
66
66
  response: new Response(),
@@ -81,7 +81,7 @@ describe("ApiClient", () => {
81
81
  detail: "Something went wrong",
82
82
  };
83
83
 
84
- const mockGet = jest.fn().mockImplementation(() => ({
84
+ const mockGet = vi.fn().mockImplementation(() => ({
85
85
  data: null,
86
86
  error: mockError,
87
87
  response: new Response(),
@@ -96,7 +96,7 @@ describe("ApiClient", () => {
96
96
 
97
97
  describe("sendEvents", () => {
98
98
  it("should send events to authenticated endpoint when token is available and valid", async () => {
99
- const mockFetch = jest.spyOn(global, "fetch");
99
+ const mockFetch = vi.spyOn(global, "fetch");
100
100
  mockFetch.mockResolvedValueOnce(new Response(null, { status: 200 }));
101
101
 
102
102
  await apiClient.sendEvents(mockEvents);
@@ -115,11 +115,11 @@ describe("ApiClient", () => {
115
115
  });
116
116
 
117
117
  it("should fall back to unauthenticated endpoint when token is not available via exception", async () => {
118
- const mockFetch = jest.spyOn(global, "fetch");
118
+ const mockFetch = vi.spyOn(global, "fetch");
119
119
  mockFetch.mockResolvedValueOnce(new Response(null, { status: 200 }));
120
120
 
121
121
  // @ts-expect-error accessing private property for testing
122
- apiClient.getAccessToken = jest.fn().mockRejectedValue(new Error("No access token available"));
122
+ apiClient.getAccessToken = vi.fn().mockRejectedValue(new Error("No access token available"));
123
123
 
124
124
  await apiClient.sendEvents(mockEvents);
125
125
 
@@ -136,11 +136,11 @@ describe("ApiClient", () => {
136
136
  });
137
137
 
138
138
  it("should fall back to unauthenticated endpoint when token is undefined", async () => {
139
- const mockFetch = jest.spyOn(global, "fetch");
139
+ const mockFetch = vi.spyOn(global, "fetch");
140
140
  mockFetch.mockResolvedValueOnce(new Response(null, { status: 200 }));
141
141
 
142
142
  // @ts-expect-error accessing private property for testing
143
- apiClient.getAccessToken = jest.fn().mockReturnValueOnce(undefined);
143
+ apiClient.getAccessToken = vi.fn().mockReturnValueOnce(undefined);
144
144
 
145
145
  await apiClient.sendEvents(mockEvents);
146
146
 
@@ -157,7 +157,7 @@ describe("ApiClient", () => {
157
157
  });
158
158
 
159
159
  it("should fall back to unauthenticated endpoint on 401 error", async () => {
160
- const mockFetch = jest.spyOn(global, "fetch");
160
+ const mockFetch = vi.spyOn(global, "fetch");
161
161
  mockFetch
162
162
  .mockResolvedValueOnce(new Response(null, { status: 401 }))
163
163
  .mockResolvedValueOnce(new Response(null, { status: 200 }));
@@ -178,14 +178,14 @@ describe("ApiClient", () => {
178
178
  });
179
179
 
180
180
  it("should throw error when both authenticated and unauthenticated requests fail", async () => {
181
- const mockFetch = jest.spyOn(global, "fetch");
181
+ const mockFetch = vi.spyOn(global, "fetch");
182
182
  mockFetch
183
183
  .mockResolvedValueOnce(new Response(null, { status: 401 }))
184
184
  .mockResolvedValueOnce(new Response(null, { status: 500 }));
185
185
 
186
186
  const mockToken = "test-token";
187
187
  // @ts-expect-error accessing private property for testing
188
- apiClient.getAccessToken = jest.fn().mockResolvedValue(mockToken);
188
+ apiClient.getAccessToken = vi.fn().mockResolvedValue(mockToken);
189
189
 
190
190
  await expect(apiClient.sendEvents(mockEvents)).rejects.toThrow();
191
191
  });
@@ -0,0 +1,67 @@
1
+ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest";
2
+ import { setManagedTimeout } from "../../../src/common/managedTimeout.js";
3
+
4
+ describe("setManagedTimeout", () => {
5
+ beforeAll(() => {
6
+ vi.useFakeTimers();
7
+ });
8
+
9
+ afterAll(() => {
10
+ vi.useRealTimers();
11
+ });
12
+
13
+ it("calls the timeout callback", () => {
14
+ const callback = vi.fn();
15
+
16
+ setManagedTimeout(callback, 1000);
17
+
18
+ vi.advanceTimersByTime(1000);
19
+ expect(callback).toHaveBeenCalled();
20
+ });
21
+
22
+ it("does not call the timeout callback if the timeout is cleared", () => {
23
+ const callback = vi.fn();
24
+
25
+ const timeout = setManagedTimeout(callback, 1000);
26
+
27
+ vi.advanceTimersByTime(500);
28
+ timeout.cancel();
29
+ vi.advanceTimersByTime(500);
30
+
31
+ expect(callback).not.toHaveBeenCalled();
32
+ });
33
+
34
+ it("does not call the timeout callback if the timeout is reset", () => {
35
+ const callback = vi.fn();
36
+
37
+ const timeout = setManagedTimeout(callback, 1000);
38
+
39
+ vi.advanceTimersByTime(500);
40
+ timeout.restart();
41
+ vi.advanceTimersByTime(500);
42
+ expect(callback).not.toHaveBeenCalled();
43
+ });
44
+
45
+ describe("if timeout is reset", () => {
46
+ it("does not call the timeout callback within the timeout period", () => {
47
+ const callback = vi.fn();
48
+
49
+ const timeout = setManagedTimeout(callback, 1000);
50
+
51
+ vi.advanceTimersByTime(500);
52
+ timeout.restart();
53
+ vi.advanceTimersByTime(500);
54
+ expect(callback).not.toHaveBeenCalled();
55
+ });
56
+ it("calls the timeout callback after the timeout period", () => {
57
+ const callback = vi.fn();
58
+
59
+ const timeout = setManagedTimeout(callback, 1000);
60
+
61
+ vi.advanceTimersByTime(500);
62
+ timeout.restart();
63
+ vi.advanceTimersByTime(1000);
64
+ expect(callback).toHaveBeenCalled();
65
+ });
66
+ });
67
+ });
@@ -1,10 +1,10 @@
1
- import { jest } from "@jest/globals";
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
2
  import { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
3
- import { Session } from "../../src/session.js";
4
- import { config } from "../../src/config.js";
3
+ import { Session } from "../../../src/common/session.js";
4
+ import { config } from "../../../src/common/config.js";
5
5
 
6
- jest.mock("@mongosh/service-provider-node-driver");
7
- const MockNodeDriverServiceProvider = NodeDriverServiceProvider as jest.MockedClass<typeof NodeDriverServiceProvider>;
6
+ vi.mock("@mongosh/service-provider-node-driver");
7
+ const MockNodeDriverServiceProvider = vi.mocked(NodeDriverServiceProvider);
8
8
 
9
9
  describe("Session", () => {
10
10
  let session: Session;
@@ -14,9 +14,7 @@ describe("Session", () => {
14
14
  apiBaseUrl: "https://api.test.com",
15
15
  });
16
16
 
17
- MockNodeDriverServiceProvider.connect = jest.fn(() =>
18
- Promise.resolve({} as unknown as NodeDriverServiceProvider)
19
- );
17
+ MockNodeDriverServiceProvider.connect = vi.fn().mockResolvedValue({} as unknown as NodeDriverServiceProvider);
20
18
  });
21
19
 
22
20
  describe("connectToMongoDB", () => {
@@ -48,10 +46,7 @@ describe("Session", () => {
48
46
  await session.connectToMongoDB(testCase.connectionString, config.connectOptions);
49
47
  expect(session.serviceProvider).toBeDefined();
50
48
 
51
- // eslint-disable-next-line @typescript-eslint/unbound-method
52
- const connectMock = MockNodeDriverServiceProvider.connect as jest.Mock<
53
- typeof NodeDriverServiceProvider.connect
54
- >;
49
+ const connectMock = MockNodeDriverServiceProvider.connect;
55
50
  expect(connectMock).toHaveBeenCalledOnce();
56
51
  const connectionString = connectMock.mock.calls[0]?.[0];
57
52
  if (testCase.expectAppName) {
@@ -1,4 +1,5 @@
1
- import { usesIndex, getIndexCheckErrorMessage } from "../../src/helpers/indexCheck.js";
1
+ import { describe, expect, it } from "vitest";
2
+ import { usesIndex, getIndexCheckErrorMessage } from "../../../src/helpers/indexCheck.js";
2
3
  import { Document } from "mongodb";
3
4
 
4
5
  describe("indexCheck", () => {
@@ -1,27 +1,35 @@
1
1
  import { ApiClient } from "../../src/common/atlas/apiClient.js";
2
- import { Session } from "../../src/session.js";
2
+ import { Session } from "../../src/common/session.js";
3
3
  import { DEVICE_ID_TIMEOUT, Telemetry } from "../../src/telemetry/telemetry.js";
4
4
  import { BaseEvent, TelemetryResult } from "../../src/telemetry/types.js";
5
5
  import { EventCache } from "../../src/telemetry/eventCache.js";
6
- import { config } from "../../src/config.js";
7
- import { jest } from "@jest/globals";
8
- import logger, { LogId } from "../../src/logger.js";
6
+ import { config } from "../../src/common/config.js";
7
+ import { afterEach, beforeEach, describe, it, vi, expect } from "vitest";
8
+ import logger, { LogId } from "../../src/common/logger.js";
9
9
  import { createHmac } from "crypto";
10
+ import type { MockedFunction } from "vitest";
10
11
 
11
12
  // Mock the ApiClient to avoid real API calls
12
- jest.mock("../../src/common/atlas/apiClient.js");
13
- const MockApiClient = ApiClient as jest.MockedClass<typeof ApiClient>;
13
+ vi.mock("../../src/common/atlas/apiClient.js");
14
+ const MockApiClient = vi.mocked(ApiClient);
14
15
 
15
16
  // Mock EventCache to control and verify caching behavior
16
- jest.mock("../../src/telemetry/eventCache.js");
17
- const MockEventCache = EventCache as jest.MockedClass<typeof EventCache>;
17
+ vi.mock("../../src/telemetry/eventCache.js");
18
+ const MockEventCache = vi.mocked(EventCache);
18
19
 
19
20
  describe("Telemetry", () => {
20
21
  const machineId = "test-machine-id";
21
22
  const hashedMachineId = createHmac("sha256", machineId.toUpperCase()).update("atlascli").digest("hex");
22
23
 
23
- let mockApiClient: jest.Mocked<ApiClient>;
24
- let mockEventCache: jest.Mocked<EventCache>;
24
+ let mockApiClient: {
25
+ sendEvents: MockedFunction<(events: BaseEvent[]) => Promise<void>>;
26
+ hasCredentials: MockedFunction<() => boolean>;
27
+ };
28
+ let mockEventCache: {
29
+ getEvents: MockedFunction<() => BaseEvent[]>;
30
+ clearEvents: MockedFunction<() => Promise<void>>;
31
+ appendEvents: MockedFunction<(events: BaseEvent[]) => Promise<void>>;
32
+ };
25
33
  let session: Session;
26
34
  let telemetry: Telemetry;
27
35
 
@@ -95,38 +103,32 @@ describe("Telemetry", () => {
95
103
 
96
104
  beforeEach(() => {
97
105
  // Reset mocks before each test
98
- jest.clearAllMocks();
106
+ vi.clearAllMocks();
99
107
 
100
108
  // Setup mocked API client
101
- mockApiClient = new MockApiClient({ baseUrl: "" }) as jest.Mocked<ApiClient>;
102
- //@ts-expect-error This is a workaround
103
- mockApiClient.sendEvents = jest.fn<() => undefined>().mockResolvedValue(undefined);
104
- mockApiClient.hasCredentials = jest.fn<() => boolean>().mockReturnValue(true);
109
+ mockApiClient = vi.mocked(new MockApiClient({ baseUrl: "" }));
110
+
111
+ mockApiClient.sendEvents = vi.fn().mockResolvedValue(undefined);
112
+ mockApiClient.hasCredentials = vi.fn().mockReturnValue(true);
105
113
 
106
114
  // Setup mocked EventCache
107
- mockEventCache = new MockEventCache() as jest.Mocked<EventCache>;
108
- //@ts-expect-error This is a workaround
109
- mockEventCache.getEvents = jest.fn().mockReturnValue([]);
110
- //@ts-expect-error This is a workaround
111
- mockEventCache.clearEvents = jest.fn().mockResolvedValue(undefined);
112
- //@ts-expect-error This is a workaround
113
- mockEventCache.appendEvents = jest.fn().mockResolvedValue(undefined);
114
- //@ts-expect-error This is a workaround
115
- MockEventCache.getInstance = jest.fn().mockReturnValue(mockEventCache);
115
+ mockEventCache = new MockEventCache() as unknown as typeof mockEventCache;
116
+ mockEventCache.getEvents = vi.fn().mockReturnValue([]);
117
+ mockEventCache.clearEvents = vi.fn().mockResolvedValue(undefined);
118
+ mockEventCache.appendEvents = vi.fn().mockResolvedValue(undefined);
119
+ MockEventCache.getInstance = vi.fn().mockReturnValue(mockEventCache as unknown as EventCache);
116
120
 
117
121
  // Create a simplified session with our mocked API client
118
122
  session = {
119
- apiClient: mockApiClient,
123
+ apiClient: mockApiClient as unknown as ApiClient,
120
124
  sessionId: "test-session-id",
121
125
  agentRunner: { name: "test-agent", version: "1.0.0" } as const,
122
- //@ts-expect-error This is a workaround
123
- close: jest.fn().mockResolvedValue(undefined),
124
- //@ts-expect-error This is a workaround
125
- setAgentRunner: jest.fn().mockResolvedValue(undefined),
126
+ close: vi.fn().mockResolvedValue(undefined),
127
+ setAgentRunner: vi.fn().mockResolvedValue(undefined),
126
128
  } as unknown as Session;
127
129
 
128
130
  telemetry = Telemetry.create(session, config, {
129
- eventCache: mockEventCache,
131
+ eventCache: mockEventCache as unknown as EventCache,
130
132
  getRawMachineId: () => Promise.resolve(machineId),
131
133
  });
132
134
 
@@ -138,6 +140,8 @@ describe("Telemetry", () => {
138
140
  it("should send events successfully", async () => {
139
141
  const testEvent = createTestEvent();
140
142
 
143
+ await telemetry.setupPromise;
144
+
141
145
  await telemetry.emitEvents([testEvent]);
142
146
 
143
147
  verifyMockCalls({
@@ -152,6 +156,8 @@ describe("Telemetry", () => {
152
156
 
153
157
  const testEvent = createTestEvent();
154
158
 
159
+ await telemetry.setupPromise;
160
+
155
161
  await telemetry.emitEvents([testEvent]);
156
162
 
157
163
  verifyMockCalls({
@@ -175,6 +181,8 @@ describe("Telemetry", () => {
175
181
  // Set up mock to return cached events
176
182
  mockEventCache.getEvents.mockReturnValueOnce([cachedEvent]);
177
183
 
184
+ await telemetry.setupPromise;
185
+
178
186
  await telemetry.emitEvents([newEvent]);
179
187
 
180
188
  verifyMockCalls({
@@ -184,7 +192,9 @@ describe("Telemetry", () => {
184
192
  });
185
193
  });
186
194
 
187
- it("should correctly add common properties to events", () => {
195
+ it("should correctly add common properties to events", async () => {
196
+ await telemetry.setupPromise;
197
+
188
198
  const commonProps = telemetry.getCommonProperties();
189
199
 
190
200
  // Use explicit type assertion
@@ -202,13 +212,13 @@ describe("Telemetry", () => {
202
212
 
203
213
  describe("machine ID resolution", () => {
204
214
  beforeEach(() => {
205
- jest.clearAllMocks();
206
- jest.useFakeTimers();
215
+ vi.clearAllMocks();
216
+ vi.useFakeTimers();
207
217
  });
208
218
 
209
219
  afterEach(() => {
210
- jest.clearAllMocks();
211
- jest.useRealTimers();
220
+ vi.clearAllMocks();
221
+ vi.useRealTimers();
212
222
  });
213
223
 
214
224
  it("should successfully resolve the machine ID", async () => {
@@ -219,14 +229,14 @@ describe("Telemetry", () => {
219
229
  expect(telemetry["isBufferingEvents"]).toBe(true);
220
230
  expect(telemetry.getCommonProperties().device_id).toBe(undefined);
221
231
 
222
- await telemetry.deviceIdPromise;
232
+ await telemetry.setupPromise;
223
233
 
224
234
  expect(telemetry["isBufferingEvents"]).toBe(false);
225
235
  expect(telemetry.getCommonProperties().device_id).toBe(hashedMachineId);
226
236
  });
227
237
 
228
238
  it("should handle machine ID resolution failure", async () => {
229
- const loggerSpy = jest.spyOn(logger, "debug");
239
+ const loggerSpy = vi.spyOn(logger, "debug");
230
240
 
231
241
  telemetry = Telemetry.create(session, config, {
232
242
  getRawMachineId: () => Promise.reject(new Error("Failed to get device ID")),
@@ -235,7 +245,7 @@ describe("Telemetry", () => {
235
245
  expect(telemetry["isBufferingEvents"]).toBe(true);
236
246
  expect(telemetry.getCommonProperties().device_id).toBe(undefined);
237
247
 
238
- await telemetry.deviceIdPromise;
248
+ await telemetry.setupPromise;
239
249
 
240
250
  expect(telemetry["isBufferingEvents"]).toBe(false);
241
251
  expect(telemetry.getCommonProperties().device_id).toBe("unknown");
@@ -248,22 +258,22 @@ describe("Telemetry", () => {
248
258
  });
249
259
 
250
260
  it("should timeout if machine ID resolution takes too long", async () => {
251
- const loggerSpy = jest.spyOn(logger, "debug");
261
+ const loggerSpy = vi.spyOn(logger, "debug");
252
262
 
253
263
  telemetry = Telemetry.create(session, config, { getRawMachineId: () => new Promise(() => {}) });
254
264
 
255
265
  expect(telemetry["isBufferingEvents"]).toBe(true);
256
266
  expect(telemetry.getCommonProperties().device_id).toBe(undefined);
257
267
 
258
- jest.advanceTimersByTime(DEVICE_ID_TIMEOUT / 2);
268
+ vi.advanceTimersByTime(DEVICE_ID_TIMEOUT / 2);
259
269
 
260
270
  // Make sure the timeout doesn't happen prematurely.
261
271
  expect(telemetry["isBufferingEvents"]).toBe(true);
262
272
  expect(telemetry.getCommonProperties().device_id).toBe(undefined);
263
273
 
264
- jest.advanceTimersByTime(DEVICE_ID_TIMEOUT);
274
+ vi.advanceTimersByTime(DEVICE_ID_TIMEOUT);
265
275
 
266
- await telemetry.deviceIdPromise;
276
+ await telemetry.setupPromise;
267
277
 
268
278
  expect(telemetry.getCommonProperties().device_id).toBe("unknown");
269
279
  expect(telemetry["isBufferingEvents"]).toBe(false);
@@ -1,15 +1,15 @@
1
1
  import { Decimal128, MaxKey, MinKey, ObjectId, Timestamp, UUID } from "bson";
2
- import { createEJsonTransport, EJsonReadBuffer } from "../../src/helpers/EJsonTransport.js";
2
+ import { createStdioTransport, EJsonReadBuffer } from "../../../src/transports/stdio.js";
3
3
  import { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
4
4
  import { AuthInfo } from "@modelcontextprotocol/sdk/server/auth/types.js";
5
5
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
6
  import { Readable } from "stream";
7
7
  import { ReadBuffer } from "@modelcontextprotocol/sdk/shared/stdio.js";
8
-
9
- describe("EJsonTransport", () => {
8
+ import { describe, expect, it, beforeEach, afterEach } from "vitest";
9
+ describe("stdioTransport", () => {
10
10
  let transport: StdioServerTransport;
11
11
  beforeEach(async () => {
12
- transport = createEJsonTransport();
12
+ transport = createStdioTransport();
13
13
  await transport.start();
14
14
  });
15
15
 
@@ -0,0 +1,11 @@
1
+ import "vitest";
2
+
3
+ declare module "vitest" {
4
+ interface Assertion<T = unknown> {
5
+ toIncludeSameMembers<U>(expected: U[]): T;
6
+ }
7
+
8
+ interface AsymmetricMatchersContaining {
9
+ toIncludeSameMembers<T>(expected: T[]): unknown;
10
+ }
11
+ }
package/tsconfig.json CHANGED
@@ -2,7 +2,6 @@
2
2
  "extends": "./tsconfig.build.json",
3
3
  "compilerOptions": {
4
4
  "rootDir": ".",
5
- "types": ["jest"],
6
5
  "skipLibCheck": true
7
6
  },
8
7
  "include": ["**/*"]
@@ -2,8 +2,7 @@
2
2
  "extends": "./tsconfig.build.json",
3
3
  "compilerOptions": {
4
4
  "isolatedModules": true,
5
- "allowSyntheticDefaultImports": true,
6
- "types": ["jest", "jest-extended"]
5
+ "allowSyntheticDefaultImports": true
7
6
  },
8
7
  "include": ["src/**/*.ts", "tests/**/*.ts"]
9
8
  }
@@ -0,0 +1,41 @@
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ // Shared exclusions for all projects
4
+ // Ref: https://vitest.dev/config/#exclude
5
+ const vitestDefaultExcludes = [
6
+ "**/node_modules/**",
7
+ "**/dist/**",
8
+ "**/cypress/**",
9
+ "**/.{idea,git,cache,output,temp}/**",
10
+ "**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*",
11
+ ];
12
+
13
+ export default defineConfig({
14
+ test: {
15
+ environment: "node",
16
+ testTimeout: 3600000,
17
+ hookTimeout: 3600000,
18
+ setupFiles: ["./tests/setup.ts"],
19
+ coverage: {
20
+ exclude: ["node_modules", "tests", "dist", "vitest.config.ts", "scripts"],
21
+ reporter: ["lcov"],
22
+ },
23
+ projects: [
24
+ {
25
+ extends: true,
26
+ test: {
27
+ name: "unit-and-integration",
28
+ include: ["**/*.test.ts"],
29
+ exclude: [...vitestDefaultExcludes, "tests/accuracy/**"],
30
+ },
31
+ },
32
+ {
33
+ extends: true,
34
+ test: {
35
+ name: "accuracy",
36
+ include: ["**/accuracy/*.test.ts"],
37
+ },
38
+ },
39
+ ],
40
+ },
41
+ });
@@ -1 +0,0 @@
1
- {"version":3,"file":"generatePassword.js","sourceRoot":"","sources":["../../../src/common/atlas/generatePassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,sBAAsB;IACxC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,cAAc,CAAC;AA0BhC,MAAM,QAAQ,GAAe;IACzB,UAAU,EAAE,4BAA4B;IACxC,OAAO,EAAE,UAAU,EAAE;IACrB,cAAc,EAAE;QACZ,WAAW,EAAE,OAAO;QACpB,cAAc,EAAE,oBAAoB;QACpC,YAAY,EAAE,UAAU;QACxB,SAAS,EAAE,KAAM;KACpB;IACD,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,GAAG,QAAQ;IACX,GAAG,YAAY,EAAE;IACjB,GAAG,YAAY,EAAE;CACpB,CAAC;AAEF,SAAS,UAAU;IACf,MAAM,aAAa,GACf,OAAO,CAAC,QAAQ,KAAK,OAAO;QACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAErE,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oFAAoF;AACpF,yFAAyF;AACzF,uBAAuB;AACvB,SAAS,YAAY;IACjB,SAAS,QAAQ,CAAC,GAA4B,EAAE,IAAc,EAAE,KAAa;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;gBAChC,OAAO;YACX,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC/C,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBACtD,GAAG,CAAC,YAAY,CAAC,GAAG,YAAY,KAAK,MAAM,CAAC;gBAC5C,OAAO;YACX,CAAC;YAED,kCAAkC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1D,OAAO;YACX,CAAC;YAED,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,YAAY,CAA4B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAChD,CAAC;IACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,GAAG;aAChB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjD,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,+DAA+D;AAC/D,SAAS,YAAY;IACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/B,KAAK,EAAE,CAAC,eAAe,CAAC;KAC3B,CAAmC,CAAC;AACzC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;AACjC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnC,YACW,IAAgB,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAY;IAI3B,CAAC;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EJsonTransport.js","sourceRoot":"","sources":["../../src/helpers/EJsonTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,OAAO,eAAe;IAGxB,MAAM,CAAC,KAAa;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/E,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEhD,uEAAuE;QACvE,OAAO,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;CACJ;AAED,6FAA6F;AAC7F,mFAAmF;AACnF,2FAA2F;AAC3F,EAAE;AACF,yGAAyG;AACzG,iCAAiC;AACjC,MAAM,UAAU,oBAAoB;IAChC,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC1C,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"packageInfo.js","sourceRoot":"","sources":["../../src/helpers/packageInfo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,aAAa,EAAE,oBAAoB;CACtC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}