@mx-space/cli 0.14.0 → 0.14.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.
- package/dist/{Lexical.dev-DTxuYHmG.mjs → Lexical.dev-CtGmYDoh.mjs} +770 -271
- package/dist/{Lexical.node-BlCLnfA6.mjs → Lexical.node-8sRFmq2X.mjs} +15 -5
- package/dist/Lexical.prod-D-VfeKDz.mjs +7200 -0
- package/dist/{LexicalClipboard.dev-CdFkLR_D.mjs → LexicalClipboard.dev-CzQ15z6E.mjs} +6 -6
- package/dist/{LexicalClipboard.node-ktUajxsv.mjs → LexicalClipboard.node-D4gMGws6.mjs} +2 -2
- package/dist/{LexicalClipboard.prod-DliyLofW.mjs → LexicalClipboard.prod-CltkQpzS.mjs} +10 -8
- package/dist/{LexicalCodeCore.dev-CL9tHWJX.mjs → LexicalCodeCore.dev-DkYBZRGB.mjs} +11 -9
- package/dist/{LexicalCodeCore.prod-BoMSJc29.mjs → LexicalCodeCore.prod-COc3_QL8.mjs} +178 -167
- package/dist/{LexicalDragon.dev-CqW7Aq5H.mjs → LexicalDragon.dev-Dv5_WUae.mjs} +3 -3
- package/dist/{LexicalDragon.node-DLXctJyy.mjs → LexicalDragon.node-DgjrmWkd.mjs} +2 -2
- package/dist/{LexicalDragon.prod-DHI3T6n5.mjs → LexicalDragon.prod-DnpbDe-_.mjs} +5 -4
- package/dist/{LexicalExtension.dev-BP-18zns.mjs → LexicalExtension.dev-JMH_6-OZ.mjs} +73 -52
- package/dist/{LexicalExtension.node-BWH6xbzG.mjs → LexicalExtension.node-BUozzx4t.mjs} +4 -2
- package/dist/{LexicalExtension.prod-Cs6OgrDn.mjs → LexicalExtension.prod-UiyDgmou.mjs} +370 -347
- package/dist/{LexicalHeadless.dev-DJp__UcP.mjs → LexicalHeadless.dev-BfLGciiX.mjs} +2 -2
- package/dist/{LexicalHeadless.prod-o0v9cIu5.mjs → LexicalHeadless.prod-CWF7edmQ.mjs} +2 -2
- package/dist/{LexicalHtml.dev-DoymwFpG.mjs → LexicalHtml.dev-D5EF5PGW.mjs} +13 -11
- package/dist/{LexicalHtml.node-CVkbWtUA.mjs → LexicalHtml.node-BYbzHNVe.mjs} +4 -4
- package/dist/{LexicalHtml.prod-C2b3z99k.mjs → LexicalHtml.prod-D_FfkvVD.mjs} +330 -299
- package/dist/{LexicalLink.dev-7cgLOLIe.mjs → LexicalLink.dev-D3Pgh6ik.mjs} +53 -23
- package/dist/{LexicalLink.prod-DWFgoXHR.mjs → LexicalLink.prod-XZoAYVYD.mjs} +217 -198
- package/dist/{LexicalList.dev-Ci2iOxFx.mjs → LexicalList.dev-B5d3ObhB.mjs} +49 -44
- package/dist/LexicalList.prod-OQDpVAEb.mjs +967 -0
- package/dist/{LexicalMarkdown.dev-C0ZYCyuR.mjs → LexicalMarkdown.dev-BkM8G3DG.mjs} +61 -42
- package/dist/{LexicalMarkdown.prod-0M-Nc-rh.mjs → LexicalMarkdown.prod-DcVXCex6.mjs} +254 -202
- package/dist/{LexicalRichText.dev-Cnr1kDym.mjs → LexicalRichText.dev-DppD7IrA.mjs} +337 -52
- package/dist/{LexicalRichText.node-BUJZAiap.mjs → LexicalRichText.node-CPSn7dkg.mjs} +12 -8
- package/dist/LexicalRichText.prod-h7JPxFNp.mjs +718 -0
- package/dist/{LexicalSelection.dev-C4L7l8OB.mjs → LexicalSelection.dev-CD0SLbxP.mjs} +48 -17
- package/dist/{LexicalSelection.node-CLKroUMQ.mjs → LexicalSelection.node-CGlJgUlZ.mjs} +5 -4
- package/dist/{LexicalSelection.prod-DzFqpTlw.mjs → LexicalSelection.prod-DbVZN5AV.mjs} +101 -92
- package/dist/{LexicalTable.dev-Cc9-zqKa.mjs → LexicalTable.dev-D0HU14UV.mjs} +340 -138
- package/dist/LexicalTable.prod-BcPNSrxP.mjs +2468 -0
- package/dist/{LexicalUtils.dev-BRgK0L6G.mjs → LexicalUtils.dev-iKy_TrRT.mjs} +15 -19
- package/dist/{LexicalUtils.node-BVAwOkL4.mjs → LexicalUtils.node-CIgMS8cG.mjs} +6 -6
- package/dist/{LexicalUtils.prod-C1gtvVDP.mjs → LexicalUtils.prod-DIAsKJzu.mjs} +155 -159
- package/dist/bin/mxs.mjs +1 -1
- package/dist/esm-CH7CrOvh.mjs +2 -0
- package/dist/{esm-BNu4sUWV.mjs → esm-CwXl1N0a.mjs} +1801 -6013
- package/dist/index.d.mts +57 -62
- package/dist/index.mjs +1 -1
- package/dist/{mxs-BUqt-N3N.mjs → mxs-iW9DgqSZ.mjs} +14960 -9235
- package/dist/rolldown-runtime-JspESFgx.mjs +35 -0
- package/dist/vendor/litexml/cli.mjs +6693 -5762
- package/dist/vendor/litexml/litexml-html-preview-client.js +11912 -8698
- package/package.json +31 -30
- package/LICENSE +0 -33
- package/dist/Lexical.prod-CeB9UQuo.mjs +0 -6816
- package/dist/LexicalList.prod-D0xX5d3G.mjs +0 -944
- package/dist/LexicalRichText.prod-BfbMQ9uM.mjs +0 -538
- package/dist/LexicalTable.prod-BgO4nCxy.mjs +0 -2336
- package/dist/esm-jbwcVZth.mjs +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { f as namedSignals, l as effect } from "./LexicalExtension.node-
|
|
2
|
-
import { $ as
|
|
3
|
-
import { c as
|
|
4
|
-
import {
|
|
5
|
-
//#region ../../node_modules/.pnpm/@lexical+link@0.
|
|
1
|
+
import { f as namedSignals, l as effect } from "./LexicalExtension.node-BUozzx4t.mjs";
|
|
2
|
+
import { $t as COMMAND_PRIORITY_LOW, A as $getChildCaret, At as $rewindSiblingCaret, Dt as $normalizeSelection__EXPERIMENTAL, Et as $normalizeCaret, Ft as $setSelection, G as $getSelection, I as $getDocument, Lr as getNearestEditorFromDOMNode, Pt as $setPointFromCaret, Qr as isHTMLAnchorElement, St as $isTextNode, Tr as defineExtension, Zt as COMMAND_PRIORITY_EDITOR, _i as shallowMergeConfig, _r as TextNode, b as $findMatchingParent, br as configExtension, ci as mergeRegister, di as registerEventListeners, dt as $isLineBreakNode, et as $insertNodeToNearestRootAtCaret, ft as $isNodeSelection, hn as ElementNode, i as $caretFromPoint, l as $copyNode, mt as $isRangeSelection, n as $applyNodeReplacement, ot as $isElementNode, pi as safeCast, qr as isDOMNode, rr as PASTE_COMMAND, v as $createTextNode, vr as addClassNamesToElement, xr as createCommand, yt as $isSiblingCaret, z as $getNearestNodeFromDOMNode } from "./Lexical.node-8sRFmq2X.mjs";
|
|
3
|
+
import { c as CoreImportExtension, g as defineImportRule, l as DOMImportExtension, t as $distributeInlineWrapper, y as sel } from "./LexicalHtml.node-BYbzHNVe.mjs";
|
|
4
|
+
import { m as objectKlassEquals } from "./LexicalUtils.node-CIgMS8cG.mjs";
|
|
5
|
+
//#region ../../node_modules/.pnpm/@lexical+link@0.48.0_typescript@6.0.3/node_modules/@lexical/link/dist/LexicalLink.dev.mjs
|
|
6
6
|
/**
|
|
7
7
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
8
8
|
*
|
|
@@ -63,7 +63,7 @@ var LinkNode = class LinkNode extends ElementNode {
|
|
|
63
63
|
this.__title = prevNode.__title;
|
|
64
64
|
}
|
|
65
65
|
createDOM(config) {
|
|
66
|
-
const element =
|
|
66
|
+
const element = $getDocument().createElement("a");
|
|
67
67
|
this.updateLinkDOM(null, element, config);
|
|
68
68
|
addClassNamesToElement(element, config.theme.link);
|
|
69
69
|
return element;
|
|
@@ -100,12 +100,14 @@ var LinkNode = class LinkNode extends ElementNode {
|
|
|
100
100
|
return super.updateFromJSON(serializedNode).setURL(serializedNode.url).setRel(serializedNode.rel || null).setTarget(serializedNode.target || null).setTitle(serializedNode.title || null);
|
|
101
101
|
}
|
|
102
102
|
sanitizeUrl(url) {
|
|
103
|
+
const rawUrl = url;
|
|
103
104
|
url = formatUrl(url);
|
|
104
105
|
try {
|
|
105
106
|
const parsedUrl = new URL(formatUrl(url));
|
|
106
107
|
if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) return "about:blank";
|
|
107
108
|
} catch (_unused) {
|
|
108
|
-
|
|
109
|
+
const schemeMatch = rawUrl.replace(/[\u0000-\u001F\u007F\s]/g, "").match(/^([a-z][a-z0-9+.-]*):/i);
|
|
110
|
+
if (schemeMatch != null && !SUPPORTED_URL_PROTOCOLS.has(`${schemeMatch[1].toLowerCase()}:`)) return "about:blank";
|
|
109
111
|
}
|
|
110
112
|
return url;
|
|
111
113
|
}
|
|
@@ -325,7 +327,7 @@ var AutoLinkNode = class AutoLinkNode extends LinkNode {
|
|
|
325
327
|
return self;
|
|
326
328
|
}
|
|
327
329
|
createDOM(config) {
|
|
328
|
-
if (this.__isUnlinked) return
|
|
330
|
+
if (this.__isUnlinked) return $getDocument().createElement("span");
|
|
329
331
|
else return super.createDOM(config);
|
|
330
332
|
}
|
|
331
333
|
updateDOM(prevNode, anchor, config) {
|
|
@@ -723,11 +725,13 @@ function registerClickableLink(editor, stores, eventOptions = {}) {
|
|
|
723
725
|
if (nearestEditor === null) return;
|
|
724
726
|
let url = null;
|
|
725
727
|
let urlTarget = null;
|
|
728
|
+
let isUnlinkedAutolink = false;
|
|
726
729
|
nearestEditor.update(() => {
|
|
727
730
|
const clickedNode = $getNearestNodeFromDOMNode(target);
|
|
728
731
|
if (clickedNode !== null) {
|
|
729
732
|
const maybeLinkNode = $findMatchingParent(clickedNode, $isElementNode);
|
|
730
733
|
if (!stores.disabled.peek()) if ($isLinkNode(maybeLinkNode)) {
|
|
734
|
+
isUnlinkedAutolink = $isAutoLinkNode(maybeLinkNode) && maybeLinkNode.getIsUnlinked();
|
|
731
735
|
url = maybeLinkNode.sanitizeUrl(maybeLinkNode.getURL());
|
|
732
736
|
urlTarget = maybeLinkNode.getTarget();
|
|
733
737
|
} else {
|
|
@@ -739,7 +743,7 @@ function registerClickableLink(editor, stores, eventOptions = {}) {
|
|
|
739
743
|
}
|
|
740
744
|
}
|
|
741
745
|
});
|
|
742
|
-
if (url === null || url === "") return;
|
|
746
|
+
if (url === null || url === "" || isUnlinkedAutolink) return;
|
|
743
747
|
const selection = editor.read("latest", $getSelection);
|
|
744
748
|
if ($isRangeSelection(selection) && !selection.isCollapsed()) {
|
|
745
749
|
event.preventDefault();
|
|
@@ -753,14 +757,10 @@ function registerClickableLink(editor, stores, eventOptions = {}) {
|
|
|
753
757
|
if (event.button === 1) onClick(event);
|
|
754
758
|
};
|
|
755
759
|
return editor.registerRootListener((rootElement) => {
|
|
756
|
-
if (rootElement) {
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
rootElement.removeEventListener("click", onClick);
|
|
761
|
-
rootElement.removeEventListener("mouseup", onMouseUp);
|
|
762
|
-
};
|
|
763
|
-
}
|
|
760
|
+
if (rootElement) return registerEventListeners(rootElement, {
|
|
761
|
+
click: onClick,
|
|
762
|
+
mouseup: onMouseUp
|
|
763
|
+
}, eventOptions);
|
|
764
764
|
});
|
|
765
765
|
}
|
|
766
766
|
/**
|
|
@@ -818,6 +818,37 @@ function createLinkMatcherWithRegExp(regExp, urlTransformer = (text) => text) {
|
|
|
818
818
|
};
|
|
819
819
|
};
|
|
820
820
|
}
|
|
821
|
+
const URL_REGEX = /((https?:\/\/(www\.)?)|(www\.))[-\p{L}\p{N}@:%._+~#=]{1,256}\.[\p{L}\p{N}]{1,6}(?:[-\p{L}\p{N}()@:%_+.~#?&//=]*[\p{L}\p{N}()@_~#?&//=])?/u;
|
|
822
|
+
const EMAIL_REGEX = /(([^<>()[\]\\.,;:\s@"]{1,64}(\.[^<>()[\]\\.,;:\s@"]{1,64}){0,63})|(".{1,255}"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]{1,63}\.){1,127}[a-zA-Z]{2,63}))/;
|
|
823
|
+
/**
|
|
824
|
+
* A ready-to-use {@link LinkMatcher} for URLs with full Unicode support
|
|
825
|
+
* (`\\p{L}`, `\\p{N}`). Handles parenthesis balancing so that Wikipedia-style
|
|
826
|
+
* URLs like `https://en.wikipedia.org/wiki/Fish_(disambiguation)` are matched
|
|
827
|
+
* correctly even when wrapped in prose parentheses.
|
|
828
|
+
*/
|
|
829
|
+
const autoLinkUrlMatcher = (text) => {
|
|
830
|
+
const match = URL_REGEX.exec(text);
|
|
831
|
+
if (match === null) return null;
|
|
832
|
+
let matched = match[0];
|
|
833
|
+
let depth = 0;
|
|
834
|
+
for (const ch of matched) if (ch === "(") depth++;
|
|
835
|
+
else if (ch === ")") depth--;
|
|
836
|
+
while (depth < 0 && matched.endsWith(")")) {
|
|
837
|
+
matched = matched.slice(0, -1);
|
|
838
|
+
depth++;
|
|
839
|
+
}
|
|
840
|
+
return {
|
|
841
|
+
index: match.index,
|
|
842
|
+
length: matched.length,
|
|
843
|
+
text: matched,
|
|
844
|
+
url: matched.startsWith("http") ? matched : `https://${matched}`
|
|
845
|
+
};
|
|
846
|
+
};
|
|
847
|
+
/**
|
|
848
|
+
* A ready-to-use {@link LinkMatcher} for email addresses. Bounded quantifiers
|
|
849
|
+
* keep matching linear-time; the limits comfortably exceed RFC 5321 maximums.
|
|
850
|
+
*/
|
|
851
|
+
const autoLinkEmailMatcher = createLinkMatcherWithRegExp(EMAIL_REGEX, (text) => `mailto:${text}`);
|
|
821
852
|
function findFirstMatch(text, matchers) {
|
|
822
853
|
for (let i = 0; i < matchers.length; i++) {
|
|
823
854
|
const match = matchers[i](text);
|
|
@@ -1095,11 +1126,10 @@ function registerAutoLink(editor, config = defaultConfig) {
|
|
|
1095
1126
|
}
|
|
1096
1127
|
/**
|
|
1097
1128
|
* An extension to automatically create AutoLinkNode from text
|
|
1098
|
-
* that matches the configured matchers.
|
|
1099
|
-
*
|
|
1100
|
-
*
|
|
1101
|
-
*
|
|
1102
|
-
* for some example RegExps that could be used.
|
|
1129
|
+
* that matches the configured matchers. For ready-to-use matchers see
|
|
1130
|
+
* {@link autoLinkUrlMatcher} (Unicode URL detection with parenthesis
|
|
1131
|
+
* balancing) and {@link autoLinkEmailMatcher} (email addresses). To build
|
|
1132
|
+
* a custom matcher from a RegExp, see {@link createLinkMatcherWithRegExp}.
|
|
1103
1133
|
*
|
|
1104
1134
|
* The given `matchers` and `changeHandlers` will be merged by
|
|
1105
1135
|
* concatenating the configured arrays.
|
|
@@ -1124,4 +1154,4 @@ const AutoLinkExtension = /* @__PURE__ */ defineExtension({
|
|
|
1124
1154
|
register: registerAutoLink
|
|
1125
1155
|
});
|
|
1126
1156
|
//#endregion
|
|
1127
|
-
export { $createAutoLinkNode, $createLinkNode, $isAutoLinkNode, $isLinkNode, $toggleLink, AutoLinkExtension, AutoLinkNode, ClickableLinkExtension, LinkExtension, LinkImportExtension, LinkImportRules, LinkNode, TOGGLE_LINK_COMMAND, createLinkMatcherWithRegExp, formatUrl, registerAutoLink, registerClickableLink, registerLink };
|
|
1157
|
+
export { $createAutoLinkNode, $createLinkNode, $isAutoLinkNode, $isLinkNode, $toggleLink, AutoLinkExtension, AutoLinkNode, ClickableLinkExtension, LinkExtension, LinkImportExtension, LinkImportRules, LinkNode, TOGGLE_LINK_COMMAND, autoLinkEmailMatcher, autoLinkUrlMatcher, createLinkMatcherWithRegExp, formatUrl, registerAutoLink, registerClickableLink, registerLink };
|