@tellescope/utilities 1.251.0 → 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.
@@ -0,0 +1,2 @@
1
+ export declare const sanitize_user_html_tests: () => void;
2
+ //# sourceMappingURL=sanitize_user_html.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize_user_html.test.d.ts","sourceRoot":"","sources":["../../../src/tests/sanitize_user_html.test.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,wBAAwB,YAwDpC,CAAA"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitize_user_html_tests = void 0;
4
+ var utils_1 = require("../utils");
5
+ // Standalone unit test for sanitize_user_html (the render-time HTML sanitizer).
6
+ // No test framework in this package — run after building:
7
+ // cd packages/public/utilities && npm run build:cjs && node lib/cjs/tests/sanitize_user_html.test.js
8
+ var failures = 0;
9
+ var check = function (name, condition, detail) {
10
+ if (condition) {
11
+ console.log(" \u2713 ".concat(name));
12
+ }
13
+ else {
14
+ failures++;
15
+ console.error(" \u2717 ".concat(name).concat(detail ? " \u2014 ".concat(detail) : ''));
16
+ }
17
+ };
18
+ var lower = function (s) { return s.toLowerCase(); };
19
+ // A payload is neutralized if the sanitized output contains no executable handler/scheme token.
20
+ var neutralized = function (out) {
21
+ var o = lower(out);
22
+ return !/\son[a-z]+\s*=/.test(o) // no on*= event handlers
23
+ && !o.includes('javascript:')
24
+ && !o.includes('vbscript:')
25
+ && !o.includes('<script')
26
+ && !o.includes('<iframe')
27
+ && !o.includes('<svg')
28
+ && !o.includes('<object')
29
+ && !o.includes('<embed');
30
+ };
31
+ var sanitize_user_html_tests = function () {
32
+ console.log("sanitize_user_html — neutralizes XSS vectors");
33
+ var xssPayloads = [
34
+ ['img onerror', "<img src=x onerror=\"alert(document.domain)\">"],
35
+ ['svg onload', "<svg onload=\"alert(1)\"></svg>"],
36
+ ['svg animate onbegin', "<svg><animate onbegin=\"alert(1)\" attributeName=\"x\" dur=\"1s\"></svg>"],
37
+ ['details ontoggle', "<details open ontoggle=\"alert(1)\"></details>"],
38
+ ['input onfocus autofocus', "<input autofocus onfocus=\"alert(1)\">"],
39
+ ['body onpageshow', "<body onpageshow=\"alert(1)\">"],
40
+ ['a javascript scheme', "<a href=\"javascript:alert(1)\">x</a>"],
41
+ ['a javascript entity-encoded', "<a href=\"jav&#x09;ascript:alert(1)\">x</a>"],
42
+ ['iframe javascript src', "<iframe src=\"javascript:alert(1)\"></iframe>"],
43
+ ['iframe srcdoc', "<iframe srcdoc=\"<img src=x onerror=alert(1)>\"></iframe>"],
44
+ ['script tag', "<script>alert(1)</script>"],
45
+ ['onerror newline before =', "<img src=x onerror\n=\"alert(1)\">"],
46
+ ['onerror mixed case', "<IMG SRC=x OnErRoR=\"alert(1)\">"],
47
+ ['marquee onstart', "<marquee onstart=\"alert(1)\">x</marquee>"],
48
+ ];
49
+ for (var _i = 0, xssPayloads_1 = xssPayloads; _i < xssPayloads_1.length; _i++) {
50
+ var _a = xssPayloads_1[_i], name_1 = _a[0], payload = _a[1];
51
+ var out = (0, utils_1.sanitize_user_html)(payload);
52
+ check(name_1, neutralized(out), "got: ".concat(out));
53
+ }
54
+ console.log("sanitize_user_html — preserves legitimate customization HTML");
55
+ var out_heading = (0, utils_1.sanitize_user_html)("<h1>Welcome</h1><h3 style=\"color:#333\">Sub</h3>");
56
+ check('headings + style kept', out_heading.includes('<h1>') && out_heading.includes('<h3') && lower(out_heading).includes('color'));
57
+ var out_table = (0, utils_1.sanitize_user_html)("<table><thead><tr><th>H</th></tr></thead><tbody><tr><td style=\"padding:4px\" colspan=\"2\">cell</td></tr></tbody></table>");
58
+ check('table structure kept', out_table.includes('<table') && out_table.includes('<td') && out_table.includes('colspan'));
59
+ var out_list = (0, utils_1.sanitize_user_html)("<ul><li>a</li><li>b</li></ul><ol start=\"3\"><li>c</li></ol>");
60
+ check('lists kept', out_list.includes('<ul') && out_list.includes('<li') && out_list.includes('<ol'));
61
+ var out_link = (0, utils_1.sanitize_user_html)("<a href=\"https://example.com\">link</a>");
62
+ check('safe link href kept', out_link.includes('href="https://example.com"'));
63
+ check('external link hardened with rel=noopener', lower(out_link).includes('noopener'));
64
+ var out_img = (0, utils_1.sanitize_user_html)("<img src=\"https://cdn.example.com/a.png\" alt=\"pic\" width=\"200\">");
65
+ check('http image kept', out_img.includes('src="https://cdn.example.com/a.png"') && out_img.includes('alt="pic"'));
66
+ var out_dataimg = (0, utils_1.sanitize_user_html)("<img src=\"data:image/png;base64,iVBORw0KGgo=\">");
67
+ check('data: image kept', out_dataimg.includes('data:image/png'));
68
+ var out_format = (0, utils_1.sanitize_user_html)("<p><strong>b</strong> <em>i</em> <u>u</u> <span style=\"font-size:14px\">s</span></p><blockquote>q</blockquote>");
69
+ check('inline formatting + inline style kept', out_format.includes('<strong>') && out_format.includes('<span') && lower(out_format).includes('font-size'));
70
+ // Mixed: payload embedded in otherwise-legit content — content survives, handler stripped.
71
+ var out_mixed = (0, utils_1.sanitize_user_html)("<p>Hello <b>name</b></p><img src=x onerror=\"steal()\">");
72
+ check('mixed: legit kept, handler stripped', out_mixed.includes('<b>name</b>') && !/\son[a-z]+\s*=/.test(lower(out_mixed)));
73
+ if (failures > 0) {
74
+ throw new Error("".concat(failures, " sanitize_user_html assertion(s) failed"));
75
+ }
76
+ console.log("✅ sanitize_user_html test suite passed");
77
+ };
78
+ exports.sanitize_user_html_tests = sanitize_user_html_tests;
79
+ if (require.main === module) {
80
+ try {
81
+ (0, exports.sanitize_user_html_tests)();
82
+ process.exit(0);
83
+ }
84
+ catch (err) {
85
+ console.error("❌ sanitize_user_html test suite failed:", err.message);
86
+ process.exit(1);
87
+ }
88
+ }
89
+ //# sourceMappingURL=sanitize_user_html.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize_user_html.test.js","sourceRoot":"","sources":["../../../src/tests/sanitize_user_html.test.ts"],"names":[],"mappings":"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"}
@@ -173,11 +173,28 @@ export declare const calculate_date_difference_for_set_fields: (dateDifferenceOp
173
173
  } | undefined, enduserFields: Indexable<any> | undefined, fieldName: string, silent?: boolean) => number | '';
