@decodo/mcp-server 1.2.3 → 1.2.5

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 (91) hide show
  1. package/README.md +142 -31
  2. package/build/auth/constants.js +12 -0
  3. package/build/auth/constants.js.map +1 -0
  4. package/build/auth/credential.js +27 -0
  5. package/build/auth/credential.js.map +1 -0
  6. package/build/auth/detect-credential-type.js +14 -0
  7. package/build/auth/detect-credential-type.js.map +1 -0
  8. package/build/auth/index.js +12 -0
  9. package/build/auth/index.js.map +1 -0
  10. package/build/{clients → auth}/types.js.map +1 -1
  11. package/build/clients/retry.js +17 -19
  12. package/build/clients/retry.js.map +1 -1
  13. package/build/clients/scraper-api-client.js +99 -42
  14. package/build/clients/scraper-api-client.js.map +1 -1
  15. package/build/constants.js +1 -34
  16. package/build/constants.js.map +1 -1
  17. package/build/index.js +8 -4
  18. package/build/index.js.map +1 -1
  19. package/build/logger.js +16 -0
  20. package/build/logger.js.map +1 -0
  21. package/build/server/cors.js +30 -0
  22. package/build/server/cors.js.map +1 -0
  23. package/build/server/sapi-base-server.js +0 -1
  24. package/build/server/sapi-base-server.js.map +1 -1
  25. package/build/server/sapi-http-server.js.map +1 -1
  26. package/build/server/sapi-stdio-server.js.map +1 -1
  27. package/build/server.js +9 -7
  28. package/build/server.js.map +1 -1
  29. package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js +5 -3
  30. package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js.map +1 -1
  31. package/build/tools/amazon-pricing/amazon-pricing-tool.js +5 -2
  32. package/build/tools/amazon-pricing/amazon-pricing-tool.js.map +1 -1
  33. package/build/tools/amazon-product/amazon-product-tool.js +5 -2
  34. package/build/tools/amazon-product/amazon-product-tool.js.map +1 -1
  35. package/build/tools/amazon-search/amazon-search-tool.js +5 -2
  36. package/build/tools/amazon-search/amazon-search-tool.js.map +1 -1
  37. package/build/tools/amazon-sellers/amazon-sellers-tool.js +5 -2
  38. package/build/tools/amazon-sellers/amazon-sellers-tool.js.map +1 -1
  39. package/build/tools/bing-search/bing-search-tool.js +11 -9
  40. package/build/tools/bing-search/bing-search-tool.js.map +1 -1
  41. package/build/tools/chatgpt/chatgpt-tool.js +5 -1
  42. package/build/tools/chatgpt/chatgpt-tool.js.map +1 -1
  43. package/build/tools/google-ads/google-ads-tool.js +5 -1
  44. package/build/tools/google-ads/google-ads-tool.js.map +1 -1
  45. package/build/tools/google-ai-mode/google-ai-mode-tool.js +13 -7
  46. package/build/tools/google-ai-mode/google-ai-mode-tool.js.map +1 -1
  47. package/build/tools/google-lens/google-lens-tool.js +5 -1
  48. package/build/tools/google-lens/google-lens-tool.js.map +1 -1
  49. package/build/tools/google-search/google-search-tool.js +5 -1
  50. package/build/tools/google-search/google-search-tool.js.map +1 -1
  51. package/build/tools/google-travel-hotels/google-travel-hotels-tool.js +5 -1
  52. package/build/tools/google-travel-hotels/google-travel-hotels-tool.js.map +1 -1
  53. package/build/tools/perplexity/perplexity-tool.js +5 -1
  54. package/build/tools/perplexity/perplexity-tool.js.map +1 -1
  55. package/build/tools/reddit-post/reddit-post-tool.js +5 -1
  56. package/build/tools/reddit-post/reddit-post-tool.js.map +1 -1
  57. package/build/tools/reddit-subreddit/reddit-subreddit-tool.js +5 -1
  58. package/build/tools/reddit-subreddit/reddit-subreddit-tool.js.map +1 -1
  59. package/build/tools/reddit-user/reddit-user-tool.js +5 -1
  60. package/build/tools/reddit-user/reddit-user-tool.js.map +1 -1
  61. package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js +3 -0
  62. package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js.map +1 -1
  63. package/build/tools/screenshot/screenshot-tool.js +3 -0
  64. package/build/tools/screenshot/screenshot-tool.js.map +1 -1
  65. package/build/tools/target-product/target-product-tool.js +5 -3
  66. package/build/tools/target-product/target-product-tool.js.map +1 -1
  67. package/build/tools/target-search/target-search-tool.js +5 -3
  68. package/build/tools/target-search/target-search-tool.js.map +1 -1
  69. package/build/tools/tiktok-post/tiktok-post-tool.js +5 -1
  70. package/build/tools/tiktok-post/tiktok-post-tool.js.map +1 -1
  71. package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js +5 -1
  72. package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js.map +1 -1
  73. package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js +5 -2
  74. package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js.map +1 -1
  75. package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js +5 -1
  76. package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js.map +1 -1
  77. package/build/tools/tool.js.map +1 -1
  78. package/build/tools/walmart-product/walmart-product-tool.js +18 -2
  79. package/build/tools/walmart-product/walmart-product-tool.js.map +1 -1
  80. package/build/tools/walmart-search/walmart-search-tool.js +18 -3
  81. package/build/tools/walmart-search/walmart-search-tool.js.map +1 -1
  82. package/build/tools/youtube-channel/youtube-channel-tool.js +5 -1
  83. package/build/tools/youtube-channel/youtube-channel-tool.js.map +1 -1
  84. package/build/tools/youtube-metadata/youtube-metadata-tool.js +5 -1
  85. package/build/tools/youtube-metadata/youtube-metadata-tool.js.map +1 -1
  86. package/build/tools/youtube-search/youtube-search-tool.js +5 -1
  87. package/build/tools/youtube-search/youtube-search-tool.js.map +1 -1
  88. package/build/tools/youtube-subtitles/youtube-subtitles-tool.js +5 -1
  89. package/build/tools/youtube-subtitles/youtube-subtitles-tool.js.map +1 -1
  90. package/package.json +5 -2
  91. /package/build/{clients → auth}/types.js +0 -0
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TiktokShopSearchTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const utils_1 = require("../../utils");
10
11
  const zod_types_1 = require("../../zod/zod-types");
