@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
@@ -2269,10 +2269,44 @@ function readRawStyle(styles) {
2269
2269
  }
2270
2270
 
2271
2271
  // src/content/parser/MarkupParser.ts
2272
+ function decodeEntities(text) {
2273
+ const named = {
2274
+ amp: "&",
2275
+ lt: "<",
2276
+ gt: ">",
2277
+ quot: '"',
2278
+ apos: "'",
2279
+ nbsp: " ",
2280
+ rsquo: "\u2019",
2281
+ lsquo: "\u2018",
2282
+ rdquo: "\u201D",
2283
+ ldquo: "\u201C",
2284
+ hellip: "\u2026",
2285
+ mdash: "\u2014",
2286
+ ndash: "\u2013",
2287
+ copy: "\xA9",
2288
+ reg: "\xAE",
2289
+ trade: "\u2122"
2290
+ };
2291
+ return text.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z][a-z0-9]*);/gi, (m, body) => {
2292
+ if (body[0] === "#") {
2293
+ const cp = body[1] === "x" || body[1] === "X" ? parseInt(body.slice(2), 16) : parseInt(body.slice(1), 10);
2294
+ if (Number.isFinite(cp) && cp > 0) {
2295
+ try {
2296
+ return String.fromCodePoint(cp);
2297
+ } catch {
2298
+ return m;
2299
+ }
2300
+ }
2301
+ return m;
2302
+ }
2303
+ return named[body.toLowerCase()] ?? m;
2304
+ });
2305
+ }
2272
2306
  var MarkupParser = class {
2273
2307
  parse(input) {
2274
2308
  if (/<\/?[0-9]+>/.test(input)) {
2275
- return { text: input, styles: {} };
2309
+ return { text: decodeEntities(input), styles: {} };
2276
2310
  }
2277
2311
  const styles = {};
2278
2312
  let tagIndex = 0;
@@ -2317,7 +2351,7 @@ var MarkupParser = class {
2317
2351
  const unclosed = tagStack.pop();
2318
2352
  result += `</${unclosed.index}>`;
2319
2353
  }
2320
- return { text: result, styles };
2354
+ return { text: decodeEntities(result), styles };
2321
2355
  }
2322
2356
  matchTag(input, startPos) {
2323
2357
  const tagStart = input.indexOf("<", startPos);
@@ -3565,7 +3599,7 @@ var _NetworkRepository = class _NetworkRepository {
3565
3599
  logger.debug("API base URL is not set");
3566
3600
  throw new NetworkError("API base URL is not set");
3567
3601
  }
3568
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3602
+ const url = this.buildUrl("getTranslation", { key });
3569
3603
  logger.debug(`API GET: ${url}`);
3570
3604
  try {
3571
3605
  const response = await this.makeRequest(url, "GET");
@@ -3601,7 +3635,7 @@ var _NetworkRepository = class _NetworkRepository {
3601
3635
  logger.debug("API base URL is not set");
3602
3636
  throw new NetworkError("API base URL is not set");
3603
3637
  }
3604
- const url = this.withDraftsParam(this.buildUrl("getTranslation", { key }));
3638
+ const url = this.buildUrl("getTranslation", { key });
3605
3639
  logger.debug(`API GET ContentUnit: ${url}`);
3606
3640
  try {
3607
3641
  const response = await this.makeRequest(url, "GET");
@@ -3642,7 +3676,7 @@ var _NetworkRepository = class _NetworkRepository {
3642
3676
  logger.debug("API base URL is not set");
3643
3677
  throw new NetworkError("API base URL is not set");
3644
3678
  }
3645
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3679
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3646
3680
  logger.debug(`API GET Namespace: ${url}`);
3647
3681
  const namespaceKey = `${locale}:${namespace}`;
3648
3682
  try {
@@ -3756,7 +3790,7 @@ var _NetworkRepository = class _NetworkRepository {
3756
3790
  logger.debug("API base URL is not set");
3757
3791
  throw new NetworkError("API base URL is not set");
3758
3792
  }
3759
- const url = this.withDraftsParam(this.buildUrl("getNamespace", { locale, namespace }));
3793
+ const url = this.buildUrl("getNamespace", { locale, namespace });
3760
3794
  logger.debug(`API GET Namespace ContentUnits: ${url}`);
3761
3795
  const namespaceKey = `${locale}:${namespace}`;
3762
3796
  try {
@@ -3968,26 +4002,6 @@ var _NetworkRepository = class _NetworkRepository {
3968
4002
  }
3969
4003
  return `${baseUrl}${path}`;
3970
4004
  }
3971
- /**
3972
- * Check whether the current page is running inside an active visual-editor
3973
- * session. The editor JS sets `__lr_editor_active=1` as a session cookie
3974
- * when its JWT is established; we read it here so client-side translation
3975
- * fetches request draft content too, matching what the edge proxy does
3976
- * server-side. Outside a browser (Node/SSR) this is always false.
3977
- */
3978
- isEditorPreviewSession() {
3979
- if (typeof document === "undefined") return false;
3980
- return document.cookie.split("; ").some((c) => c === "__lr_editor_active=1");
3981
- }
3982
- /**
3983
- * Append `include_drafts=true` to a built URL when an editor session is
3984
- * active. Leaves the URL unchanged for normal visitors so the delivery
3985
- * gate continues to apply in production.
3986
- */
3987
- withDraftsParam(url) {
3988
- if (!this.isEditorPreviewSession()) return url;
3989
- return url + (url.includes("?") ? "&" : "?") + "include_drafts=true";
3990
- }
3991
4005
  /**
3992
4006
  * Make HTTP request with timeout and headers
3993
4007
  */