@murphai/gateway-core 0.1.1
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 +674 -0
- package/README.md +7 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/contracts.d.ts +445 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +231 -0
- package/dist/contracts.js.map +1 -0
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +19 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-log.d.ts +8 -0
- package/dist/event-log.d.ts.map +1 -0
- package/dist/event-log.js +35 -0
- package/dist/event-log.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/opaque-ids.d.ts +33 -0
- package/dist/opaque-ids.d.ts.map +1 -0
- package/dist/opaque-ids.js +168 -0
- package/dist/opaque-ids.js.map +1 -0
- package/dist/routes.d.ts +59 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +319 -0
- package/dist/routes.js.map +1 -0
- package/dist/shared.d.ts +4 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +15 -0
- package/dist/shared.js.map +1 -0
- package/dist/snapshot.d.ts +23 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +388 -0
- package/dist/snapshot.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { z } from 'incur';
|
|
2
|
+
import { isoTimestampSchema } from './shared.js';
|
|
3
|
+
export const gatewayConversationDirectnessValues = [
|
|
4
|
+
'direct',
|
|
5
|
+
'group',
|
|
6
|
+
'unknown',
|
|
7
|
+
];
|
|
8
|
+
export const gatewayMessageDirectionValues = [
|
|
9
|
+
'inbound',
|
|
10
|
+
'outbound',
|
|
11
|
+
'system',
|
|
12
|
+
];
|
|
13
|
+
export const gatewayReplyRouteKindValues = ['participant', 'thread'];
|
|
14
|
+
export const gatewayDeliveryTargetKindValues = [
|
|
15
|
+
'explicit',
|
|
16
|
+
'participant',
|
|
17
|
+
'thread',
|
|
18
|
+
];
|
|
19
|
+
export const gatewayEventKindValues = [
|
|
20
|
+
'message.created',
|
|
21
|
+
'conversation.updated',
|
|
22
|
+
'permission.requested',
|
|
23
|
+
'permission.resolved',
|
|
24
|
+
];
|
|
25
|
+
export const gatewayPermissionStatusValues = [
|
|
26
|
+
'open',
|
|
27
|
+
'approved',
|
|
28
|
+
'denied',
|
|
29
|
+
'expired',
|
|
30
|
+
];
|
|
31
|
+
export const gatewayPermissionDecisionValues = ['approve', 'deny'];
|
|
32
|
+
export const gatewayConversationTitleSourceValues = [
|
|
33
|
+
'alias',
|
|
34
|
+
'thread-title',
|
|
35
|
+
'participant-display-name',
|
|
36
|
+
'participant-id',
|
|
37
|
+
'thread-id',
|
|
38
|
+
'channel',
|
|
39
|
+
];
|
|
40
|
+
const gatewayOptionalStringSchema = z.string().min(1).nullable().default(null);
|
|
41
|
+
export const gatewayReplyRouteSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
kind: z.enum(gatewayReplyRouteKindValues).nullable().default(null),
|
|
44
|
+
target: gatewayOptionalStringSchema,
|
|
45
|
+
})
|
|
46
|
+
.strict();
|
|
47
|
+
export const gatewayConversationRouteSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
channel: gatewayOptionalStringSchema,
|
|
50
|
+
identityId: gatewayOptionalStringSchema,
|
|
51
|
+
participantId: gatewayOptionalStringSchema,
|
|
52
|
+
threadId: gatewayOptionalStringSchema,
|
|
53
|
+
directness: z.enum(gatewayConversationDirectnessValues).nullable().default(null),
|
|
54
|
+
reply: gatewayReplyRouteSchema.default({
|
|
55
|
+
kind: null,
|
|
56
|
+
target: null,
|
|
57
|
+
}),
|
|
58
|
+
})
|
|
59
|
+
.strict();
|
|
60
|
+
export const gatewayConversationSchema = z
|
|
61
|
+
.object({
|
|
62
|
+
schema: z.literal('murph.gateway-conversation.v1'),
|
|
63
|
+
sessionKey: z.string().min(1),
|
|
64
|
+
title: gatewayOptionalStringSchema,
|
|
65
|
+
titleSource: z.enum(gatewayConversationTitleSourceValues).nullable().default(null),
|
|
66
|
+
lastMessagePreview: gatewayOptionalStringSchema,
|
|
67
|
+
lastActivityAt: isoTimestampSchema.nullable().default(null),
|
|
68
|
+
messageCount: z.number().int().nonnegative().nullable().default(null),
|
|
69
|
+
canSend: z.boolean().default(false),
|
|
70
|
+
route: gatewayConversationRouteSchema,
|
|
71
|
+
})
|
|
72
|
+
.strict();
|
|
73
|
+
export const gatewayAttachmentSchema = z
|
|
74
|
+
.object({
|
|
75
|
+
schema: z.literal('murph.gateway-attachment.v1'),
|
|
76
|
+
attachmentId: z.string().min(1),
|
|
77
|
+
messageId: z.string().min(1),
|
|
78
|
+
kind: z.enum(['image', 'audio', 'video', 'document', 'other']),
|
|
79
|
+
mime: gatewayOptionalStringSchema,
|
|
80
|
+
fileName: gatewayOptionalStringSchema,
|
|
81
|
+
byteSize: z.number().int().nonnegative().nullable().default(null),
|
|
82
|
+
parseState: gatewayOptionalStringSchema,
|
|
83
|
+
extractedText: z.string().nullable().default(null),
|
|
84
|
+
transcriptText: z.string().nullable().default(null),
|
|
85
|
+
})
|
|
86
|
+
.strict();
|
|
87
|
+
export const gatewayMessageSchema = z
|
|
88
|
+
.object({
|
|
89
|
+
schema: z.literal('murph.gateway-message.v1'),
|
|
90
|
+
messageId: z.string().min(1),
|
|
91
|
+
sessionKey: z.string().min(1),
|
|
92
|
+
direction: z.enum(gatewayMessageDirectionValues),
|
|
93
|
+
createdAt: isoTimestampSchema,
|
|
94
|
+
actorDisplayName: gatewayOptionalStringSchema,
|
|
95
|
+
text: z.string().nullable().default(null),
|
|
96
|
+
attachments: z.array(gatewayAttachmentSchema).default([]),
|
|
97
|
+
})
|
|
98
|
+
.strict();
|
|
99
|
+
export const gatewayEventSchema = z
|
|
100
|
+
.object({
|
|
101
|
+
schema: z.literal('murph.gateway-event.v1'),
|
|
102
|
+
cursor: z.number().int().nonnegative(),
|
|
103
|
+
kind: z.enum(gatewayEventKindValues),
|
|
104
|
+
createdAt: isoTimestampSchema,
|
|
105
|
+
sessionKey: gatewayOptionalStringSchema,
|
|
106
|
+
messageId: gatewayOptionalStringSchema,
|
|
107
|
+
permissionRequestId: gatewayOptionalStringSchema,
|
|
108
|
+
summary: gatewayOptionalStringSchema,
|
|
109
|
+
})
|
|
110
|
+
.strict();
|
|
111
|
+
export const gatewayPermissionRequestSchema = z
|
|
112
|
+
.object({
|
|
113
|
+
schema: z.literal('murph.gateway-permission-request.v1'),
|
|
114
|
+
requestId: z.string().min(1),
|
|
115
|
+
sessionKey: gatewayOptionalStringSchema,
|
|
116
|
+
action: z.string().min(1),
|
|
117
|
+
description: gatewayOptionalStringSchema,
|
|
118
|
+
status: z.enum(gatewayPermissionStatusValues),
|
|
119
|
+
requestedAt: isoTimestampSchema,
|
|
120
|
+
resolvedAt: isoTimestampSchema.nullable().default(null),
|
|
121
|
+
note: gatewayOptionalStringSchema,
|
|
122
|
+
})
|
|
123
|
+
.strict();
|
|
124
|
+
export const gatewayProjectionSnapshotSchema = z
|
|
125
|
+
.object({
|
|
126
|
+
schema: z.literal('murph.gateway-projection-snapshot.v1'),
|
|
127
|
+
generatedAt: isoTimestampSchema,
|
|
128
|
+
conversations: z.array(gatewayConversationSchema).default([]),
|
|
129
|
+
messages: z.array(gatewayMessageSchema).default([]),
|
|
130
|
+
permissions: z.array(gatewayPermissionRequestSchema).default([]),
|
|
131
|
+
})
|
|
132
|
+
.strict();
|
|
133
|
+
export const gatewayListConversationsInputSchema = z
|
|
134
|
+
.object({
|
|
135
|
+
channel: gatewayOptionalStringSchema,
|
|
136
|
+
includeDerivedTitles: z.boolean().optional().default(true),
|
|
137
|
+
includeLastMessage: z.boolean().optional().default(true),
|
|
138
|
+
limit: z.number().int().positive().max(200).optional().default(50),
|
|
139
|
+
search: gatewayOptionalStringSchema,
|
|
140
|
+
})
|
|
141
|
+
.strict();
|
|
142
|
+
export const gatewayListConversationsResultSchema = z
|
|
143
|
+
.object({
|
|
144
|
+
conversations: z.array(gatewayConversationSchema).default([]),
|
|
145
|
+
nextCursor: gatewayOptionalStringSchema,
|
|
146
|
+
})
|
|
147
|
+
.strict();
|
|
148
|
+
export const gatewayGetConversationInputSchema = z
|
|
149
|
+
.object({
|
|
150
|
+
sessionKey: z.string().min(1),
|
|
151
|
+
})
|
|
152
|
+
.strict();
|
|
153
|
+
export const gatewayReadMessagesInputSchema = z
|
|
154
|
+
.object({
|
|
155
|
+
afterMessageId: gatewayOptionalStringSchema,
|
|
156
|
+
limit: z.number().int().positive().max(500).optional().default(100),
|
|
157
|
+
oldestFirst: z.boolean().optional().default(false),
|
|
158
|
+
sessionKey: z.string().min(1),
|
|
159
|
+
})
|
|
160
|
+
.strict();
|
|
161
|
+
export const gatewayReadMessagesResultSchema = z
|
|
162
|
+
.object({
|
|
163
|
+
messages: z.array(gatewayMessageSchema).default([]),
|
|
164
|
+
nextCursor: gatewayOptionalStringSchema,
|
|
165
|
+
})
|
|
166
|
+
.strict();
|
|
167
|
+
export const gatewayFetchAttachmentsInputSchema = z
|
|
168
|
+
.object({
|
|
169
|
+
attachmentIds: z.array(z.string().min(1)).optional().default([]),
|
|
170
|
+
messageId: gatewayOptionalStringSchema,
|
|
171
|
+
sessionKey: gatewayOptionalStringSchema,
|
|
172
|
+
})
|
|
173
|
+
.strict();
|
|
174
|
+
export const gatewayPollEventsInputSchema = z
|
|
175
|
+
.object({
|
|
176
|
+
cursor: z.number().int().nonnegative().optional().default(0),
|
|
177
|
+
kinds: z.array(z.enum(gatewayEventKindValues)).optional().default([]),
|
|
178
|
+
limit: z.number().int().positive().max(200).optional().default(50),
|
|
179
|
+
sessionKey: gatewayOptionalStringSchema,
|
|
180
|
+
})
|
|
181
|
+
.strict();
|
|
182
|
+
export const gatewayPollEventsResultSchema = z
|
|
183
|
+
.object({
|
|
184
|
+
events: z.array(gatewayEventSchema).default([]),
|
|
185
|
+
nextCursor: z.number().int().nonnegative(),
|
|
186
|
+
live: z.boolean().default(true),
|
|
187
|
+
})
|
|
188
|
+
.strict();
|
|
189
|
+
export const gatewayWaitForEventsInputSchema = gatewayPollEventsInputSchema.extend({
|
|
190
|
+
timeoutMs: z.number().int().positive().max(120_000).optional().default(30_000),
|
|
191
|
+
});
|
|
192
|
+
export const gatewaySendMessageInputSchema = z
|
|
193
|
+
.object({
|
|
194
|
+
clientRequestId: gatewayOptionalStringSchema,
|
|
195
|
+
replyToMessageId: gatewayOptionalStringSchema,
|
|
196
|
+
sessionKey: z.string().min(1),
|
|
197
|
+
text: z.string().min(1),
|
|
198
|
+
})
|
|
199
|
+
.strict();
|
|
200
|
+
export const gatewaySendMessageResultSchema = z
|
|
201
|
+
.object({
|
|
202
|
+
sessionKey: z.string().min(1),
|
|
203
|
+
messageId: gatewayOptionalStringSchema,
|
|
204
|
+
queued: z.boolean().default(false),
|
|
205
|
+
delivery: z
|
|
206
|
+
.object({
|
|
207
|
+
channel: z.string().min(1),
|
|
208
|
+
idempotencyKey: gatewayOptionalStringSchema,
|
|
209
|
+
target: z.string().min(1),
|
|
210
|
+
targetKind: z.enum(gatewayDeliveryTargetKindValues),
|
|
211
|
+
sentAt: isoTimestampSchema,
|
|
212
|
+
messageLength: z.number().int().nonnegative(),
|
|
213
|
+
})
|
|
214
|
+
.strict()
|
|
215
|
+
.nullable()
|
|
216
|
+
.default(null),
|
|
217
|
+
})
|
|
218
|
+
.strict();
|
|
219
|
+
export const gatewayListOpenPermissionsInputSchema = z
|
|
220
|
+
.object({
|
|
221
|
+
sessionKey: gatewayOptionalStringSchema,
|
|
222
|
+
})
|
|
223
|
+
.strict();
|
|
224
|
+
export const gatewayRespondToPermissionInputSchema = z
|
|
225
|
+
.object({
|
|
226
|
+
decision: z.enum(gatewayPermissionDecisionValues),
|
|
227
|
+
note: gatewayOptionalStringSchema,
|
|
228
|
+
requestId: z.string().min(1),
|
|
229
|
+
})
|
|
230
|
+
.strict();
|
|
231
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const INVALID_GATEWAY_RUNTIME_ID_CODE = "ASSISTANT_INVALID_RUNTIME_ID";
|
|
2
|
+
export declare const GATEWAY_UNSUPPORTED_OPERATION_CODE = "ASSISTANT_GATEWAY_UNSUPPORTED_OPERATION";
|
|
3
|
+
export declare const GATEWAY_SESSION_NOT_FOUND_CODE = "ASSISTANT_GATEWAY_SESSION_NOT_FOUND";
|
|
4
|
+
export declare function createGatewayInvalidRuntimeIdError(message: string): Error & {
|
|
5
|
+
code: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function createGatewayUnsupportedOperationError(message: string): Error & {
|
|
8
|
+
code: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function createGatewaySessionNotFoundError(message: string): Error & {
|
|
11
|
+
code: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,iCAAiC,CAAA;AAC7E,eAAO,MAAM,kCAAkC,4CAA4C,CAAA;AAC3F,eAAO,MAAM,8BAA8B,wCAAwC,CAAA;AAEnF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,GACd,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAI1B;AAED,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,MAAM,GACd,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAI1B;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,GACd,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAI1B"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const INVALID_GATEWAY_RUNTIME_ID_CODE = 'ASSISTANT_INVALID_RUNTIME_ID';
|
|
2
|
+
export const GATEWAY_UNSUPPORTED_OPERATION_CODE = 'ASSISTANT_GATEWAY_UNSUPPORTED_OPERATION';
|
|
3
|
+
export const GATEWAY_SESSION_NOT_FOUND_CODE = 'ASSISTANT_GATEWAY_SESSION_NOT_FOUND';
|
|
4
|
+
export function createGatewayInvalidRuntimeIdError(message) {
|
|
5
|
+
const error = new Error(message);
|
|
6
|
+
error.code = INVALID_GATEWAY_RUNTIME_ID_CODE;
|
|
7
|
+
return error;
|
|
8
|
+
}
|
|
9
|
+
export function createGatewayUnsupportedOperationError(message) {
|
|
10
|
+
const error = new Error(message);
|
|
11
|
+
error.code = GATEWAY_UNSUPPORTED_OPERATION_CODE;
|
|
12
|
+
return error;
|
|
13
|
+
}
|
|
14
|
+
export function createGatewaySessionNotFoundError(message) {
|
|
15
|
+
const error = new Error(message);
|
|
16
|
+
error.code = GATEWAY_SESSION_NOT_FOUND_CODE;
|
|
17
|
+
return error;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,8BAA8B,CAAA;AAC7E,MAAM,CAAC,MAAM,kCAAkC,GAAG,yCAAyC,CAAA;AAC3F,MAAM,CAAC,MAAM,8BAA8B,GAAG,qCAAqC,CAAA;AAEnF,MAAM,UAAU,kCAAkC,CAChD,OAAe;IAEf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAA6B,CAAA;IAC5D,KAAK,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC5C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,OAAe;IAEf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAA6B,CAAA;IAC5D,KAAK,CAAC,IAAI,GAAG,kCAAkC,CAAA;IAC/C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAAe;IAEf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAA6B,CAAA;IAC5D,KAAK,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC3C,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type GatewayPollEventsInput, type GatewayPollEventsResult, type GatewayWaitForEventsInput } from './contracts.js';
|
|
2
|
+
export { applyGatewayProjectionSnapshotToEventLog, DEFAULT_GATEWAY_EVENT_RETENTION, pollGatewayEventLogState, type GatewayEventEmission, type GatewayEventLogState, } from './snapshot.js';
|
|
3
|
+
export declare const DEFAULT_GATEWAY_EVENT_POLL_INTERVAL_MS = 250;
|
|
4
|
+
export declare function waitForGatewayEventsByPolling(poll: (input?: GatewayPollEventsInput) => Promise<GatewayPollEventsResult>, input?: GatewayWaitForEventsInput, options?: {
|
|
5
|
+
intervalMs?: number;
|
|
6
|
+
sleep?: (ms: number) => Promise<void>;
|
|
7
|
+
}): Promise<GatewayPollEventsResult>;
|
|
8
|
+
//# sourceMappingURL=event-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-log.d.ts","sourceRoot":"","sources":["../src/event-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,wCAAwC,EACxC,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAA;AAEtB,eAAO,MAAM,sCAAsC,MAAM,CAAA;AAEzD,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,uBAAuB,CAAC,EAC1E,KAAK,CAAC,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC,GACA,OAAO,CAAC,uBAAuB,CAAC,CAiClC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { gatewayWaitForEventsInputSchema, } from './contracts.js';
|
|
2
|
+
export { applyGatewayProjectionSnapshotToEventLog, DEFAULT_GATEWAY_EVENT_RETENTION, pollGatewayEventLogState, } from './snapshot.js';
|
|
3
|
+
export const DEFAULT_GATEWAY_EVENT_POLL_INTERVAL_MS = 250;
|
|
4
|
+
export async function waitForGatewayEventsByPolling(poll, input, options) {
|
|
5
|
+
const parsed = gatewayWaitForEventsInputSchema.parse(input ?? {});
|
|
6
|
+
const intervalMs = Math.max(1, Math.trunc(options?.intervalMs ?? DEFAULT_GATEWAY_EVENT_POLL_INTERVAL_MS));
|
|
7
|
+
const sleeper = options?.sleep ?? defaultGatewayEventSleep;
|
|
8
|
+
let result = await poll({
|
|
9
|
+
cursor: parsed.cursor,
|
|
10
|
+
kinds: parsed.kinds,
|
|
11
|
+
limit: parsed.limit,
|
|
12
|
+
sessionKey: parsed.sessionKey,
|
|
13
|
+
});
|
|
14
|
+
if (result.events.length > 0) {
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
const deadline = Date.now() + parsed.timeoutMs;
|
|
18
|
+
while (Date.now() < deadline) {
|
|
19
|
+
await sleeper(Math.min(intervalMs, Math.max(1, deadline - Date.now())));
|
|
20
|
+
result = await poll({
|
|
21
|
+
cursor: parsed.cursor,
|
|
22
|
+
kinds: parsed.kinds,
|
|
23
|
+
limit: parsed.limit,
|
|
24
|
+
sessionKey: parsed.sessionKey,
|
|
25
|
+
});
|
|
26
|
+
if (result.events.length > 0) {
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
function defaultGatewayEventSleep(ms) {
|
|
33
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=event-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-log.js","sourceRoot":"","sources":["../src/event-log.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,GAIhC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,wCAAwC,EACxC,+BAA+B,EAC/B,wBAAwB,GAGzB,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,sCAAsC,GAAG,GAAG,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAA0E,EAC1E,KAAiC,EACjC,OAGC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,sCAAsC,CAAC,CAC1E,CAAA;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,IAAI,wBAAwB,CAAA;IAE1D,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;IAC9C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QACvE,MAAM,GAAG,MAAM,IAAI,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAU;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface GatewayOpaqueEnvelope {
|
|
2
|
+
kind: string;
|
|
3
|
+
routeToken?: string;
|
|
4
|
+
version: 2;
|
|
5
|
+
}
|
|
6
|
+
interface GatewayMessageEnvelope extends GatewayOpaqueEnvelope {
|
|
7
|
+
kind: 'capture-message' | 'outbox-message';
|
|
8
|
+
sourceToken?: string;
|
|
9
|
+
}
|
|
10
|
+
interface GatewayAttachmentEnvelope extends GatewayOpaqueEnvelope {
|
|
11
|
+
kind: 'attachment';
|
|
12
|
+
sourceToken?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Gateway ids behave like opaque transport identifiers and only accept the current
|
|
16
|
+
* route-token envelope shape.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createGatewayConversationSessionKey(routeKeyOrToken: string): string;
|
|
19
|
+
export declare function readGatewayConversationSessionToken(sessionKey: string): string;
|
|
20
|
+
export declare function assertGatewayConversationSessionKey(sessionKey: string): string;
|
|
21
|
+
export declare function sameGatewayConversationSession(leftSessionKey: string, rightSessionKey: string): boolean;
|
|
22
|
+
export declare function createGatewayCaptureMessageId(routeKeyOrToken: string, captureId: string): string;
|
|
23
|
+
export declare function createGatewayOutboxMessageId(routeKeyOrToken: string, intentId: string): string;
|
|
24
|
+
export declare function readGatewayMessageRouteToken(messageId: string): string;
|
|
25
|
+
export declare function readGatewayMessageKind(messageId: string): GatewayMessageEnvelope['kind'];
|
|
26
|
+
export declare function assertGatewayMessageId(messageId: string): string;
|
|
27
|
+
export declare function createGatewayAttachmentId(routeKeyOrToken: string, captureId: string, attachmentId: string): string;
|
|
28
|
+
export declare function readGatewayAttachmentId(attachmentId: string): GatewayAttachmentEnvelope & {
|
|
29
|
+
routeToken: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function assertGatewayAttachmentId(attachmentId: string): string;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=opaque-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opaque-ids.d.ts","sourceRoot":"","sources":["../src/opaque-ids.ts"],"names":[],"mappings":"AAEA,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,CAAC,CAAA;CACX;AAMD,UAAU,sBAAuB,SAAQ,qBAAqB;IAC5D,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAMD;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAST;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,GAChB,MAAM,CAQR;AAED,wBAAgB,4BAA4B,CAC1C,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAAC,MAAM,CAAC,CAEhC;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GACnB,yBAAyB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAQpD;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGtE"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
const GATEWAY_CONVERSATION_PREFIX = 'gwcs_';
|
|
3
|
+
const GATEWAY_MESSAGE_PREFIX = 'gwcm_';
|
|
4
|
+
const GATEWAY_ATTACHMENT_PREFIX = 'gwca_';
|
|
5
|
+
/**
|
|
6
|
+
* Gateway ids behave like opaque transport identifiers and only accept the current
|
|
7
|
+
* route-token envelope shape.
|
|
8
|
+
*/
|
|
9
|
+
export function createGatewayConversationSessionKey(routeKeyOrToken) {
|
|
10
|
+
const envelope = {
|
|
11
|
+
kind: 'conversation',
|
|
12
|
+
routeToken: normalizeGatewayRouteToken(routeKeyOrToken),
|
|
13
|
+
version: 2,
|
|
14
|
+
};
|
|
15
|
+
return encodeGatewayOpaqueId(GATEWAY_CONVERSATION_PREFIX, envelope);
|
|
16
|
+
}
|
|
17
|
+
export function readGatewayConversationSessionToken(sessionKey) {
|
|
18
|
+
return readGatewayConversationEnvelope(sessionKey).routeToken;
|
|
19
|
+
}
|
|
20
|
+
export function assertGatewayConversationSessionKey(sessionKey) {
|
|
21
|
+
readGatewayConversationEnvelope(sessionKey);
|
|
22
|
+
return sessionKey;
|
|
23
|
+
}
|
|
24
|
+
export function sameGatewayConversationSession(leftSessionKey, rightSessionKey) {
|
|
25
|
+
try {
|
|
26
|
+
return (readGatewayConversationSessionToken(leftSessionKey) ===
|
|
27
|
+
readGatewayConversationSessionToken(rightSessionKey));
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function createGatewayCaptureMessageId(routeKeyOrToken, captureId) {
|
|
34
|
+
const envelope = {
|
|
35
|
+
kind: 'capture-message',
|
|
36
|
+
routeToken: normalizeGatewayRouteToken(routeKeyOrToken),
|
|
37
|
+
sourceToken: createGatewaySourceToken('capture', captureId),
|
|
38
|
+
version: 2,
|
|
39
|
+
};
|
|
40
|
+
return encodeGatewayOpaqueId(GATEWAY_MESSAGE_PREFIX, envelope);
|
|
41
|
+
}
|
|
42
|
+
export function createGatewayOutboxMessageId(routeKeyOrToken, intentId) {
|
|
43
|
+
const envelope = {
|
|
44
|
+
kind: 'outbox-message',
|
|
45
|
+
routeToken: normalizeGatewayRouteToken(routeKeyOrToken),
|
|
46
|
+
sourceToken: createGatewaySourceToken('outbox', intentId),
|
|
47
|
+
version: 2,
|
|
48
|
+
};
|
|
49
|
+
return encodeGatewayOpaqueId(GATEWAY_MESSAGE_PREFIX, envelope);
|
|
50
|
+
}
|
|
51
|
+
export function readGatewayMessageRouteToken(messageId) {
|
|
52
|
+
return readGatewayMessageEnvelope(messageId).routeToken;
|
|
53
|
+
}
|
|
54
|
+
export function readGatewayMessageKind(messageId) {
|
|
55
|
+
return readGatewayMessageEnvelope(messageId).kind;
|
|
56
|
+
}
|
|
57
|
+
export function assertGatewayMessageId(messageId) {
|
|
58
|
+
readGatewayMessageEnvelope(messageId);
|
|
59
|
+
return messageId;
|
|
60
|
+
}
|
|
61
|
+
export function createGatewayAttachmentId(routeKeyOrToken, captureId, attachmentId) {
|
|
62
|
+
const envelope = {
|
|
63
|
+
kind: 'attachment',
|
|
64
|
+
routeToken: normalizeGatewayRouteToken(routeKeyOrToken),
|
|
65
|
+
sourceToken: createGatewaySourceToken('attachment', `${captureId}:${attachmentId}`),
|
|
66
|
+
version: 2,
|
|
67
|
+
};
|
|
68
|
+
return encodeGatewayOpaqueId(GATEWAY_ATTACHMENT_PREFIX, envelope);
|
|
69
|
+
}
|
|
70
|
+
export function readGatewayAttachmentId(attachmentId) {
|
|
71
|
+
const envelope = normalizeGatewayAttachmentEnvelope(decodeGatewayOpaqueId(attachmentId, GATEWAY_ATTACHMENT_PREFIX));
|
|
72
|
+
if (envelope.kind !== 'attachment') {
|
|
73
|
+
throw new Error('Gateway attachment id is invalid.');
|
|
74
|
+
}
|
|
75
|
+
return envelope;
|
|
76
|
+
}
|
|
77
|
+
export function assertGatewayAttachmentId(attachmentId) {
|
|
78
|
+
readGatewayAttachmentId(attachmentId);
|
|
79
|
+
return attachmentId;
|
|
80
|
+
}
|
|
81
|
+
function readGatewayConversationEnvelope(sessionKey) {
|
|
82
|
+
const envelope = normalizeGatewayOpaqueEnvelope(decodeGatewayOpaqueId(sessionKey, GATEWAY_CONVERSATION_PREFIX));
|
|
83
|
+
if (envelope.kind !== 'conversation') {
|
|
84
|
+
throw new Error('Gateway session key is invalid.');
|
|
85
|
+
}
|
|
86
|
+
return envelope;
|
|
87
|
+
}
|
|
88
|
+
function readGatewayMessageEnvelope(messageId) {
|
|
89
|
+
const envelope = normalizeGatewayOpaqueEnvelope(decodeGatewayOpaqueId(messageId, GATEWAY_MESSAGE_PREFIX));
|
|
90
|
+
if (envelope.kind !== 'capture-message' && envelope.kind !== 'outbox-message') {
|
|
91
|
+
throw new Error('Gateway message id is invalid.');
|
|
92
|
+
}
|
|
93
|
+
return envelope;
|
|
94
|
+
}
|
|
95
|
+
function encodeGatewayOpaqueId(prefix, envelope) {
|
|
96
|
+
return `${prefix}${Buffer.from(JSON.stringify(envelope), 'utf8').toString('base64url')}`;
|
|
97
|
+
}
|
|
98
|
+
function decodeGatewayOpaqueId(value, prefix) {
|
|
99
|
+
if (typeof value !== 'string' || !value.startsWith(prefix)) {
|
|
100
|
+
throw new Error('Gateway opaque id is invalid.');
|
|
101
|
+
}
|
|
102
|
+
const encoded = value.slice(prefix.length);
|
|
103
|
+
if (encoded.length === 0) {
|
|
104
|
+
throw new Error('Gateway opaque id is invalid.');
|
|
105
|
+
}
|
|
106
|
+
let parsed;
|
|
107
|
+
try {
|
|
108
|
+
parsed = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
throw new Error('Gateway opaque id is invalid.');
|
|
112
|
+
}
|
|
113
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
114
|
+
throw new Error('Gateway opaque id is invalid.');
|
|
115
|
+
}
|
|
116
|
+
const envelope = parsed;
|
|
117
|
+
if (envelope.version !== 2) {
|
|
118
|
+
throw new Error('Gateway opaque id version is unsupported.');
|
|
119
|
+
}
|
|
120
|
+
if (typeof envelope.kind !== 'string' || envelope.kind.length === 0) {
|
|
121
|
+
throw new Error('Gateway opaque id was missing the kind field.');
|
|
122
|
+
}
|
|
123
|
+
return envelope;
|
|
124
|
+
}
|
|
125
|
+
function normalizeGatewayOpaqueEnvelope(envelope) {
|
|
126
|
+
return {
|
|
127
|
+
...envelope,
|
|
128
|
+
routeToken: readGatewayRouteTokenField(envelope),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function normalizeGatewayAttachmentEnvelope(envelope) {
|
|
132
|
+
const normalized = normalizeGatewayOpaqueEnvelope(envelope);
|
|
133
|
+
if (typeof normalized.sourceToken !== 'string' || normalized.sourceToken.length === 0) {
|
|
134
|
+
throw new Error('Gateway attachment id was missing the attachment reference.');
|
|
135
|
+
}
|
|
136
|
+
return normalized;
|
|
137
|
+
}
|
|
138
|
+
function readGatewayRouteTokenField(envelope) {
|
|
139
|
+
if (typeof envelope.routeToken === 'string' && envelope.routeToken.length > 0) {
|
|
140
|
+
return envelope.routeToken;
|
|
141
|
+
}
|
|
142
|
+
throw new Error('Gateway opaque id was missing the route token.');
|
|
143
|
+
}
|
|
144
|
+
function normalizeGatewayRouteToken(routeKeyOrToken) {
|
|
145
|
+
if (typeof routeKeyOrToken !== 'string' || routeKeyOrToken.length === 0) {
|
|
146
|
+
throw new Error('Gateway route token input is invalid.');
|
|
147
|
+
}
|
|
148
|
+
return looksLikeGatewayRouteToken(routeKeyOrToken)
|
|
149
|
+
? routeKeyOrToken
|
|
150
|
+
: createGatewayRouteToken(routeKeyOrToken);
|
|
151
|
+
}
|
|
152
|
+
function looksLikeGatewayRouteToken(value) {
|
|
153
|
+
return !value.includes(':') && !value.includes('|');
|
|
154
|
+
}
|
|
155
|
+
function createGatewayRouteToken(routeKey) {
|
|
156
|
+
return createGatewayOpaqueToken('route', routeKey);
|
|
157
|
+
}
|
|
158
|
+
function createGatewaySourceToken(scope, value) {
|
|
159
|
+
return createGatewayOpaqueToken(scope, value);
|
|
160
|
+
}
|
|
161
|
+
function createGatewayOpaqueToken(scope, value) {
|
|
162
|
+
return createHash('sha256')
|
|
163
|
+
.update(scope)
|
|
164
|
+
.update('\u0000')
|
|
165
|
+
.update(value)
|
|
166
|
+
.digest('base64url');
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=opaque-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opaque-ids.js","sourceRoot":"","sources":["../src/opaque-ids.ts"],"names":[],"mappings":"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"}
|
package/dist/routes.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type GatewayConversationDirectness, type GatewayConversationRoute, type GatewayReplyRouteKind } from './contracts.js';
|
|
2
|
+
export interface GatewayConversationRouteInput {
|
|
3
|
+
channel?: string | null;
|
|
4
|
+
directness?: GatewayConversationDirectness | null;
|
|
5
|
+
identityId?: string | null;
|
|
6
|
+
participantId?: string | null;
|
|
7
|
+
reply?: {
|
|
8
|
+
kind?: GatewayReplyRouteKind | null;
|
|
9
|
+
target?: string | null;
|
|
10
|
+
} | null;
|
|
11
|
+
threadId?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface GatewayInboundCaptureRouteInput {
|
|
14
|
+
accountId?: string | null;
|
|
15
|
+
actor: {
|
|
16
|
+
id?: string | null;
|
|
17
|
+
};
|
|
18
|
+
source: string;
|
|
19
|
+
thread: {
|
|
20
|
+
id: string;
|
|
21
|
+
isDirect?: boolean | null;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
interface GatewayBindingLike {
|
|
25
|
+
actorId?: string | null;
|
|
26
|
+
channel?: string | null;
|
|
27
|
+
delivery?: {
|
|
28
|
+
kind?: GatewayReplyRouteKind | null;
|
|
29
|
+
target?: string | null;
|
|
30
|
+
} | null;
|
|
31
|
+
identityId?: string | null;
|
|
32
|
+
threadId?: string | null;
|
|
33
|
+
threadIsDirect?: boolean | null;
|
|
34
|
+
}
|
|
35
|
+
interface GatewayOutboxIntentLike {
|
|
36
|
+
actorId?: string | null;
|
|
37
|
+
bindingDelivery?: {
|
|
38
|
+
kind?: GatewayReplyRouteKind | null;
|
|
39
|
+
target?: string | null;
|
|
40
|
+
} | null;
|
|
41
|
+
channel?: string | null;
|
|
42
|
+
identityId?: string | null;
|
|
43
|
+
threadId?: string | null;
|
|
44
|
+
threadIsDirect?: boolean | null;
|
|
45
|
+
}
|
|
46
|
+
export declare function normalizeGatewayConversationRoute(input: GatewayConversationRouteInput | null | undefined): GatewayConversationRoute;
|
|
47
|
+
export declare function gatewayConversationRouteFromBinding(binding: GatewayBindingLike): GatewayConversationRoute;
|
|
48
|
+
export declare function gatewayConversationRouteFromOutboxIntent(intent: GatewayOutboxIntentLike): GatewayConversationRoute;
|
|
49
|
+
export declare function gatewayConversationRouteFromCapture(capture: GatewayInboundCaptureRouteInput): GatewayConversationRoute;
|
|
50
|
+
export declare function mergeGatewayConversationRoutes(base: GatewayConversationRoute | null | undefined, patch: GatewayConversationRouteInput | null | undefined): GatewayConversationRoute;
|
|
51
|
+
export declare function resolveGatewayConversationRouteKey(route: GatewayConversationRoute | null | undefined): string | null;
|
|
52
|
+
export declare function gatewayConversationRouteCanSend(route: GatewayConversationRoute | null | undefined): boolean;
|
|
53
|
+
export declare function gatewayChannelSupportsReplyToMessage(channel: string | null | undefined): boolean;
|
|
54
|
+
export declare function gatewayBindingDeliveryFromRoute(route: GatewayConversationRoute | null | undefined): {
|
|
55
|
+
kind: GatewayReplyRouteKind;
|
|
56
|
+
target: string;
|
|
57
|
+
} | null;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|