@whooshbang/sdk 1.0.0-rc.14
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/LICENSE +21 -0
- package/README.md +163 -0
- package/dist/additive-compatibility.d.ts +11 -0
- package/dist/additive-compatibility.js +65 -0
- package/dist/additive-compatibility.js.map +1 -0
- package/dist/client.d.ts +148 -0
- package/dist/client.js +924 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +68 -0
- package/dist/errors.js +108 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/interactions.d.ts +52 -0
- package/dist/interactions.js +268 -0
- package/dist/interactions.js.map +1 -0
- package/dist/machine.d.ts +29 -0
- package/dist/machine.js +29 -0
- package/dist/machine.js.map +1 -0
- package/dist/webhooks.d.ts +29 -0
- package/dist/webhooks.js +47 -0
- package/dist/webhooks.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ContractValidationError, Problem } from "@whooshbang/contracts";
|
|
2
|
+
/**
|
|
3
|
+
* A single local bound violation.
|
|
4
|
+
*
|
|
5
|
+
* `path` names the offending field and `code` names the rule it broke. The
|
|
6
|
+
* offending value is deliberately absent: builder input carries prompts,
|
|
7
|
+
* option labels, and answers, none of which may reach an error message, a
|
|
8
|
+
* log, or a stack trace.
|
|
9
|
+
*/
|
|
10
|
+
export interface WhooshBangValidationIssue {
|
|
11
|
+
readonly code: string;
|
|
12
|
+
readonly path: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A caller-input failure detected entirely on this machine.
|
|
16
|
+
*
|
|
17
|
+
* Extending `TypeError` keeps the historical local-guard contract: callers
|
|
18
|
+
* who already catch `TypeError` for bad arguments keep working, and callers
|
|
19
|
+
* who want the structured issue list can narrow to this class.
|
|
20
|
+
*/
|
|
21
|
+
export declare class WhooshBangValidationError extends TypeError {
|
|
22
|
+
readonly issues: readonly WhooshBangValidationIssue[];
|
|
23
|
+
readonly operation: string;
|
|
24
|
+
constructor(operation: string, issues: readonly WhooshBangValidationIssue[], message?: string);
|
|
25
|
+
}
|
|
26
|
+
export declare class WhooshBangContractError extends Error {
|
|
27
|
+
readonly errors: readonly ContractValidationError[];
|
|
28
|
+
readonly operation: string;
|
|
29
|
+
constructor(operation: string, errors: readonly ContractValidationError[], message?: string);
|
|
30
|
+
}
|
|
31
|
+
export declare class WhooshBangProblemError extends Error {
|
|
32
|
+
readonly code: Problem["code"];
|
|
33
|
+
readonly diagnosticId: string;
|
|
34
|
+
readonly fieldErrors?: Problem["field_errors"];
|
|
35
|
+
readonly problem: Problem;
|
|
36
|
+
readonly retryAt?: string;
|
|
37
|
+
readonly retryable: boolean;
|
|
38
|
+
readonly status: number;
|
|
39
|
+
constructor(problem: Problem);
|
|
40
|
+
}
|
|
41
|
+
export declare class WhooshBangProtocolError extends Error {
|
|
42
|
+
readonly operation: string;
|
|
43
|
+
readonly status?: number;
|
|
44
|
+
constructor(operation: string, message: string, status?: number);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The client has no server answer for this attempt.
|
|
48
|
+
*
|
|
49
|
+
* `outcomeUnknown` is true when the request could have been applied — a side
|
|
50
|
+
* effect that reached the service before the connection failed. The client
|
|
51
|
+
* never retries on the caller's behalf, so this is the honest state rather
|
|
52
|
+
* than an internally-resolved one.
|
|
53
|
+
*/
|
|
54
|
+
export declare class WhooshBangTransportError extends Error {
|
|
55
|
+
readonly operation: string;
|
|
56
|
+
readonly outcomeUnknown: boolean;
|
|
57
|
+
constructor(operation: string, outcomeUnknown: boolean, message?: string);
|
|
58
|
+
}
|
|
59
|
+
/** The caller's `AbortSignal` fired. No server outcome is claimed. */
|
|
60
|
+
export declare class WhooshBangAbortError extends WhooshBangTransportError {
|
|
61
|
+
constructor(operation: string, outcomeUnknown: boolean);
|
|
62
|
+
}
|
|
63
|
+
/** The caller's `timeoutMs` elapsed. No server outcome is claimed. */
|
|
64
|
+
export declare class WhooshBangTimeoutError extends WhooshBangTransportError {
|
|
65
|
+
readonly timeoutMs: number;
|
|
66
|
+
constructor(operation: string, outcomeUnknown: boolean, timeoutMs: number);
|
|
67
|
+
}
|
|
68
|
+
export declare function validationError(operation: string, path: string, code: string, message?: string): WhooshBangValidationError;
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A caller-input failure detected entirely on this machine.
|
|
3
|
+
*
|
|
4
|
+
* Extending `TypeError` keeps the historical local-guard contract: callers
|
|
5
|
+
* who already catch `TypeError` for bad arguments keep working, and callers
|
|
6
|
+
* who want the structured issue list can narrow to this class.
|
|
7
|
+
*/
|
|
8
|
+
export class WhooshBangValidationError extends TypeError {
|
|
9
|
+
issues;
|
|
10
|
+
operation;
|
|
11
|
+
constructor(operation, issues, message = "The WhooshBang request is not valid and was not sent.") {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "WhooshBangValidationError";
|
|
14
|
+
this.operation = operation;
|
|
15
|
+
this.issues = issues;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class WhooshBangContractError extends Error {
|
|
19
|
+
errors;
|
|
20
|
+
operation;
|
|
21
|
+
constructor(operation, errors, message = "WhooshBang contract validation failed.") {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = "WhooshBangContractError";
|
|
24
|
+
this.operation = operation;
|
|
25
|
+
this.errors = errors;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class WhooshBangProblemError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
diagnosticId;
|
|
31
|
+
fieldErrors;
|
|
32
|
+
problem;
|
|
33
|
+
retryAt;
|
|
34
|
+
retryable;
|
|
35
|
+
status;
|
|
36
|
+
constructor(problem) {
|
|
37
|
+
super(problem.detail);
|
|
38
|
+
this.name = "WhooshBangProblemError";
|
|
39
|
+
this.problem = problem;
|
|
40
|
+
this.status = problem.status;
|
|
41
|
+
this.code = problem.code;
|
|
42
|
+
this.diagnosticId = problem.diagnostic_id;
|
|
43
|
+
this.retryable = problem.retryable;
|
|
44
|
+
if (problem.retry_at !== undefined) {
|
|
45
|
+
this.retryAt = problem.retry_at;
|
|
46
|
+
}
|
|
47
|
+
if (problem.field_errors !== undefined) {
|
|
48
|
+
this.fieldErrors = problem.field_errors;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class WhooshBangProtocolError extends Error {
|
|
53
|
+
operation;
|
|
54
|
+
status;
|
|
55
|
+
constructor(operation, message, status) {
|
|
56
|
+
super(message);
|
|
57
|
+
this.name = "WhooshBangProtocolError";
|
|
58
|
+
this.operation = operation;
|
|
59
|
+
if (status !== undefined) {
|
|
60
|
+
this.status = status;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The client has no server answer for this attempt.
|
|
66
|
+
*
|
|
67
|
+
* `outcomeUnknown` is true when the request could have been applied — a side
|
|
68
|
+
* effect that reached the service before the connection failed. The client
|
|
69
|
+
* never retries on the caller's behalf, so this is the honest state rather
|
|
70
|
+
* than an internally-resolved one.
|
|
71
|
+
*/
|
|
72
|
+
export class WhooshBangTransportError extends Error {
|
|
73
|
+
operation;
|
|
74
|
+
outcomeUnknown;
|
|
75
|
+
constructor(operation, outcomeUnknown, message) {
|
|
76
|
+
super(message ??
|
|
77
|
+
(outcomeUnknown
|
|
78
|
+
? "The request outcome is unknown. The client did not retry it."
|
|
79
|
+
: "The WhooshBang request could not be completed."));
|
|
80
|
+
this.name = "WhooshBangTransportError";
|
|
81
|
+
this.operation = operation;
|
|
82
|
+
this.outcomeUnknown = outcomeUnknown;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** The caller's `AbortSignal` fired. No server outcome is claimed. */
|
|
86
|
+
export class WhooshBangAbortError extends WhooshBangTransportError {
|
|
87
|
+
constructor(operation, outcomeUnknown) {
|
|
88
|
+
super(operation, outcomeUnknown, outcomeUnknown
|
|
89
|
+
? "The caller aborted the request. Its outcome is unknown."
|
|
90
|
+
: "The caller aborted the request.");
|
|
91
|
+
this.name = "WhooshBangAbortError";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** The caller's `timeoutMs` elapsed. No server outcome is claimed. */
|
|
95
|
+
export class WhooshBangTimeoutError extends WhooshBangTransportError {
|
|
96
|
+
timeoutMs;
|
|
97
|
+
constructor(operation, outcomeUnknown, timeoutMs) {
|
|
98
|
+
super(operation, outcomeUnknown, outcomeUnknown
|
|
99
|
+
? "The request timed out locally. Its outcome is unknown."
|
|
100
|
+
: "The request timed out locally.");
|
|
101
|
+
this.name = "WhooshBangTimeoutError";
|
|
102
|
+
this.timeoutMs = timeoutMs;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export function validationError(operation, path, code, message) {
|
|
106
|
+
return new WhooshBangValidationError(operation, [{ code, path }], message);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DEFAULT_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, MAX_WEBHOOK_SECRETS, MAX_WEBHOOK_SIGNATURES, verifyWebhookSignature } from "@whooshbang/contracts";
|
|
2
|
+
export { WhooshBangClient } from "./client.js";
|
|
3
|
+
export { WhooshBangAbortError, WhooshBangContractError, WhooshBangProblemError, WhooshBangProtocolError, WhooshBangTimeoutError, WhooshBangTransportError, WhooshBangValidationError, } from "./errors.js";
|
|
4
|
+
export { confirmInteraction, inputInteraction, interactionAnswer, isInteractionTerminal, selectInteraction, } from "./interactions.js";
|
|
5
|
+
export { createMachineCredential } from "./machine.js";
|
|
6
|
+
export { verifyWhooshBangEvent, verifyWhooshBangWebhook } from "./webhooks.js";
|
|
7
|
+
export { DEFAULT_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, MAX_WEBHOOK_SECRETS, MAX_WEBHOOK_SIGNATURES, verifyWebhookSignature, };
|
|
8
|
+
export type { ListApiCredentialsOptions, ListProjectsOptions, PollMachineEventsOptions, RequestOptions, ResponseInspectionOptions, SideEffectRequestOptions, WhooshBangClientOptions, WhooshBangFetch, WhooshBangLogRecord, WhooshBangLogger, } from "./client.js";
|
|
9
|
+
export type { WhooshBangValidationIssue } from "./errors.js";
|
|
10
|
+
export type { ConfirmInteractionInput, InputInteractionInput, InteractionOptionInput, SelectInteractionInput, } from "./interactions.js";
|
|
11
|
+
export type { MachineCredentialPair } from "./machine.js";
|
|
12
|
+
export type { RejectedWhooshBangEvent, VerifiedWhooshBangEvent, WhooshBangEventVerification, } from "./webhooks.js";
|
|
13
|
+
export type { AccountProjection, ApiCredential, ApiCredentialCollection, ApiCredentialRotation, ApiCredentialSecretReveal, ConfirmInteractionRequest, CreateApiCredentialRequest, CreateCustomerEndpointRequest, CreateMachineClientRequest, CreateMessageRequest, CreateProjectRequest, CreateSubscriptionLinkRequest, CustomerEndpoint, CustomerEndpointAttemptCollection, CustomerEndpointCollection, CustomerEndpointMutationResult, CustomerEndpointStatus, CustomerEventType, InputInteractionRequest, InteractionRequest, InteractionResponse, InteractionState, InteractionSummary, MachineClient, MachineCredential, MachineCredentialCrypto, MachineEventAckRequest, MachineEventAckResponse, MachineEventPollResponse, Message, Problem, Project, ProjectCollection, ProviderCapabilitiesCollection, RegisterMachineCredentialRequest, RotateApiCredentialRequest, RotateCustomerEndpointRequest, SelectInteractionRequest, SubscriptionLink, VerifyWebhookSignatureOptions, WebhookHeaders, WebhookSignatureVerification, WebhookVerificationFailureReason, WhooshBangEventV1ContractDocument, } from "@whooshbang/contracts";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DEFAULT_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, MAX_WEBHOOK_SECRETS, MAX_WEBHOOK_SIGNATURES, verifyWebhookSignature, } from "@whooshbang/contracts";
|
|
2
|
+
export { WhooshBangClient } from "./client.js";
|
|
3
|
+
export { WhooshBangAbortError, WhooshBangContractError, WhooshBangProblemError, WhooshBangProtocolError, WhooshBangTimeoutError, WhooshBangTransportError, WhooshBangValidationError, } from "./errors.js";
|
|
4
|
+
export { confirmInteraction, inputInteraction, interactionAnswer, isInteractionTerminal, selectInteraction, } from "./interactions.js";
|
|
5
|
+
export { createMachineCredential } from "./machine.js";
|
|
6
|
+
export { verifyWhooshBangEvent, verifyWhooshBangWebhook } from "./webhooks.js";
|
|
7
|
+
export { DEFAULT_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS, MAX_WEBHOOK_SECRETS, MAX_WEBHOOK_SIGNATURES, verifyWebhookSignature, };
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2CAA2C,EAC3C,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,2CAA2C,EAC3C,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ConfirmInteractionRequest, InputInteractionRequest, InteractionResponse, InteractionSummary, SelectInteractionRequest } from "@whooshbang/contracts";
|
|
2
|
+
/** C0-03 `InteractionOption` in caller-facing camelCase. */
|
|
3
|
+
export interface InteractionOptionInput {
|
|
4
|
+
readonly label: string;
|
|
5
|
+
readonly value: string;
|
|
6
|
+
}
|
|
7
|
+
interface ExpiryInput {
|
|
8
|
+
/** Exact server-authoritative expiry. Mutually exclusive with `expiresInSeconds`. */
|
|
9
|
+
readonly expiresAt?: Date | string;
|
|
10
|
+
/** Expiry computed from `now`. C0 accepts 30 seconds through 24 hours. */
|
|
11
|
+
readonly expiresInSeconds?: number;
|
|
12
|
+
/** Clock used only to resolve `expiresInSeconds`. Defaults to the system clock. */
|
|
13
|
+
readonly now?: Date;
|
|
14
|
+
}
|
|
15
|
+
export interface ConfirmInteractionInput extends ExpiryInput {
|
|
16
|
+
readonly confirmLabel?: string;
|
|
17
|
+
readonly correlationId?: string;
|
|
18
|
+
readonly denyLabel?: string;
|
|
19
|
+
readonly prompt: string;
|
|
20
|
+
}
|
|
21
|
+
export interface SelectInteractionInput extends ExpiryInput {
|
|
22
|
+
readonly correlationId?: string;
|
|
23
|
+
readonly options: readonly InteractionOptionInput[];
|
|
24
|
+
readonly prompt: string;
|
|
25
|
+
}
|
|
26
|
+
export interface InputInteractionInput extends ExpiryInput {
|
|
27
|
+
readonly correlationId?: string;
|
|
28
|
+
readonly prompt: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds the C0-03 confirm member of the interaction union.
|
|
32
|
+
*
|
|
33
|
+
* Every documented bound is enforced here, before any network call, so an
|
|
34
|
+
* out-of-range prompt or label can never reach the service.
|
|
35
|
+
*/
|
|
36
|
+
export declare function confirmInteraction(input: ConfirmInteractionInput): ConfirmInteractionRequest;
|
|
37
|
+
/** Builds the C0-03 single-select member of the interaction union. */
|
|
38
|
+
export declare function selectInteraction(input: SelectInteractionInput): SelectInteractionRequest;
|
|
39
|
+
/** Builds the C0-03 bounded free-text member of the interaction union. */
|
|
40
|
+
export declare function inputInteraction(input: InputInteractionInput): InputInteractionRequest;
|
|
41
|
+
/** Whether the canonical first-terminal-writer state can still change. */
|
|
42
|
+
export declare function isInteractionTerminal(summary: InteractionSummary): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Reads the retained answer as the same tagged union the machine stream and
|
|
45
|
+
* signed customer events carry.
|
|
46
|
+
*
|
|
47
|
+
* Returns `undefined` for an interaction that is not answered, and for an
|
|
48
|
+
* answered interaction whose typed answer has left its retention window —
|
|
49
|
+
* `answered` and `answered_at` survive that deletion, the answer does not.
|
|
50
|
+
*/
|
|
51
|
+
export declare function interactionAnswer(summary: InteractionSummary): InteractionResponse | undefined;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { validateInteractionRequest } from "@whooshbang/contracts";
|
|
2
|
+
import { WhooshBangValidationError } from "./errors.js";
|
|
3
|
+
const MIN_EXPIRES_IN_SECONDS = 30;
|
|
4
|
+
const MAX_EXPIRES_IN_SECONDS = 86_400;
|
|
5
|
+
const MIN_SELECT_OPTIONS = 2;
|
|
6
|
+
const MAX_SELECT_OPTIONS = 6;
|
|
7
|
+
const timestampPattern = /^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]+)?(?:Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])$/u;
|
|
8
|
+
const terminalStates = new Set([
|
|
9
|
+
"answered",
|
|
10
|
+
"cancelled",
|
|
11
|
+
"expired",
|
|
12
|
+
"retired",
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Widens a declared type so a runtime guard is meaningful.
|
|
16
|
+
*
|
|
17
|
+
* The builders are called from JavaScript as well as TypeScript, so the
|
|
18
|
+
* declared parameter types are a documentation aid rather than a guarantee.
|
|
19
|
+
*/
|
|
20
|
+
function untyped(value) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function containsAsciiControl(value) {
|
|
24
|
+
for (const character of value) {
|
|
25
|
+
const codePoint = character.codePointAt(0);
|
|
26
|
+
if (codePoint !== undefined && (codePoint <= 0x1f || codePoint === 0x7f)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function codePointLength(value) {
|
|
33
|
+
let count = 0;
|
|
34
|
+
for (const character of value) {
|
|
35
|
+
void character;
|
|
36
|
+
count += 1;
|
|
37
|
+
}
|
|
38
|
+
return count;
|
|
39
|
+
}
|
|
40
|
+
class IssueCollector {
|
|
41
|
+
#issues = [];
|
|
42
|
+
add(path, code) {
|
|
43
|
+
this.#issues.push({ code, path });
|
|
44
|
+
}
|
|
45
|
+
boundedText(path, value, minimum, maximum, controlFree = false) {
|
|
46
|
+
if (typeof value !== "string") {
|
|
47
|
+
this.add(path, "type");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const length = codePointLength(value);
|
|
51
|
+
if (length < minimum) {
|
|
52
|
+
this.add(path, "min_length");
|
|
53
|
+
}
|
|
54
|
+
else if (length > maximum) {
|
|
55
|
+
this.add(path, "max_length");
|
|
56
|
+
}
|
|
57
|
+
if (controlFree && containsAsciiControl(value)) {
|
|
58
|
+
this.add(path, "control_character");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
finish(operation) {
|
|
62
|
+
if (this.#issues.length > 0) {
|
|
63
|
+
throw new WhooshBangValidationError(operation, [...this.#issues]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Resolves the C0 `expires_at` field from either caller form.
|
|
69
|
+
*
|
|
70
|
+
* `expiresInSeconds` is bounded locally because the SDK computes the value
|
|
71
|
+
* itself. An explicit `expiresAt` is only checked for the canonical timestamp
|
|
72
|
+
* shape: the 30-second-to-24-hour window is measured from *server* acceptance,
|
|
73
|
+
* so enforcing it against a local clock would reject valid requests under
|
|
74
|
+
* ordinary skew.
|
|
75
|
+
*/
|
|
76
|
+
function resolveExpiry(input, issues) {
|
|
77
|
+
const relative = untyped(input.expiresInSeconds);
|
|
78
|
+
const absolute = untyped(input.expiresAt);
|
|
79
|
+
if ((relative === undefined) === (absolute === undefined)) {
|
|
80
|
+
issues.add("expires_at", "expiry_required");
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
if (relative !== undefined) {
|
|
84
|
+
if (typeof relative !== "number" ||
|
|
85
|
+
!Number.isInteger(relative) ||
|
|
86
|
+
relative < MIN_EXPIRES_IN_SECONDS ||
|
|
87
|
+
relative > MAX_EXPIRES_IN_SECONDS) {
|
|
88
|
+
issues.add("expires_at", "expiry_out_of_range");
|
|
89
|
+
return "";
|
|
90
|
+
}
|
|
91
|
+
const baseTime = (input.now ?? new Date()).getTime();
|
|
92
|
+
if (!Number.isFinite(baseTime)) {
|
|
93
|
+
issues.add("expires_at", "invalid_clock");
|
|
94
|
+
return "";
|
|
95
|
+
}
|
|
96
|
+
return new Date(baseTime + relative * 1_000).toISOString();
|
|
97
|
+
}
|
|
98
|
+
if (absolute instanceof Date) {
|
|
99
|
+
const time = absolute.getTime();
|
|
100
|
+
if (!Number.isFinite(time)) {
|
|
101
|
+
issues.add("expires_at", "invalid_timestamp");
|
|
102
|
+
return "";
|
|
103
|
+
}
|
|
104
|
+
return absolute.toISOString();
|
|
105
|
+
}
|
|
106
|
+
if (typeof absolute !== "string" || !timestampPattern.test(absolute)) {
|
|
107
|
+
issues.add("expires_at", "invalid_timestamp");
|
|
108
|
+
return "";
|
|
109
|
+
}
|
|
110
|
+
return absolute;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Final gate: the built object must be an exact member of the C0 union.
|
|
114
|
+
*
|
|
115
|
+
* The local issue list above produces precise field paths for the common
|
|
116
|
+
* cases; this catches anything a JavaScript caller supplied that the declared
|
|
117
|
+
* types promised but did not deliver.
|
|
118
|
+
*/
|
|
119
|
+
function assertCanonical(operation, candidate) {
|
|
120
|
+
if (!validateInteractionRequest(candidate)) {
|
|
121
|
+
throw new WhooshBangValidationError(operation, [
|
|
122
|
+
{ code: "contract_mismatch", path: "interaction" },
|
|
123
|
+
]);
|
|
124
|
+
}
|
|
125
|
+
return candidate;
|
|
126
|
+
}
|
|
127
|
+
function assertMember(operation, type, candidate) {
|
|
128
|
+
const request = assertCanonical(operation, candidate);
|
|
129
|
+
if (request.type !== type) {
|
|
130
|
+
throw new WhooshBangValidationError(operation, [
|
|
131
|
+
{ code: "contract_mismatch", path: "type" },
|
|
132
|
+
]);
|
|
133
|
+
}
|
|
134
|
+
return request;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Builds the C0-03 confirm member of the interaction union.
|
|
138
|
+
*
|
|
139
|
+
* Every documented bound is enforced here, before any network call, so an
|
|
140
|
+
* out-of-range prompt or label can never reach the service.
|
|
141
|
+
*/
|
|
142
|
+
export function confirmInteraction(input) {
|
|
143
|
+
const issues = new IssueCollector();
|
|
144
|
+
issues.boundedText("prompt", input.prompt, 1, 1_000);
|
|
145
|
+
if (input.confirmLabel !== undefined) {
|
|
146
|
+
issues.boundedText("confirm_label", input.confirmLabel, 1, 40);
|
|
147
|
+
}
|
|
148
|
+
if (input.denyLabel !== undefined) {
|
|
149
|
+
issues.boundedText("deny_label", input.denyLabel, 1, 40);
|
|
150
|
+
}
|
|
151
|
+
if (input.correlationId !== undefined) {
|
|
152
|
+
issues.boundedText("correlation_id", input.correlationId, 8, 128, true);
|
|
153
|
+
}
|
|
154
|
+
const expiresAt = resolveExpiry(input, issues);
|
|
155
|
+
issues.finish("confirmInteraction");
|
|
156
|
+
return assertMember("confirmInteraction", "confirm", {
|
|
157
|
+
...(input.confirmLabel === undefined
|
|
158
|
+
? {}
|
|
159
|
+
: { confirm_label: input.confirmLabel }),
|
|
160
|
+
...(input.correlationId === undefined
|
|
161
|
+
? {}
|
|
162
|
+
: { correlation_id: input.correlationId }),
|
|
163
|
+
...(input.denyLabel === undefined ? {} : { deny_label: input.denyLabel }),
|
|
164
|
+
expires_at: expiresAt,
|
|
165
|
+
prompt: input.prompt,
|
|
166
|
+
type: "confirm",
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/** Builds the C0-03 single-select member of the interaction union. */
|
|
170
|
+
export function selectInteraction(input) {
|
|
171
|
+
const issues = new IssueCollector();
|
|
172
|
+
issues.boundedText("prompt", input.prompt, 1, 1_000);
|
|
173
|
+
if (input.correlationId !== undefined) {
|
|
174
|
+
issues.boundedText("correlation_id", input.correlationId, 8, 128, true);
|
|
175
|
+
}
|
|
176
|
+
const rawOptions = untyped(input.options);
|
|
177
|
+
const options = Array.isArray(rawOptions)
|
|
178
|
+
? rawOptions
|
|
179
|
+
: [];
|
|
180
|
+
if (!Array.isArray(rawOptions)) {
|
|
181
|
+
issues.add("options", "type");
|
|
182
|
+
}
|
|
183
|
+
else if (options.length < MIN_SELECT_OPTIONS) {
|
|
184
|
+
issues.add("options", "min_items");
|
|
185
|
+
}
|
|
186
|
+
else if (options.length > MAX_SELECT_OPTIONS) {
|
|
187
|
+
issues.add("options", "max_items");
|
|
188
|
+
}
|
|
189
|
+
const seen = new Set();
|
|
190
|
+
for (const [index, option] of options.entries()) {
|
|
191
|
+
if (typeof option !== "object" || option === null) {
|
|
192
|
+
issues.add(`options[${index}]`, "type");
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const candidate = option;
|
|
196
|
+
issues.boundedText(`options[${index}].value`, candidate.value, 1, 128, true);
|
|
197
|
+
issues.boundedText(`options[${index}].label`, candidate.label, 1, 120);
|
|
198
|
+
if (typeof candidate.value === "string") {
|
|
199
|
+
if (seen.has(candidate.value)) {
|
|
200
|
+
issues.add(`options[${index}].value`, "duplicate_value");
|
|
201
|
+
}
|
|
202
|
+
seen.add(candidate.value);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const expiresAt = resolveExpiry(input, issues);
|
|
206
|
+
issues.finish("selectInteraction");
|
|
207
|
+
return assertMember("selectInteraction", "select", {
|
|
208
|
+
...(input.correlationId === undefined
|
|
209
|
+
? {}
|
|
210
|
+
: { correlation_id: input.correlationId }),
|
|
211
|
+
expires_at: expiresAt,
|
|
212
|
+
options: input.options.map((option) => ({
|
|
213
|
+
label: option.label,
|
|
214
|
+
value: option.value,
|
|
215
|
+
})),
|
|
216
|
+
prompt: input.prompt,
|
|
217
|
+
type: "select",
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/** Builds the C0-03 bounded free-text member of the interaction union. */
|
|
221
|
+
export function inputInteraction(input) {
|
|
222
|
+
const issues = new IssueCollector();
|
|
223
|
+
issues.boundedText("prompt", input.prompt, 1, 1_000);
|
|
224
|
+
if (input.correlationId !== undefined) {
|
|
225
|
+
issues.boundedText("correlation_id", input.correlationId, 8, 128, true);
|
|
226
|
+
}
|
|
227
|
+
const expiresAt = resolveExpiry(input, issues);
|
|
228
|
+
issues.finish("inputInteraction");
|
|
229
|
+
return assertMember("inputInteraction", "input", {
|
|
230
|
+
...(input.correlationId === undefined
|
|
231
|
+
? {}
|
|
232
|
+
: { correlation_id: input.correlationId }),
|
|
233
|
+
expires_at: expiresAt,
|
|
234
|
+
prompt: input.prompt,
|
|
235
|
+
type: "input",
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
/** Whether the canonical first-terminal-writer state can still change. */
|
|
239
|
+
export function isInteractionTerminal(summary) {
|
|
240
|
+
return terminalStates.has(summary.state);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Reads the retained answer as the same tagged union the machine stream and
|
|
244
|
+
* signed customer events carry.
|
|
245
|
+
*
|
|
246
|
+
* Returns `undefined` for an interaction that is not answered, and for an
|
|
247
|
+
* answered interaction whose typed answer has left its retention window —
|
|
248
|
+
* `answered` and `answered_at` survive that deletion, the answer does not.
|
|
249
|
+
*/
|
|
250
|
+
export function interactionAnswer(summary) {
|
|
251
|
+
if (summary.state !== "answered" ||
|
|
252
|
+
summary.answer_retained !== true ||
|
|
253
|
+
summary.answer === undefined) {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
if (summary.type === "confirm") {
|
|
257
|
+
return typeof summary.answer === "boolean"
|
|
258
|
+
? { type: "confirm", value: summary.answer }
|
|
259
|
+
: undefined;
|
|
260
|
+
}
|
|
261
|
+
if (typeof summary.answer !== "string") {
|
|
262
|
+
return undefined;
|
|
263
|
+
}
|
|
264
|
+
return summary.type === "select"
|
|
265
|
+
? { type: "select", value: summary.answer }
|
|
266
|
+
: { type: "input", value: summary.answer };
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions.js","sourceRoot":"","sources":["../src/interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { MachineCredentialCrypto, MachineCredentialRegistration } from "@whooshbang/contracts";
|
|
2
|
+
/**
|
|
3
|
+
* One locally generated machine credential.
|
|
4
|
+
*
|
|
5
|
+
* `registration` is the only half that may be sent to the service.
|
|
6
|
+
* `bearerToken` is the readable secret; it exists once, in this process, and
|
|
7
|
+
* the service never receives, stores, or can return it.
|
|
8
|
+
*/
|
|
9
|
+
export interface MachineCredentialPair {
|
|
10
|
+
readonly bearerToken: string;
|
|
11
|
+
readonly credentialId: string;
|
|
12
|
+
/**
|
|
13
|
+
* The digest-only registration body.
|
|
14
|
+
*
|
|
15
|
+
* `secret_sha256` keeps its precise `sha256:` form so it can be handed
|
|
16
|
+
* straight to a verifier without a cast.
|
|
17
|
+
*/
|
|
18
|
+
readonly registration: MachineCredentialRegistration;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generates C0-03 machine credential material with secure randomness.
|
|
22
|
+
*
|
|
23
|
+
* The secret is 256 random bits from Web Crypto and the registration carries
|
|
24
|
+
* only its SHA-256 digest, so registering a credential discloses nothing that
|
|
25
|
+
* could authenticate as it. Hand `bearerToken` straight to a
|
|
26
|
+
* `WhooshBangClient` as its `credential` and keep it out of logs, files, and
|
|
27
|
+
* error messages.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createMachineCredential(crypto?: MachineCredentialCrypto): Promise<MachineCredentialPair>;
|