@vendure/mcp-plugin 3.8.0-minor-bootstrap.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 (389) hide show
  1. package/lib/api/api-extensions.d.ts +2 -0
  2. package/lib/api/api-extensions.js +239 -0
  3. package/lib/api/api-extensions.js.map +1 -0
  4. package/lib/api/mcp-actor.service.d.ts +19 -0
  5. package/lib/api/mcp-actor.service.js +52 -0
  6. package/lib/api/mcp-actor.service.js.map +1 -0
  7. package/lib/api/mcp-admin.resolver.d.ts +105 -0
  8. package/lib/api/mcp-admin.resolver.js +463 -0
  9. package/lib/api/mcp-admin.resolver.js.map +1 -0
  10. package/lib/api/mcp-shop.resolver.d.ts +25 -0
  11. package/lib/api/mcp-shop.resolver.js +74 -0
  12. package/lib/api/mcp-shop.resolver.js.map +1 -0
  13. package/lib/check-options.d.ts +7 -0
  14. package/lib/check-options.js +130 -0
  15. package/lib/check-options.js.map +1 -0
  16. package/lib/constants.d.ts +48 -0
  17. package/lib/constants.js +72 -0
  18. package/lib/constants.js.map +1 -0
  19. package/lib/delete-in-batches.d.ts +5 -0
  20. package/lib/delete-in-batches.js +28 -0
  21. package/lib/delete-in-batches.js.map +1 -0
  22. package/lib/entities/index.d.ts +5 -0
  23. package/lib/entities/index.js +22 -0
  24. package/lib/entities/index.js.map +1 -0
  25. package/lib/entities/mcp-authorization-code.entity.d.ts +33 -0
  26. package/lib/entities/mcp-authorization-code.entity.js +77 -0
  27. package/lib/entities/mcp-authorization-code.entity.js.map +1 -0
  28. package/lib/entities/mcp-authorization-request.entity.d.ts +31 -0
  29. package/lib/entities/mcp-authorization-request.entity.js +73 -0
  30. package/lib/entities/mcp-authorization-request.entity.js.map +1 -0
  31. package/lib/entities/mcp-oauth-client.entity.d.ts +56 -0
  32. package/lib/entities/mcp-oauth-client.entity.js +70 -0
  33. package/lib/entities/mcp-oauth-client.entity.js.map +1 -0
  34. package/lib/entities/mcp-oauth-grant.entity.d.ts +77 -0
  35. package/lib/entities/mcp-oauth-grant.entity.js +121 -0
  36. package/lib/entities/mcp-oauth-grant.entity.js.map +1 -0
  37. package/lib/entities/mcp-tool-call-log.entity.d.ts +50 -0
  38. package/lib/entities/mcp-tool-call-log.entity.js +101 -0
  39. package/lib/entities/mcp-tool-call-log.entity.js.map +1 -0
  40. package/lib/events/mcp-tool-call.event.d.ts +17 -0
  41. package/lib/events/mcp-tool-call.event.js +23 -0
  42. package/lib/events/mcp-tool-call.event.js.map +1 -0
  43. package/lib/get-client-ip.d.ts +2 -0
  44. package/lib/get-client-ip.js +10 -0
  45. package/lib/get-client-ip.js.map +1 -0
  46. package/lib/get-language-code.d.ts +3 -0
  47. package/lib/get-language-code.js +12 -0
  48. package/lib/get-language-code.js.map +1 -0
  49. package/lib/index.d.ts +6 -0
  50. package/lib/index.js +26 -0
  51. package/lib/index.js.map +1 -0
  52. package/lib/internal-types.d.ts +27 -0
  53. package/lib/internal-types.js +3 -0
  54. package/lib/internal-types.js.map +1 -0
  55. package/lib/logging/mcp-tool-call-log-retention.service.d.ts +8 -0
  56. package/lib/logging/mcp-tool-call-log-retention.service.js +54 -0
  57. package/lib/logging/mcp-tool-call-log-retention.service.js.map +1 -0
  58. package/lib/logging/mcp-tool-call-log.service.d.ts +24 -0
  59. package/lib/logging/mcp-tool-call-log.service.js +128 -0
  60. package/lib/logging/mcp-tool-call-log.service.js.map +1 -0
  61. package/lib/oauth/cimd/cimd-client-resolver.service.d.ts +18 -0
  62. package/lib/oauth/cimd/cimd-client-resolver.service.js +109 -0
  63. package/lib/oauth/cimd/cimd-client-resolver.service.js.map +1 -0
  64. package/lib/oauth/cimd/cimd-document.d.ts +11 -0
  65. package/lib/oauth/cimd/cimd-document.js +66 -0
  66. package/lib/oauth/cimd/cimd-document.js.map +1 -0
  67. package/lib/oauth/cimd/cimd-fetch.d.ts +14 -0
  68. package/lib/oauth/cimd/cimd-fetch.js +192 -0
  69. package/lib/oauth/cimd/cimd-fetch.js.map +1 -0
  70. package/lib/oauth/cimd/cimd-url.d.ts +5 -0
  71. package/lib/oauth/cimd/cimd-url.js +94 -0
  72. package/lib/oauth/cimd/cimd-url.js.map +1 -0
  73. package/lib/oauth/grant-session.service.d.ts +19 -0
  74. package/lib/oauth/grant-session.service.js +141 -0
  75. package/lib/oauth/grant-session.service.js.map +1 -0
  76. package/lib/oauth/oauth-error.d.ts +18 -0
  77. package/lib/oauth/oauth-error.js +60 -0
  78. package/lib/oauth/oauth-error.js.map +1 -0
  79. package/lib/oauth/oauth-metadata.service.d.ts +34 -0
  80. package/lib/oauth/oauth-metadata.service.js +107 -0
  81. package/lib/oauth/oauth-metadata.service.js.map +1 -0
  82. package/lib/oauth/oauth-retention.service.d.ts +23 -0
  83. package/lib/oauth/oauth-retention.service.js +103 -0
  84. package/lib/oauth/oauth-retention.service.js.map +1 -0
  85. package/lib/oauth/oauth-types.d.ts +61 -0
  86. package/lib/oauth/oauth-types.js +32 -0
  87. package/lib/oauth/oauth-types.js.map +1 -0
  88. package/lib/oauth/oauth-utils.d.ts +20 -0
  89. package/lib/oauth/oauth-utils.js +111 -0
  90. package/lib/oauth/oauth-utils.js.map +1 -0
  91. package/lib/oauth/oauth.controller.d.ts +31 -0
  92. package/lib/oauth/oauth.controller.js +132 -0
  93. package/lib/oauth/oauth.controller.js.map +1 -0
  94. package/lib/oauth/oauth.service.d.ts +69 -0
  95. package/lib/oauth/oauth.service.js +650 -0
  96. package/lib/oauth/oauth.service.js.map +1 -0
  97. package/lib/oauth/token-hash.d.ts +6 -0
  98. package/lib/oauth/token-hash.js +21 -0
  99. package/lib/oauth/token-hash.js.map +1 -0
  100. package/lib/plugin.d.ts +54 -0
  101. package/lib/plugin.js +171 -0
  102. package/lib/plugin.js.map +1 -0
  103. package/lib/rate-limit/ip-bucket-key.d.ts +1 -0
  104. package/lib/rate-limit/ip-bucket-key.js +35 -0
  105. package/lib/rate-limit/ip-bucket-key.js.map +1 -0
  106. package/lib/rate-limit/mcp-oauth-rate-limit.guard.d.ts +20 -0
  107. package/lib/rate-limit/mcp-oauth-rate-limit.guard.js +63 -0
  108. package/lib/rate-limit/mcp-oauth-rate-limit.guard.js.map +1 -0
  109. package/lib/rate-limit/mcp-rate-limiter.service.d.ts +47 -0
  110. package/lib/rate-limit/mcp-rate-limiter.service.js +248 -0
  111. package/lib/rate-limit/mcp-rate-limiter.service.js.map +1 -0
  112. package/lib/registry/bm25.d.ts +12 -0
  113. package/lib/registry/bm25.js +60 -0
  114. package/lib/registry/bm25.js.map +1 -0
  115. package/lib/registry/mcp-tool-execution.service.d.ts +45 -0
  116. package/lib/registry/mcp-tool-execution.service.js +72 -0
  117. package/lib/registry/mcp-tool-execution.service.js.map +1 -0
  118. package/lib/registry/mcp-tool-registry.service.d.ts +89 -0
  119. package/lib/registry/mcp-tool-registry.service.js +668 -0
  120. package/lib/registry/mcp-tool-registry.service.js.map +1 -0
  121. package/lib/registry/mcp-tool-schema.service.d.ts +42 -0
  122. package/lib/registry/mcp-tool-schema.service.js +229 -0
  123. package/lib/registry/mcp-tool-schema.service.js.map +1 -0
  124. package/lib/registry/registry-types.d.ts +32 -0
  125. package/lib/registry/registry-types.js +3 -0
  126. package/lib/registry/registry-types.js.map +1 -0
  127. package/lib/resolve-options.d.ts +7 -0
  128. package/lib/resolve-options.js +85 -0
  129. package/lib/resolve-options.js.map +1 -0
  130. package/lib/shared/endpoint-paths.d.ts +8 -0
  131. package/lib/shared/endpoint-paths.js +12 -0
  132. package/lib/shared/endpoint-paths.js.map +1 -0
  133. package/lib/shared/loopback.d.ts +2 -0
  134. package/lib/shared/loopback.js +9 -0
  135. package/lib/shared/loopback.js.map +1 -0
  136. package/lib/shop-session/mcp-shop-session.service.d.ts +47 -0
  137. package/lib/shop-session/mcp-shop-session.service.js +132 -0
  138. package/lib/shop-session/mcp-shop-session.service.js.map +1 -0
  139. package/lib/tasks/mcp-oauth-retention.task.d.ts +9 -0
  140. package/lib/tasks/mcp-oauth-retention.task.js +21 -0
  141. package/lib/tasks/mcp-oauth-retention.task.js.map +1 -0
  142. package/lib/tasks/mcp-tool-call-log-retention.task.d.ts +7 -0
  143. package/lib/tasks/mcp-tool-call-log-retention.task.js +22 -0
  144. package/lib/tasks/mcp-tool-call-log-retention.task.js.map +1 -0
  145. package/lib/tools/built-in/active-order.service.d.ts +26 -0
  146. package/lib/tools/built-in/active-order.service.js +125 -0
  147. package/lib/tools/built-in/active-order.service.js.map +1 -0
  148. package/lib/tools/built-in/admin/add-customer-to-group.tool.d.ts +23 -0
  149. package/lib/tools/built-in/admin/add-customer-to-group.tool.js +68 -0
  150. package/lib/tools/built-in/admin/add-customer-to-group.tool.js.map +1 -0
  151. package/lib/tools/built-in/admin/add-note-to-order.tool.d.ts +104 -0
  152. package/lib/tools/built-in/admin/add-note-to-order.tool.js +66 -0
  153. package/lib/tools/built-in/admin/add-note-to-order.tool.js.map +1 -0
  154. package/lib/tools/built-in/admin/adjust-stock.tool.d.ts +26 -0
  155. package/lib/tools/built-in/admin/adjust-stock.tool.js +88 -0
  156. package/lib/tools/built-in/admin/adjust-stock.tool.js.map +1 -0
  157. package/lib/tools/built-in/admin/cancel-order.tool.d.ts +17 -0
  158. package/lib/tools/built-in/admin/cancel-order.tool.js +60 -0
  159. package/lib/tools/built-in/admin/cancel-order.tool.js.map +1 -0
  160. package/lib/tools/built-in/admin/channel-access.d.ts +2 -0
  161. package/lib/tools/built-in/admin/channel-access.js +9 -0
  162. package/lib/tools/built-in/admin/channel-access.js.map +1 -0
  163. package/lib/tools/built-in/admin/create-customer.tool.d.ts +41 -0
  164. package/lib/tools/built-in/admin/create-customer.tool.js +57 -0
  165. package/lib/tools/built-in/admin/create-customer.tool.js.map +1 -0
  166. package/lib/tools/built-in/admin/create-fulfillment.tool.d.ts +118 -0
  167. package/lib/tools/built-in/admin/create-fulfillment.tool.js +156 -0
  168. package/lib/tools/built-in/admin/create-fulfillment.tool.js.map +1 -0
  169. package/lib/tools/built-in/admin/create-product.tool.d.ts +52 -0
  170. package/lib/tools/built-in/admin/create-product.tool.js +61 -0
  171. package/lib/tools/built-in/admin/create-product.tool.js.map +1 -0
  172. package/lib/tools/built-in/admin/create-variant.tool.d.ts +48 -0
  173. package/lib/tools/built-in/admin/create-variant.tool.js +79 -0
  174. package/lib/tools/built-in/admin/create-variant.tool.js.map +1 -0
  175. package/lib/tools/built-in/admin/entity-field-schemas.d.ts +36 -0
  176. package/lib/tools/built-in/admin/entity-field-schemas.js +63 -0
  177. package/lib/tools/built-in/admin/entity-field-schemas.js.map +1 -0
  178. package/lib/tools/built-in/admin/get-customer.tool.d.ts +28 -0
  179. package/lib/tools/built-in/admin/get-customer.tool.js +55 -0
  180. package/lib/tools/built-in/admin/get-customer.tool.js.map +1 -0
  181. package/lib/tools/built-in/admin/get-order.tool.d.ts +100 -0
  182. package/lib/tools/built-in/admin/get-order.tool.js +68 -0
  183. package/lib/tools/built-in/admin/get-order.tool.js.map +1 -0
  184. package/lib/tools/built-in/admin/get-product.tool.d.ts +69 -0
  185. package/lib/tools/built-in/admin/get-product.tool.js +77 -0
  186. package/lib/tools/built-in/admin/get-product.tool.js.map +1 -0
  187. package/lib/tools/built-in/admin/get-stock-levels.tool.d.ts +23 -0
  188. package/lib/tools/built-in/admin/get-stock-levels.tool.js +61 -0
  189. package/lib/tools/built-in/admin/get-stock-levels.tool.js.map +1 -0
  190. package/lib/tools/built-in/admin/index.d.ts +25 -0
  191. package/lib/tools/built-in/admin/index.js +54 -0
  192. package/lib/tools/built-in/admin/index.js.map +1 -0
  193. package/lib/tools/built-in/admin/list-channels.tool.d.ts +24 -0
  194. package/lib/tools/built-in/admin/list-channels.tool.js +56 -0
  195. package/lib/tools/built-in/admin/list-channels.tool.js.map +1 -0
  196. package/lib/tools/built-in/admin/list-customer-groups.tool.d.ts +23 -0
  197. package/lib/tools/built-in/admin/list-customer-groups.tool.js +52 -0
  198. package/lib/tools/built-in/admin/list-customer-groups.tool.js.map +1 -0
  199. package/lib/tools/built-in/admin/list-customers.tool.d.ts +62 -0
  200. package/lib/tools/built-in/admin/list-customers.tool.js +66 -0
  201. package/lib/tools/built-in/admin/list-customers.tool.js.map +1 -0
  202. package/lib/tools/built-in/admin/list-orders.tool.d.ts +142 -0
  203. package/lib/tools/built-in/admin/list-orders.tool.js +87 -0
  204. package/lib/tools/built-in/admin/list-orders.tool.js.map +1 -0
  205. package/lib/tools/built-in/admin/list-products.tool.d.ts +63 -0
  206. package/lib/tools/built-in/admin/list-products.tool.js +71 -0
  207. package/lib/tools/built-in/admin/list-products.tool.js.map +1 -0
  208. package/lib/tools/built-in/admin/refund-order.tool.d.ts +38 -0
  209. package/lib/tools/built-in/admin/refund-order.tool.js +115 -0
  210. package/lib/tools/built-in/admin/refund-order.tool.js.map +1 -0
  211. package/lib/tools/built-in/admin/set-active-channel.tool.d.ts +22 -0
  212. package/lib/tools/built-in/admin/set-active-channel.tool.js +84 -0
  213. package/lib/tools/built-in/admin/set-active-channel.tool.js.map +1 -0
  214. package/lib/tools/built-in/admin/translation-schemas.d.ts +12 -0
  215. package/lib/tools/built-in/admin/translation-schemas.js +17 -0
  216. package/lib/tools/built-in/admin/translation-schemas.js.map +1 -0
  217. package/lib/tools/built-in/admin/update-customer.tool.d.ts +42 -0
  218. package/lib/tools/built-in/admin/update-customer.tool.js +59 -0
  219. package/lib/tools/built-in/admin/update-customer.tool.js.map +1 -0
  220. package/lib/tools/built-in/admin/update-order-state.tool.d.ts +16 -0
  221. package/lib/tools/built-in/admin/update-order-state.tool.js +58 -0
  222. package/lib/tools/built-in/admin/update-order-state.tool.js.map +1 -0
  223. package/lib/tools/built-in/admin/update-product.tool.d.ts +53 -0
  224. package/lib/tools/built-in/admin/update-product.tool.js +68 -0
  225. package/lib/tools/built-in/admin/update-product.tool.js.map +1 -0
  226. package/lib/tools/built-in/admin/update-variant.tool.d.ts +46 -0
  227. package/lib/tools/built-in/admin/update-variant.tool.js +77 -0
  228. package/lib/tools/built-in/admin/update-variant.tool.js.map +1 -0
  229. package/lib/tools/built-in/admin/upload-asset.tool.d.ts +32 -0
  230. package/lib/tools/built-in/admin/upload-asset.tool.js +56 -0
  231. package/lib/tools/built-in/admin/upload-asset.tool.js.map +1 -0
  232. package/lib/tools/built-in/catalog-query.service.d.ts +21 -0
  233. package/lib/tools/built-in/catalog-query.service.js +128 -0
  234. package/lib/tools/built-in/catalog-query.service.js.map +1 -0
  235. package/lib/tools/built-in/custom-field-input.service.d.ts +10 -0
  236. package/lib/tools/built-in/custom-field-input.service.js +64 -0
  237. package/lib/tools/built-in/custom-field-input.service.js.map +1 -0
  238. package/lib/tools/built-in/email-schema.d.ts +2 -0
  239. package/lib/tools/built-in/email-schema.js +12 -0
  240. package/lib/tools/built-in/email-schema.js.map +1 -0
  241. package/lib/tools/built-in/id-schema.d.ts +3 -0
  242. package/lib/tools/built-in/id-schema.js +11 -0
  243. package/lib/tools/built-in/id-schema.js.map +1 -0
  244. package/lib/tools/built-in/int32-schema.d.ts +4 -0
  245. package/lib/tools/built-in/int32-schema.js +8 -0
  246. package/lib/tools/built-in/int32-schema.js.map +1 -0
  247. package/lib/tools/built-in/list-helpers.d.ts +48 -0
  248. package/lib/tools/built-in/list-helpers.js +76 -0
  249. package/lib/tools/built-in/list-helpers.js.map +1 -0
  250. package/lib/tools/built-in/order-list-helpers.d.ts +20 -0
  251. package/lib/tools/built-in/order-list-helpers.js +48 -0
  252. package/lib/tools/built-in/order-list-helpers.js.map +1 -0
  253. package/lib/tools/built-in/providers.d.ts +2 -0
  254. package/lib/tools/built-in/providers.js +7 -0
  255. package/lib/tools/built-in/providers.js.map +1 -0
  256. package/lib/tools/built-in/remote-asset.d.ts +4 -0
  257. package/lib/tools/built-in/remote-asset.js +54 -0
  258. package/lib/tools/built-in/remote-asset.js.map +1 -0
  259. package/lib/tools/built-in/serializer.service.d.ts +327 -0
  260. package/lib/tools/built-in/serializer.service.js +413 -0
  261. package/lib/tools/built-in/serializer.service.js.map +1 -0
  262. package/lib/tools/built-in/shop/add-to-cart.tool.d.ts +21 -0
  263. package/lib/tools/built-in/shop/add-to-cart.tool.js +100 -0
  264. package/lib/tools/built-in/shop/add-to-cart.tool.js.map +1 -0
  265. package/lib/tools/built-in/shop/address-schema.d.ts +15 -0
  266. package/lib/tools/built-in/shop/address-schema.js +20 -0
  267. package/lib/tools/built-in/shop/address-schema.js.map +1 -0
  268. package/lib/tools/built-in/shop/apply-coupon-code.tool.d.ts +17 -0
  269. package/lib/tools/built-in/shop/apply-coupon-code.tool.js +62 -0
  270. package/lib/tools/built-in/shop/apply-coupon-code.tool.js.map +1 -0
  271. package/lib/tools/built-in/shop/collection-lookup.d.ts +15 -0
  272. package/lib/tools/built-in/shop/collection-lookup.js +35 -0
  273. package/lib/tools/built-in/shop/collection-lookup.js.map +1 -0
  274. package/lib/tools/built-in/shop/get-cart.tool.d.ts +94 -0
  275. package/lib/tools/built-in/shop/get-cart.tool.js +55 -0
  276. package/lib/tools/built-in/shop/get-cart.tool.js.map +1 -0
  277. package/lib/tools/built-in/shop/get-collection.tool.d.ts +42 -0
  278. package/lib/tools/built-in/shop/get-collection.tool.js +64 -0
  279. package/lib/tools/built-in/shop/get-collection.tool.js.map +1 -0
  280. package/lib/tools/built-in/shop/get-eligible-payment-methods.tool.d.ts +26 -0
  281. package/lib/tools/built-in/shop/get-eligible-payment-methods.tool.js +58 -0
  282. package/lib/tools/built-in/shop/get-eligible-payment-methods.tool.js.map +1 -0
  283. package/lib/tools/built-in/shop/get-eligible-shipping-methods.tool.d.ts +30 -0
  284. package/lib/tools/built-in/shop/get-eligible-shipping-methods.tool.js +59 -0
  285. package/lib/tools/built-in/shop/get-eligible-shipping-methods.tool.js.map +1 -0
  286. package/lib/tools/built-in/shop/get-my-account.tool.d.ts +22 -0
  287. package/lib/tools/built-in/shop/get-my-account.tool.js +57 -0
  288. package/lib/tools/built-in/shop/get-my-account.tool.js.map +1 -0
  289. package/lib/tools/built-in/shop/get-order.tool.d.ts +100 -0
  290. package/lib/tools/built-in/shop/get-order.tool.js +67 -0
  291. package/lib/tools/built-in/shop/get-order.tool.js.map +1 -0
  292. package/lib/tools/built-in/shop/get-product.tool.d.ts +57 -0
  293. package/lib/tools/built-in/shop/get-product.tool.js +81 -0
  294. package/lib/tools/built-in/shop/get-product.tool.js.map +1 -0
  295. package/lib/tools/built-in/shop/index.d.ts +19 -0
  296. package/lib/tools/built-in/shop/index.js +42 -0
  297. package/lib/tools/built-in/shop/index.js.map +1 -0
  298. package/lib/tools/built-in/shop/list-collections.tool.d.ts +42 -0
  299. package/lib/tools/built-in/shop/list-collections.tool.js +75 -0
  300. package/lib/tools/built-in/shop/list-collections.tool.js.map +1 -0
  301. package/lib/tools/built-in/shop/list-my-orders.tool.d.ts +100 -0
  302. package/lib/tools/built-in/shop/list-my-orders.tool.js +63 -0
  303. package/lib/tools/built-in/shop/list-my-orders.tool.js.map +1 -0
  304. package/lib/tools/built-in/shop/place-order.tool.d.ts +188 -0
  305. package/lib/tools/built-in/shop/place-order.tool.js +152 -0
  306. package/lib/tools/built-in/shop/place-order.tool.js.map +1 -0
  307. package/lib/tools/built-in/shop/product-search-query.d.ts +4 -0
  308. package/lib/tools/built-in/shop/product-search-query.js +34 -0
  309. package/lib/tools/built-in/shop/product-search-query.js.map +1 -0
  310. package/lib/tools/built-in/shop/remove-coupon-code.tool.d.ts +17 -0
  311. package/lib/tools/built-in/shop/remove-coupon-code.tool.js +63 -0
  312. package/lib/tools/built-in/shop/remove-coupon-code.tool.js.map +1 -0
  313. package/lib/tools/built-in/shop/remove-from-cart.tool.d.ts +17 -0
  314. package/lib/tools/built-in/shop/remove-from-cart.tool.js +58 -0
  315. package/lib/tools/built-in/shop/remove-from-cart.tool.js.map +1 -0
  316. package/lib/tools/built-in/shop/search-products.tool.d.ts +48 -0
  317. package/lib/tools/built-in/shop/search-products.tool.js +95 -0
  318. package/lib/tools/built-in/shop/search-products.tool.js.map +1 -0
  319. package/lib/tools/built-in/shop/set-checkout-details.tool.d.ts +56 -0
  320. package/lib/tools/built-in/shop/set-checkout-details.tool.js +187 -0
  321. package/lib/tools/built-in/shop/set-checkout-details.tool.js.map +1 -0
  322. package/lib/tools/built-in/shop/set-shipping-method.tool.d.ts +17 -0
  323. package/lib/tools/built-in/shop/set-shipping-method.tool.js +58 -0
  324. package/lib/tools/built-in/shop/set-shipping-method.tool.js.map +1 -0
  325. package/lib/tools/built-in/shop/update-cart-line.tool.d.ts +18 -0
  326. package/lib/tools/built-in/shop/update-cart-line.tool.js +60 -0
  327. package/lib/tools/built-in/shop/update-cart-line.tool.js.map +1 -0
  328. package/lib/tools/built-in/string-schemas.d.ts +4 -0
  329. package/lib/tools/built-in/string-schemas.js +13 -0
  330. package/lib/tools/built-in/string-schemas.js.map +1 -0
  331. package/lib/transport/mcp-server.factory.d.ts +13 -0
  332. package/lib/transport/mcp-server.factory.js +32 -0
  333. package/lib/transport/mcp-server.factory.js.map +1 -0
  334. package/lib/transport/mcp-transport.controller.d.ts +77 -0
  335. package/lib/transport/mcp-transport.controller.js +442 -0
  336. package/lib/transport/mcp-transport.controller.js.map +1 -0
  337. package/lib/types.d.ts +432 -0
  338. package/lib/types.js +3 -0
  339. package/lib/types.js.map +1 -0
  340. package/package.json +42 -0
  341. package/src/dashboard/components/activity-block.tsx +72 -0
  342. package/src/dashboard/components/actor-cell.tsx +31 -0
  343. package/src/dashboard/components/connection-dialog.tsx +106 -0
  344. package/src/dashboard/components/empty-cell.tsx +7 -0
  345. package/src/dashboard/components/grants-block.tsx +218 -0
  346. package/src/dashboard/components/stats-block.tsx +275 -0
  347. package/src/dashboard/components/tools-block.tsx +274 -0
  348. package/src/dashboard/components/tooltip-button.tsx +28 -0
  349. package/src/dashboard/components/use-mcp-table-state.ts +47 -0
  350. package/src/dashboard/i18n/ar.po +311 -0
  351. package/src/dashboard/i18n/bg.po +311 -0
  352. package/src/dashboard/i18n/cs.po +311 -0
  353. package/src/dashboard/i18n/de.po +311 -0
  354. package/src/dashboard/i18n/en.po +311 -0
  355. package/src/dashboard/i18n/es.po +311 -0
  356. package/src/dashboard/i18n/fa.po +311 -0
  357. package/src/dashboard/i18n/fr.po +311 -0
  358. package/src/dashboard/i18n/he.po +311 -0
  359. package/src/dashboard/i18n/hr.po +311 -0
  360. package/src/dashboard/i18n/hu.po +311 -0
  361. package/src/dashboard/i18n/it.po +311 -0
  362. package/src/dashboard/i18n/ja.po +311 -0
  363. package/src/dashboard/i18n/ko.po +311 -0
  364. package/src/dashboard/i18n/nb.po +311 -0
  365. package/src/dashboard/i18n/ne.po +311 -0
  366. package/src/dashboard/i18n/nl.po +311 -0
  367. package/src/dashboard/i18n/pl.po +311 -0
  368. package/src/dashboard/i18n/pt_BR.po +311 -0
  369. package/src/dashboard/i18n/pt_PT.po +311 -0
  370. package/src/dashboard/i18n/ro.po +311 -0
  371. package/src/dashboard/i18n/ru.po +311 -0
  372. package/src/dashboard/i18n/sv.po +311 -0
  373. package/src/dashboard/i18n/tr.po +311 -0
  374. package/src/dashboard/i18n/uk.po +311 -0
  375. package/src/dashboard/i18n/uz.po +311 -0
  376. package/src/dashboard/i18n/zh_Hans.po +311 -0
  377. package/src/dashboard/i18n/zh_Hant.po +311 -0
  378. package/src/dashboard/index.tsx +30 -0
  379. package/src/dashboard/mcp-activity-route.tsx +38 -0
  380. package/src/dashboard/mcp-authorize-route.tsx +369 -0
  381. package/src/dashboard/mcp-grants-route.tsx +38 -0
  382. package/src/dashboard/mcp-overview-route.tsx +46 -0
  383. package/src/dashboard/mcp-server-redirect-route.tsx +15 -0
  384. package/src/dashboard/mcp-tools-route.tsx +38 -0
  385. package/src/dashboard/mcp.graphql.ts +127 -0
  386. package/src/dashboard/published-files.spec.ts +54 -0
  387. package/src/dashboard/tsconfig.json +9 -0
  388. package/src/shared/endpoint-paths.ts +8 -0
  389. package/src/shared/loopback.ts +6 -0
