@jam-nodes/nodes 0.2.7 → 0.2.8

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.
@@ -115,7 +115,7 @@ export declare const socialAiAnalyzeNode: import("@jam-nodes/core").NodeDefiniti
115
115
  relevanceScore: number;
116
116
  sentiment: "positive" | "negative" | "neutral";
117
117
  isComplaint: boolean;
118
- urgencyLevel: "low" | "medium" | "high";
118
+ urgencyLevel: "medium" | "low" | "high";
119
119
  aiSummary: string;
120
120
  matchedKeywords: string[];
121
121
  title?: string | undefined;
@@ -139,7 +139,7 @@ export declare const socialAiAnalyzeNode: import("@jam-nodes/core").NodeDefiniti
139
139
  relevanceScore: number;
140
140
  sentiment: "positive" | "negative" | "neutral";
141
141
  isComplaint: boolean;
142
- urgencyLevel: "low" | "medium" | "high";
142
+ urgencyLevel: "medium" | "low" | "high";
143
143
  aiSummary: string;
144
144
  matchedKeywords: string[];
145
145
  title?: string | undefined;
@@ -163,7 +163,7 @@ export declare const socialAiAnalyzeNode: import("@jam-nodes/core").NodeDefiniti
163
163
  relevanceScore: number;
164
164
  sentiment: "positive" | "negative" | "neutral";
165
165
  isComplaint: boolean;
166
- urgencyLevel: "low" | "medium" | "high";
166
+ urgencyLevel: "medium" | "low" | "high";
167
167
  aiSummary: string;
168
168
  matchedKeywords: string[];
169
169
  title?: string | undefined;
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@ export { mapNode, filterNode, sortNode, MapInputSchema, MapOutputSchema, FilterI
4
4
  export type { MapInput, MapOutput, FilterInput, FilterOutput, FilterOperator, SortInput, SortOutput, SortDirection, } from './transform/index.js';
5
5
  export { httpRequestNode, HttpRequestInputSchema, HttpRequestOutputSchema, HttpMethodSchema, breadNode, BreadInputSchema, BreadOutputSchema, } from './examples/index.js';
6
6
  export type { HttpRequestInput, HttpRequestOutput, HttpMethod, BreadInput, BreadOutput, } from './examples/index.js';
7
- export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, soraVideoNode, SoraVideoInputSchema, SoraVideoOutputSchema, seoKeywordResearchNode, SeoKeywordResearchInputSchema, SeoKeywordResearchOutputSchema, seoAuditNode, SeoAuditInputSchema, SeoAuditOutputSchema, searchContactsNode, SearchContactsInputSchema, SearchContactsOutputSchema, discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, DiscordEmbedSchema, discordBotCredential, discordWebhookCredential, } from './integrations/index.js';
8
- export type { RedditMonitorInput, RedditMonitorOutput, RedditPost, TwitterMonitorInput, TwitterMonitorOutput, TwitterPost, LinkedInMonitorInput, LinkedInMonitorOutput, LinkedInPost, SoraVideoInput, SoraVideoOutput, SeoKeywordResearchInput, SeoKeywordResearchOutput, SeoAuditInput, SeoAuditOutput, SeoIssue, SearchContactsInput, SearchContactsOutput, DiscordSendMessageInput, DiscordSendMessageOutput, DiscordSendWebhookInput, DiscordSendWebhookOutput, DiscordCreateThreadInput, DiscordCreateThreadOutput, DiscordEmbed, } from './integrations/index.js';
7
+ export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, soraVideoNode, SoraVideoInputSchema, SoraVideoOutputSchema, seoKeywordResearchNode, SeoKeywordResearchInputSchema, SeoKeywordResearchOutputSchema, seoAuditNode, SeoAuditInputSchema, SeoAuditOutputSchema, searchContactsNode, SearchContactsInputSchema, SearchContactsOutputSchema, discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, DiscordEmbedSchema, discordBotCredential, discordWebhookCredential, firecrawlScrapeNode, FirecrawlScrapeInputSchema, FirecrawlScrapeOutputSchema, firecrawlCrawlNode, FirecrawlCrawlInputSchema, FirecrawlCrawlOutputSchema, firecrawlExtractNode, FirecrawlExtractInputSchema, FirecrawlExtractOutputSchema, } from './integrations/index.js';
8
+ export type { RedditMonitorInput, RedditMonitorOutput, RedditPost, TwitterMonitorInput, TwitterMonitorOutput, TwitterPost, LinkedInMonitorInput, LinkedInMonitorOutput, LinkedInPost, SoraVideoInput, SoraVideoOutput, SeoKeywordResearchInput, SeoKeywordResearchOutput, SeoAuditInput, SeoAuditOutput, SeoIssue, SearchContactsInput, SearchContactsOutput, DiscordSendMessageInput, DiscordSendMessageOutput, DiscordSendWebhookInput, DiscordSendWebhookOutput, DiscordCreateThreadInput, DiscordCreateThreadOutput, DiscordEmbed, FirecrawlScrapeInput, FirecrawlScrapeOutput, FirecrawlCrawlInput, FirecrawlCrawlOutput, FirecrawlExtractInput, FirecrawlExtractOutput, } from './integrations/index.js';
9
9
  export { socialKeywordGeneratorNode, SocialKeywordGeneratorInputSchema, SocialKeywordGeneratorOutputSchema, draftEmailsNode, DraftEmailsInputSchema, DraftEmailsOutputSchema, DraftEmailInfoSchema, ContactSchema, socialAiAnalyzeNode, SocialAiAnalyzeInputSchema, SocialAiAnalyzeOutputSchema, } from './ai/index.js';
