@tellescope/sdk 1.256.0 → 1.256.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 (59) hide show
  1. package/lib/cjs/sdk.d.ts +2 -2
  2. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts +6 -0
  3. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -0
  4. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js +163 -0
  5. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js.map +1 -0
  6. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -0
  7. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -0
  8. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js +224 -0
  9. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js.map +1 -0
  10. package/lib/cjs/tests/api_tests/embeddables_auth_token.test.d.ts +6 -0
  11. package/lib/cjs/tests/api_tests/embeddables_auth_token.test.d.ts.map +1 -0
  12. package/lib/cjs/tests/api_tests/embeddables_auth_token.test.js +354 -0
  13. package/lib/cjs/tests/api_tests/embeddables_auth_token.test.js.map +1 -0
  14. package/lib/cjs/tests/api_tests/start_ai_conversation.test.d.ts +6 -0
  15. package/lib/cjs/tests/api_tests/start_ai_conversation.test.d.ts.map +1 -0
  16. package/lib/cjs/tests/api_tests/start_ai_conversation.test.js +351 -0
  17. package/lib/cjs/tests/api_tests/start_ai_conversation.test.js.map +1 -0
  18. package/lib/cjs/tests/tests.d.ts.map +1 -1
  19. package/lib/cjs/tests/tests.js +217 -189
  20. package/lib/cjs/tests/tests.js.map +1 -1
  21. package/lib/cjs/tests/unit_tests/phone_validation.test.d.ts +3 -0
  22. package/lib/cjs/tests/unit_tests/phone_validation.test.d.ts.map +1 -0
  23. package/lib/cjs/tests/unit_tests/phone_validation.test.js +96 -0
  24. package/lib/cjs/tests/unit_tests/phone_validation.test.js.map +1 -0
  25. package/lib/esm/sdk.d.ts +2 -2
  26. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts +6 -0
  27. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -0
  28. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js +156 -0
  29. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js.map +1 -0
  30. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -0
  31. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -0
  32. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js +220 -0
  33. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js.map +1 -0
  34. package/lib/esm/tests/api_tests/embeddables_auth_token.test.d.ts +6 -0
  35. package/lib/esm/tests/api_tests/embeddables_auth_token.test.d.ts.map +1 -0
  36. package/lib/esm/tests/api_tests/embeddables_auth_token.test.js +347 -0
  37. package/lib/esm/tests/api_tests/embeddables_auth_token.test.js.map +1 -0
  38. package/lib/esm/tests/api_tests/start_ai_conversation.test.d.ts +6 -0
  39. package/lib/esm/tests/api_tests/start_ai_conversation.test.d.ts.map +1 -0
  40. package/lib/esm/tests/api_tests/start_ai_conversation.test.js +347 -0
  41. package/lib/esm/tests/api_tests/start_ai_conversation.test.js.map +1 -0
  42. package/lib/esm/tests/tests.d.ts.map +1 -1
  43. package/lib/esm/tests/tests.js +217 -189
  44. package/lib/esm/tests/tests.js.map +1 -1
  45. package/lib/esm/tests/unit_tests/phone_validation.test.d.ts +3 -0
  46. package/lib/esm/tests/unit_tests/phone_validation.test.d.ts.map +1 -0
  47. package/lib/esm/tests/unit_tests/phone_validation.test.js +93 -0
  48. package/lib/esm/tests/unit_tests/phone_validation.test.js.map +1 -0
  49. package/lib/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +10 -10
  51. package/src/tests/api_tests/appointment_link_expiration.test.ts +92 -0
  52. package/src/tests/api_tests/beluga_trigger_refill.test.ts +152 -0
  53. package/src/tests/api_tests/embeddables_auth_token.test.ts +417 -0
  54. package/src/tests/api_tests/security/F-0015-webhook-outbound-ssrf.test.ts +292 -0
  55. package/src/tests/api_tests/security/F-0025-proxy-image-unauth-ssrf.test.ts +179 -0
  56. package/src/tests/api_tests/start_ai_conversation.test.ts +256 -0
  57. package/src/tests/tests.ts +14 -0
  58. package/src/tests/unit_tests/phone_validation.test.ts +108 -0
  59. package/test_generated.pdf +0 -0
