@lionrapid/core 0.3.0 → 0.4.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.
Files changed (89) hide show
  1. package/dist/browser/attribute-extractor.d.ts +54 -0
  2. package/dist/browser/attribute-extractor.d.ts.map +1 -0
  3. package/dist/browser/attribute-extractor.js +155 -0
  4. package/dist/browser/attribute-extractor.js.map +1 -0
  5. package/dist/browser/auto-init.d.ts +4 -0
  6. package/dist/browser/auto-init.d.ts.map +1 -1
  7. package/dist/browser/auto-init.js +6 -2
  8. package/dist/browser/auto-init.js.map +1 -1
  9. package/dist/browser/auto-translator.d.ts +23 -0
  10. package/dist/browser/auto-translator.d.ts.map +1 -1
  11. package/dist/browser/auto-translator.js +90 -5
  12. package/dist/browser/auto-translator.js.map +1 -1
  13. package/dist/browser/block-extractor.d.ts +8 -0
  14. package/dist/browser/block-extractor.d.ts.map +1 -1
  15. package/dist/browser/block-extractor.js +77 -0
  16. package/dist/browser/block-extractor.js.map +1 -1
  17. package/dist/browser/editor/editor-api.d.ts +22 -1
  18. package/dist/browser/editor/editor-api.d.ts.map +1 -1
  19. package/dist/browser/editor/editor-api.js +54 -19
  20. package/dist/browser/editor/editor-api.js.map +1 -1
  21. package/dist/browser/editor/editor-init.js +72 -3
  22. package/dist/browser/editor/editor-init.js.map +1 -1
  23. package/dist/browser/editor/editor-styles.d.ts +1 -1
  24. package/dist/browser/editor/editor-styles.d.ts.map +1 -1
  25. package/dist/browser/editor/editor-styles.js +38 -1
  26. package/dist/browser/editor/editor-styles.js.map +1 -1
  27. package/dist/browser/editor/inspector.d.ts +8 -0
  28. package/dist/browser/editor/inspector.d.ts.map +1 -1
  29. package/dist/browser/editor/inspector.js +14 -0
  30. package/dist/browser/editor/inspector.js.map +1 -1
  31. package/dist/browser/editor/live-preview.d.ts +1 -1
  32. package/dist/browser/editor/live-preview.d.ts.map +1 -1
  33. package/dist/browser/editor/live-preview.js +27 -16
  34. package/dist/browser/editor/live-preview.js.map +1 -1
  35. package/dist/browser/editor/locale-url.d.ts +18 -0
  36. package/dist/browser/editor/locale-url.d.ts.map +1 -0
  37. package/dist/browser/editor/locale-url.js +37 -0
  38. package/dist/browser/editor/locale-url.js.map +1 -0
  39. package/dist/browser/editor/sidebar.d.ts +6 -0
  40. package/dist/browser/editor/sidebar.d.ts.map +1 -1
  41. package/dist/browser/editor/sidebar.js +133 -4
  42. package/dist/browser/editor/sidebar.js.map +1 -1
  43. package/dist/browser/editor/toolbar.d.ts +8 -1
  44. package/dist/browser/editor/toolbar.d.ts.map +1 -1
  45. package/dist/browser/editor/toolbar.js +49 -4
  46. package/dist/browser/editor/toolbar.js.map +1 -1
  47. package/dist/browser/index.d.ts +2 -0
  48. package/dist/browser/index.d.ts.map +1 -1
  49. package/dist/browser/index.js +1 -0
  50. package/dist/browser/index.js.map +1 -1
  51. package/dist/browser/lionrapid.auto.dev.js +324 -36
  52. package/dist/browser/lionrapid.auto.dev.js.map +4 -4
  53. package/dist/browser/lionrapid.auto.js +324 -36
  54. package/dist/browser/lionrapid.auto.js.map +4 -4
  55. package/dist/browser/lionrapid.auto.min.js +3 -3
  56. package/dist/browser/lionrapid.auto.min.js.map +4 -4
  57. package/dist/browser/lionrapid.editor.js +371 -36
  58. package/dist/browser/lionrapid.editor.js.map +3 -3
  59. package/dist/browser/lionrapid.editor.min.js +41 -4
  60. package/dist/browser/lionrapid.editor.min.js.map +4 -4
  61. package/dist/browser/lionrapid.esm.js +40 -26
  62. package/dist/browser/lionrapid.esm.js.map +2 -2
  63. package/dist/browser/lionrapid.esm.min.js +2 -2
  64. package/dist/browser/lionrapid.esm.min.js.map +3 -3
  65. package/dist/browser/lionrapid.iife.dev.js +40 -26
  66. package/dist/browser/lionrapid.iife.dev.js.map +2 -2
  67. package/dist/browser/lionrapid.iife.js +40 -26
  68. package/dist/browser/lionrapid.iife.js.map +2 -2
  69. package/dist/browser/lionrapid.iife.min.js +2 -2
  70. package/dist/browser/lionrapid.iife.min.js.map +3 -3
  71. package/dist/browser/lionrapid.umd.js +40 -26
  72. package/dist/browser/lionrapid.umd.js.map +2 -2
  73. package/dist/browser/lionrapid.umd.min.js +2 -2
  74. package/dist/browser/lionrapid.umd.min.js.map +3 -3
  75. package/dist/browser/md5.d.ts +3 -2
  76. package/dist/browser/md5.d.ts.map +1 -1
  77. package/dist/browser/md5.js +41 -6
  78. package/dist/browser/md5.js.map +1 -1
  79. package/dist/content/parser/MarkupParser.d.ts +0 -10
  80. package/dist/content/parser/MarkupParser.d.ts.map +1 -1
  81. package/dist/content/parser/MarkupParser.js +45 -3
  82. package/dist/content/parser/MarkupParser.js.map +1 -1
  83. package/dist/content/types.d.ts +30 -0
  84. package/dist/content/types.d.ts.map +1 -1
  85. package/dist/repositories/network-repository.d.ts +0 -14
  86. package/dist/repositories/network-repository.d.ts.map +1 -1
  87. package/dist/repositories/network-repository.js +4 -26
  88. package/dist/repositories/network-repository.js.map +1 -1
  89. package/package.json +1 -1