10
10
  export type { SocialKeywordGeneratorInput, SocialKeywordGeneratorOutput, DraftEmailsInput, DraftEmailsOutput, DraftEmailInfo, Contact, SocialAiAnalyzeInput, SocialAiAnalyzeOutput, SocialPost, AnalyzedPost, } from './ai/index.js';
11
11
  /**
@@ -295,6 +295,171 @@ export declare const builtInNodes: (import("@jam-nodes/core").NodeDefinition<{
295
295
  parentChannelId: string;
296
296
  starterMessageId: string | null;
297
297
  threadType: number | null;
298
+ }> | import("@jam-nodes/core").NodeDefinition<{
299
+ url: string;
300
+ formats?: ("links" | "images" | "markdown" | "summary" | "html" | "rawHtml" | "branding" | {
301
+ type: "screenshot";
302
+ fullPage?: boolean | undefined;
303
+ quality?: number | undefined;
304
+ viewport?: {
305
+ width: number;
306
+ height: number;
307
+ } | undefined;
308
+ } | {
309
+ type: "json";
310
+ prompt?: string | undefined;
311
+ schema?: Record<string, unknown> | undefined;
312
+ } | {
313
+ type: "changeTracking";
314
+ prompt?: string | undefined;
315
+ schema?: Record<string, unknown> | undefined;
316
+ modes?: ("json" | "git-diff")[] | undefined;
317
+ tag?: string | null | undefined;
318
+ })[] | undefined;
319
+ onlyMainContent?: boolean | undefined;
320
+ waitFor?: number | undefined;
321
+ }, {
322
+ success: boolean;
323
+ data: {
324
+ links?: string[] | undefined;
325
+ markdown?: string | undefined;
326
+ summary?: string | null | undefined;
327
+ html?: string | null | undefined;
328
+ rawHtml?: string | null | undefined;
329
+ branding?: {
330
+ images?: {
331
+ logo?: string | undefined;
332
+ favicon?: string | undefined;
333
+ ogImage?: string | undefined;
334
+ } | undefined;
335
+ colorScheme?: "light" | "dark" | undefined;
336
+ logo?: string | undefined;
337
+ colors?: {
338
+ success?: string | undefined;
339
+ error?: string | undefined;
340
+ link?: string | undefined;
341
+ warning?: string | undefined;
342
+ primary?: string | undefined;
343
+ secondary?: string | undefined;
344
+ accent?: string | undefined;
345
+ background?: string | undefined;
346
+ textPrimary?: string | undefined;
347
+ textSecondary?: string | undefined;
348
+ } | undefined;
349
+ fonts?: {
350
+ family?: string | undefined;
351
+ }[] | undefined;
352
+ typography?: {
353
+ fontFamilies?: {
354
+ code?: string | undefined;
355
+ primary?: string | undefined;
356
+ heading?: string | undefined;
357
+ } | undefined;
358
+ fontSizes?: {
359
+ body?: string | undefined;
360
+ h1?: string | undefined;
361
+ h2?: string | undefined;
362
+ h3?: string | undefined;
363
+ } | undefined;
364
+ fontWeights?: {
365
+ light?: number | undefined;
366
+ regular?: number | undefined;
367
+ medium?: number | undefined;
368
+ bold?: number | undefined;
369
+ } | undefined;
370
+ lineHeights?: {
371
+ body?: string | undefined;
372
+ heading?: string | undefined;
373
+ } | undefined;
374
+ } | undefined;
375
+ spacing?: {
376
+ baseUnit?: number | undefined;
377
+ borderRadius?: string | undefined;
378
+ padding?: Record<string, unknown> | undefined;
379
+ margins?: Record<string, unknown> | undefined;
380
+ } | undefined;
381
+ components?: {
382
+ buttonPrimary?: {
383
+ background?: string | undefined;
384
+ borderRadius?: string | undefined;
385
+ textColor?: string | undefined;
386
+ } | undefined;
387
+ buttonSecondary?: {
388
+ background?: string | undefined;
389
+ borderRadius?: string | undefined;
390
+ textColor?: string | undefined;
391
+ borderColor?: string | undefined;
392
+ } | undefined;
393
+ input?: Record<string, unknown> | undefined;
394
+ } | undefined;
395
+ icons?: Record<string, unknown> | undefined;
396
+ animations?: Record<string, unknown> | undefined;
397
+ layout?: Record<string, unknown> | undefined;
398
+ personality?: Record<string, unknown> | undefined;
399
+ } | null | undefined;
400
+ screenshot?: string | null | undefined;
401
+ changeTracking?: {
402
+ json?: Record<string, unknown> | undefined;
403
+ previousScrapeAt?: string | undefined;
404
+ changeStatus?: "new" | "same" | "changed" | "removed" | undefined;
405
+ visibility?: "visible" | "hidden" | undefined;
406
+ diff?: string | null | undefined;
407
+ } | null | undefined;
408
+ actions?: {
409
+ screenshots?: string[] | undefined;
410
+ scrapes?: {
411
+ url: string;
412
+ html: string;
413
+ }[] | undefined;
414
+ javascriptReturns?: {
415
+ type: string;
416
+ value?: unknown;
417
+ }[] | undefined;
418
+ pdfs?: string[] | undefined;
419
+ } | null | undefined;
420
+ metadata?: import("zod").objectInputType<{
421
+ title: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
422
+ description: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
423
+ language: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>>;
424
+ sourceURL: import("zod").ZodOptional<import("zod").ZodString>;
425
+ url: import("zod").ZodOptional<import("zod").ZodString>;
426
+ keywords: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
427
+ ogLocaleAlternate: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
428
+ statusCode: import("zod").ZodOptional<import("zod").ZodNumber>;
429
+ error: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
430
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
431
+ warning?: string | null | undefined;
432
+ };
433
+ }> | import("@jam-nodes/core").NodeDefinition<{
434
+ url: string;
435
+ limit?: number | undefined;
436
+ excludePaths?: string[] | undefined;
437
+ includePaths?: string[] | undefined;
438
+ maxDiscoveryDepth?: number | undefined;
439
+ }, {
440
+ status: "completed" | "failed";
441
+ completed: number;
442
+ data: {
443
+ links?: string[] | undefined;
444
+ markdown?: string | undefined;
445
+ html?: string | null | undefined;
446
+ rawHtml?: string | null | undefined;
447
+ screenshot?: string | null | undefined;
448
+ metadata?: Record<string, unknown> | undefined;
449
+ }[];
450
+ total: number;
451
+ creditsUsed: number;
452
+ expiresAt: string;
453
+ }> | import("@jam-nodes/core").NodeDefinition<{
454
+ urls: string[];
455
+ prompt?: string | undefined;
456
+ schema?: Record<string, unknown> | undefined;
457
+ }, {
458
+ status: "completed" | "failed" | "cancelled";
459
+ success: boolean;
460
+ data: Record<string, unknown>;
461
+ expiresAt?: string | undefined;
462
+ tokensUsed?: number | undefined;
298
463
  }> | import("@jam-nodes/core").NodeDefinition<{
299
464
  topic: string;
300
465
  userKeywords?: string[] | undefined;
@@ -434,7 +599,7 @@ export declare const builtInNodes: (import("@jam-nodes/core").NodeDefinition<{
434
599
  relevanceScore: number;
435
600
  sentiment: "positive" | "negative" | "neutral";
436
601
  isComplaint: boolean;
437
- urgencyLevel: "low" | "medium" | "high";
602
+ urgencyLevel: "medium" | "low" | "high";
438
603
  aiSummary: string;
439
604
  matchedKeywords: string[];
440
605
  title?: string | undefined;
@@ -458,7 +623,7 @@ export declare const builtInNodes: (import("@jam-nodes/core").NodeDefinition<{
458
623
  relevanceScore: number;
459
624
  sentiment: "positive" | "negative" | "neutral";
460
625
  isComplaint: boolean;
461
- urgencyLevel: "low" | "medium" | "high";
626
+ urgencyLevel: "medium" | "low" | "high";
462
627
  aiSummary: string;
463
628
  matchedKeywords: string[];
464
629
  title?: string | undefined;
@@ -482,7 +647,7 @@ export declare const builtInNodes: (import("@jam-nodes/core").NodeDefinition<{
482
647
  relevanceScore: number;
483
648
  sentiment: "positive" | "negative" | "neutral";
484
649
  isComplaint: boolean;
485
- urgencyLevel: "low" | "medium" | "high";
650
+ urgencyLevel: "medium" | "low" | "high";
486
651
  aiSummary: string;
487
652
  matchedKeywords: string[];
488
653
  title?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,7 +15,9 @@ seoKeywordResearchNode, SeoKeywordResearchInputSchema, SeoKeywordResearchOutputS
15
15
  // Apollo
16
16
  searchContactsNode, SearchContactsInputSchema, SearchContactsOutputSchema,
17
17
  // Discord
18
- discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, DiscordEmbedSchema, discordBotCredential, discordWebhookCredential, } from './integrations/index.js';
18
+ discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, DiscordEmbedSchema, discordBotCredential, discordWebhookCredential,
19
+ // Firecrawl
20
+ firecrawlScrapeNode, FirecrawlScrapeInputSchema, FirecrawlScrapeOutputSchema, firecrawlCrawlNode, FirecrawlCrawlInputSchema, FirecrawlCrawlOutputSchema, firecrawlExtractNode, FirecrawlExtractInputSchema, FirecrawlExtractOutputSchema, } from './integrations/index.js';
19
21
  // AI nodes
20
22
  export { socialKeywordGeneratorNode, SocialKeywordGeneratorInputSchema, SocialKeywordGeneratorOutputSchema, draftEmailsNode, DraftEmailsInputSchema, DraftEmailsOutputSchema, DraftEmailInfoSchema, ContactSchema, socialAiAnalyzeNode, SocialAiAnalyzeInputSchema, SocialAiAnalyzeOutputSchema, } from './ai/index.js';
21
23
  // All nodes as a collection
@@ -24,7 +26,7 @@ import { endNode } from './logic/index.js';
24
26
  import { delayNode } from './logic/index.js';
25
27
  import { mapNode, filterNode, sortNode } from './transform/index.js';
26
28
  import { httpRequestNode, breadNode } from './examples/index.js';
27
- import { redditMonitorNode, twitterMonitorNode, linkedinMonitorNode, soraVideoNode, seoKeywordResearchNode, seoAuditNode, searchContactsNode, discordSendMessageNode, discordSendWebhookNode, discordCreateThreadNode, } from './integrations/index.js';
29
+ import { redditMonitorNode, twitterMonitorNode, linkedinMonitorNode, soraVideoNode, seoKeywordResearchNode, seoAuditNode, searchContactsNode, discordSendMessageNode, discordSendWebhookNode, discordCreateThreadNode, firecrawlScrapeNode, firecrawlCrawlNode, firecrawlExtractNode, } from './integrations/index.js';
28
30
  import { socialKeywordGeneratorNode, draftEmailsNode, socialAiAnalyzeNode, } from './ai/index.js';
29
31
  /**
30
32
  * All built-in nodes as an array for easy registration
@@ -52,6 +54,9 @@ export const builtInNodes = [
52
54
  discordSendMessageNode,
53
55
  discordSendWebhookNode,
54
56
  discordCreateThreadNode,
57
+ firecrawlScrapeNode,
58
+ firecrawlCrawlNode,
59
+ firecrawlExtractNode,
55
60
  // AI
56
61
  socialKeywordGeneratorNode,
57
62
  draftEmailsNode,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,eAAe,EACf,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAa1B,kBAAkB;AAClB,OAAO,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAa9B,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAU7B,oBAAoB;AACpB,OAAO;AACL,SAAS;AACT,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B;AAC3B,SAAS;AACT,aAAa,EACb,oBAAoB,EACpB,qBAAqB;AACrB,aAAa;AACb,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,YAAY,EACZ,mBAAmB,EACnB,oBAAoB;AACpB,SAAS;AACT,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B;AAC1B,UAAU;AACV,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AA8BjC,WAAW;AACX,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,EAClC,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAevB,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,eAAe;IACf,OAAO;IACP,SAAS;IACT,YAAY;IACZ,OAAO;IACP,UAAU;IACV,QAAQ;IACR,WAAW;IACX,eAAe;IACf,SAAS;IACT,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;IACb,sBAAsB;IACtB,YAAY;IACZ,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,KAAK;IACL,0BAA0B;IAC1B,eAAe;IACf,mBAAmB;CACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import { z } from 'zod';
2
+ export declare const FirecrawlCrawlInputSchema: z.ZodObject<{
3
+ /** The base URL to start crawling from */
4
+ url: z.ZodString;
5
+ /** URL pathname regex patterns to exclude from crawling */
6
+ excludePaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
+ /** URL pathname regex patterns to include in crawling */
8
+ includePaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ /** Maximum depth based on discovery order */
10
+ maxDiscoveryDepth: z.ZodOptional<z.ZodNumber>;
11
+ /** Maximum number of pages to crawl */
12
+ limit: z.ZodDefault<z.ZodNumber>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ url: string;
15
+ limit: number;
16
+ excludePaths?: string[] | undefined;
17
+ includePaths?: string[] | undefined;
18
+ maxDiscoveryDepth?: number | undefined;
19
+ }, {
20
+ url: string;
21
+ limit?: number | undefined;
22
+ excludePaths?: string[] | undefined;
23
+ includePaths?: string[] | undefined;
24
+ maxDiscoveryDepth?: number | undefined;
25
+ }>;
26
+ export type FirecrawlCrawlInput = z.infer<typeof FirecrawlCrawlInputSchema>;
27
+ export declare const FirecrawlCrawlOutputSchema: z.ZodObject<{
28
+ status: z.ZodEnum<["completed", "failed"]>;
29
+ total: z.ZodNumber;
30
+ completed: z.ZodNumber;
31
+ creditsUsed: z.ZodNumber;
32
+ expiresAt: z.ZodString;
33
+ data: z.ZodArray<z.ZodObject<{
34
+ markdown: z.ZodOptional<z.ZodString>;
35
+ html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
36
+ rawHtml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ links: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
38
+ screenshot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ links?: string[] | undefined;
42
+ markdown?: string | undefined;
43
+ html?: string | null | undefined;
44
+ rawHtml?: string | null | undefined;
45
+ screenshot?: string | null | undefined;
46
+ metadata?: Record<string, unknown> | undefined;
47
+ }, {
48
+ links?: string[] | undefined;
49
+ markdown?: string | undefined;
50
+ html?: string | null | undefined;
51
+ rawHtml?: string | null | undefined;
52
+ screenshot?: string | null | undefined;
53
+ metadata?: Record<string, unknown> | undefined;
54
+ }>, "many">;
55
+ }, "strip", z.ZodTypeAny, {
56
+ status: "completed" | "failed";
57
+ completed: number;
58
+ data: {
59
+ links?: string[] | undefined;
60
+ markdown?: string | undefined;
61
+ html?: string | null | undefined;
62
+ rawHtml?: string | null | undefined;
63
+ screenshot?: string | null | undefined;
64
+ metadata?: Record<string, unknown> | undefined;
65
+ }[];
66
+ total: number;
67
+ creditsUsed: number;
68
+ expiresAt: string;
69
+ }, {
70
+ status: "completed" | "failed";
71
+ completed: number;
72
+ data: {
73
+ links?: string[] | undefined;
74
+ markdown?: string | undefined;
75
+ html?: string | null | undefined;
76
+ rawHtml?: string | null | undefined;
77
+ screenshot?: string | null | undefined;
78
+ metadata?: Record<string, unknown> | undefined;
79
+ }[];
80
+ total: number;
81
+ creditsUsed: number;
82
+ expiresAt: string;
83
+ }>;
84
+ export type FirecrawlCrawlOutput = z.infer<typeof FirecrawlCrawlOutputSchema>;
85
+ /**
86
+ * Firecrawl Crawl Node
87
+ *
88
+ * Crawls a website starting from a base URL, following links and scraping
89
+ * each discovered page. Starts a crawl job then polls until completion.
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const result = await firecrawlCrawlNode.executor({
94
+ * url: 'https://example.com',
95
+ * limit: 50,
96
+ * includePaths: ['/docs/.*'],
97
+ * }, context);
98
+ * ```
99
+ */
100
+ export declare const firecrawlCrawlNode: import("@jam-nodes/core").NodeDefinition<{
101
+ url: string;
102
+ limit?: number | undefined;
103
+ excludePaths?: string[] | undefined;
104
+ includePaths?: string[] | undefined;
105
+ maxDiscoveryDepth?: number | undefined;
106
+ }, {
107
+ status: "completed" | "failed";
108
+ completed: number;
109
+ data: {
110
+ links?: string[] | undefined;
111
+ markdown?: string | undefined;
112
+ html?: string | null | undefined;
113
+ rawHtml?: string | null | undefined;
114
+ screenshot?: string | null | undefined;
115
+ metadata?: Record<string, unknown> | undefined;
116
+ }[];
117
+ total: number;
118
+ creditsUsed: number;
119
+ expiresAt: string;
120
+ }>;
121
+ //# sourceMappingURL=crawl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../../src/integrations/firecrawl/crawl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuDxB,eAAO,MAAM,yBAAyB;IACpC,0CAA0C;;IAE1C,2DAA2D;;IAE3D,yDAAyD;;IAEzD,6CAA6C;;IAE7C,uCAAuC;;;;;;;;;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAwF9E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;EA8D7B,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { z } from 'zod';
2
+ import { defineNode } from '@jam-nodes/core';
3
+ import { fetchWithRetry, sleep } from '../../utils/http.js';
4
+ // =============================================================================
5
+ // Constants
6
+ // =============================================================================
7
+ const FIRECRAWL_API_BASE = 'https://api.firecrawl.dev/v2';
8
+ const POLL_INTERVAL_MS = 2000;
9
+ const MAX_POLL_ATTEMPTS = 300; // 10 minutes at 2s intervals
10
+ // =============================================================================
11
+ // Schemas
12
+ // =============================================================================
13
+ export const FirecrawlCrawlInputSchema = z.object({
14
+ /** The base URL to start crawling from */
15
+ url: z.string().url(),
16
+ /** URL pathname regex patterns to exclude from crawling */
17
+ excludePaths: z.array(z.string()).optional(),
18
+ /** URL pathname regex patterns to include in crawling */
19
+ includePaths: z.array(z.string()).optional(),
20
+ /** Maximum depth based on discovery order */
21
+ maxDiscoveryDepth: z.number().int().optional(),
22
+ /** Maximum number of pages to crawl */
23
+ limit: z.number().int().default(10000),
24
+ });
25
+ export const FirecrawlCrawlOutputSchema = z.object({
26
+ status: z.enum(['completed', 'failed']),
27
+ total: z.number(),
28
+ completed: z.number(),
29
+ creditsUsed: z.number(),
30
+ expiresAt: z.string(),
31
+ data: z.array(z.object({
32
+ markdown: z.string().optional(),
33
+ html: z.string().nullable().optional(),
34
+ rawHtml: z.string().nullable().optional(),
35
+ links: z.array(z.string()).optional(),
36
+ screenshot: z.string().nullable().optional(),
37
+ metadata: z.record(z.unknown()).optional(),
38
+ })),
39
+ });
40
+ // =============================================================================
41
+ // Firecrawl API Functions
42
+ // =============================================================================
43
+ /**
44
+ * Start a Firecrawl crawl job (POST /v2/crawl)
45
+ */
46
+ async function startCrawlJob(bearerToken, params) {
47
+ const requestBody = {
48
+ url: params.url,
49
+ ...(params.excludePaths && { excludePaths: params.excludePaths }),
50
+ ...(params.includePaths && { includePaths: params.includePaths }),
51
+ ...(params.maxDiscoveryDepth != null && { maxDiscoveryDepth: params.maxDiscoveryDepth }),
52
+ ...(params.limit != null && { limit: params.limit })
53
+ };
54
+ const response = await fetchWithRetry(`${FIRECRAWL_API_BASE}/crawl`, {
55
+ method: 'POST',
56
+ headers: {
57
+ 'Content-Type': 'application/json',
58
+ Authorization: `Bearer ${bearerToken}`,
59
+ },
60
+ body: JSON.stringify(requestBody),
61
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
62
+ if (!response.ok) {
63
+ const errorText = await response.text();
64
+ throw new Error(`Firecrawl crawl POST error: ${response.status} - ${errorText}`);
65
+ }
66
+ return response.json();
67
+ }
68
+ /**
69
+ * Poll a Firecrawl crawl job until completion (GET /v2/crawl/:id)
70
+ */
71
+ async function pollCrawlJob(bearerToken, jobId) {
72
+ for (let attempt = 0; attempt < MAX_POLL_ATTEMPTS; attempt++) {
73
+ const response = await fetchWithRetry(`${FIRECRAWL_API_BASE}/crawl/${jobId}`, {
74
+ method: 'GET',
75
+ headers: {
76
+ Authorization: `Bearer ${bearerToken}`,
77
+ },
78
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
79
+ if (!response.ok) {
80
+ const errorText = await response.text();
81
+ throw new Error(`Firecrawl crawl GET error: ${response.status} - ${errorText}`);
82
+ }
83
+ const result = await response.json();
84
+ if (result.status === 'completed' || result.status === 'failed') {
85
+ return result;
86
+ }
87
+ await sleep(POLL_INTERVAL_MS);
88
+ }
89
+ throw new Error('Firecrawl crawl timed out waiting for completion');
90
+ }
91
+ // =============================================================================
92
+ // Node Definition
93
+ // =============================================================================
94
+ /**
95
+ * Firecrawl Crawl Node
96
+ *
97
+ * Crawls a website starting from a base URL, following links and scraping
98
+ * each discovered page. Starts a crawl job then polls until completion.
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const result = await firecrawlCrawlNode.executor({
103
+ * url: 'https://example.com',
104
+ * limit: 50,
105
+ * includePaths: ['/docs/.*'],
106
+ * }, context);
107
+ * ```
108
+ */
109
+ export const firecrawlCrawlNode = defineNode({
110
+ type: 'firecrawl_crawl',
111
+ name: 'Firecrawl Crawl',
112
+ description: 'Crawl a website and extract content from all discovered pages using Firecrawl',
113
+ category: 'integration',
114
+ inputSchema: FirecrawlCrawlInputSchema,
115
+ outputSchema: FirecrawlCrawlOutputSchema,
116
+ estimatedDuration: 60,
117
+ capabilities: {
118
+ supportsRerun: true,
119
+ supportsCancel: true,
120
+ },
121
+ executor: async (input, context) => {
122
+ try {
123
+ // Check for Bearer Token
124
+ const bearerToken = context.credentials?.firecrawl?.bearerToken;
125
+ if (!bearerToken) {
126
+ return {
127
+ success: false,
128
+ error: 'Firecrawl Bearer Token not configured. Please provide context.credentials.firecrawl.bearerToken.',
129
+ };
130
+ }
131
+ // Start crawling job
132
+ const job = await startCrawlJob(bearerToken, {
133
+ url: input.url,
134
+ excludePaths: input.excludePaths,
135
+ includePaths: input.includePaths,
136
+ maxDiscoveryDepth: input.maxDiscoveryDepth,
137
+ limit: input.limit,
138
+ });
139
+ if (!job.success) {
140
+ return {
141
+ success: false,
142
+ error: 'Failed to start Firecrawl crawl job',
143
+ };
144
+ }
145
+ // Poll crawl jobs for scraped website data
146
+ const result = await pollCrawlJob(bearerToken, job.id);
147
+ const status = result.status;
148
+ return {
149
+ success: true,
150
+ output: {
151
+ status,
152
+ total: result.total,
153
+ completed: result.completed,
154
+ creditsUsed: result.creditsUsed,
155
+ expiresAt: result.expiresAt,
156
+ data: result.data,
157
+ },
158
+ };
159
+ }
160
+ catch (error) {
161
+ return {
162
+ success: false,
163
+ error: error instanceof Error ? error.message : 'Failed to crawl URL',
164
+ };
165
+ }
166
+ },
167
+ });
168
+ //# sourceMappingURL=crawl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../../src/integrations/firecrawl/crawl.ts"],"names":[],"mappings":"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"}