@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,85 @@
1
+ import { sanitize_user_html } from "../utils";
2
+ // Standalone unit test for sanitize_user_html (the render-time HTML sanitizer).
3
+ // No test framework in this package — run after building:
4
+ // cd packages/public/utilities && npm run build:cjs && node lib/cjs/tests/sanitize_user_html.test.js
5
+ var failures = 0;
6
+ var check = function (name, condition, detail) {
7
+ if (condition) {
8
+ console.log(" \u2713 ".concat(name));
9
+ }
10
+ else {
11
+ failures++;
12
+ console.error(" \u2717 ".concat(name).concat(detail ? " \u2014 ".concat(detail) : ''));
13
+ }
14
+ };
15
+ var lower = function (s) { return s.toLowerCase(); };
16
+ // A payload is neutralized if the sanitized output contains no executable handler/scheme token.
17
+ var neutralized = function (out) {
18
+ var o = lower(out);
19
+ return !/\son[a-z]+\s*=/.test(o) // no on*= event handlers
20
+ && !o.includes('javascript:')
21
+ && !o.includes('vbscript:')
22
+ && !o.includes('<script')
23
+ && !o.includes('<iframe')
24
+ && !o.includes('<svg')
25
+ && !o.includes('<object')
26
+ && !o.includes('<embed');
27
+ };
28
+ export var sanitize_user_html_tests = function () {
29
+ console.log("sanitize_user_html — neutralizes XSS vectors");
30
+ var xssPayloads = [
31
+ ['img onerror', "<img src=x onerror=\"alert(document.domain)\">"],
32
+ ['svg onload', "<svg onload=\"alert(1)\"></svg>"],
33
+ ['svg animate onbegin', "<svg><animate onbegin=\"alert(1)\" attributeName=\"x\" dur=\"1s\"></svg>"],
34
+ ['details ontoggle', "<details open ontoggle=\"alert(1)\"></details>"],
35
+ ['input onfocus autofocus', "<input autofocus onfocus=\"alert(1)\">"],
36
+ ['body onpageshow', "<body onpageshow=\"alert(1)\">"],
37
+ ['a javascript scheme', "<a href=\"javascript:alert(1)\">x</a>"],
38
+ ['a javascript entity-encoded', "<a href=\"jav&#x09;ascript:alert(1)\">x</a>"],
39
+ ['iframe javascript src', "<iframe src=\"javascript:alert(1)\"></iframe>"],
40
+ ['iframe srcdoc', "<iframe srcdoc=\"<img src=x onerror=alert(1)>\"></iframe>"],
41
+ ['script tag', "<script>alert(1)</script>"],
42
+ ['onerror newline before =', "<img src=x onerror\n=\"alert(1)\">"],
43
+ ['onerror mixed case', "<IMG SRC=x OnErRoR=\"alert(1)\">"],
44
+ ['marquee onstart', "<marquee onstart=\"alert(1)\">x</marquee>"],
45
+ ];
46
+ for (var _i = 0, xssPayloads_1 = xssPayloads; _i < xssPayloads_1.length; _i++) {
47
+ var _a = xssPayloads_1[_i], name_1 = _a[0], payload = _a[1];
48
+ var out = sanitize_user_html(payload);
49
+ check(name_1, neutralized(out), "got: ".concat(out));
50
+ }
51
+ console.log("sanitize_user_html — preserves legitimate customization HTML");
52
+ var out_heading = sanitize_user_html("<h1>Welcome</h1><h3 style=\"color:#333\">Sub</h3>");
53
+ check('headings + style kept', out_heading.includes('<h1>') && out_heading.includes('<h3') && lower(out_heading).includes('color'));
54
+ var out_table = sanitize_user_html("<table><thead><tr><th>H</th></tr></thead><tbody><tr><td style=\"padding:4px\" colspan=\"2\">cell</td></tr></tbody></table>");
55
+ check('table structure kept', out_table.includes('<table') && out_table.includes('<td') && out_table.includes('colspan'));
56
+ var out_list = sanitize_user_html("<ul><li>a</li><li>b</li></ul><ol start=\"3\"><li>c</li></ol>");
57
+ check('lists kept', out_list.includes('<ul') && out_list.includes('<li') && out_list.includes('<ol'));
58
+ var out_link = sanitize_user_html("<a href=\"https://example.com\">link</a>");
59
+ check('safe link href kept', out_link.includes('href="https://example.com"'));
60
+ check('external link hardened with rel=noopener', lower(out_link).includes('noopener'));
61
+ var out_img = sanitize_user_html("<img src=\"https://cdn.example.com/a.png\" alt=\"pic\" width=\"200\">");
62
+ check('http image kept', out_img.includes('src="https://cdn.example.com/a.png"') && out_img.includes('alt="pic"'));
63
+ var out_dataimg = sanitize_user_html("<img src=\"data:image/png;base64,iVBORw0KGgo=\">");
64
+ check('data: image kept', out_dataimg.includes('data:image/png'));
65
+ var out_format = sanitize_user_html("<p><strong>b</strong> <em>i</em> <u>u</u> <span style=\"font-size:14px\">s</span></p><blockquote>q</blockquote>");
66
+ check('inline formatting + inline style kept', out_format.includes('<strong>') && out_format.includes('<span') && lower(out_format).includes('font-size'));
67
+ // Mixed: payload embedded in otherwise-legit content — content survives, handler stripped.
68
+ var out_mixed = sanitize_user_html("<p>Hello <b>name</b></p><img src=x onerror=\"steal()\">");
69
+ check('mixed: legit kept, handler stripped', out_mixed.includes('<b>name</b>') && !/\son[a-z]+\s*=/.test(lower(out_mixed)));
70
+ if (failures > 0) {
71
+ throw new Error("".concat(failures, " sanitize_user_html assertion(s) failed"));
72
+ }
73
+ console.log("✅ sanitize_user_html test suite passed");
74
+ };
75
+ if (require.main === module) {
76
+ try {
77
+ sanitize_user_html_tests();
78
+ process.exit(0);
79
+ }
80
+ catch (err) {
81
+ console.error("❌ sanitize_user_html test suite failed:", err.message);
82
+ process.exit(1);
83
+ }
84
+ }
85
+ //# 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":"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"}
package/lib/esm/utils.js CHANGED
@@ -581,6 +581,11 @@ export var time_for_calendar_event = function (event) {
581
581
  var _b = get_time_values(end), hoursEnd = _b.hoursAmPm, minutesEnd = _b.minutes, amPmEnd = _b.amPm;
582
582
  return "".concat(hoursAmPm, ":").concat(minutes).concat(amPm === amPmEnd ? '' : amPm, "-").concat(hoursEnd, ":").concat(minutesEnd).concat(amPmEnd);
583
583
  };
