@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
@@ -2257,10 +2257,44 @@ var LionRapid = (() => {
2257
2257
  }
2258
2258
 
2259
2259
  // src/content/parser/MarkupParser.ts
2260
+ function decodeEntities(text) {
2261
+ const named = {
2262
+ amp: "&",
2263
+ lt: "<",
2264
+ gt: ">",
2265
+ quot: '"',
2266
+ apos: "'",
2267
+ nbsp: " ",
2268
+ rsquo: "\u2019",
2269
+ lsquo: "\u2018",
2270
+ rdquo: "\u201D",
2271
+ ldquo: "\u201C",
2272
+ hellip: "\u2026",
2273
+ mdash: "\u2014",
2274
+ ndash: "\u2013",
2275
+ copy: "\xA9",
2276
+ reg: "\xAE",
2277
+ trade: "\u2122"
2278
+ };
2279
+ return text.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z][a-z0-9]*);/gi, (m, body) => {
2280
+ if (body[0] === "#") {
2281
+ const cp = body[1] === "x" || body[1] === "X" ? parseInt(body.slice(2), 16) : parseInt(body.slice(1), 10);
2282
+ if (Number.isFinite(cp) && cp > 0) {
2283
+ try {
2284
+ return String.fromCodePoint(cp);
2285
+ } catch {
2286
+ return m;
2287
+ }
2288
+ }
2289
+ return m;
2290
+ }
2291
+ return named[body.toLowerCase()] ?? m;
2292
+ });
2293
+ }
2260
2294
  var MarkupParser = class {
2261
2295
  parse(input) {
2262
2296
  if (/<\/?[0-9]+>/.test(input)) {
2263
- return { text: input, styles: {} };
2297
+ return { text: decodeEntities(input), styles: {} };
2264
2298
  }
2265
2299
  const styles = {};
2266
2300
  let tagIndex = 0;
@@ -2305,7 +2339,7 @@ var LionRapid = (() => {
2305
2339
  const unclosed = tagStack.pop();
2306
2340
  result += `</${unclosed.index}>`;
2307
2341
  }
2308
- return { text: result, styles };
2342
+ return { text: decodeEntities(result), styles };
2309
2343
  }
2310
2344
  matchTag(input, startPos) {
2311
2345
  const tagStart = input.indexOf("<", startPos);
@@ -3553,7 +3587,7 @@ var LionRapid = (() => {
3553
3587
  logger.debug("API base URL is not set");
3554
3588
  throw new NetworkError("API base URL is not set");
3555
3589
  }
3556
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3590
+ const url = this.buildUrl("getTranslation", { key });
3557
3591
  logger.debug(`API GET: ${url}`);
3558
3592
  try {
3559
3593
  const response = await this.makeRequest(url, "GET");
@@ -3589,7 +3623,7 @@ var LionRapid = (() => {
3589
3623
  logger.debug("API base URL is not set");
3590
3624
  throw new NetworkError("API base URL is not set");
3591
3625
  }
3592
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3626
+ const url = this.buildUrl("getTranslation", { key });
3593
3627
  logger.debug(`API GET ContentUnit: ${url}`);
3594
3628
  try {
3595
3629
  const response = await this.makeRequest(url, "GET");
@@ -3630,7 +3664,7 @@ var LionRapid = (() => {
3630
3664
  logger.debug("API base URL is not set");
3631
3665
  throw new NetworkError("API base URL is not set");
3632
3666
  }
3633
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3667
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3634
3668
  logger.debug(`API GET Namespace: ${url}`);
3635
3669
  const namespaceKey = `${locale}:${namespace}`;
3636
3670
  try {
@@ -3744,7 +3778,7 @@ var LionRapid = (() => {
3744
3778
  logger.debug("API base URL is not set");
3745
3779
  throw new NetworkError("API base URL is not set");
3746
3780
  }
3747
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3781
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3748
3782
  logger.debug(`API GET Namespace ContentUnits: ${url}`);
3749
3783
  const namespaceKey = `${locale}:${namespace}`;
3750
3784
  try {
@@ -3956,26 +3990,6 @@ var LionRapid = (() => {
3956
3990
  }
3957
3991
  return `${baseUrl}${path}`;
3958
3992
  }
3959
- /**
3960
- * Check whether the current page is running inside an active visual-editor
3961
- * session. The editor JS sets `__lr_editor_active=1` as a session cookie
3962
- * when its JWT is established; we read it here so client-side translation
3963
- * fetches request draft content too, matching what the edge proxy does
3964
- * server-side. Outside a browser (Node/SSR) this is always false.
3965
- */
3966
- isEditorPreviewSession() {
3967
- if (typeof document === "undefined") return false;
3968
- return document.cookie.split("; ").some((c) => c === "__lr_editor_active=1");
3969
- }
3970
- /**
3971
- * Append `include_drafts=true` to a built URL when an editor session is
3972
- * active. Leaves the URL unchanged for normal visitors so the delivery
3973
- * gate continues to apply in production.
3974
- */
3975
- withDraftsParam(url) {
3976
- if (!this.isEditorPreviewSession()) return url;
3977
- return url + (url.includes("?") ? "&" : "?") + "include_drafts=true";
3978
- }
3979
3993
  /**
3980
3994
  * Make HTTP request with timeout and headers
3981
3995
  */