@liip/liipgpt 3.3.0 → 3.3.2

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 (32) hide show
  1. package/button/liipgpt-button.iife.js +16 -16
  2. package/chat/liipgpt-chat.iife.js +53 -54
  3. package/config/index.cjs +6 -8
  4. package/config/index.d.ts +256 -417
  5. package/config/index.js +6 -8
  6. package/configurator/_app/env.js +1 -1
  7. package/configurator/_app/immutable/chunks/{Br-58faA.js → BHyoBcMB.js} +1 -1
  8. package/configurator/_app/immutable/chunks/Bwlnp1Fv.js +3 -0
  9. package/configurator/_app/immutable/chunks/{03vg6Qp7.js → C8ORMuNm.js} +1 -1
  10. package/configurator/_app/immutable/chunks/DEfNJr1d.js +1 -0
  11. package/configurator/_app/immutable/chunks/DShclvIF.js +116 -0
  12. package/configurator/_app/immutable/chunks/{CROVZbk3.js → Dzs3iOAP.js} +1 -1
  13. package/configurator/_app/immutable/chunks/{DSyPh3A4.js → KwlzJn94.js} +1 -1
  14. package/configurator/_app/immutable/chunks/{DZwn2NPr.js → bzMFxNOM.js} +1 -1
  15. package/configurator/_app/immutable/chunks/{C6XdV3Lv.js → tg4KZpKp.js} +1 -1
  16. package/configurator/_app/immutable/entry/{app.DCKqR20T.js → app.wS03Lw9v.js} +2 -2
  17. package/configurator/_app/immutable/entry/start.DC6usZVj.js +1 -0
  18. package/configurator/_app/immutable/nodes/{0.bJp16ZWw.js → 0.B1_BHoHM.js} +5 -7
  19. package/configurator/_app/immutable/nodes/{1.MUQxcZbH.js → 1.Qf-3txMY.js} +1 -1
  20. package/configurator/_app/immutable/nodes/{2.BtbFsQ_S.js → 2.QF2vvVAB.js} +6 -6
  21. package/configurator/_app/immutable/nodes/{3.FvTTpqZ0.js → 3.y9o-F-NC.js} +1 -1
  22. package/configurator/_app/version.json +1 -1
  23. package/configurator/index.html +6 -6
  24. package/configurator/sidebar.html +6 -6
  25. package/index.cjs +28 -13
  26. package/index.d.ts +3794 -4311
  27. package/index.js +28 -13
  28. package/package.json +1 -1
  29. package/configurator/_app/immutable/chunks/BE9gm6hD.js +0 -3
  30. package/configurator/_app/immutable/chunks/DKF3ACGN.js +0 -117
  31. package/configurator/_app/immutable/chunks/DNlyCRHN.js +0 -1
  32. package/configurator/_app/immutable/entry/start.BVpSXwgq.js +0 -1
package/index.cjs CHANGED
@@ -3155,7 +3155,7 @@ var emptyChatReferences = deepFreeze({
3155
3155
  used: [],
3156
3156
  unused: []
3157
3157
  });
