@jam-nodes/nodes 0.2.4 → 0.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 (50) hide show
  1. package/dist/ai/analyze-posts.d.ts +4 -2
  2. package/dist/ai/analyze-posts.d.ts.map +1 -1
  3. package/dist/ai/analyze-posts.js +48 -44
  4. package/dist/ai/analyze-posts.js.map +1 -1
  5. package/dist/ai/draft-emails.d.ts +4 -2
  6. package/dist/ai/draft-emails.d.ts.map +1 -1
  7. package/dist/ai/draft-emails.js +57 -42
  8. package/dist/ai/draft-emails.js.map +1 -1
  9. package/dist/ai/keyword-generator.d.ts +1 -1
  10. package/dist/ai/keyword-generator.d.ts.map +1 -1
  11. package/dist/ai/keyword-generator.js +45 -20
  12. package/dist/ai/keyword-generator.js.map +1 -1
  13. package/dist/index.d.ts +25 -8
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/integrations/apollo/search-contacts.d.ts +8 -8
  16. package/dist/integrations/apollo/search-contacts.d.ts.map +1 -1
  17. package/dist/integrations/apollo/search-contacts.js +110 -26
  18. package/dist/integrations/apollo/search-contacts.js.map +1 -1
  19. package/dist/integrations/dataforseo/keyword-research.d.ts +1 -1
  20. package/dist/integrations/dataforseo/keyword-research.d.ts.map +1 -1
  21. package/dist/integrations/dataforseo/keyword-research.js +59 -9
  22. package/dist/integrations/dataforseo/keyword-research.js.map +1 -1
  23. package/dist/integrations/dataforseo/seo-audit.d.ts +1 -1
  24. package/dist/integrations/dataforseo/seo-audit.d.ts.map +1 -1
  25. package/dist/integrations/dataforseo/seo-audit.js +52 -23
  26. package/dist/integrations/dataforseo/seo-audit.js.map +1 -1
  27. package/dist/integrations/openai/sora-video.d.ts +1 -1
  28. package/dist/integrations/openai/sora-video.d.ts.map +1 -1
  29. package/dist/integrations/openai/sora-video.js +82 -7
  30. package/dist/integrations/openai/sora-video.js.map +1 -1
  31. package/dist/integrations/social/linkedin-monitor.d.ts +1 -1
  32. package/dist/integrations/social/linkedin-monitor.d.ts.map +1 -1
  33. package/dist/integrations/social/linkedin-monitor.js +69 -36
  34. package/dist/integrations/social/linkedin-monitor.js.map +1 -1
  35. package/dist/integrations/social/reddit-monitor.d.ts.map +1 -1
  36. package/dist/integrations/social/reddit-monitor.js +5 -12
  37. package/dist/integrations/social/reddit-monitor.js.map +1 -1
  38. package/dist/integrations/social/twitter-monitor.d.ts +20 -3
  39. package/dist/integrations/social/twitter-monitor.d.ts.map +1 -1
  40. package/dist/integrations/social/twitter-monitor.js +44 -28
  41. package/dist/integrations/social/twitter-monitor.js.map +1 -1
  42. package/dist/utils/http.d.ts +60 -0
  43. package/dist/utils/http.d.ts.map +1 -0
  44. package/dist/utils/http.js +126 -0
  45. package/dist/utils/http.js.map +1 -0
  46. package/dist/utils/index.d.ts +2 -0
  47. package/dist/utils/index.d.ts.map +1 -0
  48. package/dist/utils/index.js +2 -0
  49. package/dist/utils/index.js.map +1 -0
  50. package/package.json +1 -1
@@ -1,5 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { defineNode } from '@jam-nodes/core';
3
+ import { fetchWithRetry, sleep } from '../../utils/http.js';
4
+ // =============================================================================
5
+ // Constants
6
+ // =============================================================================
7
+ const APOLLO_API_BASE = 'https://api.apollo.io/api/v1';
3
8
  // =============================================================================
4
9
  // Schemas
5
10
  // =============================================================================
@@ -42,13 +47,92 @@ export const SearchContactsOutputSchema = z.object({
42
47
  totalFound: z.number(),
43
48
  });
44
49
  // =============================================================================
