sfcc-dev-mcp 1.0.21 → 1.0.22

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 (296) hide show
  1. package/README.md +79 -30
  2. package/dist/clients/agent-instructions-client.d.ts +3 -0
  3. package/dist/clients/agent-instructions-client.d.ts.map +1 -1
  4. package/dist/clients/agent-instructions-client.js +42 -10
  5. package/dist/clients/agent-instructions-client.js.map +1 -1
  6. package/dist/clients/base/abstract-documentation-client.d.ts +4 -0
  7. package/dist/clients/base/abstract-documentation-client.d.ts.map +1 -1
  8. package/dist/clients/base/abstract-documentation-client.js +9 -1
  9. package/dist/clients/base/abstract-documentation-client.js.map +1 -1
  10. package/dist/clients/base/http-client.d.ts +10 -3
  11. package/dist/clients/base/http-client.d.ts.map +1 -1
  12. package/dist/clients/base/http-client.js +94 -16
  13. package/dist/clients/base/http-client.js.map +1 -1
  14. package/dist/clients/base/oauth-token.d.ts +3 -0
  15. package/dist/clients/base/oauth-token.d.ts.map +1 -1
  16. package/dist/clients/base/oauth-token.js +23 -3
  17. package/dist/clients/base/oauth-token.js.map +1 -1
  18. package/dist/clients/base/ocapi-auth-client.d.ts.map +1 -1
  19. package/dist/clients/base/ocapi-auth-client.js +22 -2
  20. package/dist/clients/base/ocapi-auth-client.js.map +1 -1
  21. package/dist/clients/docs/class-name-resolver.d.ts +7 -4
  22. package/dist/clients/docs/class-name-resolver.d.ts.map +1 -1
  23. package/dist/clients/docs/class-name-resolver.js.map +1 -1
  24. package/dist/clients/docs/documentation-scanner.d.ts +2 -0
  25. package/dist/clients/docs/documentation-scanner.d.ts.map +1 -1
  26. package/dist/clients/docs/documentation-scanner.js +39 -17
  27. package/dist/clients/docs/documentation-scanner.js.map +1 -1
  28. package/dist/clients/docs-client.d.ts +4 -3
  29. package/dist/clients/docs-client.d.ts.map +1 -1
  30. package/dist/clients/docs-client.js.map +1 -1
  31. package/dist/clients/logs/log-client.d.ts +1 -0
  32. package/dist/clients/logs/log-client.d.ts.map +1 -1
  33. package/dist/clients/logs/log-client.js +13 -21
  34. package/dist/clients/logs/log-client.js.map +1 -1
  35. package/dist/clients/logs/log-file-discovery.d.ts +1 -0
  36. package/dist/clients/logs/log-file-discovery.d.ts.map +1 -1
  37. package/dist/clients/logs/log-file-discovery.js +19 -6
  38. package/dist/clients/logs/log-file-discovery.js.map +1 -1
  39. package/dist/clients/logs/log-file-reader.d.ts +2 -0
  40. package/dist/clients/logs/log-file-reader.d.ts.map +1 -1
  41. package/dist/clients/logs/log-file-reader.js +31 -8
  42. package/dist/clients/logs/log-file-reader.js.map +1 -1
  43. package/dist/clients/logs/log-formatter.d.ts +2 -2
  44. package/dist/clients/logs/log-formatter.d.ts.map +1 -1
  45. package/dist/clients/logs/log-formatter.js.map +1 -1
  46. package/dist/clients/logs/log-types.d.ts +4 -0
  47. package/dist/clients/logs/log-types.d.ts.map +1 -1
  48. package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -1
  49. package/dist/clients/logs/webdav-client-manager.js.map +1 -1
  50. package/dist/clients/ocapi/code-versions-client.d.ts +23 -4
  51. package/dist/clients/ocapi/code-versions-client.d.ts.map +1 -1
  52. package/dist/clients/ocapi/code-versions-client.js +2 -2
  53. package/dist/clients/ocapi/code-versions-client.js.map +1 -1
  54. package/dist/clients/ocapi/site-preferences-client.d.ts +2 -42
  55. package/dist/clients/ocapi/site-preferences-client.d.ts.map +1 -1
  56. package/dist/clients/ocapi/site-preferences-client.js.map +1 -1
  57. package/dist/clients/ocapi/system-objects-client.d.ts +7 -39
  58. package/dist/clients/ocapi/system-objects-client.d.ts.map +1 -1
  59. package/dist/clients/ocapi/system-objects-client.js.map +1 -1
  60. package/dist/clients/script-debugger/script-debugger-client.d.ts +9 -1
  61. package/dist/clients/script-debugger/script-debugger-client.d.ts.map +1 -1
  62. package/dist/clients/script-debugger/script-debugger-client.js +182 -127
  63. package/dist/clients/script-debugger/script-debugger-client.js.map +1 -1
  64. package/dist/clients/sfra-client.d.ts.map +1 -1
  65. package/dist/clients/sfra-client.js.map +1 -1
  66. package/dist/config/cli-options.d.ts +16 -0
  67. package/dist/config/cli-options.d.ts.map +1 -0
  68. package/dist/config/cli-options.js +56 -0
  69. package/dist/config/cli-options.js.map +1 -0
  70. package/dist/config/configuration-factory.d.ts.map +1 -1
  71. package/dist/config/configuration-factory.js +12 -6
  72. package/dist/config/configuration-factory.js.map +1 -1
  73. package/dist/config/credential-validation.d.ts +25 -0
  74. package/dist/config/credential-validation.d.ts.map +1 -0
  75. package/dist/config/credential-validation.js +42 -0
  76. package/dist/config/credential-validation.js.map +1 -0
  77. package/dist/config/dw-json-loader.d.ts.map +1 -1
  78. package/dist/config/dw-json-loader.js +19 -68
  79. package/dist/config/dw-json-loader.js.map +1 -1
  80. package/dist/config/path-security-policy.d.ts +6 -0
  81. package/dist/config/path-security-policy.d.ts.map +1 -0
  82. package/dist/config/path-security-policy.js +63 -0
  83. package/dist/config/path-security-policy.js.map +1 -0
  84. package/dist/config/workspace-roots.d.ts +1 -0
  85. package/dist/config/workspace-roots.d.ts.map +1 -1
  86. package/dist/config/workspace-roots.js +26 -77
  87. package/dist/config/workspace-roots.js.map +1 -1
  88. package/dist/core/handlers/abstract-client-handler.d.ts +23 -2
  89. package/dist/core/handlers/abstract-client-handler.d.ts.map +1 -1
  90. package/dist/core/handlers/abstract-client-handler.js +33 -3
  91. package/dist/core/handlers/abstract-client-handler.js.map +1 -1
  92. package/dist/core/handlers/agent-instructions-handler.d.ts +1 -1
  93. package/dist/core/handlers/agent-instructions-handler.d.ts.map +1 -1
  94. package/dist/core/handlers/agent-instructions-handler.js +2 -2
  95. package/dist/core/handlers/agent-instructions-handler.js.map +1 -1
  96. package/dist/core/handlers/base-handler.d.ts +14 -11
  97. package/dist/core/handlers/base-handler.d.ts.map +1 -1
  98. package/dist/core/handlers/base-handler.js +38 -22
  99. package/dist/core/handlers/base-handler.js.map +1 -1
  100. package/dist/core/handlers/cartridge-handler.d.ts +3 -8
  101. package/dist/core/handlers/cartridge-handler.d.ts.map +1 -1
  102. package/dist/core/handlers/cartridge-handler.js +10 -18
  103. package/dist/core/handlers/cartridge-handler.js.map +1 -1
  104. package/dist/core/handlers/code-version-handler.d.ts +3 -9
  105. package/dist/core/handlers/code-version-handler.d.ts.map +1 -1
  106. package/dist/core/handlers/code-version-handler.js +10 -21
  107. package/dist/core/handlers/code-version-handler.js.map +1 -1
  108. package/dist/core/handlers/job-log-handler.d.ts +3 -9
  109. package/dist/core/handlers/job-log-handler.d.ts.map +1 -1
  110. package/dist/core/handlers/job-log-handler.js +10 -21
  111. package/dist/core/handlers/job-log-handler.js.map +1 -1
  112. package/dist/core/handlers/lifecycle-utils.d.ts +5 -0
  113. package/dist/core/handlers/lifecycle-utils.d.ts.map +1 -0
  114. package/dist/core/handlers/lifecycle-utils.js +18 -0
  115. package/dist/core/handlers/lifecycle-utils.js.map +1 -0
  116. package/dist/core/handlers/log-handler.d.ts +3 -9
  117. package/dist/core/handlers/log-handler.d.ts.map +1 -1
  118. package/dist/core/handlers/log-handler.js +10 -21
  119. package/dist/core/handlers/log-handler.js.map +1 -1
  120. package/dist/core/handlers/script-debugger-handler.d.ts +3 -9
  121. package/dist/core/handlers/script-debugger-handler.d.ts.map +1 -1
  122. package/dist/core/handlers/script-debugger-handler.js +10 -21
  123. package/dist/core/handlers/script-debugger-handler.js.map +1 -1
  124. package/dist/core/handlers/simple-client-handler.d.ts +3 -3
  125. package/dist/core/handlers/simple-client-handler.d.ts.map +1 -1
  126. package/dist/core/handlers/simple-client-handler.js +5 -3
  127. package/dist/core/handlers/simple-client-handler.js.map +1 -1
  128. package/dist/core/handlers/system-object-handler.d.ts +3 -9
  129. package/dist/core/handlers/system-object-handler.d.ts.map +1 -1
  130. package/dist/core/handlers/system-object-handler.js +10 -21
  131. package/dist/core/handlers/system-object-handler.js.map +1 -1
  132. package/dist/core/handlers/validation-helpers.d.ts +5 -26
  133. package/dist/core/handlers/validation-helpers.d.ts.map +1 -1
  134. package/dist/core/handlers/validation-helpers.js +79 -81
  135. package/dist/core/handlers/validation-helpers.js.map +1 -1
  136. package/dist/core/instruction-advisor.d.ts +3 -0
  137. package/dist/core/instruction-advisor.d.ts.map +1 -1
  138. package/dist/core/instruction-advisor.js +25 -2
  139. package/dist/core/instruction-advisor.js.map +1 -1
  140. package/dist/core/server-tool-call-lifecycle.d.ts +38 -0
  141. package/dist/core/server-tool-call-lifecycle.d.ts.map +1 -0
  142. package/dist/core/server-tool-call-lifecycle.js +128 -0
  143. package/dist/core/server-tool-call-lifecycle.js.map +1 -0
  144. package/dist/core/server-tool-catalog.d.ts +19 -0
  145. package/dist/core/server-tool-catalog.d.ts.map +1 -0
  146. package/dist/core/server-tool-catalog.js +52 -0
  147. package/dist/core/server-tool-catalog.js.map +1 -0
  148. package/dist/core/server-workspace-discovery.d.ts +38 -0
  149. package/dist/core/server-workspace-discovery.d.ts.map +1 -0
  150. package/dist/core/server-workspace-discovery.js +68 -0
  151. package/dist/core/server-workspace-discovery.js.map +1 -0
  152. package/dist/core/server.d.ts +27 -3
  153. package/dist/core/server.d.ts.map +1 -1
  154. package/dist/core/server.js +247 -165
  155. package/dist/core/server.js.map +1 -1
  156. package/dist/core/tool-argument-validator.d.ts +24 -0
  157. package/dist/core/tool-argument-validator.d.ts.map +1 -0
  158. package/dist/core/tool-argument-validator.js +186 -0
  159. package/dist/core/tool-argument-validator.js.map +1 -0
  160. package/dist/core/tool-error-response.d.ts +21 -0
  161. package/dist/core/tool-error-response.d.ts.map +1 -0
  162. package/dist/core/tool-error-response.js +64 -0
  163. package/dist/core/tool-error-response.js.map +1 -0
  164. package/dist/core/tool-schemas/agent-instruction-tools.d.ts +4 -0
  165. package/dist/core/tool-schemas/agent-instruction-tools.d.ts.map +1 -1
  166. package/dist/core/tool-schemas/agent-instruction-tools.js +6 -2
  167. package/dist/core/tool-schemas/agent-instruction-tools.js.map +1 -1
  168. package/dist/core/tool-schemas/cartridge-tools.d.ts +3 -0
  169. package/dist/core/tool-schemas/cartridge-tools.d.ts.map +1 -1
  170. package/dist/core/tool-schemas/cartridge-tools.js +3 -0
  171. package/dist/core/tool-schemas/cartridge-tools.js.map +1 -1
  172. package/dist/core/tool-schemas/code-version-tools.d.ts +1 -0
  173. package/dist/core/tool-schemas/code-version-tools.d.ts.map +1 -1
  174. package/dist/core/tool-schemas/code-version-tools.js +1 -0
  175. package/dist/core/tool-schemas/code-version-tools.js.map +1 -1
  176. package/dist/core/tool-schemas/documentation-tools.d.ts +6 -0
  177. package/dist/core/tool-schemas/documentation-tools.d.ts.map +1 -1
  178. package/dist/core/tool-schemas/documentation-tools.js +6 -0
  179. package/dist/core/tool-schemas/documentation-tools.js.map +1 -1
  180. package/dist/core/tool-schemas/isml-tools.d.ts +3 -0
  181. package/dist/core/tool-schemas/isml-tools.d.ts.map +1 -1
  182. package/dist/core/tool-schemas/isml-tools.js +4 -1
  183. package/dist/core/tool-schemas/isml-tools.js.map +1 -1
  184. package/dist/core/tool-schemas/log-tools.d.ts +28 -0
  185. package/dist/core/tool-schemas/log-tools.d.ts.map +1 -1
  186. package/dist/core/tool-schemas/log-tools.js +21 -7
  187. package/dist/core/tool-schemas/log-tools.js.map +1 -1
  188. package/dist/core/tool-schemas/script-debugger-tools.d.ts +7 -0
  189. package/dist/core/tool-schemas/script-debugger-tools.d.ts.map +1 -1
  190. package/dist/core/tool-schemas/script-debugger-tools.js +9 -2
  191. package/dist/core/tool-schemas/script-debugger-tools.js.map +1 -1
  192. package/dist/core/tool-schemas/sfra-tools.d.ts +3 -0
  193. package/dist/core/tool-schemas/sfra-tools.d.ts.map +1 -1
  194. package/dist/core/tool-schemas/sfra-tools.js +3 -0
  195. package/dist/core/tool-schemas/sfra-tools.js.map +1 -1
  196. package/dist/core/tool-schemas/shared-schemas.d.ts +72 -4
  197. package/dist/core/tool-schemas/shared-schemas.d.ts.map +1 -1
  198. package/dist/core/tool-schemas/shared-schemas.js +29 -3
  199. package/dist/core/tool-schemas/shared-schemas.js.map +1 -1
  200. package/dist/core/tool-schemas/system-object-tools.d.ts +93 -4
  201. package/dist/core/tool-schemas/system-object-tools.d.ts.map +1 -1
  202. package/dist/core/tool-schemas/system-object-tools.js +13 -6
  203. package/dist/core/tool-schemas/system-object-tools.js.map +1 -1
  204. package/dist/docs/isml/isprint.md +1 -1
  205. package/dist/docs/isml/isredirect.md +1 -1
  206. package/dist/docs/isml/isremove.md +1 -1
  207. package/dist/docs/isml/isreplace.md +1 -1
  208. package/dist/docs/isml/isscript.md +1 -1
  209. package/dist/main.js +18 -33
  210. package/dist/main.js.map +1 -1
  211. package/dist/tool-configs/agent-instructions-tool-config.d.ts +1 -1
  212. package/dist/tool-configs/agent-instructions-tool-config.d.ts.map +1 -1
  213. package/dist/tool-configs/agent-instructions-tool-config.js +0 -33
  214. package/dist/tool-configs/agent-instructions-tool-config.js.map +1 -1
  215. package/dist/tool-configs/cartridge-tool-config.d.ts +1 -1
  216. package/dist/tool-configs/cartridge-tool-config.d.ts.map +1 -1
  217. package/dist/tool-configs/cartridge-tool-config.js +3 -5
  218. package/dist/tool-configs/cartridge-tool-config.js.map +1 -1
  219. package/dist/tool-configs/code-version-tool-config.d.ts +1 -1
  220. package/dist/tool-configs/code-version-tool-config.d.ts.map +1 -1
  221. package/dist/tool-configs/code-version-tool-config.js +0 -4
  222. package/dist/tool-configs/code-version-tool-config.js.map +1 -1
  223. package/dist/tool-configs/docs-tool-config.d.ts +1 -1
  224. package/dist/tool-configs/docs-tool-config.d.ts.map +1 -1
  225. package/dist/tool-configs/docs-tool-config.js +0 -13
  226. package/dist/tool-configs/docs-tool-config.js.map +1 -1
  227. package/dist/tool-configs/isml-tool-config.d.ts +1 -1
  228. package/dist/tool-configs/isml-tool-config.d.ts.map +1 -1
  229. package/dist/tool-configs/isml-tool-config.js +0 -10
  230. package/dist/tool-configs/isml-tool-config.js.map +1 -1
  231. package/dist/tool-configs/job-log-tool-config.d.ts +1 -1
  232. package/dist/tool-configs/job-log-tool-config.d.ts.map +1 -1
  233. package/dist/tool-configs/job-log-tool-config.js +1 -21
  234. package/dist/tool-configs/job-log-tool-config.js.map +1 -1
  235. package/dist/tool-configs/log-tool-config.d.ts +1 -1
  236. package/dist/tool-configs/log-tool-config.d.ts.map +1 -1
  237. package/dist/tool-configs/log-tool-config.js +6 -16
  238. package/dist/tool-configs/log-tool-config.js.map +1 -1
  239. package/dist/tool-configs/script-debugger-tool-config.d.ts +1 -1
  240. package/dist/tool-configs/script-debugger-tool-config.d.ts.map +1 -1
  241. package/dist/tool-configs/script-debugger-tool-config.js +0 -8
  242. package/dist/tool-configs/script-debugger-tool-config.js.map +1 -1
  243. package/dist/tool-configs/sfra-tool-config.d.ts +1 -1
  244. package/dist/tool-configs/sfra-tool-config.d.ts.map +1 -1
  245. package/dist/tool-configs/sfra-tool-config.js +0 -10
  246. package/dist/tool-configs/sfra-tool-config.js.map +1 -1
  247. package/dist/tool-configs/system-object-tool-config.d.ts +1 -1
  248. package/dist/tool-configs/system-object-tool-config.d.ts.map +1 -1
  249. package/dist/tool-configs/system-object-tool-config.js +14 -24
  250. package/dist/tool-configs/system-object-tool-config.js.map +1 -1
  251. package/dist/types/ocapi-search.d.ts +50 -0
  252. package/dist/types/ocapi-search.d.ts.map +1 -0
  253. package/dist/types/ocapi-search.js +7 -0
  254. package/dist/types/ocapi-search.js.map +1 -0
  255. package/dist/types/types.d.ts +4 -4
  256. package/dist/types/types.d.ts.map +1 -1
  257. package/dist/utils/abort-utils.d.ts +18 -0
  258. package/dist/utils/abort-utils.d.ts.map +1 -0
  259. package/dist/utils/abort-utils.js +60 -0
  260. package/dist/utils/abort-utils.js.map +1 -0
  261. package/dist/utils/cache.d.ts +7 -7
  262. package/dist/utils/cache.d.ts.map +1 -1
  263. package/dist/utils/cache.js.map +1 -1
  264. package/dist/utils/category-utils.d.ts +0 -10
  265. package/dist/utils/category-utils.d.ts.map +1 -1
  266. package/dist/utils/category-utils.js +0 -12
  267. package/dist/utils/category-utils.js.map +1 -1
  268. package/dist/utils/log-tool-constants.d.ts +3 -4
  269. package/dist/utils/log-tool-constants.d.ts.map +1 -1
  270. package/dist/utils/log-tool-constants.js +2 -13
  271. package/dist/utils/log-tool-constants.js.map +1 -1
  272. package/dist/utils/logger.d.ts +20 -7
  273. package/dist/utils/logger.d.ts.map +1 -1
  274. package/dist/utils/logger.js +72 -11
  275. package/dist/utils/logger.js.map +1 -1
  276. package/dist/utils/query-builder.d.ts +2 -5
  277. package/dist/utils/query-builder.d.ts.map +1 -1
  278. package/dist/utils/query-builder.js +1 -4
  279. package/dist/utils/query-builder.js.map +1 -1
  280. package/dist/utils/validator.d.ts +5 -3
  281. package/dist/utils/validator.d.ts.map +1 -1
  282. package/dist/utils/validator.js +20 -14
  283. package/dist/utils/validator.js.map +1 -1
  284. package/package.json +14 -7
  285. package/dist/clients/docs/index.d.ts +0 -10
  286. package/dist/clients/docs/index.d.ts.map +0 -1
  287. package/dist/clients/docs/index.js +0 -10
  288. package/dist/clients/docs/index.js.map +0 -1
  289. package/dist/constants/index.d.ts +0 -1
  290. package/dist/constants/index.d.ts.map +0 -1
  291. package/dist/constants/index.js +0 -3
  292. package/dist/constants/index.js.map +0 -1
  293. package/dist/utils/path-validation.d.ts +0 -40
  294. package/dist/utils/path-validation.d.ts.map +0 -1
  295. package/dist/utils/path-validation.js +0 -84
  296. package/dist/utils/path-validation.js.map +0 -1