3158
- var getDomPurify = (window2) => {
3158
+ var getDomPurify = (window2, newTabSrText) => {
3159
3159
  const DOMPurify = purify(window2);
3160
3160
  DOMPurify.addHook("uponSanitizeElement", function(node, data) {
3161
3161
  const tagName = data.tagName || node.nodeName.toLowerCase();
@@ -3163,6 +3163,18 @@ var getDomPurify = (window2) => {
3163
3163
  data.allowedTags[tagName] = true;
3164
3164
  }
3165
3165
  });
3166
+ DOMPurify.addHook("afterSanitizeAttributes", function(node) {
3167
+ if (node.tagName !== "A" || !node.getAttribute("href")?.startsWith("http"))
3168
+ return;
3169
+ node.setAttribute("target", "_blank");
3170
+ node.setAttribute("rel", "noopener noreferrer");
3171
+ if (!newTabSrText || node.querySelector(".sr-only"))
3172
+ return;
3173
+ const srSpan = node.ownerDocument.createElement("span");
3174
+ srSpan.className = "sr-only";
3175
+ srSpan.textContent = ` ${newTabSrText}`;
3176
+ node.appendChild(srSpan);
3177
+ });
3166
3178
  return DOMPurify;
3167
3179
  };
3168
3180
 
@@ -3173,7 +3185,7 @@ class MarkdownRenderer {
3173
3185
  DomPurity;
3174
3186
  constructor(options2 = {}) {
3175
3187
  this.marked = new Marked({ async: false, breaks: true }).use(this.createFootnoteExtension(), ...options2.extensions ?? []);
3176
- this.DomPurity = getDomPurify(options2.window);
3188
+ this.DomPurity = getDomPurify(options2.window, options2.newTabSrText);
3177
3189
  }
3178
3190
  createFootnoteExtension = () => {
3179
3191
  const self = this;
@@ -3224,7 +3236,8 @@ class MarkdownRenderer {
3224
3236
  parse(markdown) {
3225
3237
  return this.DomPurity.sanitize(this.marked.parse(markdown), {
3226
3238
  USE_PROFILES: { html: true, svg: true, svgFilters: true, mathMl: true },
3227
- FORBID_TAGS: ["hr"]
3239
+ FORBID_TAGS: ["hr"],
3240
+ ADD_ATTR: ["target"]
3228
3241
  });
3229
3242
  }
3230
3243
  toHTML(markdown, references) {
@@ -10420,21 +10433,18 @@ var comboboxComponentSchema = exports_external.object({
10420
10433
  });
10421
10434
  var alvaInitComponentSchema = exports_external.object({
10422
10435
  componentName: exports_external.literal("alva-init"),
10423
- data: exports_external.object({
10424
- enable: exports_external.boolean()
10425
- })
10436
+ data: exports_external.object({})
10426
10437
  });
10427
10438
  var alvaConfidenceComponentSchema = exports_external.object({
10428
10439
  componentName: exports_external.literal("alva-score-survey"),
10429
- data: exports_external.object({
10430
- enable: exports_external.boolean()
10431
- })
10440
+ data: exports_external.object({})
10432
10441
  });
10433
10442
  var chatMessageEmbedBaseSchema = exports_external.object({
10434
10443
  type: exports_external.literal("component"),
10435
- time: exports_external.string(),
10436
10444
  id: exports_external.string().optional(),
10437
- hideAvatar: exports_external.boolean().optional()
10445
+ time: exports_external.string().optional(),
10446
+ hideAvatar: exports_external.boolean().optional(),
10447
+ noSectionPadding: exports_external.boolean().optional()
10438
10448
  });
10439
10449
  var chatMessageEmbedSchema = exports_external.discriminatedUnion("componentName", [
10440
10450
  buttonsComponentSchema,
@@ -10845,6 +10855,7 @@ var translationSchema = exports_external.object({
10845
10855
  ariaSettings: exports_external.string(),
10846
10856
  ariaSettingsRegion: exports_external.string(),
10847
10857
  ariaReferencesRegion: exports_external.string(),
10858
+ ariaOpensInNewTab: exports_external.string(),
10848
10859
  ariaFlyoutRegion: exports_external.string(),
10849
10860
  ariaSelected: exports_external.string(),
10850
10861
  ariaUnselected: exports_external.string(),
@@ -11557,6 +11568,7 @@ class LiipGPTClientPrimitive {
11557
11568
  internalData;
11558
11569
  renderers = new Map;
11559
11570
  markedExtensions = [];
11571
+ _newTabSrText;
11560
11572
  constructor(options2) {
11561
11573
  const restOptions = {
11562
11574
  apiUrl: options2.apiUrl,
@@ -11577,19 +11589,22 @@ class LiipGPTClientPrimitive {
11577
11589
  setMarkedExtensions(...extensions) {
11578
11590
  this.markedExtensions = extensions;
11579
11591
  }
11592
+ setNewTabSrText(text3) {
11593
+ this._newTabSrText = text3;
11594
+ }
11580
11595
  getMetadata() {
11581
11596
  return this.internalData.metadata;
11582
11597
  }
11583
11598
  createConversationId() {
11584
11599
  const conversationId = v4_default();
11585
- this.renderers.set(conversationId, new MarkdownRenderer({ extensions: this.markedExtensions }));
11600
+ this.renderers.set(conversationId, new MarkdownRenderer({ extensions: this.markedExtensions, newTabSrText: this._newTabSrText }));
11586
11601
  return conversationId;
11587
11602
  }
11588
11603
  chat(conversationId, question, options2 = {}) {
11589
11604
  const content = new FutureValue;
11590
11605
  const requestId = v4_default();
11591
11606
  const readyForFeedback = new Flag;
11592
- const markdownRenderer = this.renderers.get(conversationId) ?? new MarkdownRenderer({ extensions: this.markedExtensions });
11607
+ const markdownRenderer = this.renderers.get(conversationId) ?? new MarkdownRenderer({ extensions: this.markedExtensions, newTabSrText: this._newTabSrText });
11593
11608
  const chatResultBuilder = new ChatResultBuilder({
11594
11609
  id: requestId,
11595
11610
  onError: (error) => {