@@ -2199,10 +2199,44 @@ function readRawStyle(styles) {
2199
2199
  }
2200
2200
 
2201
2201
  // src/content/parser/MarkupParser.ts
2202
+ function decodeEntities(text) {
2203
+ const named = {
2204
+ amp: "&",
2205
+ lt: "<",
2206
+ gt: ">",
2207
+ quot: '"',
2208
+ apos: "'",
2209
+ nbsp: " ",
2210
+ rsquo: "\u2019",
2211
+ lsquo: "\u2018",
2212
+ rdquo: "\u201D",
2213
+ ldquo: "\u201C",
2214
+ hellip: "\u2026",
2215
+ mdash: "\u2014",
2216
+ ndash: "\u2013",
2217
+ copy: "\xA9",
2218
+ reg: "\xAE",
2219
+ trade: "\u2122"
2220
+ };
2221
+ return text.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z][a-z0-9]*);/gi, (m, body) => {
2222
+ if (body[0] === "#") {
2223
+ const cp = body[1] === "x" || body[1] === "X" ? parseInt(body.slice(2), 16) : parseInt(body.slice(1), 10);
2224
+ if (Number.isFinite(cp) && cp > 0) {
2225
+ try {
2226
+ return String.fromCodePoint(cp);
2227
+ } catch {
2228
+ return m;
2229
+ }
2230
+ }
2231
+ return m;
2232
+ }
2233
+ return named[body.toLowerCase()] ?? m;
2234
+ });
2235
+ }
2202
2236
  var MarkupParser = class {
2203
2237
  parse(input) {
2204
2238
  if (/<\/?[0-9]+>/.test(input)) {
2205
- return { text: input, styles: {} };
2239
+ return { text: decodeEntities(input), styles: {} };
2206
2240
  }
2207
2241
  const styles = {};
2208
2242
  let tagIndex = 0;
@@ -2247,7 +2281,7 @@ var MarkupParser = class {
2247
2281
  const unclosed = tagStack.pop();
2248
2282
  result += `</${unclosed.index}>`;
2249
2283
  }
2250
- return { text: result, styles };
2284
+ return { text: decodeEntities(result), styles };
2251
2285
  }
2252
2286
  matchTag(input, startPos) {
2253
2287
  const tagStart = input.indexOf("<", startPos);
@@ -3495,7 +3529,7 @@ var _NetworkRepository = class _NetworkRepository {
3495
3529
  logger.debug("API base URL is not set");
3496
3530
  throw new NetworkError("API base URL is not set");
3497
3531
  }
3498
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3532
+ const url = this.buildUrl("getTranslation", { key });
3499
3533
  logger.debug(`API GET: ${url}`);
3500
3534
  try {
3501
3535
  const response = await this.makeRequest(url, "GET");
@@ -3531,7 +3565,7 @@ var _NetworkRepository = class _NetworkRepository {
3531
3565
  logger.debug("API base URL is not set");
3532
3566
  throw new NetworkError("API base URL is not set");
3533
3567
  }
3534
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3568
+ const url = this.buildUrl("getTranslation", { key });
3535
3569
  logger.debug(`API GET ContentUnit: ${url}`);
3536
3570
  try {
3537
3571
  const response = await this.makeRequest(url, "GET");
@@ -3572,7 +3606,7 @@ var _NetworkRepository = class _NetworkRepository {
3572
3606
  logger.debug("API base URL is not set");
3573
3607
  throw new NetworkError("API base URL is not set");
3574
3608
  }
3575
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3609
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3576
3610
  logger.debug(`API GET Namespace: ${url}`);
3577
3611
  const namespaceKey = `${locale}:${namespace}`;
3578
3612
  try {
@@ -3686,7 +3720,7 @@ var _NetworkRepository = class _NetworkRepository {
3686
3720
  logger.debug("API base URL is not set");
3687
3721
  throw new NetworkError("API base URL is not set");
3688
3722
  }
3689
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3723
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3690
3724
  logger.debug(`API GET Namespace ContentUnits: ${url}`);
3691
3725
  const namespaceKey = `${locale}:${namespace}`;
3692
3726
  try {
@@ -3898,26 +3932,6 @@ var _NetworkRepository = class _NetworkRepository {
3898
3932
  }
3899
3933
  return `${baseUrl}${path}`;
3900
3934
  }
3901
- /**
3902
- * Check whether the current page is running inside an active visual-editor
3903
- * session. The editor JS sets `__lr_editor_active=1` as a session cookie
3904
- * when its JWT is established; we read it here so client-side translation
3905
- * fetches request draft content too, matching what the edge proxy does
3906
- * server-side. Outside a browser (Node/SSR) this is always false.
3907
- */
3908
- isEditorPreviewSession() {
3909
- if (typeof document === "undefined") return false;
3910
- return document.cookie.split("; ").some((c) => c === "__lr_editor_active=1");
3911
- }
3912
- /**
3913
- * Append `include_drafts=true` to a built URL when an editor session is
3914
- * active. Leaves the URL unchanged for normal visitors so the delivery
3915
- * gate continues to apply in production.
3916
- */
3917
- withDraftsParam(url) {
3918
- if (!this.isEditorPreviewSession()) return url;
3919
- return url + (url.includes("?") ? "&" : "?") + "include_drafts=true";
3920
- }
3921
3935
  /**
3922
3936
  * Make HTTP request with timeout and headers
3923
3937
  */