JSPM

  • Created
  • Published
  • Downloads 326
  • Score
    100M100P100Q127444F

Integration contract definitions for external services

Package Exports

  • @contractspec/lib.contracts-integrations
  • @contractspec/lib.contracts-integrations/integrations
  • @contractspec/lib.contracts-integrations/integrations/auth
  • @contractspec/lib.contracts-integrations/integrations/auth-helpers
  • @contractspec/lib.contracts-integrations/integrations/binding
  • @contractspec/lib.contracts-integrations/integrations/byok
  • @contractspec/lib.contracts-integrations/integrations/connection
  • @contractspec/lib.contracts-integrations/integrations/docs/integrations.docblock
  • @contractspec/lib.contracts-integrations/integrations/health
  • @contractspec/lib.contracts-integrations/integrations/health/contracts
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/activities
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/biometrics
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/index
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/nutrition
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/sleep
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/webhooks
  • @contractspec/lib.contracts-integrations/integrations/health/contracts/workouts
  • @contractspec/lib.contracts-integrations/integrations/health/guards
  • @contractspec/lib.contracts-integrations/integrations/health/health.capability
  • @contractspec/lib.contracts-integrations/integrations/health/health.feature
  • @contractspec/lib.contracts-integrations/integrations/health/models
  • @contractspec/lib.contracts-integrations/integrations/health/telemetry
  • @contractspec/lib.contracts-integrations/integrations/index
  • @contractspec/lib.contracts-integrations/integrations/integrations.capability
  • @contractspec/lib.contracts-integrations/integrations/integrations.feature
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/index
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/meetings
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/transcripts
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/contracts/webhooks
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/meeting-recorder.capability
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/meeting-recorder.feature
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/models
  • @contractspec/lib.contracts-integrations/integrations/meeting-recorder/telemetry
  • @contractspec/lib.contracts-integrations/integrations/openbanking/contracts
  • @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/accounts
  • @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/balances
  • @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/index
  • @contractspec/lib.contracts-integrations/integrations/openbanking/contracts/transactions
  • @contractspec/lib.contracts-integrations/integrations/openbanking/guards
  • @contractspec/lib.contracts-integrations/integrations/openbanking/models
  • @contractspec/lib.contracts-integrations/integrations/openbanking/openbanking.capability
  • @contractspec/lib.contracts-integrations/integrations/openbanking/openbanking.feature
  • @contractspec/lib.contracts-integrations/integrations/openbanking/telemetry
  • @contractspec/lib.contracts-integrations/integrations/operations
  • @contractspec/lib.contracts-integrations/integrations/providers
  • @contractspec/lib.contracts-integrations/integrations/providers/analytics
  • @contractspec/lib.contracts-integrations/integrations/providers/analytics-reader
  • @contractspec/lib.contracts-integrations/integrations/providers/analytics-writer
  • @contractspec/lib.contracts-integrations/integrations/providers/apple-health
  • @contractspec/lib.contracts-integrations/integrations/providers/calendar
  • @contractspec/lib.contracts-integrations/integrations/providers/composio
  • @contractspec/lib.contracts-integrations/integrations/providers/database
  • @contractspec/lib.contracts-integrations/integrations/providers/deepgram
  • @contractspec/lib.contracts-integrations/integrations/providers/eightsleep
  • @contractspec/lib.contracts-integrations/integrations/providers/elevenlabs
  • @contractspec/lib.contracts-integrations/integrations/providers/email
  • @contractspec/lib.contracts-integrations/integrations/providers/embedding
  • @contractspec/lib.contracts-integrations/integrations/providers/fal
  • @contractspec/lib.contracts-integrations/integrations/providers/fal-image
  • @contractspec/lib.contracts-integrations/integrations/providers/fathom
  • @contractspec/lib.contracts-integrations/integrations/providers/fireflies
  • @contractspec/lib.contracts-integrations/integrations/providers/fitbit
  • @contractspec/lib.contracts-integrations/integrations/providers/garmin
  • @contractspec/lib.contracts-integrations/integrations/providers/gcs-storage
  • @contractspec/lib.contracts-integrations/integrations/providers/gmail
  • @contractspec/lib.contracts-integrations/integrations/providers/google-calendar
  • @contractspec/lib.contracts-integrations/integrations/providers/gradium
  • @contractspec/lib.contracts-integrations/integrations/providers/granola
  • @contractspec/lib.contracts-integrations/integrations/providers/health
  • @contractspec/lib.contracts-integrations/integrations/providers/health-provider-shared
  • @contractspec/lib.contracts-integrations/integrations/providers/image
  • @contractspec/lib.contracts-integrations/integrations/providers/index
  • @contractspec/lib.contracts-integrations/integrations/providers/jira
  • @contractspec/lib.contracts-integrations/integrations/providers/linear
  • @contractspec/lib.contracts-integrations/integrations/providers/llm
  • @contractspec/lib.contracts-integrations/integrations/providers/meeting-recorder
  • @contractspec/lib.contracts-integrations/integrations/providers/messaging
  • @contractspec/lib.contracts-integrations/integrations/providers/messaging-github
  • @contractspec/lib.contracts-integrations/integrations/providers/messaging-slack
  • @contractspec/lib.contracts-integrations/integrations/providers/messaging-whatsapp-meta
  • @contractspec/lib.contracts-integrations/integrations/providers/messaging-whatsapp-twilio
  • @contractspec/lib.contracts-integrations/integrations/providers/mistral
  • @contractspec/lib.contracts-integrations/integrations/providers/mistral-conversational
  • @contractspec/lib.contracts-integrations/integrations/providers/mistral-stt
  • @contractspec/lib.contracts-integrations/integrations/providers/myfitnesspal
  • @contractspec/lib.contracts-integrations/integrations/providers/notion
  • @contractspec/lib.contracts-integrations/integrations/providers/openai-image
  • @contractspec/lib.contracts-integrations/integrations/providers/openai-realtime
  • @contractspec/lib.contracts-integrations/integrations/providers/openbanking
  • @contractspec/lib.contracts-integrations/integrations/providers/openwearables
  • @contractspec/lib.contracts-integrations/integrations/providers/oura
  • @contractspec/lib.contracts-integrations/integrations/providers/payments
  • @contractspec/lib.contracts-integrations/integrations/providers/peloton
  • @contractspec/lib.contracts-integrations/integrations/providers/posthog
  • @contractspec/lib.contracts-integrations/integrations/providers/posthog-llm-telemetry
  • @contractspec/lib.contracts-integrations/integrations/providers/postmark
  • @contractspec/lib.contracts-integrations/integrations/providers/powens
  • @contractspec/lib.contracts-integrations/integrations/providers/project-management
  • @contractspec/lib.contracts-integrations/integrations/providers/qdrant
  • @contractspec/lib.contracts-integrations/integrations/providers/registry
  • @contractspec/lib.contracts-integrations/integrations/providers/sms
  • @contractspec/lib.contracts-integrations/integrations/providers/storage
  • @contractspec/lib.contracts-integrations/integrations/providers/strava
  • @contractspec/lib.contracts-integrations/integrations/providers/stripe
  • @contractspec/lib.contracts-integrations/integrations/providers/supabase-postgres
  • @contractspec/lib.contracts-integrations/integrations/providers/supabase-vector
  • @contractspec/lib.contracts-integrations/integrations/providers/tldv
  • @contractspec/lib.contracts-integrations/integrations/providers/twilio-sms
  • @contractspec/lib.contracts-integrations/integrations/providers/vector-store
  • @contractspec/lib.contracts-integrations/integrations/providers/video
  • @contractspec/lib.contracts-integrations/integrations/providers/voice
  • @contractspec/lib.contracts-integrations/integrations/providers/voice-video-sync
  • @contractspec/lib.contracts-integrations/integrations/providers/whoop
  • @contractspec/lib.contracts-integrations/integrations/runtime
  • @contractspec/lib.contracts-integrations/integrations/secrets
  • @contractspec/lib.contracts-integrations/integrations/secrets-types
  • @contractspec/lib.contracts-integrations/integrations/secrets/aws-secret-manager
  • @contractspec/lib.contracts-integrations/integrations/secrets/env-secret-provider
  • @contractspec/lib.contracts-integrations/integrations/secrets/gcp-secret-manager
  • @contractspec/lib.contracts-integrations/integrations/secrets/index
  • @contractspec/lib.contracts-integrations/integrations/secrets/manager
  • @contractspec/lib.contracts-integrations/integrations/secrets/provider
  • @contractspec/lib.contracts-integrations/integrations/secrets/scaleway-secret-manager
  • @contractspec/lib.contracts-integrations/integrations/spec
  • @contractspec/lib.contracts-integrations/integrations/transport
  • @contractspec/lib.contracts-integrations/integrations/versioning

