@bpmnkit/connector-gen 0.0.7 → 0.0.11

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.
package/README.md CHANGED
@@ -6,6 +6,8 @@
6
6
  [![npm](https://img.shields.io/npm/v/@bpmnkit/connector-gen?style=flat-square&color=6244d7)](https://www.npmjs.com/package/@bpmnkit/connector-gen)
7
7
  [![license](https://img.shields.io/npm/l/@bpmnkit/connector-gen?style=flat-square)](https://github.com/bpmnkit/monorepo/blob/main/LICENSE)
8
8
  [![typescript](https://img.shields.io/badge/TypeScript-strict-6244d7?style=flat-square&logo=typescript&logoColor=white)](https://github.com/bpmnkit/monorepo)
9
+ [![ai-assisted](https://img.shields.io/badge/AI--assisted-claude-8b5cf6?style=flat-square)](https://github.com/bpmnkit/monorepo)
10
+ [![experimental](https://img.shields.io/badge/status-experimental-f59e0b?style=flat-square)](https://github.com/bpmnkit/monorepo)
9
11
 
10
12
  [Website](https://bpmnkit.com) · [Documentation](https://docs.bpmnkit.com) · [GitHub](https://github.com/bpmnkit/monorepo) · [Changelog](https://github.com/bpmnkit/monorepo/blob/main/packages/connector-gen/CHANGELOG.md)
11
13
  </div>
@@ -86,6 +88,11 @@ interface GenerateOptions {
86
88
  | [`@bpmnkit/operate`](https://www.npmjs.com/package/@bpmnkit/operate) | Monitoring & operations frontend for Camunda clusters |
87
89
  | [`@bpmnkit/cli`](https://www.npmjs.com/package/@bpmnkit/cli) | Camunda 8 command-line interface (casen) |
88
90
  | [`@bpmnkit/proxy`](https://www.npmjs.com/package/@bpmnkit/proxy) | Local AI bridge and Camunda API proxy server |
91
+ | [`@bpmnkit/cli-sdk`](https://www.npmjs.com/package/@bpmnkit/cli-sdk) | Plugin authoring SDK for the casen CLI |
92
+ | [`@bpmnkit/create-casen-plugin`](https://www.npmjs.com/package/@bpmnkit/create-casen-plugin) | Scaffold a new casen CLI plugin in seconds |
93
+ | [`@bpmnkit/casen-report`](https://www.npmjs.com/package/@bpmnkit/casen-report) | HTML reports from Camunda 8 incident and SLA data |
94
+ | [`@bpmnkit/casen-worker-http`](https://www.npmjs.com/package/@bpmnkit/casen-worker-http) | Example HTTP worker plugin — completes jobs with live JSONPlaceholder API data |
95
+ | [`@bpmnkit/casen-worker-ai`](https://www.npmjs.com/package/@bpmnkit/casen-worker-ai) | AI task worker — classify, summarize, extract, and decide using Claude |
89
96
 
90
97
  ## License
91
98
 
package/dist/browser.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * @packageDocumentation
10
10
  */
11
11
  export { buildTemplate, buildTemplates } from "./build-template.js";
12
- export { CATALOG, getCatalogEntry } from "./catalog.js";
12
+ export { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
13
13
  export type { CatalogEntry } from "./catalog.js";
14
14
  export { detectDefaultAuth, getBaseUrl, getOperations, getServers, isRef, parseOpenApi, resolve, resolveRef, } from "./parse-openapi.js";
15
15
  export type { DetectedAuth } from "./parse-openapi.js";
package/dist/browser.js CHANGED
@@ -9,11 +9,11 @@
9
9
  * @packageDocumentation
10
10
  */
11
11
  export { buildTemplate, buildTemplates } from "./build-template.js";
12
- export { CATALOG, getCatalogEntry } from "./catalog.js";
12
+ export { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
13
13
  export { detectDefaultAuth, getBaseUrl, getOperations, getServers, isRef, parseOpenApi, resolve, resolveRef, } from "./parse-openapi.js";
14
14
  export { CONNECTOR_SCHEMA } from "./types.js";
15
15
  import { buildTemplates } from "./build-template.js";
16
- import { CATALOG, getCatalogEntry } from "./catalog.js";
16
+ import { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
17
17
  import { detectDefaultAuth, getOperations, parseOpenApi } from "./parse-openapi.js";
18
18
  /**
19
19
  * Parse an OpenAPI spec (string or object) and generate connector templates.
@@ -47,6 +47,7 @@ export async function generateFromCatalog(id, overrides = {}) {
47
47
  const opts = {
48
48
  idPrefix: overrides.idPrefix ?? entry.idPrefix,
49
49
  defaultAuthType: overrides.defaultAuthType ?? entry.defaultAuth,
50
+ icon: overrides.icon ?? getCatalogIconUri(id),
50
51
  ...overrides,
51
52
  };
52
53
  const { templates } = await generateFromUrl(entry.url, opts);
@@ -505,6 +505,7 @@ export function buildTemplate(op, opts) {
505
505
  elementType: { value: "bpmn:ServiceTask" },
506
506
  groups,
507
507
  properties,
508
+ ...(opts.icon ? { icon: { contents: opts.icon } } : {}),
508
509
  };
509
510
  }
510
511
  export function buildTemplates(ops, opts) {
package/dist/catalog.d.ts CHANGED
@@ -10,4 +10,9 @@ export interface CatalogEntry {
10
10
  }
11
11
  export declare const CATALOG: CatalogEntry[];
12
12
  export declare function getCatalogEntry(id: string): CatalogEntry | undefined;
13
+ /**
14
+ * Returns a base64 SVG data URI icon for a catalog entry — a rounded square
15
+ * in the brand's primary color with the first letter of the service name.
16
+ */
17
+ export declare function getCatalogIconUri(id: string): string | undefined;
13
18
  //# sourceMappingURL=catalog.d.ts.map
package/dist/catalog.js CHANGED
@@ -239,8 +239,645 @@ export const CATALOG = [
239
239
  idPrefix: "com.brex",
240
240
  defaultAuth: "oauth-client-credentials-flow",
241
241
  },
242
+ {
243
+ id: "box",
244
+ name: "Box API",
245
+ description: "Upload, download, organize, and share files and folders via the Box cloud storage platform",
246
+ url: "https://raw.githubusercontent.com/box/box-openapi/main/openapi.json",
247
+ idPrefix: "com.box",
248
+ defaultAuth: "oauth-client-credentials-flow",
249
+ },
250
+ {
251
+ id: "spotify",
252
+ name: "Spotify Web API",
253
+ description: "Search tracks, manage playlists, control playback, and read user libraries on Spotify",
254
+ url: "https://api.apis.guru/v2/specs/spotify.com/sonallux/2023.2.27/openapi.json",
255
+ idPrefix: "com.spotify",
256
+ defaultAuth: "oauth-client-credentials-flow",
257
+ },
258
+ {
259
+ id: "gitlab",
260
+ name: "GitLab API",
261
+ description: "Manage GitLab repositories, CI/CD pipelines, merge requests, issues, and users",
262
+ url: "https://api.apis.guru/v2/specs/gitlab.com/v3/swagger.json",
263
+ idPrefix: "com.gitlab",
264
+ defaultAuth: "bearer",
265
+ },
266
+ {
267
+ id: "netlify",
268
+ name: "Netlify API",
269
+ description: "Deploy sites, manage builds, configure domains, and handle forms on Netlify",
270
+ url: "https://api.apis.guru/v2/specs/netlify.com/2.15.0/swagger.json",
271
+ idPrefix: "com.netlify",
272
+ defaultAuth: "oauth-client-credentials-flow",
273
+ },
274
+ {
275
+ id: "launchdarkly",
276
+ name: "LaunchDarkly API",
277
+ description: "Create and manage feature flags, experiments, segments, and environments",
278
+ url: "https://api.apis.guru/v2/specs/launchdarkly.com/5.3.0/swagger.json",
279
+ idPrefix: "com.launchdarkly",
280
+ defaultAuth: "apiKey",
281
+ },
282
+ {
283
+ id: "postmark",
284
+ name: "Postmark API",
285
+ description: "Send and track transactional emails, manage templates and bounce handling via Postmark",
286
+ url: "https://api.apis.guru/v2/specs/postmarkapp.com/server/1.0.0/swagger.json",
287
+ idPrefix: "com.postmark",
288
+ defaultAuth: "apiKey",
289
+ },
290
+ {
291
+ id: "circleci",
292
+ name: "CircleCI API",
293
+ description: "Trigger pipelines, inspect workflows and jobs, and manage contexts and SSH keys",
294
+ url: "https://api.apis.guru/v2/specs/circleci.com/v1/openapi.json",
295
+ idPrefix: "com.circleci",
296
+ defaultAuth: "apiKey",
297
+ },
298
+ {
299
+ id: "grafana",
300
+ name: "Grafana API",
301
+ description: "Manage dashboards, alerts, datasources, users, and annotations in Grafana",
302
+ url: "https://raw.githubusercontent.com/grafana/grafana/main/public/openapi3.json",
303
+ idPrefix: "com.grafana",
304
+ defaultAuth: "basic",
305
+ },
306
+ {
307
+ id: "digitalocean",
308
+ name: "DigitalOcean API",
309
+ description: "Provision Droplets, Kubernetes clusters, databases, load balancers, and networking",
310
+ url: "https://api.apis.guru/v2/specs/digitalocean.com/2.0/openapi.json",
311
+ idPrefix: "com.digitalocean",
312
+ defaultAuth: "bearer",
313
+ },
314
+ {
315
+ id: "linode",
316
+ name: "Linode (Akamai) API",
317
+ description: "Manage cloud compute instances, volumes, Kubernetes clusters, and DNS via Linode",
318
+ url: "https://api.apis.guru/v2/specs/linode.com/4.145.0/openapi.json",
319
+ idPrefix: "com.linode",
320
+ defaultAuth: "bearer",
321
+ },
322
+ {
323
+ id: "square",
324
+ name: "Square API",
325
+ description: "Process payments, manage orders, catalog items, and bookings via Square",
326
+ url: "https://api.apis.guru/v2/specs/squareup.com/2.0/openapi.json",
327
+ idPrefix: "com.squareup",
328
+ defaultAuth: "oauth-client-credentials-flow",
329
+ },
330
+ {
331
+ id: "zendesk",
332
+ name: "Zendesk Support API",
333
+ description: "Manage support tickets, users, macros, triggers, and SLAs in Zendesk",
334
+ url: "https://developer.zendesk.com/zendesk/oas.yaml",
335
+ idPrefix: "com.zendesk",
336
+ defaultAuth: "basic",
337
+ },
338
+ {
339
+ id: "bitbucket",
340
+ name: "Bitbucket API",
341
+ description: "Manage Bitbucket repositories, pull requests, pipelines, and deployments",
342
+ url: "https://api.apis.guru/v2/specs/bitbucket.org/2.0/openapi.yaml",
343
+ idPrefix: "org.bitbucket",
344
+ defaultAuth: "basic",
345
+ },
346
+ {
347
+ id: "miro",
348
+ name: "Miro API",
349
+ description: "Create and manage Miro boards, frames, sticky notes, and collaborative widgets",
350
+ url: "https://raw.githubusercontent.com/miroapp/api-clients/main/packages/generator/spec.json",
351
+ idPrefix: "com.miro",
352
+ defaultAuth: "bearer",
353
+ },
354
+ {
355
+ id: "okta",
356
+ name: "Okta Management API",
357
+ description: "Manage users, groups, applications, policies, and identity providers via Okta",
358
+ url: "https://raw.githubusercontent.com/okta/okta-management-openapi-spec/master/dist/current/management-oneOfInheritance.yaml",
359
+ idPrefix: "com.okta",
360
+ defaultAuth: "bearer",
361
+ },
362
+ {
363
+ id: "meraki",
364
+ name: "Cisco Meraki API",
365
+ description: "Manage cloud-controlled Wi-Fi, switches, security cameras, and network policies",
366
+ url: "https://api.apis.guru/v2/specs/meraki.com/0.0.0-streaming/openapi.json",
367
+ idPrefix: "com.meraki",
368
+ defaultAuth: "apiKey",
369
+ },
370
+ {
371
+ id: "docker",
372
+ name: "Docker Hub API",
373
+ description: "Manage container image repositories, tags, webhooks, and access tokens on Docker Hub",
374
+ url: "https://api.apis.guru/v2/specs/docker.com/hub/beta/openapi.json",
375
+ idPrefix: "com.docker",
376
+ defaultAuth: "bearer",
377
+ },
378
+ {
379
+ id: "kubernetes",
380
+ name: "Kubernetes API",
381
+ description: "Manage pods, deployments, services, config maps, and cluster resources via the Kubernetes API",
382
+ url: "https://api.apis.guru/v2/specs/kubernetes.io/unversioned/swagger.json",
383
+ idPrefix: "io.kubernetes",
384
+ defaultAuth: "bearer",
385
+ },
386
+ {
387
+ id: "freshdesk",
388
+ name: "Freshdesk API",
389
+ description: "Manage support tickets, contacts, agents, and knowledge base articles in Freshdesk",
390
+ url: "https://raw.githubusercontent.com/ccl-consulting/freshdesk-openapi-definitions/main/swagger.yaml",
391
+ idPrefix: "com.freshdesk",
392
+ defaultAuth: "basic",
393
+ },
394
+ {
395
+ id: "dropbox",
396
+ name: "Dropbox API",
397
+ description: "Upload, download, share, and manage files and folders in Dropbox cloud storage",
398
+ url: "https://api.apis.guru/v2/specs/dropbox.com/2/openapi.yaml",
399
+ idPrefix: "com.dropbox",
400
+ defaultAuth: "oauth-client-credentials-flow",
401
+ },
402
+ {
403
+ id: "xero",
404
+ name: "Xero Accounting API",
405
+ description: "Manage invoices, contacts, bank accounts, and financial reporting in Xero",
406
+ url: "https://raw.githubusercontent.com/XeroAPI/Xero-OpenAPI/master/xero_accounting.yaml",
407
+ idPrefix: "com.xero",
408
+ defaultAuth: "oauth-client-credentials-flow",
409
+ },
410
+ {
411
+ id: "bigcommerce",
412
+ name: "BigCommerce Catalog API",
413
+ description: "Manage products, categories, brands, and variants in a BigCommerce store",
414
+ url: "https://raw.githubusercontent.com/bigcommerce/api-specs/main/reference/catalog/products_catalog.v3.yml",
415
+ idPrefix: "com.bigcommerce",
416
+ defaultAuth: "apiKey",
417
+ },
418
+ {
419
+ id: "recurly",
420
+ name: "Recurly Billing API",
421
+ description: "Manage subscriptions, accounts, invoices, and billing for recurring revenue",
422
+ url: "https://raw.githubusercontent.com/recurly/recurly-client-node/master/openapi/api.yaml",
423
+ idPrefix: "com.recurly",
424
+ defaultAuth: "basic",
425
+ },
426
+ {
427
+ id: "cohere",
428
+ name: "Cohere AI API",
429
+ description: "Access Cohere language AI models for chat, embeddings, and reranking",
430
+ url: "https://raw.githubusercontent.com/cohere-ai/cohere-developer-experience/main/cohere-openapi.yaml",
431
+ idPrefix: "com.cohere",
432
+ defaultAuth: "bearer",
433
+ },
434
+ {
435
+ id: "algolia",
436
+ name: "Algolia Search API",
437
+ description: "Search, configure indices, and manage records in Algolia",
438
+ url: "https://raw.githubusercontent.com/algolia/api-clients-automation/main/docs/bundled/search.yml",
439
+ idPrefix: "com.algolia",
440
+ defaultAuth: "apiKey",
441
+ },
442
+ {
443
+ id: "replicate",
444
+ name: "Replicate API",
445
+ description: "Run open-source machine learning models in the cloud via API",
446
+ url: "https://api.replicate.com/openapi.json",
447
+ idPrefix: "com.replicate",
448
+ defaultAuth: "apiKey",
449
+ },
450
+ {
451
+ id: "mixpanel",
452
+ name: "Mixpanel Ingestion API",
453
+ description: "Track events and update user profiles in Mixpanel for product analytics",
454
+ url: "https://raw.githubusercontent.com/mixpanel/docs/main/openapi/src/ingestion.openapi.yaml",
455
+ idPrefix: "com.mixpanel",
456
+ defaultAuth: "basic",
457
+ },
458
+ {
459
+ id: "trello",
460
+ name: "Trello API",
461
+ description: "Create and manage Trello boards, lists, cards, and team collaboration",
462
+ url: "https://api.apis.guru/v2/specs/trello.com/1.0/openapi.json",
463
+ idPrefix: "com.trello",
464
+ defaultAuth: "oauth-client-credentials-flow",
465
+ },
466
+ {
467
+ id: "confluence",
468
+ name: "Confluence Cloud REST API",
469
+ description: "Create, read, update, and manage pages, spaces, and content in Atlassian Confluence",
470
+ url: "https://dac-static.atlassian.com/cloud/confluence/swagger.v3.json",
471
+ idPrefix: "io.atlassian.confluence",
472
+ defaultAuth: "bearer",
473
+ },
474
+ {
475
+ id: "pipedrive",
476
+ name: "Pipedrive CRM API",
477
+ description: "Manage deals, contacts, pipelines, and sales activities in Pipedrive CRM",
478
+ url: "https://developers.pipedrive.com/docs/api/v1/openapi.yaml",
479
+ idPrefix: "com.pipedrive",
480
+ defaultAuth: "apiKey",
481
+ },
482
+ {
483
+ id: "adyen",
484
+ name: "Adyen Checkout API",
485
+ description: "Initiate and authorise online payments through the Adyen payment platform",
486
+ url: "https://raw.githubusercontent.com/Adyen/adyen-openapi/master/yaml/CheckoutService-v71.yaml",
487
+ idPrefix: "com.adyen",
488
+ defaultAuth: "apiKey",
489
+ },
490
+ {
491
+ id: "twilio-voice",
492
+ name: "Twilio Voice API",
493
+ description: "Make, receive, and control phone calls programmatically using Twilio Voice",
494
+ url: "https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_voice_v1.json",
495
+ idPrefix: "io.twilio.voice",
496
+ defaultAuth: "basic",
497
+ },
498
+ {
499
+ id: "paddle",
500
+ name: "Paddle Billing API",
501
+ description: "Manage subscriptions, payments, customers, and transactions with Paddle",
502
+ url: "https://raw.githubusercontent.com/PaddleHQ/paddle-openapi/main/v1/openapi.yaml",
503
+ idPrefix: "com.paddle",
504
+ defaultAuth: "bearer",
505
+ },
506
+ {
507
+ id: "lob",
508
+ name: "Lob API",
509
+ description: "Send physical mail — letters, postcards, and checks — programmatically via API",
510
+ url: "https://raw.githubusercontent.com/lob/lob-openapi/main/lob-api-public.yml",
511
+ idPrefix: "com.lob",
512
+ defaultAuth: "basic",
513
+ },
514
+ {
515
+ id: "deepl",
516
+ name: "DeepL Translation API",
517
+ description: "Translate text and documents into 30+ languages using DeepL neural machine translation",
518
+ url: "https://raw.githubusercontent.com/DeepLcom/openapi/main/openapi.yaml",
519
+ idPrefix: "com.deepl",
520
+ defaultAuth: "apiKey",
521
+ },
522
+ {
523
+ id: "docusign",
524
+ name: "DocuSign eSignature API",
525
+ description: "Send, sign, and manage electronic signature agreements and envelopes",
526
+ url: "https://raw.githubusercontent.com/docusign/OpenAPI-Specifications/master/esignature.rest.swagger-v2.1.json",
527
+ idPrefix: "com.docusign",
528
+ defaultAuth: "oauth-client-credentials-flow",
529
+ },
530
+ {
531
+ id: "chargebee",
532
+ name: "Chargebee Billing API",
533
+ description: "Manage subscriptions, invoices, customers, and revenue operations with Chargebee",
534
+ url: "https://raw.githubusercontent.com/chargebee/openapi/master/spec/chargebee_api_v2_pc_v1_spec.json",
535
+ idPrefix: "com.chargebee",
536
+ defaultAuth: "basic",
537
+ },
538
+ {
539
+ id: "twilio-video",
540
+ name: "Twilio Video API",
541
+ description: "Build real-time video and audio communication features using Twilio Video",
542
+ url: "https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_video_v1.json",
543
+ idPrefix: "io.twilio.video",
544
+ defaultAuth: "basic",
545
+ },
546
+ {
547
+ id: "cloudinary",
548
+ name: "Cloudinary Media API",
549
+ description: "Upload, transform, optimize, and deliver images and videos via the Cloudinary platform",
550
+ url: "https://raw.githubusercontent.com/cloudinary/account-provisioning-java/master/api/openapi.yaml",
551
+ idPrefix: "com.cloudinary",
552
+ defaultAuth: "basic",
553
+ },
554
+ {
555
+ id: "amplitude",
556
+ name: "Amplitude Analytics API",
557
+ description: "Track events, query analytics data, and manage user cohorts in Amplitude",
558
+ url: "https://raw.githubusercontent.com/amplitude/amplitude-docs/main/content/collections/api/en/session-replay-openapi.yaml",
559
+ idPrefix: "com.amplitude",
560
+ defaultAuth: "basic",
561
+ },
562
+ {
563
+ id: "mollie",
564
+ name: "Mollie Payments API",
565
+ description: "European payment gateway for accepting online payments via cards, iDEAL, SEPA, and other methods",
566
+ url: "https://raw.githubusercontent.com/mollie/openapi/main/specs.yaml",
567
+ idPrefix: "com.mollie",
568
+ defaultAuth: "apiKey",
569
+ },
570
+ {
571
+ id: "quickbooks-online",
572
+ name: "QuickBooks Online API",
573
+ description: "Manage invoices, payments, expenses, and financial data in QuickBooks Online",
574
+ url: "https://raw.githubusercontent.com/ballerina-platform/openapi-connectors/main/openapi/quickbooks.online/openapi.yaml",
575
+ idPrefix: "com.intuit.quickbooks",
576
+ defaultAuth: "oauth-client-credentials-flow",
577
+ },
578
+ {
579
+ id: "servicenow",
580
+ name: "ServiceNow API",
581
+ description: "IT service management for incidents, changes, requests, and CMDB operations",
582
+ url: "https://raw.githubusercontent.com/ballerina-platform/openapi-connectors/main/openapi/servicenow/openapi.yaml",
583
+ idPrefix: "com.servicenow",
584
+ defaultAuth: "basic",
585
+ },
586
+ {
587
+ id: "telegram-bot",
588
+ name: "Telegram Bot API",
589
+ description: "Build Telegram bots — send messages, manage chats, handle updates and inline queries",
590
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/telegram.org/5.0.0/openapi.yaml",
591
+ idPrefix: "org.telegram",
592
+ defaultAuth: "apiKey",
593
+ },
594
+ {
595
+ id: "clickup",
596
+ name: "ClickUp API",
597
+ description: "Project management platform for tasks, spaces, lists, docs, goals, and time tracking",
598
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/clickup.com/1.0.0/openapi.yaml",
599
+ idPrefix: "com.clickup",
600
+ defaultAuth: "apiKey",
601
+ },
602
+ {
603
+ id: "webflow",
604
+ name: "Webflow API",
605
+ description: "Manage Webflow sites, CMS collections, pages, forms, and ecommerce orders",
606
+ url: "https://raw.githubusercontent.com/webflow/openapi-spec/main/openapi/v2.yml",
607
+ idPrefix: "com.webflow",
608
+ defaultAuth: "oauth-client-credentials-flow",
609
+ },
610
+ {
611
+ id: "activecampaign",
612
+ name: "ActiveCampaign API",
613
+ description: "Email marketing and CRM automation for contacts, campaigns, automations, and deals",
614
+ url: "https://raw.githubusercontent.com/ballerina-platform/openapi-connectors/main/openapi/activecampaign/openapi.yaml",
615
+ idPrefix: "com.activecampaign",
616
+ defaultAuth: "apiKey",
617
+ },
618
+ {
619
+ id: "zoho-crm",
620
+ name: "Zoho CRM API",
621
+ description: "Manage leads, contacts, accounts, deals, and sales pipelines in Zoho CRM",
622
+ url: "https://raw.githubusercontent.com/ballerina-platform/openapi-connectors/main/openapi/zoho.crm.rest/openapi.yaml",
623
+ idPrefix: "com.zoho.crm",
624
+ defaultAuth: "oauth-client-credentials-flow",
625
+ },
626
+ {
627
+ id: "influxdb",
628
+ name: "InfluxDB API",
629
+ description: "Write, query, and manage time-series metrics and monitoring data in InfluxDB",
630
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/influxdata.com/2.0.0/openapi.yaml",
631
+ idPrefix: "com.influxdata",
632
+ defaultAuth: "apiKey",
633
+ },
634
+ {
635
+ id: "telnyx",
636
+ name: "Telnyx API",
637
+ description: "Cloud communications platform for programmable voice, SMS, fax, and number management",
638
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/telnyx.com/2.0.0/openapi.yaml",
639
+ idPrefix: "com.telnyx",
640
+ defaultAuth: "bearer",
641
+ },
642
+ {
643
+ id: "bamboohr",
644
+ name: "BambooHR API",
645
+ description: "HR software for employee records, time-off requests, onboarding, and performance management",
646
+ url: "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/main/bamboohr/openapi.yaml",
647
+ idPrefix: "com.bamboohr",
648
+ defaultAuth: "apiKey",
649
+ },
650
+ {
651
+ id: "gusto",
652
+ name: "Gusto Payroll API",
653
+ description: "Payroll and HR platform for managing employees, payroll runs, benefits, and tax filings",
654
+ url: "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/main/gusto/embedded-payroll/openapi.yaml",
655
+ idPrefix: "com.gusto",
656
+ defaultAuth: "oauth-client-credentials-flow",
657
+ },
658
+ {
659
+ id: "copper-crm",
660
+ name: "Copper CRM API",
661
+ description: "Google Workspace-native CRM for managing leads, people, companies, and opportunities",
662
+ url: "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/main/copper/openapi.yaml",
663
+ idPrefix: "com.copper",
664
+ defaultAuth: "apiKey",
665
+ },
666
+ {
667
+ id: "vonage-sms",
668
+ name: "Vonage SMS API",
669
+ description: "Send and receive SMS messages globally via the Vonage (Nexmo) messaging platform",
670
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/nexmo.com/sms/1.2.0/openapi.yaml",
671
+ idPrefix: "com.vonage",
672
+ defaultAuth: "apiKey",
673
+ },
674
+ {
675
+ id: "personio",
676
+ name: "Personio HR API",
677
+ description: "European HR platform for employee data, attendance, absences, and recruiting",
678
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/personio.de/personnel/1.0/openapi.yaml",
679
+ idPrefix: "de.personio",
680
+ defaultAuth: "bearer",
681
+ },
682
+ {
683
+ id: "weatherbit",
684
+ name: "Weatherbit API",
685
+ description: "Current weather, forecasts, historical data, and severe weather alerts worldwide",
686
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/weatherbit.io/2.0.0/swagger.yaml",
687
+ idPrefix: "io.weatherbit",
688
+ defaultAuth: "apiKey",
689
+ },
690
+ {
691
+ id: "magento",
692
+ name: "Adobe Commerce (Magento) API",
693
+ description: "E-commerce platform for products, orders, customers, inventory, and checkout",
694
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/magento.com/2.2.10/openapi.yaml",
695
+ idPrefix: "com.magento",
696
+ defaultAuth: "bearer",
697
+ },
698
+ {
699
+ id: "zoho-books",
700
+ name: "Zoho Books API",
701
+ description: "Online accounting for invoices, expenses, bank reconciliation, and financial reports",
702
+ url: "https://raw.githubusercontent.com/ballerina-platform/openapi-connectors/main/openapi/zoho.books/openapi.yaml",
703
+ idPrefix: "com.zoho.books",
704
+ defaultAuth: "oauth-client-credentials-flow",
705
+ },
706
+ {
707
+ id: "appwrite",
708
+ name: "Appwrite API",
709
+ description: "Open-source BaaS for authentication, databases, file storage, and cloud functions",
710
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/appwrite.io/server/0.9.3/openapi.yaml",
711
+ idPrefix: "io.appwrite",
712
+ defaultAuth: "apiKey",
713
+ },
714
+ {
715
+ id: "nasa",
716
+ name: "NASA APOD API",
717
+ description: "NASA Astronomy Picture of the Day — daily space imagery with metadata and explanations",
718
+ url: "https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/nasa.gov/apod/1.0.0/openapi.yaml",
719
+ idPrefix: "gov.nasa",
720
+ defaultAuth: "apiKey",
721
+ },
722
+ {
723
+ id: "coda",
724
+ name: "Coda API",
725
+ description: "Build rich collaborative docs with tables, views, and automations in Coda",
726
+ url: "https://coda.io/apis/v1/openapi.json",
727
+ idPrefix: "io.coda",
728
+ defaultAuth: "bearer",
729
+ },
730
+ {
731
+ id: "svix",
732
+ name: "Svix Webhooks API",
733
+ description: "Webhooks-as-a-service for reliably sending, receiving, and managing webhooks at scale",
734
+ url: "https://raw.githubusercontent.com/svix/svix-webhooks/main/server/openapi.json",
735
+ idPrefix: "com.svix",
736
+ defaultAuth: "bearer",
737
+ },
738
+ {
739
+ id: "supabase-storage",
740
+ name: "Supabase Storage API",
741
+ description: "Open-source object storage for managing files and buckets with S3-compatible semantics",
742
+ url: "https://raw.githubusercontent.com/supabase/supabase/master/apps/docs/spec/storage_v0_openapi.json",
743
+ idPrefix: "com.supabase",
744
+ defaultAuth: "bearer",
745
+ },
746
+ {
747
+ id: "novu",
748
+ name: "Novu Notifications API",
749
+ description: "Open-source notification infrastructure for orchestrating multi-channel alerts across email, SMS, and push",
750
+ url: "https://api.novu.co/openapi.json",
751
+ idPrefix: "co.novu",
752
+ defaultAuth: "apiKey",
753
+ },
754
+ {
755
+ id: "lago",
756
+ name: "Lago Billing API",
757
+ description: "Open-source metering and usage-based billing engine for building flexible event-driven pricing models",
758
+ url: "https://raw.githubusercontent.com/getlago/lago-openapi/main/openapi.yaml",
759
+ idPrefix: "com.lago",
760
+ defaultAuth: "bearer",
761
+ },
762
+ {
763
+ id: "hookdeck",
764
+ name: "Hookdeck API",
765
+ description: "Webhook infrastructure for reliably receiving, filtering, transforming, and retrying inbound webhooks",
766
+ url: "https://raw.githubusercontent.com/hookdeck/hookdeck-api-schema/main/openapi.json",
767
+ idPrefix: "com.hookdeck",
768
+ defaultAuth: "apiKey",
769
+ },
770
+ {
771
+ id: "posthog",
772
+ name: "PostHog API",
773
+ description: "Open-source product analytics for user behavior tracking, feature flags, session recording, and A/B testing",
774
+ url: "https://app.posthog.com/api/schema/?format=json",
775
+ idPrefix: "com.posthog",
776
+ defaultAuth: "apiKey",
777
+ },
778
+ {
779
+ id: "airbyte",
780
+ name: "Airbyte API",
781
+ description: "Open-source data integration platform for syncing data between hundreds of sources and destinations",
782
+ url: "https://raw.githubusercontent.com/airbytehq/airbyte-api-python-sdk/main/airbyte-api.openapi.yaml",
783
+ idPrefix: "io.airbyte",
784
+ defaultAuth: "bearer",
785
+ },
786
+ {
787
+ id: "ably",
788
+ name: "Ably Control API",
789
+ description: "Realtime messaging platform for pub/sub, presence, channel management, and data stream orchestration",
790
+ url: "https://raw.githubusercontent.com/ably/open-specs/main/definitions/control-v1.yaml",
791
+ idPrefix: "io.ably",
792
+ defaultAuth: "bearer",
793
+ },
794
+ {
795
+ id: "openfga",
796
+ name: "OpenFGA API",
797
+ description: "Fine-grained authorization system for building relationship-based access control based on the Google Zanzibar model",
798
+ url: "https://raw.githubusercontent.com/openfga/api/main/docs/openapiv2/apidocs.swagger.json",
799
+ idPrefix: "dev.openfga",
800
+ defaultAuth: "bearer",
801
+ },
242
802
  ];
243
803
  export function getCatalogEntry(id) {
244
804
  return CATALOG.find((e) => e.id === id);
245
805
  }
806
+ // ── Icons ─────────────────────────────────────────────────────────────────────
807
+ /** Brand colors sourced from Simple Icons (simpleicons.org). All chosen for legible white text. */
808
+ const BRAND_COLORS = {
809
+ github: "#24292e",
810
+ cloudflare: "#F38020",
811
+ stripe: "#635BFF",
812
+ notion: "#191919",
813
+ resend: "#191919",
814
+ openai: "#10A37F",
815
+ figma: "#F24E1E",
816
+ twilio: "#F22F46",
817
+ slack: "#4A154B",
818
+ jira: "#0052CC",
819
+ hubspot: "#FF7A59",
820
+ discord: "#5865F2",
821
+ pagerduty: "#06AC38",
822
+ zoom: "#2D8CFF",
823
+ mailchimp: "#C21A01",
824
+ asana: "#F06A6A",
825
+ sendgrid: "#1A82E2",
826
+ paypal: "#003087",
827
+ plaid: "#00A67E",
828
+ vercel: "#191919",
829
+ anthropic: "#C97045",
830
+ shopify: "#7AB648",
831
+ datadog: "#632CA6",
832
+ sentry: "#362D59",
833
+ intercom: "#1F8DED",
834
+ contentful: "#2478CC",
835
+ airtable: "#1071C9",
836
+ twitch: "#9146FF",
837
+ klaviyo: "#1E1E2E",
838
+ brex: "#3B2FC9",
839
+ box: "#0061D5",
840
+ spotify: "#1DB954",
841
+ gitlab: "#FC6D26",
842
+ netlify: "#00C7B7",
843
+ launchdarkly: "#405BFF",
844
+ postmark: "#E77925",
845
+ circleci: "#343434",
846
+ grafana: "#F46800",
847
+ digitalocean: "#0080FF",
848
+ linode: "#00B050",
849
+ square: "#3E4348",
850
+ zendesk: "#03363D",
851
+ bitbucket: "#0052CC",
852
+ miro: "#050038",
853
+ okta: "#007DC1",
854
+ meraki: "#1BA0D7",
855
+ docker: "#2496ED",
856
+ kubernetes: "#326CE5",
857
+ freshdesk: "#27B2AA",
858
+ dropbox: "#0061FF",
859
+ xero: "#13B5EA",
860
+ bigcommerce: "#34313F",
861
+ recurly: "#FF5B59",
862
+ ably: "#FF5416",
863
+ openfga: "#3E4A61",
864
+ };
865
+ /**
866
+ * Returns a base64 SVG data URI icon for a catalog entry — a rounded square
867
+ * in the brand's primary color with the first letter of the service name.
868
+ */
869
+ export function getCatalogIconUri(id) {
870
+ const color = BRAND_COLORS[id];
871
+ if (!color)
872
+ return undefined;
873
+ const entry = getCatalogEntry(id);
874
+ if (!entry)
875
+ return undefined;
876
+ const letter = entry.name
877
+ .replace(/^[^A-Za-z]*/, "")
878
+ .charAt(0)
879
+ .toUpperCase();
880
+ const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><rect width="24" height="24" rx="5" fill="${color}"/><text x="12" y="17" font-family="ui-sans-serif,system-ui,sans-serif" font-size="13" font-weight="700" fill="white" text-anchor="middle">${letter}</text></svg>`;
881
+ return `data:image/svg+xml;base64,${btoa(svg)}`;
882
+ }
246
883
  //# sourceMappingURL=catalog.js.map
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { buildTemplate, buildTemplates } from "./build-template.js";
2
- export { CATALOG, getCatalogEntry } from "./catalog.js";
2
+ export { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
3
3
  export type { CatalogEntry } from "./catalog.js";
4
+ export { CONNECTOR_STATS } from "./stats.js";
4
5
  export { detectDefaultAuth, getBaseUrl, getOperations, getServers, isRef, parseOpenApi, resolve, resolveRef, } from "./parse-openapi.js";
5
6
  export type { DetectedAuth } from "./parse-openapi.js";
6
7
  export type { ApiResponse, AuthHint, Binding, Components, ConnectorGroup, ConnectorTemplate, Constraints, GeneratorOptions, HttpMethod, MediaType, OpenApiDoc, OpenApiInfo, OpenApiServer, Operation, OperationWithMeta, OAuthFlows, Parameter, PathItem, PropertyDef, Ref, RequestBody, Schema, SecurityRequirement, SecurityScheme, WriteOptions, } from "./types.js";
package/dist/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  export { buildTemplate, buildTemplates } from "./build-template.js";
2
- export { CATALOG, getCatalogEntry } from "./catalog.js";
2
+ export { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
3
+ export { CONNECTOR_STATS } from "./stats.js";
3
4
  export { detectDefaultAuth, getBaseUrl, getOperations, getServers, isRef, parseOpenApi, resolve, resolveRef, } from "./parse-openapi.js";
4
5
  export { CONNECTOR_SCHEMA } from "./types.js";
5
6
  export { writeTemplates } from "./write-templates.js";
6
7
  import { buildTemplates } from "./build-template.js";
7
- import { CATALOG, getCatalogEntry } from "./catalog.js";
8
+ import { CATALOG, getCatalogEntry, getCatalogIconUri } from "./catalog.js";
8
9
  import { detectDefaultAuth, getOperations, parseOpenApi } from "./parse-openapi.js";
9
10
  import { writeTemplates } from "./write-templates.js";
10
11
  /**
@@ -46,6 +47,7 @@ export async function generateFromCatalog(id, overrides = {}) {
46
47
  const opts = {
47
48
  idPrefix: overrides.idPrefix ?? entry.idPrefix,
48
49
  defaultAuthType: overrides.defaultAuthType ?? entry.defaultAuth,
50
+ icon: overrides.icon ?? getCatalogIconUri(id),
49
51
  ...overrides,
50
52
  };
51
53
  const { templates, files } = await generateFromUrl(entry.url, opts);
@@ -0,0 +1,5 @@
1
+ export declare const CONNECTOR_STATS: {
2
+ readonly services: 100;
3
+ readonly endpoints: 18145;
4
+ };
5
+ //# sourceMappingURL=stats.d.ts.map
package/dist/stats.js ADDED
@@ -0,0 +1,6 @@
1
+ // Auto-generated by scripts/update-connector-stats.mjs — do not edit manually.
2
+ export const CONNECTOR_STATS = {
3
+ services: 100,
4
+ endpoints: 18145,
5
+ };
6
+ //# sourceMappingURL=stats.js.map
package/dist/types.d.ts CHANGED
@@ -236,6 +236,8 @@ export interface GeneratorOptions {
236
236
  filter?: string;
237
237
  /** Pre-select a specific auth type */
238
238
  defaultAuthType?: AuthHint;
239
+ /** Icon data URI (e.g. "data:image/svg+xml;base64,...") applied to all generated templates */
240
+ icon?: string;
239
241
  }
240
242
  export interface WriteOptions {
241
243
  outputDir: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bpmnkit/connector-gen",
3
- "version": "0.0.7",
3
+ "version": "0.0.11",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {