{
  "$schema": "https://thinwrap.dev/catalog-spec",
  "version": "1",
  "generatedAt": "2026-07-14T19:33:29.251Z",
  "packages": [
    {
      "repoName": "location-php",
      "language": "php",
      "scope": "location",
      "registry": "packagist",
      "registryUrl": "https://packagist.org/packages/thinwrap/location",
      "packageName": "thinwrap/location",
      "version": "1.0.0",
      "agentDocUrl": "https://github.com/thinwrap/location-php/blob/main/.ai/guidelines.md",
      "agentDocFreshness": "current",
      "providers": [
        {
          "providerId": "google",
          "humanName": "Google Maps Platform",
          "operations": [
            "routing",
            "matrix",
            "geocoding"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Google/README.md"
        },
        {
          "providerId": "mapbox",
          "humanName": "Mapbox",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Mapbox/README.md"
        },
        {
          "providerId": "here",
          "humanName": "HERE",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Here/README.md"
        },
        {
          "providerId": "esri",
          "humanName": "ESRI ArcGIS",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Esri/README.md"
        },
        {
          "providerId": "tomtom",
          "humanName": "TomTom",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/TomTom/README.md"
        },
        {
          "providerId": "osrm",
          "humanName": "OSRM (self-hosted)",
          "operations": [
            "routing",
            "matrix"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Osrm/README.md"
        }
      ]
    },
    {
      "repoName": "location-ts",
      "language": "typescript",
      "scope": "location",
      "registry": "npm",
      "registryUrl": "https://www.npmjs.com/package/@thinwrap/location",
      "packageName": "@thinwrap/location",
      "version": "1.0.0",
      "agentDocUrl": "https://github.com/thinwrap/location-ts/blob/main/.ai/guidelines.md",
      "agentDocFreshness": "current",
      "providers": [
        {
          "providerId": "google",
          "humanName": "Google Maps Platform",
          "operations": [
            "routing",
            "matrix",
            "geocoding"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "mapbox",
          "humanName": "Mapbox",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "here",
          "humanName": "HERE",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "esri",
          "humanName": "ESRI ArcGIS",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "tomtom",
          "humanName": "TomTom",
          "operations": [
            "routing",
            "matrix",
            "geocoding",
            "isochrone"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "osrm",
          "humanName": "OSRM (self-hosted)",
          "operations": [
            "routing",
            "matrix"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        }
      ]
    },
    {
      "repoName": "notifications-php",
      "language": "php",
      "scope": "notifications",
      "registry": "packagist",
      "registryUrl": "https://packagist.org/packages/thinwrap/notifications",
      "packageName": "thinwrap/notifications",
      "version": "1.0.0",
      "agentDocUrl": "https://github.com/thinwrap/notifications-php/blob/main/.ai/guidelines.md",
      "agentDocFreshness": "current",
      "providers": [
        {
          "providerId": "sendgrid",
          "humanName": "SendGrid",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sendgrid",
          "readmePath": "src/Providers/Sendgrid/README.md"
        },
        {
          "providerId": "ses",
          "humanName": "AWS SES",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "aws-sig-v4",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "ses",
          "readmePath": "src/Providers/Ses/README.md"
        },
        {
          "providerId": "mailgun",
          "humanName": "Mailgun",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "mailgun",
          "readmePath": "src/Providers/Mailgun/README.md"
        },
        {
          "providerId": "postmark",
          "humanName": "Postmark",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "postmark",
          "readmePath": "src/Providers/Postmark/README.md"
        },
        {
          "providerId": "resend",
          "humanName": "Resend",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "resend",
          "readmePath": "src/Providers/Resend/README.md"
        },
        {
          "providerId": "brevo",
          "humanName": "Brevo (Sendinblue)",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sendinblue",
          "readmePath": "src/Providers/Brevo/README.md"
        },
        {
          "providerId": "mailersend",
          "humanName": "MailerSend",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "mailersend",
          "readmePath": "src/Providers/Mailersend/README.md"
        },
        {
          "providerId": "mailtrap",
          "humanName": "Mailtrap",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Mailtrap/README.md"
        },
        {
          "providerId": "sparkpost",
          "humanName": "SparkPost",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sparkpost",
          "readmePath": "src/Providers/Sparkpost/README.md"
        },
        {
          "providerId": "scaleway",
          "humanName": "Scaleway",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Scaleway/README.md"
        },
        {
          "providerId": "twilio",
          "humanName": "Twilio",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "twilio",
          "readmePath": "src/Providers/Twilio/README.md"
        },
        {
          "providerId": "vonage",
          "humanName": "Vonage",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "nexmo",
          "readmePath": "src/Providers/Vonage/README.md"
        },
        {
          "providerId": "plivo",
          "humanName": "Plivo",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "plivo",
          "readmePath": "src/Providers/Plivo/README.md"
        },
        {
          "providerId": "sns",
          "humanName": "AWS SNS",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "aws-sig-v4",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sns",
          "readmePath": "src/Providers/Sns/README.md"
        },
        {
          "providerId": "messagebird",
          "humanName": "MessageBird (Bird)",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "messagebird",
          "readmePath": "src/Providers/Messagebird/README.md"
        },
        {
          "providerId": "infobip",
          "humanName": "Infobip",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "infobip",
          "readmePath": "src/Providers/Infobip/README.md"
        },
        {
          "providerId": "telnyx",
          "humanName": "Telnyx",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "telnyx",
          "readmePath": "src/Providers/Telnyx/README.md"
        },
        {
          "providerId": "sinch",
          "humanName": "Sinch",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sinch",
          "readmePath": "src/Providers/Sinch/README.md"
        },
        {
          "providerId": "textmagic",
          "humanName": "Textmagic",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Textmagic/README.md"
        },
        {
          "providerId": "d7networks",
          "humanName": "D7 Networks",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/D7networks/README.md"
        },
        {
          "providerId": "fcm",
          "humanName": "Firebase Cloud Messaging",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "rs256-jwt",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": true
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "fcm",
          "readmePath": "src/Providers/Fcm/README.md"
        },
        {
          "providerId": "apns",
          "humanName": "Apple Push Notifications",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "es256-jwt",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": true
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "apns",
          "readmePath": "src/Providers/Apns/README.md"
        },
        {
          "providerId": "expo",
          "humanName": "Expo Push",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "expo",
          "readmePath": "src/Providers/Expo/README.md"
        },
        {
          "providerId": "one-signal",
          "humanName": "OneSignal",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "one-signal",
          "readmePath": "src/Providers/OneSignal/README.md"
        },
        {
          "providerId": "pusher-beams",
          "humanName": "Pusher Beams",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "pusher-beams",
          "readmePath": "src/Providers/PusherBeams/README.md"
        },
        {
          "providerId": "wonderpush",
          "humanName": "WonderPush",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Wonderpush/README.md"
        },
        {
          "providerId": "slack",
          "humanName": "Slack",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "slack",
          "readmePath": "src/Providers/Slack/README.md"
        },
        {
          "providerId": "discord",
          "humanName": "Discord",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "discord",
          "readmePath": "src/Providers/Discord/README.md"
        },
        {
          "providerId": "ms-teams",
          "humanName": "Microsoft Teams",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "ms-teams",
          "readmePath": "src/Providers/Msteams/README.md"
        },
        {
          "providerId": "telegram",
          "humanName": "Telegram",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "telegram",
          "readmePath": "src/Providers/Telegram/README.md"
        },
        {
          "providerId": "whatsapp-business",
          "humanName": "WhatsApp Business",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "whatsapp-business",
          "readmePath": "src/Providers/WhatsappBusiness/README.md"
        },
        {
          "providerId": "line",
          "humanName": "LINE",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "line",
          "readmePath": "src/Providers/Line/README.md"
        },
        {
          "providerId": "google-chat",
          "humanName": "Google Chat",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/GoogleChat/README.md"
        },
        {
          "providerId": "rocket-chat",
          "humanName": "Rocket.Chat",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "rocket-chat",
          "readmePath": "src/Providers/RocketChat/README.md"
        },
        {
          "providerId": "mattermost",
          "humanName": "Mattermost",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null,
          "readmePath": "src/Providers/Mattermost/README.md"
        }
      ]
    },
    {
      "repoName": "notifications-ts",
      "language": "typescript",
      "scope": "notifications",
      "registry": "npm",
      "registryUrl": "https://www.npmjs.com/package/@thinwrap/notifications",
      "packageName": "@thinwrap/notifications",
      "version": "1.0.2",
      "agentDocUrl": "https://github.com/thinwrap/notifications-ts/blob/main/.ai/guidelines.md",
      "agentDocFreshness": "current",
      "providers": [
        {
          "providerId": "sendgrid",
          "humanName": "SendGrid",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sendgrid"
        },
        {
          "providerId": "ses",
          "humanName": "AWS SES",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "aws-sig-v4",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "ses"
        },
        {
          "providerId": "mailgun",
          "humanName": "Mailgun",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "mailgun"
        },
        {
          "providerId": "postmark",
          "humanName": "Postmark",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "postmark"
        },
        {
          "providerId": "resend",
          "humanName": "Resend",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "resend"
        },
        {
          "providerId": "brevo",
          "humanName": "Brevo (Sendinblue)",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sendinblue"
        },
        {
          "providerId": "mailersend",
          "humanName": "MailerSend",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "mailersend"
        },
        {
          "providerId": "mailtrap",
          "humanName": "Mailtrap",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "sparkpost",
          "humanName": "SparkPost",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sparkpost"
        },
        {
          "providerId": "scaleway",
          "humanName": "Scaleway",
          "channel": "email",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "twilio",
          "humanName": "Twilio",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "twilio"
        },
        {
          "providerId": "vonage",
          "humanName": "Vonage",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "query",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "nexmo"
        },
        {
          "providerId": "plivo",
          "humanName": "Plivo",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "basic",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "plivo"
        },
        {
          "providerId": "sns",
          "humanName": "AWS SNS",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "aws-sig-v4",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sns"
        },
        {
          "providerId": "messagebird",
          "humanName": "MessageBird (Bird)",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "messagebird"
        },
        {
          "providerId": "infobip",
          "humanName": "Infobip",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "infobip"
        },
        {
          "providerId": "telnyx",
          "humanName": "Telnyx",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "telnyx"
        },
        {
          "providerId": "sinch",
          "humanName": "Sinch",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "sinch"
        },
        {
          "providerId": "textmagic",
          "humanName": "Textmagic",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "d7networks",
          "humanName": "D7 Networks",
          "channel": "sms",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "fcm",
          "humanName": "Firebase Cloud Messaging",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "rs256-jwt",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": true
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "fcm"
        },
        {
          "providerId": "apns",
          "humanName": "Apple Push Notifications",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "es256-jwt",
            "tokenLifecycle": "per-call-signed",
            "tokenCacheHookSupported": true
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "apns"
        },
        {
          "providerId": "expo",
          "humanName": "Expo Push",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "expo"
        },
        {
          "providerId": "one-signal",
          "humanName": "OneSignal",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "header",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "one-signal"
        },
        {
          "providerId": "pusher-beams",
          "humanName": "Pusher Beams",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "pusher-beams"
        },
        {
          "providerId": "wonderpush",
          "humanName": "WonderPush",
          "channel": "push",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "slack",
          "humanName": "Slack",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "slack"
        },
        {
          "providerId": "discord",
          "humanName": "Discord",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "discord"
        },
        {
          "providerId": "ms-teams",
          "humanName": "Microsoft Teams",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "ms-teams"
        },
        {
          "providerId": "telegram",
          "humanName": "Telegram",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "telegram"
        },
        {
          "providerId": "whatsapp-business",
          "humanName": "WhatsApp Business",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "whatsapp-business"
        },
        {
          "providerId": "line",
          "humanName": "LINE",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "bearer",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "line"
        },
        {
          "providerId": "google-chat",
          "humanName": "Google Chat",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        },
        {
          "providerId": "rocket-chat",
          "humanName": "Rocket.Chat",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": "rocket-chat"
        },
        {
          "providerId": "mattermost",
          "humanName": "Mattermost",
          "channel": "chat",
          "operations": [
            "send"
          ],
          "auth": {
            "method": "webhook-url",
            "tokenLifecycle": "opaque-static",
            "tokenCacheHookSupported": false
          },
          "regionalEndpoints": [],
          "rateLimitDocsUrl": null,
          "novuProviderId": null
        }
      ]
    }
  ]
}