174
174
  export declare const fullMonth_day_year: (date: Date) => string;
175
175
  export declare const time_for_calendar_event: (event: Pick<CalendarEvent, 'startTimeInMS' | 'durationInMinutes'>) => string;
176
+ /**
177
+ * @deprecated Use {@link sanitize_user_html} for any HTML that will be rendered (e.g. via
178
+ * `dangerouslySetInnerHTML`). This helper is retained for the validation/escaping path, where it
179
+ * operates on plain field values and is intentionally minimal so it does not alter their contents.
180
+ */
176
181
  export declare const remove_script_tags: (s: string) => string;
177
182
  export declare const remove_style_tags: (s: string) => string;
178
183
  export declare const remove_image_tags: (s: string) => string;
179
184
  export declare const sanitize_html_with_links: (html: string) => string;
180
185
  export declare const sanitize_html_for_cms: (html: string) => string;
186
+ /**
187
+ * Canonical sanitizer for HTML that will be rendered (e.g. via `dangerouslySetInnerHTML`):
188
+ * form descriptions/answers, CMS/articles, care plans, templates, chat, community posts,
189
+ * portal HTML blocks, email bodies, etc.
190
+ *
191
+ * Uses an allowlist parser (sanitize-html) tuned to be broad on formatting/structure so
192
+ * legitimate customization is preserved — rich text, headings, lists, tables, images, media,
193
+ * inline styles, and links — while only allowlisted tags, attributes, and URL schemes are kept.
194
+ * If a specific surface needs embeds (e.g. YouTube), add `iframe` with `allowedIframeHostnames`
195
+ * for that surface rather than loosening this shared function.
196
+ */
197
+ export declare const sanitize_user_html: (html: string) => string;
181
198
  export declare const query_string_for_object: (query: Indexable) => string;
182
199
  export declare const PROD_API_URL = "https://api.tellescope.com";
183
200
  export declare const STAGING_API_URL = "https://staging-api.tellescope.com";
@@ -325,6 +342,9 @@ export type ReplacementOptions = {
325
342
  };
326
343
  export declare const replace_tag_template_values_for_enduser: (tags: string[], enduser: Omit<Enduser, 'id'>, options?: ReplacementOptions) => any[];
327
344
  export declare const replace_purchase_template_values: (s: string, purchase?: Omit<Purchase, 'id'> | null) => string;
345
+ export declare const replace_calendar_event_template_values: (s: string, event?: (Pick<CalendarEvent, 'title' | 'startTimeInMS' | 'durationInMinutes' | 'type' | 'source' | 'externalId' | 'references' | 'videoURL' | 'externalVideoURL' | 'instructions' | 'timezone'> & {
346
+ _id?: any;
347
+ }) | null, options?: ReplacementOptions) => string;
328
348
  export declare const replace_medication_template_values: (s: string, medication?: Omit<EnduserMedication, 'id'> | null) => string;
329
349
  export declare const replace_order_template_values: (s: string, order?: Omit<EnduserOrder, 'id'> | null) => string;
