@lofder/dsers-mcp-product 1.4.0 → 1.5.2

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 (136) hide show
  1. package/CHANGELOG.md +264 -0
  2. package/README.md +65 -7
  3. package/dist/auth/oauth.d.ts.map +1 -1
  4. package/dist/auth/oauth.js +97 -57
  5. package/dist/auth/oauth.js.map +1 -1
  6. package/dist/auth/token-store.d.ts.map +1 -1
  7. package/dist/auth/token-store.js +80 -27
  8. package/dist/auth/token-store.js.map +1 -1
  9. package/dist/cli.js +39 -25
  10. package/dist/cli.js.map +1 -1
  11. package/dist/dsers/auth.d.ts +1 -0
  12. package/dist/dsers/auth.d.ts.map +1 -1
  13. package/dist/dsers/auth.js +56 -18
  14. package/dist/dsers/auth.js.map +1 -1
  15. package/dist/dsers/client.d.ts +9 -3
  16. package/dist/dsers/client.d.ts.map +1 -1
  17. package/dist/dsers/client.js +47 -20
  18. package/dist/dsers/client.js.map +1 -1
  19. package/dist/dsers/product.d.ts +60 -1
  20. package/dist/dsers/product.d.ts.map +1 -1
  21. package/dist/dsers/product.js +87 -13
  22. package/dist/dsers/product.js.map +1 -1
  23. package/dist/dsers/retry.d.ts +59 -0
  24. package/dist/dsers/retry.d.ts.map +1 -0
  25. package/dist/dsers/retry.js +214 -0
  26. package/dist/dsers/retry.js.map +1 -0
  27. package/dist/error-map.d.ts.map +1 -1
  28. package/dist/error-map.js +27 -8
  29. package/dist/error-map.js.map +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +7 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/instructions.d.ts.map +1 -1
  34. package/dist/instructions.js +23 -1
  35. package/dist/instructions.js.map +1 -1
  36. package/dist/job-store-memory.d.ts.map +1 -1
  37. package/dist/job-store-memory.js +2 -43
  38. package/dist/job-store-memory.js.map +1 -1
  39. package/dist/job-store.d.ts.map +1 -1
  40. package/dist/job-store.js +5 -1
  41. package/dist/job-store.js.map +1 -1
  42. package/dist/logger.d.ts +51 -0
  43. package/dist/logger.d.ts.map +1 -0
  44. package/dist/logger.js +125 -0
  45. package/dist/logger.js.map +1 -0
  46. package/dist/oauth/crypto.d.ts +4 -1
  47. package/dist/oauth/crypto.d.ts.map +1 -1
  48. package/dist/oauth/crypto.js +10 -1
  49. package/dist/oauth/crypto.js.map +1 -1
  50. package/dist/provider/helpers.d.ts +2 -2
  51. package/dist/provider/helpers.d.ts.map +1 -1
  52. package/dist/provider/helpers.js +28 -10
  53. package/dist/provider/helpers.js.map +1 -1
  54. package/dist/provider/import-ops.d.ts.map +1 -1
  55. package/dist/provider/import-ops.js +7 -4
  56. package/dist/provider/import-ops.js.map +1 -1
  57. package/dist/provider/index.d.ts +1 -0
  58. package/dist/provider/index.d.ts.map +1 -1
  59. package/dist/provider/index.js +3 -1
  60. package/dist/provider/index.js.map +1 -1
  61. package/dist/provider/normalize.d.ts.map +1 -1
  62. package/dist/provider/normalize.js +13 -9
  63. package/dist/provider/normalize.js.map +1 -1
  64. package/dist/provider/push.d.ts.map +1 -1
  65. package/dist/provider/push.js +4 -3
  66. package/dist/provider/push.js.map +1 -1
  67. package/dist/provider/sku-matcher.d.ts +157 -0
  68. package/dist/provider/sku-matcher.d.ts.map +1 -0
  69. package/dist/provider/sku-matcher.js +1206 -0
  70. package/dist/provider/sku-matcher.js.map +1 -0
  71. package/dist/provider/store.d.ts +1 -1
  72. package/dist/provider/store.d.ts.map +1 -1
  73. package/dist/provider/store.js +7 -5
  74. package/dist/provider/store.js.map +1 -1
  75. package/dist/rules.d.ts.map +1 -1
  76. package/dist/rules.js +60 -4
  77. package/dist/rules.js.map +1 -1
  78. package/dist/service/browse-shared.d.ts +1 -0
  79. package/dist/service/browse-shared.d.ts.map +1 -1
  80. package/dist/service/browse-shared.js +3 -1
  81. package/dist/service/browse-shared.js.map +1 -1
  82. package/dist/service/find-product.d.ts.map +1 -1
  83. package/dist/service/find-product.js +33 -6
  84. package/dist/service/find-product.js.map +1 -1
  85. package/dist/service/import-list.d.ts.map +1 -1
  86. package/dist/service/import-list.js +5 -2
  87. package/dist/service/import-list.js.map +1 -1
  88. package/dist/service/index.d.ts +2 -0
  89. package/dist/service/index.d.ts.map +1 -1
  90. package/dist/service/index.js +15 -5
  91. package/dist/service/index.js.map +1 -1
  92. package/dist/service/preview.d.ts +1 -1
  93. package/dist/service/preview.d.ts.map +1 -1
  94. package/dist/service/preview.js +53 -24
  95. package/dist/service/preview.js.map +1 -1
  96. package/dist/service/push-flow.d.ts.map +1 -1
  97. package/dist/service/push-flow.js +23 -15
  98. package/dist/service/push-flow.js.map +1 -1
  99. package/dist/service/sku-mapping.d.ts +674 -0
  100. package/dist/service/sku-mapping.d.ts.map +1 -0
  101. package/dist/service/sku-mapping.js +1879 -0
  102. package/dist/service/sku-mapping.js.map +1 -0
  103. package/dist/tools.d.ts +3 -0
  104. package/dist/tools.d.ts.map +1 -1
  105. package/dist/tools.js +329 -5
  106. package/dist/tools.js.map +1 -1
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/dist/util.d.ts +6 -0
  109. package/dist/util.d.ts.map +1 -0
  110. package/dist/util.js +25 -0
  111. package/dist/util.js.map +1 -0
  112. package/package.json +10 -5
  113. package/dist/auth/cdp-session.d.ts +0 -6
  114. package/dist/auth/cdp-session.d.ts.map +0 -1
  115. package/dist/auth/cdp-session.js +0 -369
  116. package/dist/auth/cdp-session.js.map +0 -1
  117. package/dist/auth/safari-fallback.d.ts +0 -7
  118. package/dist/auth/safari-fallback.d.ts.map +0 -1
  119. package/dist/auth/safari-fallback.js +0 -73
  120. package/dist/auth/safari-fallback.js.map +0 -1
  121. package/dist/auth/terminal-prompt.d.ts +0 -6
  122. package/dist/auth/terminal-prompt.d.ts.map +0 -1
  123. package/dist/auth/terminal-prompt.js +0 -118
  124. package/dist/auth/terminal-prompt.js.map +0 -1
  125. package/dist/provider.d.ts +0 -90
  126. package/dist/provider.d.ts.map +0 -1
  127. package/dist/provider.js +0 -1577
  128. package/dist/provider.js.map +0 -1
  129. package/dist/service/browse.d.ts +0 -20
  130. package/dist/service/browse.d.ts.map +0 -1
  131. package/dist/service/browse.js +0 -159
  132. package/dist/service/browse.js.map +0 -1
  133. package/dist/service.d.ts +0 -27
  134. package/dist/service.d.ts.map +0 -1
  135. package/dist/service.js +0 -949
  136. package/dist/service.js.map +0 -1
