@tellescope/sdk 1.250.2 → 1.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/lib/cjs/sdk.d.ts +9 -0
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/sdk.js +3 -0
  4. package/lib/cjs/sdk.js.map +1 -1
  5. package/lib/cjs/tests/api_tests/account_switcher.test.d.ts.map +1 -1
  6. package/lib/cjs/tests/api_tests/account_switcher.test.js +1700 -306
  7. package/lib/cjs/tests/api_tests/account_switcher.test.js.map +1 -1
  8. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts +6 -0
  9. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -0
  10. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js +337 -0
  11. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -0
  12. package/lib/cjs/tests/api_tests/enduser_login.test.d.ts +6 -0
  13. package/lib/cjs/tests/api_tests/enduser_login.test.d.ts.map +1 -0
  14. package/lib/cjs/tests/api_tests/enduser_login.test.js +315 -0
  15. package/lib/cjs/tests/api_tests/enduser_login.test.js.map +1 -0
  16. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.d.ts +6 -0
  17. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.d.ts.map +1 -0
  18. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.js +287 -0
  19. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.js.map +1 -0
  20. package/lib/cjs/tests/api_tests/push_forms_to_portal_group_completion.test.d.ts +6 -0
  21. package/lib/cjs/tests/api_tests/push_forms_to_portal_group_completion.test.d.ts.map +1 -0
  22. package/lib/cjs/tests/api_tests/push_forms_to_portal_group_completion.test.js +406 -0
  23. package/lib/cjs/tests/api_tests/push_forms_to_portal_group_completion.test.js.map +1 -0
  24. package/lib/cjs/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.d.ts +28 -0
  25. package/lib/cjs/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.d.ts.map +1 -0
  26. package/lib/cjs/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.js +349 -0
  27. package/lib/cjs/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.js.map +1 -0
  28. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts +28 -0
  29. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts.map +1 -0
  30. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js +247 -0
  31. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js.map +1 -0
  32. package/lib/cjs/tests/api_tests/security/F-0007-invite-user-enumeration.test.d.ts +29 -0
  33. package/lib/cjs/tests/api_tests/security/F-0007-invite-user-enumeration.test.d.ts.map +1 -0
  34. package/lib/cjs/tests/api_tests/security/F-0007-invite-user-enumeration.test.js +278 -0
  35. package/lib/cjs/tests/api_tests/security/F-0007-invite-user-enumeration.test.js.map +1 -0
  36. package/lib/cjs/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.d.ts +24 -0
  37. package/lib/cjs/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
  38. package/lib/cjs/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.js +201 -0
  39. package/lib/cjs/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.js.map +1 -0
  40. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html.test.d.ts +2 -0
  41. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html.test.d.ts.map +1 -0
  42. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html.test.js +148 -0
  43. package/lib/cjs/tests/api_tests/security/F-0013-sanitize-user-html.test.js.map +1 -0
  44. package/lib/cjs/tests/api_tests/security/F-0016-prototype-pollution.test.d.ts +2 -0
  45. package/lib/cjs/tests/api_tests/security/F-0016-prototype-pollution.test.d.ts.map +1 -0
  46. package/lib/cjs/tests/api_tests/security/F-0016-prototype-pollution.test.js +88 -0
  47. package/lib/cjs/tests/api_tests/security/F-0016-prototype-pollution.test.js.map +1 -0
  48. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.d.ts +6 -0
  49. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -0
  50. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js +373 -0
  51. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js.map +1 -0
  52. package/lib/cjs/tests/setup.d.ts.map +1 -1
  53. package/lib/cjs/tests/setup.js +47 -32
  54. package/lib/cjs/tests/setup.js.map +1 -1
  55. package/lib/cjs/tests/tests.d.ts.map +1 -1
  56. package/lib/cjs/tests/tests.js +215 -159
  57. package/lib/cjs/tests/tests.js.map +1 -1
  58. package/lib/esm/sdk.d.ts +9 -0
  59. package/lib/esm/sdk.d.ts.map +1 -1
  60. package/lib/esm/sdk.js +3 -0
  61. package/lib/esm/sdk.js.map +1 -1
  62. package/lib/esm/tests/api_tests/account_switcher.test.d.ts.map +1 -1
  63. package/lib/esm/tests/api_tests/account_switcher.test.js +1702 -305
  64. package/lib/esm/tests/api_tests/account_switcher.test.js.map +1 -1
  65. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts +6 -0
  66. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -0
  67. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js +333 -0
  68. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -0
  69. package/lib/esm/tests/api_tests/enduser_login.test.d.ts +6 -0
  70. package/lib/esm/tests/api_tests/enduser_login.test.d.ts.map +1 -0
  71. package/lib/esm/tests/api_tests/enduser_login.test.js +308 -0
  72. package/lib/esm/tests/api_tests/enduser_login.test.js.map +1 -0
  73. package/lib/esm/tests/api_tests/enduser_login_phi_disclosure.test.d.ts +6 -0
  74. package/lib/esm/tests/api_tests/enduser_login_phi_disclosure.test.d.ts.map +1 -0
  75. package/lib/esm/tests/api_tests/enduser_login_phi_disclosure.test.js +268 -0
  76. package/lib/esm/tests/api_tests/enduser_login_phi_disclosure.test.js.map +1 -0
  77. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.d.ts +6 -0
  78. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.d.ts.map +1 -0
  79. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.js +280 -0
  80. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.js.map +1 -0
  81. package/lib/esm/tests/api_tests/push_forms_to_portal_group_completion.test.d.ts +6 -0
  82. package/lib/esm/tests/api_tests/push_forms_to_portal_group_completion.test.d.ts.map +1 -0
  83. package/lib/esm/tests/api_tests/push_forms_to_portal_group_completion.test.js +402 -0
  84. package/lib/esm/tests/api_tests/push_forms_to_portal_group_completion.test.js.map +1 -0
  85. package/lib/esm/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.d.ts +28 -0
  86. package/lib/esm/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.d.ts.map +1 -0
  87. package/lib/esm/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.js +345 -0
  88. package/lib/esm/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.js.map +1 -0
  89. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts +28 -0
  90. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts.map +1 -0
  91. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js +243 -0
  92. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js.map +1 -0
  93. package/lib/esm/tests/api_tests/security/F-0007-invite-user-enumeration.test.d.ts +29 -0
  94. package/lib/esm/tests/api_tests/security/F-0007-invite-user-enumeration.test.d.ts.map +1 -0
  95. package/lib/esm/tests/api_tests/security/F-0007-invite-user-enumeration.test.js +271 -0
  96. package/lib/esm/tests/api_tests/security/F-0007-invite-user-enumeration.test.js.map +1 -0
  97. package/lib/esm/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.d.ts +24 -0
  98. package/lib/esm/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
  99. package/lib/esm/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.js +194 -0
  100. package/lib/esm/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.js.map +1 -0
  101. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html.test.d.ts +2 -0
  102. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html.test.d.ts.map +1 -0
  103. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html.test.js +144 -0
  104. package/lib/esm/tests/api_tests/security/F-0013-sanitize-user-html.test.js.map +1 -0
  105. package/lib/esm/tests/api_tests/security/F-0016-prototype-pollution.test.d.ts +2 -0
  106. package/lib/esm/tests/api_tests/security/F-0016-prototype-pollution.test.d.ts.map +1 -0
  107. package/lib/esm/tests/api_tests/security/F-0016-prototype-pollution.test.js +84 -0
  108. package/lib/esm/tests/api_tests/security/F-0016-prototype-pollution.test.js.map +1 -0
  109. package/lib/esm/tests/api_tests/set_fields_order_templates.test.d.ts +6 -0
  110. package/lib/esm/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -0
  111. package/lib/esm/tests/api_tests/set_fields_order_templates.test.js +369 -0
  112. package/lib/esm/tests/api_tests/set_fields_order_templates.test.js.map +1 -0
  113. package/lib/esm/tests/setup.d.ts.map +1 -1
  114. package/lib/esm/tests/setup.js +47 -32
  115. package/lib/esm/tests/setup.js.map +1 -1
  116. package/lib/esm/tests/tests.d.ts.map +1 -1
  117. package/lib/esm/tests/tests.js +215 -159
  118. package/lib/esm/tests/tests.js.map +1 -1
  119. package/lib/tsconfig.tsbuildinfo +1 -1
  120. package/package.json +10 -10
  121. package/src/sdk.ts +12 -0
  122. package/src/tests/api_tests/account_switcher.test.ts +1283 -0
  123. package/src/tests/api_tests/calendar_event_webhook_template.test.ts +204 -0
  124. package/src/tests/api_tests/enduser_login.test.ts +215 -0
  125. package/src/tests/api_tests/enduser_login_rate_limits.test.ts +178 -0
  126. package/src/tests/api_tests/push_forms_to_portal_group_completion.test.ts +223 -0
  127. package/src/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.ts +236 -0
  128. package/src/tests/api_tests/security/F-0005-ai-conversations-rbac.test.ts +154 -0
  129. package/src/tests/api_tests/security/F-0007-invite-user-enumeration.test.ts +198 -0
  130. package/src/tests/api_tests/security/F-0008-handle-incoming-communication-cross-tenant.test.ts +130 -0
  131. package/src/tests/api_tests/security/F-0013-sanitize-user-html.test.ts +109 -0
  132. package/src/tests/api_tests/security/F-0016-prototype-pollution.test.ts +50 -0
  133. package/src/tests/api_tests/set_fields_order_templates.test.ts +258 -0
  134. package/src/tests/setup.ts +8 -1
  135. package/src/tests/tests.ts +35 -5
  136. package/test_generated.pdf +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enduser_login_rate_limits.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/enduser_login_rate_limits.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Session } from "../../sdk";
