@taprootio/integration-sdk 0.0.0-stage → 0.1.2

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -2
  3. package/fixtures/manifest.valid.json +28 -0
  4. package/fixtures/webhooks/v1/common.schema.json +45 -0
  5. package/fixtures/webhooks/v1/examples/installation.created.json +1 -0
  6. package/fixtures/webhooks/v1/examples/installation.resumed.json +1 -0
  7. package/fixtures/webhooks/v1/examples/installation.suspended.json +1 -0
  8. package/fixtures/webhooks/v1/examples/installation.uninstalled.json +1 -0
  9. package/fixtures/webhooks/v1/examples/installation.updated.json +1 -0
  10. package/fixtures/webhooks/v1/examples/page.deleted.json +1 -0
  11. package/fixtures/webhooks/v1/examples/page.published.json +1 -0
  12. package/fixtures/webhooks/v1/examples/ping.json +1 -0
  13. package/fixtures/webhooks/v1/examples/placement.created.json +1 -0
  14. package/fixtures/webhooks/v1/examples/placement.deleted.json +1 -0
  15. package/fixtures/webhooks/v1/examples/placement.updated.json +1 -0
  16. package/fixtures/webhooks/v1/examples/publish.completed.json +1 -0
  17. package/fixtures/webhooks/v1/examples/publish.failed.json +1 -0
  18. package/fixtures/webhooks/v1/examples/sync.requested.json +1 -0
  19. package/fixtures/webhooks/v1/installation.created.schema.json +22 -0
  20. package/fixtures/webhooks/v1/installation.resumed.schema.json +8 -0
  21. package/fixtures/webhooks/v1/installation.suspended.schema.json +8 -0
  22. package/fixtures/webhooks/v1/installation.uninstalled.schema.json +8 -0
  23. package/fixtures/webhooks/v1/installation.updated.schema.json +8 -0
  24. package/fixtures/webhooks/v1/page.deleted.schema.json +23 -0
  25. package/fixtures/webhooks/v1/page.published.schema.json +23 -0
  26. package/fixtures/webhooks/v1/ping.schema.json +18 -0
  27. package/fixtures/webhooks/v1/placement.created.schema.json +23 -0
  28. package/fixtures/webhooks/v1/placement.deleted.schema.json +23 -0
  29. package/fixtures/webhooks/v1/placement.updated.schema.json +23 -0
  30. package/fixtures/webhooks/v1/publish.completed.schema.json +21 -0
  31. package/fixtures/webhooks/v1/publish.failed.schema.json +22 -0
  32. package/fixtures/webhooks/v1/schema-index.json +19 -0
  33. package/fixtures/webhooks/v1/signature-vector.json +9 -0
  34. package/fixtures/webhooks/v1/sync.requested.schema.json +22 -0
  35. package/index.d.ts +258 -0
  36. package/package.json +42 -4
  37. package/schema/taproot-integration-manifest.v1.schema.json +82 -0
  38. package/src/bytes.js +51 -0
  39. package/src/client.js +409 -0
  40. package/src/constants.js +17 -0
  41. package/src/errors.js +18 -0
  42. package/src/handoff.js +223 -0
  43. package/src/index.js +16 -0
  44. package/src/json.js +56 -0
  45. package/src/manifest.js +284 -0
  46. package/src/openapi-contract.d.ts +73 -0
  47. package/src/openapi-contract.js +1035 -0
  48. package/src/webhooks.js +269 -0