Readme

@contractspec/lib.contracts-integrations

Integration contract definitions, provider catalogs, and secret/runtime integration primitives.

Website: https://contractspec.io/

Why this package exists

@contractspec/lib.contracts-integrations is the integration-focused slice split from @contractspec/lib.contracts.

It groups everything related to external systems (payments, messaging, health, vector stores, etc.) so projects can depend on integration contracts without pulling all runtime adapters.

Package boundary (important)

Use this package for:

  • Integration metadata contracts (IntegrationSpec, IntegrationSpecRegistry, defineIntegration).
  • Provider catalogs and registration helpers (createDefaultIntegrationSpecRegistry).
  • Integration connection operations (CreateIntegrationConnection, TestIntegrationConnection, ...).
  • Connection/binding data contracts (IntegrationConnection, AppIntegrationBinding).
  • Secret provider abstraction and implementations (AWS, GCP, Scaleway, env).
  • Integration call reliability utilities (IntegrationCallGuard).

Use other packages for:

  • Base operation/event/form/policy contract primitives -> @contractspec/lib.contracts-spec
  • REST/GraphQL/MCP/React adapters -> runtime split packages

Installation

npm install @contractspec/lib.contracts-integrations @contractspec/lib.contracts-spec
# or
bun add @contractspec/lib.contracts-integrations @contractspec/lib.contracts-spec

