@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.
- package/dist/browser/attribute-extractor.d.ts +54 -0
- package/dist/browser/attribute-extractor.d.ts.map +1 -0
- package/dist/browser/attribute-extractor.js +155 -0
- package/dist/browser/attribute-extractor.js.map +1 -0
- package/dist/browser/auto-init.d.ts +4 -0
- package/dist/browser/auto-init.d.ts.map +1 -1
- package/dist/browser/auto-init.js +6 -2
- package/dist/browser/auto-init.js.map +1 -1
- package/dist/browser/auto-translator.d.ts +23 -0
- package/dist/browser/auto-translator.d.ts.map +1 -1
- package/dist/browser/auto-translator.js +90 -5
- package/dist/browser/auto-translator.js.map +1 -1
- package/dist/browser/block-extractor.d.ts +8 -0
- package/dist/browser/block-extractor.d.ts.map +1 -1
- package/dist/browser/block-extractor.js +77 -0
- package/dist/browser/block-extractor.js.map +1 -1
- package/dist/browser/editor/editor-api.d.ts +22 -1
- package/dist/browser/editor/editor-api.d.ts.map +1 -1
- package/dist/browser/editor/editor-api.js +54 -19
- package/dist/browser/editor/editor-api.js.map +1 -1
- package/dist/browser/editor/editor-init.js +72 -3
- package/dist/browser/editor/editor-init.js.map +1 -1
- package/dist/browser/editor/editor-styles.d.ts +1 -1
- package/dist/browser/editor/editor-styles.d.ts.map +1 -1
- package/dist/browser/editor/editor-styles.js +38 -1
- package/dist/browser/editor/editor-styles.js.map +1 -1
- package/dist/browser/editor/inspector.d.ts +8 -0
- package/dist/browser/editor/inspector.d.ts.map +1 -1
- package/dist/browser/editor/inspector.js +14 -0
- package/dist/browser/editor/inspector.js.map +1 -1
- package/dist/browser/editor/live-preview.d.ts +1 -1
- package/dist/browser/editor/live-preview.d.ts.map +1 -1
- package/dist/browser/editor/live-preview.js +27 -16
- package/dist/browser/editor/live-preview.js.map +1 -1
- package/dist/browser/editor/locale-url.d.ts +18 -0
- package/dist/browser/editor/locale-url.d.ts.map +1 -0
- package/dist/browser/editor/locale-url.js +37 -0
- package/dist/browser/editor/locale-url.js.map +1 -0
- package/dist/browser/editor/sidebar.d.ts +6 -0
- package/dist/browser/editor/sidebar.d.ts.map +1 -1
- package/dist/browser/editor/sidebar.js +133 -4
- package/dist/browser/editor/sidebar.js.map +1 -1
- package/dist/browser/editor/toolbar.d.ts +8 -1
- package/dist/browser/editor/toolbar.d.ts.map +1 -1
- package/dist/browser/editor/toolbar.js +49 -4
- package/dist/browser/editor/toolbar.js.map +1 -1
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/lionrapid.auto.dev.js +324 -36
- package/dist/browser/lionrapid.auto.dev.js.map +4 -4
- package/dist/browser/lionrapid.auto.js +324 -36
- package/dist/browser/lionrapid.auto.js.map +4 -4
- package/dist/browser/lionrapid.auto.min.js +3 -3
- package/dist/browser/lionrapid.auto.min.js.map +4 -4
- package/dist/browser/lionrapid.editor.js +371 -36
- package/dist/browser/lionrapid.editor.js.map +3 -3
- package/dist/browser/lionrapid.editor.min.js +41 -4
- package/dist/browser/lionrapid.editor.min.js.map +4 -4
- package/dist/browser/lionrapid.esm.js +40 -26
- package/dist/browser/lionrapid.esm.js.map +2 -2
- package/dist/browser/lionrapid.esm.min.js +2 -2
- package/dist/browser/lionrapid.esm.min.js.map +3 -3
- package/dist/browser/lionrapid.iife.dev.js +40 -26
- package/dist/browser/lionrapid.iife.dev.js.map +2 -2
- package/dist/browser/lionrapid.iife.js +40 -26
- package/dist/browser/lionrapid.iife.js.map +2 -2
- package/dist/browser/lionrapid.iife.min.js +2 -2
- package/dist/browser/lionrapid.iife.min.js.map +3 -3
- package/dist/browser/lionrapid.umd.js +40 -26
- package/dist/browser/lionrapid.umd.js.map +2 -2
- package/dist/browser/lionrapid.umd.min.js +2 -2
- package/dist/browser/lionrapid.umd.min.js.map +3 -3
- package/dist/browser/md5.d.ts +3 -2
- package/dist/browser/md5.d.ts.map +1 -1
- package/dist/browser/md5.js +41 -6
- package/dist/browser/md5.js.map +1 -1
- package/dist/content/parser/MarkupParser.d.ts +0 -10
- package/dist/content/parser/MarkupParser.d.ts.map +1 -1
- package/dist/content/parser/MarkupParser.js +45 -3
- package/dist/content/parser/MarkupParser.js.map +1 -1
- package/dist/content/types.d.ts +30 -0
- package/dist/content/types.d.ts.map +1 -1
- package/dist/repositories/network-repository.d.ts +0 -14
- package/dist/repositories/network-repository.d.ts.map +1 -1
- package/dist/repositories/network-repository.js +4 -26
- package/dist/repositories/network-repository.js.map +1 -1
- 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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
*/
|