330
350
  export declare const replace_form_field_template_values: (s: string, options: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAA6B,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAiF,iBAAiB,EAAE,uBAAuB,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAsB,YAAY,EAAE,gBAAgB,EAAW,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,cAAc,EAAsD,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAGvsB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB,MAAM,MAAM,SAAS,CAAC,CAAC,GAAC,GAAG,IAAI;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,aAAa,MAAO;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,YAC1C,CAAA;AAElE,eAAO,MAAM,wBAAwB,wBAAmD,CAAA;AACxF,eAAO,MAAM,sBAAsB,wBAAmD,CAAA;AAEtF,eAAO,MAAM,eAAe,MAAQ,MAAM,YAA4D,CAAA;AAEtG,eAAO,MAAM,SAAS,OAAQ,GAAG,YAAQ,CAAA;AACzC,eAAO,MAAM,UAAU,OAAQ,GAAG,YAAoB,CAAA;AACtD,eAAO,MAAM,aAAa,wCADK,GAAG,+BAUjC,CAAA;AACD,eAAO,MAAM,SAAS,QAAS,GAAG,0BAA8D,CAAA;AAGhG,eAAO,MAAM,eAAe,WAAY,MAAM,EAAE,MAAM,SAAS,MAAM,SAAS,mBAQ7E,CAAA;AAGD,eAAO,MAAM,aAAa,yBAAoC,CAAA;AAE9D,eAAO,MAAM,aAAa,wBAAoD,CAAA;AAE9E,eAAO,MAAM,YAAY,0BAA4B,CAAA;AAErD,eAAO,MAAM,kBAAkB,QAAS,GAAG,OAAO,GAAG,YA4BpD,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;+BAa7B,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AACD,eAAO,MAAM,cAAc,UAAW,gBAAgB,YAAY,eAAe,KAAG,kBAAkB,GAAG,IAgBxG,CAAA;AAED,eAAO,MAAM,cAAc,oCAM1B,CAAA;AAED,eAAO,MAAM,eAAe;;;YAW3B,CAAA;AAGD,eAAO,MAAM,mCAAmC,cAAe,MAAM,kBAAkB,MAAM,KAAG,MAe/F,CAAA;AAED,eAAO,MAAM,UAAU,0FAEtB,CAAA;AAGD,eAAO,MAAM,mBAAmB,SAAU,MAAM,cAAc,MAAM;;;QAoDnE,CAAA;AAaD,eAAO,MAAM,gBAAgB,SAAU,MAAM;;;;;;;;CA2C5C,CAAA;AAED,KAAK,gBAAgB,CAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;AAC/C,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAuC,CAAA;AAC5H,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAkD,CAAA;AAC3I,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAwD,CAAA;AACvJ,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAkD,CAAA;AAC3I,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAoD,CAAA;AAChJ,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAqD,CAAA;AAElJ,eAAO,MAAM,eAAe,SAAW,MAAM,WAAiD,CAAA;AAE9F,eAAO,MAAM,gBAAgB,SAAU,MAAM,uBAI5C,CAAA;AAED,eAAO,MAAM,aAAa,MAAO,MAAM,UAAgB,CAAA;AAEvD,eAAO,MAAM,wBAAwB,WAAY,GAAG,EAAE,qBAAqB,GAAG,EAAE,KAAG,MAAM,GAAG,SAmC3F,CAAA;AAED,eAAO,MAAM,IAAI,OAAQ,QAAQ,IAAI,CAAC,+BAEpC,CAAA;AAEF,eAAO,MAAM,cAAc;eAA2B,MAAM,GAAG,IAAI;eAAa,MAAM,GAAG,IAAI;;;;;qBAmB5F,CAAA;AAED,eAAO,MAAM,WAAW,UAavB,CAAA;AAED,eAAO,MAAM,MAAM,UAalB,CAAA;AACD,eAAO,MAAM,eAAe,SAAU,IAAI,YAAY;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;CAkB3E,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAa3C,CAAA;AAED,eAAO,MAAM,oBAAoB,UAAW,KAAK,aAAa,EAAE,eAAe,GAAG,mBAAmB,GAAG,OAAO,GAAE,UAAU,GAAG,aAAa,GAAG,oBAAoB,GAAG,cAAc,GAAG,qBAAqB,GAAG,kBAAkB,CAAC,WAUhO,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAU,IAAI,WAG9C,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,MAGvC,CAAA;AACD,eAAO,MAAM,kBAAkB,SAAU,IAAI,KAAG,MAG/C,CAAA;AACD,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,MAGvC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,eAAgB,MAAM,KAAG,QAAQ,GAAG,IAmBjE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,UAAW,IAAI,GAAG,MAAM,SAAS,IAAI,GAAG,MAAM,KAAG,MAqBzF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,YAAa,MAAM,kBAAkB,UAAU,GAAG,CAAC,KAAG,MAapF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,yCAAyC,aAC1C,MAAM,YACN,MAAM,kBACA,UAAU,GAAG,CAAC,KAC7B,MAKF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wCAAwC,0BAC5B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,iBACpD,UAAU,GAAG,CAAC,GAAG,SAAS,aAC9B,MAAM,uBAEhB,MAAM,GAAG,EAsBX,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU,IAAI,KAAG,MAG/C,CAAA;AAED,eAAO,MAAM,uBAAuB,UAAW,KAAK,aAAa,EAAE,eAAe,GAAG,mBAAmB,CAAC,KAAG,MAO3G,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,MAAO,MAAM,WAA0D,CAAA;AACtG,eAAO,MAAM,iBAAiB,MAAO,MAAM,WAAwD,CAAA;AACnG,eAAO,MAAM,iBAAiB,MAAO,MAAM,WAAqC,CAAA;AAGhF,eAAO,MAAM,wBAAwB,SAAU,MAAM,WAqCjD,CAAA;AAIJ,eAAO,MAAM,qBAAqB,SAAU,MAAM,WA4C9C,CAAA;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,SAAU,MAAM,WAkE9C,CAAA;AAED,eAAO,MAAM,uBAAuB,UAAW,SAAS,WAWvD,CAAA;AAED,eAAO,MAAM,YAAY,+BAA+B,CAAA;AACxD,eAAO,MAAM,eAAe,uCAAuC,CAAA;AACnE,eAAO,MAAM,YAAY,0BAA0B,CAAA;AAEnD,eAAO,MAAM,cAAc,mCAM1B,CAAA;AACD,eAAO,MAAM,SAAS,qGAMrB,CAAA;AACD,eAAO,MAAM,iBAAiB,4OAS7B,CAAA;AACD,eAAO,MAAM,qBAAqB,yIASjC,CAAA;AAGD,eAAO,MAAM,wBAAwB;UAAwC,MAAM,GAAG,SAAS;;YAE9F,CAAA;AACD,eAAO,MAAM,qBAAqB;QAAsE,MAAM;gBAAc,MAAM;;;;YAEjI,CAAA;AACD,eAAO,MAAM,wBAAwB;QAAyE,MAAM;gBAAc,MAAM;;;;YAEvI,CAAA;AAED,eAAO,MAAM,gBAAgB;gBAA0D,MAAM;UAAQ,MAAM;;;YAO1G,CAAA;AAED,eAAO,MAAM,mBAAmB;eAAiC,MAAM;YAOtE,CAAA;AAED,eAAO,MAAM,oBAAoB,UAAW;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAG,CAAA;CAAE,WAAW;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAG,CAAA;CAAE,YAgBxK,CAAA;AAED,eAAO,MAAM,kBAAkB;YAAkC,MAAM,EAAE;WAAS,MAAM,EAAE;aAKzF,CAAA;AAQD,eAAO,MAAM,sBAAsB,SAAU,IAAI,UAAU;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAG,CAAC;IAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,KAAG,OAgBtJ,CAAA;AAED,eAAO,MAAM,uBAAuB,MAAO,GAAG,4BAE7C,CAAA;AAED,eAAO,MAAM,6BAA6B,UAAW,uBAAuB,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,YAAY;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MAuFpN,CAAA;AAED,eAAO,MAAM,qBAAqB,iBAAkB,YAAY,UAAU,MAAM,YAI/E,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAS,MAAM,SAAS,MAAM,SAI9D,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,MAAM,QAI7C,CAAA;AAED,eAAO,MAAM,sBAAsB,MAAO,QAAQ,CAAC,MAAM,CAAC,KAAG,MAM5D,CAAA;AAED,eAAO,MAAM,aAAa,OAAQ,MAAM,QAQvC,CAAA;AAED,eAAO,MAAM,oBAAoB,MAAO,KAAK,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,k4UAQ1E,CAAA;AAED,eAAO,MAAM,aAAa,MAAO,MAAM,WAAgE,CAAA;AAEvG,eAAO,MAAM,oCAAoC,WAAY,KAAK,oBAAoB,EAAE,MAAM,GAAG,QAAQ,CAAC,kBA8BzG,CAAA;AAGD,eAAO,MAAM,sBAAsB,yBAKlC,CAAA;AAED,eAAO,MAAM,0BAA0B,oEAAqE,MAAM,eAAe,OAAO,KAAG,OA+B1I,CAAA;AAED,eAAO,MAAM,gCAAgC,eAC/B,MAAM,GAAG,SAAS,GAAG,IAAI,YAC3B,MAAM,GAAG,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAC5C,OAaF,CAAA;AAED,eAAO,MAAM,+CAA+C,UACnD,MAAM,cACD,eAAe,OAAO,CAAC,KAClC,OAEF,CAAA;AAED,eAAO,MAAM,4BAA4B,uDAAsD,GAAG,EAkBjG,CAAA;AAED,eAAO,MAAM,iCAAiC,8BAA+B,GAAG,KAAK,GAAG,MAkBvF,CAAA;AAyBD,eAAO,MAAM,oBAAoB,aAAc,MAAM,gBAcpD,CAAA;AAED,eAAO,MAAM,+BAA+B,YAAa,KAAK,OAAO,EAAE,IAAI,CAAC,OAAO,MAAM,QA0DxF,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,eAAe,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,eAAe,GAAG,YAAY,CAAC,EAAE,CAAA;CACxE,CAAA;AAED,eAAO,MAAM,wBAAwB,uBAAuB,CAAA;AAE5D,eAAO,MAAM,6CAA6C,YAAa,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,oBAAoB,cAAc,OAAO,MAAM,EAAE,GAAG,CAAC,MAAM;IACtJ,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,YAiPA,CAAA;AAED,eAAO,MAAM,2BAA2B,uBAAwB,MAAM,KAAG,OAexE,CAAA;AAmBD,eAAO,MAAM,gBAAgB,y3UAAqE,CAAA;AAElG,eAAO,MAAM,wBAAwB,aAAc,MAAM,+BAKxD,CAAA;AAED,eAAO,MAAM,wBAAwB,aAAc,MAAM,+BAGxD,CAAA;AAED,eAAO,MAAM,0BAA0B,MAAO,OAAO,qBAuBpD,CAAA;AAED,eAAO,MAAM,sCAAsC,MAAO,OAAO,qBAiBhE,CAAA;AAmWD,eAAO,MAAM,cAAc,YAAa,MAAM,YAAY,OAAO,WAuBhE,CAAA;AAED,eAAO,MAAM,cAAc,MAAO;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;CAAE,YAEtD,CAAA;AAED,eAAO,MAAM,2BAA2B,wDAA6D,KAAK,aAAa,EAAE,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC,KAAG,MAoBvK,CAAA;AAED,eAAO,MAAM,oBAAoB,eAOhC,CAAA;AAED,eAAO,MAAM,WAAW,wBAAyB,MAAM,UActD,CAAA;AAED,eAAO,MAAM,sBAAsB;cAIvB,KAAK,YAAY,EAAE,WAAW,CAAC;UACnC,KAAK,IAAI,EAAE,SAAS,CAAC;;WAgCO,MAAM;WAAS,MAAM;eASxD,CAAA;AAGD,eAAO,MAAM,4BAA4B,UAAiF,CAAA;AAC1H,eAAO,MAAM,wBAAwB,wBAAwB,CAAA;AAE7D,eAAO,MAAM,aAAa,MAAO,KAAK,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC,WAOlE,CAAA;AAED,eAAO,MAAM,4BAA4B,cAAe,iBAAiB,EAAE,KAAG,MAAM,GAAG,SAsBtF,CAAA;AAgCD,eAAO,MAAM,4BAA4B,cAAe,iBAAiB,EAAE,cAAc,eAAe,MAAM,CAAC,YAAY;IACzH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACvC,KAAG,OA4MH,CAAA;AAED,eAAO,MAAM,oBAAoB;iBAClB,wBAAwB,EAAE;WAChC,KAAK,IAAI,EAAE,IAAI,GAAG,0BAA0B,CAAC,EAAE;MACpD,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAyDzB,CAAA;AAED,eAAO,MAAM,kCAAkC,YAAa,KAAK,OAAO,EAAE,WAAW,CAAC,2OAWrF,CAAA;AAED,eAAO,MAAM,gCAAgC,kBAAmB,KAAK,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI,mbAW9F,CAAA;AACD,eAAO,MAAM,4BAA4B,UAAW,KAAK,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,2HAK1E,CAAA;AACD,eAAO,MAAM,2BAA2B,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,qSAW/E,CAAA;AAED,eAAO,MAAM,iBAAiB,MAAO,MAAM,WAI1C,CAAA;AAED,eAAO,MAAM,yBAAyB,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,iPAU7E,CAAA;AAED,eAAO,MAAM,gCAAgC,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,2NASpF,CAAA;AAED,eAAO,MAAM,8BAA8B,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,gYAqBlF,CAAA;AAED,eAAO,MAAM,gCAAgC,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,sSAepF,CAAA;AAED,eAAO,MAAM,mCAAmC,aAAc,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,kBAAkB,MAAM,mbA2B/G,CAAA;AACD,eAAO,MAAM,gCAAgC,UAAW,KAAK,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,gHAM9E,CAAA;AACD,eAAO,MAAM,wCAAwC,kBAAmB,KAAK,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI,yUAQtG,CAAA;AAGD,eAAO,MAAM,SAAS;SAAqB,MAAM;QAAS,MAAM,aAY/D,CAAA;AAED,eAAO,MAAM,qBAAqB,sBAAwB,KAAK,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,YAO5F,CAAA;AACD,eAAO,MAAM,oBAAoB,sBAAwB,KAAK,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,YAK3F,CAAA;AAED,eAAO,MAAM,0BAA0B,eAAgB,eAAe,SAAS,MAAM,YAMpF,CAAA;AAED,eAAO,MAAM,wBAAwB,UAA8D,CAAA;AAEnG,eAAO,MAAM,wBAAwB,MAAO,KAAK,kBAAkB,EAAE,aAAa,GAAG,iBAAiB,CAAC,kBAAkB,kBAAkB,EAAE,WAW5I,CAAA;AAGD,eAAO,MAAM,wBAAwB,MAAO,MAAM,cAAc,MAAM,uBASrE,CAAA;AAED,eAAO,MAAM,gBAAgB,WACnB,KAAK,iBAAiB,EAAE,sCAAsC,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,QAAQ,CAAC,EAAE,88UAqCjI,CAAA;AAED,eAAO,MAAM,cAAc,sBAW1B,CAAA;AAED,eAAO,MAAM,yBAAyB,cAAe,MAAM,WA8B1D,CAAA;AAGD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CACzC,CAAA;AAED,eAAO,MAAM,uCAAuC,SAAU,MAAM,EAAE,WAAW,KAAK,OAAO,EAAE,IAAI,CAAC,wCAqCnG,CAAA;AAGD,eAAO,MAAM,gCAAgC,MAAO,MAAM,aAAa,KAAK,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,WAsCjG,CAAA;AAED,eAAO,MAAM,sCAAsC,MAC9C,MAAM,UACD,CAAC,KAAK,aAAa,EAAE,OAAO,GAAG,eAAe,GAAG,mBAAmB,GACxE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,GACjF,cAAc,GAAG,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,IAAI,YAC/C,kBAAkB,WAwD5B,CAAA;AAED,eAAO,MAAM,kCAAkC,MAAO,MAAM,eAAe,KAAK,iBAAiB,EAAE,IAAI,CAAC,GAAG,IAAI,WAmC9G,CAAA;AAED,eAAO,MAAM,6BAA6B,MAAO,MAAM,UAAU,KAAK,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI,WAqD/F,CAAA;AAED,eAAO,MAAM,kCAAkC,MAC1C,MAAM;;;;YA0HV,CAAA;AAgCD,eAAO,MAAM,2BAA2B,MAAO,MAAM,QAAQ,KAAK,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,WAWzF,CAAA;AAED,eAAO,MAAM,gBAAgB,MAAO,MAAM,aAYzC,CAAA;AACD,eAAO,MAAM,qBAAqB,MAAO,MAAM,iBAAiB,KAAK,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,WAQ9G,CAAA;AAED,eAAO,MAAM,+BAA+B,MAAO,MAAM,YAAY,KAAK,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,yCA+B9F,CAAA;AAED,eAAO,MAAM,wBAAwB,aAAc,MAAM,WAMxD,CAAA;AAGD,eAAO,MAAM,4BAA4B,MAAO,MAAM,KAAG,IAAI,GAAG,SAgB/D,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,MAAM,EAAE,oBAAoB,MAAM,uBAclF,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;kBAAkJ,MAAM,EAuCxL,CAAA;AAED,eAAO,MAAM,oBAAoB,MAAO,GAAG,OAAO,MAAM,MAAM;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,GAYzF,CAAA;AAID,eAAO,MAAM,wBAAwB,YAAa,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,SAAS,GAAG,SAe5F,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,aAAa,EAStD,CAAA;AAED,eAAO,MAAM,0BAA0B,WAAY,SAAS,EAAE,WAAW,OAAO,sBAAsB,iBAAiB,EAAE;;;;;;;;;GAiExH,CAAA;AAED,eAAO,MAAM,YAAY,SAAU,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM;;;;UAoBrE,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,GAAG,+3UAA4F,CAAA;AAElI,eAAO,MAAM,sBAAsB,MAAO,OAAO,WAEhD,CAAA;AACD,eAAO,MAAM,wBAAwB,OAAQ,gBAAgB,WAE5D,CAAA;AAED,eAAO,MAAM,kDAAkD,OAAQ,YAAY,GAAG;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,YAOvG,CAAA;AAED,eAAO,MAAM,aAAa,MAAO,KAAK,OAAO,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC,uBAIrF,CAAA;AAED,eAAO,MAAM,8BAA8B,WAAY,MAAM,WAU5D,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,MAAM,MAAM,OAAO,WAQvD,CAAA;AAED,eAAO,MAAM,8BAA8B,WAAY,GAAG,oBASzD,CAAA;AAED,eAAO,MAAM,qBAAqB,MAAO,KAAK,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAAC,uBAOvF,CAAA;AAED,eAAO,MAAM,cAAc;WAA0C,MAAM;UAgB1E,CAAA;AAGD,eAAO,MAAM,gBAAgB,MAAO,MAAM,aAuBzC,CAAA;AAGD,eAAO,MAAM,+BAA+B,MAAO,MAAM,aAAa;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,WAqBrG,CAAA;AAED,eAAO,MAAM,sBAAsB,MAAO,KAAK,OAAO,EAAE,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC,oBAAoB,MAAM,uBAExH,CAAA;AAGD,eAAO,MAAM,qCAAqC,MAAO,MAAM,iBAAiB,KAAK,YAAY,EAAE,WAAW,CAAC,GAAG,IAAI,WAiCrH,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC;uBAQ3B,MAAM;gBACb,MAAM;YACV,MAAM;;;uBAEyB,MAAM;;mBAAkC,MAAM;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;;cAC1F,MAAM;MACd,OAmFH,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gCAAgC,eAC/B,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,eACrC,IAAI,MAAM,CAAC,KACvB,MAAM,EA2DR,CAAA;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,EAAE,EACrE,QAAQ,CAAC,EAAE,IAAI,GACd,MAAM,CAmBR;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CASjD"}
package/lib/cjs/utils.js CHANGED
@@ -35,9 +35,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.time_for_calendar_event = exports.fullMonth_day_year = exports.calculate_date_difference_for_set_fields = exports.calculate_days_between_dates_from_enduser = exports.resolve_date_value = exports.calculate_days_between_dates = exports.parse_date_string = exports.mm_dd_yyyy = exports.yyyy_mm_dd_numeric = exports.yyyy_mm_dd = exports.formatted_date_hh_mm = exports.get_add_to_gcal_link = exports.formatted_date = exports.get_time_values = exports.MONTHS = exports.MONTHS_FULL = exports.sorted_records = exports.wait = exports.findFirstUnansweredField = exports.throwFunction = exports.ensure_https_url = exports.to_absolute_url = exports.build_portal_link_string = exports.build_content_link_string = exports.build_file_link_string = exports.build_form_group_link_string = exports.build_form_link_string = exports.build_link_string = exports.getTemplatedData = exports.parse_link_template = exports.map_object = exports.format_stripe_subscription_interval = exports.truncate_string = exports.defined_fields = exports.user_is_active = exports.user_display_name = exports.objects_equivalent = exports.to_object_id = exports.url_safe_path = exports.is_whitespace = exports.matching_fields = exports.is_object = exports.filter_object = exports.is_defined = exports.is_truthy = exports.object_is_empty = exports.first_letter_lowercase = exports.first_letter_capitalized = exports.user_is_admin = exports.ObjectId = void 0;
38
- exports.get_next_reminder_timestamp = exports.mfa_is_enabled = exports.URIDecodeEmail = exports.get_recent_outbound_communication_date = exports.get_recent_engagement_date = exports.MM_DD_YYYY_to_YYYY_MM_DD = exports.YYYY_MM_DD_to_MM_DD_YYYY = exports.getLocalTimezone = exports.string_matches_key_or_value = exports.evaluate_conditional_logic_for_enduser_fields = exports.UPCOMING_EVENT_COUNT_KEY = exports.get_enduser_field_value_for_key = exports.age_for_dob_mmddyyyy = exports.replace_keys_and_values_in_object = exports.get_conditional_logic_values = exports.evaluate_conditional_logic_for_medication_title = exports.evaluate_string_field_comparison = exports.evaluate_conditional_logic = exports.shuffle_array_in_place = exports.plaintext_for_managed_content_record = exports.sanitize_html = exports.timezone_for_enduser = exports.safeJSONParse = exports.payment_cost_to_string = exports.read_local_storage = exports.update_local_storage = exports.is_organization_owner = exports.form_response_value_to_string = exports.is_table_input_response = exports.user_has_record_access = exports.is_suborganization = exports.matches_organization = exports.getDefaultPortalURL = exports.getPublicFileURL = exports.getOrgnizationFaviconURL = exports.getOrgnizationLogoURL = exports.getBuiltInPublicFileName = exports.getGoogleClientAPIKey = exports.getGoogleClientId = exports.getApiURL = exports.getEnvironment = exports.TEST_API_URL = exports.STAGING_API_URL = exports.PROD_API_URL = exports.query_string_for_object = exports.sanitize_html_for_cms = exports.sanitize_html_with_links = exports.remove_image_tags = exports.remove_style_tags = exports.remove_script_tags = void 0;
39
- exports.is_timezone = exports.downloadFile = exports.get_prepopulated_responses = exports.INVALID_PREPOPULATION_TYPES = exports.add_value_for_dotted_key = exports.value_for_dotted_key = exports.get_flattened_fields = exports.skip_due_date_as_needed = exports.is_full_iso_string_heuristic = exports.display_time_for_seconds = exports.replace_enduser_template_values = exports.replace_secret_values = exports.get_secret_names = exports.replace_sms_template_values = exports.replace_form_field_template_values = exports.replace_order_template_values = exports.replace_medication_template_values = exports.replace_purchase_template_values = exports.replace_tag_template_values_for_enduser = exports.append_current_utm_params = exports.get_utm_params = exports.is_out_of_office = exports.color_for_classification = exports.classification_for_vital = exports.SMS_UNSUBSCRIBE_KEYWORDS = exports.satisfies_vital_comparison = exports.field_can_autosubmit = exports.field_can_autoadvance = exports.decodeJWT = exports.validate_organization_for_develop_health = exports.validate_user_for_develop_health = exports.validate_enduser_for_develop_health = exports.validate_enduser_for_script_sure = exports.validate_enduser_for_dose_spot = exports.validate_enduser_for_smart_meter = exports.validate_enduser_for_gogo = exports.json_error_string = exports.validate_enduser_for_candid = exports.validate_provider_for_candid = exports.validate_organization_for_candid = exports.validate_insurance_for_eligibility = exports.weighted_round_robin = exports.responses_satisfy_conditions = exports.calculate_bmi_from_responses = exports.calculate_bmi = exports.FORM_LOGIC_URL_PARAMETER = exports.FORM_LOGIC_CALCULATED_FIELDS = exports.calculate_form_scoring = exports.batch_array = exports.capture_is_supported = void 0;
40
- exports.formatDuration = exports.calculateTimeTrackDuration = exports.validate_custom_field_references = exports.slot_violates_calendar_event_limits = exports.replace_form_response_template_values = exports.resolve_integration_id = exports.replace_snippet_template_values = exports.get_snippet_keys = exports.emit_gtm_event = exports.get_care_team_primary = exports.is_checkbox_custom_field_value = exports.enrich_doxy_url = exports.to_human_readable_phone_number = exports.get_canvas_id = exports.should_show_unsubmitted_form_response_for_interval = exports.enduser_insurance_string = exports.enduser_address_string = void 0;
38
+ exports.mfa_is_enabled = exports.URIDecodeEmail = exports.get_recent_outbound_communication_date = exports.get_recent_engagement_date = exports.MM_DD_YYYY_to_YYYY_MM_DD = exports.YYYY_MM_DD_to_MM_DD_YYYY = exports.getLocalTimezone = exports.string_matches_key_or_value = exports.evaluate_conditional_logic_for_enduser_fields = exports.UPCOMING_EVENT_COUNT_KEY = exports.get_enduser_field_value_for_key = exports.age_for_dob_mmddyyyy = exports.replace_keys_and_values_in_object = exports.get_conditional_logic_values = exports.evaluate_conditional_logic_for_medication_title = exports.evaluate_string_field_comparison = exports.evaluate_conditional_logic = exports.shuffle_array_in_place = exports.plaintext_for_managed_content_record = exports.sanitize_html = exports.timezone_for_enduser = exports.safeJSONParse = exports.payment_cost_to_string = exports.read_local_storage = exports.update_local_storage = exports.is_organization_owner = exports.form_response_value_to_string = exports.is_table_input_response = exports.user_has_record_access = exports.is_suborganization = exports.matches_organization = exports.getDefaultPortalURL = exports.getPublicFileURL = exports.getOrgnizationFaviconURL = exports.getOrgnizationLogoURL = exports.getBuiltInPublicFileName = exports.getGoogleClientAPIKey = exports.getGoogleClientId = exports.getApiURL = exports.getEnvironment = exports.TEST_API_URL = exports.STAGING_API_URL = exports.PROD_API_URL = exports.query_string_for_object = exports.sanitize_user_html = exports.sanitize_html_for_cms = exports.sanitize_html_with_links = exports.remove_image_tags = exports.remove_style_tags = exports.remove_script_tags = void 0;
39
+ exports.get_prepopulated_responses = exports.INVALID_PREPOPULATION_TYPES = exports.add_value_for_dotted_key = exports.value_for_dotted_key = exports.get_flattened_fields = exports.skip_due_date_as_needed = exports.is_full_iso_string_heuristic = exports.display_time_for_seconds = exports.replace_enduser_template_values = exports.replace_secret_values = exports.get_secret_names = exports.replace_sms_template_values = exports.replace_form_field_template_values = exports.replace_order_template_values = exports.replace_medication_template_values = exports.replace_calendar_event_template_values = exports.replace_purchase_template_values = exports.replace_tag_template_values_for_enduser = exports.append_current_utm_params = exports.get_utm_params = exports.is_out_of_office = exports.color_for_classification = exports.classification_for_vital = exports.SMS_UNSUBSCRIBE_KEYWORDS = exports.satisfies_vital_comparison = exports.field_can_autosubmit = exports.field_can_autoadvance = exports.decodeJWT = exports.validate_organization_for_develop_health = exports.validate_user_for_develop_health = exports.validate_enduser_for_develop_health = exports.validate_enduser_for_script_sure = exports.validate_enduser_for_dose_spot = exports.validate_enduser_for_smart_meter = exports.validate_enduser_for_gogo = exports.json_error_string = exports.validate_enduser_for_candid = exports.validate_provider_for_candid = exports.validate_organization_for_candid = exports.validate_insurance_for_eligibility = exports.weighted_round_robin = exports.responses_satisfy_conditions = exports.calculate_bmi_from_responses = exports.calculate_bmi = exports.FORM_LOGIC_URL_PARAMETER = exports.FORM_LOGIC_CALCULATED_FIELDS = exports.calculate_form_scoring = exports.batch_array = exports.capture_is_supported = exports.get_next_reminder_timestamp = void 0;
40
+ exports.formatDuration = exports.calculateTimeTrackDuration = exports.validate_custom_field_references = exports.slot_violates_calendar_event_limits = exports.replace_form_response_template_values = exports.resolve_integration_id = exports.replace_snippet_template_values = exports.get_snippet_keys = exports.emit_gtm_event = exports.get_care_team_primary = exports.is_checkbox_custom_field_value = exports.enrich_doxy_url = exports.to_human_readable_phone_number = exports.get_canvas_id = exports.should_show_unsubmitted_form_response_for_interval = exports.enduser_insurance_string = exports.enduser_address_string = exports.is_timezone = exports.downloadFile = void 0;
41
41
  var types_models_1 = require("@tellescope/types-models");
42
42
  var constants_1 = require("@tellescope/constants");
43
43
  var sanitize_html_1 = __importDefault(require("sanitize-html"));
@@ -637,6 +637,11 @@ var time_for_calendar_event = function (event) {
637
637
  return "".concat(hoursAmPm, ":").concat(minutes).concat(amPm === amPmEnd ? '' : amPm, "-").concat(hoursEnd, ":").concat(minutesEnd).concat(amPmEnd);
638
638
  };
639
639
  exports.time_for_calendar_event = time_for_calendar_event;
640
+ /**
641
+ * @deprecated Use {@link sanitize_user_html} for any HTML that will be rendered (e.g. via
642
+ * `dangerouslySetInnerHTML`). This helper is retained for the validation/escaping path, where it
643
+ * operates on plain field values and is intentionally minimal so it does not alter their contents.
644
+ */
640
645
  var remove_script_tags = function (s) { return s.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, ''); };
