@bubblelab/bubble-core 0.1.138 → 0.1.140

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 (88) hide show
  1. package/dist/bubble-bundle.d.ts +88 -88
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
  4. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  5. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +6 -6
  6. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  7. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  8. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  11. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  12. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  13. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  14. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +94 -901
  15. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
  16. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +0 -8
  17. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
  18. package/dist/bubbles/service-bubble/apify/apify.d.ts +19 -19
  19. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  20. package/dist/bubbles/service-bubble/apify/apify.js +0 -1
  21. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  22. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +6 -6
  23. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +8 -8
  24. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +7 -7
  25. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +17 -17
  26. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
  27. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
  28. package/dist/bubbles/service-bubble/firecrawl.d.ts +350 -350
  29. package/dist/bubbles/service-bubble/followupboss.d.ts +12 -12
  30. package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +28 -28
  31. package/dist/bubbles/service-bubble/fullenrich/fullenrich.schema.d.ts +62 -62
  32. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  33. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  34. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  35. package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
  36. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  37. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  38. package/dist/bubbles/service-bubble/jira/jira.d.ts +32 -32
  39. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +38 -38
  40. package/dist/bubbles/service-bubble/notion/notion.d.ts +168 -168
  41. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  42. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  43. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  44. package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
  45. package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
  46. package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
  47. package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
  48. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
  49. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
  50. package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
  51. package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
  52. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
  53. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
  54. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
  55. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
  56. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
  57. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
  58. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
  59. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
  60. package/dist/bubbles/service-bubble/slack/slack.d.ts +392 -392
  61. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  62. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  63. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  64. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  65. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  66. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +64 -64
  67. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +451 -1889
  68. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  69. package/dist/bubbles/tool-bubble/linkedin-tool.js +56 -300
  70. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  71. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +108 -108
  72. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  73. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  74. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  75. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +72 -72
  76. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  77. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +36 -36
  78. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  79. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  80. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  81. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  82. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  83. package/dist/bubbles.json +6 -481
  84. package/package.json +2 -2
  85. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +0 -806
  86. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts.map +0 -1
  87. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.js +0 -256
  88. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.js.map +0 -1
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-02-10T03:51:37.342Z",
3
+ "generatedAt": "2026-02-10T06:56:00.318Z",
4
4
  "totalCount": 61,