584
+ /**
585
+ * @deprecated Use {@link sanitize_user_html} for any HTML that will be rendered (e.g. via
586
+ * `dangerouslySetInnerHTML`). This helper is retained for the validation/escaping path, where it
587
+ * operates on plain field values and is intentionally minimal so it does not alter their contents.
588
+ */
584
589
  export var remove_script_tags = function (s) { return s.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, ''); };
585
590
  export var remove_style_tags = function (s) { return s.replace(/<style[\s\S]*?>[\s\S]*?<\/style>/gi, ''); };
586
591
  export var remove_image_tags = function (s) { return s.replace(/<img[\s\S]*?>/gi, ''); };
@@ -664,6 +669,85 @@ export var sanitize_html_for_cms = function (html) {
664
669
  }
665
670
  });
666
671
  };
672
+ /**
673
+ * Canonical sanitizer for HTML that will be rendered (e.g. via `dangerouslySetInnerHTML`):
674
+ * form descriptions/answers, CMS/articles, care plans, templates, chat, community posts,
675
+ * portal HTML blocks, email bodies, etc.
676
+ *
677
+ * Uses an allowlist parser (sanitize-html) tuned to be broad on formatting/structure so
678
+ * legitimate customization is preserved — rich text, headings, lists, tables, images, media,
679
+ * inline styles, and links — while only allowlisted tags, attributes, and URL schemes are kept.
680
+ * If a specific surface needs embeds (e.g. YouTube), add `iframe` with `allowedIframeHostnames`
681
+ * for that surface rather than loosening this shared function.
682
+ */
683
+ export var sanitize_user_html = function (html) {
684
+ if (typeof html !== 'string' || !html)
685
+ return '';
686
+ return sanitizeHtml(html, {
687
+ allowedTags: [
688
+ // text & inline
689
+ 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kbd',
690
+ 'mark', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup',
691
+ 'time', 'u', 'var', 'wbr', 'del', 'ins', 'abbr',
692
+ // block & structure
693
+ 'address', 'article', 'aside', 'blockquote', 'caption', 'details', 'summary', 'div',
694
+ 'figcaption', 'figure', 'footer', 'header', 'hgroup', 'hr', 'main', 'nav', 'p', 'pre',
695
+ 'section',
696
+ // headings
697
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
698
+ // lists
699
+ 'dd', 'dl', 'dt', 'li', 'ol', 'ul',
700
+ // tables
701
+ 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr',
702
+ // media (no iframe/object/embed — those can execute or frame arbitrary content)
703
+ 'img', 'audio', 'video', 'source', 'picture', 'track',
704
+ ],
705
+ allowedAttributes: {
706
+ // NOTE: `id`/`name` are intentionally omitted — caller-controlled id/name enable DOM
707
+ // clobbering (shadowing document/global properties) and duplicate-id breakage, with no
708
+ // legitimate need in rendered user content.
709
+ '*': [
710
+ 'style', 'class', 'title', 'dir', 'lang', 'align', 'valign', 'width', 'height',
711
+ 'color', 'bgcolor', 'aria-*', 'data-*', 'role',
712
+ ],
713
+ a: ['href', 'target', 'rel'],
714
+ img: ['src', 'srcset', 'sizes', 'alt', 'loading', 'decoding'],
715
+ audio: ['controls', 'src', 'preload', 'loop', 'muted'],
716
+ video: ['controls', 'src', 'poster', 'preload', 'loop', 'muted', 'playsinline'],
717
+ source: ['src', 'srcset', 'type', 'media', 'sizes'],
718
+ track: ['src', 'kind', 'srclang', 'label', 'default'],
719
+ col: ['span'],
720
+ colgroup: ['span'],
721
+ td: ['colspan', 'rowspan', 'headers'],
722
+ th: ['colspan', 'rowspan', 'headers', 'scope'],
723
+ ol: ['start', 'reversed', 'type'],
724
+ time: ['datetime'],
725
+ data: ['value'],
726
+ del: ['datetime'],
727
+ ins: ['datetime'],
728
+ },
729
+ // Only safe protocols. javascript:/vbscript: are not listed and are stripped.
730
+ allowedSchemes: ['http', 'https', 'mailto', 'tel'],
731
+ allowedSchemesByTag: {
732
+ img: ['http', 'https', 'data'],
733
+ source: ['http', 'https', 'data'],
734
+ video: ['http', 'https', 'data'],
735
+ audio: ['http', 'https', 'data'],
736
+ },
737
+ allowedSchemesAppliedToAttributes: ['href', 'src', 'srcset'],
738
+ allowProtocolRelative: true,
739
+ // Harden external links against reverse-tabnabbing.
740
+ transformTags: {
741
+ a: function (tagName, attribs) {
742
+ var href = attribs.href || '';
743
+ if (href.startsWith('http://') || href.startsWith('https://')) {
744
+ return { tagName: tagName, attribs: __assign(__assign({}, attribs), { target: '_blank', rel: 'noopener noreferrer' }) };
745
+ }
746
+ return { tagName: tagName, attribs: attribs };
747
+ },
748
+ },
749
+ });
750
+ };
667
751
  export var query_string_for_object = function (query) {
668
752
  var queryString = '';
669
753
  if (query && !object_is_empty(query)) {
@@ -2598,6 +2682,67 @@ export var replace_purchase_template_values = function (s, purchase) {
2598
2682
  }
2599
2683
  return replaced;
2600
2684
  };
2685
+ export var replace_calendar_event_template_values = function (s, event, options) {
2686
+ var _a, _b, _d;
2687
+ if (options === void 0) { options = {}; }
2688
+ if (!event)
2689
+ return s;
2690
+ if (typeof s !== 'string')
2691
+ return s;
2692
+ var i = 0;
2693
+ var start = 0;
2694
+ var templates = [];
2695
+ while (i < 100) {
2696
+ i++;
2697
+ start = s.indexOf('{{calendar_event.', start);
2698
+ if (start === -1)
2699
+ break;
2700
+ var end = s.indexOf('}}', start);
2701
+ if (end === -1)
2702
+ break;
2703
+ var match = s.substring(start, end + 2); // +2 accounts for '}}'
2704
+ var field = match.replace('{{calendar_event.', '').replace('}}', '');
2705
+ var replacement = '';
2706
+ if (field === 'Healthie ID') {
2707
+ replacement = (event.source === HEALTHIE_TITLE && event.externalId
2708
+ ? event.externalId
2709
+ : (_b = (_a = event.references) === null || _a === void 0 ? void 0 : _a.find(function (r) { return r.type === HEALTHIE_TITLE; })) === null || _b === void 0 ? void 0 : _b.id) || '';
2710
+ }
2711
+ else if (field === 'id') {
2712
+ replacement = ((_d = event === null || event === void 0 ? void 0 : event._id) === null || _d === void 0 ? void 0 : _d.toString()) || '';
2713
+ }
2714
+ else if (field === 'start') {
2715
+ try {
2716
+ replacement = new Date(event.startTimeInMS).toISOString();
2717
+ }
2718
+ catch (_e) {
2719
+ replacement = '';
2720
+ }
2721
+ }
2722
+ else {
2723
+ var value = event[field];
2724
+ if (value == null) {
2725
+ replacement = '';
2726
+ }
2727
+ else if (typeof value === 'object') {
2728
+ replacement = options.objectToString === 'jsonEscaped'
2729
+ ? JSON.stringify(JSON.stringify(value)).slice(1, -1)
2730
+ : JSON.stringify(value);
2731
+ }
2732
+ else {
2733
+ replacement = value.toString();
2734
+ }
2735
+ }
2736
+ templates.push({ match: match, replacement: replacement });
2737
+ start = end + 2;
2738
+ }
2739
+ var replaced = s.toString();
2740
+ for (var _i = 0, templates_2 = templates; _i < templates_2.length; _i++) {
2741
+ var _f = templates_2[_i], match = _f.match, replacement = _f.replacement;
2742
+ replaced = replaced.replace(match, replacement);
2743
+ }
2744
+ return replaced;
2745
+ };
2601
2746
  export var replace_medication_template_values = function (s, medication) {
2602
2747
  if (!medication)
2603
2748
  return s;
@@ -2624,8 +2769,8 @@ export var replace_medication_template_values = function (s, medication) {
2624
2769
  start = end + 2;
2625
2770
  }
2626
2771
  var replaced = s.toString();
2627
- for (var _i = 0, templates_2 = templates; _i < templates_2.length; _i++) {
2628
- var _a = templates_2[_i], match = _a.match, replacement = _a.replacement;
2772
+ for (var _i = 0, templates_3 = templates; _i < templates_3.length; _i++) {
2773
+ var _a = templates_3[_i], match = _a.match, replacement = _a.replacement;
2629
2774
  replaced = replaced.replace(match, replacement);
2630
2775
  }
2631
2776
  return replaced;
@@ -2675,8 +2820,8 @@ export var replace_order_template_values = function (s, order) {
2675
2820
  start = end + 2;
2676
2821
  }
2677
2822
  var replaced = s.toString();
2678
- for (var _i = 0, templates_3 = templates; _i < templates_3.length; _i++) {
2679
- var _b = templates_3[_i], match = _b.match, replacement = _b.replacement;
2823
+ for (var _i = 0, templates_4 = templates; _i < templates_4.length; _i++) {
2824
+ var _b = templates_4[_i], match = _b.match, replacement = _b.replacement;
2680
2825
  replaced = replaced.replace(match, replacement);
2681
2826
  }
2682
2827
  return replaced;
@@ -2785,8 +2930,8 @@ export var replace_form_field_template_values = function (s, options) {
2785
2930
  break;
2786
2931
  }
2787
2932
  var replaced = s.toString();
2788
- for (var _i = 0, templates_4 = templates; _i < templates_4.length; _i++) {
2789
- var _l = templates_4[_i], match = _l.match, replacement = _l.replacement;
2933
+ for (var _i = 0, templates_5 = templates; _i < templates_5.length; _i++) {
2934
+ var _l = templates_5[_i], match = _l.match, replacement = _l.replacement;
2790
2935
  replaced = replaced.replace(match, replacement);
2791
2936
  }
2792
2937
  return replaced;
@@ -2811,8 +2956,8 @@ var replacer = function (prefix, s, handleMatch) {
2811
2956
  start = end + 2;
2812
2957
  }
2813
2958
  var replaced = s.toString();
2814
- for (var _i = 0, templates_5 = templates; _i < templates_5.length; _i++) {
2815
- var _a = templates_5[_i], match = _a.match, replacement = _a.replacement;
2959
+ for (var _i = 0, templates_6 = templates; _i < templates_6.length; _i++) {
2960
+ var _a = templates_6[_i], match = _a.match, replacement = _a.replacement;
2816
2961
  replaced = replaced.replace(match, replacement);
2817
2962
  }
2818
2963
  return replaced;
@@ -2876,8 +3021,8 @@ export var replace_enduser_template_values = function (s, enduser, options) {
2876
3021
  start = end + 2;
2877
3022
  }
2878
3023
  var replaced = s.toString();
2879
- for (var _i = 0, templates_6 = templates; _i < templates_6.length; _i++) {
2880
- var _a = templates_6[_i], match = _a.match, replacement = _a.replacement;
3024
+ for (var _i = 0, templates_7 = templates; _i < templates_7.length; _i++) {
3025
+ var _a = templates_7[_i], match = _a.match, replacement = _a.replacement;
2881
3026
  replaced = replaced.replace(match, replacement);
2882
3027
  }
2883
3028
  return replaced;
@@ -2971,8 +3116,12 @@ export var value_for_dotted_key = function (v, key, o) {
2971
3116
  }
2972
3117
  return value;
2973
3118
  };
3119
+ var PROTO_POLLUTION_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
2974
3120
  export var add_value_for_dotted_key = function (_object, field, value) {
2975
3121
  var keys = field.split('.');
3122
+ // Never write through a path that could reach Object.prototype / a constructor.
3123
+ if (keys.some(function (k) { return PROTO_POLLUTION_KEYS.has(k); }))
3124
+ return;
2976
3125
  var object = _object;
2977
3126
  for (var i = 0; i < keys.length; i++) {
2978
3127
  var key = keys[i];