@jam-nodes/nodes 0.2.8 → 0.2.10

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 (118) hide show
  1. package/README.md +147 -0
  2. package/dist/ai/draft-emails.d.ts +1 -1
  3. package/dist/index.d.ts +199 -9
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +21 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/integrations/apollo/search-contacts.d.ts +4 -4
  8. package/dist/integrations/dataforseo/keyword-research.d.ts +6 -6
  9. package/dist/integrations/dataforseo/keyword-research.d.ts.map +1 -1
  10. package/dist/integrations/dataforseo/keyword-research.js +2 -8
  11. package/dist/integrations/dataforseo/keyword-research.js.map +1 -1
  12. package/dist/integrations/devto/create-article.d.ts +20 -0
  13. package/dist/integrations/devto/create-article.d.ts.map +1 -0
  14. package/dist/integrations/devto/create-article.js +67 -0
  15. package/dist/integrations/devto/create-article.js.map +1 -0
  16. package/dist/integrations/devto/credentials.d.ts +2 -0
  17. package/dist/integrations/devto/credentials.d.ts.map +1 -0
  18. package/dist/integrations/devto/credentials.js +17 -0
  19. package/dist/integrations/devto/credentials.js.map +1 -0
  20. package/dist/integrations/devto/get-articles.d.ts +21 -0
  21. package/dist/integrations/devto/get-articles.d.ts.map +1 -0
  22. package/dist/integrations/devto/get-articles.js +78 -0
  23. package/dist/integrations/devto/get-articles.js.map +1 -0
  24. package/dist/integrations/devto/index.d.ts +6 -0
  25. package/dist/integrations/devto/index.d.ts.map +1 -0
  26. package/dist/integrations/devto/index.js +6 -0
  27. package/dist/integrations/devto/index.js.map +1 -0
  28. package/dist/integrations/devto/schemas.d.ts +243 -0
  29. package/dist/integrations/devto/schemas.d.ts.map +1 -0
  30. package/dist/integrations/devto/schemas.js +69 -0
  31. package/dist/integrations/devto/schemas.js.map +1 -0
  32. package/dist/integrations/devto/update-article.d.ts +19 -0
  33. package/dist/integrations/devto/update-article.d.ts.map +1 -0
  34. package/dist/integrations/devto/update-article.js +65 -0
  35. package/dist/integrations/devto/update-article.js.map +1 -0
  36. package/dist/integrations/discord/schemas.d.ts +2 -2
  37. package/dist/integrations/discord/send-message.d.ts +1 -1
  38. package/dist/integrations/firecrawl/crawl.d.ts +3 -3
  39. package/dist/integrations/firecrawl/extract.d.ts +3 -3
  40. package/dist/integrations/firecrawl/scrape.d.ts +10 -10
  41. package/dist/integrations/index.d.ts +3 -1
  42. package/dist/integrations/index.d.ts.map +1 -1
  43. package/dist/integrations/index.js +5 -1
  44. package/dist/integrations/index.js.map +1 -1
  45. package/dist/integrations/social/credentials.d.ts +2 -0
  46. package/dist/integrations/social/credentials.d.ts.map +1 -0
  47. package/dist/integrations/social/credentials.js +36 -0
  48. package/dist/integrations/social/credentials.js.map +1 -0
  49. package/dist/integrations/social/index.d.ts +8 -0
  50. package/dist/integrations/social/index.d.ts.map +1 -1
  51. package/dist/integrations/social/index.js +8 -0
  52. package/dist/integrations/social/index.js.map +1 -1
  53. package/dist/integrations/social/twitter-client.d.ts +6 -0
  54. package/dist/integrations/social/twitter-client.d.ts.map +1 -0
  55. package/dist/integrations/social/twitter-client.js +140 -0
  56. package/dist/integrations/social/twitter-client.js.map +1 -0
  57. package/dist/integrations/social/twitter-create-tweet.d.ts +61 -0
  58. package/dist/integrations/social/twitter-create-tweet.d.ts.map +1 -0
  59. package/dist/integrations/social/twitter-create-tweet.js +83 -0
  60. package/dist/integrations/social/twitter-create-tweet.js.map +1 -0
  61. package/dist/integrations/social/twitter-delete-tweet.d.ts +23 -0
  62. package/dist/integrations/social/twitter-delete-tweet.d.ts.map +1 -0
  63. package/dist/integrations/social/twitter-delete-tweet.js +41 -0
  64. package/dist/integrations/social/twitter-delete-tweet.js.map +1 -0
  65. package/dist/integrations/social/twitter-get-user-by-username.d.ts +39 -0
  66. package/dist/integrations/social/twitter-get-user-by-username.d.ts.map +1 -0
  67. package/dist/integrations/social/twitter-get-user-by-username.js +56 -0
  68. package/dist/integrations/social/twitter-get-user-by-username.js.map +1 -0
  69. package/dist/integrations/social/twitter-like-tweet.d.ts +23 -0
  70. package/dist/integrations/social/twitter-like-tweet.d.ts.map +1 -0
  71. package/dist/integrations/social/twitter-like-tweet.js +48 -0
  72. package/dist/integrations/social/twitter-like-tweet.js.map +1 -0
  73. package/dist/integrations/social/twitter-retweet.d.ts +23 -0
  74. package/dist/integrations/social/twitter-retweet.d.ts.map +1 -0
  75. package/dist/integrations/social/twitter-retweet.js +48 -0
  76. package/dist/integrations/social/twitter-retweet.js.map +1 -0
  77. package/dist/integrations/social/twitter-search-tweets.d.ts +77 -0
  78. package/dist/integrations/social/twitter-search-tweets.d.ts.map +1 -0
  79. package/dist/integrations/social/twitter-search-tweets.js +76 -0
  80. package/dist/integrations/social/twitter-search-tweets.js.map +1 -0
  81. package/dist/integrations/social/twitter-send-dm.d.ts +39 -0
  82. package/dist/integrations/social/twitter-send-dm.d.ts.map +1 -0
  83. package/dist/integrations/social/twitter-send-dm.js +67 -0
  84. package/dist/integrations/social/twitter-send-dm.js.map +1 -0
  85. package/dist/integrations/wordpress/createPost.d.ts +25 -0
  86. package/dist/integrations/wordpress/createPost.d.ts.map +1 -0
  87. package/dist/integrations/wordpress/createPost.js +67 -0
  88. package/dist/integrations/wordpress/createPost.js.map +1 -0
  89. package/dist/integrations/wordpress/credentials.d.ts +2 -0
  90. package/dist/integrations/wordpress/credentials.d.ts.map +1 -0
  91. package/dist/integrations/wordpress/credentials.js +25 -0
  92. package/dist/integrations/wordpress/credentials.js.map +1 -0
  93. package/dist/integrations/wordpress/getPosts.d.ts +28 -0
  94. package/dist/integrations/wordpress/getPosts.d.ts.map +1 -0
  95. package/dist/integrations/wordpress/getPosts.js +70 -0
  96. package/dist/integrations/wordpress/getPosts.js.map +1 -0
  97. package/dist/integrations/wordpress/index.d.ts +8 -0
  98. package/dist/integrations/wordpress/index.d.ts.map +1 -0
  99. package/dist/integrations/wordpress/index.js +7 -0
  100. package/dist/integrations/wordpress/index.js.map +1 -0
  101. package/dist/integrations/wordpress/schemas.d.ts +411 -0
  102. package/dist/integrations/wordpress/schemas.d.ts.map +1 -0
  103. package/dist/integrations/wordpress/schemas.js +110 -0
  104. package/dist/integrations/wordpress/schemas.js.map +1 -0
  105. package/dist/integrations/wordpress/updatePost.d.ts +21 -0
  106. package/dist/integrations/wordpress/updatePost.d.ts.map +1 -0
  107. package/dist/integrations/wordpress/updatePost.js +59 -0
  108. package/dist/integrations/wordpress/updatePost.js.map +1 -0
  109. package/dist/integrations/wordpress/uploadMedia.d.ts +15 -0
  110. package/dist/integrations/wordpress/uploadMedia.d.ts.map +1 -0
  111. package/dist/integrations/wordpress/uploadMedia.js +56 -0
  112. package/dist/integrations/wordpress/uploadMedia.js.map +1 -0
  113. package/dist/integrations/wordpress/utils.d.ts +15 -0
  114. package/dist/integrations/wordpress/utils.d.ts.map +1 -0
  115. package/dist/integrations/wordpress/utils.js +15 -0
  116. package/dist/integrations/wordpress/utils.js.map +1 -0
  117. package/dist/schemas/ai.d.ts +6 -6
  118. package/package.json +2 -1