@@ -19,15 +19,26 @@
19
19
  * To find your log directory, use `Logger.getInstance().getLogDirectory()` or check
20
20
  * the debug logs which show the directory path during initialization.
21
21
  */
22
- import { appendFileSync, existsSync, mkdirSync } from 'fs';
22
+ import { appendFileSync, existsSync, mkdirSync, promises as fs } from 'fs';
23
23
  import { join } from 'path';
24
24
  import { tmpdir } from 'os';
25
+ import { inspect } from 'util';
25
26
  export class Logger {
26
27
  context;
27
28
  enableTimestamp;
28
29
  debugEnabled;
29
30
  logDir;
31
+ writeQueue = Promise.resolve();
32
+ pendingWriteCount = 0;
33
+ droppedLogCount = 0;
34
+ useSyncWrites;
30
35
  static instance = null;
36
+ static MAX_PENDING_WRITES = 5000;
37
+ static DROP_NOTICE_INTERVAL = 100;
38
+ static shouldUseSyncWrites(customLogDir) {
39
+ // Synchronous writes are only needed for deterministic unit tests.
40
+ return customLogDir !== undefined && process.env.NODE_ENV === 'test';
41
+ }
31
42
  /**
32
43
  * Create a new Logger instance
33
44
  * @param context The context/component name for this logger
@@ -41,6 +52,8 @@ export class Logger {
41
52
  this.debugEnabled = debugEnabled;
42
53
  // Set up log directory - use custom directory for testing or default for production
43
54
  this.logDir = customLogDir ?? join(tmpdir(), 'sfcc-mcp-logs');
55
+ // Only tests should force sync writes; runtime must stay non-blocking.
56
+ this.useSyncWrites = Logger.shouldUseSyncWrites(customLogDir);
44
57
  if (!existsSync(this.logDir)) {
45
58
  mkdirSync(this.logDir, { recursive: true });
46
59
  }
@@ -114,22 +127,64 @@ export class Logger {
114
127
  * Write log message to appropriate log file
115
128
  */
116
129
  writeLog(level, message, ...args) {
130
+ if (!this.useSyncWrites && this.pendingWriteCount >= Logger.MAX_PENDING_WRITES) {
131
+ this.droppedLogCount++;
132
+ // Avoid stderr spam while still surfacing sustained backpressure.
133
+ if (this.droppedLogCount % Logger.DROP_NOTICE_INTERVAL === 0) {
134
+ process.stderr.write(`[LOGGER WARN] Dropped ${this.droppedLogCount} log entries due to write backpressure\n`);
135
+ }
136
+ return;
137
+ }
117
138
  const formattedMessage = this.formatMessage(message);
118
- const rawFullMessage = args.length > 0 ? `${formattedMessage} ${args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)).join(' ')}` : formattedMessage;
139
+ const serializedArgs = args.map(arg => this.serializeArg(arg)).join(' ');
140
+ const rawFullMessage = serializedArgs.length > 0
141
+ ? `${formattedMessage} ${serializedArgs}`
142
+ : formattedMessage;
119
143
  // Apply sensitive data masking before writing to log
120
144
  const fullMessage = this.maskSensitiveData(rawFullMessage);
121
145
  // Always write to log files
122
146
  const logFile = join(this.logDir, `sfcc-mcp-${level}.log`);
123
147
  const logEntry = `${fullMessage}\n`;
148
+ if (this.useSyncWrites) {
149
+ try {
150
+ appendFileSync(logFile, logEntry, 'utf8');
151
+ }
152
+ catch (error) {
153
+ this.handleWriteFailure(level, logEntry, error);
154
+ }
155
+ return;
156
+ }
157
+ this.pendingWriteCount++;
158
+ this.writeQueue = this.writeQueue
159
+ .then(async () => {
160
+ await fs.appendFile(logFile, logEntry, 'utf8');
161
+ })
162
+ .catch((error) => {
163
+ this.handleWriteFailure(level, logEntry, error);
164
+ })
165
+ .finally(() => {
166
+ this.pendingWriteCount = Math.max(0, this.pendingWriteCount - 1);
167
+ });
168
+ }
169
+ serializeArg(value, pretty = true) {
170
+ if (typeof value === 'string') {
171
+ return value;
172
+ }
173
+ if (typeof value !== 'object' || value === null) {
174
+ return String(value);
175
+ }
124
176
  try {
125
- appendFileSync(logFile, logEntry, 'utf8');
177
+ return pretty ? JSON.stringify(value, null, 2) : JSON.stringify(value);
126
178
  }
127
- catch (error) {
128
- // Fallback: if file logging fails, try stderr for critical errors only
129
- if (level === 'error') {
130
- process.stderr.write(`[LOGGER ERROR] Could not write to log file: ${error}\n`);
131
- process.stderr.write(`${logEntry}`);
132
- }
179
+ catch {
180
+ return inspect(value, { depth: 4, breakLength: 120 });
181
+ }
182
+ }
183
+ handleWriteFailure(level, logEntry, error) {
184
+ // Fallback: if file logging fails, try stderr for critical errors only
185
+ if (level === 'error') {
186
+ process.stderr.write(`[LOGGER ERROR] Could not write to log file: ${String(error)}\n`);
187
+ process.stderr.write(logEntry);
133
188
  }
134
189
  }
135
190
  /**
@@ -181,7 +236,7 @@ export class Logger {
181
236
  */
182
237
  methodEntry(methodName, params) {
183
238
  if (this.debugEnabled) {
184
- const paramStr = params ? ` with params: ${JSON.stringify(params)}` : '';
239
+ const paramStr = params ? ` with params: ${this.serializeArg(params, false)}` : '';
185
240
  this.debug(`Entering method: ${methodName}${paramStr}`);
186
241
  }
187
242
  }
@@ -192,7 +247,7 @@ export class Logger {
192
247
  */
193
248
  methodExit(methodName, result) {
194
249
  if (this.debugEnabled) {
195
- const resultStr = result !== undefined ? ` with result: ${typeof result === 'object' ? JSON.stringify(result) : result}` : '';
250
+ const resultStr = result !== undefined ? ` with result: ${this.serializeArg(result, false)}` : '';
196
251
  this.debug(`Exiting method: ${methodName}${resultStr}`);
197
252
  }
198
253
  }
@@ -222,6 +277,12 @@ export class Logger {
222
277
  setDebugEnabled(enabled) {
223
278
  this.debugEnabled = enabled;
224
279
  }
280
+ /**
281
+ * Wait for pending asynchronous log writes to complete.
282
+ */
283
+ async flush() {
284
+ await this.writeQueue;
285
+ }
225
286
  /**
226
287
  * Get the current log directory
227
288
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,6 @@
4
4
  * This module provides utilities for building query strings and handling URL parameters
5
5
  * for SFCC API requests with proper encoding and array handling.
6
6
  */
7
- /**
8
- * Query parameter builder for SFCC APIs
9
- */
10
7
  export declare class QueryBuilder {
11
8
  private params;
12
9
  constructor();
@@ -21,7 +18,7 @@ export declare class QueryBuilder {
21
18
  /**
22
19
  * Add multiple parameters from an object
23
20
  */
24
- addFromObject(params: Record<string, any>): QueryBuilder;
21
+ addFromObject<T extends object>(params: T): QueryBuilder;
25
22
  /**
26
23
  * Build the final query string
27
24
  */
@@ -33,6 +30,6 @@ export declare class QueryBuilder {
33
30
  /**
34
31
  * Static method to build query string from object
35
32
  */
36
- static fromObject(params: Record<string, any>): string;
33
+ static fromObject<T extends object>(params: T): string;
37
34
  }
38
35
  //# sourceMappingURL=query-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/utils/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;;IAMhC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY;IAOhE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,YAAY;IAgBhE;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY;IAaxD;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,KAAK,IAAI,YAAY;IAKrB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;CAGvD"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/utils/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;;IAMhC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY;IAOhE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,YAAY;IAgBhE;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY;IAaxD;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,KAAK,IAAI,YAAY;IAKrB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM;CAGvD"}
@@ -4,9 +4,6 @@
4
4
  * This module provides utilities for building query strings and handling URL parameters
5
5
  * for SFCC API requests with proper encoding and array handling.
6
6
  */
7
- /**
8
- * Query parameter builder for SFCC APIs
9
- */
10
7
  export class QueryBuilder {
11
8
  params;
12
9
  constructor() {
@@ -47,7 +44,7 @@ export class QueryBuilder {
47
44
  if (Array.isArray(value)) {
48
45
  this.addArray(key, value);
49
46
  }
50
- else {
47
+ else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
51
48
  this.add(key, value);
52
49
  }
53
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/utils/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAkB;IAEhC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW,EAAE,KAAgC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,MAA2B;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,kEAAkE;YAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAA2B;QACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAA2B;QAC3C,OAAO,IAAI,YAAY,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;CACF"}
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/utils/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,OAAO,YAAY;IACf,MAAM,CAAkB;IAEhC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW,EAAE,KAAgC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,MAA2B;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,kEAAkE;YAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAmB,MAAS;QACvC,MAAM,CAAC,OAAO,CAAC,MAAyC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACjF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAmB,MAAS;QAC3C,OAAO,IAAI,YAAY,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;CACF"}
@@ -8,7 +8,9 @@
8
8
  * Custom validation error class
9
9
  */
10
10
  export declare class ValidationError extends Error {
11
- constructor(message: string);
11
+ readonly code: string;
12
+ readonly details?: unknown | undefined;
13
+ constructor(message: string, code?: string, details?: unknown | undefined);
12
14
  }
13
15
  /**
14
16
  * Valid instance types for SFCC site preferences
@@ -22,7 +24,7 @@ export declare class Validator {
22
24
  /**
23
25
  * Validate that required fields are present and not empty
24
26
  */
25
- static validateRequired(params: Record<string, any>, requiredFields: string[]): void;
27
+ static validateRequired(params: Record<string, unknown>, requiredFields: string[]): void;
26
28
  /**
27
29
  * Validate instance type for site preferences
28
30
  */
@@ -42,7 +44,7 @@ export declare class Validator {
42
44
  /**
43
45
  * Validate search request structure
44
46
  */
45
- static validateSearchRequest(searchRequest: any): void;
47
+ static validateSearchRequest(searchRequest: unknown): void;
46
48
  }
47
49
  export {};
48
50
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,QAAA,MAAM,oBAAoB,8DAA+D,CAAC;AAC1F,MAAM,MAAM,YAAY,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAE/D;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAepF;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY;IAS/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrE;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWnD;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI;CAqEvD"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,OAAO;gBAFjC,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,MAA2B,EACjC,OAAO,CAAC,EAAE,OAAO,YAAA;CAKpC;AAED;;GAEG;AACH,QAAA,MAAM,oBAAoB,8DAA+D,CAAC;AAC1F,MAAM,MAAM,YAAY,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAE/D;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAexF;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY;IAS/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrE;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWnD;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;CAwE3D"}
@@ -8,8 +8,12 @@
8
8
  * Custom validation error class
9
9
  */
10
10
  export class ValidationError extends Error {
11
- constructor(message) {
11
+ code;
12
+ details;
13
+ constructor(message, code = 'VALIDATION_ERROR', details) {
12
14
  super(message);
15
+ this.code = code;
16
+ this.details = details;
13
17
  this.name = 'ValidationError';
14
18
  }
15
19
  }
@@ -78,9 +82,10 @@ export class Validator {
78
82
  if (!searchRequest || typeof searchRequest !== 'object') {
79
83
  throw new ValidationError('Search request must be a valid object');
80
84
  }
85
+ const request = searchRequest;
81
86
  // Validate query structure if present
82
- if (searchRequest.query) {
83
- const query = searchRequest.query;
87
+ if (request.query && typeof request.query === 'object') {
88
+ const query = request.query;
84
89
  // Check that at least one query type is specified
85
90
  const queryTypes = ['text_query', 'term_query', 'filtered_query', 'bool_query', 'match_all_query'];
86
91
  const hasValidQuery = queryTypes.some(type => query[type]);
@@ -88,7 +93,7 @@ export class Validator {
88
93
  throw new ValidationError(`Search query must contain at least one of: ${queryTypes.join(', ')}`);
89
94
  }
90
95
  // Validate text_query structure
91
- if (query.text_query) {
96
+ if (query.text_query && typeof query.text_query === 'object') {
92
97
  const textQuery = query.text_query;
93
98
  if (!textQuery.fields || !Array.isArray(textQuery.fields) || textQuery.fields.length === 0) {
94
99
  throw new ValidationError('text_query.fields must be a non-empty array');
@@ -98,7 +103,7 @@ export class Validator {
98
103
  }
99
104
  }
100
105
  // Validate term_query structure
101
- if (query.term_query) {
106
+ if (query.term_query && typeof query.term_query === 'object') {
102
107
  const termQuery = query.term_query;
103
108
  if (!termQuery.fields || !Array.isArray(termQuery.fields) || termQuery.fields.length === 0) {
104
109
  throw new ValidationError('term_query.fields must be a non-empty array');
@@ -112,25 +117,26 @@ export class Validator {
112
117
  }
113
118
  }
114
119
  // Validate sorts structure if present
115
- if (searchRequest.sorts) {
116
- if (!Array.isArray(searchRequest.sorts)) {
120
+ if (request.sorts !== undefined) {
121
+ if (!Array.isArray(request.sorts)) {
117
122
  throw new ValidationError('sorts must be an array');
118
123
  }
119
- searchRequest.sorts.forEach((sort, index) => {
120
- if (!sort.field || typeof sort.field !== 'string') {
124
+ request.sorts.forEach((sort, index) => {
125
+ const sortObject = sort;
126
+ if (!sortObject.field || typeof sortObject.field !== 'string') {
121
127
  throw new ValidationError(`sorts[${index}].field must be a non-empty string`);
122
128
  }
123
- if (sort.sort_order && !['asc', 'desc'].includes(sort.sort_order)) {
129
+ if (sortObject.sort_order && (sortObject.sort_order !== 'asc' && sortObject.sort_order !== 'desc')) {
124
130
  throw new ValidationError(`sorts[${index}].sort_order must be either 'asc' or 'desc'`);
125
131
  }
126
132
  });
127
133
  }
128
134
  // Validate pagination parameters
129
- if (searchRequest.start !== undefined) {
130
- Validator.validatePositiveNumber(searchRequest.start, 'start');
135
+ if (typeof request.start === 'number') {
136
+ Validator.validatePositiveNumber(request.start, 'start');
131
137
  }
132
- if (searchRequest.count !== undefined) {
133
- Validator.validatePositiveNumber(searchRequest.count, 'count');
138
+ if (typeof request.count === 'number') {
139
+ Validator.validatePositiveNumber(request.count, 'count');
134
140
  }
135
141
  }
136
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfcc-dev-mcp",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "MCP server for Salesforce B2C Commerce Cloud development assistance including logs, debugging, and development tools",
5
5
  "mcpName": "io.github.taurgis/sfcc-dev-mcp",
6
6
  "main": "dist/index.js",
@@ -35,18 +35,22 @@
35
35
  "docs:build": "npm --prefix docs-site-v2 run build",
36
36
  "docs:preview": "npm --prefix docs-site-v2 run preview",
37
37
  "test": "npm run test:all",
38
+ "test:unit": "jest",
38
39
  "test:watch": "jest --watch",
39
40
  "test:coverage": "jest --coverage",
40
41
  "test:mcp:yaml": "aegis 'tests/mcp/yaml/*.docs-only.test.mcp.yml' --config './aegis.config.docs-only.json'",
41
42
  "test:mcp:yaml:full": "aegis 'tests/mcp/yaml/*.full-mode.test.mcp.yml' --config './aegis.config.with-dw.json'",
42
43
  "test:mcp:node": "node --test tests/mcp/node/*.programmatic.test.js",
43
- "test:mcp:all": "npm run test:mcp:yaml && npm run test:mcp:yaml:full && npm run test:mcp:node",
44
+ "test:mcp:all": "npm run test:mcp:yaml & p1=$!; npm run test:mcp:yaml:full & p2=$!; wait $p1; s1=$?; wait $p2; s2=$?; [ $s1 -eq 0 ] && [ $s2 -eq 0 ] && npm run test:mcp:node",
44
45
  "test:mcp:ci": "npm run test:mcp:yaml -- --json && npm run test:mcp:yaml:full -- --json && npm run test:mcp:node",
45
- "test:all": "jest && npm run test:mock-server:setup && npm run test:mcp:all",
46
+ "test:mcp:published-npx": "bash ./scripts/test-published-npx.sh",
47
+ "test:all": "npm run test:unit & p1=$!; npm run test:mock-server:setup & p2=$!; wait $p1; s1=$?; wait $p2; s2=$?; [ $s1 -eq 0 ] && [ $s2 -eq 0 ] && npm run test:mcp:all",
46
48
  "test:mock-server:setup": "cd tests/servers/sfcc-mock-server && npm install && npm run setup",
47
49
  "test:mock-server:start": "cd tests/servers/sfcc-mock-server && npm start",
48
50
  "test:mock-server": "jest --testPathPatterns=sfcc-mock-server",
49
51
  "validate:server-json": "node scripts/validate-server-json.js",
52
+ "validate:tools-sync": "node scripts/validate-tools-sync.js",
53
+ "validate:skills-sync": "node scripts/validate-skills-sync.js",
50
54
  "lint": "eslint .",
51
55
  "lint:fix": "eslint . --fix",
52
56
  "lint:check": "eslint . --max-warnings 0",
@@ -74,20 +78,23 @@
74
78
  "@modelcontextprotocol/sdk": "1.26.0",
75
79
  "webdav": "5.9.0"
76
80
  },
81
+ "overrides": {
82
+ "minimatch": "10.2.2"
83
+ },
77
84
  "devDependencies": {
78
- "@eslint/js": "9.39.2",
85
+ "@eslint/js": "10.0.1",
79
86
  "@types/eslint": "9.6.1",
80
87
  "@types/jest": "30.0.0",
81
- "@types/node": "25.0.3",
88
+ "@types/node": "25.3.0",
82
89
  "ajv": "8.18.0",
83
90
  "ajv-formats": "3.0.1",
84
- "eslint": "9.39.2",
91
+ "eslint": "10.0.2",
85
92
  "husky": "9.1.7",
86
93
  "jest": "30.2.0",
87
94
  "mcp-aegis": "1.0.18",
88
95
  "ts-jest": "29.4.6",
89
96
  "tsx": "4.21.0",
90
97
  "typescript": "5.9.3",
91
- "typescript-eslint": "8.52.0"
98
+ "typescript-eslint": "8.56.1"
92
99
  }
93
100
  }
@@ -1,10 +0,0 @@
1
- /**
2
- * Documentation Module Exports
3
- *
4
- * Exports for the refactored documentation client modules
5
- */
6
- export { DocumentationScanner, SFCCClassInfo } from './documentation-scanner.js';
7
- export { ClassContentParser, SFCCClassDetails, SFCCMethod, SFCCProperty, SFCCConstant, } from './class-content-parser.js';
8
- export { ClassNameResolver } from './class-name-resolver.js';
9
- export { ReferencedTypesExtractor } from './referenced-types-extractor.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Documentation Module Exports
3
- *
4
- * Exports for the refactored documentation client modules
5
- */
6
- export { DocumentationScanner } from './documentation-scanner.js';
7
- export { ClassContentParser, } from './class-content-parser.js';
8
- export { ClassNameResolver } from './class-name-resolver.js';
9
- export { ReferencedTypesExtractor } from './referenced-types-extractor.js';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAiB,MAAM,4BAA4B,CAAC;AACjF,OAAO,EACL,kBAAkB,GAKnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // Constants module currently has no re-exports; reserved for future shared constants.
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA,sFAAsF"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Path Validation Utilities
3
- *
4
- * Provides secure path validation for file operations.
5
- * Prevents path traversal attacks and validates file names.
6
- */
7
- export interface PathValidationOptions {
8
- /** Allowed file extensions (e.g., ['.md', '.json']) */
9
- allowedExtensions?: string[];
10
- /** Whether to normalize the name to lowercase */
11
- normalizeToLowerCase?: boolean;
12
- }
13
- export declare class PathValidationError extends Error {
14
- readonly code: string;
15
- constructor(message: string, code?: string);
16
- }
17
- /**
18
- * Validate a file/document name for security issues
19
- * @param name - The name to validate
20
- * @param fieldName - Human-readable field name for error messages
21
- * @throws PathValidationError if validation fails
22
- */
23
- export declare function validateFileName(name: string, fieldName?: string): void;
24
- /**
25
- * Construct and validate a file path within a base directory
26
- * @param basePath - The base directory path
27
- * @param fileName - The file name (without extension)
28
- * @param options - Validation options
29
- * @returns The validated, resolved file path
30
- * @throws PathValidationError if validation fails
31
- */
32
- export declare function constructValidatedPath(basePath: string, fileName: string, options?: PathValidationOptions): string;
33
- /**
34
- * Validate binary content
35
- * @param content - The content to validate
36
- * @param fieldName - Human-readable field name for error messages
37
- * @throws PathValidationError if content appears to be binary
38
- */
39
- export declare function validateTextContent(content: string, fieldName?: string): void;
40
- //# sourceMappingURL=path-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-validation.d.ts","sourceRoot":"","sources":["../../src/utils/path-validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aACC,IAAI,EAAE,MAAM;gBAA7C,OAAO,EAAE,MAAM,EAAkB,IAAI,GAAE,MAAgC;CAIpF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,IAAI,CAmB/E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAkCR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,IAAI,CAQxF"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Path Validation Utilities
3
- *
4
- * Provides secure path validation for file operations.
5
- * Prevents path traversal attacks and validates file names.
6
- */
7
- import * as path from 'path';
8
- export class PathValidationError extends Error {
9
- code;
10
- constructor(message, code = 'PATH_VALIDATION_ERROR') {
11
- super(message);
12
- this.code = code;
13
- this.name = 'PathValidationError';
14
- }
15
- }
16
- /**
17
- * Validate a file/document name for security issues
18
- * @param name - The name to validate
19
- * @param fieldName - Human-readable field name for error messages
20
- * @throws PathValidationError if validation fails
21
- */
22
- export function validateFileName(name, fieldName = 'name') {
23
- if (!name || typeof name !== 'string') {
24
- throw new PathValidationError(`Invalid ${fieldName}: must be a non-empty string`, 'INVALID_TYPE');
25
- }
26
- // Prevent null bytes
27
- if (name.includes('\0') || name.includes('\x00')) {
28
- throw new PathValidationError(`Invalid ${fieldName}: contains null bytes`, 'NULL_BYTES');
29
- }
30
- // Prevent path traversal sequences
31
- if (name.includes('..') || name.includes('/') || name.includes('\\')) {
32
- throw new PathValidationError(`Invalid ${fieldName}: contains path traversal sequences`, 'PATH_TRAVERSAL');
33
- }
34
- // Only allow safe characters
35
- if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
36
- throw new PathValidationError(`Invalid ${fieldName}: contains invalid characters`, 'INVALID_CHARACTERS');
37
- }
38
- }
39
- /**
40
- * Construct and validate a file path within a base directory
41
- * @param basePath - The base directory path
42
- * @param fileName - The file name (without extension)
43
- * @param options - Validation options
44
- * @returns The validated, resolved file path
45
- * @throws PathValidationError if validation fails
46
- */
47
- export function constructValidatedPath(basePath, fileName, options = {}) {
48
- const { allowedExtensions = ['.md'], normalizeToLowerCase = true } = options;
49
- // Validate the file name first
50
- validateFileName(fileName, 'file name');
51
- // Normalize if requested
52
- const normalizedName = normalizeToLowerCase ? fileName.toLowerCase() : fileName;
53
- // Determine extension (use first allowed extension by default)
54
- const extension = allowedExtensions[0] ?? '.md';
55
- // Construct the path
56
- const filePath = path.join(basePath, `${normalizedName}${extension}`);
57
- const resolvedPath = path.resolve(filePath);
58
- const resolvedBasePath = path.resolve(basePath);
59
- // Ensure the path is within the base directory
60
- if (!resolvedPath.startsWith(resolvedBasePath)) {
61
- throw new PathValidationError('Invalid file name: path outside allowed directory', 'OUTSIDE_BASE_DIR');
62
- }
63
- // Ensure the file has the correct extension
64
- const hasValidExtension = allowedExtensions.some(ext => resolvedPath.toLowerCase().endsWith(ext.toLowerCase()));
65
- if (!hasValidExtension) {
66
- throw new PathValidationError(`Invalid file name: must reference a ${allowedExtensions.join(' or ')} file`, 'INVALID_EXTENSION');
67
- }
68
- return resolvedPath;
69
- }
70
- /**
71
- * Validate binary content
72
- * @param content - The content to validate
73
- * @param fieldName - Human-readable field name for error messages
74
- * @throws PathValidationError if content appears to be binary
75
- */
76
- export function validateTextContent(content, fieldName = 'content') {
77
- if (!content.trim()) {
78
- throw new PathValidationError(`Empty ${fieldName}`, 'EMPTY_CONTENT');
79
- }
80
- if (content.includes('\0')) {
81
- throw new PathValidationError(`Invalid ${fieldName}: contains binary data`, 'BINARY_CONTENT');
82
- }
83
- }
84
- //# sourceMappingURL=path-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-validation.js","sourceRoot":"","sources":["../../src/utils/path-validation.ts"],"names":[],"mappings":"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"}