@tellescope/sdk 1.256.11 → 1.256.13

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 (46) hide show
  1. package/lib/cjs/sdk.d.ts +1 -0
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/sdk.js +1 -0
  4. package/lib/cjs/sdk.js.map +1 -1
  5. package/lib/cjs/tests/api_tests/active_patient_count.test.d.ts +15 -0
  6. package/lib/cjs/tests/api_tests/active_patient_count.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/active_patient_count.test.js +594 -0
  8. package/lib/cjs/tests/api_tests/active_patient_count.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.d.ts +6 -0
  10. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -0
  11. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js +192 -0
  12. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js.map +1 -0
  13. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +5 -0
  14. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  15. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +95 -31
  16. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  17. package/lib/cjs/tests/tests.d.ts.map +1 -1
  18. package/lib/cjs/tests/tests.js +156 -148
  19. package/lib/cjs/tests/tests.js.map +1 -1
  20. package/lib/esm/sdk.d.ts +1 -0
  21. package/lib/esm/sdk.d.ts.map +1 -1
  22. package/lib/esm/sdk.js +1 -0
  23. package/lib/esm/sdk.js.map +1 -1
  24. package/lib/esm/tests/api_tests/active_patient_count.test.d.ts +15 -0
  25. package/lib/esm/tests/api_tests/active_patient_count.test.d.ts.map +1 -0
  26. package/lib/esm/tests/api_tests/active_patient_count.test.js +590 -0
  27. package/lib/esm/tests/api_tests/active_patient_count.test.js.map +1 -0
  28. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.d.ts +6 -0
  29. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -0
  30. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js +188 -0
  31. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js.map +1 -0
  32. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +5 -0
  33. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  34. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +95 -31
  35. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  36. package/lib/esm/tests/tests.d.ts.map +1 -1
  37. package/lib/esm/tests/tests.js +156 -148
  38. package/lib/esm/tests/tests.js.map +1 -1
  39. package/lib/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +10 -10
  41. package/src/sdk.ts +4 -0
  42. package/src/tests/api_tests/active_patient_count.test.ts +435 -0
  43. package/src/tests/api_tests/out_of_office_endpoint.test.ts +162 -0
  44. package/src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts +56 -0
  45. package/src/tests/tests.ts +4 -0
  46. package/test_generated.pdf +0 -0