@@ -12,13 +12,13 @@
12
12
  */
13
13
  import * as http from "node:http";
14
14
  import * as crypto from "node:crypto";
15
- import { spawnSync } from "node:child_process";
15
+ import { openBrowser } from "./browser-finder.js";
16
16
  const DEFAULT_OAUTH_BASE = "https://mcp-oauth-api-gw.dsers.com";
17
17
  const DEFAULT_BFF_BASE = "https://bff-api-gw.dsers.com";
18
- const CB_PORT = 3001;
19
- const REDIRECT_URI = `http://localhost:${CB_PORT}/callback`;
18
+ const CB_PORTS = [3001, 3002, 3003];
19
+ const CB_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
20
20
  const OAUTH_SCOPES = "user:read store:read store:write staff:read supplier:read " +
21
- "product:read product:import product:push " +
21
+ "product:read product:import product:push product:mapping " +
22
22
  "settings:read billing:read plan:read order:read";
23
23
  // ── PKCE helpers ──
24
24
  function generateVerifier() {
@@ -36,66 +36,99 @@ async function fetchJSON(url, init) {
36
36
  }
37
37
  return res.json();
38
38
  }
39
- function openBrowser(url, log) {
40
- const cmd = process.platform === "darwin" ? "open"
41
- : process.platform === "win32" ? "cmd"
42
- : "xdg-open";
43
- try {
44
- if (process.platform === "win32") {
45
- spawnSync(cmd, ["/c", "start", "", url], { stdio: "ignore" });
46
- }
47
- else {
48
- spawnSync(cmd, [url], { stdio: "ignore" });
49
- }
50
- }
51
- catch {
52
- log(`Please open this URL in your browser:\n${url}`);
53
- }
54
- }
55
39
  // ── OAuth flow ──