@@ -0,0 +1,26 @@
1
+ import { ProductVariantService, RequestContext, StockLevelService, StockLocationService } from '@vendure/core';
2
+ import { McpToolHandler } from '@vendure/mcp-sdk';
3
+ import { z } from 'zod';
4
+ import { McpToolSerializerService } from '../serializer.service';
5
+ declare const adjustStockInput: z.ZodObject<{
6
+ variantId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
7
+ locationId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
8
+ delta: z.ZodNumber;
9
+ }, z.core.$strict>;
10
+ type AdjustStockInput = z.infer<typeof adjustStockInput>;
11
+ export declare class AdjustStockTool implements McpToolHandler<AdjustStockInput> {
12
+ private readonly productVariantService;
13
+ private readonly stockLevelService;
14
+ private readonly stockLocationService;
15
+ private readonly serializer;
16
+ constructor(productVariantService: ProductVariantService, stockLevelService: StockLevelService, stockLocationService: StockLocationService, serializer: McpToolSerializerService);
17
+ execute(ctx: RequestContext, input: AdjustStockInput): Promise<{
18
+ stockLevels: {
19
+ stockLocationId: import("@vendure/core").ID;
20
+ stockLocationName: string;
21
+ stockOnHand: number;
22
+ stockAllocated: number;
23
+ }[];
24
+ }>;
25
+ }
26
+ export {};
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AdjustStockTool = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@vendure/core");
15
+ const mcp_sdk_1 = require("@vendure/mcp-sdk");
16
+ const zod_1 = require("zod");
17
+ const id_schema_1 = require("../id-schema");
18
+ const int32_schema_1 = require("../int32-schema");
19
+ const serializer_service_1 = require("../serializer.service");
20
+ const adjustStockInput = zod_1.z.strictObject({
21
+ variantId: id_schema_1.idSchema.describe('Product variant ID.'),
22
+ locationId: id_schema_1.idSchema.describe('Stock location ID.'),
23
+ delta: int32_schema_1.int32Schema.describe('Amount to add (positive) or remove (negative) from stock on hand.'),
24
+ });
25
+ let AdjustStockTool = class AdjustStockTool {
26
+ constructor(productVariantService, stockLevelService, stockLocationService, serializer) {
27
+ this.productVariantService = productVariantService;
28
+ this.stockLevelService = stockLevelService;
29
+ this.stockLocationService = stockLocationService;
30
+ this.serializer = serializer;
31
+ }
32
+ async execute(ctx, input) {
33
+ var _a;
34
+ // The stock read below only sees locations in the active channel, but the write below does
35
+ // not, so we check the location here to avoid silently overwriting another channel's stock.
36
+ const location = await this.stockLocationService.findOne(ctx, input.locationId);
37
+ if (!location) {
38
+ throw new core_1.UserInputError(`Stock location ${input.locationId} is not available in the active channel.`);
39
+ }
40
+ const levels = await this.stockLevelService.getStockLevelsForVariant(ctx, input.variantId);
41
+ const current = levels.find(level => (0, core_1.idsAreEqual)(level.stockLocationId, input.locationId));
42
+ const stockOnHand = ((_a = current === null || current === void 0 ? void 0 : current.stockOnHand) !== null && _a !== void 0 ? _a : 0) + input.delta;
43
+ if (stockOnHand < int32_schema_1.GRAPHQL_INT_MIN || stockOnHand > int32_schema_1.GRAPHQL_INT_MAX) {
44
+ throw new core_1.UserInputError(`A delta of ${input.delta} would set stock on hand to ${stockOnHand}, outside ` +
45
+ `${int32_schema_1.GRAPHQL_INT_MIN} to ${int32_schema_1.GRAPHQL_INT_MAX}.`);
46
+ }
47
+ await this.productVariantService.update(ctx, [
48
+ {
49
+ id: input.variantId,
50
+ stockLevels: [
51
+ {
52
+ stockLocationId: input.locationId,
53
+ stockOnHand,
54
+ },
55
+ ],
56
+ },
57
+ ]);
58
+ const updated = await this.stockLevelService.getStockLevelsForVariant(ctx, input.variantId);
59
+ return { stockLevels: updated.map(level => this.serializer.stockLevel(level)) };
60
+ }
61
+ };
62
+ exports.AdjustStockTool = AdjustStockTool;
63
+ exports.AdjustStockTool = AdjustStockTool = __decorate([
64
+ (0, mcp_sdk_1.McpTool)({
65
+ name: 'adjust_stock',
66
+ toolset: 'admin',
67
+ description: 'Adjust stock on hand for a variant and stock location.',
68
+ keywords: [
69
+ 'restock this item',
70
+ 'update the inventory count',
71
+ 'add or remove stock',
72
+ 'correct the stock level',
73
+ 'increase stock on hand',
74
+ 'fix inventory quantity',
75
+ ],
76
+ // UpdateStockLocation would be the wrong permission: it covers the StockLocation entity
77
+ // itself, not the quantities held at a location, which this mutation actually changes.
78
+ permissions: [core_1.Permission.UpdateProduct],
79
+ behavior: 'destructive',
80
+ inputSchema: adjustStockInput,
81
+ }),
82
+ (0, common_1.Injectable)(),
83
+ __metadata("design:paramtypes", [core_1.ProductVariantService,
84
+ core_1.StockLevelService,
85
+ core_1.StockLocationService,
86
+ serializer_service_1.McpToolSerializerService])
87
+ ], AdjustStockTool);
88
+ //# sourceMappingURL=adjust-stock.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust-stock.tool.js","sourceRoot":"","sources":["../../../../src/tools/built-in/admin/adjust-stock.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { OrderService, RequestContext } from '@vendure/core';
2
+ import { McpToolHandler } from '@vendure/mcp-sdk';
3
+ import { z } from 'zod';
4
+ import { McpToolSerializerService } from '../serializer.service';
5
+ declare const cancelOrderInput: z.ZodObject<{
6
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
7
+ reason: z.ZodOptional<z.ZodString>;
8
+ cancelShipping: z.ZodOptional<z.ZodBoolean>;
9
+ }, z.core.$strict>;
10
+ type CancelOrderToolInput = z.infer<typeof cancelOrderInput>;
11
+ export declare class CancelOrderTool implements McpToolHandler<CancelOrderToolInput> {
12
+ private readonly orderService;
13
+ private readonly serializer;
14
+ constructor(orderService: OrderService, serializer: McpToolSerializerService);
15
+ execute(ctx: RequestContext, input: CancelOrderToolInput): Promise<Record<string, unknown>>;
16
+ }
17
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CancelOrderTool = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@vendure/core");
15
+ const mcp_sdk_1 = require("@vendure/mcp-sdk");
16
+ const zod_1 = require("zod");
17
+ const id_schema_1 = require("../id-schema");
18
+ const serializer_service_1 = require("../serializer.service");
19
+ const string_schemas_1 = require("../string-schemas");
20
+ const cancelOrderInput = zod_1.z.strictObject({
21
+ id: id_schema_1.idSchema.describe('Order ID.'),
22
+ reason: string_schemas_1.longText.describe('Reason for the cancellation.').optional(),
23
+ cancelShipping: zod_1.z.boolean().describe('Also cancel shipping charges. Defaults to true.').optional(),
24
+ });
25
+ let CancelOrderTool = class CancelOrderTool {
26
+ constructor(orderService, serializer) {
27
+ this.orderService = orderService;
28
+ this.serializer = serializer;
29
+ }
30
+ async execute(ctx, input) {
31
+ return this.serializer.orderOrError(await this.orderService.cancelOrder(ctx, {
32
+ orderId: input.id,
33
+ reason: input.reason,
34
+ cancelShipping: input.cancelShipping !== false,
35
+ }));
36
+ }
37
+ };
38
+ exports.CancelOrderTool = CancelOrderTool;
39
+ exports.CancelOrderTool = CancelOrderTool = __decorate([
40
+ (0, mcp_sdk_1.McpTool)({
41
+ name: 'cancel_order',
42
+ toolset: 'admin',
43
+ description: 'Cancel an order and restock cancelled lines.',
44
+ keywords: [
45
+ 'void an order',
46
+ "cancel a customer's purchase",
47
+ 'call off this order',
48
+ 'scrap the order and restock',
49
+ 'abort an order',
50
+ 'kill this order',
51
+ ],
52
+ permissions: [core_1.Permission.UpdateOrder],
53
+ behavior: 'destructive',
54
+ inputSchema: cancelOrderInput,
55
+ }),
56
+ (0, common_1.Injectable)(),
57
+ __metadata("design:paramtypes", [core_1.OrderService,
58
+ serializer_service_1.McpToolSerializerService])
59
+ ], CancelOrderTool);
60
+ //# sourceMappingURL=cancel-order.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-order.tool.js","sourceRoot":"","sources":["../../../../src/tools/built-in/admin/cancel-order.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wCAAyE;AACzE,8CAA2D;AAC3D,6BAAwB;AAExB,4CAAwC;AACxC,8DAAiE;AACjE,sDAA6C;AAE7C,MAAM,gBAAgB,GAAG,OAAC,CAAC,YAAY,CAAC;IACpC,EAAE,EAAE,oBAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClC,MAAM,EAAE,yBAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;IACpE,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC,QAAQ,EAAE;CACrG,CAAC,CAAC;AAqBI,IAAM,eAAe,GAArB,MAAM,eAAe;IACxB,YACqB,YAA0B,EAC1B,UAAoC;QADpC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAA0B;IACtD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,GAAmB,EAAE,KAA2B;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK;SACjD,CAAC,CACL,CAAC;IACN,CAAC;CACJ,CAAA;AAfY,0CAAe;0BAAf,eAAe;IAjB3B,IAAA,iBAAO,EAAC;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8CAA8C;QAC3D,QAAQ,EAAE;YACN,eAAe;YACf,8BAA8B;YAC9B,qBAAqB;YACrB,6BAA6B;YAC7B,gBAAgB;YAChB,iBAAiB;SACpB;QACD,WAAW,EAAE,CAAC,iBAAU,CAAC,WAAW,CAAC;QACrC,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,gBAAgB;KAChC,CAAC;IACD,IAAA,mBAAU,GAAE;qCAG0B,mBAAY;QACd,6CAAwB;GAHhD,eAAe,CAe3B"}
@@ -0,0 +1,2 @@
1
+ import { ID, RequestContext } from '@vendure/core';
2
+ export declare function userChannelIds(ctx: RequestContext): ID[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userChannelIds = userChannelIds;
4
+ // An empty list means the user has no channel access at all, not that we couldn't tell.
5
+ function userChannelIds(ctx) {
6
+ var _a, _b, _c;
7
+ return (_c = (_b = (_a = ctx.session) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.channelPermissions.map(entry => entry.id)) !== null && _c !== void 0 ? _c : [];
8
+ }
9
+ //# sourceMappingURL=channel-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-access.js","sourceRoot":"","sources":["../../../../src/tools/built-in/admin/channel-access.ts"],"names":[],"mappings":";;AAGA,wCAEC;AAHD,wFAAwF;AACxF,SAAgB,cAAc,CAAC,GAAmB;;IAC9C,OAAO,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,0CAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { CustomerService, RequestContext } from '@vendure/core';
2
+ import { McpToolHandler } from '@vendure/mcp-sdk';
3
+ import { z } from 'zod';
4
+ import { McpCustomFieldInputService } from '../custom-field-input.service';
5
+ import { McpToolSerializerService } from '../serializer.service';
6
+ declare const createCustomerInput: z.ZodObject<{
7
+ input: z.ZodObject<{
8
+ firstName: z.ZodString;
9
+ lastName: z.ZodString;
10
+ emailAddress: z.ZodString;
11
+ phoneNumber: z.ZodOptional<z.ZodString>;
12
+ title: z.ZodOptional<z.ZodString>;
13
+ customFields: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
14
+ }, z.core.$strict>;
15
+ }, z.core.$strict>;
16
+ type CreateCustomerToolInput = z.infer<typeof createCustomerInput>;
17
+ export declare class CreateCustomerTool implements McpToolHandler<CreateCustomerToolInput> {
18
+ private readonly customerService;
19
+ private readonly customFieldInput;
20
+ private readonly serializer;
21
+ constructor(customerService: CustomerService, customFieldInput: McpCustomFieldInputService, serializer: McpToolSerializerService);
22
+ execute(ctx: RequestContext, input: CreateCustomerToolInput): Promise<{
23
+ customer: {
24
+ id: import("@vendure/core").ID;
25
+ firstName: string;
26
+ lastName: string;
27
+ emailAddress: string;
28
+ phoneNumber: string;
29
+ addresses: {
30
+ defaultShippingAddress: boolean;
31
+ defaultBillingAddress: boolean;
32
+ id: import("@vendure/core").ID;
33
+ }[] | undefined;
34
+ } | null;
35
+ } | {
36
+ errorCode: string;
37
+ message: string;
38
+ customer?: undefined;
39
+ }>;
40
+ }
41
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateCustomerTool = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@vendure/core");
15
+ const mcp_sdk_1 = require("@vendure/mcp-sdk");
16
+ const zod_1 = require("zod");
17
+ const custom_field_input_service_1 = require("../custom-field-input.service");
18
+ const serializer_service_1 = require("../serializer.service");
19
+ const entity_field_schemas_1 = require("./entity-field-schemas");
20
+ const createCustomerInput = zod_1.z.strictObject({
21
+ input: entity_field_schemas_1.customerFieldsSchema,
22
+ });
23
+ let CreateCustomerTool = class CreateCustomerTool {
24
+ constructor(customerService, customFieldInput, serializer) {
25
+ this.customerService = customerService;
26
+ this.customFieldInput = customFieldInput;
27
+ this.serializer = serializer;
28
+ }
29
+ async execute(ctx, input) {
30
+ await this.customFieldInput.assertWritable(ctx, 'Customer', input.input.customFields);
31
+ return this.serializer.customerOrError(await this.customerService.create(ctx, input.input));
32
+ }
33
+ };
34
+ exports.CreateCustomerTool = CreateCustomerTool;
35
+ exports.CreateCustomerTool = CreateCustomerTool = __decorate([
36
+ (0, mcp_sdk_1.McpTool)({
37
+ name: 'create_customer',
38
+ toolset: 'admin',
39
+ description: 'Create a new customer record with their name, email address and an optional phone number.',
40
+ keywords: [
41
+ 'add a new customer',
42
+ 'register a buyer',
43
+ 'set up a client account',
44
+ 'onboard a new customer',
45
+ 'create a shopper record',
46
+ 'make a customer account',
47
+ ],
48
+ permissions: [core_1.Permission.CreateCustomer],
49
+ behavior: 'mutating',
50
+ inputSchema: createCustomerInput,
51
+ }),
52
+ (0, common_1.Injectable)(),
53
+ __metadata("design:paramtypes", [core_1.CustomerService,
54
+ custom_field_input_service_1.McpCustomFieldInputService,
55
+ serializer_service_1.McpToolSerializerService])
56
+ ], CreateCustomerTool);
57
+ //# sourceMappingURL=create-customer.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-customer.tool.js","sourceRoot":"","sources":["../../../../src/tools/built-in/admin/create-customer.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wCAA4E;AAC5E,8CAA2D;AAC3D,6BAAwB;AAExB,8EAA2E;AAC3E,8DAAiE;AAEjE,iEAA8D;AAE9D,MAAM,mBAAmB,GAAG,OAAC,CAAC,YAAY,CAAC;IACvC,KAAK,EAAE,2CAAoB;CAC9B,CAAC,CAAC;AAqBI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC3B,YACqB,eAAgC,EAChC,gBAA4C,EAC5C,UAAoC;QAFpC,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAA4B;QAC5C,eAAU,GAAV,UAAU,CAA0B;IACtD,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,GAAmB,EAAE,KAA8B;QAC7D,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAChG,CAAC;CACJ,CAAA;AAXY,gDAAkB;6BAAlB,kBAAkB;IAjB9B,IAAA,iBAAO,EAAC;QACL,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,2FAA2F;QACxG,QAAQ,EAAE;YACN,oBAAoB;YACpB,kBAAkB;YAClB,yBAAyB;YACzB,wBAAwB;YACxB,yBAAyB;YACzB,yBAAyB;SAC5B;QACD,WAAW,EAAE,CAAC,iBAAU,CAAC,cAAc,CAAC;QACxC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,mBAAmB;KACnC,CAAC;IACD,IAAA,mBAAU,GAAE;qCAG6B,sBAAe;QACd,uDAA0B;QAChC,6CAAwB;GAJhD,kBAAkB,CAW9B"}
@@ -0,0 +1,118 @@
1
+ import { FulfillmentState, FulfillmentStateTransitionError, ID, OrderService, RequestContext, TransactionalConnection } from '@vendure/core';
2
+ import { McpToolHandler } from '@vendure/mcp-sdk';
3
+ import { z } from 'zod';
4
+ import { McpToolSerializerService } from '../serializer.service';
5
+ declare const createFulfillmentInput: z.ZodObject<{
6
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
7
+ method: z.ZodString;
8
+ trackingCode: z.ZodOptional<z.ZodString>;
9
+ lines: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ orderLineId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
11
+ quantity: z.ZodNumber;
12
+ }, z.core.$strict>>>;
13
+ state: z.ZodOptional<z.ZodEnum<{
14
+ Shipped: "Shipped";
15
+ Delivered: "Delivered";
16
+ }>>;
17
+ }, z.core.$strict>;
18
+ type CreateFulfillmentInput = z.infer<typeof createFulfillmentInput>;
19
+ export declare class CreateFulfillmentTool implements McpToolHandler<CreateFulfillmentInput> {
20
+ private readonly orderService;
21
+ private readonly serializer;
22
+ private readonly connection;
23
+ constructor(orderService: OrderService, serializer: McpToolSerializerService, connection: TransactionalConnection);
24
+ execute(ctx: RequestContext, input: CreateFulfillmentInput): Promise<import("@vendure/common/lib/generated-types").EmptyOrderLineSelectionError | FulfillmentStateTransitionError | import("@vendure/common/lib/generated-types").CreateFulfillmentError | import("@vendure/common/lib/generated-types").FulfillmentStateTransitionError | import("@vendure/common/lib/generated-types").InsufficientStockOnHandError | import("@vendure/common/lib/generated-types").InvalidFulfillmentHandlerError | import("@vendure/common/lib/generated-types").ItemsAlreadyFulfilledError | {
25
+ fulfillment: {
26
+ id: ID;
27
+ state: FulfillmentState;
28
+ method: string;
29
+ trackingCode: string;
30
+ lines: {
31
+ orderLineId: ID;
32
+ quantity: number;
33
+ }[];
34
+ };
35
+ order: {
36
+ id: ID;
37
+ code: string;
38
+ state: import("@vendure/core").OrderState;
39
+ active: boolean;
40
+ total: number;
41
+ totalDecimal: string;
42
+ totalWithTax: number;
43
+ totalWithTaxDecimal: string;
44
+ currencyCode: import("@vendure/core").CurrencyCode;
45
+ totalQuantity: number;
46
+ createdAt: string | null;
47
+ updatedAt: string | null;
48
+ orderPlacedAt: string | null;
49
+ couponCodes: string[];
50
+ discounts: {
51
+ adjustmentSource: string;
52
+ type: import("@vendure/core").AdjustmentType;
53
+ description: string;
54
+ amount: number;
55
+ amountDecimal: string;
56
+ amountWithTax: number;
57
+ amountWithTaxDecimal: string;
58
+ }[];
59
+ lines: {
60
+ id: ID;
61
+ quantity: number;
62
+ linePriceWithTax: number;
63
+ linePriceWithTaxDecimal: string;
64
+ productVariant: {
65
+ id: ID;
66
+ name: import("@vendure/core").LocaleString;
67
+ sku: string;
68
+ } | null;
69
+ }[];
70
+ payments: {
71
+ id: ID;
72
+ method: string;
73
+ amount: number;
74
+ amountDecimal: string;
75
+ state: import("@vendure/core").PaymentState;
76
+ transactionId: string;
77
+ errorMessage: string | undefined;
78
+ publicMetadata: any;
79
+ refunds: {
80
+ id: ID;
81
+ state: import("@vendure/core").RefundState;
82
+ total: number;
83
+ totalDecimal: string;
84
+ reason: string;
85
+ }[];
86
+ }[] | undefined;
87
+ fulfillments: {
88
+ id: ID;
89
+ state: FulfillmentState;
90
+ method: string;
91
+ trackingCode: string;
92
+ lines: {
93
+ orderLineId: ID;
94
+ quantity: number;
95
+ }[];
96
+ }[] | undefined;
97
+ customer: {
98
+ id: ID;
99
+ emailAddress: string;
100
+ firstName: string;
101
+ lastName: string;
102
+ } | null | undefined;
103
+ shippingAddress: Record<string, string> | null;
104
+ billingAddress: Record<string, string> | null;
105
+ shippingWithTax: number;
106
+ shippingWithTaxDecimal: string;
107
+ shippingLines: {
108
+ id: ID;
109
+ shippingMethodId: ID | null;
110
+ priceWithTax: number;
111
+ priceWithTaxDecimal: string;
112
+ }[] | undefined;
113
+ } | null;
114
+ }>;
115
+ private transitionOrThrow;
116
+ private linesOfOrder;
117
+ }
118
+ export {};
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateFulfillmentTool = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@vendure/core");
15
+ const mcp_sdk_1 = require("@vendure/mcp-sdk");
16
+ const zod_1 = require("zod");
17
+ const id_schema_1 = require("../id-schema");
18
+ const int32_schema_1 = require("../int32-schema");
19
+ const order_list_helpers_1 = require("../order-list-helpers");
20
+ const serializer_service_1 = require("../serializer.service");
21
+ const string_schemas_1 = require("../string-schemas");
22
+ const createFulfillmentInput = zod_1.z.strictObject({
23
+ id: id_schema_1.idSchema.describe('Order ID.'),
24
+ method: string_schemas_1.shortText.describe('Shipping method or carrier name to record on the fulfillment.'),
25
+ trackingCode: string_schemas_1.shortText.describe("The carrier's tracking code for this shipment.").optional(),
26
+ lines: zod_1.z
27
+ .array(zod_1.z.strictObject({
28
+ orderLineId: id_schema_1.idSchema.describe('Order line ID, as returned by get_order.'),
29
+ quantity: int32_schema_1.int32Schema
30
+ .min(1)
31
+ .describe('How many of that line to fulfill, a whole number of at least 1.'),
32
+ }))
33
+ .describe('Lines to fulfill. Omit to fulfill every line in the quantity still unfulfilled.')
34
+ .optional(),
35
+ state: zod_1.z
36
+ .enum(['Shipped', 'Delivered'])
37
+ .describe('Move the new fulfillment straight to this state. Shipped makes the order Shipped or ' +
38
+ 'PartiallyShipped; Delivered makes it Delivered or PartiallyDelivered.')
39
+ .optional(),
40
+ });
41
+ class RefusedTransition extends Error {
42
+ constructor(result) {
43
+ super(result.message);
44
+ this.result = result;
45
+ }
46
+ }
47
+ let CreateFulfillmentTool = class CreateFulfillmentTool {
48
+ constructor(orderService, serializer, connection) {
49
+ this.orderService = orderService;
50
+ this.serializer = serializer;
51
+ this.connection = connection;
52
+ }
53
+ async execute(ctx, input) {
54
+ const order = await (0, order_list_helpers_1.findOrderOrThrow)(this.orderService, ctx, input.id, order_list_helpers_1.ORDER_DETAIL_RELATIONS);
55
+ const lines = input.lines ? this.linesOfOrder(order, input.lines) : unfulfilledLines(order);
56
+ try {
57
+ // Creating the fulfillment, moving it on and reading the result back are one unit of
58
+ // work, so a refused transition leaves no fulfillment behind.
59
+ return await this.connection.withTransaction(ctx, async (txCtx) => {
60
+ var _a, _b, _c, _d;
61
+ const created = await this.orderService.createFulfillment(txCtx, {
62
+ lines,
63
+ handler: {
64
+ code: core_1.manualFulfillmentHandler.code,
65
+ arguments: [
66
+ { name: 'method', value: input.method },
67
+ { name: 'trackingCode', value: (_a = input.trackingCode) !== null && _a !== void 0 ? _a : '' },
68
+ ],
69
+ },
70
+ });
71
+ if ((0, core_1.isGraphQlErrorResult)(created)) {
72
+ return created;
73
+ }
74
+ const fulfillment = input.state
75
+ ? await this.transitionOrThrow(txCtx, created.id, input.state)
76
+ : created;
77
+ const updated = await this.orderService.findOne(txCtx, input.id, order_list_helpers_1.ORDER_DETAIL_RELATIONS);
78
+ return {
79
+ fulfillment: this.serializer.fulfillment(fulfillment, (_d = (_c = (_b = updated === null || updated === void 0 ? void 0 : updated.fulfillments) === null || _b === void 0 ? void 0 : _b.find(item => (0, core_1.idsAreEqual)(item.id, fulfillment.id))) === null || _c === void 0 ? void 0 : _c.lines) !== null && _d !== void 0 ? _d : []),
80
+ order: this.serializer.order(updated),
81
+ };
82
+ });
83
+ }
84
+ catch (e) {
85
+ if (e instanceof RefusedTransition) {
86
+ return e.result;
87
+ }
88
+ throw e;
89
+ }
90
+ }
91
+ async transitionOrThrow(ctx, fulfillmentId, state) {
92
+ const result = await this.orderService.transitionFulfillmentToState(ctx, fulfillmentId, state);
93
+ if ((0, core_1.isGraphQlErrorResult)(result)) {
94
+ throw new RefusedTransition(result);
95
+ }
96
+ return result;
97
+ }
98
+ // Core works out which order to fulfill from the line ids alone, so without this check a line
99
+ // id from a different order would silently fulfill that order instead of the one named here.
100
+ linesOfOrder(order, lines) {
101
+ for (const line of lines) {
102
+ if (!order.lines.some(orderLine => (0, core_1.idsAreEqual)(orderLine.id, line.orderLineId))) {
103
+ throw new core_1.UserInputError(`Order line ${String(line.orderLineId)} is not on order ${String(order.id)}.`);
104
+ }
105
+ }
106
+ return lines;
107
+ }
108
+ };
109
+ exports.CreateFulfillmentTool = CreateFulfillmentTool;
110
+ exports.CreateFulfillmentTool = CreateFulfillmentTool = __decorate([
111
+ (0, mcp_sdk_1.McpTool)({
112
+ name: 'create_fulfillment',
113
+ toolset: 'admin',
114
+ description: "Create a fulfillment for some or all of an order's lines. Without state, the fulfillment " +
115
+ 'is Pending and the order state does not change.',
116
+ keywords: [
117
+ 'fulfil an order',
118
+ 'fulfill the items in an order',
119
+ 'mark an order as shipped',
120
+ 'dispatch an order to the customer',
121
+ 'add a tracking code to an order',
122
+ 'record a shipment for an order',
123
+ ],
124
+ permissions: [core_1.Permission.UpdateOrder],
125
+ // Marked destructive because nothing undoes a fulfillment or the stock movement it writes.
126
+ behavior: 'destructive',
127
+ inputSchema: createFulfillmentInput,
128
+ }),
129
+ (0, common_1.Injectable)(),
130
+ __metadata("design:paramtypes", [core_1.OrderService,
131
+ serializer_service_1.McpToolSerializerService,
132
+ core_1.TransactionalConnection])
133
+ ], CreateFulfillmentTool);
134
+ // A cancelled fulfillment doesn't count, so cancelling one frees its quantity to be fulfilled again.
135
+ function unfulfilledLines(order) {
136
+ var _a, _b, _c, _d;
137
+ const fulfilled = new Map();
138
+ for (const fulfillment of (_a = order.fulfillments) !== null && _a !== void 0 ? _a : []) {
139
+ if (fulfillment.state === 'Cancelled') {
140
+ continue;
141
+ }
142
+ for (const line of (_b = fulfillment.lines) !== null && _b !== void 0 ? _b : []) {
143
+ const key = String(line.orderLineId);
144
+ fulfilled.set(key, ((_c = fulfilled.get(key)) !== null && _c !== void 0 ? _c : 0) + line.quantity);
145
+ }
146
+ }
147
+ const lines = [];
148
+ for (const line of order.lines) {
149
+ const quantity = line.quantity - ((_d = fulfilled.get(String(line.id))) !== null && _d !== void 0 ? _d : 0);
150
+ if (0 < quantity) {
151
+ lines.push({ orderLineId: line.id, quantity });
152
+ }
153
+ }
154
+ return lines;
155
+ }
156
+ //# sourceMappingURL=create-fulfillment.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-fulfillment.tool.js","sourceRoot":"","sources":["../../../../src/tools/built-in/admin/create-fulfillment.tool.ts"],"names":[],"mappings":"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"}