@@ -1,13 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { defineNode } from '@jam-nodes/core';
3
3
  import { fetchWithRetry } from '../../utils/http.js';
4
- // =============================================================================
5
4
  // Constants
6
- // =============================================================================
7
5
  const DATAFORSEO_BASE_URL = 'https://api.dataforseo.com/v3';
8
- // =============================================================================
9
6
  // Schemas
10
- // =============================================================================
11
7
  export const SeoKeywordResearchInputSchema = z.object({
12
8
  /** Seed keywords to research */
13
9
  seedKeywords: z.array(z.string()),
@@ -23,7 +19,7 @@ export const SeoKeywordResearchOutputSchema = z.object({
23
19
  keyword: z.string(),
24
20
  searchVolume: z.number(),
25
21
  keywordDifficulty: z.number(),
26
- cpc: z.string(),
22
+ cpc: z.number(),
27
23
  searchIntent: z.enum(['informational', 'commercial', 'navigational', 'transactional']),
28
24
  })),
29
25
  totalResearched: z.number(),
@@ -72,9 +68,7 @@ function normalizeSearchIntent(intent) {
72
68
  }
73
69
  return 'informational';
74
70
  }
75
- // =============================================================================
76
71
  // Node Definition
77
- // =============================================================================
78
72
  /**
79
73
  * SEO Keyword Research Node
80
74
  *
@@ -134,7 +128,7 @@ export const seoKeywordResearchNode = defineNode({
134
128
  keyword: kw.keyword,
135
129
  searchVolume: kw.keyword_info?.search_volume || 0,
136
130
  keywordDifficulty: kw.keyword_properties?.keyword_difficulty || 0,
137
- cpc: (kw.keyword_info?.cpc || 0).toString(),
131
+ cpc: kw.keyword_info?.cpc || 0,
138
132
  searchIntent: normalizeSearchIntent(kw.search_intent_info?.main_intent),
139
133
  });
140
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-research.js","sourceRoot":"","sources":["../../../src/integrations/dataforseo/keyword-research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyword-research.js","sourceRoot":"","sources":["../../../src/integrations/dataforseo/keyword-research.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare const devtoCreateArticleNode: import("@jam-nodes/core").NodeDefinition<{
2
+ title: string;
3
+ bodyMarkdown: string;
4
+ description?: string | undefined;
5
+ published?: boolean | undefined;
6
+ tags?: string[] | undefined;
7
+ series?: string | undefined;
8
+ canonicalUrl?: string | undefined;
9
+ }, {
10
+ url: string;
11
+ id: number;
12
+ title: string;
13
+ description: string | null;
14
+ slug: string;
15
+ published: boolean;
16
+ publishedAt: string | null;
17
+ tags: string[];
18
+ readingTimeMinutes: number;
19
+ }>;
20
+ //# sourceMappingURL=create-article.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-article.d.ts","sourceRoot":"","sources":["../../../src/integrations/devto/create-article.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAmEjC,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { defineNode } from '@jam-nodes/core';
2
+ import { fetchWithRetry } from '../../utils/http.js';
3
+ import { DevtoCreateArticleInputSchema, DevtoCreateArticleOutputSchema, normalizeDevtoArticle, } from './schemas.js';
4
+ const DEVTO_API_BASE = 'https://dev.to/api';
5
+ export const devtoCreateArticleNode = defineNode({
6
+ type: 'devto_create_article',
7
+ name: 'Dev.to Create Article',
8
+ description: 'Create a new article on Dev.to (defaults to draft)',
9
+ category: 'integration',
10
+ inputSchema: DevtoCreateArticleInputSchema,
11
+ outputSchema: DevtoCreateArticleOutputSchema,
12
+ estimatedDuration: 5,
13
+ capabilities: {
14
+ supportsRerun: true,
15
+ },
16
+ executor: async (input, context) => {
17
+ try {
18
+ const apiKey = context.credentials?.devto?.apiKey;
19
+ if (!apiKey) {
20
+ return {
21
+ success: false,
22
+ error: 'Dev.to API key not configured. Please provide context.credentials.devto.apiKey.',
23
+ };
24
+ }
25
+ const articleBody = {
26
+ title: input.title,
27
+ body_markdown: input.bodyMarkdown,
28
+ published: input.published ?? false,
29
+ };
30
+ if (input.tags !== undefined)
31
+ articleBody['tags'] = input.tags;
32
+ if (input.series !== undefined)
33
+ articleBody['series'] = input.series;
34
+ if (input.canonicalUrl !== undefined)
35
+ articleBody['canonical_url'] = input.canonicalUrl;
36
+ if (input.description !== undefined)
37
+ articleBody['description'] = input.description;
38
+ const response = await fetchWithRetry(`${DEVTO_API_BASE}/articles`, {
39
+ method: 'POST',
40
+ headers: {
41
+ 'api-key': apiKey,
42
+ 'Content-Type': 'application/json',
43
+ },
44
+ body: JSON.stringify({ article: articleBody }),
45
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
46
+ if (!response.ok) {
47
+ const errorText = await response.text();
48
+ return {
49
+ success: false,
50
+ error: `Dev.to API error ${response.status}: ${errorText}`,
51
+ };
52
+ }
53
+ const data = (await response.json());
54
+ return {
55
+ success: true,
56
+ output: normalizeDevtoArticle(data),
57
+ };
58
+ }
59
+ catch (error) {
60
+ return {
61
+ success: false,
62
+ error: error instanceof Error ? error.message : 'Unknown error',
63
+ };
64
+ }
65
+ },
66
+ });
67
+ //# sourceMappingURL=create-article.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-article.js","sourceRoot":"","sources":["../../../src/integrations/devto/create-article.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAG9B,qBAAqB,GACtB,MAAM,cAAc,CAAA;AAErB,MAAM,cAAc,GAAG,oBAAoB,CAAA;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,oDAAoD;IACjE,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,6BAA6B;IAC1C,YAAY,EAAE,8BAA8B;IAC5C,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE;QACZ,aAAa,EAAE,IAAI;KACpB;IACD,QAAQ,EAAE,KAAK,EAAE,KAA8B,EAAE,OAAO,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAA;YACjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EACH,iFAAiF;iBACpF,CAAA;YACH,CAAC;YAED,MAAM,WAAW,GAA4B;gBAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,aAAa,EAAE,KAAK,CAAC,YAAY;gBACjC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;aACpC,CAAA;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;YACpE,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;gBAAE,WAAW,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY,CAAA;YACvF,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;gBACjC,WAAW,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,WAAW,CAAA;YAEhD,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,GAAG,cAAc,WAAW,EAC5B;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,SAAS,EAAE,MAAM;oBACjB,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;aAC/C,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CACrD,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBACvC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;iBAC3D,CAAA;YACH,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAA;YAEvD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC;aACpC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const devtoCredential: import("@jam-nodes/core").ApiKeyCredentialDefinition;
2
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/integrations/devto/credentials.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,sDAa1B,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { defineApiKeyCredential } from '@jam-nodes/core';
3
+ export const devtoCredential = defineApiKeyCredential({
4
+ name: 'devto',
5
+ displayName: 'Dev.to API Key',
6
+ documentationUrl: 'https://developers.forem.com/api#section/Authentication',
7
+ schema: z.object({
8
+ apiKey: z.string(),
9
+ }),
10
+ authenticate: {
11
+ type: 'header',
12
+ properties: {
13
+ 'api-key': '{{apiKey}}',
14
+ },
15
+ },
16
+ });
17
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/integrations/devto/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;IACpD,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,gBAAgB;IAC7B,gBAAgB,EAAE,yDAAyD;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,YAAY;SACxB;KACF;CACF,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ export declare const devtoGetArticlesNode: import("@jam-nodes/core").NodeDefinition<{
2
+ username?: string | undefined;
3
+ page?: number | undefined;
4
+ perPage?: number | undefined;
5
+ }, {
6
+ articles: {
7
+ url: string;
8
+ id: number;
9
+ title: string;
10
+ description: string | null;
11
+ slug: string;
12
+ published: boolean;
13
+ publishedAt: string | null;
14
+ tags: string[];
15
+ readingTimeMinutes: number;
16
+ }[];
17
+ page: number;
18
+ perPage: number;
19
+ count: number;
20
+ }>;
21
+ //# sourceMappingURL=get-articles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-articles.d.ts","sourceRoot":"","sources":["../../../src/integrations/devto/get-articles.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;EAkF/B,CAAA"}
@@ -0,0 +1,78 @@
1
+ import { defineNode } from '@jam-nodes/core';
2
+ import { fetchWithRetry } from '../../utils/http.js';
3
+ import { DevtoGetArticlesInputSchema, DevtoGetArticlesOutputSchema, normalizeDevtoArticle, } from './schemas.js';
4
+ const DEVTO_API_BASE = 'https://dev.to/api';
5
+ export const devtoGetArticlesNode = defineNode({
6
+ type: 'devto_get_articles',
7
+ name: 'Dev.to Get Articles',
8
+ description: "Retrieve articles from Dev.to. If username is omitted, returns the authenticated user's articles.",
9
+ category: 'integration',
10
+ inputSchema: DevtoGetArticlesInputSchema,
11
+ outputSchema: DevtoGetArticlesOutputSchema,
12
+ estimatedDuration: 5,
13
+ capabilities: {
14
+ supportsRerun: true,
15
+ },
16
+ executor: async (input, context) => {
17
+ try {
18
+ const apiKey = context.credentials?.devto?.apiKey;
19
+ if (!apiKey) {
20
+ return {
21
+ success: false,
22
+ error: 'Dev.to API key not configured. Please provide context.credentials.devto.apiKey.',
23
+ };
24
+ }
25
+ const page = input.page ?? 1;
26
+ const perPage = input.perPage ?? 30;
27
+ let url;
28
+ if (input.username) {
29
+ // List articles for a public username
30
+ const params = new URLSearchParams({
31
+ username: input.username,
32
+ page: String(page),
33
+ per_page: String(perPage),
34
+ });
35
+ url = `${DEVTO_API_BASE}/articles?${params.toString()}`;
36
+ }
37
+ else {
38
+ // List authenticated user's own articles
39
+ const params = new URLSearchParams({
40
+ page: String(page),
41
+ per_page: String(perPage),
42
+ });
43
+ url = `${DEVTO_API_BASE}/articles/me?${params.toString()}`;
44
+ }
45
+ const response = await fetchWithRetry(url, {
46
+ method: 'GET',
47
+ headers: {
48
+ 'api-key': apiKey,
49
+ },
50
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
51
+ if (!response.ok) {
52
+ const errorText = await response.text();
53
+ return {
54
+ success: false,
55
+ error: `Dev.to API error ${response.status}: ${errorText}`,
56
+ };
57
+ }
58
+ const data = (await response.json());
59
+ const articles = data.map(normalizeDevtoArticle);
60
+ return {
61
+ success: true,
62
+ output: {
63
+ articles,
64
+ page,
65
+ perPage,
66
+ count: articles.length,
67
+ },
68
+ };
69
+ }
70
+ catch (error) {
71
+ return {
72
+ success: false,
73
+ error: error instanceof Error ? error.message : 'Unknown error',
74
+ };
75
+ }
76
+ },
77
+ });
78
+ //# sourceMappingURL=get-articles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-articles.js","sourceRoot":"","sources":["../../../src/integrations/devto/get-articles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { devtoCreateArticleNode } from './create-article.js';
2
+ export { devtoUpdateArticleNode } from './update-article.js';
3
+ export { devtoGetArticlesNode } from './get-articles.js';
4
+ export { DevtoArticleSchema, DevtoCreateArticleInputSchema, DevtoCreateArticleOutputSchema, DevtoUpdateArticleInputSchema, DevtoUpdateArticleOutputSchema, DevtoGetArticlesInputSchema, DevtoGetArticlesOutputSchema, normalizeDevtoArticle, type DevtoArticle, type DevtoCreateArticleInput, type DevtoCreateArticleOutput, type DevtoUpdateArticleInput, type DevtoUpdateArticleOutput, type DevtoGetArticlesInput, type DevtoGetArticlesOutput, } from './schemas.js';
5
+ export { devtoCredential } from './credentials.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/devto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { devtoCreateArticleNode } from './create-article.js';
2
+ export { devtoUpdateArticleNode } from './update-article.js';
3
+ export { devtoGetArticlesNode } from './get-articles.js';
4
+ export { DevtoArticleSchema, DevtoCreateArticleInputSchema, DevtoCreateArticleOutputSchema, DevtoUpdateArticleInputSchema, DevtoUpdateArticleOutputSchema, DevtoGetArticlesInputSchema, DevtoGetArticlesOutputSchema, normalizeDevtoArticle, } from './schemas.js';
5
+ export { devtoCredential } from './credentials.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/devto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,GAQtB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,243 @@
1
+ import { z } from 'zod';
2
+ export declare const DevtoArticleSchema: z.ZodObject<{
3
+ id: z.ZodNumber;
4
+ title: z.ZodString;
5
+ slug: z.ZodString;
6
+ url: z.ZodString;
7
+ published: z.ZodBoolean;
8
+ publishedAt: z.ZodNullable<z.ZodString>;
9
+ tags: z.ZodArray<z.ZodString, "many">;
10
+ description: z.ZodNullable<z.ZodString>;
11
+ readingTimeMinutes: z.ZodNumber;
12
+ }, "strip", z.ZodTypeAny, {
13
+ url: string;
14
+ id: number;
15
+ title: string;
16
+ description: string | null;
17
+ slug: string;
18
+ published: boolean;
19
+ publishedAt: string | null;
20
+ tags: string[];
21
+ readingTimeMinutes: number;
22
+ }, {
23
+ url: string;
24
+ id: number;
25
+ title: string;
26
+ description: string | null;
27
+ slug: string;
28
+ published: boolean;
29
+ publishedAt: string | null;
30
+ tags: string[];
31
+ readingTimeMinutes: number;
32
+ }>;
33
+ export declare const DevtoCreateArticleInputSchema: z.ZodObject<{
34
+ title: z.ZodString;
35
+ bodyMarkdown: z.ZodString;
36
+ published: z.ZodOptional<z.ZodBoolean>;
37
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
38
+ series: z.ZodOptional<z.ZodString>;
39
+ canonicalUrl: z.ZodOptional<z.ZodString>;
40
+ description: z.ZodOptional<z.ZodString>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ title: string;
43
+ bodyMarkdown: string;
44
+ description?: string | undefined;
45
+ published?: boolean | undefined;
46
+ tags?: string[] | undefined;
47
+ series?: string | undefined;
48
+ canonicalUrl?: string | undefined;
49
+ }, {
50
+ title: string;
51
+ bodyMarkdown: string;
52
+ description?: string | undefined;
53
+ published?: boolean | undefined;
54
+ tags?: string[] | undefined;
55
+ series?: string | undefined;
56
+ canonicalUrl?: string | undefined;
57
+ }>;
58
+ export declare const DevtoUpdateArticleInputSchema: z.ZodObject<{
59
+ id: z.ZodNumber;
60
+ title: z.ZodOptional<z.ZodString>;
61
+ bodyMarkdown: z.ZodOptional<z.ZodString>;
62
+ published: z.ZodOptional<z.ZodBoolean>;
63
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ }, "strip", z.ZodTypeAny, {
66
+ id: number;
67
+ title?: string | undefined;
68
+ description?: string | undefined;
69
+ published?: boolean | undefined;
70
+ tags?: string[] | undefined;
71
+ bodyMarkdown?: string | undefined;
72
+ }, {
73
+ id: number;
74
+ title?: string | undefined;
75
+ description?: string | undefined;
76
+ published?: boolean | undefined;
77
+ tags?: string[] | undefined;
78
+ bodyMarkdown?: string | undefined;
79
+ }>;
80
+ export declare const DevtoGetArticlesInputSchema: z.ZodObject<{
81
+ username: z.ZodOptional<z.ZodString>;
82
+ page: z.ZodOptional<z.ZodNumber>;
83
+ perPage: z.ZodOptional<z.ZodNumber>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ username?: string | undefined;
86
+ page?: number | undefined;
87
+ perPage?: number | undefined;
88
+ }, {
89
+ username?: string | undefined;
90
+ page?: number | undefined;
91
+ perPage?: number | undefined;
92
+ }>;
93
+ export declare const DevtoCreateArticleOutputSchema: z.ZodObject<{
94
+ id: z.ZodNumber;
95
+ title: z.ZodString;
96
+ slug: z.ZodString;
97
+ url: z.ZodString;
98
+ published: z.ZodBoolean;
99
+ publishedAt: z.ZodNullable<z.ZodString>;
100
+ tags: z.ZodArray<z.ZodString, "many">;
101
+ description: z.ZodNullable<z.ZodString>;
102
+ readingTimeMinutes: z.ZodNumber;
103
+ }, "strip", z.ZodTypeAny, {
104
+ url: string;
105
+ id: number;
106
+ title: string;
107
+ description: string | null;
108
+ slug: string;
109
+ published: boolean;
110
+ publishedAt: string | null;
111
+ tags: string[];
112
+ readingTimeMinutes: number;
113
+ }, {
114
+ url: string;
115
+ id: number;
116
+ title: string;
117
+ description: string | null;
118
+ slug: string;
119
+ published: boolean;
120
+ publishedAt: string | null;
121
+ tags: string[];
122
+ readingTimeMinutes: number;
123
+ }>;
124
+ export declare const DevtoUpdateArticleOutputSchema: z.ZodObject<{
125
+ id: z.ZodNumber;
126
+ title: z.ZodString;
127
+ slug: z.ZodString;
128
+ url: z.ZodString;
129
+ published: z.ZodBoolean;
130
+ publishedAt: z.ZodNullable<z.ZodString>;
131
+ tags: z.ZodArray<z.ZodString, "many">;
132
+ description: z.ZodNullable<z.ZodString>;
133
+ readingTimeMinutes: z.ZodNumber;
134
+ }, "strip", z.ZodTypeAny, {
135
+ url: string;
136
+ id: number;
137
+ title: string;
138
+ description: string | null;
139
+ slug: string;
140
+ published: boolean;
141
+ publishedAt: string | null;
142
+ tags: string[];
143
+ readingTimeMinutes: number;
144
+ }, {
145
+ url: string;
146
+ id: number;
147
+ title: string;
148
+ description: string | null;
149
+ slug: string;
150
+ published: boolean;
151
+ publishedAt: string | null;
152
+ tags: string[];
153
+ readingTimeMinutes: number;
154
+ }>;
155
+ export declare const DevtoGetArticlesOutputSchema: z.ZodObject<{
156
+ articles: z.ZodArray<z.ZodObject<{
157
+ id: z.ZodNumber;
158
+ title: z.ZodString;
159
+ slug: z.ZodString;
160
+ url: z.ZodString;
161
+ published: z.ZodBoolean;
162
+ publishedAt: z.ZodNullable<z.ZodString>;
163
+ tags: z.ZodArray<z.ZodString, "many">;
164
+ description: z.ZodNullable<z.ZodString>;
165
+ readingTimeMinutes: z.ZodNumber;
166
+ }, "strip", z.ZodTypeAny, {
167
+ url: string;
168
+ id: number;
169
+ title: string;
170
+ description: string | null;
171
+ slug: string;
172
+ published: boolean;
173
+ publishedAt: string | null;
174
+ tags: string[];
175
+ readingTimeMinutes: number;
176
+ }, {
177
+ url: string;
178
+ id: number;
179
+ title: string;
180
+ description: string | null;
181
+ slug: string;
182
+ published: boolean;
183
+ publishedAt: string | null;
184
+ tags: string[];
185
+ readingTimeMinutes: number;
186
+ }>, "many">;
187
+ page: z.ZodNumber;
188
+ perPage: z.ZodNumber;
189
+ count: z.ZodNumber;
190
+ }, "strip", z.ZodTypeAny, {
191
+ count: number;
192
+ page: number;
193
+ perPage: number;
194
+ articles: {
195
+ url: string;
196
+ id: number;
197
+ title: string;
198
+ description: string | null;
199
+ slug: string;
200
+ published: boolean;
201
+ publishedAt: string | null;
202
+ tags: string[];
203
+ readingTimeMinutes: number;
204
+ }[];
205
+ }, {
206
+ count: number;
207
+ page: number;
208
+ perPage: number;
209
+ articles: {
210
+ url: string;
211
+ id: number;
212
+ title: string;
213
+ description: string | null;
214
+ slug: string;
215
+ published: boolean;
216
+ publishedAt: string | null;
217
+ tags: string[];
218
+ readingTimeMinutes: number;
219
+ }[];
220
+ }>;
221
+ export interface DevtoApiArticle {
222
+ id: number;
223
+ title: string;
224
+ slug: string;
225
+ url: string;
226
+ published: boolean;
227
+ published_at: string | null;
228
+ tag_list: string[] | string;
229
+ description: string | null;
230
+ reading_time_minutes: number;
231
+ }
232
+ /**
233
+ * Normalize a raw Dev.to API article response into the minimal output shape.
234
+ */
235
+ export declare function normalizeDevtoArticle(raw: DevtoApiArticle): DevtoArticle;
236
+ export type DevtoArticle = z.infer<typeof DevtoArticleSchema>;
237
+ export type DevtoCreateArticleInput = z.infer<typeof DevtoCreateArticleInputSchema>;
238
+ export type DevtoCreateArticleOutput = z.infer<typeof DevtoCreateArticleOutputSchema>;
239
+ export type DevtoUpdateArticleInput = z.infer<typeof DevtoUpdateArticleInputSchema>;
240
+ export type DevtoUpdateArticleOutput = z.infer<typeof DevtoUpdateArticleOutputSchema>;
241
+ export type DevtoGetArticlesInput = z.infer<typeof DevtoGetArticlesInputSchema>;
242
+ export type DevtoGetArticlesOutput = z.infer<typeof DevtoGetArticlesOutputSchema>;
243
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/integrations/devto/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAIF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;EAQxC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;EAOxC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;EAItC,CAAA;AAIF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAA;AAEhE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAA;AAEhE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvC,CAAA;AAGF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,CAmBxE;AAGD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAA"}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ // Normalized article shape shared across create/update/get
3
+ export const DevtoArticleSchema = z.object({
4
+ id: z.number(),
5
+ title: z.string(),
6
+ slug: z.string(),
7
+ url: z.string(),
8
+ published: z.boolean(),
9
+ publishedAt: z.string().nullable(),
10
+ tags: z.array(z.string()),
11
+ description: z.string().nullable(),
12
+ readingTimeMinutes: z.number(),
13
+ });
14
+ // Input schemas
15
+ export const DevtoCreateArticleInputSchema = z.object({
16
+ title: z.string().min(1),
17
+ bodyMarkdown: z.string().min(1),
18
+ published: z.boolean().optional(),
19
+ tags: z.array(z.string()).optional(),
20
+ series: z.string().optional(),
21
+ canonicalUrl: z.string().url().optional(),
22
+ description: z.string().optional(),
23
+ });
24
+ export const DevtoUpdateArticleInputSchema = z.object({
25
+ id: z.number().int().positive(),
26
+ title: z.string().min(1).optional(),
27
+ bodyMarkdown: z.string().min(1).optional(),
28
+ published: z.boolean().optional(),
29
+ tags: z.array(z.string()).optional(),
30
+ description: z.string().optional(),
31
+ });
32
+ export const DevtoGetArticlesInputSchema = z.object({
33
+ username: z.string().optional(),
34
+ page: z.number().int().positive().optional(),
35
+ perPage: z.number().int().positive().max(1000).optional(),
36
+ });
37
+ // Output schemas
38
+ export const DevtoCreateArticleOutputSchema = DevtoArticleSchema;
39
+ export const DevtoUpdateArticleOutputSchema = DevtoArticleSchema;
40
+ export const DevtoGetArticlesOutputSchema = z.object({
41
+ articles: z.array(DevtoArticleSchema),
42
+ page: z.number(),
43
+ perPage: z.number(),
44
+ count: z.number(),
45
+ });
46
+ /**
47
+ * Normalize a raw Dev.to API article response into the minimal output shape.
48
+ */
49
+ export function normalizeDevtoArticle(raw) {
50
+ return {
51
+ id: raw.id,
52
+ title: raw.title,
53
+ slug: raw.slug,
54
+ url: raw.url,
55
+ published: raw.published,
56
+ publishedAt: raw.published_at ?? null,
57
+ tags: Array.isArray(raw.tag_list)
58
+ ? raw.tag_list
59
+ : raw.tag_list
60
+ ? raw.tag_list
61
+ .split(',')
62
+ .map((t) => t.trim())
63
+ .filter(Boolean)
64
+ : [],
65
+ description: raw.description ?? null,
66
+ readingTimeMinutes: raw.reading_time_minutes ?? 0,
67
+ };
68
+ }
69
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/integrations/devto/schemas.ts"],"names":[],"mappings":"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"}