@@ -0,0 +1,6 @@
1
+ import { Session } from "../../sdk";
2
+ export declare const out_of_office_endpoint_tests: ({ sdk, sdkNonAdmin }: {
3
+ sdk: Session;
4
+ sdkNonAdmin: Session;
5
+ }) => Promise<void>;
6
+ //# sourceMappingURL=out_of_office_endpoint.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"out_of_office_endpoint.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/out_of_office_endpoint.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,eAAO,MAAM,4BAA4B;SAAwC,OAAO;iBAAe,OAAO;mBAqH7G,CAAA"}
@@ -0,0 +1,188 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ require('source-map-support').install();
38
+ import { Session } from "../../sdk";
39
+ import { assert, log_header, } from "@tellescope/testing";
40
+ import { setup_tests } from "../setup";
41
+ var host = process.env.API_URL || 'http://localhost:8080';
42
+ var MS_PER_MINUTE = 60 * 1000;
43
+ var MS_PER_HOUR = 60 * MS_PER_MINUTE;
44
+ // Covers the calendar_events.out_of_office endpoint, whose whole reason to exist is that it reads
45
+ // ACROSS users: calendar_events is row-filtered on attendees.id and a non-admin defaults to
46
+ // read: 'Assigned', so the ordinary read path returns only the caller's own blocks. The endpoint
47
+ // therefore queries organization-wide on purpose, and returns no event content to make that safe.
48
+ //
49
+ // The cross-user assertion below is the one that matters: swapping the handler's
50
+ // buildOrganizationWideQueries back to the request-scoped DB would silently break peer visibility in
51
+ // Team Chat without breaking a build or any other test.
52
+ export var out_of_office_endpoint_tests = function (_a) {
53
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
54
+ return __awaiter(void 0, void 0, void 0, function () {
55
+ var adminId, nonAdminId, now, active, ended, cancelled, normal, nonAdminOwn, outOfOffice, forAdmin, asAdmin, scoped, foreign;
56
+ var _b, _c, _d;
57
+ return __generator(this, function (_e) {
58
+ switch (_e.label) {
59
+ case 0:
60
+ log_header("Out of Office Endpoint");
61
+ adminId = sdk.userInfo.id;
62
+ nonAdminId = sdkNonAdmin.userInfo.id;
63
+ now = Date.now();
64
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
65
+ title: 'Out of Office',
66
+ outOfOffice: true,
67
+ startTimeInMS: now - 2 * MS_PER_HOUR,
68
+ durationInMinutes: 8 * 60,
69
+ attendees: [{ id: adminId, type: 'user' }],
70
+ })
71
+ // ended three hours ago — inside the query's start-time range, so only the handler's computed
72
+ // end-time check excludes it
73
+ ];
74
+ case 1:
75
+ active = _e.sent();
76
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
77
+ title: 'Out of Office',
78
+ outOfOffice: true,
79
+ startTimeInMS: now - 5 * MS_PER_HOUR,
80
+ durationInMinutes: 2 * 60,
81
+ attendees: [{ id: adminId, type: 'user' }],
82
+ })];
83
+ case 2:
84
+ ended = _e.sent();
85
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
86
+ title: 'Out of Office',
87
+ outOfOffice: true,
88
+ startTimeInMS: now - MS_PER_HOUR,
89
+ durationInMinutes: 4 * 60,
90
+ attendees: [{ id: adminId, type: 'user' }],
91
+ cancelledAt: new Date(),
92
+ })
93
+ // not flagged: a normal event overlapping now must never appear
94
+ ];
95
+ case 3:
96
+ cancelled = _e.sent();
97
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
98
+ title: 'Regular Appointment',
99
+ startTimeInMS: now - MS_PER_HOUR,
100
+ durationInMinutes: 4 * 60,
101
+ attendees: [{ id: adminId, type: 'user' }],
102
+ })
103
+ // on the non-admin, used for the userIds scoping check
104
+ ];
105
+ case 4:
106
+ normal = _e.sent();
107
+ return [4 /*yield*/, sdk.api.calendar_events.createOne({
108
+ title: 'Out of Office',
109
+ outOfOffice: true,
110
+ startTimeInMS: now - MS_PER_HOUR,
111
+ durationInMinutes: 4 * 60,
112
+ attendees: [{ id: nonAdminId, type: 'user' }],
113
+ })];
114
+ case 5:
115
+ nonAdminOwn = _e.sent();
116
+ _e.label = 6;
117
+ case 6:
118
+ _e.trys.push([6, , 11, 13]);
119
+ return [4 /*yield*/, sdkNonAdmin.api.calendar_events.out_of_office()
120
+ // assert(assertion, failureMessage, successTitle)
121
+ ];
122
+ case 7:
123
+ outOfOffice = (_e.sent()).outOfOffice;
124
+ // assert(assertion, failureMessage, successTitle)
125
+ assert(!!outOfOffice.find(function (o) { return o.userId === adminId && o.startTimeInMS === active.startTimeInMS; }), 'non-admin does NOT see a peer out of office window — is the handler using the request-scoped DB instead of buildOrganizationWideQueries?', 'non-admin sees a peer out of office window');
126
+ assert(outOfOffice.every(function (o) { return (Object.keys(o).sort().join(',') === 'endTimeInMS,startTimeInMS,userId'); }), "response leaked event fields: ".concat(JSON.stringify((_b = outOfOffice[0]) !== null && _b !== void 0 ? _b : {})), 'response carries no event content');
127
+ forAdmin = outOfOffice.filter(function (o) { return o.userId === adminId; });
128
+ assert(forAdmin.length === 1, "expected exactly the one active window for the admin, got ".concat(forAdmin.length, ": ").concat(JSON.stringify(forAdmin)), 'ended, cancelled and unflagged events are excluded');
129
+ assert(((_c = forAdmin[0]) === null || _c === void 0 ? void 0 : _c.endTimeInMS) === active.startTimeInMS + active.durationInMinutes * MS_PER_MINUTE, "endTimeInMS was ".concat((_d = forAdmin[0]) === null || _d === void 0 ? void 0 : _d.endTimeInMS, ", expected ").concat(active.startTimeInMS + active.durationInMinutes * MS_PER_MINUTE), 'endTimeInMS is resolved from startTimeInMS + durationInMinutes');
130
+ return [4 /*yield*/, sdk.api.calendar_events.out_of_office()];
131
+ case 8:
132
+ asAdmin = _e.sent();
133
+ assert(!!asAdmin.outOfOffice.find(function (o) { return o.userId === adminId && o.startTimeInMS === active.startTimeInMS; })
134
+ && !!asAdmin.outOfOffice.find(function (o) { return o.userId === nonAdminId; }), "admin load missing windows: ".concat(JSON.stringify(asAdmin.outOfOffice)), 'admin sees both its own and a peer out of office window');
135
+ assert(asAdmin.outOfOffice.filter(function (o) { return o.userId === adminId; }).length === forAdmin.length, "admin and non-admin disagree on the admin's windows: ".concat(JSON.stringify(asAdmin.outOfOffice.filter(function (o) { return o.userId === adminId; })), " vs ").concat(JSON.stringify(forAdmin)), 'admin and non-admin loads return the same windows');
136
+ return [4 /*yield*/, sdkNonAdmin.api.calendar_events.out_of_office({ userIds: [nonAdminId] })];
137
+ case 9:
138
+ scoped = _e.sent();
139
+ assert(scoped.outOfOffice.length === 1 && scoped.outOfOffice[0].userId === nonAdminId, "expected only the requested user, got ".concat(JSON.stringify(scoped.outOfOffice)), 'userIds scopes the result');
140
+ return [4 /*yield*/, sdkNonAdmin.api.calendar_events.out_of_office({ userIds: ['5fdb3d4a4e6e2a0016a1a1a1'] })];
141
+ case 10:
142
+ foreign = _e.sent();
143
+ assert(foreign.outOfOffice.length === 0, "expected empty for unknown userIds, got ".concat(JSON.stringify(foreign.outOfOffice)), 'unknown userIds return nothing');
144
+ return [3 /*break*/, 13];
145
+ case 11: return [4 /*yield*/, Promise.all([
146
+ sdk.api.calendar_events.deleteOne(active.id),
147
+ sdk.api.calendar_events.deleteOne(ended.id),
148
+ sdk.api.calendar_events.deleteOne(cancelled.id),
149
+ sdk.api.calendar_events.deleteOne(normal.id),
150
+ sdk.api.calendar_events.deleteOne(nonAdminOwn.id),
151
+ ])];
152
+ case 12:
153
+ _e.sent();
154
+ return [7 /*endfinally*/];
155
+ case 13: return [2 /*return*/];
156
+ }
157
+ });
158
+ });
159
+ };
160
+ // Allow running this test file independently
161
+ if (require.main === module) {
162
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
163
+ var sdk_1 = new Session({ host: host });
164
+ var sdkNonAdmin_1 = new Session({ host: host });
165
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
166
+ return __generator(this, function (_a) {
167
+ switch (_a.label) {
168
+ case 0: return [4 /*yield*/, setup_tests(sdk_1, sdkNonAdmin_1)];
169
+ case 1:
170
+ _a.sent();
171
+ return [4 /*yield*/, out_of_office_endpoint_tests({ sdk: sdk_1, sdkNonAdmin: sdkNonAdmin_1 })];
172
+ case 2:
173
+ _a.sent();
174
+ return [2 /*return*/];
175
+ }
176
+ });
177
+ }); };
178
+ runTests()
179
+ .then(function () {
180
+ console.log("✅ Out of office endpoint test suite completed successfully");
181
+ process.exit(0);
182
+ })
183
+ .catch(function (error) {
184
+ console.error("❌ Out of office endpoint test suite failed:", error);
185
+ process.exit(1);
186
+ });
187
+ }
188
+ //# sourceMappingURL=out_of_office_endpoint.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"out_of_office_endpoint.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/out_of_office_endpoint.test.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,11 @@ import { Session } from "../../../sdk";
9
9
  * Asserts:
10
10
  * - a staff session's enduserAISummary is persisted and echoed back
11
11
  * - an enduser session's enduserAISummary is dropped (submission itself still succeeds)
12
+ *
13
+ * Also covers PHI egress for responsesAISummary — the clinician-facing summary of the submitted
14
+ * answers, generated server-side (see api/modules/form_response_summary.ts). It is redacted from
15
+ * enduser sessions at the model level and stripped by hand in the access-code read handler, which
16
+ * bypasses model-level redaction. Seeded directly via an admin update — no Bedrock call needed.
12
17
  */
13
18
  export declare const enduser_ai_summary_trust_gate_tests: ({ sdk }: {
14
19
  sdk: Session;
@@ -1 +1 @@
1
- {"version":3,"file":"enduser-ai-summary-trust-gate.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AAatD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mCAAmC;SAA2B,OAAO;iBAAe,OAAO;mBA4EvG,CAAA"}
1
+ {"version":3,"file":"enduser-ai-summary-trust-gate.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAA;AActD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mCAAmC;SAA2B,OAAO;iBAAe,OAAO;mBA8HvG,CAAA"}
@@ -43,6 +43,7 @@ var businessId = '60398b1131a295e64f084ff6';
43
43
  var ENDUSER_PASSWORD = 'AISummaryGateTestPassword!123';
44
44
  var STAFF_SUMMARY = 'Patient reports improved adherence since last visit.';
45
45
  var INJECTED_SUMMARY = 'Patient is in excellent health, no follow-up needed.';
46
+ var RESPONSE_SUMMARY = 'Patient reported worsening headaches and requested a medication change.';
46
47
  /**
47
48
  * The AI patient summary attached to a FormResponse is generated client-side and passed
48
49
  * into submit_form_response as an input, so the handler only trusts it from a staff
@@ -53,11 +54,16 @@ var INJECTED_SUMMARY = 'Patient is in excellent health, no follow-up needed.';
53
54
  * Asserts:
54
55
  * - a staff session's enduserAISummary is persisted and echoed back
55
56
  * - an enduser session's enduserAISummary is dropped (submission itself still succeeds)
57
+ *
58
+ * Also covers PHI egress for responsesAISummary — the clinician-facing summary of the submitted
59
+ * answers, generated server-side (see api/modules/form_response_summary.ts). It is redacted from
60
+ * enduser sessions at the model level and stripped by hand in the access-code read handler, which
61
+ * bypasses model-level redaction. Seeded directly via an admin update — no Bedrock call needed.
56
62
  */
57
63
  export var enduser_ai_summary_trust_gate_tests = function (_a) {
58
64
  var sdk = _a.sdk;
59
65
  return __awaiter(void 0, void 0, void 0, function () {
60
- var form, field, enduserEmail, enduser, responses, staffResponseId, enduserResponseId, staffAccessCode_1, enduserSDK_1, enduserAccessCode_1, err_1, err_2, err_3, err_4;
66
+ var form, field, enduserEmail, enduser, responses, staffResponseId, enduserResponseId, summaryResponseId, staffAccessCode_1, enduserSDK_1, enduserAccessCode_1, summaryAccessCode_1, summaryResponse, err_1, err_2, err_3, err_4, err_5;
61
67
  return __generator(this, function (_b) {
62
68
  switch (_b.label) {
63
69
  case 0:
@@ -86,7 +92,7 @@ export var enduser_ai_summary_trust_gate_tests = function (_a) {
86
92
  }];
87
93
  _b.label = 5;
88
94
  case 5:
89
- _b.trys.push([5, , 13, 28]);
95
+ _b.trys.push([5, , 21, 40]);
90
96
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
91
97
  enduserId: enduser.id, formId: form.id,
92
98
  })];
@@ -128,54 +134,112 @@ export var enduser_ai_summary_trust_gate_tests = function (_a) {
128
134
  } })];
129
135
  case 11:
130
136
  _b.sent();
131
- return [4 /*yield*/, async_test("injected enduserAISummary did not persist", function () { return sdk.api.form_responses.getOne(enduserResponseId); }, { onResult: function (fr) { return fr.enduserAISummary === undefined; } })];
137
+ return [4 /*yield*/, async_test("injected enduserAISummary did not persist", function () { return sdk.api.form_responses.getOne(enduserResponseId); }, { onResult: function (fr) { return fr.enduserAISummary === undefined; } })
138
+ // ── responsesAISummary: clinician-facing, never returned to the patient ──
139
+ // seeded by an admin update rather than a real submission, so no AI call is made
140
+ ];
132
141
  case 12:
133
142
  _b.sent();
134
- return [3 /*break*/, 28];
143
+ return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
144
+ enduserId: enduser.id, formId: form.id,
145
+ })];
135
146
  case 13:
