@whooshbang/contracts 2.5.0 → 2.6.0
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/CHANGELOG.md +6 -0
- package/README.md +21 -21
- package/contract-manifest.json +32 -32
- package/dist/generated/artifact-index.d.ts +33 -33
- package/dist/generated/artifact-index.js +32 -32
- package/dist/generated/interaction-v1.d.ts +77 -4
- package/dist/generated/validators-standalone.d.ts +492 -492
- package/dist/generated/validators-standalone.js +6110 -4475
- package/dist/generated/validators-standalone.js.map +1 -1
- package/dist/generated/validators.d.ts +2 -2
- package/dist/generated/whooshbang-v1.d.ts +523 -116
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/input-defaults.d.ts +7 -0
- package/dist/input-defaults.js +59 -0
- package/dist/input-defaults.js.map +1 -0
- package/dist/interaction-expiry.js +2 -1
- package/dist/interaction-expiry.js.map +1 -1
- package/fixtures/core-v1/fixture-index.json +1 -1
- package/fixtures/core-v1/problems/idempotency-key-required.json +2 -2
- package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
- package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
- package/fixtures/core-v1/scenarios/cross-organization-project.json +1 -1
- package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
- package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
- package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
- package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
- package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
- package/openapi/generated/whooshbang-v1.bundle.json +998 -297
- package/openapi/whooshbang-v1.yaml +454 -73
- package/package.json +1 -1
- package/schemas/core-scenario.schema.json +1 -1
- package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
- package/schemas/events/interaction-expired-v1.schema.json +1 -1
- package/schemas/events/interaction-received-v1.schema.json +1 -1
- package/schemas/events/message-delivered-v1.schema.json +1 -1
- package/schemas/events/message-expired-v1.schema.json +1 -1
- package/schemas/events/message-failed-v1.schema.json +1 -1
- package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
- package/schemas/events/subscription-activated-v1.schema.json +1 -1
- package/schemas/events/subscription-revoked-v1.schema.json +1 -1
- package/schemas/events/whooshbang-event-v1.schema.json +1 -1
- package/schemas/fixture-index.schema.json +1 -1
- package/schemas/interaction-machine-scenario.schema.json +1 -1
- package/schemas/interaction-v1.schema.json +192 -5
- package/schemas/machine-v1.schema.json +1 -1
- package/schemas/provider-capabilities-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
- package/schemas/whooshbang-v1.schema.json +400 -63
package/dist/index.d.ts
CHANGED
|
@@ -39,3 +39,6 @@ export type { InteractionMachineScenario } from "./generated/interaction-machine
|
|
|
39
39
|
export type { CreateMachineClientRequest, MachineClient, MachineCredential, MachineCredentialBearer, MachineCredentialId, MachineCursor, MachineEventAckDisposition, MachineEventAckRequest, MachineEventAckResponse, MachineEventPollResponse, MachineScope, MachineScopeSummary, MachineSecretDigest, QuarantineReasonCode, RegisterMachineCredentialRequest, } from "./generated/machine-v1.js";
|
|
40
40
|
export type { ContextSupport, Degradation, InteractionCapability, ProviderCapabilitiesV1, } from "./generated/provider-capabilities-v1.js";
|
|
41
41
|
export type { ContractValidationError, ContractValidator, } from "./generated/validators.js";
|
|
42
|
+
export { normalizeMessageContent, normalizeInteractionSendRequest, normalizeMessageEnvelope, normalizeCreateMessageRequest, normalizeOperatorMessageRequest, } from "./input-defaults.js";
|
|
43
|
+
export type { CanonicalCreateMessageRequest, CanonicalCreateGroupBroadcastRequest, CanonicalCreateOperatorMessageRequest, MessageContentInput, TextContentInput, DocumentContentInput, NotificationImageInput, } from "./generated/whooshbang-v1.js";
|
|
44
|
+
export type { CanonicalInteractionSendRequest, InteractionOptionInput, } from "./generated/interaction-v1.js";
|
package/dist/index.js
CHANGED
|
@@ -10,4 +10,5 @@ export { normalizeNotificationImage, NOTIFICATION_IMAGE_CONTENT_TYPE, NOTIFICATI
|
|
|
10
10
|
export { canonicalIanaTimeZone } from "./time-zone.js";
|
|
11
11
|
export { CUSTOMIZABLE_RECIPIENT_COPY_KEYS, CUSTOMIZABLE_RECIPIENT_PANEL_COPY_KEYS, isCustomizableRecipientCopyKey, recipientCopyOverrideIssues, recipientCopyOverrideMaximumLength, RECIPIENT_COPY_OVERRIDE_HOSTED_ACTION_MAX_LENGTH, RECIPIENT_COPY_OVERRIDE_MAX_LENGTH, } from "./recipient-copy-policy.js";
|
|
12
12
|
export { contractValidationErrors, validateOrganizationCredential, validateOrganizationCredentialCollection, validateOrganizationCredentialRotation, validateOrganizationCredentialSecretReveal, validateBillingProjectSlots, validateAssignBillingProjectSlotsRequest, validateBillingPromotions, validateBillingPromotion, validateRedeemBillingPromotionRequest, validateSubscriptionChange, validateConfirmSubscriptionChangeRequest, validateBillingEntitlements, validateSubscriptionSelection, validateProjectAttribution, validateUpdateProjectAttributionRequest, validateUpdateAutoTopUpSettingsRequest, validateAutoTopUpSettings, validateBillingAccount, validateBillingCard, validateCardSetup, validateCreateCreditPurchaseRequest, validateCreditPurchase, validateBillingInvoice, validateBillingInvoiceCollection, validateUpdateBillingReceiptEmailRequest, validateOrganizationProjection, validateWhoAmI, validateOperator, validateOperatorCollection, validateOperatorResolution, validateCreateOperatorMessageRequest, validateOperatorMessageResult, validateOperatorBroadcastRecipient, validateOperatorBroadcast, validateOperatorPreferences, validateOperatorConnectRequest, validateTeammate, validateTeammateCollection, validateTeammateAccessRequest, validateInviteTeammateRequest, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateAssertEmailConsentRequest, validateBindingSummary, validateCreateOrganizationCredentialRequest, validateCreateApiCredentialRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateCreateChannelConnectionRequest, validateUpdateChannelConnectionRequest, validateRotateChannelConnectionCredentialRequest, validateConnectionTest, validateConnectionTestCollection, validateUsageReport, validateCreateConnectionTestRequest, validateCustomerApplicationManifest, validateAttachNotifierConnectionRequest, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateSubscriberChannelSettings, validateAcknowledgeEmailRemediationRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateRecipientHandoffCompletion, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateUpdateSubscriberRequest, validateSubscriberCollection, validateSubscriberDataExport, validateCloseOrganizationRequest, validateOrganizationClosureResult, validateCreateSubscriberGroupRequest, validateUpdateSubscriberGroupRequest, validateSubscriberGroup, validateSubscriberGroupCollection, validateSubscriberGroupMembership, validateSubscriberGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateCustomerEndpointRequest, validateCreateProjectRequest, validateUpdateProjectRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCreateSubscriptionLinkRequest, validateDeliveryAttemptSummary, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateCustomerEndpointVerificationChallenge, validateIdempotencyKey, validateAgentBindingDegradedEvent, validateInteractionEvent, validateInteractionExpiredEvent, validateInteractionReceivedEvent, validateInteractionSendRequest, validateInteractionRequest, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineCredentialBearer, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateMessageListEntry, validateMessageListPage, validateMessageDeliveryTimelineEntry, validateRetainedMessageContent, validateMessageDeliveryHistory, validateInteractionTimelineEntry, validateInteractionTimeline, validateUpdateEmailSenderRequest, validateCustomerEventDeliveryAttempt, validateCustomerEventDeliveryHistory, validateDeliveryHolds, validateMachineClientOperations, validateMachineClientOperationsList, validateRecipientCopyCatalogue, validateMessageNotificationImage, validateMessageDeliveredEvent, validateMessageExpiredEvent, validateMessageFailedEvent, validateMessageProviderAcceptedEvent, validateWhooshBangEvent, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCallbackToken, validateProviderCapabilities, validateProviderCapabilitiesCollection, validateProviderInstallationCollection, validateEmailDomainCollection, validateCreateEmailDomainRequest, validateCreateEmailBindingImportRequest, validateEmailBindingImportJob, validateRegisterMachineCredentialRequest, validateRotateOrganizationCredentialRequest, validateRotateApiCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionActivatedEvent, validateSubscriptionAssertedEvent, validateSubscriptionLink, validateSubscriptionRevokedEvent, validateSubscriptionAssertedRevokedEvent, validateUpdateRecipientCopyOverrideRequest, validateWebhookDeliveryCaseSet, validateWebhookSigningVectorSet, } from "./generated/validators.js";
|
|
13
|
+
export { normalizeMessageContent, normalizeInteractionSendRequest, normalizeMessageEnvelope, normalizeCreateMessageRequest, normalizeOperatorMessageRequest, } from "./input-defaults.js";
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CanonicalCreateMessageRequest, CanonicalCreateGroupBroadcastRequest, CanonicalCreateOperatorMessageRequest, CreateMessageRequest, CreateGroupBroadcastRequest, CreateOperatorMessageRequest, MessageContent, MessageContentInput } from "./generated/whooshbang-v1.js";
|
|
2
|
+
import type { CanonicalInteractionSendRequest, InteractionSendRequest } from "./generated/interaction-v1.js";
|
|
3
|
+
export declare function normalizeMessageContent(input: MessageContentInput): MessageContent;
|
|
4
|
+
export declare function normalizeInteractionSendRequest(input: InteractionSendRequest): CanonicalInteractionSendRequest;
|
|
5
|
+
export declare function normalizeMessageEnvelope(input: Pick<CreateGroupBroadcastRequest, "content" | "interaction" | "notifier_id" | "expires_at" | "correlation_id" | "metadata" | "purpose">): CanonicalCreateGroupBroadcastRequest;
|
|
6
|
+
export declare function normalizeCreateMessageRequest(input: CreateMessageRequest): CanonicalCreateMessageRequest;
|
|
7
|
+
export declare function normalizeOperatorMessageRequest(input: CreateOperatorMessageRequest): CanonicalCreateOperatorMessageRequest;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export function normalizeMessageContent(input) {
|
|
2
|
+
if (typeof input === "string")
|
|
3
|
+
return { type: "text", text: input };
|
|
4
|
+
const { image: suppliedImage, ...content } = input;
|
|
5
|
+
const image = suppliedImage === undefined
|
|
6
|
+
? {}
|
|
7
|
+
: { image: { ...suppliedImage, purpose: "illustration" } };
|
|
8
|
+
return "blocks" in content
|
|
9
|
+
? { ...content, ...image, type: "document" }
|
|
10
|
+
: { ...content, ...image, type: "text" };
|
|
11
|
+
}
|
|
12
|
+
export function normalizeInteractionSendRequest(input) {
|
|
13
|
+
if ("options" in input)
|
|
14
|
+
return {
|
|
15
|
+
...input,
|
|
16
|
+
type: "select",
|
|
17
|
+
options: input.options.map((option) => typeof option === "string"
|
|
18
|
+
? { value: option, label: option }
|
|
19
|
+
: { ...option, value: option.value ?? option.label }),
|
|
20
|
+
};
|
|
21
|
+
if (input.type === "input")
|
|
22
|
+
return { ...input, type: "input" };
|
|
23
|
+
return { ...input, type: "confirm" };
|
|
24
|
+
}
|
|
25
|
+
export function normalizeMessageEnvelope(input) {
|
|
26
|
+
const interaction = input.interaction === undefined
|
|
27
|
+
? undefined
|
|
28
|
+
: normalizeInteractionSendRequest(input.interaction);
|
|
29
|
+
const content = input.content === undefined
|
|
30
|
+
? { type: "text", text: interaction?.prompt ?? "" }
|
|
31
|
+
: normalizeMessageContent(input.content);
|
|
32
|
+
const { interaction: ignoredInteraction, content: ignoredContent, ...envelope } = input;
|
|
33
|
+
void ignoredInteraction;
|
|
34
|
+
void ignoredContent;
|
|
35
|
+
return {
|
|
36
|
+
...envelope,
|
|
37
|
+
content,
|
|
38
|
+
...(interaction === undefined ? {} : { interaction }),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function normalizeCreateMessageRequest(input) {
|
|
42
|
+
return {
|
|
43
|
+
...normalizeMessageEnvelope(input),
|
|
44
|
+
to: typeof input.to === "string" ? { subscriber_id: input.to } : input.to,
|
|
45
|
+
...(input.delivery_target === undefined
|
|
46
|
+
? {}
|
|
47
|
+
: { delivery_target: input.delivery_target }),
|
|
48
|
+
...(input.connection_id === undefined
|
|
49
|
+
? {}
|
|
50
|
+
: { connection_id: input.connection_id }),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function normalizeOperatorMessageRequest(input) {
|
|
54
|
+
return {
|
|
55
|
+
...normalizeMessageEnvelope(input),
|
|
56
|
+
...(input.recipient === undefined ? {} : { recipient: input.recipient }),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=input-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-defaults.js","sourceRoot":"","sources":["../src/input-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeInteractionSendRequest } from "./input-defaults.js";
|
|
1
2
|
/** Compatibility default, never a ceiling on a sender-selected answer window. */
|
|
2
3
|
export const DEFAULT_INTERACTION_EXPIRY_SECONDS = 86_400;
|
|
3
4
|
/** The public RFC3339 timestamp vocabulary has four-digit years. */
|
|
@@ -60,7 +61,7 @@ export function resolveInteractionExpiry(acceptedAt, input) {
|
|
|
60
61
|
/** Canonical retained/provider request: relative input never escapes acceptance. */
|
|
61
62
|
export function resolveInteractionRequest(acceptedAt, input) {
|
|
62
63
|
const expires_at = resolveInteractionExpiry(acceptedAt, input);
|
|
63
|
-
const request = { ...input };
|
|
64
|
+
const request = { ...normalizeInteractionSendRequest(input) };
|
|
64
65
|
delete request.expires_in_seconds;
|
|
65
66
|
return { ...request, expires_at };
|
|
66
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction-expiry.js","sourceRoot":"","sources":["../src/interaction-expiry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interaction-expiry.js","sourceRoot":"","sources":["../src/interaction-expiry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "https://whooshbang.flowxo.com/problems/idempotency_key_required",
|
|
3
|
-
"title": "
|
|
3
|
+
"title": "Invalid idempotency key",
|
|
4
4
|
"status": 400,
|
|
5
|
-
"detail": "
|
|
5
|
+
"detail": "Idempotency-Key must be 8 to 255 visible ASCII characters.",
|
|
6
6
|
"code": "idempotency_key_required",
|
|
7
7
|
"diagnostic_id": "diag_idem_required_001",
|
|
8
8
|
"retryable": false
|