@@ -21,20 +22,22 @@ class TiktokShopSearchTool extends tool_1.Tool {
21
22
  };
22
23
  this.register = ({ server, sapiClient, auth }) => {
23
24
  server.registerTool('tiktok_shop_search', {
25
+ title: 'TikTok Shop Search',
24
26
  description: 'Scrape TikTok Shop Search results with automatic parsing',
25
27
  inputSchema: {
26
28
  query: zod_1.default.string().describe('Search query for TikTok Shop products'),
27
- geo: zod_types_1.zodGeo,
28
29
  jsRender: zod_types_1.zodJsRender,
29
30
  country: zod_types_1.zodCountry,
30
31
  deviceType: zod_types_1.zodDeviceType,
31
32
  },
32
33
  annotations: {
34
+ title: 'TikTok Shop Search',
33
35
  readOnlyHint: true,
36
+ destructiveHint: false,
34
37
  openWorldHint: true,
35
38
  },
36
39
  }, async (scrapingParams, extra) => {
37
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.TIKTOK_SHOP_SEARCH, markdown: true });
40
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.TiktokShopSearch, markdown: true });
38
41
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
39
42
  const { data: text } = this.transformResponse({ data });
40
43
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"tiktok-shop-search-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-search/tiktok-shop-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,uCAAuE;AACvE,mDAAqF;AACrF,kCAAqD;AAErD,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,oBAAoB,CAAC,2BAA2B,EAAE,CAAC;gBAC7E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;gBACE,WAAW,EAAE,0DAA0D;gBACvE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;oBACnE,GAAG,EAAE,kBAAM;oBACX,QAAQ,EAAE,uBAAW;oBACrB,OAAO,EAAE,sBAAU;oBACnB,UAAU,EAAE,yBAAa;iBAC1B;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,kBAAkB,EAC9C,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AApDD,oDAoDC;AAjDgB,gDAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
1
+ {"version":3,"file":"tiktok-shop-search-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-search/tiktok-shop-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAA6E;AAC7E,kCAAqD;AAErD,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,oBAAoB,CAAC,2BAA2B,EAAE,CAAC;gBAC7E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,0DAA0D;gBACvE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;oBACnE,QAAQ,EAAE,uBAAW;oBACrB,OAAO,EAAE,sBAAU;oBACnB,UAAU,EAAE,yBAAa;iBAC1B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,oBAAoB;oBAC3B,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,gBAAgB,EAC/B,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAtDD,oDAsDC;AAnDgB,gDAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TiktokShopUrlTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const zod_types_1 = require("../../zod/zod-types");
10
11
  const tool_1 = require("../tool");
@@ -17,17 +18,20 @@ class TiktokShopUrlTool extends tool_1.Tool {
17
18
  };
18
19
  this.register = ({ server, sapiClient, auth }) => {
19
20
  server.registerTool('tiktok_shop_url', {
21
+ title: 'TikTok Shop URL',
20
22
  description: 'Scrape TikTok Shop page by URL',
21
23
  inputSchema: {
22
24
  url: zod_1.default.string().describe('TikTok Shop URL (e.g., "https://www.tiktok.com/shop/s?q=HEADPHONES")'),
23
25
  jsRender: zod_types_1.zodJsRender,
24
26
  },
25
27
  annotations: {
28
+ title: 'TikTok Shop URL',
26
29
  readOnlyHint: true,
30
+ destructiveHint: false,
27
31
  openWorldHint: true,
28
32
  },
29
33
  }, async (scrapingParams, extra) => {
30
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.TIKTOK_SHOP_URL });
34
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.Tiktok });
31
35
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
32
36
  return {
33
37
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"tiktok-shop-url-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-url/tiktok-shop-url-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,mDAAkD;AAClD,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAE5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;oBAChG,QAAQ,EAAE,uBAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,eAAe,GACjB,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAxCD,8CAwCC"}
1
+ {"version":3,"file":"tiktok-shop-url-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-url/tiktok-shop-url-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAAkD;AAClD,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAE5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;oBAChG,QAAQ,EAAE,uBAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,MAAM,GACK,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA3CD,8CA2CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":";;;AAUA,MAAsB,IAAI;CAYzB;AAZD,oBAYC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":";;;AAWA,MAAsB,IAAI;CAYzB;AAZD,oBAYC"}
@@ -1,10 +1,22 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
17
  exports.WalmartProductTool = void 0;