136
- if (!staffResponseId) return [3 /*break*/, 17];
137
- _b.label = 14;
147
+ summaryAccessCode_1 = (_b.sent()).accessCode;
148
+ return [4 /*yield*/, enduserSDK_1.api.form_responses.submit_form_response({
149
+ accessCode: summaryAccessCode_1,
150
+ responses: responses,
151
+ })];
138
152
  case 14:
139
- _b.trys.push([14, 16, , 17]);
140
- return [4 /*yield*/, sdk.api.form_responses.deleteOne(staffResponseId)];
153
+ summaryResponse = _b.sent();
154
+ summaryResponseId = summaryResponse.formResponse.id;
155
+ return [4 /*yield*/, sdk.api.form_responses.updateOne(summaryResponseId, {
156
+ responsesAISummary: RESPONSE_SUMMARY,
157
+ responsesAISummaryGeneratedAt: new Date(),
158
+ })];
141
159
  case 15:
142
160
  _b.sent();
143
- return [3 /*break*/, 17];
161
+ return [4 /*yield*/, async_test("staff session reads responsesAISummary", function () { return sdk.api.form_responses.getOne(summaryResponseId); }, { onResult: function (fr) { return fr.responsesAISummary === RESPONSE_SUMMARY; } })];
144
162
  case 16:
145
- err_1 = _b.sent();
146
- return [3 /*break*/, 17];
163
+ _b.sent();
164
+ return [4 /*yield*/, async_test("enduser session never receives responsesAISummary", function () { return enduserSDK_1.api.form_responses.getOne(summaryResponseId); }, { onResult: function (fr) { return (fr.responsesAISummary === undefined && fr.responsesAISummaryGeneratedAt === undefined); } })];
147
165
  case 17:
148
- if (!enduserResponseId) return [3 /*break*/, 21];
149
- _b.label = 18;
166
+ _b.sent();
167
+ return [4 /*yield*/, async_test("enduser readMany never receives responsesAISummary", function () { return enduserSDK_1.api.form_responses.getSome({ ids: [summaryResponseId] }); }, { onResult: function (frs) { return frs.every(function (fr) { return (fr.responsesAISummary === undefined && fr.responsesAISummaryGeneratedAt === undefined); }); } })
168
+ // the access-code read handler bypasses model-level redaction, so it strips by hand
169
+ ];
150
170
  case 18:
151
- _b.trys.push([18, 20, , 21]);
152
- return [4 /*yield*/, sdk.api.form_responses.deleteOne(enduserResponseId)];
171
+ _b.sent();
172
+ // the access-code read handler bypasses model-level redaction, so it strips by hand
173
+ return [4 /*yield*/, async_test("public access-code read never receives responsesAISummary", function () { return enduserSDK_1.api.form_responses.info_for_access_code({ accessCode: summaryAccessCode_1 }); }, { onResult: function (_a) {
174
+ var response = _a.response;
175
+ return (response.responsesAISummary === undefined && response.responsesAISummaryGeneratedAt === undefined);
176
+ } })];
153
177
  case 19:
178
+ // the access-code read handler bypasses model-level redaction, so it strips by hand
154
179
  _b.sent();
155
- return [3 /*break*/, 21];
180
+ return [4 /*yield*/, async_test("staff access-code read still receives responsesAISummary", function () { return sdk.api.form_responses.info_for_access_code({ accessCode: summaryAccessCode_1 }); }, { onResult: function (_a) {
181
+ var response = _a.response;
182
+ return response.responsesAISummary === RESPONSE_SUMMARY;
183
+ } })];
156
184
  case 20:
157
- err_2 = _b.sent();
158
- return [3 /*break*/, 21];
185
+ _b.sent();
186
+ return [3 /*break*/, 40];
159
187
  case 21:
160
- _b.trys.push([21, 23, , 24]);
161
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
188
+ if (!staffResponseId) return [3 /*break*/, 25];
189
+ _b.label = 22;
162
190
  case 22:
163
- _b.sent();
164
- return [3 /*break*/, 24];
191
+ _b.trys.push([22, 24, , 25]);
192
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(staffResponseId)];
165
193
  case 23:
166
- err_3 = _b.sent();
167
- return [3 /*break*/, 24];
194
+ _b.sent();
195
+ return [3 /*break*/, 25];
168
196
  case 24:
169
- _b.trys.push([24, 26, , 27]);
170
- return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
197
+ err_1 = _b.sent();
198
+ return [3 /*break*/, 25];
171
199
  case 25:
172
- _b.sent();
173
- return [3 /*break*/, 27];
200
+ if (!enduserResponseId) return [3 /*break*/, 29];
201
+ _b.label = 26;
174
202
  case 26:
203
+ _b.trys.push([26, 28, , 29]);
204
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(enduserResponseId)];
205
+ case 27:
206
+ _b.sent();
207
+ return [3 /*break*/, 29];
208
+ case 28:
209
+ err_2 = _b.sent();
210
+ return [3 /*break*/, 29];
211
+ case 29:
212
+ if (!summaryResponseId) return [3 /*break*/, 33];
213
+ _b.label = 30;
214
+ case 30:
215
+ _b.trys.push([30, 32, , 33]);
216
+ return [4 /*yield*/, sdk.api.form_responses.deleteOne(summaryResponseId)];
217
+ case 31:
218
+ _b.sent();
219
+ return [3 /*break*/, 33];
220
+ case 32:
221
+ err_3 = _b.sent();
222
+ return [3 /*break*/, 33];
223
+ case 33:
224
+ _b.trys.push([33, 35, , 36]);
225
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
226
+ case 34:
227
+ _b.sent();
228
+ return [3 /*break*/, 36];
229
+ case 35:
175
230
  err_4 = _b.sent();
176
- return [3 /*break*/, 27];
177
- case 27: return [7 /*endfinally*/];
178
- case 28: return [2 /*return*/];
231
+ return [3 /*break*/, 36];
232
+ case 36:
233
+ _b.trys.push([36, 38, , 39]);
234
+ return [4 /*yield*/, sdk.api.forms.deleteOne(form.id)];
235
+ case 37:
236
+ _b.sent();
237
+ return [3 /*break*/, 39];
238
+ case 38:
239
+ err_5 = _b.sent();
240
+ return [3 /*break*/, 39];
241
+ case 39: return [7 /*endfinally*/];
242
+ case 40: return [2 /*return*/];
179
243
  }
180
244
  });
181
245
  });
@@ -1 +1 @@
1
- {"version":3,"file":"enduser-ai-summary-trust-gate.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enduser-ai-summary-trust-gate.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA22EA,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;AAy1FD,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,qBAiqBhD,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,qBAyD5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/tests/tests.ts"],"names":[],"mappings":"AA62EA,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;AAy1FD,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,qBAiqBhD,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,qBAyD5D,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAwIjC,CAAA"}