@@ -0,0 +1,73 @@
1
+ // Generated by scripts/generate-integration-sdk.mjs from reviewed OpenAPI and webhook schema sources. Do not edit.
2
+ export type BeginIntegrationSyncRequest = { "installationId"?: string; "mode"?: string; "idempotencyKey"?: string; "requestedSyncId"?: string; };
3
+ export type ClaimIntegrationInstallationRequest = { "installationId"?: string; "claimCode"?: string; };
4
+ export type ClaimIntegrationInstallationResponse = { "installation"?: IntegrationInstallation; "credential"?: IntegrationCredential; };
5
+ export type ConfirmIntegrationBundleUploadRequest = { "integrationId"?: string; "uploadId"?: string; };
6
+ export type ConfirmIntegrationMediaUploadRequest = { "installationId"?: string; "uploadId"?: string; };
7
+ export type ConfirmIntegrationMediaUploadResponse = { "image"?: TaprootImage; };
8
+ export type ConfirmIntegrationSettingsHandoffRequest = { "installationId"?: string; "token"?: string; };
9
+ export type ConfirmIntegrationSettingsHandoffResponse = { "userId"?: string; "siteId"?: string; "installationId"?: string; "integrationId"?: string; "credentialId"?: string; "role"?: string; "engagementId"?: string; "expiresAt"?: string; };
10
+ export type DeleteIntegrationContentRequest = { "installationId"?: string; "syncId"?: string; "idempotencyKey"?: string; "key"?: string; };
11
+ export type DeleteIntegrationFragmentRequest = { "installationId"?: string; "placementId"?: string; "configurationRevision"?: number; "expectedFragmentRevision"?: number; "syncId"?: string; "idempotencyKey"?: string; };
12
+ export type FinishIntegrationSyncRequest = { "installationId"?: string; "syncId"?: string; "idempotencyKey"?: string; "summary"?: string; };
13
+ export type ImageOwnershipScope = "IMAGE_OWNERSHIP_SCOPE_UNKNOWN" | "IMAGE_OWNERSHIP_SCOPE_PROFILE" | "IMAGE_OWNERSHIP_SCOPE_SITE" | "IMAGE_OWNERSHIP_SCOPE_ACCOUNT";
14
+ export type ImageProcessingState = "IMAGE_PROCESSING_STATE_UNKNOWN" | "IMAGE_PROCESSING_STATE_PENDING" | "IMAGE_PROCESSING_STATE_COMPLETE" | "IMAGE_PROCESSING_STATE_IN_PROGRESS" | "IMAGE_PROCESSING_STATE_RETRYING" | "IMAGE_PROCESSING_STATE_FAILED";
15
+ export type ImageType = "IMAGE_TYPE_UNKNOWN" | "IMAGE_TYPE_JPEG" | "IMAGE_TYPE_PNG" | "IMAGE_TYPE_WEBP" | "IMAGE_TYPE_GIF";
16
+ export type ImageUrl = { "minWidth"?: number; "url"?: string; };
17
+ export type IntegrationBundle = { "id"?: string; "integrationId"?: string; "contentHash"?: string; "byteLength"?: number; "runtimeMajor"?: number; "url"?: string; "createdAt"?: string; };
18
+ export type IntegrationCredential = { "id"?: string; "displayPrefix"?: string; "status"?: string; "secret"?: string; "isReplay"?: boolean; "createdAt"?: string; "expiresAt"?: string; };
19
+ export type IntegrationInstallation = { "id"?: string; "siteId"?: string; "accountId"?: string; "integrationId"?: string; "status"?: string; "grantedCapabilities"?: Array<string>; "publishPolicy"?: string; "contractVersion"?: string; "sourceKind"?: string; "sourceEngagementId"?: string; "sourceManagingAccountId"?: string; "sourceTerminated"?: boolean; "credentialId"?: string; "revision"?: number; "pathPrefix"?: string; "contentRevision"?: number; "syncCadence"?: string; "syncMinuteOfDay"?: number; "lastSyncedAt"?: string; "lastPublishedAt"?: string; "healthStatus"?: string; "healthReason"?: string; "healthUpdatedAt"?: string; "lastPublishedCandidateRevision"?: number; "lastPublishedDeploymentId"?: string; "pricingOptionId"?: string; "pricingOptionVersion"?: string; "billingStatus"?: string; "entitlementStatus"?: string; "entitlementPeriodEnd"?: string; "billingMutationId"?: string; "billingItemKey"?: string; "priceAmountCents"?: number; "priceCurrency"?: string; "priceCatalogueVersion"?: string; "priceCadence"?: string; "bundle"?: IntegrationBundle; "browserCodeConsented"?: boolean; };
20
+ export type IntegrationInstallationPlacement = { "placementId"?: string; "componentId"?: string; "configurationRevision"?: number; "configJson"?: string; "fragmentRevision"?: number; "fragmentStatus"?: string; };
21
+ export type IntegrationManagedPageContent = { "externalId"?: string; "path"?: string; "title"?: string; "description"?: string; "indexable"?: boolean; "fragments"?: Array<string>; "structuredData"?: Array<string>; "primaryStructuredDataId"?: string; "folder"?: string; "tagIds"?: Array<string>; "includeInNavigation"?: boolean; "publicationDate"?: string; "archiveDate"?: string; "includeInLatestPosts"?: boolean; "contentUpdatedAt"?: string; };
22
+ export type IntegrationPlacementFragmentResult = { "placementId"?: string; "configurationRevision"?: number; "fragmentRevision"?: number; "status"?: string; "changed"?: boolean; };
23
+ export type IntegrationSyncResult = { "syncId"?: string; "status"?: string; "baseRevision"?: number; "candidateRevision"?: number; "changed"?: boolean; };
24
+ export type ListIntegrationPlacementsResponse = { "placements"?: Array<IntegrationInstallationPlacement>; };
25
+ export type PutIntegrationDataDocumentRequest = { "installationId"?: string; "syncId"?: string; "idempotencyKey"?: string; "key"?: string; "json"?: string; };
26
+ export type PutIntegrationFragmentRequest = { "installationId"?: string; "placementId"?: string; "configurationRevision"?: number; "expectedFragmentRevision"?: number; "html"?: string; "structuredData"?: Array<string>; "syncId"?: string; "idempotencyKey"?: string; };
27
+ export type RequestIntegrationBundleUploadRequest = { "integrationId"?: string; "contentHash"?: string; "byteLength"?: number; "runtimeMajor"?: number; };
28
+ export type RequestIntegrationBundleUploadResponse = { "uploadId"?: string; "presignedUrl"?: string; "requiredHeaders"?: { [key: string]: string; }; "expiresAt"?: string; "existingBundle"?: IntegrationBundle; "isDuplicate"?: boolean; };
29
+ export type RequestIntegrationMediaUploadRequest = { "installationId"?: string; "fileName"?: string; "contentType"?: string; "fileSize"?: number; "contentHash"?: string; "width"?: number; "height"?: number; };
30
+ export type RequestIntegrationMediaUploadResponse = { "presignedUrl"?: string; "uploadId"?: string; "isDuplicate"?: boolean; "image"?: TaprootImage; "requiredHeaders"?: { [key: string]: string; }; };
31
+ export type TaprootImage = { "imageId"?: string; "url"?: string; "height"?: number; "width"?: number; "fileSize"?: number; "uploadedName"?: string; "imageType"?: ImageType; "responsiveUrls"?: Array<ImageUrl>; "thumbHash"?: string; "processingState"?: ImageProcessingState; "ownershipScope"?: ImageOwnershipScope; "siteId"?: string; };
32
+ export type UpsertIntegrationPageRequest = { "installationId"?: string; "syncId"?: string; "idempotencyKey"?: string; "page"?: IntegrationManagedPageContent; };
33
+ export type ValidateIntegrationInstallationResponse = { "valid"?: boolean; "installation"?: IntegrationInstallation; "entitlementStatus"?: string; "entitlementEnabled"?: boolean; "writesEnabled"?: boolean; "code"?: string; };
34
+ export interface IntegrationOpenApiOperationMap {
35
+ "claimInstallation": { request: ClaimIntegrationInstallationRequest; response: ClaimIntegrationInstallationResponse; };
36
+ "validateInstallation": { request: undefined; response: ValidateIntegrationInstallationResponse; };
37
+ "createSync": { request: BeginIntegrationSyncRequest; response: IntegrationSyncResult; };
38
+ "putManagedPage": { request: UpsertIntegrationPageRequest; response: IntegrationSyncResult; };
39
+ "deleteManagedPage": { request: DeleteIntegrationContentRequest; response: IntegrationSyncResult; };
40
+ "putDataDocument": { request: PutIntegrationDataDocumentRequest; response: IntegrationSyncResult; };
41
+ "deleteDataDocument": { request: DeleteIntegrationContentRequest; response: IntegrationSyncResult; };
42
+ "completeSync": { request: FinishIntegrationSyncRequest; response: IntegrationSyncResult; };
43
+ "abortSync": { request: FinishIntegrationSyncRequest; response: IntegrationSyncResult; };
44
+ "requestMediaUpload": { request: RequestIntegrationMediaUploadRequest; response: RequestIntegrationMediaUploadResponse; };
45
+ "confirmMediaUpload": { request: ConfirmIntegrationMediaUploadRequest; response: ConfirmIntegrationMediaUploadResponse; };
46
+ "listPlacements": { request: undefined; response: ListIntegrationPlacementsResponse; };
47
+ "putFragment": { request: PutIntegrationFragmentRequest; response: IntegrationPlacementFragmentResult; };
48
+ "deleteFragment": { request: DeleteIntegrationFragmentRequest; response: IntegrationPlacementFragmentResult; };
49
+ "requestBundleUpload": { request: RequestIntegrationBundleUploadRequest; response: RequestIntegrationBundleUploadResponse; };
50
+ "confirmBundleUpload": { request: ConfirmIntegrationBundleUploadRequest; response: IntegrationBundle; };
51
+ "confirmHandoff": { request: ConfirmIntegrationSettingsHandoffRequest; response: ConfirmIntegrationSettingsHandoffResponse; };
52
+ }
53
+ export interface GeneratedWebhookEventMap {
54
+ "installation.created": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "installation.created"; "data": { "installation": { "status": string; "revision": number; "grantedCapabilities": Array<string>; "publishPolicy": "auto" | "stage"; "contractVersion": string; "sourceKind": "owner" | "engagement"; "sourceEngagementId": string | null; "sourceTerminationReason": string | null; }; "claimCode": string; "claimExpiresAt": string; }; };
55
+ "installation.resumed": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "installation.resumed"; "data": { "status": string; "revision": number; "grantedCapabilities": Array<string>; "publishPolicy": "auto" | "stage"; "contractVersion": string; "sourceKind": "owner" | "engagement"; "sourceEngagementId": string | null; "sourceTerminationReason": string | null; }; };
56
+ "installation.suspended": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "installation.suspended"; "data": { "status": string; "revision": number; "grantedCapabilities": Array<string>; "publishPolicy": "auto" | "stage"; "contractVersion": string; "sourceKind": "owner" | "engagement"; "sourceEngagementId": string | null; "sourceTerminationReason": string | null; }; };
57
+ "installation.uninstalled": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "installation.uninstalled"; "data": { "status": string; "revision": number; "grantedCapabilities": Array<string>; "publishPolicy": "auto" | "stage"; "contractVersion": string; "sourceKind": "owner" | "engagement"; "sourceEngagementId": string | null; "sourceTerminationReason": string | null; }; };
58
+ "installation.updated": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "installation.updated"; "data": { "status": string; "revision": number; "grantedCapabilities": Array<string>; "publishPolicy": "auto" | "stage"; "contractVersion": string; "sourceKind": "owner" | "engagement"; "sourceEngagementId": string | null; "sourceTerminationReason": string | null; }; };
59
+ "page.deleted": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "page.deleted"; "data": { "pageId": string; "externalId": string; "revision": number; "url": string; }; };
60
+ "page.published": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "page.published"; "data": { "pageId": string; "externalId": string; "publishedRevision": number; "url": string; }; };
61
+ "ping": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "ping"; "data": { "purpose": string; }; };
62
+ "placement.created": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "placement.created"; "data": { "placementId": string; "componentId": string; "placementRevision": number; "config": unknown; }; };
63
+ "placement.deleted": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "placement.deleted"; "data": { "placementId": string; "componentId": string; "placementRevision": number; "config": unknown; }; };
64
+ "placement.updated": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "placement.updated"; "data": { "placementId": string; "componentId": string; "placementRevision": number; "config": unknown; }; };
65
+ "publish.completed": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "publish.completed"; "data": { "deploymentId": string; "candidates": Array<{ "candidateId": string; "revision": number; }>; }; };
66
+ "publish.failed": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "publish.failed"; "data": { "deploymentId": string; "candidateIds": Array<string>; "code": string; }; };
67
+ "sync.requested": { "id": string; "type": string; "version": "1"; "occurredAt": string; "integrationId": string; "installationId": string; "siteId": string; "data": unknown; } & { "type": "sync.requested"; "data": { "reason": "scheduled" | "owner" | "placement_changed" | "reconcile"; "syncId": string; "candidateIds": Array<string>; }; };
68
+ }
69
+ export type GeneratedWebhookEventType = keyof GeneratedWebhookEventMap;
70
+ export type GeneratedWebhookEvent = GeneratedWebhookEventMap[GeneratedWebhookEventType];
71
+ export declare const INTEGRATION_OPENAPI_OPERATIONS: Readonly<Record<keyof IntegrationOpenApiOperationMap, { operationId: string; method: string; path: string; credential: "installation" | "publisher"; retry: "never" | "safe" | "idempotency"; requestSchema?: string; responseSchema: string }>>;
72
+ export declare const INTEGRATION_OPENAPI_SCHEMAS: Readonly<Record<string, unknown>>;
73
+ export declare const INTEGRATION_WEBHOOK_EVENTS: Readonly<Record<GeneratedWebhookEventType, { schema: string; example: string }>>;