What you get

Top-level exports include:

  • Integration contracts and registries.
  • Provider domain contracts.
  • Integration connection operations and registration helpers.

Important subpath exports include:

  • @contractspec/lib.contracts-integrations/integrations/providers/registry
  • @contractspec/lib.contracts-integrations/integrations/runtime
  • @contractspec/lib.contracts-integrations/integrations/secrets/*

Quick start

1) Build integration spec and operation registries

import { OperationSpecRegistry } from "@contractspec/lib.contracts-spec";
import {
  createDefaultIntegrationSpecRegistry,
  registerIntegrationContracts,
} from "@contractspec/lib.contracts-integrations";

const integrationSpecs = createDefaultIntegrationSpecRegistry();
const integrationOps = registerIntegrationContracts(new OperationSpecRegistry());

console.log("integration specs", integrationSpecs.count());
console.log("integration ops", integrationOps.count());

2) Compose secret providers with priority

import { SecretProviderManager } from "@contractspec/lib.contracts-integrations/integrations/secrets/manager";
import { EnvSecretProvider } from "@contractspec/lib.contracts-integrations/integrations/secrets/env-secret-provider";
import { GcpSecretManagerProvider } from "@contractspec/lib.contracts-integrations/integrations/secrets/gcp-secret-manager";

const secrets = new SecretProviderManager()
  .register(new EnvSecretProvider(), { priority: 100 })
  .register(new GcpSecretManagerProvider({ projectId: "my-project" }), {
    priority: 10,
  });

console.log(secrets.canHandle("env://OPENAI_API_KEY"));

3) Guard provider calls with retries + telemetry hooks

import { IntegrationCallGuard } from "@contractspec/lib.contracts-integrations/integrations/runtime";
import type { ResolvedAppConfig } from "@contractspec/lib.contracts-spec/app-config/runtime";

declare const resolvedConfig: ResolvedAppConfig;

const guard = new IntegrationCallGuard(secrets, {
  maxAttempts: 3,
  backoffMs: 250,
});

const result = await guard.executeWithGuards(
  "payments-primary",
  "charge.create",
  { amount: 2000, currency: "usd" },
  resolvedConfig,
  async (connection, secretValues) => {
    return {
      provider: connection.meta.integrationKey,
      apiKeyPresent: Boolean(secretValues.apiKey || secretValues.secret),
    };
  }
);

console.log(result.success, result.metadata.attempts);

Integration architecture notes

  • IntegrationSpec describes provider capabilities and configuration/secret schema.
  • IntegrationConnection models tenant-specific binding to a provider account.
  • AppIntegrationBinding maps app slots/features to actual connections.
  • IntegrationCallGuard centralizes resiliency (retry/backoff) and telemetry.

This separation lets you keep provider concerns explicit and testable.

AI assistant guidance

When generating code:

  • Use this package when the task mentions providers, credentials, integrations, or external platform bindings.
  • Prefer modeling with IntegrationSpec first, then wire IntegrationConnection flows.
  • Use SecretProviderManager instead of hardcoding one secret backend.

When reading code:

  • Distinguish contract-level definitions (spec.ts, connection.ts) from runtime execution utilities (runtime.ts).
  • Check subpath imports for secret provider implementations.

Split migration from deprecated monolith

  • @contractspec/lib.contracts/integrations/* -> @contractspec/lib.contracts-integrations/integrations/*
  • Provider contracts and secret abstractions are now isolated from non-integration runtime surfaces