@tellescope/utilities 1.49.4 → 1.50.1

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.
package/src/utils.ts CHANGED
@@ -352,6 +352,7 @@ export const time_for_calendar_event = (event: Pick<CalendarEvent, 'startTimeInM
352
352
  }
353
353
 
354
354
  export const remove_script_tags = (s: string) => s.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, '')
355
+ export const remove_style_tags = (s: string) => s.replace(/<style[\s\S]*?>[\s\S]*?<\/style>/gi, '')
355
356
  export const remove_image_tags = (s: string) => s.replace(/<img[\s\S]*?>/gi, '')
356
357
 
357
358
  export const query_string_for_object = (query: Indexable) => {
@@ -855,4 +856,381 @@ export const get_recent_outbound_communication_date = (e: Enduser) => {
855
856
 
856
857
  const max = dates.sort().pop()
857
858
  return max ? new Date(max) : undefined
858
- }
859
+ }
860
+
861
+ // https://www.w3schools.com/tags/ref_urlencode.ASP
862
+ // AWS provides = instead of % for some reason, so handle accoringly
863
+ const URIReplacements = {
864
+ "=21": "!",
865
+ "=22": "\"",
866
+ "=23": "#",
867
+ "=24": "$",
868
+ "=25": "%",
869
+ "=26": "&",
870
+ "=27": "'",
871
+ "=28": "(",
872
+ "=29": ")",
873
+ "=2A": "*",
874
+ "=2B": "=+",
875
+ "=2C": ",",
876
+ "=2D": "-",
877
+ "=2E": ".",
878
+ "=2F": "/",
879
+ "=30": "0",
880
+ "=31": "1",
881
+ "=32": "2",
882
+ "=33": "3",
883
+ "=34": "4",
884
+ "=35": "5",
885
+ "=36": "6",
886
+ "=37": "7",
887
+ "=38": "8",
888
+ "=39": "9",
889
+ "=3A": ":",
890
+ "=3B": ";",
891
+ "=3C": "<",
892
+ "=3D": "=",
893
+ "=3E": ">",
894
+ "=3F": "?",
895
+ "=40": "@",
896
+ "=41": "A",
897
+ "=42": "B",
898
+ "=43": "C",
899
+ "=44": "D",
900
+ "=45": "E",
901
+ "=46": "F",
902
+ "=47": "G",
903
+ "=48": "H",
904
+ "=49": "I",
905
+ "=4A": "J",
906
+ "=4B": "K",
907
+ "=4C": "L",
908
+ "=4D": "M",
909
+ "=4E": "N",
910
+ "=4F": "O",
911
+ "=50": "P",
912
+ "=51": "Q",
913
+ "=52": "R",
914
+ "=53": "S",
915
+ "=54": "T",
916
+ "=55": "U",
917
+ "=56": "V",
918
+ "=57": "W",
919
+ "=58": "X",
920
+ "=59": "Y",
921
+ "=5A": "Z",
922
+ "=5B": "[",
923
+ "=5C": "\\",
924
+ "=5D": "]",
925
+ "=5E": "^",
926
+ "=5F": "_",
927
+ "=60": "`",
928
+ "=61": "a",
929
+ "=62": "b",
930
+ "=63": "c",
931
+ "=64": "d",
932
+ "=65": "e",
933
+ "=66": "f",
934
+ "=67": "g",
935
+ "=68": "h",
936
+ "=69": "i",
937
+ "=6A": "j",
938
+ "=6B": "k",
939
+ "=6C": "l",
940
+ "=6D": "m",
941
+ "=6E": "n",
942
+ "=6F": "o",
943
+ "=70": "p",
944
+ "=71": "q",
945
+ "=72": "r",
946
+ "=73": "s",
947
+ "=74": "t",
948
+ "=75": "u",
949
+ "=76": "v",
950
+ "=77": "w",
951
+ "=78": "x",
952
+ "=79": "y",
953
+ "=7A": "z",
954
+ "=7B": "{",
955
+ "=7C": "|",
956
+ "=7D": "}",
957
+ "=7E": "~",
958
+ "=7F": "",
959
+ "=80": "", //"€",
960
+ "=E2=82=AC": "", //"€",
961
+ "=81": "",
962
+ "=82": "", //"‚",
963
+ "=E2=80=9A": "", //"‚",
964
+ "=83": "", //"ƒ",
965
+ "=C6=92": "", //"ƒ",
966
+ "=84": "", //"„",
967
+ "=E2=80=9E": "", //"„",
968
+ "=85": "", //"…",
969
+ "=E2=80=A6": "", //"…",
970
+ "=86": "", //"†",
971
+ "=E2=80=A0": "", //"†",
972
+ "=87": "", //"‡",
973
+ "=E2=80=A1": "", //"‡",
974
+ "=88": "", //"ˆ",
975
+ "=CB=86": "", //"ˆ",
976
+ "=89": "", //"‰",
977
+ "=E2=80=B0": "", //"‰",
978
+ "=8A": "", //"Š",
979
+ "=C5=A0": "", //"Š",
980
+ "=8B": "", //"‹",
981
+ "=E2=80=B9": "", //"‹",
982
+ "=8C": "", //"Œ",
983
+ "=C5=92": "", //"Œ",
984
+ "=8D": "",
985
+ "=C5=8D": "",
986
+ "=8E": "Ž",
987
+ "=C5=BD": "Ž",
988
+ "=8F": "",
989
+ "=90": "",
990
+ "=C2=90": "",
991
+ "=91": "‘",
992
+ "=E2=80=98": "‘",
993
+ "=92": "’",
994
+ "=E2=80=99": "’",
995
+ "=93": "“",
996
+ "=E2=80=9C": "“",
997
+ "=94": "”",
998
+ "=E2=80=9D": "”",
999
+ "=95": "•",
1000
+ "=E2=80=A2": "•",
1001
+ "=96": "–",
1002
+ "=E2=80=93": "–",
1003
+ "=97": "—",
1004
+ "=E2=80=94": "—",
1005
+ "=98": "˜",
1006
+ "=CB=9C": "˜",
1007
+ "=99": "™",
1008
+ "=E2=84": "™",
1009
+ "=9A": "", // "š",
1010
+ "=C5=A1": "", // "š",
1011
+ "=9B":"", // "›",
1012
+ "=E2=80":"", // "›",
1013
+ "=9C": "", //"œ",
1014
+ "=C5=93": "", //"œ",
1015
+ "=9D": "", //"",
1016
+ "=9E": "", //"ž",
1017
+ "=C5=BE": "", //"ž",
1018
+ "=9F": "", //"Ÿ",
1019
+ "=C5=B8": "", //"Ÿ",
1020
+ "=A0": "",
1021
+ "=C2=A0": "",
1022
+ "=A1": "", //"¡",
1023
+ "=C2=A1": "", //"¡",
1024
+ "=A2": "", //"¢",
1025
+ "=C2=A2": "", //"¢",
1026
+ "=A3": "", //"£",
1027
+ "=C2=A3": "", //"£",
1028
+ "=A4": "", //"¤",
1029
+ "=C2=A4": "", //"¤",
1030
+ "=A5": "", //"¥",
1031
+ "=C2=A5": "", //"¥",
1032
+ "=A6": "", //"¦",
1033
+ "=C2=A6": "", //"¦",
1034
+ "=A7": "", //"§",
1035
+ "=C2=A7": "", //"§",
1036
+ "=A8": "", //"¨",
1037
+ "=C2=A8": "", //"¨",
1038
+ "=A9": "", //"©",
1039
+ "=C2=A9": "", //"©",
1040
+ "=AA": "", //"ª",
1041
+ "=C2=AA": "", //"ª",
1042
+ "=AB": "", //"«",
1043
+ "=C2=AB": "", //"«",
1044
+ "=AC": "", //"¬",
1045
+ "=C2=AC": "", //"¬",
1046
+ "=AD": "", //"­",
1047
+ "=C2=AD": "", //"­",
1048
+ "=AE": "", //"®",
1049
+ "=C2=AE": "", //"®",
1050
+ "=AF": "", //"¯",
1051
+ "=C2=AF": "", //"¯",
1052
+ "=B0": "", //"°",
1053
+ "=C2=B0": "", //"°",
1054
+ "=B1": "", //"±",
1055
+ "=C2=B1": "", //"±",
1056
+ "=B2": "", //"²",
1057
+ "=C2=B2": "", //"²",
1058
+ "=B3": "", //"³",
1059
+ "=C2=B3": "", //"³",
1060
+ "=B4": "", //"´",
1061
+ "=C2=B4": "", //"´",
1062
+ "=B5": "", //"µ",
1063
+ "=C2=B5": "", //"µ",
1064
+ "=B6": "", //"¶",
1065
+ "=C2=B6": "", //"¶",
1066
+ "=B7": "", //"·",
1067
+ "=C2=B7": "", //"·",
1068
+ "=B8": "", //"¸",
1069
+ "=C2=B8": "", //"¸",
1070
+ "=B9": "", //"¹",
1071
+ "=C2=B9": "", //"¹",
1072
+ "=BA": "", //"º",
1073
+ "=C2=BA": "", //"º",
1074
+ "=BB": "", //"»",
1075
+ "=C2=BB": "", //"»",
1076
+ "=BC": "", //"¼",
1077
+ "=C2=BC": "", //"¼",
1078
+ "=BD": "", //"½",
1079
+ "=C2=BD": "", //"½",
1080
+ "=BE": "", //"¾",
1081
+ "=C2=BE": "", //"¾",
1082
+ "=BF": "", //"¿",
1083
+ "=C2=BF": "", //"¿",
1084
+ "=C0": "", //"À",
1085
+ "=C3=80": "", //"À",
1086
+ "=C1": "", //"Á",
1087
+ "=C3=81": "", //"Á",
1088
+ "=C2": "", //"Â",
1089
+ "=C3=82": "", //"Â",
1090
+ "=C3": "", //"Ã",
1091
+ "=C3=83": "", //"Ã",
1092
+ "=C4": "", //"Ä",
1093
+ "=C3=84": "", //"Ä",
1094
+ "=C5": "", //"Å",
1095
+ "=C3=85": "", //"Å",
1096
+ "=C6": "", //"Æ",
1097
+ "=C3=86": "", //"Æ",
1098
+ "=C7": "", //"Ç",
1099
+ "=C3=87": "", //"Ç",
1100
+ "=C8": "", //"È",
1101
+ "=C3=88": "", //"È",
1102
+ "=C9": "", //"É",
1103
+ "=C3=89": "", //"É",
1104
+ "=CA": "", //"Ê",
1105
+ "=C3=8A": "", //"Ê",
1106
+ "=CB": "", //"Ë",
1107
+ "=C3=8B": "", //"Ë",
1108
+ "=CC": "", //"Ì",
1109
+ "=C3=8C": "", //"Ì",
1110
+ "=CD": "", //"Í",
1111
+ "=C3=8D": "", //"Í",
1112
+ "=CE": "", //"Î",
1113
+ "=C3=8E": "", //"Î",
1114
+ "=CF": "", //"Ï",
1115
+ "=C3=8F": "", //"Ï",
1116
+ "=D0": "", //"Ð",
1117
+ "=C3=90": "", //"Ð",
1118
+ "=D1": "", //"Ñ",
1119
+ "=C3=91": "", //"Ñ",
1120
+ "=D2": "", //"Ò",
1121
+ "=C3=92": "", //"Ò",
1122
+ "=D3": "", //"Ó",
1123
+ "=C3=93": "", //"Ó",
1124
+ "=D4": "", //"Ô",
1125
+ "=C3=94": "", //"Ô",
1126
+ "=D5": "", //"Õ",
1127
+ "=C3=95": "", //"Õ",
1128
+ "=D6": "", //"Ö",
1129
+ "=C3=96": "", //"Ö",
1130
+ "=D7": "", //"×",
1131
+ "=C3=97": "", //"×",
1132
+ "=D8": "", //"Ø",
1133
+ "=C3=98": "", //"Ø",
1134
+ "=D9": "", //"Ù",
1135
+ "=C3=99": "", //"Ù",
1136
+ "=DA": "", //"Ú",
1137
+ "=C3=9A": "", //"Ú",
1138
+ "=DB": "", //"Û",
1139
+ "=C3=9B": "", //"Û",
1140
+ "=DC": "", //"Ü",
1141
+ "=C3=9C": "", //"Ü",
1142
+ "=DD": "", //"Ý",
1143
+ "=C3=9D": "", //"Ý",
1144
+ "=DE": "", //"Þ",
1145
+ "=C3=9E": "", //"Þ",
1146
+ "=DF": "", //"ß",
1147
+ "=C3=9F": "", //"ß",
1148
+ "=E0": "", //"à",
1149
+ "=C3=A0": "", //"à",
1150
+ "=E1": "", //"á",
1151
+ "=C3=A1": "", //"á",
1152
+ "=E2": "", //"â",
1153
+ "=C3=A2": "", //"â",
1154
+ "=E3": "", //"ã",
1155
+ "=C3=A3": "", //"ã",
1156
+ "=E4": "", //"ä",
1157
+ "=C3=A4": "", //"ä",
1158
+ "=E5": "", //"å",
1159
+ "=C3=A5": "", //"å",
1160
+ "=E6": "", //"æ",
1161
+ "=C3=A6": "", //"æ",
1162
+ "=E7": "", //"ç",
1163
+ "=C3=A7": "", //"ç",
1164
+ "=E8": "", //"è",
1165
+ "=C3=A8": "", //"è",
1166
+ "=E9": "", //"é",
1167
+ "=C3=A9": "", //"é",
1168
+ "=EA": "", //"ê",
1169
+ "=C3=AA": "", //"ê",
1170
+ "=EB": "", //"ë",
1171
+ "=C3=AB": "", //"ë",
1172
+ "=EC": "", //"ì",
1173
+ "=C3=AC": "", //"ì",
1174
+ "=ED": "", //"í",
1175
+ "=C3=AD": "", //"í",
1176
+ "=EE": "", //"î",
1177
+ "=C3=AE": "", //"î",
1178
+ "=EF": "", //"ï",
1179
+ "=C3=AF": "", //"ï",
1180
+ "=F0": "", //"ð",
1181
+ "=C3=B0": "", //"ð",
1182
+ "=F1": "", //"ñ",
1183
+ "=C3=B1": "", //"ñ",
1184
+ "=F2": "", //"ò",
1185
+ "=C3=B2": "", //"ò",
1186
+ "=F3": "", //"ó",
1187
+ "=C3=B3": "", //"ó",
1188
+ "=F4": "", //"ô",
1189
+ "=C3=B4": "", //"ô",
1190
+ "=F5": "", //"õ",
1191
+ "=C3=B5": "", //"õ",
1192
+ "=F6": "", //"ö",
1193
+ "=C3=B6": "", //"ö",
1194
+ "=F7": "", //"÷",
1195
+ "=C3=B7": "", //"÷",
1196
+ "=F8": "", //"ø",
1197
+ "=C3=B8": "", //"ø",
1198
+ "=F9": "", //"ù",
1199
+ "=C3=B9": "", //"ù",
1200
+ "=FA": "", //"ú",
1201
+ "=C3=BA": "", //"ú",
1202
+ "=FB": "", //"û",
1203
+ "=C3=BB": "", //"û",
1204
+ "=FC": "", //"ü",
1205
+ "=C3=BC": "", //"ü",
1206
+ "=FD": "", //"ý",
1207
+ "=C3=BD": "", //"ý",
1208
+ "=FE": "", //"þ",
1209
+ "=C3=BE": "", //"þ",
1210
+ "=FF": "", //"ÿ",
1211
+ "=C3=BF":"", // "ÿ"
1212
+ }
1213
+
1214
+ export const URIDecodeEmail = (content: string, verbose?: boolean) => (
1215
+ content
1216
+ .replace(/=\s/gi, '')
1217
+ .replace(
1218
+ /=21|=3D|=22|=23|=24|=25|=26|=27|=28|=29|=2A|=2B|=2C|=2D|=2E|=2F|=30|=31|=32|=33|=34|=35|=36|=37|=38|=39|=3A|=3B|=3C|=3E|=3F|=40|=41|=42|=43|=44|=45|=46|=47|=48|=49|=4A|=4B|=4C|=4D|=4E|=4F|=50|=51|=52|=53|=54|=55|=56|=57|=58|=59|=5A|=5B|=5C|=5D|=5E|=5F|=60|=61|=62|=63|=64|=65|=66|=67|=68|=69|=6A|=6B|=6C|=6D|=6E|=6F|=70|=71|=72|=73|=74|=75|=76|=77|=78|=79|=7A|=7B|=7C|=7D|=7E|=7F|=80|=E2=82=AC|=81|=82|=E2=80=9A|=83|=C6=92|=84|=E2=80=9E|=85|=E2=80=A6|=86|=E2=80=A0|=87|=E2=80=A1|=88|=CB=86|=89|=E2=80=B0|=8A|=C5=A0|=8B|=E2=80=B9|=8C|=C5=92|=8D|=C5=8D|=8E|=C5=BD|=8F|=90|=C2=90|=91|=E2=80=98|=92|=E2=80=99|=93|=E2=80=9C|=94|=E2=80=9D|=95|=E2=80=A2|=96|=E2=80=93|=97|=E2=80=94|=98|=CB=9C|=99|=E2=84|=9A|=C5=A1|=9B|=E2=80|=9C|=C5=93|=9D|=9E|=C5=BE|=9F|=C5=B8|=A0|=C2=A0|=A1|=C2=A1|=A2|=C2=A2|=A3|=C2=A3|=A4|=C2=A4|=A5|=C2=A5|=A6|=C2=A6|=A7|=C2=A7|=A8|=C2=A8|=A9|=C2=A9|=AA|=C2=AA|=AB|=C2=AB|=AC|=C2=AC|=AD|=C2=AD|=AE|=C2=AE|=AF|=C2=AF|=B0|=C2=B0|=B1|=C2=B1|=B2|=C2=B2|=B3|=C2=B3|=B4|=C2=B4|=B5|=C2=B5|=B6|=C2=B6|=B7|=C2=B7|=B8|=C2=B8|=B9|=C2=B9|=BA|=C2=BA|=BB|=C2=BB|=BC|=C2=BC|=BD|=C2=BD|=BE|=C2=BE|=BF|=C2=BF|=C0|=C3=80|=C1|=C3=81|=C2|=C3=82|=C3|=C3=83|=C4|=C3=84|=C5|=C3=85|=C6|=C3=86|=C7|=C3=87|=C8|=C3=88|=C9|=C3=89|=CA|=C3=8A|=CB|=C3=8B|=CC|=C3=8C|=CD|=C3=8D|=CE|=C3=8E|=CF|=C3=8F|=D0|=C3=90|=D1|=C3=91|=D2|=C3=92|=D3|=C3=93|=D4|=C3=94|=D5|=C3=95|=D6|=C3=96|=D7|=C3=97|=D8|=C3=98|=D9|=C3=99|=DA|=C3=9A|=DB|=C3=9B|=DC|=C3=9C|=DD|=C3=9D|=DE|=C3=9E|=DF|=C3=9F|=E0|=C3=A0|=E1|=C3=A1|=E2|=C3=A2|=E3|=C3=A3|=E4|=C3=A4|=E5|=C3=A5|=E6|=C3=A6|=E7|=C3=A7|=E8|=C3=A8|=E9|=C3=A9|=EA|=C3=AA|=EB|=C3=AB|=EC|=C3=AC|=ED|=C3=AD|=EE|=C3=AE|=EF|=C3=AF|=F0|=C3=B0|=F1|=C3=B1|=F2|=C3=B2|=F3|=C3=B3|=F4|=C3=B4|=F5|=C3=B5|=F6|=C3=B6|=F7|=C3=B7|=F8|=C3=B8|=F9|=C3=B9|=FA|=C3=BA|=FB|=C3=BB|=FC|=C3=BC|=FD|=C3=BD|=FE|=C3=BE|=FF|=C3=BF/gi,
1219
+ (k, ...v) => {
1220
+ // verbose
1221
+ // ? console.log(k, v[1]?.substring(v[0] - 8, v[0] + 8))
1222
+ // : undefined,
1223
+
1224
+ // const [i, s] = v
1225
+ // const match = s.substring(i, i + k.length) // match just equals k when used this way, but can -/+ to see longer string
1226
+
1227
+ const toReturn = URIReplacements[k as keyof typeof URIReplacements] ?? k
1228
+ // if (i > 3700 && i < 4000) {
1229
+ // if (verbose) { console.log(s.substring(i - 25, i + k.length + 25).replace(k, '=')) }
1230
+ // return match
1231
+ // }
1232
+
1233
+ return toReturn
1234
+ }
1235
+ )
1236
+ )