@litsx/jsx-authoring 0.1.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/README.md +59 -0
- package/dist/index.cjs +888 -0
- package/dist/index.cjs.map +1 -0
- package/dist/parser.cjs +184 -0
- package/dist/parser.cjs.map +1 -0
- package/package.json +47 -0
- package/src/index.js +878 -0
- package/src/parser.js +181 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["import MagicString from \"magic-string\";\n\nconst PREFIX_TO_KIND = {\n \"@\": \"event\",\n \".\": \"prop\",\n \"?\": \"bool\",\n};\n\nconst KIND_TO_PREFIX = {\n event: \"@\",\n prop: \".\",\n bool: \"?\",\n};\n\nconst ATTR_NAME_CHAR = /[\\w:-]/;\nconst TAG_NAME_START_CHAR = /[A-Za-z]/;\nconst TAG_NAME_CHAR = /[\\w:.-]/;\nconst MACRO_NAME_START_CHAR = /[A-Za-z$_]/;\nconst MACRO_NAME_CHAR = /[A-Za-z0-9$_]/;\n\nfunction isWhitespace(char) {\n return char === \" \" || char === \"\\t\" || char === \"\\n\" || char === \"\\r\";\n}\n\nfunction isReservedVirtualAttributeName(name) {\n return /^__litsx_(event|prop|bool)_/.test(name);\n}\n\nfunction sanitizeIdentifierTailChar(char) {\n return /[A-Za-z0-9$_]/.test(char) ? char : \"_\";\n}\n\nfunction encodeEditorVirtualAttributeName(name) {\n const prefix = name[0];\n const localName = name.slice(1);\n const encodedPrefix = prefix === \"@\" ? \"e\" : prefix === \".\" ? \"p\" : \"b\";\n return `${encodedPrefix}${Array.from(localName, sanitizeIdentifierTailChar).join(\"\")}`;\n}\n\nfunction encodeEditorStaticHoistName(originalName, macroName) {\n return `$${macroName}`;\n}\n\nfunction scanQuotedString(sourceText, start, quote) {\n let index = start + 1;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n if (char === \"\\\\\") {\n index += 2;\n continue;\n }\n if (char === quote) {\n return index + 1;\n }\n index += 1;\n }\n\n return index;\n}\n\nfunction scanLineComment(sourceText, start) {\n let index = start + 2;\n while (index < sourceText.length && sourceText[index] !== \"\\n\") {\n index += 1;\n }\n return index;\n}\n\nfunction scanBlockComment(sourceText, start) {\n let index = start + 2;\n while (index < sourceText.length) {\n if (sourceText[index] === \"*\" && sourceText[index + 1] === \"/\") {\n return index + 2;\n }\n index += 1;\n }\n return index;\n}\n\nfunction scanTemplateLiteral(sourceText, start) {\n let index = start + 1;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n if (char === \"\\\\\") {\n index += 2;\n continue;\n }\n if (char === \"`\") {\n return index + 1;\n }\n if (char === \"$\" && sourceText[index + 1] === \"{\") {\n index = scanBalancedBraces(sourceText, index + 1);\n continue;\n }\n index += 1;\n }\n\n return index;\n}\n\nfunction scanBalancedBraces(sourceText, start) {\n let depth = 0;\n let index = start;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n const next = sourceText[index + 1];\n\n if (char === \"'\" || char === \"\\\"\") {\n index = scanQuotedString(sourceText, index, char);\n continue;\n }\n\n if (char === \"`\") {\n index = scanTemplateLiteral(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n index = scanLineComment(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n index = scanBlockComment(sourceText, index);\n continue;\n }\n\n if (char === \"{\") {\n depth += 1;\n index += 1;\n continue;\n }\n\n if (char === \"}\") {\n depth -= 1;\n index += 1;\n if (depth <= 0) {\n return index;\n }\n continue;\n }\n\n index += 1;\n }\n\n return index;\n}\n\nfunction scanBalancedBracesWithJsx(sourceText, start, replacements, encodeAttributeName) {\n let depth = 0;\n let index = start;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n const next = sourceText[index + 1];\n\n if (char === \"'\" || char === \"\\\"\") {\n index = scanQuotedString(sourceText, index, char);\n continue;\n }\n\n if (char === \"`\") {\n index = scanTemplateLiteral(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n index = scanLineComment(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n index = scanBlockComment(sourceText, index);\n continue;\n }\n\n if (char === \"<\" && isLikelyJsxTagStart(sourceText, index)) {\n index = scanJsxElement(sourceText, index, replacements, encodeAttributeName);\n continue;\n }\n\n if (char === \"{\") {\n depth += 1;\n index += 1;\n continue;\n }\n\n if (char === \"}\") {\n depth -= 1;\n index += 1;\n if (depth <= 0) {\n return index;\n }\n continue;\n }\n\n index += 1;\n }\n\n return index;\n}\n\nfunction trimTrailingWhitespaceAndComments(sourceText) {\n let text = sourceText;\n let changed = true;\n\n while (changed) {\n changed = false;\n\n const trimmedWhitespace = text.replace(/\\s+$/u, \"\");\n if (trimmedWhitespace !== text) {\n text = trimmedWhitespace;\n changed = true;\n }\n\n const trimmedLineComment = text.replace(/\\/\\/[^\\n\\r]*$/u, \"\");\n if (trimmedLineComment !== text) {\n text = trimmedLineComment;\n changed = true;\n continue;\n }\n\n const trimmedBlockComment = text.replace(/\\/\\*[\\s\\S]*?\\*\\/$/u, \"\");\n if (trimmedBlockComment !== text) {\n text = trimmedBlockComment;\n changed = true;\n }\n }\n\n return text;\n}\n\nfunction previousSignificantIndex(sourceText, start) {\n let index = start - 1;\n while (index >= 0 && isWhitespace(sourceText[index])) {\n index -= 1;\n }\n return index;\n}\n\nfunction readPreviousWord(sourceText, endIndex) {\n let index = endIndex;\n while (index >= 0 && /[A-Za-z]/.test(sourceText[index])) {\n index -= 1;\n }\n return sourceText.slice(index + 1, endIndex + 1);\n}\n\nfunction isLikelyJsxTagStart(sourceText, index) {\n const next = sourceText[index + 1];\n if (!TAG_NAME_START_CHAR.test(next || \"\")) {\n return false;\n }\n\n const previousIndex = previousSignificantIndex(sourceText, index);\n if (previousIndex < 0) {\n return true;\n }\n\n const previousChar = sourceText[previousIndex];\n if (\"=({[,!?:;>&|\".includes(previousChar)) {\n return true;\n }\n\n const previousWord = readPreviousWord(sourceText, previousIndex);\n return [\"return\", \"case\", \"throw\", \"yield\", \"else\"].includes(previousWord);\n}\n\nfunction readJsxTagName(sourceText, start) {\n let index = start + 1;\n const isClosing = sourceText[index] === \"/\";\n\n if (isClosing) {\n index += 1;\n }\n\n if (!TAG_NAME_START_CHAR.test(sourceText[index] || \"\")) {\n return null;\n }\n\n const nameStart = index;\n\n while (index < sourceText.length && TAG_NAME_CHAR.test(sourceText[index])) {\n index += 1;\n }\n\n return {\n name: sourceText.slice(nameStart, index),\n isClosing,\n end: index,\n };\n}\n\nfunction scanJsxTag(sourceText, start, replacements, encodeAttributeName) {\n const tag = readJsxTagName(sourceText, start);\n\n if (!tag) {\n return {\n end: start + 1,\n tagName: null,\n isClosing: false,\n selfClosing: false,\n };\n }\n\n let index = tag.end;\n\n if (tag.isClosing) {\n while (index < sourceText.length) {\n if (sourceText[index] === \">\") {\n return {\n end: index + 1,\n tagName: tag.name,\n isClosing: true,\n selfClosing: false,\n };\n }\n\n index += 1;\n }\n\n return {\n end: index,\n tagName: tag.name,\n isClosing: true,\n selfClosing: false,\n };\n }\n\n function scanAttributeValue(valueStart) {\n let valueIndex = valueStart;\n\n while (valueIndex < sourceText.length && isWhitespace(sourceText[valueIndex])) {\n valueIndex += 1;\n }\n\n if (valueIndex >= sourceText.length) {\n return valueIndex;\n }\n\n const valueChar = sourceText[valueIndex];\n if (valueChar === \"{\") {\n return scanBalancedBracesWithJsx(\n sourceText,\n valueIndex,\n replacements,\n encodeAttributeName\n );\n }\n\n if (valueChar === \"'\" || valueChar === \"\\\"\") {\n return scanQuotedString(sourceText, valueIndex, valueChar);\n }\n\n while (\n valueIndex < sourceText.length &&\n !isWhitespace(sourceText[valueIndex]) &&\n sourceText[valueIndex] !== \">\" &&\n !(sourceText[valueIndex] === \"/\" && sourceText[valueIndex + 1] === \">\")\n ) {\n valueIndex += 1;\n }\n\n return valueIndex;\n }\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n const next = sourceText[index + 1];\n\n if (char === \">\") {\n return {\n end: index + 1,\n tagName: tag.name,\n isClosing: false,\n selfClosing: false,\n };\n }\n\n if (char === \"/\" && next === \">\") {\n return {\n end: index + 2,\n tagName: tag.name,\n isClosing: false,\n selfClosing: true,\n };\n }\n\n if (isWhitespace(char)) {\n index += 1;\n continue;\n }\n\n if (char === \"{\") {\n index = scanBalancedBracesWithJsx(\n sourceText,\n index,\n replacements,\n encodeAttributeName\n );\n continue;\n }\n\n if (char === \"'\" || char === \"\\\"\") {\n index = scanQuotedString(sourceText, index, char);\n continue;\n }\n\n if (Object.hasOwn(PREFIX_TO_KIND, char) && ATTR_NAME_CHAR.test(next || \"\")) {\n const attrStart = index;\n index += 1;\n\n while (index < sourceText.length && ATTR_NAME_CHAR.test(sourceText[index])) {\n index += 1;\n }\n\n const originalName = sourceText.slice(attrStart, index);\n replacements.push({\n start: attrStart,\n end: index,\n originalName,\n replacement: encodeAttributeName(originalName),\n });\n\n while (index < sourceText.length && isWhitespace(sourceText[index])) {\n index += 1;\n }\n if (sourceText[index] === \"=\") {\n index = scanAttributeValue(index + 1);\n }\n continue;\n }\n\n const attrStart = index;\n while (\n index < sourceText.length &&\n !isWhitespace(sourceText[index]) &&\n sourceText[index] !== \"=\" &&\n sourceText[index] !== \">\" &&\n !(sourceText[index] === \"/\" && sourceText[index + 1] === \">\")\n ) {\n index += 1;\n }\n\n if (index === attrStart) {\n index += 1;\n continue;\n }\n\n while (index < sourceText.length && isWhitespace(sourceText[index])) {\n index += 1;\n }\n if (sourceText[index] === \"=\") {\n index = scanAttributeValue(index + 1);\n }\n }\n\n return {\n end: index,\n tagName: tag.name,\n isClosing: false,\n selfClosing: false,\n };\n}\n\nfunction scanJsxElement(sourceText, start, replacements, encodeAttributeName) {\n const openingTag = scanJsxTag(sourceText, start, replacements, encodeAttributeName);\n\n if (\n openingTag.isClosing ||\n openingTag.selfClosing ||\n !openingTag.tagName\n ) {\n return openingTag.end;\n }\n\n let index = openingTag.end;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n const next = sourceText[index + 1];\n\n if (char === \"'\" || char === \"\\\"\") {\n index = scanQuotedString(sourceText, index, char);\n continue;\n }\n\n if (char === \"`\") {\n index = scanTemplateLiteral(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n index = scanLineComment(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n index = scanBlockComment(sourceText, index);\n continue;\n }\n\n if (char === \"{\") {\n index = scanBalancedBracesWithJsx(\n sourceText,\n index,\n replacements,\n encodeAttributeName\n );\n continue;\n }\n\n if (char === \"<\") {\n const nestedTag = readJsxTagName(sourceText, index);\n\n if (!nestedTag) {\n index += 1;\n continue;\n }\n\n if (nestedTag.isClosing && nestedTag.name === openingTag.tagName) {\n return scanJsxTag(sourceText, index, replacements, encodeAttributeName).end;\n }\n\n if (!nestedTag.isClosing) {\n index = scanJsxElement(sourceText, index, replacements, encodeAttributeName);\n continue;\n }\n }\n\n index += 1;\n }\n\n return index;\n}\n\nexport function encodeVirtualAttributeName(name) {\n const prefix = name[0];\n const localName = name.slice(1);\n const kind = PREFIX_TO_KIND[prefix];\n\n if (!kind) {\n return name;\n }\n\n return `__litsx_${kind}_${localName}`;\n}\n\nexport function decodeVirtualAttributeName(name) {\n const match = /^__litsx_(event|prop|bool)_(.+)$/.exec(name);\n\n if (!match) {\n return null;\n }\n\n const [, kind, localName] = match;\n return `${KIND_TO_PREFIX[kind]}${localName}`;\n}\n\nexport function decodeVirtualStaticHoistName(name) {\n const match = /^__litsx_static_([A-Za-z$_][A-Za-z0-9$_]*)$/.exec(name);\n\n if (!match) {\n return null;\n }\n\n return `^${match[1]}`;\n}\n\nexport function remapVirtualText(text) {\n if (typeof text !== \"string\") {\n return text;\n }\n\n return text\n .replace(/__litsx_(event|prop|bool)_[\\w:-]+/g, (name) => (\n decodeVirtualAttributeName(name) ?? name\n ))\n .replace(/__litsx_static_[A-Za-z$_][A-Za-z0-9$_]*/g, (name) => (\n decodeVirtualStaticHoistName(name) ?? name\n ));\n}\n\nexport function looksLikeLitsxJsx(sourceText) {\n return (\n /<[\\w.-]+[^>]*\\s(?:[@.?][\\w:-]+)/m.test(sourceText) ||\n /(?:^|[;{}]\\s*)\\^[A-Za-z$_][A-Za-z0-9$_]*/m.test(sourceText) ||\n /^\\s*\\^[A-Za-z$_][A-Za-z0-9$_]*/m.test(sourceText)\n );\n}\n\nfunction isLikelyStaticMacroStart(sourceText, index) {\n const next = sourceText[index + 1];\n if (!MACRO_NAME_START_CHAR.test(next || \"\")) {\n return false;\n }\n\n const prefix = trimTrailingWhitespaceAndComments(sourceText.slice(0, index));\n if (!prefix) {\n return true;\n }\n\n const previousChar = prefix[prefix.length - 1];\n return previousChar === \";\" || previousChar === \"{\" || previousChar === \"}\";\n}\n\nfunction scanStaticMacro(sourceText, start, replacements, encodeMacroName) {\n let index = start + 1;\n\n while (index < sourceText.length && MACRO_NAME_CHAR.test(sourceText[index])) {\n index += 1;\n }\n\n const originalName = sourceText.slice(start, index);\n const macroName = originalName.slice(1);\n\n if (macroName === \"mixins\") {\n return index;\n }\n\n replacements.push({\n start,\n end: index,\n originalName,\n replacement: encodeMacroName(originalName, macroName),\n });\n\n return index;\n}\n\nexport function createVirtualLitsxJsxSource(sourceText, options = {}) {\n const strategy = options.strategy === \"editor\" ? \"editor\" : \"compiler\";\n const includeSourceMap = options.sourceMap === true;\n const encodeAttributeName =\n strategy === \"editor\"\n ? encodeEditorVirtualAttributeName\n : encodeVirtualAttributeName;\n const encodeMacroName =\n strategy === \"editor\"\n ? encodeEditorStaticHoistName\n : (_originalName, macroName) => `__litsx_static_${macroName}`;\n\n if (!sourceText || typeof sourceText !== \"string\") {\n return {\n code: sourceText,\n map: null,\n replacements: [],\n };\n }\n\n if (strategy === \"compiler\" && sourceText.includes(\"__litsx_\")) {\n return {\n code: sourceText,\n map: null,\n replacements: [],\n collision: true,\n };\n }\n\n if (!looksLikeLitsxJsx(sourceText)) {\n return {\n code: sourceText,\n map: null,\n replacements: [],\n };\n }\n\n const replacements = [];\n let index = 0;\n let braceDepth = 0;\n\n while (index < sourceText.length) {\n const char = sourceText[index];\n const next = sourceText[index + 1];\n\n if (char === \"'\" || char === \"\\\"\") {\n index = scanQuotedString(sourceText, index, char);\n continue;\n }\n\n if (char === \"`\") {\n index = scanTemplateLiteral(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n index = scanLineComment(sourceText, index);\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n index = scanBlockComment(sourceText, index);\n continue;\n }\n\n if (char === \"<\" && isLikelyJsxTagStart(sourceText, index)) {\n index = scanJsxElement(sourceText, index, replacements, encodeAttributeName);\n continue;\n }\n\n if (char === \"^\" && isLikelyStaticMacroStart(sourceText, index)) {\n index = scanStaticMacro(sourceText, index, replacements, encodeMacroName);\n continue;\n }\n\n if (char === \"{\") {\n braceDepth += 1;\n index += 1;\n continue;\n }\n\n if (char === \"}\") {\n braceDepth = Math.max(0, braceDepth - 1);\n index += 1;\n continue;\n }\n\n index += 1;\n }\n\n if (!replacements.length) {\n return {\n code: sourceText,\n map: null,\n replacements: [],\n };\n }\n\n let lastIndex = 0;\n let transformed = \"\";\n\n for (const replacement of replacements) {\n transformed += sourceText.slice(lastIndex, replacement.start);\n transformed += replacement.replacement;\n lastIndex = replacement.end;\n }\n\n transformed += sourceText.slice(lastIndex);\n\n return {\n code: transformed,\n map: includeSourceMap\n ? createVirtualLitsxJsxSourceMap(sourceText, replacements, {\n sourceFileName: options.sourceFileName,\n })\n : null,\n replacements,\n };\n}\n\nexport function createVirtualLitsxJsxSourceMap(\n sourceText,\n replacements = [],\n options = {}\n) {\n const editable = new MagicString(sourceText);\n applyVirtualAttributeReplacements(editable, replacements);\n\n return editable.generateMap({\n hires: true,\n source: options.sourceFileName,\n includeContent: true,\n });\n}\n\nfunction findReplacementByVirtualPosition(position, replacements) {\n let originalCursor = 0;\n let virtualCursor = 0;\n\n for (const replacement of replacements) {\n const untouchedLength = replacement.start - originalCursor;\n const replacementVirtualStart = virtualCursor + untouchedLength;\n const replacementVirtualEnd =\n replacementVirtualStart + replacement.replacement.length;\n\n if (position >= replacementVirtualStart && position < replacementVirtualEnd) {\n return {\n replacement,\n virtualStart: replacementVirtualStart,\n virtualEnd: replacementVirtualEnd,\n };\n }\n\n originalCursor = replacement.end;\n virtualCursor = replacementVirtualEnd;\n }\n\n return null;\n}\n\nexport function mapOriginalPositionToVirtual(position, replacements = []) {\n if (!replacements.length) {\n return position;\n }\n\n let offset = 0;\n\n for (const replacement of replacements) {\n if (position < replacement.start) {\n break;\n }\n\n const originalLength = replacement.end - replacement.start;\n const replacementLength = replacement.replacement.length;\n\n if (position < replacement.end) {\n return replacement.start + offset;\n }\n\n offset += replacementLength - originalLength;\n }\n\n return position + offset;\n}\n\nexport function remapTextSpanToOriginal(span, replacements = []) {\n if (!span || !replacements.length) {\n return span;\n }\n\n const startMapping = findReplacementByVirtualPosition(span.start, replacements);\n if (startMapping) {\n return {\n start: startMapping.replacement.start,\n length: startMapping.replacement.end - startMapping.replacement.start,\n };\n }\n\n let originalStart = span.start;\n let originalEnd = span.start + span.length;\n\n for (const replacement of replacements) {\n const originalLength = replacement.end - replacement.start;\n const replacementLength = replacement.replacement.length;\n const delta = originalLength - replacementLength;\n const virtualStart = mapOriginalPositionToVirtual(replacement.start, replacements);\n const virtualEnd = virtualStart + replacementLength;\n\n if (virtualEnd <= span.start) {\n originalStart += delta;\n originalEnd += delta;\n continue;\n }\n\n if (virtualStart < span.start) {\n originalStart = replacement.start;\n }\n\n if (virtualStart < span.start + span.length) {\n originalEnd += delta;\n }\n }\n\n return {\n start: originalStart,\n length: Math.max(0, originalEnd - originalStart),\n };\n}\n\nexport function remapVirtualPositionToOriginal(position, replacements = []) {\n const span = remapTextSpanToOriginal({ start: position, length: 0 }, replacements);\n return span.start;\n}\n\nexport const mapVirtualPositionToOriginal = remapVirtualPositionToOriginal;\n\nexport function applyVirtualAttributeReplacements(editable, replacements = []) {\n for (const replacement of replacements) {\n editable.overwrite(replacement.start, replacement.end, replacement.replacement);\n }\n}\n\nexport {\n isReservedVirtualAttributeName,\n};\n"],"names":[],"mappings":"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"}
|
package/dist/parser.cjs
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index.cjs');
|
|
4
|
+
require('magic-string');
|
|
5
|
+
|
|
6
|
+
const VIRTUALIZATION_METADATA = Symbol.for("litsx.babelParser.virtualization");
|
|
7
|
+
|
|
8
|
+
function ensureJsxPlugin(plugins = []) {
|
|
9
|
+
const hasJsx = plugins.some((plugin) => {
|
|
10
|
+
if (typeof plugin === "string") {
|
|
11
|
+
return plugin === "jsx";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return Array.isArray(plugin) && plugin[0] === "jsx";
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
return hasJsx ? plugins : [...plugins, "jsx"];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function normalizeOptions(options = {}) {
|
|
21
|
+
const {
|
|
22
|
+
plugins = [],
|
|
23
|
+
sourceFileName,
|
|
24
|
+
sourceFilename,
|
|
25
|
+
litsxSourceMap,
|
|
26
|
+
...rest
|
|
27
|
+
} = options;
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
parserOptions: {
|
|
31
|
+
sourceType: "module",
|
|
32
|
+
...rest,
|
|
33
|
+
plugins: ensureJsxPlugin(plugins),
|
|
34
|
+
},
|
|
35
|
+
virtualizationOptions: {
|
|
36
|
+
sourceFileName: sourceFileName ?? sourceFilename,
|
|
37
|
+
sourceMap: litsxSourceMap !== false,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function walk(node, visitor) {
|
|
43
|
+
if (!node || typeof node !== "object") {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
visitor(node);
|
|
48
|
+
|
|
49
|
+
for (const value of Object.values(node)) {
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
for (const item of value) {
|
|
52
|
+
walk(item, visitor);
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
walk(value, visitor);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function createIndexToPosition(source) {
|
|
62
|
+
const lineStarts = [0];
|
|
63
|
+
|
|
64
|
+
for (let index = 0; index < source.length; index += 1) {
|
|
65
|
+
if (source[index] === "\n") {
|
|
66
|
+
lineStarts.push(index + 1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return (index) => {
|
|
71
|
+
let low = 0;
|
|
72
|
+
let high = lineStarts.length - 1;
|
|
73
|
+
|
|
74
|
+
while (low <= high) {
|
|
75
|
+
const mid = Math.floor((low + high) / 2);
|
|
76
|
+
if (lineStarts[mid] <= index) {
|
|
77
|
+
low = mid + 1;
|
|
78
|
+
} else {
|
|
79
|
+
high = mid - 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const lineIndex = Math.max(0, high);
|
|
84
|
+
return {
|
|
85
|
+
line: lineIndex + 1,
|
|
86
|
+
column: index - lineStarts[lineIndex],
|
|
87
|
+
index,
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function remapAstPositions(ast, source, replacements) {
|
|
93
|
+
if (!replacements?.length) {
|
|
94
|
+
return ast;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const indexToPosition = createIndexToPosition(source);
|
|
98
|
+
|
|
99
|
+
walk(ast, (node) => {
|
|
100
|
+
if (!node || typeof node !== "object") {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (typeof node.start === "number") {
|
|
105
|
+
node.start = index.mapVirtualPositionToOriginal(node.start, replacements);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (typeof node.end === "number") {
|
|
109
|
+
node.end = index.mapVirtualPositionToOriginal(node.end, replacements);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (node.loc) {
|
|
113
|
+
const startIndex =
|
|
114
|
+
typeof node.start === "number"
|
|
115
|
+
? node.start
|
|
116
|
+
: index.mapVirtualPositionToOriginal(node.loc.start.index, replacements);
|
|
117
|
+
const endIndex =
|
|
118
|
+
typeof node.end === "number"
|
|
119
|
+
? node.end
|
|
120
|
+
: index.mapVirtualPositionToOriginal(node.loc.end.index, replacements);
|
|
121
|
+
|
|
122
|
+
node.loc = {
|
|
123
|
+
...node.loc,
|
|
124
|
+
start: indexToPosition(startIndex),
|
|
125
|
+
end: indexToPosition(endIndex),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
return ast;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function restoreVirtualAttributeNames(ast) {
|
|
134
|
+
walk(ast, (node) => {
|
|
135
|
+
if (
|
|
136
|
+
node?.type === "JSXAttribute" &&
|
|
137
|
+
node.name?.type === "JSXIdentifier" &&
|
|
138
|
+
typeof node.name.name === "string"
|
|
139
|
+
) {
|
|
140
|
+
const decoded = index.decodeVirtualAttributeName(node.name.name);
|
|
141
|
+
if (decoded) {
|
|
142
|
+
node.name.name = decoded;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
return ast;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function attachVirtualizationMetadata(ast, virtualSource) {
|
|
151
|
+
if (!ast || !virtualSource) {
|
|
152
|
+
return ast;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
Object.defineProperty(ast, VIRTUALIZATION_METADATA, {
|
|
156
|
+
configurable: true,
|
|
157
|
+
enumerable: false,
|
|
158
|
+
writable: false,
|
|
159
|
+
value: {
|
|
160
|
+
code: virtualSource.code,
|
|
161
|
+
map: virtualSource.map ?? null,
|
|
162
|
+
replacements: virtualSource.replacements ?? [],
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
return ast;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function getLitsxVirtualizationMetadata(ast) {
|
|
170
|
+
return ast?.[VIRTUALIZATION_METADATA] ?? null;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function parseWithLitsxVirtualization(parseFn, code, options) {
|
|
174
|
+
const { parserOptions, virtualizationOptions } = normalizeOptions(options);
|
|
175
|
+
const virtualSource = index.createVirtualLitsxJsxSource(code, virtualizationOptions);
|
|
176
|
+
const ast = parseFn(virtualSource.code, parserOptions);
|
|
177
|
+
remapAstPositions(ast, code, virtualSource.replacements);
|
|
178
|
+
restoreVirtualAttributeNames(ast);
|
|
179
|
+
return attachVirtualizationMetadata(ast, virtualSource);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
exports.getLitsxVirtualizationMetadata = getLitsxVirtualizationMetadata;
|
|
183
|
+
exports.parseWithLitsxVirtualization = parseWithLitsxVirtualization;
|
|
184
|
+
//# sourceMappingURL=parser.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.cjs","sources":["../src/parser.js"],"sourcesContent":["import {\n createVirtualLitsxJsxSource,\n decodeVirtualAttributeName,\n mapVirtualPositionToOriginal,\n} from \"./index.js\";\n\nconst VIRTUALIZATION_METADATA = Symbol.for(\"litsx.babelParser.virtualization\");\n\nfunction ensureJsxPlugin(plugins = []) {\n const hasJsx = plugins.some((plugin) => {\n if (typeof plugin === \"string\") {\n return plugin === \"jsx\";\n }\n\n return Array.isArray(plugin) && plugin[0] === \"jsx\";\n });\n\n return hasJsx ? plugins : [...plugins, \"jsx\"];\n}\n\nfunction normalizeOptions(options = {}) {\n const {\n plugins = [],\n sourceFileName,\n sourceFilename,\n litsxSourceMap,\n ...rest\n } = options;\n\n return {\n parserOptions: {\n sourceType: \"module\",\n ...rest,\n plugins: ensureJsxPlugin(plugins),\n },\n virtualizationOptions: {\n sourceFileName: sourceFileName ?? sourceFilename,\n sourceMap: litsxSourceMap !== false,\n },\n };\n}\n\nfunction walk(node, visitor) {\n if (!node || typeof node !== \"object\") {\n return;\n }\n\n visitor(node);\n\n for (const value of Object.values(node)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n walk(item, visitor);\n }\n continue;\n }\n\n walk(value, visitor);\n }\n}\n\nfunction createIndexToPosition(source) {\n const lineStarts = [0];\n\n for (let index = 0; index < source.length; index += 1) {\n if (source[index] === \"\\n\") {\n lineStarts.push(index + 1);\n }\n }\n\n return (index) => {\n let low = 0;\n let high = lineStarts.length - 1;\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n if (lineStarts[mid] <= index) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n const lineIndex = Math.max(0, high);\n return {\n line: lineIndex + 1,\n column: index - lineStarts[lineIndex],\n index,\n };\n };\n}\n\nfunction remapAstPositions(ast, source, replacements) {\n if (!replacements?.length) {\n return ast;\n }\n\n const indexToPosition = createIndexToPosition(source);\n\n walk(ast, (node) => {\n if (!node || typeof node !== \"object\") {\n return;\n }\n\n if (typeof node.start === \"number\") {\n node.start = mapVirtualPositionToOriginal(node.start, replacements);\n }\n\n if (typeof node.end === \"number\") {\n node.end = mapVirtualPositionToOriginal(node.end, replacements);\n }\n\n if (node.loc) {\n const startIndex =\n typeof node.start === \"number\"\n ? node.start\n : mapVirtualPositionToOriginal(node.loc.start.index, replacements);\n const endIndex =\n typeof node.end === \"number\"\n ? node.end\n : mapVirtualPositionToOriginal(node.loc.end.index, replacements);\n\n node.loc = {\n ...node.loc,\n start: indexToPosition(startIndex),\n end: indexToPosition(endIndex),\n };\n }\n });\n\n return ast;\n}\n\nfunction restoreVirtualAttributeNames(ast) {\n walk(ast, (node) => {\n if (\n node?.type === \"JSXAttribute\" &&\n node.name?.type === \"JSXIdentifier\" &&\n typeof node.name.name === \"string\"\n ) {\n const decoded = decodeVirtualAttributeName(node.name.name);\n if (decoded) {\n node.name.name = decoded;\n }\n }\n });\n\n return ast;\n}\n\nfunction attachVirtualizationMetadata(ast, virtualSource) {\n if (!ast || !virtualSource) {\n return ast;\n }\n\n Object.defineProperty(ast, VIRTUALIZATION_METADATA, {\n configurable: true,\n enumerable: false,\n writable: false,\n value: {\n code: virtualSource.code,\n map: virtualSource.map ?? null,\n replacements: virtualSource.replacements ?? [],\n },\n });\n\n return ast;\n}\n\nexport function getLitsxVirtualizationMetadata(ast) {\n return ast?.[VIRTUALIZATION_METADATA] ?? null;\n}\n\nexport function parseWithLitsxVirtualization(parseFn, code, options) {\n const { parserOptions, virtualizationOptions } = normalizeOptions(options);\n const virtualSource = createVirtualLitsxJsxSource(code, virtualizationOptions);\n const ast = parseFn(virtualSource.code, parserOptions);\n remapAstPositions(ast, code, virtualSource.replacements);\n restoreVirtualAttributeNames(ast);\n return attachVirtualizationMetadata(ast, virtualSource);\n}\n"],"names":["mapVirtualPositionToOriginal","decodeVirtualAttributeName","createVirtualLitsxJsxSource"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@litsx/jsx-authoring",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared authored JSX language utilities for Lit sx",
|
|
5
|
+
"author": "LitX Team",
|
|
6
|
+
"homepage": "https://github.com/litsxdev/litsx/tree/main/packages/jsx-authoring",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/litsxdev/litsx/issues"
|
|
9
|
+
},
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public",
|
|
13
|
+
"provenance": true
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/litsxdev/litsx.git",
|
|
18
|
+
"directory": "packages/jsx-authoring"
|
|
19
|
+
},
|
|
20
|
+
"type": "module",
|
|
21
|
+
"main": "./dist/index.cjs",
|
|
22
|
+
"module": "./src/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"import": "./src/index.js",
|
|
26
|
+
"require": "./dist/index.cjs",
|
|
27
|
+
"default": "./src/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./parser": {
|
|
30
|
+
"import": "./src/parser.js",
|
|
31
|
+
"require": "./dist/parser.cjs",
|
|
32
|
+
"default": "./src/parser.js"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"magic-string": "^0.30.21"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"src",
|
|
41
|
+
"README.md"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "../../node_modules/.bin/rollup --config rollup.config.mjs",
|
|
45
|
+
"prepack": "yarn build"
|
|
46
|
+
}
|
|
47
|
+
}
|