@@ -0,0 +1,347 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
+ if (ar || !(i in from)) {
51
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
+ ar[i] = from[i];
53
+ }
54
+ }
55
+ return to.concat(ar || Array.prototype.slice.call(from));
56
+ };
57
+ require('source-map-support').install();
58
+ import { Session } from "../../sdk";
59
+ import { log_header, wait, async_test, assert } from "@tellescope/testing";
60
+ import { setup_tests } from "../setup";
61
+ var host = process.env.API_URL || "http://localhost:8080";
62
+ var TEST_MARKER = '__TELLESCOPE_TEST_INCOMING_SMS_AUTOMATION__';
63
+ var TEST_PHONE = '+15555555555'; // send_sms short-circuits real sends for this number
64
+ // SMS AI conversations (startAIConversation journey action).
65
+ // Runtime flows (start/supersede/takeover/inbound absorption) require the organization to have an
66
+ // SMS number configured — when it doesn't (typical dev org), those sections assert the
67
+ // configuration error path and are otherwise skipped; config validation runs everywhere.
68
+ export var start_ai_conversation_tests = function (_a) {
69
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
70
+ return __awaiter(void 0, void 0, void 0, function () {
71
+ var users, senderId, journey, createdEnduserIds, validInfo_1, step_1, outcomeChild, processFor, phonelessEnduser, noPhoneResult, session, resolvedOrgId_1, organization, orgHasNumber, enduser_1, result, enduser, startResult, refreshed, entry, conversation, initialMessages, outbound, secondStart, activeEntries_1, stopped, takeoverStart, _b, _c, takenOver, baselineEnduser, baselineRefreshed, baselineMessages, _i, createdEnduserIds_1, id;
72
+ var _d;
73
+ var _e, _f, _g, _h, _j, _k, _l, _m, _o;
74
+ return __generator(this, function (_p) {
75
+ switch (_p.label) {
76
+ case 0:
77
+ log_header("Start AI Conversation (SMS Agent) Tests");
78
+ return [4 /*yield*/, sdk.api.users.getSome({})];
79
+ case 1:
80
+ users = _p.sent();
81
+ senderId = users[0].id;
82
+ return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'SMS Agent Test Journey' })];
83
+ case 2:
84
+ journey = _p.sent();
85
+ createdEnduserIds = [];
86
+ _p.label = 3;
87
+ case 3:
88
+ _p.trys.push([3, , 39, 45]);
89
+ validInfo_1 = {
90
+ channel: 'SMS',
91
+ senderId: senderId,
92
+ initialMessage: 'Hello {{enduser.fname}}! Quick question for you.',
93
+ prompt: 'You are texting on behalf of Test Clinic. Answer briefly.',
94
+ outcomes: [{ value: 'resolved', description: 'The question was answered' }],
95
+ };
96
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
97
+ journeyId: journey.id,
98
+ events: [{ type: 'onJourneyStart', info: {} }],
99
+ action: { type: 'startAIConversation', info: validInfo_1 },
100
+ })];
101
+ case 4:
102
+ step_1 = _p.sent();
103
+ assert(step_1.action.type === 'startAIConversation' && step_1.action.info.initialMessage === validInfo_1.initialMessage, 'startAIConversation step round-trip failed', 'startAIConversation step round-trips');
104
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
105
+ journeyId: journey.id,
106
+ events: [{ type: 'onAIConversationOutcome', info: { automationStepId: step_1.id, outcome: 'resolved' } }],
107
+ action: { type: 'addEnduserTags', info: { tags: ['sms-agent-resolved'] } },
108
+ })];
109
+ case 5:
110
+ outcomeChild = _p.sent();
111
+ assert(outcomeChild.events[0].type === 'onAIConversationOutcome', 'onAIConversationOutcome event round-trip failed', 'onAIConversationOutcome event round-trips');
112
+ return [4 /*yield*/, async_test('startAIConversation without prompt is rejected', function () { return sdk.api.automation_steps.createOne({
113
+ journeyId: journey.id,
114
+ events: [{ type: 'onJourneyStart', info: {} }],
115
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { prompt: undefined }) },
116
+ }); }, { shouldError: true, onError: function () { return true; } })];
117
+ case 6:
118
+ _p.sent();
119
+ return [4 /*yield*/, async_test('startAIConversation without senderId is rejected', function () { return sdk.api.automation_steps.createOne({
120
+ journeyId: journey.id,
121
+ events: [{ type: 'onJourneyStart', info: {} }],
122
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { senderId: undefined }) },
123
+ }); }, { shouldError: true, onError: function () { return true; } })];
124
+ case 7:
125
+ _p.sent();
126
+ return [4 /*yield*/, async_test('startAIConversation without initialMessage is rejected', function () { return sdk.api.automation_steps.createOne({
127
+ journeyId: journey.id,
128
+ events: [{ type: 'onJourneyStart', info: {} }],
129
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { initialMessage: undefined }) },
130
+ }); }, { shouldError: true, onError: function () { return true; } })];
131
+ case 8:
132
+ _p.sent();
133
+ return [4 /*yield*/, async_test('startAIConversation with invalid tool is rejected', function () { return sdk.api.automation_steps.createOne({
134
+ journeyId: journey.id,
135
+ events: [{ type: 'onJourneyStart', info: {} }],
136
+ action: { type: 'startAIConversation', info: __assign(__assign({}, validInfo_1), { tools: [{ type: 'Submit Form', info: { formId: 'not-an-id' } }] }) },
137
+ }); }, { shouldError: true, onError: function () { return true; } })
138
+ /*************** Runtime: the process endpoint ***************/
139
+ ];
140
+ case 9:
141
+ _p.sent();
142
+ processFor = function (enduserId) { return __awaiter(void 0, void 0, void 0, function () {
143
+ var automatedAction;
144
+ return __generator(this, function (_a) {
145
+ switch (_a.label) {
146
+ case 0: return [4 /*yield*/, sdk.api.automated_actions.createOne({
147
+ enduserId: enduserId,
148
+ journeyId: journey.id,
149
+ automationStepId: step_1.id,
150
+ event: { type: 'onJourneyStart', info: {} },
151
+ action: { type: 'startAIConversation', info: validInfo_1 },
152
+ status: 'active',
153
+ processAfter: Date.now(),
154
+ })];
155
+ case 1:
156
+ automatedAction = _a.sent();
157
+ return [2 /*return*/, sdk.api.automated_actions.process({ automatedActionId: automatedAction.id })];
158
+ }
159
+ });
160
+ }); };
161
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-nophone' })];
162
+ case 10:
163
+ phonelessEnduser = _p.sent();
164
+ createdEnduserIds.push(phonelessEnduser.id);
165
+ return [4 /*yield*/, processFor(phonelessEnduser.id)];
166
+ case 11:
167
+ noPhoneResult = _p.sent();
168
+ assert(!noPhoneResult.success && !!noPhoneResult.error, 'phoneless start should fail with an error', 'start action errors for a contact without a phone');
169
+ session = sdk.userInfo;
170
+ resolvedOrgId_1 = __spreadArray([], ((_e = session.organizationIds) !== null && _e !== void 0 ? _e : []), true).pop() || session.businessId;
171
+ return [4 /*yield*/, sdk.api.organizations.getSome({})];
172
+ case 12:
173
+ organization = (_p.sent()).find(function (o) { return o.id === resolvedOrgId_1; });
174
+ orgHasNumber = !!(organization === null || organization === void 0 ? void 0 : organization.twilioNumber) || !!((_f = organization === null || organization === void 0 ? void 0 : organization.twilioNumbers) === null || _f === void 0 ? void 0 : _f.length);
175
+ if (!!orgHasNumber) return [3 /*break*/, 15];
176
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-nonumber', phone: TEST_PHONE })];
177
+ case 13:
178
+ enduser_1 = _p.sent();
179
+ createdEnduserIds.push(enduser_1.id);
180
+ return [4 /*yield*/, processFor(enduser_1.id)];
181
+ case 14:
182
+ result = _p.sent();
183
+ assert(!result.success && /no sms number configured|ai is not enabled/i.test(result.error || ''), "expected a configuration error, got: ".concat(result.error), 'start action reports a configuration error (org has no SMS number — runtime flows skipped)');
184
+ return [2 /*return*/];
185
+ case 15: return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-runtime', phone: TEST_PHONE })];
186
+ case 16:
187
+ enduser = _p.sent();
188
+ createdEnduserIds.push(enduser.id);
189
+ return [4 /*yield*/, processFor(enduser.id)];
190
+ case 17:
191
+ startResult = _p.sent();
192
+ assert(startResult.success === true, "start failed: ".concat(startResult.error), 'start action succeeds');
193
+ return [4 /*yield*/, wait(undefined, 1000)];
194
+ case 18:
195
+ _p.sent();
196
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
197
+ case 19:
198
+ refreshed = _p.sent();
199
+ entry = ((_g = refreshed.aiConversations) !== null && _g !== void 0 ? _g : []).find(function (c) { return c.active; });
200
+ assert(!!entry, 'no active aiConversations entry on enduser', 'enduser has an active conversation entry');
201
+ assert((entry === null || entry === void 0 ? void 0 : entry.destination) === TEST_PHONE, 'wrong destination on entry', 'conversation entry pairs the contact number');
202
+ return [4 /*yield*/, sdk.api.ai_conversations.getOne(entry.aiConversationId)];
203
+ case 20:
204
+ conversation = _p.sent();
205
+ assert(conversation.type === 'sms_agent', 'wrong ai_conversations type', 'ai_conversations doc has type sms_agent');
206
+ return [4 /*yield*/, sdk.api.sms_messages.getSome({ filter: { enduserId: enduser.id } })];
207
+ case 21:
208
+ initialMessages = _p.sent();
209
+ outbound = initialMessages.find(function (m) { return !m.inbound && m.automationStepId === step_1.id; });
210
+ // exact equality on a merge-field-containing opener guards two regressions: templating must
211
+ // happen in send_sms (raw text on the record), and the agent-reply {{ escaping must NOT be
212
+ // applied to the org-authored initial message (preserveMergeFields)
213
+ assert(!!outbound && outbound.message === validInfo_1.initialMessage, 'initial SMS record missing or not raw text', 'initial SMS logged with raw (untemplated) text + automationStepId');
214
+ return [4 /*yield*/, processFor(enduser.id)];
215
+ case 22:
216
+ secondStart = _p.sent();
217
+ assert(secondStart.success === true, "second start failed: ".concat(secondStart.error), 'duplicate start succeeds (replace)');
218
+ return [4 /*yield*/, wait(undefined, 1000)];
219
+ case 23:
220
+ _p.sent();
221
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
222
+ case 24:
223
+ refreshed = _p.sent();
224
+ activeEntries_1 = ((_h = refreshed.aiConversations) !== null && _h !== void 0 ? _h : []).filter(function (c) { return c.active; });
225
+ assert(activeEntries_1.length === 1, 'expected exactly one active conversation', 'supersede leaves exactly one active conversation');
226
+ assert(activeEntries_1[0].aiConversationId !== entry.aiConversationId, 'active conversation was not replaced', 'supersede started a fresh conversation');
227
+ // inbound absorption via the testing hook: STOP ends the conversation
228
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
229
+ enduserId: enduser.id,
230
+ message: "stop".concat(TEST_MARKER),
231
+ inbound: true,
232
+ logOnly: true,
233
+ phoneNumber: activeEntries_1[0].source,
234
+ enduserPhoneNumber: TEST_PHONE,
235
+ })];
236
+ case 25:
237
+ // inbound absorption via the testing hook: STOP ends the conversation
238
+ _p.sent();
239
+ return [4 /*yield*/, wait(undefined, 2000)];
240
+ case 26:
241
+ _p.sent();
242
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
243
+ case 27:
244
+ refreshed = _p.sent();
245
+ stopped = ((_j = refreshed.aiConversations) !== null && _j !== void 0 ? _j : []).find(function (c) { return c.aiConversationId === activeEntries_1[0].aiConversationId; });
246
+ assert((stopped === null || stopped === void 0 ? void 0 : stopped.active) === false && (stopped === null || stopped === void 0 ? void 0 : stopped.endedReason) === 'unsubscribed', "STOP did not end the conversation (".concat(JSON.stringify(stopped), ")"), 'STOP reply ends the conversation');
247
+ return [4 /*yield*/, processFor(enduser.id)];
248
+ case 28:
249
+ takeoverStart = _p.sent();
250
+ assert(takeoverStart.success === true, "takeover-start failed: ".concat(takeoverStart.error), 'start (for takeover test) succeeds');
251
+ return [4 /*yield*/, wait(undefined, 1000)];
252
+ case 29:
253
+ _p.sent();
254
+ _c = (_b = sdk.api.sms_messages).createOne;
255
+ _d = {
256
+ enduserId: enduser.id,
257
+ message: 'Hi, this is a real person taking over.',
258
+ inbound: false
259
+ };
260
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
261
+ case 30: return [4 /*yield*/, _c.apply(_b, [(_d.phoneNumber = (_l = (_k = (_p.sent()).aiConversations) === null || _k === void 0 ? void 0 : _k.find(function (c) { return c.active; })) === null || _l === void 0 ? void 0 : _l.source,
262
+ _d.enduserPhoneNumber = TEST_PHONE,
263
+ _d)])];
264
+ case 31:
265
+ _p.sent();
266
+ return [4 /*yield*/, wait(undefined, 2000)];
267
+ case 32:
268
+ _p.sent();
269
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
270
+ case 33:
271
+ refreshed = _p.sent();
272
+ takenOver = ((_m = refreshed.aiConversations) !== null && _m !== void 0 ? _m : []).find(function (c) { return c.endedReason === 'staff-takeover'; });
273
+ assert(!!takenOver, 'no staff-takeover ended entry found', 'manual staff SMS ends the conversation (takeover)');
274
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'sms-agent-baseline', phone: '+15555555554' })];
275
+ case 34:
276
+ baselineEnduser = _p.sent();
277
+ createdEnduserIds.push(baselineEnduser.id);
278
+ return [4 /*yield*/, sdk.api.sms_messages.createOne({
279
+ enduserId: baselineEnduser.id,
280
+ message: "hello there".concat(TEST_MARKER),
281
+ inbound: true,
282
+ logOnly: true,
283
+ phoneNumber: activeEntries_1[0].source,
284
+ enduserPhoneNumber: '+15555555554',
285
+ })];
286
+ case 35:
287
+ _p.sent();
288
+ return [4 /*yield*/, wait(undefined, 2000)];
289
+ case 36:
290
+ _p.sent();
291
+ return [4 /*yield*/, sdk.api.endusers.getOne(baselineEnduser.id)];
292
+ case 37:
293
+ baselineRefreshed = _p.sent();
294
+ return [4 /*yield*/, sdk.api.sms_messages.getSome({ filter: { enduserId: baselineEnduser.id } })];
295
+ case 38:
296
+ baselineMessages = _p.sent();
297
+ assert(!((_o = baselineRefreshed.aiConversations) !== null && _o !== void 0 ? _o : []).length && !baselineMessages.find(function (m) { return !m.inbound; }), 'AI artifacts appeared for an enduser with no conversation', 'no-conversation inbound produces zero AI artifacts (regression baseline)');
298
+ return [3 /*break*/, 45];
299
+ case 39: return [4 /*yield*/, sdk.api.journeys.deleteOne(journey.id).catch(function () { })];
300
+ case 40:
301
+ _p.sent();
302
+ _i = 0, createdEnduserIds_1 = createdEnduserIds;
303
+ _p.label = 41;
304
+ case 41:
305
+ if (!(_i < createdEnduserIds_1.length)) return [3 /*break*/, 44];
306
+ id = createdEnduserIds_1[_i];
307
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(function () { })];
308
+ case 42:
309
+ _p.sent();
310
+ _p.label = 43;
311
+ case 43:
312
+ _i++;
313
+ return [3 /*break*/, 41];
314
+ case 44: return [7 /*endfinally*/];
315
+ case 45: return [2 /*return*/];
316
+ }
317
+ });
318
+ });
319
+ };
320
+ // Allow running this test file independently
321
+ if (require.main === module) {
322
+ var sdk_1 = new Session({ host: host });
323
+ var sdkNonAdmin_1 = new Session({ host: host });
324
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
325
+ return __generator(this, function (_a) {
326
+ switch (_a.label) {
327
+ case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
328
+ case 1:
329
+ _a.sent();
330
+ return [4 /*yield*/, start_ai_conversation_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
331
+ case 2:
332
+ _a.sent();
333
+ return [2 /*return*/];
334
+ }
335
+ });
336
+ }); };
337
+ runTests()
338
+ .then(function () {
339
+ console.log("✅ Start AI Conversation test suite completed successfully");
340
+ process.exit(0);
341
+ })
342
+ .catch(function (error) {
343
+ console.error("❌ Start AI Conversation test suite failed:", error);
344
+ process.exit(1);
345
+ });
346
+ }
347
+ //# sourceMappingURL=start_ai_conversation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_ai_conversation.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/start_ai_conversation.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAA;AAE3D,IAAM,WAAW,GAAG,6CAA6C,CAAA;AACjE,IAAM,UAAU,GAAG,cAAc,CAAA,CAAC,qDAAqD;AAEvF,6DAA6D;AAC7D,kGAAkG;AAClG,uFAAuF;AACvF,yFAAyF;AACzF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAO,EAA6D;QAA3D,GAAG,SAAA,EAAE,WAAW,iBAAA;;;;;;;;oBAClE,UAAU,CAAC,yCAAyC,CAAC,CAAA;oBAEvC,qBAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAAvC,KAAK,GAAG,SAA+B;oBACvC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBAEZ,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,EAAA;;oBAA/E,OAAO,GAAG,SAAqE;oBAC/E,iBAAiB,GAAa,EAAE,CAAA;;;;oBAI9B,cAAY;wBAChB,OAAO,EAAE,KAAc;wBACvB,QAAQ,UAAA;wBACR,cAAc,EAAE,kDAAkD;wBAClE,MAAM,EAAE,2DAA2D;wBACnE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;qBAC5E,CAAA;oBAEY,qBAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACpD,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAS,EAAE;yBACzD,CAAC,EAAA;;oBAJI,SAAO,SAIX;oBACF,MAAM,CACJ,MAAI,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,WAAS,CAAC,cAAc,EAC1G,4CAA4C,EAC5C,sCAAsC,CACvC,CAAA;oBAEoB,qBAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BAC5D,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,MAAI,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;4BACvG,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE;yBAC3E,CAAC,EAAA;;oBAJI,YAAY,GAAG,SAInB;oBACF,MAAM,CACJ,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,yBAAyB,EACzD,iDAAiD,EACjD,2CAA2C,CAC5C,CAAA;oBAED,qBAAM,UAAU,CAAC,gDAAgD,EAC/D,cAAM,OAAA,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACvC,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,sBAAK,WAAS,KAAE,MAAM,EAAE,SAAS,GAAS,EAAE;yBAC1F,CAAC,EAJI,CAIJ,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,CAC3C,EAAA;;oBAPD,SAOC,CAAA;oBACD,qBAAM,UAAU,CAAC,kDAAkD,EACjE,cAAM,OAAA,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACvC,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,sBAAK,WAAS,KAAE,QAAQ,EAAE,SAAS,GAAS,EAAE;yBAC5F,CAAC,EAJI,CAIJ,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,CAC3C,EAAA;;oBAPD,SAOC,CAAA;oBACD,qBAAM,UAAU,CAAC,wDAAwD,EACvE,cAAM,OAAA,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACvC,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,sBAAK,WAAS,KAAE,cAAc,EAAE,SAAS,GAAS,EAAE;yBAClG,CAAC,EAJI,CAIJ,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,CAC3C,EAAA;;oBAPD,SAOC,CAAA;oBACD,qBAAM,UAAU,CAAC,mDAAmD,EAClE,cAAM,OAAA,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;4BACvC,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;4BAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,sBAAK,WAAS,KAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,GAAS,EAAE;yBACxI,CAAC,EAJI,CAIJ,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,CAC3C;wBAED,+DAA+D;sBAF9D;;oBAPD,SAOC,CAAA;oBAGK,UAAU,GAAG,UAAO,SAAiB;;;;wCACjB,qBAAM,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC;wCAChE,SAAS,WAAA;wCACT,SAAS,EAAE,OAAO,CAAC,EAAE;wCACrB,gBAAgB,EAAE,MAAI,CAAC,EAAE;wCACzB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE;wCAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAS,EAAE;wCACxD,MAAM,EAAE,QAAQ;wCAChB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;qCACzB,CAAC,EAAA;;oCARI,eAAe,GAAG,SAQtB;oCACF,sBAAO,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,EAAA;;;yBACpF,CAAA;oBAGwB,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,EAAA;;oBAAnF,gBAAgB,GAAG,SAAgE;oBACzF,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;oBACrB,qBAAM,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAA;;oBAArD,aAAa,GAAG,SAAqC;oBAC3D,MAAM,CACJ,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAC/C,2CAA2C,EAC3C,mDAAmD,CACpD,CAAA;oBAIK,OAAO,GAAG,GAAG,CAAC,QAA+D,CAAA;oBAC7E,kBAAgB,kBAAI,CAAC,MAAA,OAAO,CAAC,eAAe,mCAAI,EAAE,CAAC,QAAE,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,CAAA;oBAChE,qBAAM,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAAvD,YAAY,GAAG,CAAC,SAAuC,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,eAAa,EAAtB,CAAsB,CAAC;oBAC1F,YAAY,GAAG,CAAC,CAAC,CAAC,YAAoB,aAApB,YAAY,uBAAZ,YAAY,CAAU,YAAY,CAAA,IAAI,CAAC,CAAC,CAAC,MAAC,YAAoB,aAApB,YAAY,uBAAZ,YAAY,CAAU,aAAa,0CAAE,MAAM,CAAC,CAAA;yBAE1G,CAAC,YAAY,EAAb,yBAAa;oBAIC,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAA;;oBAA9F,YAAU,SAAoF;oBACpG,iBAAiB,CAAC,IAAI,CAAC,SAAO,CAAC,EAAE,CAAC,CAAA;oBACnB,qBAAM,UAAU,CAAC,SAAO,CAAC,EAAE,CAAC,EAAA;;oBAArC,MAAM,GAAG,SAA4B;oBAC3C,MAAM,CACJ,CAAC,MAAM,CAAC,OAAO,IAAI,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EACzF,+CAAwC,MAAM,CAAC,KAAK,CAAE,EACtD,4FAA4F,CAC7F,CAAA;oBACD,sBAAM;yBAIQ,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAA;;oBAA7F,OAAO,GAAG,SAAmF;oBACnG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;oBAEd,qBAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAA1C,WAAW,GAAG,SAA4B;oBAChD,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,wBAAiB,WAAW,CAAC,KAAK,CAAE,EAAE,uBAAuB,CAAC,CAAA;oBACnG,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBAEX,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAArD,SAAS,GAAG,SAAyC;oBACnD,KAAK,GAAG,CAAC,MAAA,SAAS,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAA;oBACnE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,4CAA4C,EAAE,0CAA0C,CAAC,CAAA;oBACzG,MAAM,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,MAAK,UAAU,EAAE,4BAA4B,EAAE,6CAA6C,CAAC,CAAA;oBAEjG,qBAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAM,CAAC,gBAAgB,CAAC,EAAA;;oBAA7E,YAAY,GAAG,SAA8D;oBACnF,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE,6BAA6B,EAAE,yCAAyC,CAAC,CAAA;oBAE3F,qBAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAA;;oBAA3F,eAAe,GAAG,SAAyE;oBAC3F,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,KAAK,MAAI,CAAC,EAAE,EAA5C,CAA4C,CAAC,CAAA;oBACxF,4FAA4F;oBAC5F,2FAA2F;oBAC3F,oEAAoE;oBACpE,MAAM,CACJ,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,WAAS,CAAC,cAAc,EAC3D,4CAA4C,EAC5C,mEAAmE,CACpE,CAAA;oBAGmB,qBAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAA1C,WAAW,GAAG,SAA4B;oBAChD,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,+BAAwB,WAAW,CAAC,KAAK,CAAE,EAAE,oCAAoC,CAAC,CAAA;oBACvH,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBACf,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAArD,SAAS,GAAG,SAAyC,CAAA;oBAC/C,kBAAgB,CAAC,MAAA,SAAS,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAA;oBAC7E,MAAM,CAAC,eAAa,CAAC,MAAM,KAAK,CAAC,EAAE,0CAA0C,EAAE,kDAAkD,CAAC,CAAA;oBAClI,MAAM,CACJ,eAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,KAAM,CAAC,gBAAgB,EAC7D,sCAAsC,EACtC,wCAAwC,CACzC,CAAA;oBAED,sEAAsE;oBACtE,qBAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;4BACnC,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,OAAO,EAAE,cAAO,WAAW,CAAE;4BAC7B,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,eAAa,CAAC,CAAC,CAAC,CAAC,MAAM;4BACpC,kBAAkB,EAAE,UAAU;yBACxB,CAAC,EAAA;;oBART,sEAAsE;oBACtE,SAOS,CAAA;oBACT,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBACf,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAArD,SAAS,GAAG,SAAyC,CAAA;oBAC/C,OAAO,GAAG,CAAC,MAAA,SAAS,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,KAAK,eAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAxD,CAAwD,CAAC,CAAA;oBACrH,MAAM,CACJ,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,MAAK,KAAK,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,MAAK,cAAc,EACpE,6CAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAG,EAChE,kCAAkC,CACnC,CAAA;oBAGqB,qBAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAA5C,aAAa,GAAG,SAA4B;oBAClD,MAAM,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,iCAA0B,aAAa,CAAC,KAAK,CAAE,EAAE,oCAAoC,CAAC,CAAA;oBAC7H,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBACrB,KAAA,CAAA,KAAA,GAAG,CAAC,GAAG,CAAC,YAAY,CAAA,CAAC,SAAS,CAAA;;wBAClC,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,OAAO,EAAE,wCAAwC;wBACjD,OAAO,EAAE,KAAK;;oBACA,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;yBAJzD,qBAAM,cAA+B,CAInC,cAAW,GAAE,MAAA,MAAA,CAAC,SAAyC,CAAC,CAAC,eAAe,0CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,0CAAE,MAAM;4BACrG,qBAAkB,GAAE,UAAU;8BACxB,CAAA,EAAC,EAAA;;oBANT,SAMS,CAAA;oBACT,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBACf,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;oBAArD,SAAS,GAAG,SAAyC,CAAA;oBAC/C,SAAS,GAAG,CAAC,MAAA,SAAS,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,KAAK,gBAAgB,EAAlC,CAAkC,CAAC,CAAA;oBACjG,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,qCAAqC,EAAE,mDAAmD,CAAC,CAAA;oBAGvF,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAA;;oBAA1G,eAAe,GAAG,SAAwF;oBAChH,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;oBAC1C,qBAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;4BACnC,SAAS,EAAE,eAAe,CAAC,EAAE;4BAC7B,OAAO,EAAE,qBAAc,WAAW,CAAE;4BACpC,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,eAAa,CAAC,CAAC,CAAC,CAAC,MAAM;4BACpC,kBAAkB,EAAE,cAAc;yBAC5B,CAAC,EAAA;;oBAPT,SAOS,CAAA;oBACT,qBAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAA3B,SAA2B,CAAA;oBACD,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,EAAA;;oBAArE,iBAAiB,GAAG,SAAiD;oBAClD,qBAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAA;;oBAApG,gBAAgB,GAAG,SAAiF;oBAC1G,MAAM,CACJ,CAAC,CAAC,MAAA,iBAAiB,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,OAAO,EAAV,CAAU,CAAC,EAC5F,2DAA2D,EAC3D,0EAA0E,CAC3E,CAAA;;yBAED,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,EAAA;;oBAA5D,SAA4D,CAAA;0BAC1B,EAAjB,uCAAiB;;;yBAAjB,CAAA,+BAAiB,CAAA;oBAAvB,EAAE;oBACX,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,EAAA;;oBAApD,SAAoD,CAAA;;;oBADrC,IAAiB,CAAA;;;;;;;CAIrC,CAAA;AAED,6CAA6C;AAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,IAAM,KAAG,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAA;IACjC,IAAM,aAAW,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAA;IAEzC,IAAM,QAAQ,GAAG;;;wBACf,qBAAM,WAAW,CAAC,KAAG,EAAE,aAAW,CAAC,EAAA;;oBAAnC,SAAmC,CAAA;oBACnC,qBAAM,2BAA2B,CAAC,EAAE,GAAG,OAAA,EAAE,WAAW,eAAA,EAAE,CAAC,EAAA;;oBAAvD,SAAuD,CAAA;;;;SACxD,CAAA;IAED,QAAQ,EAAE;SACP,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC;SACD,KAAK,CAAC,UAAC,KAAK;QACX,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAA;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AAu1EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAqlDD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA+b1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA81EA,eAAO,MAAM,kCAAkC,qBAgJ9C,CAAA;AAED,eAAO,MAAM,mCAAmC,qBA2K/C,CAAA;AAGD,eAAO,MAAM,oBAAoB,qBAoHhC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBAsF3C,CAAA;AAID,eAAO,MAAM,0BAA0B,qBAqCtC,CAAA;AAu1FD,eAAO,MAAM,cAAc,qBAqC1B,CAAA;AAotBD,eAAO,MAAM,0BAA0B,qBAmFtC,CAAA;AAqED,eAAO,MAAM,eAAe,qBAmD3B,CAAA;AAED,eAAO,MAAM,oBAAoB,6BAsBhC,CAAA;AAED,eAAO,MAAM,oCAAoC,qBA4pBhD,CAAA;AAED,eAAO,MAAM,mCAAmC,qBAkE/C,CAAA;AAqlDD,eAAO,MAAM,yBAAyB,qBA0DrC,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAmK9B,CAAA;AAED,eAAO,MAAM,sBAAsB,qBA0BlC,CAAA;AAGD,eAAO,MAAM,mBAAmB,qBAmC/B,CAAA;AAED,eAAO,MAAM,gCAAgC,mCA8C5C,CAAA;AAED,eAAO,MAAM,cAAc,qBA+b1B,CAAA;AAGD,eAAO,MAAM,oBAAoB,uBAuBhC,CAAA;AA4wBD,eAAO,MAAM,4BAA4B,qBAoExC,CAAA;AAED,eAAO,MAAM,+BAA+B,qBA4U3C,CAAA;AAED,eAAO,MAAM,gDAAgD,qBAwC5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}