7
18
  const zod_1 = __importDefault(require("zod"));
19
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
20
  const constants_1 = require("../../constants");
9
21
  const utils_1 = require("../../utils");
10
22
  const zod_types_1 = require("../../zod/zod-types");
@@ -29,6 +41,7 @@ class WalmartProductTool extends tool_1.Tool {
29
41
  };
30
42
  this.register = ({ server, sapiClient, auth }) => {
31
43
  server.registerTool('walmart_product', {
44
+ title: 'Walmart Product',
32
45
  description: 'Scrape Walmart Product page with automatic parsing',
33
46
  inputSchema: {
34
47
  product_id: zod_1.default.string().describe('Walmart product ID (e.g., "15296401808")'),
@@ -37,11 +50,14 @@ class WalmartProductTool extends tool_1.Tool {
37
50
  storeId: zodStoreId,
38
51
  },
39
52
  annotations: {
53
+ title: 'Walmart Product',
40
54
  readOnlyHint: true,
55
+ destructiveHint: false,
41
56
  openWorldHint: true,
42
57
  },
43
- }, async (scrapingParams, extra) => {
44
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.WALMART_PRODUCT, parse: true });
58
+ }, async (_a, extra) => {
59
+ var { storeId } = _a, scrapingParams = __rest(_a, ["storeId"]);
60
+ const params = Object.assign(Object.assign(Object.assign({}, scrapingParams), (storeId && { walmart_store_id: String(storeId) })), { target: sdk_ts_1.Target.WalmartProduct, parse: true });
45
61
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
46
62
  const { data: text } = this.transformResponse({ data });
47
63
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"walmart-product-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-product/walmart-product-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,UAAU,GAAG,aAAC;KACjB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;gBAC3E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,WAAW,EAAE,oDAAoD;gBACjE,WAAW,EAAE;oBACX,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;oBAC3E,QAAQ,EAAE,uBAAW;oBACrB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,UAAU;iBACpB;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,eAAe,EAC3C,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAnDD,gDAmDC;AAhDgB,8CAA2B,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,AAApC,CAAqC"}
1
+ {"version":3,"file":"walmart-product-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-product/walmart-product-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,UAAU,GAAG,aAAC;KACjB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;gBAC3E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,oDAAoD;gBACjE,WAAW,EAAE;oBACX,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;oBAC3E,QAAQ,EAAE,uBAAW;oBACrB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,UAAU;iBACpB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAiD,EAAE,KAAoB,EAAE,EAAE;oBAA3E,EAAE,OAAO,OAAwC,EAAnC,cAAc,cAA5B,WAA8B,CAAF;gBACjC,MAAM,MAAM,GAAG,8CACV,cAAc,GACd,CAAC,OAAO,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KACrD,MAAM,EAAE,eAAM,CAAC,cAAc,EAC7B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAvDD,gDAuDC;AApDgB,8CAA2B,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,AAApC,CAAqC"}
@@ -1,10 +1,22 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
17
  exports.WalmartSearchTool = void 0;
7
18
  const zod_1 = __importDefault(require("zod"));
19
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
20
  const constants_1 = require("../../constants");
9
21
  const utils_1 = require("../../utils");
10
22
  const zod_types_1 = require("../../zod/zod-types");
@@ -29,20 +41,23 @@ class WalmartSearchTool extends tool_1.Tool {
29
41
  };
30
42
  this.register = ({ server, sapiClient, auth }) => {
31
43
  server.registerTool('walmart_search', {
44
+ title: 'Walmart Search',
32
45
  description: 'Scrape Walmart Search results with automatic parsing',
33
46
  inputSchema: {
34
47
  query: zod_1.default.string().describe('Search query for Walmart products (e.g., "camping tent")'),
35
48
  jsRender: zod_types_1.zodJsRender,
36
- deviceType: zod_types_1.zodDeviceType,
37
49
  deliveryZip: zodDeliveryZip,
38
50
  storeId: zodWalmartStoreId,
39
51
  },
40
52
  annotations: {
53
+ title: 'Walmart Search',
41
54
  readOnlyHint: true,
55
+ destructiveHint: false,
42
56
  openWorldHint: true,
43
57
  },
44
- }, async (scrapingParams, extra) => {
45
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.WALMART_SEARCH, markdown: true });
58
+ }, async (_a, extra) => {
59
+ var { storeId } = _a, scrapingParams = __rest(_a, ["storeId"]);
60
+ const params = Object.assign(Object.assign(Object.assign({}, scrapingParams), (storeId && { walmart_store_id: String(storeId) })), { target: sdk_ts_1.Target.WalmartSearch, markdown: true });
46
61
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
47
62
  const { data: text } = this.transformResponse({ data });
48
63
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"walmart-search-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-search/walmart-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,uCAAuE;AACvE,mDAAiE;AACjE,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,iBAAiB,GAAG,aAAC;KACxB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;gBAC1E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;oBACtF,QAAQ,EAAE,uBAAW;oBACrB,UAAU,EAAE,yBAAa;oBACzB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,iBAAiB;iBAC3B;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,cAAc,EAC1C,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AApDD,8CAoDC;AAjDgB,6CAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
1
+ {"version":3,"file":"walmart-search-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-search/walmart-search-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,iBAAiB,GAAG,aAAC;KACxB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;gBAC1E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;oBACtF,QAAQ,EAAE,uBAAW;oBACrB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,iBAAiB;iBAC3B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,gBAAgB;oBACvB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAiD,EAAE,KAAoB,EAAE,EAAE;oBAA3E,EAAE,OAAO,OAAwC,EAAnC,cAAc,cAA5B,WAA8B,CAAF;gBACjC,MAAM,MAAM,GAAG,8CACV,cAAc,GACd,CAAC,OAAO,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KACrD,MAAM,EAAE,eAAM,CAAC,aAAa,EAC5B,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAvDD,8CAuDC;AApDgB,6CAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.YoutubeChannelTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const tool_1 = require("../tool");
10
11
  const zodLimit = zod_1.default
@@ -20,17 +21,20 @@ class YoutubeChannelTool extends tool_1.Tool {
20
21
  };
21
22
  this.register = ({ server, sapiClient, auth }) => {
22
23
  server.registerTool('youtube_channel', {
24
+ title: 'YouTube Channel',
23
25
  description: 'Scrape YouTube channel videos with automatic parsing',
24
26
  inputSchema: {
25
27
  query: zod_1.default.string().describe('YouTube channel handle or ID (e.g., "@decodo_official")'),
26
28
  limit: zodLimit,
27
29
  },
28
30
  annotations: {
31
+ title: 'YouTube Channel',
29
32
  readOnlyHint: true,
33
+ destructiveHint: false,
30
34
  openWorldHint: true,
31
35
  },
32
36
  }, async (scrapingParams, extra) => {
33
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.YOUTUBE_CHANNEL, parse: true });
37
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeChannel, parse: true });
34
38
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
35
39
  return {
36
40
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-channel-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-channel/youtube-channel-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,kCAAqD;AAGrD,MAAM,QAAQ,GAAG,aAAC;KACf,MAAM,EAAE;KACR,QAAQ,CAAC,oCAAoC,CAAC;KAC9C,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;oBACrF,KAAK,EAAE,QAAQ;iBAChB;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,eAAe,EAC3C,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAzCD,gDAyCC"}
1
+ {"version":3,"file":"youtube-channel-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-channel/youtube-channel-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,QAAQ,GAAG,aAAC;KACf,MAAM,EAAE;KACR,QAAQ,CAAC,oCAAoC,CAAC;KAC9C,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;oBACrF,KAAK,EAAE,QAAQ;iBAChB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,cAAc,EAC7B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA5CD,gDA4CC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.YoutubeMetadataTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const tool_1 = require("../tool");
10
11
  class YoutubeMetadataTool extends tool_1.Tool {
@@ -16,16 +17,19 @@ class YoutubeMetadataTool extends tool_1.Tool {
16
17
  };
17
18
  this.register = ({ server, sapiClient, auth }) => {
18
19
  server.registerTool('youtube_metadata', {
20
+ title: 'YouTube Metadata',
19
21
  description: 'Scrape YouTube video metadata',
20
22
  inputSchema: {
21
23
  query: zod_1.default.string().describe('YouTube video ID (e.g., "dFu9aKJoqGg")'),
22
24
  },
23
25
  annotations: {
26
+ title: 'YouTube Metadata',
24
27
  readOnlyHint: true,
28
+ destructiveHint: false,
25
29
  openWorldHint: true,
26
30
  },
27
31
  }, async (scrapingParams, extra) => {
28
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.YOUTUBE_METADATA });
32
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeMetadata });
29
33
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
30
34
  return {
31
35
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-metadata-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-metadata/youtube-metadata-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,kCAAqD;AAGrD,MAAa,mBAAoB,SAAQ,WAAI;IAA7C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;gBACE,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACrE;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,gBAAgB,GAClB,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAvCD,kDAuCC"}
1
+ {"version":3,"file":"youtube-metadata-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-metadata/youtube-metadata-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAa,mBAAoB,SAAQ,WAAI;IAA7C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;gBACE,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACrE;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,kBAAkB;oBACzB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,eAAe,GACJ,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA1CD,kDA0CC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.YoutubeSearchTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const tool_1 = require("../tool");
10
11
  class YoutubeSearchTool extends tool_1.Tool {
@@ -16,16 +17,19 @@ class YoutubeSearchTool extends tool_1.Tool {
16
17
  };
17
18
  this.register = ({ server, sapiClient, auth }) => {
18
19
  server.registerTool('youtube_search', {
20
+ title: 'YouTube Search',
19
21
  description: 'Search YouTube videos',
20
22
  inputSchema: {
21
23
  query: zod_1.default.string().describe('YouTube search query (e.g., "How to care for chinchillas")'),
22
24
  },
23
25
  annotations: {
26
+ title: 'YouTube Search',
24
27
  readOnlyHint: true,
28
+ destructiveHint: false,
25
29
  openWorldHint: true,
26
30
  },
27
31
  }, async (scrapingParams, extra) => {
28
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.YOUTUBE_SEARCH });
32
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeSearch });
29
33
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
30
34
  return {
31
35
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-search-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-search/youtube-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;iBACzF;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,cAAc,GAChB,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAvCD,8CAuCC"}
1
+ {"version":3,"file":"youtube-search-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-search/youtube-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;iBACzF;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,gBAAgB;oBACvB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,aAAa,GACF,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA1CD,8CA0CC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.YoutubeSubtitlesTool = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
+ const sdk_ts_1 = require("@decodo/sdk-ts");
8
9
  const constants_1 = require("../../constants");
9
10
  const tool_1 = require("../tool");
10
11
  const zodLanguageCode = zod_1.default
@@ -20,17 +21,20 @@ class YoutubeSubtitlesTool extends tool_1.Tool {
20
21
  };
21
22
  this.register = ({ server, sapiClient, auth }) => {
22
23
  server.registerTool('youtube_subtitles', {
24
+ title: 'YouTube Subtitles',
23
25
  description: 'Scrape YouTube video subtitles',
24
26
  inputSchema: {
25
27
  query: zod_1.default.string().describe('YouTube video ID (e.g., "L8zSWbQN-v8")'),
26
28
  language_code: zodLanguageCode,
27
29
  },
28
30
  annotations: {
31
+ title: 'YouTube Subtitles',
29
32
  readOnlyHint: true,
33
+ destructiveHint: false,
30
34
  openWorldHint: true,
31
35
  },
32
36
  }, async (scrapingParams, extra) => {
33
- const params = Object.assign(Object.assign({}, scrapingParams), { target: constants_1.SCRAPER_API_TARGETS.YOUTUBE_SUBTITLES });
37
+ const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeSubtitles });
34
38
  const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
35
39
  return {
36
40
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-subtitles-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-subtitles/youtube-subtitles-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA+D;AAC/D,kCAAqD;AAGrD,MAAM,eAAe,GAAG,aAAC;KACtB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;gBACE,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;oBACpE,aAAa,EAAE,eAAe;iBAC/B;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,+BAAmB,CAAC,iBAAiB,GACnB,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAxCD,oDAwCC"}
1
+ {"version":3,"file":"youtube-subtitles-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-subtitles/youtube-subtitles-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,eAAe,GAAG,aAAC;KACtB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;oBACpE,aAAa,EAAE,eAAe;iBAC/B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,mBAAmB;oBAC1B,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,gBAAgB,GACL,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA3CD,oDA2CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decodo/mcp-server",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "Decodo MCP Server",
5
5
  "bin": {
6
6
  "decodo-mcp": "./build/index.js"
@@ -27,9 +27,11 @@
27
27
  "build"
28
28
  ],
29
29
  "dependencies": {
30
+ "@decodo/sdk-ts": "^2.3.0",
30
31
  "@modelcontextprotocol/sdk": "^1.12.3",
31
- "axios": "^1.15.0",
32
+ "cors": "^2.8.5",
32
33
  "dotenv": "^16.5.0",
34
+ "express": "^5.2.1",
33
35
  "node-html-markdown": "^1.3.0",
34
36
  "tsx": "^4.21.0"
35
37
  },
@@ -40,6 +42,7 @@
40
42
  "@semantic-release/git": "^10.0.1",
41
43
  "@semantic-release/github": "^12.0.6",
42
44
  "@semantic-release/npm": "^13.1.5",
45
+ "@types/cors": "^2.8.17",
43
46
  "@types/express": "^5.0.1",
44
47
  "@types/jest": "^30.0.0",
45
48
  "@types/node": "^24.0.0",
File without changes