5
5
  "bubbles": [
6
6
  {
@@ -36391,25 +36391,20 @@
36391
36391
  "name": "linkedin-tool",
36392
36392
  "alias": "li",
36393
36393
  "type": "tool",
36394
- "shortDescription": "Look up LinkedIn profiles by URL, scrape posts by profile, or search posts/jobs by keyword.",
36395
- "useCase": "General purpose bubble for various workflow needs",
36396
- "outputSchema": "{\n operation: \"scrapeProfile\" | \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n profile: { id: string | null // LinkedIn member ID, publicIdentifier: string | null // Profile slug (e.g., \"williamhgates\"), linkedinUrl: string | null // Full LinkedIn profile URL, firstName: string | null // First name, lastName: string | null // Last name, headline: string | null // Profile headline, about: string | null // About/summary section, openToWork: boolean | null // Whether open to work, hiring: boolean | null // Whether actively hiring, photo: string | null // Profile photo URL, premium: boolean | null // Whether premium subscriber, influencer: boolean | null // Whether LinkedIn influencer, location: { text: string | null // Location text, countryCode: string | null // Country code, country: string | null // Country, state: string | null // State/region, city: string | null // City } | null // Location information, verified: boolean | null // Whether profile is verified, topSkills: string | null // Top skills summary, connectionsCount: number | null // Number of connections, followerCount: number | null // Number of followers, currentPosition: { companyName: string | null }[] | null // Current company/position, experience: { position: string | null // Job title/position, location: string | null // Job location, employmentType: string | null // Employment type, workplaceType: string | null // Workplace type, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, duration: string | null // Duration text, description: string | null // Role description, skills: string[] | null // Skills for this role, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date }[] | null // Work experience history, education: { schoolName: string | null // School name, schoolLinkedinUrl: string | null // School LinkedIn URL, degree: string | null // Degree type, fieldOfStudy: string | null // Field of study, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date, period: string | null // Period text }[] | null // Education history, certifications: { title: string | null, issuedAt: string | null, issuedBy: string | null }[] | null // Certifications, languages: { name: string | null, proficiency: string | null }[] | null // Languages, skills: { name: string | null }[] | null // All skills } | null | undefined // LinkedIn profile data (only for scrapeProfile operation),\n jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n totalPosts: number // Total number of posts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
36394
+ "shortDescription": "Scrape LinkedIn posts by profile or search by keyword. Get engagement metrics, media, and complete metadata.",
36395
+ "useCase": "**",
36396
+ "outputSchema": "{\n operation: \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n totalPosts: number // Total number of posts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
36397
36397
  "inputJsonSchema": {
36398
36398
  "type": "object",
36399
36399
  "properties": {
36400
36400
  "operation": {
36401
36401
  "type": "string",
36402
36402
  "enum": [
36403
- "scrapeProfile",
36404
36403
  "scrapePosts",
36405
36404
  "searchPosts",
36406
36405
  "scrapeJobs"
36407
36406
  ],
36408
- "description": "Operation to perform: scrapeProfile (get profile info from LinkedIn URL), scrapePosts (get posts from a profile), searchPosts (search posts by keyword), or scrapeJobs (search jobs)"
36409
- },
36410
- "profileUrl": {
36411
- "type": "string",
36412
- "description": "LinkedIn profile URL or username (for scrapeProfile operation). Examples: \"https://www.linkedin.com/in/williamhgates\", \"williamhgates\""
36407
+ "description": "Operation to perform: scrapePosts (profiles), searchPosts (keywords), or scrapeJobs"
36413
36408
  },
36414
36409
  "username": {
36415
36410
  "type": "string",
@@ -36513,482 +36508,12 @@
36513
36508
  "operation": {
36514
36509
  "type": "string",
36515
36510
  "enum": [
36516
- "scrapeProfile",
36517
36511
  "scrapePosts",
36518
36512
  "searchPosts",
36519
36513
  "scrapeJobs"
36520
36514
  ],
36521
36515
  "description": "Operation that was performed"
36522
36516
  },
36523
- "profile": {
36524
- "type": "object",
36525
- "properties": {
36526
- "id": {
36527
- "type": "string",
36528
- "nullable": true,
36529
- "description": "LinkedIn member ID"
36530
- },
36531
- "publicIdentifier": {
36532
- "type": "string",
36533
- "nullable": true,
36534
- "description": "Profile slug (e.g., \"williamhgates\")"
36535
- },
36536
- "linkedinUrl": {
36537
- "type": "string",
36538
- "nullable": true,
36539
- "description": "Full LinkedIn profile URL"
36540
- },
36541
- "firstName": {
36542
- "type": "string",
36543
- "nullable": true,
36544
- "description": "First name"
36545
- },
36546
- "lastName": {
36547
- "type": "string",
36548
- "nullable": true,
36549
- "description": "Last name"
36550
- },
36551
- "headline": {
36552
- "type": "string",
36553
- "nullable": true,
36554
- "description": "Profile headline"
36555
- },
36556
- "about": {
36557
- "type": "string",
36558
- "nullable": true,
36559
- "description": "About/summary section"
36560
- },
36561
- "openToWork": {
36562
- "type": "boolean",
36563
- "nullable": true,
36564
- "description": "Whether open to work"
36565
- },
36566
- "hiring": {
36567
- "type": "boolean",
36568
- "nullable": true,
36569
- "description": "Whether actively hiring"
36570
- },
36571
- "photo": {
36572
- "type": "string",
36573
- "nullable": true,
36574
- "description": "Profile photo URL"
36575
- },
36576
- "premium": {
36577
- "type": "boolean",
36578
- "nullable": true,
36579
- "description": "Whether premium subscriber"
36580
- },
36581
- "influencer": {
36582
- "type": "boolean",
36583
- "nullable": true,
36584
- "description": "Whether LinkedIn influencer"
36585
- },
36586
- "location": {
36587
- "type": "object",
36588
- "properties": {
36589
- "text": {
36590
- "type": "string",
36591
- "nullable": true,
36592
- "description": "Location text"
36593
- },
36594
- "countryCode": {
36595
- "type": "string",
36596
- "nullable": true,
36597
- "description": "Country code"
36598
- },
36599
- "country": {
36600
- "type": "string",
36601
- "nullable": true,
36602
- "description": "Country"
36603
- },
36604
- "state": {
36605
- "type": "string",
36606
- "nullable": true,
36607
- "description": "State/region"
36608
- },
36609
- "city": {
36610
- "type": "string",
36611
- "nullable": true,
36612
- "description": "City"
36613
- }
36614
- },
36615
- "required": [
36616
- "text",
36617
- "countryCode",
36618
- "country",
36619
- "state",
36620
- "city"
36621
- ],
36622
- "additionalProperties": false,
36623
- "nullable": true,
36624
- "description": "Location information"
36625
- },
36626
- "verified": {
36627
- "type": "boolean",
36628
- "nullable": true,
36629
- "description": "Whether profile is verified"
36630
- },
36631
- "topSkills": {
36632
- "type": "string",
36633
- "nullable": true,
36634
- "description": "Top skills summary"
36635
- },
36636
- "connectionsCount": {
36637
- "type": "number",
36638
- "nullable": true,
36639
- "description": "Number of connections"
36640
- },
36641
- "followerCount": {
36642
- "type": "number",
36643
- "nullable": true,
36644
- "description": "Number of followers"
36645
- },
36646
- "currentPosition": {
36647
- "type": "array",
36648
- "items": {
36649
- "type": "object",
36650
- "properties": {
36651
- "companyName": {
36652
- "type": "string",
36653
- "nullable": true
36654
- }
36655
- },
36656
- "required": [
36657
- "companyName"
36658
- ],
36659
- "additionalProperties": false
36660
- },
36661
- "nullable": true,
36662
- "description": "Current company/position"
36663
- },
36664
- "experience": {
36665
- "type": "array",
36666
- "items": {
36667
- "type": "object",
36668
- "properties": {
36669
- "position": {
36670
- "type": "string",
36671
- "nullable": true,
36672
- "description": "Job title/position"
36673
- },
36674
- "location": {
36675
- "type": "string",
36676
- "nullable": true,
36677
- "description": "Job location"
36678
- },
36679
- "employmentType": {
36680
- "type": "string",
36681
- "nullable": true,
36682
- "description": "Employment type"
36683
- },
36684
- "workplaceType": {
36685
- "type": "string",
36686
- "nullable": true,
36687
- "description": "Workplace type"
36688
- },
36689
- "companyName": {
36690
- "type": "string",
36691
- "nullable": true,
36692
- "description": "Company name"
36693
- },
36694
- "companyLinkedinUrl": {
36695
- "type": "string",
36696
- "nullable": true,
36697
- "description": "Company LinkedIn URL"
36698
- },
36699
- "duration": {
36700
- "type": "string",
36701
- "nullable": true,
36702
- "description": "Duration text"
36703
- },
36704
- "description": {
36705
- "type": "string",
36706
- "nullable": true,
36707
- "description": "Role description"
36708
- },
36709
- "skills": {
36710
- "type": "array",
36711
- "items": {
36712
- "type": "string"
36713
- },
36714
- "nullable": true,
36715
- "description": "Skills for this role"
36716
- },
36717
- "startDate": {
36718
- "type": "object",
36719
- "properties": {
36720
- "month": {
36721
- "type": "string",
36722
- "nullable": true,
36723
- "description": "Month name"
36724
- },
36725
- "year": {
36726
- "type": "number",
36727
- "nullable": true,
36728
- "description": "Year"
36729
- },
36730
- "text": {
36731
- "type": "string",
36732
- "nullable": true,
36733
- "description": "Formatted date text"
36734
- }
36735
- },
36736
- "required": [
36737
- "month",
36738
- "year",
36739
- "text"
36740
- ],
36741
- "additionalProperties": false,
36742
- "nullable": true,
36743
- "description": "Start date"
36744
- },
36745
- "endDate": {
36746
- "type": "object",
36747
- "properties": {
36748
- "month": {
36749
- "type": "string",
36750
- "nullable": true,
36751
- "description": "Month name"
36752
- },
36753
- "year": {
36754
- "type": "number",
36755
- "nullable": true,
36756
- "description": "Year"
36757
- },
36758
- "text": {
36759
- "type": "string",
36760
- "nullable": true,
36761
- "description": "Formatted date text"
36762
- }
36763
- },
36764
- "required": [
36765
- "month",
36766
- "year",
36767
- "text"
36768
- ],
36769
- "additionalProperties": false,
36770
- "nullable": true,
36771
- "description": "End date"
36772
- }
36773
- },
36774
- "required": [
36775
- "position",
36776
- "location",
36777
- "employmentType",
36778
- "workplaceType",
36779
- "companyName",
36780
- "companyLinkedinUrl",
36781
- "duration",
36782
- "description",
36783
- "skills",
36784
- "startDate",
36785
- "endDate"
36786
- ],
36787
- "additionalProperties": false
36788
- },
36789
- "nullable": true,
36790
- "description": "Work experience history"
36791
- },
36792
- "education": {
36793
- "type": "array",
36794
- "items": {
36795
- "type": "object",
36796
- "properties": {
36797
- "schoolName": {
36798
- "type": "string",
36799
- "nullable": true,
36800
- "description": "School name"
36801
- },
36802
- "schoolLinkedinUrl": {
36803
- "type": "string",
36804
- "nullable": true,
36805
- "description": "School LinkedIn URL"
36806
- },
36807
- "degree": {
36808
- "type": "string",
36809
- "nullable": true,
36810
- "description": "Degree type"
36811
- },
36812
- "fieldOfStudy": {
36813
- "type": "string",
36814
- "nullable": true,
36815
- "description": "Field of study"
36816
- },
36817
- "startDate": {
36818
- "type": "object",
36819
- "properties": {
36820
- "month": {
36821
- "type": "string",
36822
- "nullable": true,
36823
- "description": "Month name"
36824
- },
36825
- "year": {
36826
- "type": "number",
36827
- "nullable": true,
36828
- "description": "Year"
36829
- },
36830
- "text": {
36831
- "type": "string",
36832
- "nullable": true,
36833
- "description": "Formatted date text"
36834
- }
36835
- },
36836
- "required": [
36837
- "month",
36838
- "year",
36839
- "text"
36840
- ],
36841
- "additionalProperties": false,
36842
- "nullable": true,
36843
- "description": "Start date"
36844
- },
36845
- "endDate": {
36846
- "type": "object",
36847
- "properties": {
36848
- "month": {
36849
- "type": "string",
36850
- "nullable": true,
36851
- "description": "Month name"
36852
- },
36853
- "year": {
36854
- "type": "number",
36855
- "nullable": true,
36856
- "description": "Year"
36857
- },
36858
- "text": {
36859
- "type": "string",
36860
- "nullable": true,
36861
- "description": "Formatted date text"
36862
- }
36863
- },
36864
- "required": [
36865
- "month",
36866
- "year",
36867
- "text"
36868
- ],
36869
- "additionalProperties": false,
36870
- "nullable": true,
36871
- "description": "End date"
36872
- },
36873
- "period": {
36874
- "type": "string",
36875
- "nullable": true,
36876
- "description": "Period text"
36877
- }
36878
- },
36879
- "required": [
36880
- "schoolName",
36881
- "schoolLinkedinUrl",
36882
- "degree",
36883
- "fieldOfStudy",
36884
- "startDate",
36885
- "endDate",
36886
- "period"
36887
- ],
36888
- "additionalProperties": false
36889
- },
36890
- "nullable": true,
36891
- "description": "Education history"
36892
- },
36893
- "certifications": {
36894
- "type": "array",
36895
- "items": {
36896
- "type": "object",
36897
- "properties": {
36898
- "title": {
36899
- "type": "string",
36900
- "nullable": true
36901
- },
36902
- "issuedAt": {
36903
- "type": "string",
36904
- "nullable": true
36905
- },
36906
- "issuedBy": {
36907
- "type": "string",
36908
- "nullable": true
36909
- }
36910
- },
36911
- "required": [
36912
- "title",
36913
- "issuedAt",
36914
- "issuedBy"
36915
- ],
36916
- "additionalProperties": false
36917
- },
36918
- "nullable": true,
36919
- "description": "Certifications"
36920
- },
36921
- "languages": {
36922
- "type": "array",
36923
- "items": {
36924
- "type": "object",
36925
- "properties": {
36926
- "name": {
36927
- "type": "string",
36928
- "nullable": true
36929
- },
36930
- "proficiency": {
36931
- "type": "string",
36932
- "nullable": true
36933
- }
36934
- },
36935
- "required": [
36936
- "name",
36937
- "proficiency"
36938
- ],
36939
- "additionalProperties": false
36940
- },
36941
- "nullable": true,
36942
- "description": "Languages"
36943
- },
36944
- "skills": {
36945
- "type": "array",
36946
- "items": {
36947
- "type": "object",
36948
- "properties": {
36949
- "name": {
36950
- "type": "string",
36951
- "nullable": true
36952
- }
36953
- },
36954
- "required": [
36955
- "name"
36956
- ],
36957
- "additionalProperties": false
36958
- },
36959
- "nullable": true,
36960
- "description": "All skills"
36961
- }
36962
- },
36963
- "required": [
36964
- "id",
36965
- "publicIdentifier",
36966
- "linkedinUrl",
36967
- "firstName",
36968
- "lastName",
36969
- "headline",
36970
- "about",
36971
- "openToWork",
36972
- "hiring",
36973
- "photo",
36974
- "premium",
36975
- "influencer",
36976
- "location",
36977
- "verified",
36978
- "topSkills",
36979
- "connectionsCount",
36980
- "followerCount",
36981
- "currentPosition",
36982
- "experience",
36983
- "education",
36984
- "certifications",
36985
- "languages",
36986
- "skills"
36987
- ],
36988
- "additionalProperties": false,
36989
- "nullable": true,
36990
- "description": "LinkedIn profile data (only for scrapeProfile operation)"
36991
- },
36992
36517
  "jobs": {
36993
36518
  "type": "array",
36994
36519
  "items": {
@@ -37695,7 +37220,7 @@
37695
37220
  ],
37696
37221
  "additionalProperties": false
37697
37222
  },
37698
- "usageExample": "// Example usage of linkedin-tool bubble\nconst linkedinTool = new LinkedInTool({\n operation: \"scrapeProfile\" // options: \"scrapeProfile\", \"scrapePosts\", \"searchPosts\", \"scrapeJobs\", // Operation to perform: scrapeProfile (get profile info from LinkedIn URL), scrapePosts (get posts from a profile), searchPosts (search posts by keyword), or scrapeJobs (search jobs),\n profileUrl: \"example string\", // LinkedIn profile URL or username (for scrapeProfile operation). Examples: \"https://www.linkedin.com/in/williamhgates\", \"williamhgates\",\n username: \"example string\", // LinkedIn username (for scrapePosts operation). Examples: \"satyanadella\", \"billgates\",\n keyword: \"example string\", // Keyword or phrase to search for (for searchPosts/scrapeJobs). Examples: \"AI\", \"hiring\", \"Software Engineer\",\n location: \"example string\", // Location for job search (e.g. \"San Francisco\", \"Remote\") (scrapeJobs only),\n jobType: [\"full-time\" // options: \"full-time\", \"part-time\", \"contract\", \"temporary\", \"internship\"], // Filter by job type (scrapeJobs only),\n workplaceType: [\"on-site\" // options: \"on-site\", \"remote\", \"hybrid\"], // Filter by workplace type (scrapeJobs only),\n experienceLevel: [\"internship\" // options: \"internship\", \"entry-level\", \"associate\", \"mid-senior\", \"director\", \"executive\"], // Filter by experience level (scrapeJobs only),\n sortBy: \"relevance\" // options: \"relevance\", \"date_posted\", // Sort results by relevance or date posted (for searchPosts operation, default: relevance),\n dateFilter: \"past-24h\" // options: \"past-24h\", \"past-week\", \"past-month\", // Filter posts/jobs by date range (searchPosts/scrapeJobs). Options: past-24h, past-week, past-month. Leave empty for no date filter.,\n limit: 50 // default, // Maximum number of items to fetch (default: 50),\n pageNumber: 1 // default, // Page number for pagination (default: 1),\n});\n\nconst result = await linkedinTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"scrapeProfile\" | \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n// profile: { id: string | null // LinkedIn member ID, publicIdentifier: string | null // Profile slug (e.g., \"williamhgates\"), linkedinUrl: string | null // Full LinkedIn profile URL, firstName: string | null // First name, lastName: string | null // Last name, headline: string | null // Profile headline, about: string | null // About/summary section, openToWork: boolean | null // Whether open to work, hiring: boolean | null // Whether actively hiring, photo: string | null // Profile photo URL, premium: boolean | null // Whether premium subscriber, influencer: boolean | null // Whether LinkedIn influencer, location: { text: string | null // Location text, countryCode: string | null // Country code, country: string | null // Country, state: string | null // State/region, city: string | null // City } | null // Location information, verified: boolean | null // Whether profile is verified, topSkills: string | null // Top skills summary, connectionsCount: number | null // Number of connections, followerCount: number | null // Number of followers, currentPosition: { companyName: string | null }[] | null // Current company/position, experience: { position: string | null // Job title/position, location: string | null // Job location, employmentType: string | null // Employment type, workplaceType: string | null // Workplace type, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, duration: string | null // Duration text, description: string | null // Role description, skills: string[] | null // Skills for this role, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date }[] | null // Work experience history, education: { schoolName: string | null // School name, schoolLinkedinUrl: string | null // School LinkedIn URL, degree: string | null // Degree type, fieldOfStudy: string | null // Field of study, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date, period: string | null // Period text }[] | null // Education history, certifications: { title: string | null, issuedAt: string | null, issuedBy: string | null }[] | null // Certifications, languages: { name: string | null, proficiency: string | null }[] | null // Languages, skills: { name: string | null }[] | null // All skills } | null | undefined // LinkedIn profile data (only for scrapeProfile operation),\n// jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n// posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n// username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n// paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n// keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n// totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n// hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n// totalPosts: number // Total number of posts found,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
37223
+ "usageExample": "// Example usage of linkedin-tool bubble\nconst linkedinTool = new LinkedInTool({\n operation: \"scrapePosts\" // options: \"scrapePosts\", \"searchPosts\", \"scrapeJobs\", // Operation to perform: scrapePosts (profiles), searchPosts (keywords), or scrapeJobs,\n username: \"example string\", // LinkedIn username (for scrapePosts operation). Examples: \"satyanadella\", \"billgates\",\n keyword: \"example string\", // Keyword or phrase to search for (for searchPosts/scrapeJobs). Examples: \"AI\", \"hiring\", \"Software Engineer\",\n location: \"example string\", // Location for job search (e.g. \"San Francisco\", \"Remote\") (scrapeJobs only),\n jobType: [\"full-time\" // options: \"full-time\", \"part-time\", \"contract\", \"temporary\", \"internship\"], // Filter by job type (scrapeJobs only),\n workplaceType: [\"on-site\" // options: \"on-site\", \"remote\", \"hybrid\"], // Filter by workplace type (scrapeJobs only),\n experienceLevel: [\"internship\" // options: \"internship\", \"entry-level\", \"associate\", \"mid-senior\", \"director\", \"executive\"], // Filter by experience level (scrapeJobs only),\n sortBy: \"relevance\" // options: \"relevance\", \"date_posted\", // Sort results by relevance or date posted (for searchPosts operation, default: relevance),\n dateFilter: \"past-24h\" // options: \"past-24h\", \"past-week\", \"past-month\", // Filter posts/jobs by date range (searchPosts/scrapeJobs). Options: past-24h, past-week, past-month. Leave empty for no date filter.,\n limit: 50 // default, // Maximum number of items to fetch (default: 50),\n pageNumber: 1 // default, // Page number for pagination (default: 1),\n});\n\nconst result = await linkedinTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n// jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n// posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n// username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n// paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n// keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n// totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n// hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n// totalPosts: number // Total number of posts found,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
37699
37224
  "requiredCredentials": [
37700
37225
  "APIFY_CRED"
37701
37226
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.138",
3
+ "version": "0.1.140",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -40,7 +40,7 @@
40
40
  "puppeteer-core": "^24.10.0",
41
41
  "resend": "^4.8.0",
42
42
  "zod": "^3.24.1",
43
- "@bubblelab/shared-schemas": "0.1.138"
43
+ "@bubblelab/shared-schemas": "0.1.140"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^20.12.12",