641
646
  exports.remove_script_tags = remove_script_tags;
642
647
  var remove_style_tags = function (s) { return s.replace(/<style[\s\S]*?>[\s\S]*?<\/style>/gi, ''); };
@@ -725,6 +730,86 @@ var sanitize_html_for_cms = function (html) {
725
730
  });
726
731
  };
727
732
  exports.sanitize_html_for_cms = sanitize_html_for_cms;
733
+ /**
734
+ * Canonical sanitizer for HTML that will be rendered (e.g. via `dangerouslySetInnerHTML`):
735
+ * form descriptions/answers, CMS/articles, care plans, templates, chat, community posts,
736
+ * portal HTML blocks, email bodies, etc.
737
+ *
738
+ * Uses an allowlist parser (sanitize-html) tuned to be broad on formatting/structure so
739
+ * legitimate customization is preserved — rich text, headings, lists, tables, images, media,
740
+ * inline styles, and links — while only allowlisted tags, attributes, and URL schemes are kept.
741
+ * If a specific surface needs embeds (e.g. YouTube), add `iframe` with `allowedIframeHostnames`
742
+ * for that surface rather than loosening this shared function.
743
+ */
744
+ var sanitize_user_html = function (html) {
745
+ if (typeof html !== 'string' || !html)
746
+ return '';
747
+ return (0, sanitize_html_1.default)(html, {
748
+ allowedTags: [
749
+ // text & inline
750
+ 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kbd',
751
+ 'mark', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup',
752
+ 'time', 'u', 'var', 'wbr', 'del', 'ins', 'abbr',
753
+ // block & structure
754
+ 'address', 'article', 'aside', 'blockquote', 'caption', 'details', 'summary', 'div',
755
+ 'figcaption', 'figure', 'footer', 'header', 'hgroup', 'hr', 'main', 'nav', 'p', 'pre',
756
+ 'section',
757
+ // headings
758
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
759
+ // lists
760
+ 'dd', 'dl', 'dt', 'li', 'ol', 'ul',
761
+ // tables
762
+ 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr',
763
+ // media (no iframe/object/embed — those can execute or frame arbitrary content)
764
+ 'img', 'audio', 'video', 'source', 'picture', 'track',
765
+ ],
766
+ allowedAttributes: {
767
+ // NOTE: `id`/`name` are intentionally omitted — caller-controlled id/name enable DOM
768
+ // clobbering (shadowing document/global properties) and duplicate-id breakage, with no
769
+ // legitimate need in rendered user content.
770
+ '*': [
771
+ 'style', 'class', 'title', 'dir', 'lang', 'align', 'valign', 'width', 'height',
772
+ 'color', 'bgcolor', 'aria-*', 'data-*', 'role',
773
+ ],
774
+ a: ['href', 'target', 'rel'],
775
+ img: ['src', 'srcset', 'sizes', 'alt', 'loading', 'decoding'],
776
+ audio: ['controls', 'src', 'preload', 'loop', 'muted'],
777
+ video: ['controls', 'src', 'poster', 'preload', 'loop', 'muted', 'playsinline'],
778
+ source: ['src', 'srcset', 'type', 'media', 'sizes'],
779
+ track: ['src', 'kind', 'srclang', 'label', 'default'],
780
+ col: ['span'],
781
+ colgroup: ['span'],
782
+ td: ['colspan', 'rowspan', 'headers'],
783
+ th: ['colspan', 'rowspan', 'headers', 'scope'],
784
+ ol: ['start', 'reversed', 'type'],
785
+ time: ['datetime'],
786
+ data: ['value'],
787
+ del: ['datetime'],
788
+ ins: ['datetime'],
789
+ },
790
+ // Only safe protocols. javascript:/vbscript: are not listed and are stripped.
791
+ allowedSchemes: ['http', 'https', 'mailto', 'tel'],
792
+ allowedSchemesByTag: {
793
+ img: ['http', 'https', 'data'],
794
+ source: ['http', 'https', 'data'],
795
+ video: ['http', 'https', 'data'],
796
+ audio: ['http', 'https', 'data'],
797
+ },
798
+ allowedSchemesAppliedToAttributes: ['href', 'src', 'srcset'],
799
+ allowProtocolRelative: true,
800
+ // Harden external links against reverse-tabnabbing.
801
+ transformTags: {
802
+ a: function (tagName, attribs) {
803
+ var href = attribs.href || '';
804
+ if (href.startsWith('http://') || href.startsWith('https://')) {
805
+ return { tagName: tagName, attribs: __assign(__assign({}, attribs), { target: '_blank', rel: 'noopener noreferrer' }) };
806
+ }
807
+ return { tagName: tagName, attribs: attribs };
808
+ },
809
+ },
810
+ });
811
+ };
812
+ exports.sanitize_user_html = sanitize_user_html;
728
813
  var query_string_for_object = function (query) {
729
814
  var queryString = '';
730
815
  if (query && !(0, exports.object_is_empty)(query)) {
@@ -2730,6 +2815,68 @@ var replace_purchase_template_values = function (s, purchase) {
2730
2815
  return replaced;
2731
2816
  };
2732
2817
  exports.replace_purchase_template_values = replace_purchase_template_values;
2818
+ var replace_calendar_event_template_values = function (s, event, options) {
2819
+ var _a, _b, _d;
2820
+ if (options === void 0) { options = {}; }
2821
+ if (!event)
2822
+ return s;
2823
+ if (typeof s !== 'string')
2824
+ return s;
2825
+ var i = 0;
2826
+ var start = 0;
2827
+ var templates = [];
2828
+ while (i < 100) {
2829
+ i++;
2830
+ start = s.indexOf('{{calendar_event.', start);
2831
+ if (start === -1)
2832
+ break;
2833
+ var end = s.indexOf('}}', start);
2834
+ if (end === -1)
2835
+ break;
2836
+ var match = s.substring(start, end + 2); // +2 accounts for '}}'
2837
+ var field = match.replace('{{calendar_event.', '').replace('}}', '');
2838
+ var replacement = '';
2839
+ if (field === 'Healthie ID') {
2840
+ replacement = (event.source === constants_1.HEALTHIE_TITLE && event.externalId
2841
+ ? event.externalId
2842
+ : (_b = (_a = event.references) === null || _a === void 0 ? void 0 : _a.find(function (r) { return r.type === constants_1.HEALTHIE_TITLE; })) === null || _b === void 0 ? void 0 : _b.id) || '';
2843
+ }
2844
+ else if (field === 'id') {
2845
+ replacement = ((_d = event === null || event === void 0 ? void 0 : event._id) === null || _d === void 0 ? void 0 : _d.toString()) || '';
2846
+ }
2847
+ else if (field === 'start') {
2848
+ try {
2849
+ replacement = new Date(event.startTimeInMS).toISOString();
2850
+ }
2851
+ catch (_e) {
2852
+ replacement = '';
2853
+ }
2854
+ }
2855
+ else {
2856
+ var value = event[field];
2857
+ if (value == null) {
2858
+ replacement = '';
2859
+ }
2860
+ else if (typeof value === 'object') {
2861
+ replacement = options.objectToString === 'jsonEscaped'
2862
+ ? JSON.stringify(JSON.stringify(value)).slice(1, -1)
2863
+ : JSON.stringify(value);
2864
+ }
2865
+ else {
2866
+ replacement = value.toString();
2867
+ }
2868
+ }
2869
+ templates.push({ match: match, replacement: replacement });
2870
+ start = end + 2;
2871
+ }
2872
+ var replaced = s.toString();
2873
+ for (var _i = 0, templates_2 = templates; _i < templates_2.length; _i++) {
2874
+ var _f = templates_2[_i], match = _f.match, replacement = _f.replacement;
2875
+ replaced = replaced.replace(match, replacement);
2876
+ }
2877
+ return replaced;
2878
+ };
2879
+ exports.replace_calendar_event_template_values = replace_calendar_event_template_values;
2733
2880
  var replace_medication_template_values = function (s, medication) {
2734
2881
  if (!medication)
2735
2882
  return s;
@@ -2756,8 +2903,8 @@ var replace_medication_template_values = function (s, medication) {
2756
2903
  start = end + 2;
2757
2904
  }
2758
2905
  var replaced = s.toString();
2759
- for (var _i = 0, templates_2 = templates; _i < templates_2.length; _i++) {
2760
- var _a = templates_2[_i], match = _a.match, replacement = _a.replacement;
2906
+ for (var _i = 0, templates_3 = templates; _i < templates_3.length; _i++) {
2907
+ var _a = templates_3[_i], match = _a.match, replacement = _a.replacement;
2761
2908
  replaced = replaced.replace(match, replacement);
2762
2909
  }
2763
2910
  return replaced;
@@ -2808,8 +2955,8 @@ var replace_order_template_values = function (s, order) {
2808
2955
  start = end + 2;
2809
2956
  }
2810
2957
  var replaced = s.toString();
2811
- for (var _i = 0, templates_3 = templates; _i < templates_3.length; _i++) {
2812
- var _b = templates_3[_i], match = _b.match, replacement = _b.replacement;
2958
+ for (var _i = 0, templates_4 = templates; _i < templates_4.length; _i++) {
2959
+ var _b = templates_4[_i], match = _b.match, replacement = _b.replacement;
2813
2960
  replaced = replaced.replace(match, replacement);
2814
2961
  }
2815
2962
  return replaced;
@@ -2919,8 +3066,8 @@ var replace_form_field_template_values = function (s, options) {
2919
3066
  break;
2920
3067
  }
2921
3068
  var replaced = s.toString();
2922
- for (var _i = 0, templates_4 = templates; _i < templates_4.length; _i++) {
2923
- var _l = templates_4[_i], match = _l.match, replacement = _l.replacement;
3069
+ for (var _i = 0, templates_5 = templates; _i < templates_5.length; _i++) {
3070
+ var _l = templates_5[_i], match = _l.match, replacement = _l.replacement;
2924
3071
  replaced = replaced.replace(match, replacement);
2925
3072
  }
2926
3073
  return replaced;
@@ -2946,8 +3093,8 @@ var replacer = function (prefix, s, handleMatch) {
2946
3093
  start = end + 2;
2947
3094
  }
2948
3095
  var replaced = s.toString();
2949
- for (var _i = 0, templates_5 = templates; _i < templates_5.length; _i++) {
2950
- var _a = templates_5[_i], match = _a.match, replacement = _a.replacement;
3096
+ for (var _i = 0, templates_6 = templates; _i < templates_6.length; _i++) {
3097
+ var _a = templates_6[_i], match = _a.match, replacement = _a.replacement;
2951
3098
  replaced = replaced.replace(match, replacement);
2952
3099
  }
2953
3100
  return replaced;
@@ -3014,8 +3161,8 @@ var replace_enduser_template_values = function (s, enduser, options) {
3014
3161
  start = end + 2;
3015
3162
  }
3016
3163
  var replaced = s.toString();
3017
- for (var _i = 0, templates_6 = templates; _i < templates_6.length; _i++) {
3018
- var _a = templates_6[_i], match = _a.match, replacement = _a.replacement;
3164
+ for (var _i = 0, templates_7 = templates; _i < templates_7.length; _i++) {
3165
+ var _a = templates_7[_i], match = _a.match, replacement = _a.replacement;
3019
3166
  replaced = replaced.replace(match, replacement);
3020
3167
  }
3021
3168
  return replaced;
@@ -3115,8 +3262,12 @@ var value_for_dotted_key = function (v, key, o) {
3115
3262
  return value;
3116
3263
  };
3117
3264
  exports.value_for_dotted_key = value_for_dotted_key;
3265
+ var PROTO_POLLUTION_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
3118
3266
  var add_value_for_dotted_key = function (_object, field, value) {
3119
3267
  var keys = field.split('.');
3268
+ // Never write through a path that could reach Object.prototype / a constructor.
3269
+ if (keys.some(function (k) { return PROTO_POLLUTION_KEYS.has(k); }))
3270
+ return;
3120
3271
  var object = _object;
3121
3272
  for (var i = 0; i < keys.length; i++) {
3122
3273
  var key = keys[i];