56
40
  async function getASMetadata(oauthBase) {
57
41
  return fetchJSON(`${oauthBase}/.well-known/oauth-authorization-server`);
58
42
  }
59
- async function registerClient(registrationEndpoint, log) {
43
+ async function registerClient(registrationEndpoint, redirectUri, log) {
60
44
  log("Registering OAuth client...");
61
45
  const data = await fetchJSON(registrationEndpoint, {
62
46
  method: "POST",
63
47
  headers: { "Content-Type": "application/json" },
64
48
  body: JSON.stringify({
65
49
  client_name: "DSers MCP Product",
66
- redirect_uris: [REDIRECT_URI],
50
+ redirect_uris: [redirectUri],
67
51
  }),
68
52
  });
69
53
  return data.client_id;
70
54
  }
71
- function waitForCallback(log) {
72
- return new Promise((resolve, reject) => {
73
- const server = http.createServer((req, res) => {
74
- const url = new URL(req.url, `http://localhost:${CB_PORT}`);
75
- const code = url.searchParams.get("code");
76
- const error = url.searchParams.get("error");
77
- res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
78
- res.end("<html><body><h2>Authorization successful. You can close this tab.</h2></body></html>");
79
- server.close();
80
- if (error)
81
- reject(new Error(`OAuth error: ${error}`));
82
- else if (code)
83
- resolve(code);
84
- else
85
- reject(new Error("Callback missing authorization code"));
86
- });
87
- server.listen(CB_PORT, () => log(`Waiting for OAuth callback on port ${CB_PORT}...`));
88
- server.on("error", (err) => {
89
- if (err.code === "EADDRINUSE") {
90
- reject(new Error(`Port ${CB_PORT} is in use. Close the other process and try again.`));
91
- }
92
- else {
93
- reject(err);
94
- }
95
- });
55
+ /**
56
+ * Create a callback server and wait for it to bind.
57
+ * Returns the server and a promise that resolves with the auth code.
58
+ */
59
+ function createCallbackServer(port, expectedState, log) {
60
+ let settled = false;
61
+ let resolveCode;
62
+ let rejectCode;
63
+ const callbackPromise = new Promise((resolve, reject) => {
64
+ resolveCode = resolve;
65
+ rejectCode = reject;
66
+ });
67
+ const settle = (fn, v) => {
68
+ if (settled)
69
+ return;
70
+ settled = true;
71
+ clearTimeout(timer);
72
+ fn(v);
73
+ };
74
+ const server = http.createServer((req, res) => {
75
+ const url = new URL(req.url, `http://localhost:${port}`);
76
+ const code = url.searchParams.get("code");
77
+ const error = url.searchParams.get("error");
78
+ const callbackState = url.searchParams.get("state");
79
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
80
+ res.end("<html><body><h2>Authorization successful. You can close this tab.</h2></body></html>");
81
+ server.close();
82
+ if (error) {
83
+ settle(rejectCode, new Error(`OAuth error: ${error}`));
84
+ }
85
+ else if (callbackState !== expectedState) {
86
+ settle(rejectCode, new Error("OAuth state mismatch — possible CSRF attack. Please retry."));
87
+ }
88
+ else if (code) {
89
+ settle(resolveCode, code);
90
+ }
91
+ else {
92
+ settle(rejectCode, new Error("Callback missing authorization code"));
93
+ }
96
94
  });
95
+ // Bind to localhost only (P0-09)
96
+ server.listen(port, "127.0.0.1", () => log(`Waiting for OAuth callback on port ${port}...`));
97
+ // Timeout after 5 minutes (P3-02)
98
+ const timer = setTimeout(() => {
99
+ server.close();
100
+ settle(rejectCode, new Error("OAuth callback timed out after 5 minutes. Please retry."));
101
+ }, CB_TIMEOUT_MS);
102
+ timer.unref();
103
+ return { server, callbackPromise };
97
104
  }
98
- async function exchangeCode(tokenEndpoint, clientId, code, verifier, oauthBase) {
105
+ /**
106
+ * Try to listen on a series of ports, returning the first that works.
107
+ * Waits for the `listening` event to confirm the port is bound before returning.
108
+ */
109
+ async function tryListenWithFallback(expectedState, log) {
110
+ for (const port of CB_PORTS) {
111
+ try {
112
+ const { server, callbackPromise } = createCallbackServer(port, expectedState, log);
113
+ // Wait for listening event to confirm port is actually available
114
+ await new Promise((resolve, reject) => {
115
+ server.once("listening", resolve);
116
+ server.once("error", reject);
117
+ });
118
+ const redirectUri = `http://localhost:${port}/callback`;
119
+ return { port, redirectUri, callbackPromise };
120
+ }
121
+ catch (err) {
122
+ if (err?.code === "EADDRINUSE") {
123
+ log(`Port ${port} is in use, trying next...`);
124
+ continue;
125
+ }
126
+ throw err;
127
+ }
128
+ }
129
+ throw new Error(`All callback ports (${CB_PORTS.join(", ")}) are in use. Free one and retry.`);
130
+ }
131
+ async function exchangeCode(tokenEndpoint, clientId, code, verifier, redirectUri, oauthBase) {
99
132
  return fetchJSON(tokenEndpoint, {
100
133
  method: "POST",
101
134
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
@@ -104,7 +137,7 @@ async function exchangeCode(tokenEndpoint, clientId, code, verifier, oauthBase)
104
137
  code,
105
138
  code_verifier: verifier,
106
139
  client_id: clientId,
107
- redirect_uri: REDIRECT_URI,
140
+ redirect_uri: redirectUri,
108
141
  resource: oauthBase,
109
142
  }).toString(),
110
143
  });
@@ -116,28 +149,35 @@ async function exchangeCode(tokenEndpoint, clientId, code, verifier, oauthBase)
116
149
  export async function authorizeWithPKCE(log, savedClientId, oauthBase) {
117
150
  const base = oauthBase || process.env.DSERS_OAUTH_BASE || DEFAULT_OAUTH_BASE;
118
151
  const meta = await getASMetadata(base);
152
+ const verifier = generateVerifier();
153
+ const challenge = generateChallenge(verifier);
154
+ const state = crypto.randomBytes(16).toString("hex");
155
+ // Start callback listener first to determine actual port
156
+ const { redirectUri, callbackPromise } = await tryListenWithFallback(state, log);
119
157
  // Reuse saved client_id or register new one
120
158
  let clientId = savedClientId;
121
159
  if (!clientId) {
122
- clientId = await registerClient(meta.registration_endpoint, log);
160
+ clientId = await registerClient(meta.registration_endpoint, redirectUri, log);
123
161
  log(`Client registered: ${clientId}`);
124
162
  }
125
- const verifier = generateVerifier();
126
- const challenge = generateChallenge(verifier);
127
- const state = crypto.randomBytes(16).toString("hex");
128
163
  const authURL = new URL(meta.authorization_endpoint);
129
164
  authURL.searchParams.set("response_type", "code");
130
165
  authURL.searchParams.set("client_id", clientId);
131
- authURL.searchParams.set("redirect_uri", REDIRECT_URI);
166
+ authURL.searchParams.set("redirect_uri", redirectUri);
132
167
  authURL.searchParams.set("scope", OAUTH_SCOPES);
133
168
  authURL.searchParams.set("code_challenge", challenge);
134
169
  authURL.searchParams.set("code_challenge_method", "S256");
135
170
  authURL.searchParams.set("state", state);
136
171
  authURL.searchParams.set("resource", base);
137
172
  log("Opening browser for DSers authorization...");
138
- openBrowser(authURL.toString(), log);
139
- const code = await waitForCallback(log);
140
- const tokenData = await exchangeCode(meta.token_endpoint, clientId, code, verifier, base);
173
+ try {
174
+ openBrowser(authURL.toString());
175
+ }
176
+ catch {
177
+ log(`Please open this URL in your browser:\n${authURL.toString()}`);
178
+ }
179
+ const code = await callbackPromise;
180
+ const tokenData = await exchangeCode(meta.token_endpoint, clientId, code, verifier, redirectUri, base);
141
181
  return {
142
182
  access_token: tokenData.access_token,
143
183
  refresh_token: tokenData.refresh_token,
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"AAWA,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;CACZ;AAsDD,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAErE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAYtD;AAED,wBAAgB,SAAS,IAAI,aAAa,GAAG,IAAI,CAkBhD;AAED,wBAAgB,UAAU,IAAI,OAAO,CASpC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,IAAI,OAAO,CAY9C"}
1
+ {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"AAaA,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;CACZ;AAoFD,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAErE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAStD;AAED,wBAAgB,SAAS,IAAI,aAAa,GAAG,IAAI,CAsChD;AAED,wBAAgB,UAAU,IAAI,OAAO,CASpC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,IAAI,OAAO,CAmB9C"}
@@ -1,5 +1,5 @@
1
- import { randomBytes, createCipheriv, createDecipheriv, createHash } from "node:crypto";
2
- import { readFileSync, writeFileSync, mkdirSync, unlinkSync, chmodSync } from "node:fs";
1
+ import { randomBytes, createCipheriv, createDecipheriv, createHash, pbkdf2Sync } from "node:crypto";
2
+ import { readFileSync, writeFileSync, mkdirSync, unlinkSync } from "node:fs";
3
3
  import { existsSync } from "node:fs";
4
4
  import { join } from "node:path";
5
5
  import { homedir, hostname, userInfo } from "node:os";
@@ -7,13 +7,46 @@ const ALG = "aes-256-gcm";
7
7
  const IV_LEN = 12;
8
8
  const TAG_LEN = 16;
9
9
  const PACKAGE_SEED = "dsers-mcp-product-v1";
10
+ const SALT_FILE = "key-salt";
11
+ const PBKDF2_ITERATIONS = 100_000;
10
12
  function getCredDir() {
11
13
  return join(homedir(), ".dsers-mcp");
12
14
  }
13
15
  function getCredFile() {
14
16
  return join(getCredDir(), "credentials");
15
17
  }
16
- function deriveKey() {
18
+ function getSaltFile() {
19
+ return join(getCredDir(), SALT_FILE);
20
+ }
21
+ function getOrCreateSalt() {
22
+ const saltFile = getSaltFile();
23
+ if (existsSync(saltFile)) {
24
+ try {
25
+ return Buffer.from(readFileSync(saltFile, "utf-8").trim(), "hex");
26
+ }
27
+ catch {
28
+ // Fall through to generate new salt
29
+ }
30
+ }
31
+ const salt = randomBytes(32);
32
+ const dir = getCredDir();
33
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
34
+ writeFileSync(saltFile, salt.toString("hex"), { encoding: "utf-8", mode: 0o600 });
35
+ return salt;
36
+ }
37
+ function deriveKeyNew(salt) {
38
+ const host = hostname();
39
+ let user = "";
40
+ try {
41
+ user = userInfo().username;
42
+ }
43
+ catch (_osErr) {
44
+ user = process.env.USER ?? process.env.USERNAME ?? "default";
45
+ }
46
+ return pbkdf2Sync(`${PACKAGE_SEED}:${host}:${user}`, salt, PBKDF2_ITERATIONS, 32, "sha256");
47
+ }
48
+ /** Legacy key derivation (single SHA-256, no salt) — used only for migration */
49
+ function deriveKeyLegacy() {
17
50
  const host = hostname();
18
51
  let user = "";
19
52
  try {
@@ -24,17 +57,15 @@ function deriveKey() {
24
57
  }
25
58
  return createHash("sha256").update(`${PACKAGE_SEED}:${host}:${user}`).digest();
26
59
  }
27
- function encrypt(data) {
28
- const key = deriveKey();
60
+ function encryptWithKey(data, key) {
29
61
  const iv = randomBytes(IV_LEN);
30
62
  const cipher = createCipheriv(ALG, key, iv, { authTagLength: TAG_LEN });
31
63
  const ct = Buffer.concat([cipher.update(data, "utf8"), cipher.final()]);
32
64
  const tag = cipher.getAuthTag();
33
65
  return Buffer.concat([iv, tag, ct]).toString("base64");
34
66
  }
35
- function decrypt(encoded) {
67
+ function decryptWithKey(encoded, key) {
36
68
  try {
37
- const key = deriveKey();
38
69
  const buf = Buffer.from(encoded, "base64");
39
70
  if (buf.length < IV_LEN + TAG_LEN + 1)
40
71
  return null;
@@ -56,16 +87,12 @@ export function isLegacySession(obj) {
56
87
  export function saveToken(session) {
57
88
  const dir = getCredDir();
58
89
  mkdirSync(dir, { recursive: true, mode: 0o700 });
90
+ const salt = getOrCreateSalt();
91
+ const key = deriveKeyNew(salt);
59
92
  const json = JSON.stringify(session);
60
- const encrypted = encrypt(json);
93
+ const encrypted = encryptWithKey(json, key);
61
94
  const file = getCredFile();
62
- writeFileSync(file, encrypted, "utf-8");
63
- try {
64
- chmodSync(file, 0o600);
65
- }
66
- catch (_chmodErr) {
67
- /* Windows: chmod not fully supported */
68
- }
95
+ writeFileSync(file, encrypted, { encoding: "utf-8", mode: 0o600 });
69
96
  }
70
97
  export function loadToken() {
71
98
  const file = getCredFile();
@@ -73,17 +100,35 @@ export function loadToken() {
73
100
  return null;
74
101
  try {
75
102
  const encrypted = readFileSync(file, "utf-8").trim();
76
- const json = decrypt(encrypted);
77
- if (!json)
78
- return null;
79
- const parsed = JSON.parse(json);
80
- // Detect legacy CDP format → caller should prompt re-login
81
- if (isLegacySession(parsed))
82
- return null;
83
- const session = parsed;
84
- if (!session.access_token)
85
- return null;
86
- return session;
103
+ // Try new key derivation first
104
+ const saltFile = getSaltFile();
105
+ if (existsSync(saltFile)) {
106
+ const salt = Buffer.from(readFileSync(saltFile, "utf-8").trim(), "hex");
107
+ const key = deriveKeyNew(salt);
108
+ const json = decryptWithKey(encrypted, key);
109
+ if (json) {
110
+ const parsed = JSON.parse(json);
111
+ if (isLegacySession(parsed))
112
+ return null;
113
+ const session = parsed;
114
+ return session.access_token ? session : null;
115
+ }
116
+ }
117
+ // Fallback: try legacy key (auto-migrate on success)
118
+ const legacyKey = deriveKeyLegacy();
119
+ const legacyJson = decryptWithKey(encrypted, legacyKey);
120
+ if (legacyJson) {
121
+ const parsed = JSON.parse(legacyJson);
122
+ if (isLegacySession(parsed))
123
+ return null;
124
+ const session = parsed;
125
+ if (session.access_token) {
126
+ // Auto-migrate: re-encrypt with new key
127
+ saveToken(session);
128
+ return session;
129
+ }
130
+ }
131
+ return null;
87
132
  }
88
133
  catch (_readErr) {
89
134
  return null;
@@ -111,7 +156,15 @@ export function hasLegacyCredentials() {
111
156
  return false;
112
157
  try {
113
158
  const encrypted = readFileSync(file, "utf-8").trim();
114
- const json = decrypt(encrypted);
159
+ // Try new key first, then legacy
160
+ const saltFile = getSaltFile();
161
+ let json = null;
162
+ if (existsSync(saltFile)) {
163
+ const salt = Buffer.from(readFileSync(saltFile, "utf-8").trim(), "hex");
164
+ json = decryptWithKey(encrypted, deriveKeyNew(salt));
165
+ }
166
+ if (!json)
167
+ json = decryptWithKey(encrypted, deriveKeyLegacy());
115
168
  if (!json)
116
169
  return false;
117
170
  const parsed = JSON.parse(json);
@@ -1 +1 @@
1
- {"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/auth/token-store.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -9,7 +9,7 @@ import { registerTools } from "./tools.js";
9
9
  import { SERVER_INSTRUCTIONS } from "./instructions.js";
10
10
  import { resolve, dirname } from "node:path";
11
11
  import { homedir } from "node:os";
12
- import { readFileSync, statSync } from "node:fs";
12
+ import { readFileSync } from "node:fs";
13
13
  import { fileURLToPath } from "node:url";
14
14
  import { authorizeWithPKCE } from "./auth/oauth.js";
15
15
  import { saveToken, loadToken, clearToken, tokenFilePath, hasLegacyCredentials, } from "./auth/token-store.js";
@@ -93,35 +93,39 @@ async function startServer() {
93
93
  " npx @lofder/dsers-mcp-product login\n\n");
94
94
  }
95
95
  }
96
- // Token hot-reload: watch credential file for changes
97
- let lastTokenMtime = 0;
96
+ // Token hot-reload: watch credential file for changes (fs.watchFile instead of statSync on hot path)
97
+ let cachedTokenResult = null;
98
+ const tokenPath = tokenFilePath();
98
99
  try {
99
- lastTokenMtime = statSync(tokenFilePath()).mtimeMs;
100
+ const { watchFile } = await import("node:fs");
101
+ watchFile(tokenPath, { interval: 5000 }, () => {
102
+ try {
103
+ const fresh = loadToken();
104
+ if (!fresh) {
105
+ cachedTokenResult = null;
106
+ return;
107
+ }
108
+ cachedTokenResult = {
109
+ access_token: fresh.access_token,
110
+ refresh_token: fresh.refresh_token,
111
+ expires_at: fresh.expires_at,
112
+ client_id: fresh.client_id,
113
+ oauth_base: fresh.oauth_base,
114
+ base_url: fresh.base_url,
115
+ };
116
+ }
117
+ catch {
118
+ cachedTokenResult = null;
119
+ }
120
+ });
100
121
  }
101
122
  catch {
102
- /* no token file yet */
123
+ /* watchFile not available tokenReloader returns null */
103
124
  }
104
125
  dsersConfig.tokenReloader = () => {
105
- try {
106
- const mtime = statSync(tokenFilePath()).mtimeMs;
107
- if (mtime === lastTokenMtime)
108
- return null;
109
- lastTokenMtime = mtime;
110
- const fresh = loadToken();
111
- if (!fresh)
112
- return null;
113
- return {
114
- access_token: fresh.access_token,
115
- refresh_token: fresh.refresh_token,
116
- expires_at: fresh.expires_at,
117
- client_id: fresh.client_id,
118
- oauth_base: fresh.oauth_base,
119
- base_url: fresh.base_url,
120
- };
121
- }
122
- catch {
123
- return null;
124
- }
126
+ const result = cachedTokenResult;
127
+ cachedTokenResult = null;
128
+ return result;
125
129
  };
126
130
  if (!dsersConfig.accessToken) {
127
131
  process.stderr.write("Warning: No DSers credentials found.\n" +
@@ -136,6 +140,16 @@ async function startServer() {
136
140
  registerTools(server, service);
137
141
  const transport = new StdioServerTransport();
138
142
  await server.connect(transport);
143
+ // Graceful shutdown
144
+ const shutdown = () => {
145
+ try {
146
+ transport.close?.();
147
+ }
148
+ catch { /* best effort */ }
149
+ process.exit(0);
150
+ };
151
+ process.on("SIGTERM", shutdown);
152
+ process.on("SIGINT", shutdown);
139
153
  }
140
154
  /* ------------------------------------------------------------------ */
141
155
  /* Entrypoint */
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AAE9D,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AAExE,KAAK,UAAU,WAAW;IACxB,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzB,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAEvD,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,uFAAuF,CAAC,CAAC;IAC/F,CAAC;IAED,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,QAAQ,EAAE,SAAS,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE3D,mCAAmC;IACnC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,iCAAiC,EAAE;YAC5E,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,YAAY,EAAE,EAAE;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAwB,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;QAC7C,GAAG,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,GAAG,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/G,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,CAAC;IAElB,GAAG,CAAC,qBAAqB,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,0EAA0E,CAAC,CAAC;IAChF,GAAG,CAAC,wEAAwE,CAAC,CAAC;IAC9E,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,KAAK,CAAC,CAAC;IACX,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3B,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACpC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACjC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAC3D,GAAG,CAAC,SAAS,CAAC,CAAC;IACf,GAAG,CAAC,OAAO,CAAC,CAAC;IACb,GAAG,CAAC,KAAK,CAAC,CAAC;IACX,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,CAAC;AAED,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AAExE,SAAS,YAAY;IACnB,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AAExE,KAAK,UAAU,WAAW;IACxB,IAAI,WAAW,CAAC;IAEhB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,KAAK,EAAE,CAAC;QACV,WAAW,GAAG,eAAe,CAC3B,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,UAAU,CACjB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,aAAa,EAAE,CAAC;QAC9B,IAAI,oBAAoB,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0EAA0E;gBACxE,2CAA2C,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qGAAqG;IACrG,IAAI,iBAAiB,GAGV,IAAI,CAAC;IAChB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;oBAAC,iBAAiB,GAAG,IAAI,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACjD,iBAAiB,GAAG;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,WAAW,CAAC,aAAa,GAAG,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,iBAAiB,CAAC;QACjC,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCAAwC;YACtC,8DAA8D;YAC9D,+EAA+E,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAEhG,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,EACnD,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAC;IAEF,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,oBAAoB;IACpB,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC;YAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AAExE,SAAS,SAAS;IAChB,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAClF,GAAG,CAAC,QAAQ,CAAC,CAAC;IACd,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACjF,GAAG,CAAC,iFAAiF,CAAC,CAAC;IACvF,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACzE,GAAG,CAAC,wEAAwE,CAAC,CAAC;IAC9E,GAAG,CAAC,4DAA4D,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAE3C,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;IACvD,SAAS,EAAE,CAAC;AACd,CAAC;KAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;IAC3B,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;IAC5B,YAAY,EAAE,CAAC;AACjB,CAAC;KAAM,CAAC;IACN,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -6,6 +6,7 @@ export declare class DSersAuth {
6
6
  private expiresAt;
7
7
  private clientId;
8
8
  private oauthBase;
9
+ private _refreshPromise;
9
10
  constructor(config: DSersConfig);
10
11
  getSession(): Promise<[string, string]>;
11
12
  invalidate(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/dsers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,SAAS,CAAuB;gBAE5B,MAAM,EAAE,WAAW;IAezB,UAAU,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA+D7C,UAAU,IAAI,IAAI;CAInB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/dsers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,eAAe,CAA0C;gBAErD,MAAM,EAAE,WAAW;IAezB,UAAU,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgG7C,UAAU,IAAI,IAAI;CAQnB"}