@memori.ai/memori-react 8.41.3 → 8.41.5

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 (202) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js +6 -3
  3. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
  4. package/dist/components/FilePreview/FilePreview.js +1 -3
  5. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  6. package/dist/components/MediaWidget/MediaItemWidget.js +1 -3
  7. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  8. package/dist/components/MediaWidget/MediaPreviewModal.js +2 -6
  9. package/dist/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  10. package/dist/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  11. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js +117 -0
  12. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  13. package/dist/components/MemoriWidget/MemoriWidget.js +121 -84
  14. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  15. package/dist/helpers/constants.d.ts +1 -1
  16. package/dist/helpers/constants.js +0 -1
  17. package/dist/helpers/constants.js.map +1 -1
  18. package/dist/helpers/message.d.ts +1 -1
  19. package/dist/helpers/message.js +4 -4
  20. package/dist/helpers/message.js.map +1 -1
  21. package/dist/helpers/nats/natsBundled.js +13224 -0
  22. package/dist/helpers/utils.d.ts +1 -1
  23. package/dist/helpers/utils.js +9 -3
  24. package/dist/helpers/utils.js.map +1 -1
  25. package/dist/version.d.ts +1 -1
  26. package/dist/version.js +1 -1
  27. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js +6 -3
  28. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
  29. package/esm/components/FilePreview/FilePreview.js +1 -3
  30. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  31. package/esm/components/MediaWidget/MediaItemWidget.js +2 -4
  32. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  33. package/esm/components/MediaWidget/MediaPreviewModal.js +2 -6
  34. package/esm/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  35. package/esm/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  36. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js +112 -0
  37. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  38. package/esm/components/MemoriWidget/MemoriWidget.js +121 -84
  39. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  40. package/esm/helpers/constants.d.ts +1 -1
  41. package/esm/helpers/constants.js +0 -1
  42. package/esm/helpers/constants.js.map +1 -1
  43. package/esm/helpers/message.d.ts +1 -1
  44. package/esm/helpers/message.js +2 -2
  45. package/esm/helpers/message.js.map +1 -1
  46. package/esm/helpers/nats/natsBundled.js +13225 -0
  47. package/esm/helpers/utils.d.ts +1 -1
  48. package/esm/helpers/utils.js +9 -3
  49. package/esm/helpers/utils.js.map +1 -1
  50. package/esm/version.d.ts +1 -1
  51. package/esm/version.js +1 -1
  52. package/package.json +1 -1
  53. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +8 -4
  54. package/src/components/FilePreview/FilePreview.tsx +1 -3
  55. package/src/components/MediaWidget/MediaItemWidget.tsx +2 -3
  56. package/src/components/MediaWidget/MediaPreviewModal.tsx +2 -6
  57. package/src/components/MemoriWidget/MemoriWidget.tsx +110 -68
  58. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +2 -2
  59. package/src/helpers/constants.ts +0 -1
  60. package/src/helpers/message.test.ts +28 -1
  61. package/src/helpers/message.ts +4 -4
  62. package/src/helpers/utils.test.ts +50 -1
  63. package/src/helpers/utils.ts +16 -3
  64. package/src/version.ts +1 -1
  65. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -367
  66. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -36
  67. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -116
  68. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  69. package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
  70. package/dist/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  71. package/dist/components/DrawerFooter/DrawerFooter.js +0 -10
  72. package/dist/components/DrawerFooter/DrawerFooter.js.map +0 -1
  73. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -437
  74. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -62
  75. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +0 -292
  76. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  77. package/dist/components/PositionPopover/PositionPopover.css +0 -219
  78. package/dist/components/PositionPopover/PositionPopover.d.ts +0 -20
  79. package/dist/components/PositionPopover/PositionPopover.js +0 -187
  80. package/dist/components/PositionPopover/PositionPopover.js.map +0 -1
  81. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  82. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -41
  83. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  84. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -690
  85. package/dist/components/layouts/fullpage.css +0 -396
  86. package/dist/helpers/usePressTooltip.d.ts +0 -13
  87. package/dist/helpers/usePressTooltip.js +0 -23
  88. package/dist/helpers/usePressTooltip.js.map +0 -1
  89. package/dist/icons/FacebookIcon.d.ts +0 -3
  90. package/dist/icons/FacebookIcon.js +0 -6
  91. package/dist/icons/FacebookIcon.js.map +0 -1
  92. package/dist/icons/LinkedinIcon.d.ts +0 -3
  93. package/dist/icons/LinkedinIcon.js +0 -6
  94. package/dist/icons/LinkedinIcon.js.map +0 -1
  95. package/dist/icons/MemoriIcon.d.ts +0 -3
  96. package/dist/icons/MemoriIcon.js +0 -8
  97. package/dist/icons/MemoriIcon.js.map +0 -1
  98. package/dist/icons/TelegramIcon.d.ts +0 -3
  99. package/dist/icons/TelegramIcon.js +0 -6
  100. package/dist/icons/TelegramIcon.js.map +0 -1
  101. package/dist/icons/TwitterIcon.d.ts +0 -3
  102. package/dist/icons/TwitterIcon.js +0 -6
  103. package/dist/icons/TwitterIcon.js.map +0 -1
  104. package/dist/icons/WhatsappIcon.d.ts +0 -3
  105. package/dist/icons/WhatsappIcon.js +0 -6
  106. package/dist/icons/WhatsappIcon.js.map +0 -1
  107. package/dist/icons/artifacts/DocumentIcon.d.ts +0 -3
  108. package/dist/icons/artifacts/DocumentIcon.js +0 -6
  109. package/dist/icons/artifacts/DocumentIcon.js.map +0 -1
  110. package/dist/icons/artifacts/HtmlIcon.d.ts +0 -3
  111. package/dist/icons/artifacts/HtmlIcon.js +0 -6
  112. package/dist/icons/artifacts/HtmlIcon.js.map +0 -1
  113. package/dist/icons/artifacts/JavascriptIcon.d.ts +0 -3
  114. package/dist/icons/artifacts/JavascriptIcon.js +0 -6
  115. package/dist/icons/artifacts/JavascriptIcon.js.map +0 -1
  116. package/dist/icons/artifacts/MarkdownIcon.d.ts +0 -3
  117. package/dist/icons/artifacts/MarkdownIcon.js +0 -6
  118. package/dist/icons/artifacts/MarkdownIcon.js.map +0 -1
  119. package/dist/icons/artifacts/PythonIcon.d.ts +0 -3
  120. package/dist/icons/artifacts/PythonIcon.js +0 -6
  121. package/dist/icons/artifacts/PythonIcon.js.map +0 -1
  122. package/dist/icons/artifacts/SvgIcon.d.ts +0 -3
  123. package/dist/icons/artifacts/SvgIcon.js +0 -6
  124. package/dist/icons/artifacts/SvgIcon.js.map +0 -1
  125. package/dist/icons/artifacts/XmlIcon.d.ts +0 -3
  126. package/dist/icons/artifacts/XmlIcon.js +0 -6
  127. package/dist/icons/artifacts/XmlIcon.js.map +0 -1
  128. package/dist/icons/artifacts/cssIcon.d.ts +0 -3
  129. package/dist/icons/artifacts/cssIcon.js +0 -6
  130. package/dist/icons/artifacts/cssIcon.js.map +0 -1
  131. package/dist/testUtils.d.ts +0 -5
  132. package/dist/testUtils.js +0 -18
  133. package/dist/testUtils.js.map +0 -1
  134. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -367
  135. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -36
  136. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -113
  137. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  138. package/esm/components/DrawerFooter/DrawerFooter.css +0 -62
  139. package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  140. package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
  141. package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
  142. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +0 -437
  143. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -62
  144. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -289
  145. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  146. package/esm/components/PositionPopover/PositionPopover.css +0 -219
  147. package/esm/components/PositionPopover/PositionPopover.d.ts +0 -20
  148. package/esm/components/PositionPopover/PositionPopover.js +0 -182
  149. package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
  150. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  151. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -38
  152. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  153. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +0 -690
  154. package/esm/components/layouts/fullpage.css +0 -396
  155. package/esm/helpers/usePressTooltip.d.ts +0 -13
  156. package/esm/helpers/usePressTooltip.js +0 -20
  157. package/esm/helpers/usePressTooltip.js.map +0 -1
  158. package/esm/icons/FacebookIcon.d.ts +0 -3
  159. package/esm/icons/FacebookIcon.js +0 -4
  160. package/esm/icons/FacebookIcon.js.map +0 -1
  161. package/esm/icons/LinkedinIcon.d.ts +0 -3
  162. package/esm/icons/LinkedinIcon.js +0 -4
  163. package/esm/icons/LinkedinIcon.js.map +0 -1
  164. package/esm/icons/MemoriIcon.d.ts +0 -3
  165. package/esm/icons/MemoriIcon.js +0 -6
  166. package/esm/icons/MemoriIcon.js.map +0 -1
  167. package/esm/icons/TelegramIcon.d.ts +0 -3
  168. package/esm/icons/TelegramIcon.js +0 -4
  169. package/esm/icons/TelegramIcon.js.map +0 -1
  170. package/esm/icons/TwitterIcon.d.ts +0 -3
  171. package/esm/icons/TwitterIcon.js +0 -4
  172. package/esm/icons/TwitterIcon.js.map +0 -1
  173. package/esm/icons/WhatsappIcon.d.ts +0 -3
  174. package/esm/icons/WhatsappIcon.js +0 -4
  175. package/esm/icons/WhatsappIcon.js.map +0 -1
  176. package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
  177. package/esm/icons/artifacts/DocumentIcon.js +0 -4
  178. package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
  179. package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
  180. package/esm/icons/artifacts/HtmlIcon.js +0 -4
  181. package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
  182. package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
  183. package/esm/icons/artifacts/JavascriptIcon.js +0 -4
  184. package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
  185. package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
  186. package/esm/icons/artifacts/MarkdownIcon.js +0 -4
  187. package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
  188. package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
  189. package/esm/icons/artifacts/PythonIcon.js +0 -4
  190. package/esm/icons/artifacts/PythonIcon.js.map +0 -1
  191. package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
  192. package/esm/icons/artifacts/SvgIcon.js +0 -4
  193. package/esm/icons/artifacts/SvgIcon.js.map +0 -1
  194. package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
  195. package/esm/icons/artifacts/XmlIcon.js +0 -4
  196. package/esm/icons/artifacts/XmlIcon.js.map +0 -1
  197. package/esm/icons/artifacts/cssIcon.d.ts +0 -3
  198. package/esm/icons/artifacts/cssIcon.js +0 -4
  199. package/esm/icons/artifacts/cssIcon.js.map +0 -1
  200. package/esm/testUtils.d.ts +0 -5
  201. package/esm/testUtils.js +0 -15
  202. package/esm/testUtils.js.map +0 -1