50
+ // Apollo API Functions
51
+ // =============================================================================
52
+ /**
53
+ * Search Apollo for contacts matching criteria
54
+ */
55
+ async function searchApolloContacts(apiKey, params) {
56
+ const defaultLocation = params.personLocations && params.personLocations.length > 0
57
+ ? params.personLocations
58
+ : ['United States'];
59
+ const requestBody = {
60
+ ...(params.personTitles && params.personTitles.length > 0 && {
61
+ person_titles: params.personTitles
62
+ }),
63
+ person_locations: defaultLocation,
64
+ include_similar_titles: params.includeSimilarTitles ?? true,
65
+ page: 1,
66
+ per_page: Math.min(params.limit || 100, 100),
67
+ ...(params.keywords && { q_keywords: params.keywords }),
68
+ ...(params.personSeniorities && params.personSeniorities.length > 0 && {
69
+ person_seniorities: params.personSeniorities
70
+ }),
71
+ ...(params.organizationLocations && params.organizationLocations.length > 0 && {
72
+ organization_locations: params.organizationLocations
73
+ }),
74
+ ...(params.employeeRanges && params.employeeRanges.length > 0 && {
75
+ organization_num_employees_ranges: params.employeeRanges
76
+ }),
77
+ ...(params.technologies && params.technologies.length > 0 && {
78
+ currently_using_any_of_technology_uids: params.technologies
79
+ }),
80
+ ...(params.industryTagIds && params.industryTagIds.length > 0 && {
81
+ organization_industry_tag_ids: params.industryTagIds
82
+ }),
83
+ ...(params.departments && params.departments.length > 0 && {
84
+ person_departments: params.departments
85
+ }),
86
+ };
87
+ const response = await fetchWithRetry(`${APOLLO_API_BASE}/mixed_people/api_search`, {
88
+ method: 'POST',
89
+ headers: {
90
+ 'Content-Type': 'application/json',
91
+ 'Cache-Control': 'no-cache',
92
+ 'X-Api-Key': apiKey,
93
+ },
94
+ body: JSON.stringify(requestBody),
95
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
96
+ if (!response.ok) {
97
+ const errorText = await response.text();
98
+ throw new Error(`Apollo API error: ${response.status} - ${errorText}`);
99
+ }
100
+ const data = await response.json();
101
+ const allPeople = data.people || [];
102
+ // Filter to contacts with has_email flag (email must be revealed via enrichment)
103
+ return allPeople.filter((person) => person.has_email === true);
104
+ }
105
+ /**
106
+ * Enrich a contact to reveal their email address
107
+ */
108
+ async function enrichApolloContact(apiKey, personId) {
109
+ const response = await fetchWithRetry(`${APOLLO_API_BASE}/people/match`, {
110
+ method: 'POST',
111
+ headers: {
112
+ 'Content-Type': 'application/json',
113
+ 'Cache-Control': 'no-cache',
114
+ 'X-Api-Key': apiKey,
115
+ },
116
+ body: JSON.stringify({
117
+ id: personId,
118
+ reveal_personal_emails: true,
119
+ }),
120
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
121
+ if (!response.ok) {
122
+ const errorText = await response.text();
123
+ throw new Error(`Apollo enrich error: ${response.status} - ${errorText}`);
124
+ }
125
+ const data = await response.json();
126
+ return data.person || null;
127
+ }
128
+ // =============================================================================
45
129
  // Node Definition
46
130
  // =============================================================================
47
131
  /**
48
132
  * Search Contacts Node
49
133
  *
50
134
  * Searches for contacts using Apollo.io API with email enrichment.
51
- * Requires `context.services.apollo` to be provided by the host application.
135
+ * Requires `context.credentials.apollo.apiKey` to be provided.
52
136
  *
53
137
  * Process:
54
138
  * 1. Search Apollo for contacts matching criteria
@@ -79,22 +163,27 @@ export const searchContactsNode = defineNode({
79
163
  },
80
164
  executor: async (input, context) => {
81
165
  try {
82
- // Require Apollo service
83
- if (!context.services?.apollo) {
166
+ // Check for API key
167
+ const apiKey = context.credentials?.apollo?.apiKey;
168
+ if (!apiKey) {
84
169
  return {
85
170
  success: false,
86
- error: 'Apollo service not configured. Please provide context.services.apollo.',
171
+ error: 'Apollo API key not configured. Please provide context.credentials.apollo.apiKey.',
87
172
  };
88
173
  }
89
174
  // Search contacts
90
- const results = await context.services.apollo.searchContacts({
175
+ const results = await searchApolloContacts(apiKey, {
91
176
  personTitles: input.personTitles,
92
177
  personLocations: input.personLocations,
93
178
  organizationLocations: input.organizationLocations,
179
+ employeeRanges: input.employeeRanges,
94
180
  keywords: input.keywords,
95
181
  limit: Math.min(input.limit || 10, 100),
182
+ includeSimilarTitles: input.includeSimilarTitles,
96
183
  personSeniorities: input.personSeniorities,
97
184
  technologies: input.technologies,
185
+ industryTagIds: input.industryTagIds,
186
+ departments: input.departments,
98
187
  });
99
188
  if (results.length === 0) {
100
189
  return {
@@ -110,42 +199,37 @@ export const searchContactsNode = defineNode({
110
199
  for (const contact of results) {
111
200
  if (contact.id) {
112
201
  try {
113
- const enriched = await context.services.apollo.enrichContact(contact.id);
114
- if (enriched.email) {
202
+ const enriched = await enrichApolloContact(apiKey, contact.id);
203
+ if (enriched?.email) {
204
+ const lastName = enriched.last_name || enriched.last_name_obfuscated || '';
205
+ const fullName = enriched.name || `${enriched.first_name || ''} ${lastName}`.trim() || 'Unknown';
206
+ const company = enriched.organization_name || enriched.organization?.name || 'Unknown';
115
207
  enrichedContacts.push({
116
208
  id: enriched.id,
117
- name: enriched.name,
118
- firstName: enriched.firstName,
119
- lastName: enriched.lastName,
209
+ name: fullName,
210
+ firstName: enriched.first_name,
211
+ lastName: lastName || undefined,
120
212
  email: enriched.email,
121
213
  title: enriched.title,
122
- company: enriched.company,
123
- linkedinUrl: enriched.linkedinUrl,
124
- location: enriched.location,
214
+ company,
215
+ linkedinUrl: enriched.linkedin_url,
216
+ location: [enriched.city, enriched.state, enriched.country]
217
+ .filter(Boolean)
218
+ .join(', ') || null,
125
219
  });
126
220
  }
221
+ // Small delay to avoid rate limiting
222
+ await sleep(200);
127
223
  }
128
224
  catch {
129
225
  // Skip contacts that fail to enrich
130
226
  }
131
227
  }
132
228
  }
133
- // Transform to output format
134
- const contacts = enrichedContacts.map(person => ({
135
- id: person.id,
136
- name: person.name,
137
- firstName: person.firstName,
138
- lastName: person.lastName,
139
- email: person.email,
140
- title: person.title,
141
- company: person.company || 'Unknown',
142
- linkedinUrl: person.linkedinUrl || null,
143
- location: person.location || null,
144
- }));
145
229
  return {
146
230
  success: true,
147
231
  output: {
148
- contacts,
232
+ contacts: enrichedContacts,
149
233
  totalFound: results.length,
150
234
  },
151
235
  };
@@ -1 +1 @@
1
- {"version":3,"file":"search-contacts.js","sourceRoot":"","sources":["../../../src/integrations/apollo/search-contacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-contacts.js","sourceRoot":"","sources":["../../../src/integrations/apollo/search-contacts.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ export type SeoKeywordResearchOutput = z.infer<typeof SeoKeywordResearchOutputSc
67
67
  * Takes seed keywords and enriches them with search volume, keyword difficulty,
68
68
  * CPC, and search intent data using DataForSEO API.
69
69
  *
70
- * Requires `context.services.dataForSeo` to be provided by the host application.
70
+ * Requires `context.credentials.dataForSeo.apiToken` to be provided.
71
71
  *
72
72
  * @example
73
73
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-research.d.ts","sourceRoot":"","sources":["../../../src/integrations/dataforseo/keyword-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,6BAA6B;IACxC,gCAAgC;;IAEhC,yCAAyC;;IAEzC,oCAAoC;;IAEpC,0CAA0C;;;;;;;;;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAMtF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;EA2EjC,CAAC"}
1
+ {"version":3,"file":"keyword-research.d.ts","sourceRoot":"","sources":["../../../src/integrations/dataforseo/keyword-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB,eAAO,MAAM,6BAA6B;IACxC,gCAAgC;;IAEhC,yCAAyC;;IAEzC,oCAAoC;;IAEpC,0CAA0C;;;;;;;;;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAsEtF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;EAyEjC,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { defineNode } from '@jam-nodes/core';
3
+ import { fetchWithRetry } from '../../utils/http.js';
4
+ // =============================================================================
5
+ // Constants
6
+ // =============================================================================
7
+ const DATAFORSEO_BASE_URL = 'https://api.dataforseo.com/v3';
3
8
  // =============================================================================
4
9
  // Schemas
5
10
  // =============================================================================
@@ -24,6 +29,50 @@ export const SeoKeywordResearchOutputSchema = z.object({
24
29
  totalResearched: z.number(),
25
30
  });
26
31
  // =============================================================================
32
+ // API Functions
33
+ // =============================================================================
34
+ /**
35
+ * Get keyword ideas from DataForSEO
36
+ */
37
+ async function getKeywordIdeas(apiToken, keywords, options) {
38
+ const requestBody = [{
39
+ keywords,
40
+ location_code: options.locationCode || 2840,
41
+ language_code: options.languageCode || 'en',
42
+ include_serp_info: false,
43
+ include_clickstream_data: false,
44
+ limit: options.limit || 30,
45
+ offset: 0,
46
+ }];
47
+ const response = await fetchWithRetry(`${DATAFORSEO_BASE_URL}/dataforseo_labs/google/keyword_ideas/live`, {
48
+ method: 'POST',
49
+ headers: {
50
+ 'Authorization': `Basic ${apiToken}`,
51
+ 'Content-Type': 'application/json',
52
+ },
53
+ body: JSON.stringify(requestBody),
54
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
55
+ if (!response.ok) {
56
+ const errorText = await response.text();
57
+ throw new Error(`DataForSEO API error: ${response.status} - ${errorText}`);
58
+ }
59
+ const data = await response.json();
60
+ if (data.status_code !== 20000) {
61
+ throw new Error(`DataForSEO API error: ${data.status_message}`);
62
+ }
63
+ return data.tasks?.[0]?.result?.[0]?.items || [];
64
+ }
65
+ /**
66
+ * Normalize search intent to valid enum value
67
+ */
68
+ function normalizeSearchIntent(intent) {
69
+ const normalized = (intent || 'informational').toLowerCase();
70
+ if (['informational', 'commercial', 'navigational', 'transactional'].includes(normalized)) {
71
+ return normalized;
72
+ }
73
+ return 'informational';
74
+ }
75
+ // =============================================================================
27
76
  // Node Definition
28
77
  // =============================================================================
29
78
  /**
@@ -32,7 +81,7 @@ export const SeoKeywordResearchOutputSchema = z.object({
32
81
  * Takes seed keywords and enriches them with search volume, keyword difficulty,
33
82
  * CPC, and search intent data using DataForSEO API.
34
83
  *
35
- * Requires `context.services.dataForSeo` to be provided by the host application.
84
+ * Requires `context.credentials.dataForSeo.apiToken` to be provided.
36
85
  *
37
86
  * @example
38
87
  * ```typescript
@@ -56,11 +105,12 @@ export const seoKeywordResearchNode = defineNode({
56
105
  },
57
106
  executor: async (input, context) => {
58
107
  try {
59
- // Require DataForSEO service
60
- if (!context.services?.dataForSeo) {
108
+ // Check for API token
109
+ const apiToken = context.credentials?.dataForSeo?.apiToken;
110
+ if (!apiToken) {
61
111
  return {
62
112
  success: false,
63
- error: 'DataForSEO service not configured. Please provide context.services.dataForSeo.',
113
+ error: 'DataForSEO API token not configured. Please provide context.credentials.dataForSeo.apiToken.',
64
114
  };
65
115
  }
66
116
  const researchedKeywords = [];
@@ -70,7 +120,7 @@ export const seoKeywordResearchNode = defineNode({
70
120
  if (!seedKeyword.trim())
71
121
  continue;
72
122
  try {
73
- const results = await context.services.dataForSeo.getRelatedKeywords([seedKeyword], {
123
+ const results = await getKeywordIdeas(apiToken, [seedKeyword], {
74
124
  locationCode: input.locationCode ?? 2840,
75
125
  languageCode: input.languageCode ?? 'en',
76
126
  limit: input.limit ?? 30,
@@ -82,10 +132,10 @@ export const seoKeywordResearchNode = defineNode({
82
132
  processedKeywords.add(kw.keyword.toLowerCase());
83
133
  researchedKeywords.push({
84
134
  keyword: kw.keyword,
85
- searchVolume: kw.searchVolume,
86
- keywordDifficulty: kw.keywordDifficulty,
87
- cpc: kw.cpc.toString(),
88
- searchIntent: kw.searchIntent,
135
+ searchVolume: kw.keyword_info?.search_volume || 0,
136
+ keywordDifficulty: kw.keyword_properties?.keyword_difficulty || 0,
137
+ cpc: (kw.keyword_info?.cpc || 0).toString(),
138
+ searchIntent: normalizeSearchIntent(kw.search_intent_info?.main_intent),
89
139
  });
90
140
  }
91
141
  }
@@ -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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"}
@@ -201,7 +201,7 @@ export type SeoAuditOutput = z.infer<typeof SeoAuditOutputSchema>;
201
201
  * Provides comprehensive on-page SEO analysis including meta tags,
202
202
  * content analysis, technical SEO checks, and performance metrics.
203
203
  *
204
- * Requires `context.services.dataForSeo` to be provided by the host application.
204
+ * Requires `context.credentials.dataForSeo.apiToken` to be provided.
205
205
  *
206
206
  * @example
207
207
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"seo-audit.d.ts","sourceRoot":"","sources":["../../../src/integrations/dataforseo/seo-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,mBAAmB;IAC9B,mBAAmB;;;;;;EAEnB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyC/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAmFlE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8IvB,CAAC"}
1
+ {"version":3,"file":"seo-audit.d.ts","sourceRoot":"","sources":["../../../src/integrations/dataforseo/seo-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgCD,eAAO,MAAM,mBAAmB;IAC9B,mBAAmB;;;;;;EAEnB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyC/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAgIlE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIvB,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { defineNode } from '@jam-nodes/core';
3
+ import { fetchWithRetry } from '../../utils/http.js';
4
+ // =============================================================================
5
+ // Constants
6
+ // =============================================================================
7
+ const DATAFORSEO_BASE_URL = 'https://api.dataforseo.com/v3';
3
8
  // =============================================================================
4
9
  // Schemas
5
10
  // =============================================================================
@@ -115,6 +120,38 @@ function validateUrl(url) {
115
120
  return { isValid: false, error: 'Invalid URL format' };
116
121
  }
117
122
  }
123
+ /**
124
+ * Run on-page SEO audit using DataForSEO
125
+ */
126
+ async function runOnPageAudit(apiToken, url) {
127
+ const requestBody = [{
128
+ url,
129
+ enable_javascript: false,
130
+ load_resources: true,
131
+ enable_browser_rendering: false,
132
+ browser_preset: 'desktop',
133
+ store_raw_html: false,
134
+ disable_cookie_popup: true,
135
+ check_spell: false,
136
+ }];
137
+ const response = await fetchWithRetry(`${DATAFORSEO_BASE_URL}/on_page/instant_pages`, {
138
+ method: 'POST',
139
+ headers: {
140
+ 'Authorization': `Basic ${apiToken}`,
141
+ 'Content-Type': 'application/json',
142
+ },
143
+ body: JSON.stringify(requestBody),
144
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 60000 });
145
+ if (!response.ok) {
146
+ const errorText = await response.text();
147
+ throw new Error(`DataForSEO API error: ${response.status} - ${errorText}`);
148
+ }
149
+ const data = await response.json();
150
+ if (data.status_code !== 20000) {
151
+ throw new Error(`DataForSEO API error: ${data.status_message}`);
152
+ }
153
+ return data;
154
+ }
118
155
  // =============================================================================
119
156
  // Node Definition
120
157
  // =============================================================================
@@ -125,7 +162,7 @@ function validateUrl(url) {
125
162
  * Provides comprehensive on-page SEO analysis including meta tags,
126
163
  * content analysis, technical SEO checks, and performance metrics.
127
164
  *
128
- * Requires `context.services.dataForSeo` to be provided by the host application.
165
+ * Requires `context.credentials.dataForSeo.apiToken` to be provided.
129
166
  *
130
167
  * @example
131
168
  * ```typescript
@@ -147,11 +184,12 @@ export const seoAuditNode = defineNode({
147
184
  },
148
185
  executor: async (input, context) => {
149
186
  try {
150
- // Require DataForSEO service
151
- if (!context.services?.dataForSeo) {
187
+ // Check for API token
188
+ const apiToken = context.credentials?.dataForSeo?.apiToken;
189
+ if (!apiToken) {
152
190
  return {
153
191
  success: false,
154
- error: 'DataForSEO service not configured. Please provide context.services.dataForSeo.',
192
+ error: 'DataForSEO API token not configured. Please provide context.credentials.dataForSeo.apiToken.',
155
193
  };
156
194
  }
157
195
  // Check for stored values from previous approval
@@ -195,20 +233,24 @@ export const seoAuditNode = defineNode({
195
233
  };
196
234
  }
197
235
  // Call DataForSEO
198
- const onPageResult = await context.services.dataForSeo.getOnPageInstant(urlToAudit, {
199
- enableJavascript: false,
200
- });
201
- const overallScore = Math.round(onPageResult.onPageScore);
236
+ const auditResponse = await runOnPageAudit(apiToken, urlToAudit);
237
+ const onPageResult = auditResponse.tasks?.[0]?.result?.[0]?.items?.[0];
238
+ if (!onPageResult) {
239
+ return {
240
+ success: false,
241
+ error: 'No audit results returned from DataForSEO',
242
+ };
243
+ }
244
+ const overallScore = Math.round(onPageResult.onpage_score || 0);
202
245
  // Build issues from failed checks
203
246
  const issues = [];
204
247
  let passedAudits = 0;
205
248
  let failedAudits = 0;
206
249
  if (onPageResult.checks) {
207
- for (const [checkId, rawCheckData] of Object.entries(onPageResult.checks)) {
250
+ for (const [checkId, checkData] of Object.entries(onPageResult.checks)) {
208
251
  if (INFORMATIONAL_CHECKS.has(checkId)) {
209
252
  continue;
210
253
  }
211
- const checkData = rawCheckData;
212
254
  let isPassed;
213
255
  if (POSITIVE_CHECKS.has(checkId)) {
214
256
  isPassed = checkData.passed;
@@ -238,19 +280,6 @@ export const seoAuditNode = defineNode({
238
280
  url: urlToAudit,
239
281
  meta: onPageResult.meta,
240
282
  };
241
- // Optional: send notification if service available
242
- if (context.services?.notifications) {
243
- await context.services.notifications.send({
244
- userId: context.userId,
245
- title: 'SEO Audit Complete',
246
- message: `SEO Score: ${overallScore}/100 (${failedAudits} issues found)`,
247
- data: {
248
- url: urlToAudit,
249
- score: overallScore,
250
- issues: failedAudits,
251
- },
252
- });
253
- }
254
283
  return {
255
284
  success: true,
256
285
  output,
@@ -1 +1 @@
1
- {"version":3,"file":"seo-audit.js","sourceRoot":"","sources":["../../../src/integrations/dataforseo/seo-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAc7C,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,mBAAmB;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KAChD,CAAC,CAAC,QAAQ,EAAE;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CAAC,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC,CAAC,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC,CAAC,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAC,QAAQ,EAAE;IACb,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAIH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,kBAAkB,GAA2B;IACjD,KAAK,EAAE,iFAAiF;IACxF,WAAW,EAAE,0FAA0F;IACvG,SAAS,EAAE,iFAAiF;IAC5F,EAAE,EAAE,wEAAwE;IAC5E,KAAK,EAAE,qEAAqE;IAC5E,mBAAmB,EAAE,sEAAsE;IAC3F,OAAO,EAAE,uEAAuE;IAChF,YAAY,EAAE,2EAA2E;IACzF,UAAU,EAAE,4CAA4C;IACxD,KAAK,EAAE,gEAAgE;IACvE,KAAK,EAAE,oEAAoE;IAC3E,WAAW,EAAE,iDAAiD;IAC9D,gBAAgB,EAAE,wDAAwD;IAC1E,cAAc,EAAE,mEAAmE;IACnF,eAAe,EAAE,+DAA+D;IAChF,oBAAoB,EAAE,wDAAwD;IAC9E,qBAAqB,EAAE,uEAAuE;IAC9F,gBAAgB,EAAE,yEAAyE;IAC3F,iBAAiB,EAAE,+EAA+E;IAClG,SAAS,EAAE,wCAAwC;IACnD,qBAAqB,EAAE,yDAAyD;IAChF,YAAY,EAAE,uEAAuE;IACrF,SAAS,EAAE,gCAAgC;IAC3C,mBAAmB,EAAE,0CAA0C;IAC/D,0BAA0B,EAAE,iDAAiD;IAC7E,iBAAiB,EAAE,oEAAoE;CACxF,CAAC;AAEF,wCAAwC;AACxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAElE,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEpF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,wBAAwB;QACxB,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;QACvE,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/C,IACE,QAAQ,KAAK,WAAW;YACxB,QAAQ,KAAK,WAAW;YACxB,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;YAC/B,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;YAC1B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAC3B,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QACpE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,oBAAoB;IAClC,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE;QACZ,aAAa,EAAE,IAAI;KACpB;IAED,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;gBAClC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gFAAgF;iBACxF,CAAC;YACJ,CAAC;YAED,iDAAiD;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAuB,CAAC;YACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAwB,CAAC;YAE9E,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC;YAE1C,mBAAmB;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE;wBACN,OAAO,EAAE,IAAI;wBACb,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,EAAE;wBACV,YAAY,EAAE,CAAC;wBACf,YAAY,EAAE,CAAC;wBACf,GAAG,EAAE,IAAI;qBACV;iBACF,CAAC;YACJ,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE;wBACN,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,EAAE;wBACV,YAAY,EAAE,CAAC;wBACf,YAAY,EAAE,CAAC;wBACf,GAAG,EAAE,IAAI;qBACV;iBACF,CAAC;YACJ,CAAC;YAED,eAAe;YACf,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gBAAgB,aAAa,CAAC,KAAK,EAAE;iBAC7C,CAAC;YACJ,CAAC;YAED,kBAAkB;YAClB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBAClF,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE1D,kCAAkC;YAClC,MAAM,MAAM,GAAe,EAAE,CAAC;YAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1E,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtC,SAAS;oBACX,CAAC;oBAED,MAAM,SAAS,GAAG,YAAwE,CAAC;oBAC3F,IAAI,QAAiB,CAAC;oBAEtB,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACjC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC9B,CAAC;oBAED,IAAI,QAAQ,EAAE,CAAC;wBACb,YAAY,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,YAAY,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC;4BACV,EAAE,EAAE,OAAO;4BACX,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;4BAChC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,UAAU,gBAAgB,CAAC,OAAO,CAAC,EAAE;4BAC1G,KAAK,EAAE,SAAS,CAAC,KAAK;yBACvB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAmB;gBAC7B,YAAY;gBACZ,MAAM;gBACN,YAAY;gBACZ,YAAY;gBACZ,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,YAAY,CAAC,IAAI;aACxB,CAAC;YAEF,mDAAmD;YACnD,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;gBACpC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;oBACxC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,cAAc,YAAY,SAAS,YAAY,gBAAgB;oBACxE,IAAI,EAAE;wBACJ,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,YAAY;wBACnB,MAAM,EAAE,YAAY;qBACrB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM;aACP,CAAC;QACJ,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,yBAAyB;aAC1E,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"seo-audit.js","sourceRoot":"","sources":["../../../src/integrations/dataforseo/seo-audit.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export type SoraVideoOutput = z.infer<typeof SoraVideoOutputSchema>;
60
60
  * Sora Video Generation Node
61
61
  *
62
62
  * Generates videos using OpenAI Sora 2 API.
63
- * Requires `context.services.openai` to be provided by the host application.
63
+ * Requires `context.credentials.openai.apiKey` to be provided.
64
64
  *
65
65
  * @example
66
66
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"sora-video.d.ts","sourceRoot":"","sources":["../../../src/integrations/openai/sora-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,oBAAoB;IAC/B,oDAAoD;;IAEpD,wBAAwB;;IAExB,gCAAgC;;IAEhC,uBAAuB;;;;;;;;;;;;EAEvB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;EAoDxB,CAAC"}
1
+ {"version":3,"file":"sora-video.d.ts","sourceRoot":"","sources":["../../../src/integrations/openai/sora-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,eAAO,MAAM,oBAAoB;IAC/B,oDAAoD;;IAEpD,wBAAwB;;IAExB,gCAAgC;;IAEhC,uBAAuB;;;;;;;;;;;;EAEvB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAsGpE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;EAgExB,CAAC"}