2
+ export declare const push_forms_to_portal_group_completion_tests: ({ sdk, sdkNonAdmin }: {
3
+ sdk: Session;
4
+ sdkNonAdmin: Session;
5
+ }) => Promise<void>;
6
+ //# sourceMappingURL=push_forms_to_portal_group_completion.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_forms_to_portal_group_completion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/api_tests/push_forms_to_portal_group_completion.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAuBnD,eAAO,MAAM,2CAA2C;SAAwC,OAAO;iBAAe,OAAO;mBAgL5H,CAAA"}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.push_forms_to_portal_group_completion_tests = void 0;
40
+ require('source-map-support').install();
41
+ var sdk_1 = require("../../sdk");
42
+ var testing_1 = require("@tellescope/testing");
43
+ var setup_1 = require("../setup");
44
+ var host = process.env.API_URL || "http://localhost:8080";
45
+ var pollFor = function (fetchFn, evaluateFn, description, intervalMs, maxIterations) {
46
+ if (intervalMs === void 0) { intervalMs = 500; }
47
+ if (maxIterations === void 0) { maxIterations = 30; }
48
+ return __awaiter(void 0, void 0, void 0, function () {
49
+ var lastResult, i;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ i = 0;
54
+ _a.label = 1;
55
+ case 1:
56
+ if (!(i < maxIterations)) return [3 /*break*/, 5];
57
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, intervalMs)];
58
+ case 2:
59
+ _a.sent();
60
+ return [4 /*yield*/, fetchFn()];
61
+ case 3:
62
+ lastResult = _a.sent();
63
+ if (evaluateFn(lastResult))
64
+ return [2 /*return*/, lastResult];
65
+ _a.label = 4;
66
+ case 4:
67
+ i++;
68
+ return [3 /*break*/, 1];
69
+ case 5: throw new Error("Polling timeout: ".concat(description, " - waited ").concat(maxIterations * intervalMs, "ms"));
70
+ }
71
+ });
72
+ });
73
+ };
74
+ var push_forms_to_portal_group_completion_tests = function (_a) {
75
+ var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
76
+ return __awaiter(void 0, void 0, void 0, function () {
77
+ var createdEnduserIds, createdJourneyIds, createdFormIds, createdFormGroupIds, createdTriggerIds, formA_1, fieldA_1, formB, fieldB_1, formGroup_1, runFlow, _i, createdTriggerIds_1, id, e_1, _b, createdEnduserIds_1, id, e_2, _c, createdJourneyIds_1, id, e_3, _d, createdFormGroupIds_1, id, e_4, _e, createdFormIds_1, id, e_5;
78
+ return __generator(this, function (_f) {
79
+ switch (_f.label) {
80
+ case 0:
81
+ (0, testing_1.log_header)("Push Forms To Portal - Form Group Completed Trigger Tests");
82
+ createdEnduserIds = [];
83
+ createdJourneyIds = [];
84
+ createdFormIds = [];
85
+ createdFormGroupIds = [];
86
+ createdTriggerIds = [];
87
+ _f.label = 1;
88
+ case 1:
89
+ _f.trys.push([1, , 9, 40]);
90
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'Push To Portal Form A' })];
91
+ case 2:
92
+ formA_1 = _f.sent();
93
+ createdFormIds.push(formA_1.id);
94
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
95
+ formId: formA_1.id,
96
+ type: 'string',
97
+ title: 'FieldA',
98
+ previousFields: [{ type: 'root', info: {} }],
99
+ })];
100
+ case 3:
101
+ fieldA_1 = _f.sent();
102
+ return [4 /*yield*/, sdk.api.forms.createOne({ title: 'Push To Portal Form B' })];
103
+ case 4:
104
+ formB = _f.sent();
105
+ createdFormIds.push(formB.id);
106
+ return [4 /*yield*/, sdk.api.form_fields.createOne({
107
+ formId: formB.id,
108
+ type: 'string',
109
+ title: 'FieldB',
110
+ previousFields: [{ type: 'root', info: {} }],
111
+ })
112
+ // 2. Create a form group containing both forms (shared across both submission flows)
113
+ ];
114
+ case 5:
115
+ fieldB_1 = _f.sent();
116
+ return [4 /*yield*/, sdk.api.form_groups.createOne({
117
+ title: 'Push To Portal Test Group',
118
+ formIds: [formA_1.id, formB.id],
119
+ })];
120
+ case 6:
121
+ formGroup_1 = _f.sent();
122
+ createdFormGroupIds.push(formGroup_1.id);
123
+ runFlow = function (_a) {
124
+ var label = _a.label, tag = _a.tag, submitAsEnduser = _a.submitAsEnduser;
125
+ return __awaiter(void 0, void 0, void 0, function () {
126
+ var trigger, journey, pushStep, enduser, pushedResponses, _i, pushedResponses_1, fr, submitterApi, authToken, enduserSDK, _b, pushedResponses_2, fr, isFormA, targetFieldId, targetFieldTitle;
127
+ return __generator(this, function (_c) {
128
+ switch (_c.label) {
129
+ case 0: return [4 /*yield*/, sdk.api.automation_triggers.createOne({
130
+ event: { type: 'Form Group Completed', info: { groupId: formGroup_1.id } },
131
+ action: { type: 'Add Tags', info: { tags: [tag] } },
132
+ status: 'Active',
133
+ title: "Form Group Completed - Push to Portal (".concat(label, ")"),
134
+ })];
135
+ case 1:
136
+ trigger = _c.sent();
137
+ createdTriggerIds.push(trigger.id);
138
+ return [4 /*yield*/, sdk.api.journeys.createOne({
139
+ title: "Push To Portal Trigger Journey (".concat(label, ")"),
140
+ })];
141
+ case 2:
142
+ journey = _c.sent();
143
+ createdJourneyIds.push(journey.id);
144
+ return [4 /*yield*/, sdk.api.automation_steps.createOne({
145
+ journeyId: journey.id,
146
+ action: { type: 'pushFormsToPortal', info: { formGroupIds: [formGroup_1.id] } },
147
+ events: [{ type: 'onJourneyStart', info: {} }],
148
+ })];
149
+ case 3:
150
+ pushStep = _c.sent();
151
+ return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'PushPortal', lname: label })];
152
+ case 4:
153
+ enduser = _c.sent();
154
+ createdEnduserIds.push(enduser.id);
155
+ return [4 /*yield*/, sdk.api.endusers.add_to_journey({
156
+ enduserIds: [enduser.id],
157
+ journeyId: journey.id,
158
+ })];
159
+ case 5:
160
+ _c.sent();
161
+ return [4 /*yield*/, pollFor(function () { return __awaiter(void 0, void 0, void 0, function () {
162
+ var responses, pushed;
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0: return [4 /*yield*/, sdk.api.form_responses.getSome({
166
+ filter: { enduserId: enduser.id },
167
+ })];
168
+ case 1:
169
+ responses = _a.sent();
170
+ pushed = responses.filter(function (r) { return !!r.pushedToPortalAt; });
171
+ return [2 /*return*/, pushed.length >= 2 ? pushed : undefined];
172
+ }
173
+ });
174
+ }); }, function (result) { return Array.isArray(result) && result.length >= 2; }, "pushed-to-portal form_responses to be created by worker (".concat(label, ")"), 500, 40)];
175
+ case 6:
176
+ pushedResponses = _c.sent();
177
+ for (_i = 0, pushedResponses_1 = pushedResponses; _i < pushedResponses_1.length; _i++) {
178
+ fr = pushedResponses_1[_i];
179
+ if (!fr.pushedToPortalAt) {
180
+ throw new Error("Expected pushedToPortalAt to be set on form_response ".concat(fr.id, " (").concat(label, ")"));
181
+ }
182
+ if (fr.groupId !== pushStep.id) {
183
+ throw new Error("Expected form_response.groupId (".concat(fr.groupId, ") to equal automation step id (").concat(pushStep.id, ") (").concat(label, ")"));
184
+ }
185
+ if (fr.automationStepId !== pushStep.id) {
186
+ throw new Error("Expected form_response.automationStepId (".concat(fr.automationStepId, ") to equal automation step id (").concat(pushStep.id, ") (").concat(label, ")"));
187
+ }
188
+ }
189
+ return [4 /*yield*/, (0, testing_1.async_test)("Worker writes groupId === automationStepId and pushedToPortalAt set (".concat(label, ")"), function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
190
+ return [2 /*return*/, true];
191
+ }); }); }, { onResult: function (r) { return r === true; } })
192
+ // Build the submitter session
193
+ ];
194
+ case 7:
195
+ _c.sent();
196
+ if (!submitAsEnduser) return [3 /*break*/, 9];
197
+ return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: enduser.id })];
198
+ case 8:
199
+ authToken = (_c.sent()).authToken;
200
+ enduserSDK = new sdk_1.EnduserSession({ host: host, authToken: authToken, businessId: sdk.userInfo.businessId });
201
+ submitterApi = enduserSDK.api;
202
+ return [3 /*break*/, 10];
203
+ case 9:
204
+ submitterApi = sdk.api;
205
+ _c.label = 10;
206
+ case 10:
207
+ _b = 0, pushedResponses_2 = pushedResponses;
208
+ _c.label = 11;
209
+ case 11:
210
+ if (!(_b < pushedResponses_2.length)) return [3 /*break*/, 14];
211
+ fr = pushedResponses_2[_b];
212
+ isFormA = fr.formId === formA_1.id;
213
+ targetFieldId = isFormA ? fieldA_1.id : fieldB_1.id;
214
+ targetFieldTitle = isFormA ? 'FieldA' : 'FieldB';
215
+ return [4 /*yield*/, submitterApi.form_responses.submit_form_response({
216
+ accessCode: fr.accessCode,
217
+ responses: [{
218
+ fieldId: targetFieldId,
219
+ fieldTitle: targetFieldTitle,
220
+ answer: { type: 'string', value: 'pushed-portal-answer' },
221
+ }],
222
+ })];
223
+ case 12:
224
+ _c.sent();
225
+ _c.label = 13;
226
+ case 13:
227
+ _b++;
228
+ return [3 /*break*/, 11];
229
+ case 14: return [4 /*yield*/, pollFor(function () { return __awaiter(void 0, void 0, void 0, function () {
230
+ var e;
231
+ var _a;
232
+ return __generator(this, function (_b) {
233
+ switch (_b.label) {
234
+ case 0: return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
235
+ case 1:
236
+ e = _b.sent();
237
+ return [2 /*return*/, ((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes(tag)) ? e : undefined];
238
+ }
239
+ });
240
+ }); }, function (result) { return !!result; }, "Form Group Completed trigger to apply tag after push-to-portal submissions (".concat(label, ")"), 500, 30)];
241
+ case 15:
242
+ _c.sent();
243
+ return [4 /*yield*/, (0, testing_1.async_test)("Form Group Completed trigger fires for push-to-portal completion (".concat(label, ")"), function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes(tag)); } })];
244
+ case 16:
245
+ _c.sent();
246
+ return [2 /*return*/];
247
+ }
248
+ });
249
+ });
250
+ };
251
+ // Admin submitter: simulates a staff user filling in the form on behalf of the patient
252
+ // (uses a user-scoped DB in submit_form_response).
253
+ return [4 /*yield*/, runFlow({
254
+ label: 'admin-submit',
255
+ tag: 'form-group-completed-push-admin',
256
+ submitAsEnduser: false,
257
+ })
258
+ // Enduser submitter: simulates the patient submitting via the portal
259
+ // (uses an enduser-scoped DB in submit_form_response — exercises the path QA caught).
260
+ ];
261
+ case 7:
262
+ // Admin submitter: simulates a staff user filling in the form on behalf of the patient
263
+ // (uses a user-scoped DB in submit_form_response).
264
+ _f.sent();
265
+ // Enduser submitter: simulates the patient submitting via the portal
266
+ // (uses an enduser-scoped DB in submit_form_response — exercises the path QA caught).
267
+ return [4 /*yield*/, runFlow({
268
+ label: 'enduser-submit',
269
+ tag: 'form-group-completed-push-enduser',
270
+ submitAsEnduser: true,
271
+ })];
272
+ case 8:
273
+ // Enduser submitter: simulates the patient submitting via the portal
274
+ // (uses an enduser-scoped DB in submit_form_response — exercises the path QA caught).
275
+ _f.sent();
276
+ return [3 /*break*/, 40];
277
+ case 9:
278
+ _i = 0, createdTriggerIds_1 = createdTriggerIds;
279
+ _f.label = 10;
280
+ case 10:
281
+ if (!(_i < createdTriggerIds_1.length)) return [3 /*break*/, 15];
282
+ id = createdTriggerIds_1[_i];
283
+ _f.label = 11;
284
+ case 11:
285
+ _f.trys.push([11, 13, , 14]);
286
+ return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(id)];
287
+ case 12:
288
+ _f.sent();
289
+ return [3 /*break*/, 14];
290
+ case 13:
291
+ e_1 = _f.sent();
292
+ return [3 /*break*/, 14];
293
+ case 14:
294
+ _i++;
295
+ return [3 /*break*/, 10];
296
+ case 15:
297
+ _b = 0, createdEnduserIds_1 = createdEnduserIds;
298
+ _f.label = 16;
299
+ case 16:
300
+ if (!(_b < createdEnduserIds_1.length)) return [3 /*break*/, 21];
301
+ id = createdEnduserIds_1[_b];
302
+ _f.label = 17;
303
+ case 17:
304
+ _f.trys.push([17, 19, , 20]);
305
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(id)];
306
+ case 18:
307
+ _f.sent();
308
+ return [3 /*break*/, 20];
309
+ case 19:
310
+ e_2 = _f.sent();
311
+ return [3 /*break*/, 20];
312
+ case 20:
313
+ _b++;
314
+ return [3 /*break*/, 16];
315
+ case 21:
316
+ _c = 0, createdJourneyIds_1 = createdJourneyIds;
317
+ _f.label = 22;
318
+ case 22:
319
+ if (!(_c < createdJourneyIds_1.length)) return [3 /*break*/, 27];
320
+ id = createdJourneyIds_1[_c];
321
+ _f.label = 23;
322
+ case 23:
323
+ _f.trys.push([23, 25, , 26]);
324
+ return [4 /*yield*/, sdk.api.journeys.deleteOne(id)];
325
+ case 24:
326
+ _f.sent();
327
+ return [3 /*break*/, 26];
328
+ case 25:
329
+ e_3 = _f.sent();
330
+ return [3 /*break*/, 26];
331
+ case 26:
332
+ _c++;
333
+ return [3 /*break*/, 22];
334
+ case 27:
335
+ _d = 0, createdFormGroupIds_1 = createdFormGroupIds;
336
+ _f.label = 28;
337
+ case 28:
338
+ if (!(_d < createdFormGroupIds_1.length)) return [3 /*break*/, 33];
339
+ id = createdFormGroupIds_1[_d];
340
+ _f.label = 29;
341
+ case 29:
342
+ _f.trys.push([29, 31, , 32]);
343
+ return [4 /*yield*/, sdk.api.form_groups.deleteOne(id)];
344
+ case 30:
345
+ _f.sent();
346
+ return [3 /*break*/, 32];
347
+ case 31:
348
+ e_4 = _f.sent();
349
+ return [3 /*break*/, 32];
350
+ case 32:
351
+ _d++;
352
+ return [3 /*break*/, 28];
353
+ case 33:
354
+ _e = 0, createdFormIds_1 = createdFormIds;
355
+ _f.label = 34;
356
+ case 34:
357
+ if (!(_e < createdFormIds_1.length)) return [3 /*break*/, 39];
358
+ id = createdFormIds_1[_e];
359
+ _f.label = 35;
360
+ case 35:
361
+ _f.trys.push([35, 37, , 38]);
362
+ return [4 /*yield*/, sdk.api.forms.deleteOne(id)];
363
+ case 36:
364
+ _f.sent();
365
+ return [3 /*break*/, 38];
366
+ case 37:
367
+ e_5 = _f.sent();
368
+ return [3 /*break*/, 38];
369
+ case 38:
370
+ _e++;
371
+ return [3 /*break*/, 34];
372
+ case 39: return [7 /*endfinally*/];
373
+ case 40: return [2 /*return*/];
374
+ }
375
+ });
376
+ });
377
+ };
378
+ exports.push_forms_to_portal_group_completion_tests = push_forms_to_portal_group_completion_tests;
379
+ if (require.main === module) {
380
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
381
+ var sdk_2 = new sdk_1.Session({ host: host });
382
+ var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
383
+ var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
384
+ return __generator(this, function (_a) {
385
+ switch (_a.label) {
386
+ case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
387
+ case 1:
388
+ _a.sent();
389
+ return [4 /*yield*/, (0, exports.push_forms_to_portal_group_completion_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
390
+ case 2:
391
+ _a.sent();
392
+ return [2 /*return*/];
393
+ }
394
+ });
395
+ }); };
396
+ runTests()
397
+ .then(function () {
398
+ console.log("✅ Push forms to portal group completion test suite completed successfully");
399
+ process.exit(0);
400
+ })
401
+ .catch(function (error) {
402
+ console.error("❌ Push forms to portal group completion test suite failed:", error);
403
+ process.exit(1);
404
+ });
405
+ }
406
+ //# sourceMappingURL=push_forms_to_portal_group_completion.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_forms_to_portal_group_completion.test.js","sourceRoot":"","sources":["../../../../src/tests/api_tests/push_forms_to_portal_group_completion.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Session } from "../../../sdk";
2
+ /**
3
+ * Regression test for F-0001 (security-audit/findings/F-0001-data-sync-bypasses-applyRedactions.md).
4
+ *
5
+ * The /v1/data-sync handler must apply the central applyRedactions() pipeline to
6
+ * every non-deleted record. The original bug: redactions were gated behind
7
+ * `if (session.fieldRedactions && session.fieldRedactions[record.modelName])`
8
+ * which meant any session without role-based field redactions (including all
9
+ * admins) received raw records — leaking schema-level `redactions: ['all']`
10
+ * fields (hashedPass, hashedPassword, hashedInviteCode).
11
+ *
12
+ * This test:
13
+ * 1. Configures a non-admin user with broad read access on users + endusers
14
+ * and NO fieldRedactions — the realistic "regular user with read access"
15
+ * condition that triggers the bypass.
16
+ * 2. Creates an enduser with a password to populate the sync stream.
17
+ * 3. Calls /v1/data-sync as the non-admin.
18
+ * 4. Asserts no returned record contains hashedPass / hashedPassword /
19
+ * hashedInviteCode.
20
+ *
21
+ * Pre-fix: assertion fails with leaked records.
22
+ * Post-fix: assertion passes.
23
+ */
24
+ export declare const data_sync_redaction_bypass_tests: ({ sdk, sdkNonAdmin }: {
25
+ sdk: Session;
26
+ sdkNonAdmin: Session;
27
+ }) => Promise<void>;
28
+ //# sourceMappingURL=F-0001-data-sync-redaction-bypass.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"F-0001-data-sync-redaction-bypass.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/F-0001-data-sync-redaction-bypass.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAwCtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gCAAgC;SAAwC,OAAO;iBAAe,OAAO;mBAqJjH,CAAA"}