@@ -15,7 +15,7 @@ export declare function useDebounceFn<T extends (...args: any) => any>(fn: T, de
15
15
  export declare const stripDuplicates: (text: string) => string;
16
16
  export declare const stripEmojis: (text: string) => string;
17
17
  export declare const stripMarkdown: (text: string) => string;
18
- export declare const OFFICE_NATIVE_EXTENSIONS: readonly [".doc", ".docx", ".dotx", ".xls", ".xltx", ".potx"];
18
+ export declare const OFFICE_NATIVE_EXTENSIONS: readonly [".doc", ".docx", ".dotx", ".xltx", ".potx"];
19
19
  export declare const isOfficeNativeFilename: (filename: string) => boolean;
20
20
  export type ParsedDocumentAttachment = {
21
21
  filename: string;
@@ -251,9 +251,15 @@ export const stripReasoningTags = (text) => {
251
251
  return strippedText;
252
252
  };
253
253
  export const stripHTML = (text) => {
254
- const el = document.createElement('div');
255
- el.innerHTML = text;
256
- return el.textContent || '';
254
+ if (typeof DOMParser !== 'undefined') {
255
+ try {
256
+ return (new DOMParser().parseFromString(text, 'text/html').body.textContent ||
257
+ '');
258
+ }
259
+ catch (_a) {
260
+ }
261
+ }
262
+ return text.replace(/<[^>]*>/g, '');
257
263
  };
258
264
  export const withLinksOpenInNewTab = (html) => html.replace(/<a\s+/gi, '<a target="_blank" rel="noopener noreferrer" ');
259
265
  export const escapeHTML = (text) => {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
package/esm/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "8.41.3";
1
+ export declare const version = "8.41.5";
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '8.41.3';
1
+ export const version = '8.41.5';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.41.3",
2
+ "version": "8.41.5",
3
3
  "name": "@memori.ai/memori-react",
4
4
  "author": "Memori Srl",
5
5
  "main": "dist/index.js",
@@ -35,17 +35,21 @@ const PROVIDER_CONFIGS: Record<string, ProviderConfig> = {
35
35
  statusPage: 'https://status.mistral-data.com/',
36
36
  apiComponentName: ['Mistral'],
37
37
  },
38
+ // Use status.claude.com directly: status.anthropic.com 302-redirects and
39
+ // browsers block the redirected response (missing CORS on the redirect).
38
40
  Anthropic: {
39
- statusUrl: 'https://status.anthropic.com/api/v2/summary.json',
40
- statusPage: 'https://status.anthropic.com/',
41
- apiComponentName: ['api.anthropic.com'],
41
+ statusUrl: 'https://status.claude.com/api/v2/summary.json',
42
+ statusPage: 'https://status.claude.com/',
43
+ apiComponentName: [
44
+ 'Claude API (api.anthropic.com)',
45
+ 'api.anthropic.com',
46
+ ],
42
47
  },
43
48
  };
44
49
 
45
50
  // Modified to handle fetch errors, different component names, and check incidents
46
51
  const fetchProviderStatus = async (config: ProviderConfig): Promise<Status> => {
47
52
  try {
48
- // Use cross-fetch instead of native fetch
49
53
  const response = await fetch(config.statusUrl);
50
54
  if (!response.ok) {
51
55
  console.warn(`Status API returned ${response.status}`);
@@ -126,9 +126,7 @@ const FilePreview = ({
126
126
  if (isHtmlFile(file)) {
127
127
  let htmlContent = content;
128
128
  if (htmlContent.includes('&lt;') || htmlContent.includes('&quot;')) {
129
- const div = document.createElement('div');
130
- div.innerHTML = htmlContent;
131
- htmlContent = div.textContent || div.innerText || htmlContent;
129
+ htmlContent = stripHTML(htmlContent) || htmlContent;
132
130
  }
133
131
  htmlContent = stripDocumentAttachmentTags(htmlContent);
134
132
  return htmlContent;
@@ -11,6 +11,7 @@ import React, {
11
11
  import { getResourceUrl } from '../../helpers/media';
12
12
  import {
13
13
  withLinksOpenInNewTab,
14
+ stripHTML,
14
15
  stripDocumentAttachmentTags,
15
16
  isAssetOnlyDocumentAttachment,
16
17
  getDocumentAttachmentAssetUrl,
@@ -433,9 +434,7 @@ export const RenderMediaItem = memo(function RenderMediaItem({
433
434
  htmlContent.includes('<document_attachment')
434
435
  ) {
435
436
  if (htmlContent.includes('&lt;') || htmlContent.includes('&quot;')) {
436
- const div = document.createElement('div');
437
- div.innerHTML = htmlContent;
438
- htmlContent = div.textContent || div.innerText || htmlContent;
437
+ htmlContent = stripHTML(htmlContent) || htmlContent;
439
438
  }
440
439
  htmlContent = stripDocumentAttachmentTags(htmlContent);
441
440
  }
@@ -274,9 +274,7 @@ export function MediaPreviewModal({
274
274
  // HTML document attachment: display HTML content in a code-like format
275
275
  let htmlContent = medium.content || '';
276
276
  if (htmlContent.includes('&lt;') || htmlContent.includes('&quot;')) {
277
- const div = document.createElement('div');
278
- div.innerHTML = htmlContent;
279
- htmlContent = div.textContent || div.innerText || htmlContent;
277
+ htmlContent = stripHTML(htmlContent) || htmlContent;
280
278
  } else {
281
279
  htmlContent = stripDocumentAttachmentTags(htmlContent);
282
280
  }
@@ -296,9 +294,7 @@ export function MediaPreviewModal({
296
294
  // Other document attachments: render as plain text
297
295
  let displayContent = medium.content;
298
296
  if (displayContent.includes('&lt;') || displayContent.includes('&quot;')) {
299
- const div = document.createElement('div');
300
- div.innerHTML = displayContent;
301
- displayContent = div.textContent || div.innerText || displayContent;
297
+ displayContent = stripHTML(displayContent) || displayContent;
302
298
  } else {
303
299
  displayContent = stripDocumentAttachmentTags(displayContent);
304
300
  }
@@ -125,6 +125,20 @@ const getMemoriState = (integrationId?: string): object | null => {
125
125
  };
126
126
  };
127
127
 
128
+ /** Unified login token resolution: React state > ref > call-site override > props. */
129
+ const resolveLoginTokenValue = (
130
+ loginToken: string | undefined,
131
+ userTokenRef: string | undefined,
132
+ callAdditionalInfoLoginToken: string | undefined,
133
+ additionalInfoLoginToken: string | undefined,
134
+ authTokenProp: string | undefined
135
+ ): string | undefined =>
136
+ loginToken ??
137
+ userTokenRef ??
138
+ callAdditionalInfoLoginToken ??
139
+ additionalInfoLoginToken ??
140
+ authTokenProp;
141
+
128
142
  /** Place spec with all nulls for postEnterTextAsync when position is not set or user chose "I don't want to provide my position". */
129
143
  const NULL_PLACE_SPEC = {
130
144
  placeName: null,
@@ -377,7 +391,6 @@ window.typeBatchMessages = typeBatchMessages;
377
391
  let audioContext: IAudioContext;
378
392
 
379
393
  let memoriPassword: string | undefined;
380
- let userToken: string | undefined;
381
394
 
382
395
  export interface LayoutProps {
383
396
  Header?: typeof Header;
@@ -559,32 +572,78 @@ const MemoriWidget = ({
559
572
  const [loginToken, setLoginToken] = useState<string | undefined>(
560
573
  additionalInfo?.loginToken ?? authToken
561
574
  );
575
+ const userTokenRef = useRef<string | undefined>(
576
+ additionalInfo?.loginToken ?? authToken
577
+ );
578
+ const prevPropsLoginTokenRef = useRef<string | undefined>(
579
+ additionalInfo?.loginToken ?? authToken
580
+ );
581
+
562
582
  const [user, setUser] = useState<User | undefined>({
563
583
  avatarURL: typeof userAvatar === 'string' ? userAvatar : undefined,
564
584
  } as User);
585
+
586
+ const resolveLoginToken = useCallback(
587
+ (callAdditionalInfoLoginToken?: string) =>
588
+ resolveLoginTokenValue(
589
+ loginToken,
590
+ userTokenRef.current,
591
+ callAdditionalInfoLoginToken,
592
+ additionalInfo?.loginToken,
593
+ authToken
594
+ ),
595
+ [loginToken, additionalInfo?.loginToken, authToken]
596
+ );
597
+
598
+ // Sync loginToken when props change (including explicit removal from parent)
565
599
  useEffect(() => {
566
- if (
567
- loginToken &&
568
- !user?.userID &&
569
- (showLogin || memori.requireLoginToken)
570
- ) {
571
- client.backend
572
- .pwlGetCurrentUser(loginToken)
573
- .then(({ user, resultCode }) => {
574
- if (user && resultCode === 0) {
575
- setUser(user);
576
- setLocalConfig('loginToken', loginToken);
577
-
578
- if (!birthDate && user.birthDate) {
579
- setBirthDate(user.birthDate);
580
- setLocalConfig('birthDate', user.birthDate);
581
- }
582
- } else {
583
- removeLocalConfig('loginToken');
584
- }
585
- });
600
+ const incomingToken = additionalInfo?.loginToken ?? authToken;
601
+ const prevPropsToken = prevPropsLoginTokenRef.current;
602
+ prevPropsLoginTokenRef.current = incomingToken;
603
+
604
+ if (incomingToken !== prevPropsToken) {
605
+ setLoginToken(incomingToken);
606
+ userTokenRef.current = incomingToken;
607
+ if (!incomingToken) {
608
+ removeLocalConfig('loginToken');
609
+ setUser(undefined);
610
+ }
586
611
  }
587
- }, [loginToken, user?.userID]);
612
+ }, [additionalInfo?.loginToken, authToken]);
613
+
614
+ useEffect(() => {
615
+ if (!loginToken || !(showLogin || memori.requireLoginToken)) {
616
+ return;
617
+ }
618
+
619
+ let cancelled = false;
620
+
621
+ client.backend
622
+ .pwlGetCurrentUser(loginToken)
623
+ .then(({ user: fetchedUser, resultCode }) => {
624
+ if (cancelled) return;
625
+
626
+ if (fetchedUser && resultCode === 0) {
627
+ setUser(fetchedUser);
628
+ setLocalConfig('loginToken', loginToken);
629
+ userTokenRef.current = loginToken;
630
+
631
+ if (!birthDate && fetchedUser.birthDate) {
632
+ setBirthDate(fetchedUser.birthDate);
633
+ setLocalConfig('birthDate', fetchedUser.birthDate);
634
+ }
635
+ } else {
636
+ setLoginToken(undefined);
637
+ userTokenRef.current = undefined;
638
+ setUser(undefined);
639
+ removeLocalConfig('loginToken');
640
+ }
641
+ });
642
+
643
+ return () => {
644
+ cancelled = true;
645
+ };
646
+ }, [loginToken, showLogin, memori.requireLoginToken]);
588
647
  const [showLoginDrawer, setShowLoginDrawer] = useState(false);
589
648
 
590
649
  const [clickedStart, setClickedStart] = useState(false);
@@ -764,7 +823,7 @@ const MemoriWidget = ({
764
823
 
765
824
  if (!additionalInfo?.loginToken && !authToken) {
766
825
  setLoginToken(getLocalConfig<typeof loginToken>('loginToken', undefined));
767
- userToken = getLocalConfig<typeof loginToken>('loginToken', undefined);
826
+ userTokenRef.current = getLocalConfig<typeof loginToken>('loginToken', undefined);
768
827
 
769
828
  setBirthDate(getLocalConfig<string | undefined>('birthDate', undefined));
770
829
  }
@@ -1391,12 +1450,7 @@ const MemoriWidget = ({
1391
1450
  pin: params.pin ?? personification?.pin,
1392
1451
  additionalInfo: {
1393
1452
  ...(params.additionalInfo || additionalInfo || {}),
1394
- loginToken:
1395
- userToken ??
1396
- loginToken ??
1397
- params.additionalInfo?.loginToken ??
1398
- additionalInfo?.loginToken ??
1399
- authToken,
1453
+ loginToken: resolveLoginToken(params.additionalInfo?.loginToken),
1400
1454
  language: (
1401
1455
  userLang ??
1402
1456
  memori.culture?.split('-')?.[0] ??
@@ -1558,12 +1612,7 @@ const MemoriWidget = ({
1558
1612
  birthDate: userBirthDate,
1559
1613
  additionalInfo: {
1560
1614
  ...(additionalInfoProp || additionalInfo || {}),
1561
- loginToken:
1562
- userToken ??
1563
- loginToken ??
1564
- additionalInfoProp?.loginToken ??
1565
- additionalInfo?.loginToken ??
1566
- authToken,
1615
+ loginToken: resolveLoginToken(additionalInfoProp?.loginToken),
1567
1616
  language: (
1568
1617
  userLang ??
1569
1618
  memori.culture?.split('-')?.[0] ??
@@ -1845,11 +1894,7 @@ const MemoriWidget = ({
1845
1894
  birthDate: birthDate || storageBirthDate || undefined,
1846
1895
  additionalInfo: {
1847
1896
  ...(additionalInfo || {}),
1848
- loginToken:
1849
- userToken ??
1850
- loginToken ??
1851
- additionalInfo?.loginToken ??
1852
- authToken,
1897
+ loginToken: resolveLoginToken(),
1853
1898
  language: (
1854
1899
  userLang ??
1855
1900
  memori.culture?.split('-')?.[0] ??
@@ -2732,11 +2777,7 @@ const MemoriWidget = ({
2732
2777
  birthDate: birth,
2733
2778
  additionalInfo: {
2734
2779
  ...(additionalInfo || {}),
2735
- loginToken:
2736
- userToken ??
2737
- loginToken ??
2738
- additionalInfo?.loginToken ??
2739
- authToken,
2780
+ loginToken: resolveLoginToken(),
2740
2781
  language: (
2741
2782
  userLang ??
2742
2783
  memori.culture?.split('-')?.[0] ??
@@ -3112,29 +3153,31 @@ const MemoriWidget = ({
3112
3153
  return;
3113
3154
  }
3114
3155
 
3156
+ const propsToken = additionalInfo?.loginToken ?? authToken;
3157
+ const initialDomToken = targetNode.getAttribute('authtoken') || undefined;
3158
+ if (initialDomToken && !propsToken) {
3159
+ setLoginToken(initialDomToken);
3160
+ userTokenRef.current = initialDomToken;
3161
+ }
3162
+
3163
+ const applyAuthTokenFromElement = (element: Element) => {
3164
+ const clientNode =
3165
+ element.nodeName === 'MEMORI-CLIENT'
3166
+ ? element
3167
+ : element.closest('memori-client') ?? element.parentElement;
3168
+ const token = clientNode?.getAttribute('authtoken') || undefined;
3169
+ setLoginToken(token);
3170
+ userTokenRef.current = token;
3171
+ };
3172
+
3115
3173
  const config = { attributes: true, childList: false, subtree: false };
3116
- const callback: MutationCallback = (mutationList, _observer) => {
3174
+ const callback: MutationCallback = mutationList => {
3117
3175
  for (const mutation of mutationList) {
3118
3176
  if (
3119
3177
  mutation.type === 'attributes' &&
3120
3178
  mutation.attributeName?.toLowerCase() === 'authtoken'
3121
3179
  ) {
3122
- if (mutation.target.nodeName === 'MEMORI-CLIENT') {
3123
- setLoginToken(
3124
- // @ts-ignore
3125
- mutation.target.getAttribute('authtoken') || undefined
3126
- );
3127
- // @ts-ignore
3128
- userToken = mutation.target.getAttribute('authtoken') || undefined;
3129
- } else {
3130
- // @ts-ignore
3131
- setLoginToken(
3132
- mutation.target?.parentElement?.getAttribute('authtoken') ||
3133
- undefined
3134
- );
3135
- // @ts-ignore
3136
- userToken = mutation.target.getAttribute('authtoken') || undefined;
3137
- }
3180
+ applyAuthTokenFromElement(mutation.target as Element);
3138
3181
  }
3139
3182
  }
3140
3183
  };
@@ -3144,7 +3187,7 @@ const MemoriWidget = ({
3144
3187
  return () => {
3145
3188
  observer.disconnect();
3146
3189
  };
3147
- }, []);
3190
+ }, [memori.name, memori.memoriID, additionalInfo?.loginToken, authToken]);
3148
3191
 
3149
3192
  /**
3150
3193
  * Experts references
@@ -3306,7 +3349,7 @@ const MemoriWidget = ({
3306
3349
  setShowLoginDrawer(false);
3307
3350
  setUser(undefined);
3308
3351
  setLoginToken(undefined);
3309
- userToken = undefined;
3352
+ userTokenRef.current = undefined;
3310
3353
  removeLocalConfig('loginToken');
3311
3354
  });
3312
3355
  },
@@ -3379,8 +3422,7 @@ const MemoriWidget = ({
3379
3422
  showTypingText:
3380
3423
  showTypingText ?? integrationConfig?.showTypingText ?? false,
3381
3424
  history: showFullHistory ? history : history.slice(-2),
3382
- authToken:
3383
- loginToken ?? userToken ?? additionalInfo?.loginToken ?? authToken,
3425
+ authToken: resolveLoginToken(),
3384
3426
  dialogState: currentDialogState,
3385
3427
  pushMessage,
3386
3428
  simulateUserPrompt,
@@ -3770,7 +3812,7 @@ const MemoriWidget = ({
3770
3812
  setShowLoginDrawer(false);
3771
3813
  setUser(user);
3772
3814
  setLoginToken(token);
3773
- userToken = token;
3815
+ userTokenRef.current = token;
3774
3816
  setLocalConfig('loginToken', token);
3775
3817
  // Push a message with initial status to show status message when a new session is created after login
3776
3818
  if (
@@ -3811,7 +3853,7 @@ const MemoriWidget = ({
3811
3853
  setShowLoginDrawer(false);
3812
3854
  setUser(undefined);
3813
3855
  setLoginToken(undefined);
3814
- userToken = undefined;
3856
+ userTokenRef.current = undefined;
3815
3857
  removeLocalConfig('loginToken');
3816
3858
  });
3817
3859
  }}
@@ -6,7 +6,7 @@ exports[`renders UploadButton unchanged 1`] = `
6
6
  class="memori--unified-upload-wrapper"
7
7
  >
8
8
  <input
9
- accept=".jpg,.jpeg,.png,.pdf,.txt,.json,.xlsx,.csv,.md,.html,.doc,.docx,.dotx,.xls,.xltx,.potx"
9
+ accept=".jpg,.jpeg,.png,.pdf,.txt,.json,.xlsx,.csv,.md,.html,.doc,.docx,.dotx,.xltx,.potx"
10
10
  class="memori--upload-file-input"
11
11
  multiple=""
12
12
  style="display: none;"
@@ -52,7 +52,7 @@ exports[`renders UploadButton unchanged 1`] = `
52
52
  class="memori--document-upload-wrapper"
53
53
  >
54
54
  <input
55
- accept=".pdf,.txt,.md,.json,.xlsx,.csv,.html,.doc,.docx,.dotx,.xls,.xltx,.potx"
55
+ accept=".pdf,.txt,.md,.json,.xlsx,.csv,.html,.doc,.docx,.dotx,.xltx,.potx"
56
56
  class="memori--upload-file-input"
57
57
  multiple=""
58
58
  type="file"
@@ -48,7 +48,6 @@ export const officeNativeExtensions = [
48
48
  '.doc',
49
49
  '.docx',
50
50
  '.dotx',
51
- '.xls',
52
51
  '.xltx',
53
52
  '.potx',
54
53
  ] as const;
@@ -1,4 +1,24 @@
1
- import { renderMsg, stripAttachmentTags, stripAllInternalTags } from './message';
1
+ import {
2
+ renderMsg,
3
+ sanitizeMsg,
4
+ stripAttachmentTags,
5
+ stripAllInternalTags,
6
+ } from './message';
7
+
8
+ describe('sanitizeMsg', () => {
9
+ it('strips onerror from partner XSS img payload', () => {
10
+ const payload =
11
+ '<img src="immagine-inesistente.jpg" onerror="alert(\'XSS Eseguito!\')">';
12
+ const result = sanitizeMsg(payload);
13
+ expect(result).toBe('<img src="immagine-inesistente.jpg">');
14
+ expect(result).not.toMatch(/onerror/i);
15
+ });
16
+
17
+ it('strips svg onload handlers', () => {
18
+ const result = sanitizeMsg('<svg onload="alert(1)"></svg>');
19
+ expect(result).not.toMatch(/onload/i);
20
+ });
21
+ });
2
22
 
3
23
  describe('renderMsg', () => {
4
24
  it('should render message with reasoning and output tag adjacent correctly', () => {
@@ -11,6 +31,13 @@ describe('renderMsg', () => {
11
31
  '<details class="memori-think"><summary>Reasoning...</summary>L\'utente vuole che io elenchi i parametri dell\'ALBERO ESISTENTE.</details>\n\n<output class="rails-query" style="display:none">\nproject = Project.find("68d99b05783713e16737d32b")\n</output>\n\n<p>Recupero tutti i 7 parametri dell\'ALBERO ESISTENTE...</p>'
12
32
  );
13
33
  });
34
+
35
+ it('strips onerror from XSS img payload in rendered output', () => {
36
+ const payload =
37
+ '<img src="immagine-inesistente.jpg" onerror="alert(\'XSS Eseguito!\')">';
38
+ const result = renderMsg(payload, false, 'Reasoning...', false);
39
+ expect(result.text).not.toMatch(/onerror/i);
40
+ });
14
41
  });
15
42
 
16
43
  describe('stripAttachmentTags', () => {
@@ -85,6 +85,9 @@ export const truncateMessage = (message: string) => {
85
85
  return truncatedMessage;
86
86
  };
87
87
 
88
+ export const sanitizeMsg = (msg: string) =>
89
+ DOMPurify.sanitize(msg, { ADD_ATTR: ['target'] });
90
+
88
91
  export const renderMsg = (
89
92
  text: string,
90
93
  useMathFormatting = false,
@@ -196,9 +199,6 @@ export const renderMsg = (
196
199
  return { text: finalText };
197
200
  } catch (e) {
198
201
  console.error('Error rendering message:', e);
199
- return { text };
202
+ return { text: sanitizeMsg(text) };
200
203
  }
201
204
  };
202
-
203
- export const sanitizeMsg = (msg: string) =>
204
- DOMPurify.sanitize(msg, { ADD_ATTR: ['target'] });
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  difference,
3
3
  stripEmojis,
4
+ stripHTML,
4
5
  stripMarkdown,
5
6
  stripOutputTags,
6
7
  escapeHTML,
@@ -177,7 +178,7 @@ describe('utils/attachment helpers', () => {
177
178
  it('detects office native filenames', () => {
178
179
  expect(isOfficeNativeFilename('report.doc')).toBe(true);
179
180
  expect(isOfficeNativeFilename('report.docx')).toBe(true);
180
- expect(isOfficeNativeFilename('budget.xls')).toBe(true);
181
+ expect(isOfficeNativeFilename('budget.xls')).toBe(false);
181
182
  expect(isOfficeNativeFilename('template.XLTX')).toBe(true);
182
183
  expect(isOfficeNativeFilename('slides.potx')).toBe(true);
183
184
  expect(isOfficeNativeFilename('notes.pdf')).toBe(false);
@@ -254,6 +255,54 @@ describe('utils/attachment helpers', () => {
254
255
  });
255
256
  });
256
257
 
258
+ describe('utils/stripHTML', () => {
259
+ it('strips tags and returns text content', () => {
260
+ expect(stripHTML('<p>Hello <strong>world</strong></p>')).toBe(
261
+ 'Hello world'
262
+ );
263
+ });
264
+
265
+ it('does not retain onerror from partner XSS payload', () => {
266
+ const payload =
267
+ '<img src="immagine-inesistente.jpg" onerror="alert(\'XSS Eseguito!\')">';
268
+ const result = stripHTML(payload);
269
+ expect(result).toBe('');
270
+ expect(result).not.toMatch(/onerror/i);
271
+ // Re-parse result: must not introduce an executable handler attribute
272
+ const reparsed = new DOMParser().parseFromString(result, 'text/html');
273
+ expect(reparsed.querySelector('[onerror]')).toBeNull();
274
+ expect(reparsed.querySelector('img')).toBeNull();
275
+ });
276
+
277
+ it('strips svg onload payloads without leaving handlers', () => {
278
+ const payload = '<svg onload="alert(1)"><text>x</text></svg>';
279
+ const result = stripHTML(payload);
280
+ expect(result).toBe('x');
281
+ expect(result).not.toMatch(/onload/i);
282
+ });
283
+
284
+ it('decodes HTML entities without executing nested markup', () => {
285
+ const encoded =
286
+ '&lt;img src="x" onerror="alert(1)"&gt;hello&lt;/img&gt;';
287
+ const result = stripHTML(encoded);
288
+ expect(result).toContain('hello');
289
+ // Entity-decoded text may contain the string "onerror" as text; ensure no live element
290
+ const reparsed = new DOMParser().parseFromString(
291
+ `<div>${result.replace(/</g, '&lt;')}</div>`,
292
+ 'text/html'
293
+ );
294
+ expect(reparsed.querySelector('[onerror]')).toBeNull();
295
+ });
296
+
297
+ it('handles nested tags', () => {
298
+ expect(stripHTML('<div><span>a</span><b>b</b></div>')).toBe('ab');
299
+ });
300
+
301
+ it('returns empty string for empty input', () => {
302
+ expect(stripHTML('')).toBe('');
303
+ });
304
+ });
305
+
257
306
  describe('utils/parsing combined', () => {
258
307
  it('should remove output tag from real message', () => {
259
308
  const result = escapeHTML(