@marko/compiler 5.20.7 → 5.21.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/babel-plugin/file.js +1 -2
- package/dist/babel-plugin/index.js +1 -9
- package/dist/babel-plugin/parser.js +389 -277
- package/dist/babel-plugin/plugins/migrate.js +1 -2
- package/dist/babel-plugin/plugins/transform.js +1 -2
- package/dist/babel-plugin/util/plugin-hooks.js +1 -2
- package/dist/babel-types/generator/patch.js +1 -2
- package/dist/babel-types/index.js +1 -2
- package/dist/babel-types/traverse/patch.js +1 -2
- package/dist/babel-types/types/definitions.js +1 -2
- package/dist/babel-types/types/patch.js +1 -2
- package/dist/config.js +3 -4
- package/dist/index.js +1 -2
- package/dist/register.js +1 -2
- package/dist/taglib/finder/index.js +1 -2
- package/dist/taglib/fs.js +1 -2
- package/dist/taglib/index.js +1 -2
- package/dist/taglib/loader/Attribute.js +1 -2
- package/dist/taglib/loader/DependencyChain.js +1 -2
- package/dist/taglib/loader/Property.js +1 -2
- package/dist/taglib/loader/Tag.js +1 -2
- package/dist/taglib/loader/Taglib.js +1 -2
- package/dist/taglib/loader/Transformer.js +1 -2
- package/dist/taglib/loader/cache.js +1 -2
- package/dist/taglib/loader/index.js +1 -2
- package/dist/taglib/loader/json-file-reader.js +1 -2
- package/dist/taglib/loader/loadAttributeFromProps.js +1 -2
- package/dist/taglib/loader/loadAttributes.js +1 -2
- package/dist/taglib/loader/loadTagFromFile.js +1 -2
- package/dist/taglib/loader/loadTagFromProps.js +1 -2
- package/dist/taglib/loader/loadTaglibFromFile.js +1 -2
- package/dist/taglib/loader/loadTaglibFromProps.js +1 -2
- package/dist/taglib/loader/loaders.js +1 -2
- package/dist/taglib/loader/scanTagsDir.js +1 -2
- package/dist/taglib/loader/tag-def-from-code.js +1 -2
- package/dist/taglib/loader/types.js +1 -2
- package/dist/taglib/lookup/index.js +1 -2
- package/dist/taglib/marko-html.json +3 -0
- package/dist/traverse.d.ts +17 -10
- package/dist/types.d.ts +30 -5
- package/dist/util/should-optimize.js +1 -2
- package/dist/util/try-load-translator.js +1 -2
- package/index.d.ts +17 -9
- package/package.json +6 -7
- package/src/index.js +117 -0
- package/LICENSE +0 -21
- package/dist/babel-plugin/file.js.map +0 -1
- package/dist/babel-plugin/index.js.map +0 -1
- package/dist/babel-plugin/parser.js.map +0 -1
- package/dist/babel-plugin/plugins/migrate.js.map +0 -1
- package/dist/babel-plugin/plugins/transform.js.map +0 -1
- package/dist/babel-plugin/util/parse-arguments.js +0 -15
- package/dist/babel-plugin/util/parse-arguments.js.map +0 -1
- package/dist/babel-plugin/util/parse-attributes.js +0 -89
- package/dist/babel-plugin/util/parse-attributes.js.map +0 -1
- package/dist/babel-plugin/util/parse-classname-shorthand.js +0 -65
- package/dist/babel-plugin/util/parse-classname-shorthand.js.map +0 -1
- package/dist/babel-plugin/util/parse-id-shorthand.js +0 -34
- package/dist/babel-plugin/util/parse-id-shorthand.js.map +0 -1
- package/dist/babel-plugin/util/parse-params.js +0 -10
- package/dist/babel-plugin/util/parse-params.js.map +0 -1
- package/dist/babel-plugin/util/parse-var.js +0 -8
- package/dist/babel-plugin/util/parse-var.js.map +0 -1
- package/dist/babel-plugin/util/plugin-hooks.js.map +0 -1
- package/dist/babel-types/generator/patch.js.map +0 -1
- package/dist/babel-types/index.js.map +0 -1
- package/dist/babel-types/traverse/patch.js.map +0 -1
- package/dist/babel-types/types/definitions.js.map +0 -1
- package/dist/babel-types/types/patch.js.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/register.js.map +0 -1
- package/dist/taglib/finder/index.js.map +0 -1
- package/dist/taglib/fs.js.map +0 -1
- package/dist/taglib/index.js.map +0 -1
- package/dist/taglib/loader/Attribute.js.map +0 -1
- package/dist/taglib/loader/DependencyChain.js.map +0 -1
- package/dist/taglib/loader/Property.js.map +0 -1
- package/dist/taglib/loader/Tag.js.map +0 -1
- package/dist/taglib/loader/Taglib.js.map +0 -1
- package/dist/taglib/loader/Transformer.js.map +0 -1
- package/dist/taglib/loader/cache.js.map +0 -1
- package/dist/taglib/loader/index.js.map +0 -1
- package/dist/taglib/loader/json-file-reader.js.map +0 -1
- package/dist/taglib/loader/loadAttributeFromProps.js.map +0 -1
- package/dist/taglib/loader/loadAttributes.js.map +0 -1
- package/dist/taglib/loader/loadTagFromFile.js.map +0 -1
- package/dist/taglib/loader/loadTagFromProps.js.map +0 -1
- package/dist/taglib/loader/loadTaglibFromFile.js.map +0 -1
- package/dist/taglib/loader/loadTaglibFromProps.js.map +0 -1
- package/dist/taglib/loader/loaders.js.map +0 -1
- package/dist/taglib/loader/scanTagsDir.js.map +0 -1
- package/dist/taglib/loader/tag-def-from-code.js.map +0 -1
- package/dist/taglib/loader/types.js.map +0 -1
- package/dist/taglib/lookup/index.js.map +0 -1
- package/dist/util/should-optimize.js.map +0 -1
- package/dist/util/try-load-translator.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/compiler",
|
|
3
3
|
"description": "Marko template to JS compiler.",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.21.0",
|
|
5
5
|
"author": "Dylan Piercey <dpiercey@ebay.com>",
|
|
6
6
|
"bugs": "https://github.com/marko-js/marko/issues/new?template=Bug_report.md",
|
|
7
7
|
"dependencies": {
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"@babel/runtime": "^7.16.0",
|
|
14
14
|
"@babel/traverse": "^7.16.0",
|
|
15
15
|
"@babel/types": "^7.16.0",
|
|
16
|
-
"@marko/babel-utils": "^5.
|
|
16
|
+
"@marko/babel-utils": "^5.21.0",
|
|
17
17
|
"complain": "^1.6.0",
|
|
18
18
|
"he": "^1.2.0",
|
|
19
|
-
"htmljs-parser": "^
|
|
19
|
+
"htmljs-parser": "^3.3.1",
|
|
20
20
|
"jsesc": "^3.0.2",
|
|
21
21
|
"lasso-package-root": "^1.0.1",
|
|
22
22
|
"property-handlers": "^1.1.1",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"strip-json-comments": "^3.1.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@marko/translator-default": "^5.
|
|
31
|
+
"@marko/translator-default": "^5.21.0"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"plugin"
|
|
49
49
|
],
|
|
50
50
|
"license": "MIT",
|
|
51
|
-
"main": "
|
|
51
|
+
"main": "src/index.js",
|
|
52
52
|
"main:dev": "src/index.js",
|
|
53
53
|
"main:npm": "dist/index.js",
|
|
54
54
|
"publishConfig": {
|
|
@@ -58,6 +58,5 @@
|
|
|
58
58
|
"type": "git",
|
|
59
59
|
"url": "https://github.com/marko-js/marko/tree/master/packages/compiler"
|
|
60
60
|
},
|
|
61
|
-
"types": "index.d.ts"
|
|
62
|
-
"gitHead": "e980c3a4d2dc5cc37b75b98f07ef2e7856c892fb"
|
|
61
|
+
"types": "index.d.ts"
|
|
63
62
|
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export * as types from "./babel-types";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import * as babel from "@babel/core";
|
|
4
|
+
import corePlugin from "./babel-plugin";
|
|
5
|
+
import defaultConfig from "./config";
|
|
6
|
+
import * as taglib from "./taglib";
|
|
7
|
+
import shouldOptimize from "./util/should-optimize";
|
|
8
|
+
import tryLoadTranslator from "./util/try-load-translator";
|
|
9
|
+
export { taglib };
|
|
10
|
+
|
|
11
|
+
let globalConfig = { ...defaultConfig };
|
|
12
|
+
export function configure(newConfig) {
|
|
13
|
+
globalConfig = { ...defaultConfig, ...newConfig };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export async function compile(src, filename, config) {
|
|
17
|
+
const babelConfig = loadBabelConfig(filename, config);
|
|
18
|
+
const babelResult = await babel.transformAsync(src, babelConfig);
|
|
19
|
+
scheduleDefaultClear(config);
|
|
20
|
+
return buildResult(babelResult);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function compileSync(src, filename, config) {
|
|
24
|
+
const babelConfig = loadBabelConfig(filename, config);
|
|
25
|
+
const babelResult = babel.transformSync(src, babelConfig);
|
|
26
|
+
scheduleDefaultClear(config);
|
|
27
|
+
return buildResult(babelResult);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export async function compileFile(filename, config) {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
getFs(config).readFile(filename, "utf-8", (err, src) => {
|
|
33
|
+
if (err) {
|
|
34
|
+
return reject(err);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return resolve(compile(src, filename, config));
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function compileFileSync(filename, config) {
|
|
43
|
+
const src = getFs(config).readFileSync(filename, "utf-8");
|
|
44
|
+
return compileSync(src, filename, config);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function getRuntimeEntryFiles(output, requestedTranslator) {
|
|
48
|
+
const translator = tryLoadTranslator(requestedTranslator);
|
|
49
|
+
if (translator && translator.getRuntimeEntryFiles) {
|
|
50
|
+
return translator.getRuntimeEntryFiles(output, shouldOptimize());
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function loadBabelConfig(filename, config) {
|
|
57
|
+
const markoConfig = { ...globalConfig, ...config, babelConfig: undefined };
|
|
58
|
+
const requiredPlugins = [[corePlugin, markoConfig]];
|
|
59
|
+
const baseBabelConfig = {
|
|
60
|
+
filenameRelative: filename
|
|
61
|
+
? path.relative(process.cwd(), filename)
|
|
62
|
+
: undefined,
|
|
63
|
+
sourceFileName: filename ? path.basename(filename) : undefined,
|
|
64
|
+
...(config && config.babelConfig),
|
|
65
|
+
filename,
|
|
66
|
+
sourceType: "module",
|
|
67
|
+
sourceMaps: markoConfig.sourceMaps,
|
|
68
|
+
code: markoConfig.code,
|
|
69
|
+
ast: markoConfig.ast
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
if (markoConfig.modules === "cjs") {
|
|
73
|
+
requiredPlugins.push([
|
|
74
|
+
require.resolve("@babel/plugin-transform-modules-commonjs"),
|
|
75
|
+
{ loose: true }
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
baseBabelConfig.plugins = requiredPlugins.concat(
|
|
80
|
+
baseBabelConfig.plugins || []
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
return babel.loadPartialConfig(baseBabelConfig).options;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function buildResult(babelResult) {
|
|
87
|
+
const {
|
|
88
|
+
ast,
|
|
89
|
+
map,
|
|
90
|
+
code,
|
|
91
|
+
metadata: { marko: meta }
|
|
92
|
+
} = babelResult;
|
|
93
|
+
return { ast, map, code, meta };
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
let clearingDefaultCache = false;
|
|
97
|
+
function scheduleDefaultClear(config) {
|
|
98
|
+
if (
|
|
99
|
+
!clearingDefaultCache &&
|
|
100
|
+
(clearingDefaultCache = isDefaultCache(config))
|
|
101
|
+
) {
|
|
102
|
+
setImmediate(_clearDefaults);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function _clearDefaults() {
|
|
107
|
+
clearingDefaultCache = false;
|
|
108
|
+
globalConfig.cache.clear();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function isDefaultCache(config) {
|
|
112
|
+
return !config.cache || config.cache === globalConfig.cache;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function getFs(config) {
|
|
116
|
+
return config.fileSystem || globalConfig.fileSystem;
|
|
117
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright 2020 eBay Inc. and contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/babel-plugin/file.js"],"names":["CWD","process","cwd","MarkoFile","File","addHelper","Error","buildCodeFrameError","node","msg","SyntaxError","loc","frame","code","start","line","column","end","undefined","highlightCode","finalMsg","path","relative","opts","filename","err","Object","defineProperty","get","set"],"mappings":"uJAAA;AACA;AACA;AACA,MAAMA,GAAG,GAAGC,OAAO,CAACC,GAAR,EAAZ;;AAEO,MAAMC,SAAN,SAAwBC,UAAxB,CAA6B;AAClCC,EAAAA,SAAS,GAAG;AACV,UAAM,IAAIC,KAAJ,CAAU,qDAAV,CAAN;AACD;;AAEDC,EAAAA,mBAAmB,CAACC,IAAD,EAAOC,GAAP,EAAYH,KAAK,GAAGI,WAApB,EAAiC;AAClD,UAAM,EAAEC,GAAF,KAAUH,IAAhB;AACA,UAAMI,KAAK;AACTD,IAAAA,GAAG;AACH;AACE,SAAKE,IADP;AAEE;AACEC,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAEJ,GAAG,CAACG,KAAJ,CAAUC,IADX;AAELC,QAAAA,MAAM,EAAEL,GAAG,CAACG,KAAJ,CAAUE,MAAV,GAAmB,CAFtB,EADT;;AAKEC,MAAAA,GAAG;AACDN,MAAAA,GAAG,CAACM,GAAJ,IAAWN,GAAG,CAACG,KAAJ,CAAUC,IAAV,KAAmBJ,GAAG,CAACM,GAAJ,CAAQF,IAAtC;AACI;AACEA,QAAAA,IAAI,EAAEJ,GAAG,CAACM,GAAJ,CAAQF,IADhB;AAEEC,QAAAA,MAAM,EAAEL,GAAG,CAACM,GAAJ,CAAQD,MAAR,GAAiB,CAF3B,EADJ;;AAKIE,MAAAA,SAXR,EAFF;;AAeE,MAAEC,aAAa,EAAE,IAAjB,EAfF,CAFF;;;AAoBA,UAAMC,QAAQ,GAAI,GAAEC,cAAKC,QAAL,CAActB,GAAd,EAAmB,KAAKuB,IAAL,CAAUC,QAA7B,CAAuC;AACzDb,IAAAA,GAAG,GAAI,IAAGA,GAAG,CAACG,KAAJ,CAAUC,IAAK,IAAGJ,GAAG,CAACG,KAAJ,CAAUE,MAAV,GAAmB,CAAE,GAA9C,GAAmD;AACvD,SAAIP,GAAI,KAAIG,KAAK,IAAI,EAAG,EAFzB;;AAIA,UAAMa,GAAG,GAAG,IAAInB,KAAJ,EAAZ;;AAEA;AACAoB,IAAAA,MAAM,CAACC,cAAP,CAAsBF,GAAtB,EAA2B,SAA3B,EAAsC;AACpCG,MAAAA,GAAG,GAAG;AACJ,eAAOR,QAAP;AACD,OAHmC;AAIpCS,MAAAA,GAAG,GAAG,CAAE,CAJ4B,EAAtC;;AAMA,WAAOJ,GAAP;AACD,GAzCiC,C","sourcesContent":["import path from \"path\";\nimport { File } from \"@babel/core\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nconst CWD = process.cwd();\n\nexport class MarkoFile extends File {\n addHelper() {\n throw new Error(\"addHelper is not supported during a Marko transform\");\n }\n\n buildCodeFrameError(node, msg, Error = SyntaxError) {\n const { loc } = node;\n const frame =\n loc &&\n codeFrameColumns(\n this.code,\n {\n start: {\n line: loc.start.line,\n column: loc.start.column + 1\n },\n end:\n loc.end && loc.start.line === loc.end.line\n ? {\n line: loc.end.line,\n column: loc.end.column + 1\n }\n : undefined\n },\n { highlightCode: true }\n );\n\n const finalMsg = `${path.relative(CWD, this.opts.filename)}${\n loc ? `(${loc.start.line},${loc.start.column + 1})` : \"\"\n }: ${msg}\\n${frame || \"\"}`;\n\n const err = new Error();\n\n // Prevent babel from changing our error message.\n Object.defineProperty(err, \"message\", {\n get() {\n return finalMsg;\n },\n set() {}\n });\n return err;\n }\n}\n"],"file":"file.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/babel-plugin/index.js"],"names":["SOURCE_FILES","WeakMap","api","markoOpts","assertVersion","translator","output","optimize","undefined","cache","using","shouldOptimize","translate","Error","resolveVirtualDependency","curOpts","name","manipulateOptions","opts","parserOverride","code","prevFS","curFS","fileSystem","file","getMarkoFile","finalAst","t","cloneNode","ast","set","pre","metadata","sourceFile","get","taglibLookup","___taglibLookup","rootTranslators","buildCodeFrameError","buildError","hub","marko","shallowClone","MarkoFile","prototype","bind","___getMarkoFile","id","taglibsById","addPlugin","push","traverseAll","watchFiles","filter","unique","fileOpts","compileCache","Map","filename","isSource","isMigrate","canCache","contentHash","update","digest","cacheKey","cached","watchFile","mtime","Infinity","statSync","time","path","dirname","type","program","sourceType","body","directives","meta","macros","deps","tags","start","end","length","loc","line","column","scope","crawl","rootMigrators","migrator","migrators","migrate","rootTransformers","transformer","transformers","transform","taglibId","filePath","endsWith","Date","now","analyze","e","delete","data","clone","key","v","Ctor","constructor","Array","Object","Set","RegExp","mergeVisitors","all","isArray","visitors","merge","explode","Program","mergedVisitors","state","enter","_call","traverse","exit","arr","plugin","hook","default","item","i","list","indexOf"],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { createHash } from \"crypto\";\nimport * as t from \"../babel-types\";\nimport { getLoc, getTemplateId } from \"@marko/babel-utils\";\nimport { visitors } from \"@babel/traverse\";\nimport { buildLookup } from \"../taglib\";\nimport { parseMarko } from \"./parser\";\nimport { visitor as migrate } from \"./plugins/migrate\";\nimport { visitor as transform } from \"./plugins/transform\";\nimport { MarkoFile } from \"./file\";\nimport { curFS, setFS } from \"../taglib/fs\";\nimport tryLoadTranslator from \"../util/try-load-translator\";\nimport shouldOptimize from \"../util/should-optimize\";\n\nconst SOURCE_FILES = new WeakMap();\n\nexport default (api, markoOpts) => {\n api.assertVersion(7);\n const translator = (markoOpts.translator = tryLoadTranslator(\n markoOpts.translator\n ));\n markoOpts.output = markoOpts.output || \"html\";\n\n if (markoOpts.optimize === undefined) {\n api.cache.using(shouldOptimize);\n markoOpts.optimize = shouldOptimize();\n }\n\n if (!translator || !translator.translate) {\n throw new Error(\n \"@marko/compiler: translator must provide a translate visitor object\"\n );\n }\n\n if (\n markoOpts.output === \"hydrate\" &&\n typeof markoOpts.resolveVirtualDependency !== \"function\"\n ) {\n throw new Error(\n `@marko/compiler: the \"resolveVirtualDependency\" option must be supplied when output is \"hydrate\".`\n );\n }\n\n let curOpts;\n\n return {\n name: \"marko\",\n manipulateOptions(opts) {\n curOpts = opts;\n },\n parserOverride(code) {\n let prevFS = curFS;\n setFS(markoOpts.fileSystem);\n try {\n const file = getMarkoFile(code, curOpts, markoOpts);\n const finalAst = t.cloneNode(file.ast, true);\n SOURCE_FILES.set(finalAst, file);\n return finalAst;\n } finally {\n setFS(prevFS);\n }\n },\n pre(file) {\n let prevFS = curFS;\n curOpts = undefined;\n setFS(markoOpts.fileSystem);\n try {\n if (markoOpts.output === \"source\" || markoOpts.output === \"migrate\") {\n return file;\n }\n\n const { ast, metadata } = file;\n const sourceFile = SOURCE_FILES.get(ast);\n const taglibLookup = sourceFile.___taglibLookup;\n const rootTranslators = [];\n const { buildCodeFrameError } = file;\n const { buildError } = file.hub;\n metadata.marko = shallowClone(sourceFile.metadata.marko);\n file.buildCodeFrameError = MarkoFile.prototype.buildCodeFrameError;\n file.hub.buildError = file.buildCodeFrameError.bind(file);\n file.markoOpts = markoOpts;\n file.___taglibLookup = taglibLookup;\n file.___getMarkoFile = getMarkoFile;\n\n if (markoOpts.output !== \"hydrate\") {\n for (const id in taglibLookup.taglibsById) {\n addPlugin(\n metadata.marko,\n rootTranslators,\n taglibLookup.taglibsById[id].translator\n );\n }\n }\n\n rootTranslators.push(translator.translate);\n traverseAll(file, rootTranslators);\n file.buildCodeFrameError = buildCodeFrameError;\n file.hub.buildError = buildError;\n file.markoOpts =\n file.___taglibLookup =\n file.___getMarkoFile =\n undefined;\n\n metadata.marko.watchFiles = metadata.marko.watchFiles.filter(unique);\n } finally {\n setFS(prevFS);\n }\n }\n };\n};\n\nexport function getMarkoFile(code, fileOpts, markoOpts) {\n const { translator } = markoOpts;\n let compileCache = markoOpts.cache.get(translator);\n\n if (!compileCache) {\n markoOpts.cache.set(translator, (compileCache = new Map()));\n }\n\n const { filename } = fileOpts;\n const isSource = markoOpts.output === \"source\";\n const isMigrate = markoOpts.output === \"migrate\";\n const canCache = !(isSource || isMigrate);\n const id = getTemplateId(markoOpts.optimize, filename);\n const contentHash = canCache && createHash(\"MD5\").update(code).digest(\"hex\");\n const cacheKey = canCache && createHash(\"MD5\").update(id).digest(\"hex\");\n\n let cached = canCache && compileCache.get(cacheKey);\n\n if (cached) {\n if (cached.contentHash !== contentHash) {\n // File content changed, invalidate the cache.\n cached = undefined;\n } else {\n for (const watchFile of cached.file.metadata.marko.watchFiles) {\n let mtime = Infinity;\n try {\n mtime = markoOpts.fileSystem.statSync(watchFile).mtime;\n // eslint-disable-next-line no-empty\n } catch {}\n\n if (mtime > cached.time) {\n // Some dependency changed, invalidate the cache.\n cached = undefined;\n break;\n }\n }\n }\n }\n\n if (cached) {\n return cached.file;\n }\n\n const taglibLookup = buildLookup(path.dirname(filename), translator);\n\n const file = new MarkoFile(fileOpts, {\n code,\n ast: {\n type: \"File\",\n program: {\n type: \"Program\",\n sourceType: \"module\",\n body: [],\n directives: []\n }\n }\n });\n\n const meta = (file.metadata.marko = {\n id,\n macros: {},\n deps: [],\n tags: [],\n watchFiles: []\n });\n\n file.markoOpts = markoOpts;\n file.___taglibLookup = taglibLookup;\n file.___getMarkoFile = getMarkoFile;\n\n file.ast.start = file.ast.program.start = 0;\n file.ast.end = file.ast.program.end = code.length - 1;\n file.ast.loc = file.ast.program.loc = {\n start: { line: 0, column: 0 },\n end: getLoc(file, file.ast.end)\n };\n\n parseMarko(file);\n\n if (isSource) {\n return file;\n }\n\n file.path.scope.crawl(); // Initialize bindings.\n\n const rootMigrators = [];\n for (const id in taglibLookup.taglibsById) {\n for (const migrator of taglibLookup.taglibsById[id].migrators) {\n addPlugin(meta, rootMigrators, migrator);\n }\n }\n\n rootMigrators.push(migrate);\n traverseAll(file, rootMigrators);\n\n if (isMigrate) {\n return file;\n }\n\n const rootTransformers = [];\n for (const id in taglibLookup.taglibsById) {\n for (const transformer of taglibLookup.taglibsById[id].transformers) {\n addPlugin(meta, rootTransformers, transformer);\n }\n }\n\n rootTransformers.push(transform);\n traverseAll(file, rootTransformers);\n\n for (const taglibId in taglibLookup.taglibsById) {\n const { filePath } = taglibLookup.taglibsById[taglibId];\n\n if (\n filePath[filePath.length - 5] === \".\" &&\n filePath.endsWith(\"marko.json\")\n ) {\n meta.watchFiles.push(filePath);\n }\n }\n\n compileCache.set(cacheKey, {\n time: Date.now(),\n file,\n contentHash\n });\n\n if (translator.analyze) {\n try {\n traverseAll(file, translator.analyze);\n } catch (e) {\n compileCache.delete(cacheKey);\n throw e;\n }\n }\n\n return file;\n}\n\nfunction shallowClone(data) {\n const clone = {};\n\n for (const key in data) {\n const v = data[key];\n\n if (v !== undefined) {\n if (v === null || typeof v !== \"object\") {\n clone[key] = v;\n } else {\n const Ctor = v.constructor;\n\n switch (Ctor) {\n case Array:\n clone[key] = [...v];\n break;\n case Object:\n case null:\n clone[key] = { ...v };\n break;\n case Map:\n case Set:\n case Date:\n case RegExp:\n clone[key] = new Ctor(v);\n break;\n\n default:\n throw new Error(`Unsupported metadata type of ${Ctor.name}`);\n }\n }\n }\n }\n\n return clone;\n}\n\nfunction mergeVisitors(all) {\n if (Array.isArray(all)) {\n if (all.length === 1) {\n all = all[0];\n } else {\n return visitors.merge(all);\n }\n }\n\n return visitors.explode(all);\n}\n\nfunction traverseAll(file, visitors) {\n const program = file.path;\n const { Program, ...mergedVisitors } = mergeVisitors(visitors);\n program.state = {};\n\n // Traverse only walks into children by default\n // This manually traverses into the Program node as well.\n if (!(Program && Program.enter && program._call(Program.enter))) {\n program.traverse(mergedVisitors, program.state);\n\n if (Program && Program.exit) {\n program._call(Program.exit);\n }\n }\n}\n\nfunction addPlugin(meta, arr, plugin) {\n if (plugin) {\n const hook = plugin.hook.default || plugin.hook;\n\n if (plugin.path) {\n meta.watchFiles.push(plugin.path);\n }\n\n if (Array.isArray(hook)) {\n arr.push(...hook);\n } else {\n arr.push(hook);\n }\n }\n}\n\nfunction unique(item, i, list) {\n return list.indexOf(item) === i;\n}\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/babel-plugin/parser.js"],"names":["EMPTY_OBJECT","EMPTY_ARRAY","htmlTrimStart","t","replace","htmlTrimEnd","htmlTrim","isAttributeTag","node","isStringLiteral","name","value","parseMarko","file","code","htmlParseOptions","markoOpts","watchFiles","metadata","marko","pushTagBody","getTagBody","pushContainer","currentTag","isProgram","get","preserveWhitespace","path","preservingWhitespaceUntil","wasSelfClosing","handledTagName","onNext","handlers","onDocumentType","pos","endPos","markoDocumentType","onDeclaration","markoDeclaration","onComment","markoComment","onCDATA","markoCDATA","onText","parser","shouldTrim","body","length","prev","prevIndex","isMarkoClass","isMarkoComment","isMarkoScriptlet","undefined","originalValue","indexOf","isMarkoText","test","markoText","prevBody","next","onPlaceholder","escape","withinBody","markoPlaceholder","onScriptlet","line","block","buildCodeFrameError","loc","markoScriptlet","onOpenTagName","event","tagName","tagNameExpression","exec","tagDef","tagNameStartPos","concise","tagNameNode","templateLiteral","templateElement","raw","cooked","stringLiteral","markoTag","markoTagBody","parseOptions","setParseOptions","rootOnly","onOpenTag","tagNameEndPos","selfClosed","state","enterParsedTextContentState","enterStaticTextContentState","rawOpenTag","set","substring","ignoreAttributes","var","params","argument","shorthandId","shorthandClassNames","attributes","onCloseTag","tag","isConcise","start","end","push","hook","default","parentPath","onfinish","onError","message","includes","isOpenTagOnly","openTagOnly","ignoreNonstandardStringPlaceholders","parse","opts","filename"],"mappings":"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","sourcesContent":["import { createParser } from \"htmljs-parser\";\nimport parseAttributes from \"./util/parse-attributes\";\nimport parseArguments from \"./util/parse-arguments\";\nimport parseParams from \"./util/parse-params\";\nimport parseVar from \"./util/parse-var\";\nimport parseIDShorthand from \"./util/parse-id-shorthand\";\nimport parseClassnameShorthand from \"./util/parse-classname-shorthand\";\nimport * as t from \"../babel-types\";\nimport {\n withLoc,\n getLoc,\n getLocRange,\n parseScript,\n parseExpression,\n getTagDefForTagName\n} from \"@marko/babel-utils\";\n\nconst EMPTY_OBJECT = {};\nconst EMPTY_ARRAY = [];\nconst htmlTrimStart = t => t.replace(/^[\\n\\r]\\s*/, \"\");\nconst htmlTrimEnd = t => t.replace(/[\\n\\r]\\s*$/, \"\");\nconst htmlTrim = t => htmlTrimStart(htmlTrimEnd(t));\nconst isAttributeTag = node =>\n t.isStringLiteral(node.name) && node.name.value[0] === \"@\";\n\nexport function parseMarko(file) {\n const { code } = file;\n const { htmlParseOptions = {} } = file.markoOpts;\n const { watchFiles } = file.metadata.marko;\n const pushTagBody = node => getTagBody().pushContainer(\"body\", node);\n const getTagBody = () =>\n currentTag.isProgram() ? currentTag : currentTag.get(\"body\");\n let { preserveWhitespace } = htmlParseOptions;\n let currentTag = file.path;\n let preservingWhitespaceUntil = preserveWhitespace;\n let wasSelfClosing = false;\n let handledTagName = false;\n let onNext;\n\n const handlers = {\n onDocumentType({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDocumentType(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onDeclaration({ value, pos, endPos }) {\n const node = withLoc(file, t.markoDeclaration(value), pos, endPos);\n pushTagBody(node);\n /* istanbul ignore next */\n onNext = onNext && onNext(node);\n },\n\n onComment({ value, pos, endPos }) {\n const node = withLoc(file, t.markoComment(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onCDATA({ value, pos, endPos }) {\n const node = withLoc(file, t.markoCDATA(value), pos, endPos);\n pushTagBody(node);\n onNext = onNext && onNext(node);\n },\n\n onText({ value }, parser) {\n const shouldTrim = !preservingWhitespaceUntil;\n const { body } = getTagBody().node;\n let pos = parser.pos - value.length;\n\n if (shouldTrim) {\n if (htmlTrim(value) === \"\") {\n return;\n }\n\n // Find previous non-scriptlet/@tag.\n let prev;\n let prevIndex = body.length;\n while (prevIndex > 0) {\n prev = body[--prevIndex];\n\n if (\n t.isMarkoClass(prev) ||\n t.isMarkoComment(prev) ||\n t.isMarkoScriptlet(prev) ||\n isAttributeTag(prev)\n ) {\n prev = undefined;\n } else {\n break;\n }\n }\n\n if (!prev) {\n const originalValue = value;\n value = htmlTrimStart(value);\n pos += originalValue.indexOf(value);\n } else if (\n t.isMarkoText(prev) &&\n /\\s/.test(prev.value[prev.value.length - 1])\n ) {\n const originalValue = value;\n value = value.replace(/^\\s+/, \"\");\n pos += originalValue.indexOf(value);\n }\n }\n\n const endPos = pos + value.length;\n const node = withLoc(file, t.markoText(value), pos, endPos);\n const prevBody = getTagBody().node.body;\n pushTagBody(node);\n onNext && onNext(node);\n onNext =\n shouldTrim &&\n (next => {\n if (!next || prevBody.indexOf(next) === -1) {\n node.value = htmlTrimEnd(node.value);\n }\n\n node.value = node.value.replace(/\\s+/g, \" \");\n });\n },\n\n onPlaceholder({ escape, value, withinBody, pos, endPos }) {\n if (withinBody) {\n const node = withLoc(\n file,\n t.markoPlaceholder(\n parseExpression(\n file,\n value,\n pos + (escape ? 2 /* ${ */ : 3) /* $!{ */\n ),\n escape\n ),\n pos,\n endPos\n );\n\n pushTagBody(node);\n onNext = onNext && onNext(node);\n }\n },\n\n onScriptlet({ value, line, block, pos, endPos }) {\n if (!line && !block) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n \"<% scriptlets %> are no longer supported.\"\n );\n }\n\n pos -= 1; // Include $.\n // Scriptlets are ignored as content and don't call `onNext`.\n pushTagBody(\n withLoc(\n file,\n t.markoScriptlet(\n parseScript(file, value, pos + 2 /** Ignores leading `$ ` */).body\n ),\n pos,\n endPos\n )\n );\n },\n\n onOpenTagName(event) {\n const { pos, endPos } = event;\n const tagName = event.tagName || \"div\";\n const [, tagNameExpression] =\n /^\\$\\{([\\s\\S]*)\\}/.exec(tagName) || EMPTY_ARRAY;\n const tagDef = !tagNameExpression && getTagDefForTagName(file, tagName);\n const tagNameStartPos = pos + (event.concise ? 0 : 1); // Account for leading `<`.\n\n handledTagName = true;\n\n if (tagNameExpression === \"\") {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, tagNameStartPos + 1, tagNameStartPos + 3) },\n \"Missing expression for <${dynamic}> tag.\"\n );\n }\n\n let tagNameNode;\n\n if (tagNameExpression) {\n tagNameNode = parseExpression(\n file,\n tagNameExpression,\n tagNameStartPos + 2 /* ${ */\n );\n\n if (t.isStringLiteral(tagNameNode)) {\n // convert to template literal just so that we don't mistake it for a native tag.\n tagNameNode = t.templateLiteral(\n [\n t.templateElement({\n raw: tagNameNode.value,\n cooked: tagNameNode.value\n })\n ],\n []\n );\n }\n } else {\n tagNameNode = withLoc(\n file,\n t.stringLiteral(tagName),\n tagNameStartPos,\n tagNameStartPos + tagName.length\n );\n }\n\n const node = withLoc(\n file,\n t.markoTag(tagNameNode, [], t.markoTagBody()),\n pos,\n endPos\n );\n\n if (tagDef) {\n node.tagDef = tagDef;\n\n const { parseOptions } = tagDef;\n if (parseOptions) {\n event.setParseOptions(parseOptions);\n\n if (parseOptions.rootOnly && !currentTag.isProgram()) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `\"${tagName}\" tags must be at the root of your Marko template.`\n );\n }\n }\n }\n\n [currentTag] = pushTagBody(node);\n\n // @tags are not treated as content and do not call next.\n if (!isAttributeTag(node)) {\n onNext = onNext && onNext(node);\n }\n },\n\n onOpenTag(event, parser) {\n if (!handledTagName) {\n // There is a bug in htmljs parser where a single top level concise mode tag with nothing else\n // does not emit the openTagNameEvent.\n handlers.onOpenTagName(event);\n }\n\n handledTagName = false;\n const { pos, endPos, tagNameEndPos } = event;\n const { tagDef } = currentTag.node;\n const parseOptions = (tagDef && tagDef.parseOptions) || EMPTY_OBJECT;\n wasSelfClosing = event.selfClosed;\n\n if (parseOptions.state === \"parsed-text\") {\n parser.enterParsedTextContentState();\n } else if (parseOptions.state === \"static-text\") {\n parser.enterStaticTextContentState();\n }\n\n if (parseOptions.rawOpenTag) {\n currentTag.set(\n \"rawValue\",\n parser.substring(pos, endPos).replace(/^<|\\/>$|>$/g, \"\")\n );\n }\n\n if (!parseOptions.ignoreAttributes) {\n currentTag.set(\"var\", parseVar(file, event.var));\n currentTag.get(\"body\").set(\"params\", parseParams(file, event.params));\n currentTag.set(\"arguments\", parseArguments(file, event.argument));\n currentTag.set(\n \"attributes\",\n parseIDShorthand(\n file,\n event.shorthandId,\n parseClassnameShorthand(\n file,\n event.shorthandClassNames,\n parseAttributes(file, event.attributes, tagNameEndPos)\n )\n )\n );\n }\n\n if (!preservingWhitespaceUntil && parseOptions.preserveWhitespace) {\n preservingWhitespaceUntil = currentTag;\n }\n },\n\n onCloseTag(event, parser) {\n let { pos, endPos } = event;\n const tag = currentTag;\n const { node } = tag;\n const { tagDef } = node;\n const isConcise = code[node.start - 1] !== \"<\";\n\n if (preservingWhitespaceUntil === currentTag) {\n preservingWhitespaceUntil = undefined;\n }\n\n if (!pos) {\n pos = parser.pos;\n }\n\n if (!endPos) {\n endPos = pos;\n\n if (wasSelfClosing && !isConcise) {\n endPos += 2; // account for \"/>\"\n }\n }\n\n node.end = endPos;\n node.loc.end = getLoc(file, endPos);\n\n if (\n !isConcise &&\n !wasSelfClosing &&\n code[pos + 1] !== \"/\" &&\n !currentTag.get(\"name\").isStringLiteral()\n ) {\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n `Invalid ending for dynamic tag, expected \"</>\".`\n );\n }\n\n if (tagDef && tagDef.parser) {\n if (tagDef.parser.path) {\n watchFiles.push(tagDef.parser.path);\n }\n /* istanbul ignore next */\n (tagDef.parser.hook.default || tagDef.parser.hook)(tag, t);\n }\n\n currentTag = currentTag.parentPath.parentPath || file.path;\n },\n\n onfinish() {\n onNext = onNext && onNext();\n },\n\n onError({ message, pos, endPos }) {\n if (message.includes(\"EOF\")) endPos = pos;\n throw file.buildCodeFrameError(\n { loc: getLocRange(file, pos, endPos) },\n message\n );\n }\n };\n\n createParser(handlers, {\n isOpenTagOnly(name) {\n const { parseOptions = EMPTY_OBJECT } =\n getTagDefForTagName(file, name) || EMPTY_OBJECT;\n return parseOptions.openTagOnly;\n },\n ignoreNonstandardStringPlaceholders: true,\n ...htmlParseOptions\n }).parse(code, file.opts.filename);\n}\n"],"file":"parser.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/plugins/migrate.js"],"names":["visitor","MarkoTag","enter","path","migrators","getMigratorsForTag","node","migrator","t","exit","hub","file","watchFiles","metadata","marko","tagName","get","MIGRATOR_CACHE","Object","create","addMigrators","tagDef","push","hook","default"],"mappings":"gEAAA;AACA;AACA,mD;;AAEA;AACA;AACA;AACO,MAAMA,OAAO,GAAG;AACrBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,KAAK,CAACC,IAAD,EAAO;AACV,YAAMC,SAAS,GAAGC,kBAAkB,CAACF,IAAD,CAApC;AACA,YAAM,EAAEG,IAAF,KAAWH,IAAjB;AACA,WAAK,MAAMI,QAAX,IAAuBH,SAAvB,EAAkC;AAChC,gCAAMG,QAAN,EAAgBJ,IAAhB,EAAsBK,CAAtB;AACA,YAAIL,IAAI,CAACG,IAAL,KAAcA,IAAlB,EAAwB,MAFQ,CAED;AAChC;AACF,KARO;AASRG,IAAAA,IAAI,CAACN,IAAD,EAAO;AACT,YAAMC,SAAS,GAAGC,kBAAkB,CAACF,IAAD,CAApC;AACA,YAAM,EAAEG,IAAF,KAAWH,IAAjB;AACA,WAAK,MAAMI,QAAX,IAAuBH,SAAvB,EAAkC;AAChC,+BAAKG,QAAL,EAAeJ,IAAf,EAAqBK,CAArB;AACA,YAAIL,IAAI,CAACG,IAAL,KAAcA,IAAlB,EAAwB,MAFQ,CAED;AAChC;AACF,KAhBO,EADW,EAAhB,C;;;;AAqBP,SAASD,kBAAT,CAA4BF,IAA5B,EAAkC;AAChC,QAAM;AACJO,IAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFR,EAAAA,IAFJ;AAGA,QAAM,EAAES,UAAF,KAAiBD,IAAI,CAACE,QAAL,CAAcC,KAArC;AACA,QAAMC,OAAO,GAAGZ,IAAI,CAACa,GAAL,CAAS,YAAT,EAAuBV,IAAvB,IAA+B,GAA/C;AACA,QAAMW,cAAc,GAAIN,IAAI,CAACM,cAAL;AACtBN,EAAAA,IAAI,CAACM,cAAL,IAAuBC,MAAM,CAACC,MAAP,CAAc,IAAd,CADzB;;AAGA,MAAIf,SAAS,GAAGa,cAAc,CAACF,OAAD,CAA9B;;AAEA,MAAI,CAACX,SAAL,EAAgB;AACdA,IAAAA,SAAS,GAAGa,cAAc,CAACF,OAAD,CAAd,GAA0B,EAAtC;AACA,UAAMK,YAAY,GAAG,CAAAC,MAAM,KAAI;AAC7B,UAAIA,MAAM,IAAIA,MAAM,CAACjB,SAArB,EAAgC;AAC9B,aAAK,MAAMG,QAAX,IAAuBc,MAAM,CAACjB,SAA9B,EAAyC;AACvC,cAAIG,QAAQ,CAACJ,IAAb,EAAmB;AACjBS,YAAAA,UAAU,CAACU,IAAX,CAAgBf,QAAQ,CAACJ,IAAzB;AACD;AACDC,UAAAA,SAAS,CAACkB,IAAV,CAAef,QAAQ,CAACgB,IAAT,CAAcC,OAAd,IAAyBjB,QAAQ,CAACgB,IAAjD;AACD;AACF;AACF,KATD;;AAWAH,IAAAA,YAAY,CAAC,2BAAUjB,IAAV,CAAD,CAAZ;;AAEA,QAAIY,OAAO,KAAK,GAAhB,EAAqB;AACnBK,MAAAA,YAAY,CAAC,qCAAoBT,IAApB,EAA0B,GAA1B,CAAD,CAAZ;AACD;AACF;;AAED,SAAOP,SAAP;AACD","sourcesContent":["import { getTagDef, getTagDefForTagName } from \"@marko/babel-utils\";\nimport * as t from \"../../babel-types\";\nimport { enter, exit } from \"../util/plugin-hooks\";\n\n/**\n * Applies custom migrators on tags.\n */\nexport const visitor = {\n MarkoTag: {\n enter(path) {\n const migrators = getMigratorsForTag(path);\n const { node } = path;\n for (const migrator of migrators) {\n enter(migrator, path, t);\n if (path.node !== node) break; // Stop if node is replaced.\n }\n },\n exit(path) {\n const migrators = getMigratorsForTag(path);\n const { node } = path;\n for (const migrator of migrators) {\n exit(migrator, path, t);\n if (path.node !== node) break; // Stop if node is replaced.\n }\n }\n }\n};\n\nfunction getMigratorsForTag(path) {\n const {\n hub: { file }\n } = path;\n const { watchFiles } = file.metadata.marko;\n const tagName = path.get(\"name.value\").node || \"*\";\n const MIGRATOR_CACHE = (file.MIGRATOR_CACHE =\n file.MIGRATOR_CACHE || Object.create(null));\n\n let migrators = MIGRATOR_CACHE[tagName];\n\n if (!migrators) {\n migrators = MIGRATOR_CACHE[tagName] = [];\n const addMigrators = tagDef => {\n if (tagDef && tagDef.migrators) {\n for (const migrator of tagDef.migrators) {\n if (migrator.path) {\n watchFiles.push(migrator.path);\n }\n migrators.push(migrator.hook.default || migrator.hook);\n }\n }\n };\n\n addMigrators(getTagDef(path));\n\n if (tagName !== \"*\") {\n addMigrators(getTagDefForTagName(file, \"*\"));\n }\n }\n\n return migrators;\n}\n"],"file":"migrate.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/plugins/transform.js"],"names":["visitor","MarkoTag","enter","path","transformers","getTransformersForTag","node","transformer","t","exit","hub","file","watchFiles","metadata","marko","tagName","get","TRANSFORMER_CACHE","Object","create","addTransformers","tagDef","push","hook","default"],"mappings":"gEAAA;AACA;AACA,mD;;AAEA;AACA;AACA;AACO,MAAMA,OAAO,GAAG;AACrBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,KAAK,CAACC,IAAD,EAAO;AACV,YAAMC,YAAY,GAAGC,qBAAqB,CAACF,IAAD,CAA1C;AACA,YAAM,EAAEG,IAAF,KAAWH,IAAjB;;AAEA,WAAK,MAAMI,WAAX,IAA0BH,YAA1B,EAAwC;AACtC,gCAAMG,WAAN,EAAmBJ,IAAnB,EAAyBK,CAAzB;AACA,YAAIL,IAAI,CAACG,IAAL,KAAcA,IAAlB,EAAwB,MAFc,CAEP;AAChC;AACF,KATO;AAURG,IAAAA,IAAI,CAACN,IAAD,EAAO;AACT,YAAMC,YAAY,GAAGC,qBAAqB,CAACF,IAAD,CAA1C;AACA,YAAM,EAAEG,IAAF,KAAWH,IAAjB;;AAEA,WAAK,MAAMI,WAAX,IAA0BH,YAA1B,EAAwC;AACtC,+BAAKG,WAAL,EAAkBJ,IAAlB,EAAwBK,CAAxB;AACA,YAAIL,IAAI,CAACG,IAAL,KAAcA,IAAlB,EAAwB,MAFc,CAEP;AAChC;AACF,KAlBO,EADW,EAAhB,C;;;;AAuBP,SAASD,qBAAT,CAA+BF,IAA/B,EAAqC;AACnC,QAAM;AACJO,IAAAA,GAAG,EAAE,EAAEC,IAAF,EADD;AAEFR,EAAAA,IAFJ;AAGA,QAAM,EAAES,UAAF,KAAiBD,IAAI,CAACE,QAAL,CAAcC,KAArC;AACA,QAAMC,OAAO,GAAGZ,IAAI,CAACa,GAAL,CAAS,YAAT,EAAuBV,IAAvB,IAA+B,GAA/C;AACA,QAAMW,iBAAiB,GAAIN,IAAI,CAACM,iBAAL;AACzBN,EAAAA,IAAI,CAACM,iBAAL,IAA0BC,MAAM,CAACC,MAAP,CAAc,IAAd,CAD5B;;AAGA,MAAIf,YAAY,GAAGa,iBAAiB,CAACF,OAAD,CAApC;;AAEA,MAAI,CAACX,YAAL,EAAmB;AACjBA,IAAAA,YAAY,GAAGa,iBAAiB,CAACF,OAAD,CAAjB,GAA6B,EAA5C;AACA,UAAMK,eAAe,GAAG,CAAAC,MAAM,KAAI;AAChC,UAAIA,MAAM,IAAIA,MAAM,CAACjB,YAArB,EAAmC;AACjC,aAAK,MAAMG,WAAX,IAA0Bc,MAAM,CAACjB,YAAjC,EAA+C;AAC7C,cAAIG,WAAW,CAACJ,IAAhB,EAAsB;AACpBS,YAAAA,UAAU,CAACU,IAAX,CAAgBf,WAAW,CAACJ,IAA5B;AACD;AACDC,UAAAA,YAAY,CAACkB,IAAb,CAAkBf,WAAW,CAACgB,IAAZ,CAAiBC,OAAjB,IAA4BjB,WAAW,CAACgB,IAA1D;AACD;AACF;AACF,KATD;;AAWAH,IAAAA,eAAe,CAAC,2BAAUjB,IAAV,CAAD,CAAf;;AAEA,QAAIY,OAAO,KAAK,GAAhB,EAAqB;AACnBK,MAAAA,eAAe,CAAC,qCAAoBT,IAApB,EAA0B,GAA1B,CAAD,CAAf;AACD;AACF;;AAED,SAAOP,YAAP;AACD","sourcesContent":["import { getTagDef, getTagDefForTagName } from \"@marko/babel-utils\";\nimport * as t from \"../../babel-types\";\nimport { enter, exit } from \"../util/plugin-hooks\";\n\n/**\n * Applies custom transformers on tags.\n */\nexport const visitor = {\n MarkoTag: {\n enter(path) {\n const transformers = getTransformersForTag(path);\n const { node } = path;\n\n for (const transformer of transformers) {\n enter(transformer, path, t);\n if (path.node !== node) break; // Stop if node is replaced.\n }\n },\n exit(path) {\n const transformers = getTransformersForTag(path);\n const { node } = path;\n\n for (const transformer of transformers) {\n exit(transformer, path, t);\n if (path.node !== node) break; // Stop if node is replaced.\n }\n }\n }\n};\n\nfunction getTransformersForTag(path) {\n const {\n hub: { file }\n } = path;\n const { watchFiles } = file.metadata.marko;\n const tagName = path.get(\"name.value\").node || \"*\";\n const TRANSFORMER_CACHE = (file.TRANSFORMER_CACHE =\n file.TRANSFORMER_CACHE || Object.create(null));\n\n let transformers = TRANSFORMER_CACHE[tagName];\n\n if (!transformers) {\n transformers = TRANSFORMER_CACHE[tagName] = [];\n const addTransformers = tagDef => {\n if (tagDef && tagDef.transformers) {\n for (const transformer of tagDef.transformers) {\n if (transformer.path) {\n watchFiles.push(transformer.path);\n }\n transformers.push(transformer.hook.default || transformer.hook);\n }\n }\n };\n\n addTransformers(getTagDef(path));\n\n if (tagName !== \"*\") {\n addTransformers(getTagDefForTagName(file, \"*\"));\n }\n }\n\n return transformers;\n}\n"],"file":"transform.js"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.default = void 0;var _babelUtils = require("@marko/babel-utils");var _default =
|
|
2
|
-
|
|
3
|
-
(file, details) => {
|
|
4
|
-
if (details) {
|
|
5
|
-
let startPos = details.pos;
|
|
6
|
-
|
|
7
|
-
if (file.code[startPos] !== "(" && file.code[startPos + 1] === "(") {
|
|
8
|
-
// Fix bug in htmljs-parser with attribute argument positions
|
|
9
|
-
startPos++;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return (0, _babelUtils.parseExpression)(file, `_(${details.value})`, startPos - 1).arguments;
|
|
13
|
-
}
|
|
14
|
-
};exports.default = _default;
|
|
15
|
-
//# sourceMappingURL=parse-arguments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-arguments.js"],"names":["file","details","startPos","pos","code","value","arguments"],"mappings":"gEAAA,gD;;AAEe,CAACA,IAAD,EAAOC,OAAP,KAAmB;AAChC,MAAIA,OAAJ,EAAa;AACX,QAAIC,QAAQ,GAAGD,OAAO,CAACE,GAAvB;;AAEA,QAAIH,IAAI,CAACI,IAAL,CAAUF,QAAV,MAAwB,GAAxB,IAA+BF,IAAI,CAACI,IAAL,CAAUF,QAAQ,GAAG,CAArB,MAA4B,GAA/D,EAAoE;AAClE;AACAA,MAAAA,QAAQ;AACT;;AAED,WAAO,iCAAgBF,IAAhB,EAAuB,KAAIC,OAAO,CAACI,KAAM,GAAzC,EAA6CH,QAAQ,GAAG,CAAxD,EAA2DI,SAAlE;AACD;AACF,C","sourcesContent":["import { parseExpression } from \"@marko/babel-utils\";\n\nexport default (file, details) => {\n if (details) {\n let startPos = details.pos;\n\n if (file.code[startPos] !== \"(\" && file.code[startPos + 1] === \"(\") {\n // Fix bug in htmljs-parser with attribute argument positions\n startPos++;\n }\n\n return parseExpression(file, `_(${details.value})`, startPos - 1).arguments;\n }\n};\n"],"file":"parse-arguments.js"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var t = _interopRequireWildcard(require("../../babel-types"));
|
|
2
|
-
var _babelUtils = require("@marko/babel-utils");
|
|
3
|
-
var _parseArguments = _interopRequireDefault(require("./parse-arguments"));function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function (nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}var _default =
|
|
4
|
-
|
|
5
|
-
(file, attributes, startPos) => {
|
|
6
|
-
const code = file.code;
|
|
7
|
-
let attrEndPos = startPos;
|
|
8
|
-
|
|
9
|
-
return attributes.map((attr) => {
|
|
10
|
-
let attrStartPos = attr.default ?
|
|
11
|
-
attr.pos :
|
|
12
|
-
code.indexOf(attr.name, attrEndPos);
|
|
13
|
-
|
|
14
|
-
if (attr.name.startsWith("...")) {
|
|
15
|
-
let attrExpression = attr.name.slice(3);
|
|
16
|
-
|
|
17
|
-
if (attr.argument) {
|
|
18
|
-
attrExpression += `(${attr.argument.value})`;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
attrEndPos = attrStartPos + attrExpression.length;
|
|
22
|
-
|
|
23
|
-
const value = (0, _babelUtils.parseExpression)(file, attrExpression, attrStartPos + 3);
|
|
24
|
-
|
|
25
|
-
// TODO: Inline merge object literals.
|
|
26
|
-
return (0, _babelUtils.withLoc)(
|
|
27
|
-
file,
|
|
28
|
-
t.markoSpreadAttribute(value),
|
|
29
|
-
attrStartPos,
|
|
30
|
-
attrEndPos);
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const match = /:(.*)$/.exec(attr.name);
|
|
35
|
-
const modifier = match && match[1];
|
|
36
|
-
let name = attr.name;
|
|
37
|
-
let value;
|
|
38
|
-
|
|
39
|
-
if (modifier) {
|
|
40
|
-
name = name.slice(0, name.length - modifier.length - 1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (attr.value) {
|
|
44
|
-
attrEndPos = attr.endPos;
|
|
45
|
-
|
|
46
|
-
if (attr.method) {
|
|
47
|
-
if (code[attrStartPos] !== "(") {
|
|
48
|
-
// fix bug in htmljs parser position.
|
|
49
|
-
attrStartPos = code.indexOf("(", attrStartPos);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (code[attrEndPos] === "}") {
|
|
53
|
-
// fix bug in htmljs parser position.
|
|
54
|
-
attrEndPos++;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const prefix = "function";
|
|
58
|
-
value = (0, _babelUtils.parseExpression)(
|
|
59
|
-
file,
|
|
60
|
-
prefix + code.slice(attrStartPos, attrEndPos), // We use the raw value to ignore things like non standard placeholders.
|
|
61
|
-
attrStartPos - prefix.length);
|
|
62
|
-
|
|
63
|
-
} else {
|
|
64
|
-
const valueStart = attr.pos + 1; // Add one to account for "=".
|
|
65
|
-
const rawValue = code.slice(valueStart, attrEndPos); // We use the raw value to ignore things like non standard placeholders.
|
|
66
|
-
|
|
67
|
-
value = (0, _babelUtils.parseExpression)(file, rawValue, valueStart);
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
attrEndPos = attr.argument ? attr.argument.endPos + 1 : attr.endPos;
|
|
71
|
-
value = t.booleanLiteral(true);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return (0, _babelUtils.withLoc)(
|
|
75
|
-
file,
|
|
76
|
-
t.markoAttribute(
|
|
77
|
-
name,
|
|
78
|
-
value,
|
|
79
|
-
modifier,
|
|
80
|
-
(0, _parseArguments.default)(file, attr.argument),
|
|
81
|
-
Boolean(attr.default),
|
|
82
|
-
Boolean(attr.bound)),
|
|
83
|
-
|
|
84
|
-
attrStartPos,
|
|
85
|
-
attrEndPos);
|
|
86
|
-
|
|
87
|
-
});
|
|
88
|
-
};exports.default = _default;
|
|
89
|
-
//# sourceMappingURL=parse-attributes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-attributes.js"],"names":["file","attributes","startPos","code","attrEndPos","map","attr","attrStartPos","default","pos","indexOf","name","startsWith","attrExpression","slice","argument","value","length","t","markoSpreadAttribute","match","exec","modifier","endPos","method","prefix","valueStart","rawValue","booleanLiteral","markoAttribute","Boolean","bound"],"mappings":"qJAAA;AACA;AACA,2E;;AAEe,CAACA,IAAD,EAAOC,UAAP,EAAmBC,QAAnB,KAAgC;AAC7C,QAAMC,IAAI,GAAGH,IAAI,CAACG,IAAlB;AACA,MAAIC,UAAU,GAAGF,QAAjB;;AAEA,SAAOD,UAAU,CAACI,GAAX,CAAe,CAAAC,IAAI,KAAI;AAC5B,QAAIC,YAAY,GAAGD,IAAI,CAACE,OAAL;AACfF,IAAAA,IAAI,CAACG,GADU;AAEfN,IAAAA,IAAI,CAACO,OAAL,CAAaJ,IAAI,CAACK,IAAlB,EAAwBP,UAAxB,CAFJ;;AAIA,QAAIE,IAAI,CAACK,IAAL,CAAUC,UAAV,CAAqB,KAArB,CAAJ,EAAiC;AAC/B,UAAIC,cAAc,GAAGP,IAAI,CAACK,IAAL,CAAUG,KAAV,CAAgB,CAAhB,CAArB;;AAEA,UAAIR,IAAI,CAACS,QAAT,EAAmB;AACjBF,QAAAA,cAAc,IAAK,IAAGP,IAAI,CAACS,QAAL,CAAcC,KAAM,GAA1C;AACD;;AAEDZ,MAAAA,UAAU,GAAGG,YAAY,GAAGM,cAAc,CAACI,MAA3C;;AAEA,YAAMD,KAAK,GAAG,iCAAgBhB,IAAhB,EAAsBa,cAAtB,EAAsCN,YAAY,GAAG,CAArD,CAAd;;AAEA;AACA,aAAO;AACLP,MAAAA,IADK;AAELkB,MAAAA,CAAC,CAACC,oBAAF,CAAuBH,KAAvB,CAFK;AAGLT,MAAAA,YAHK;AAILH,MAAAA,UAJK,CAAP;;AAMD;;AAED,UAAMgB,KAAK,GAAG,SAASC,IAAT,CAAcf,IAAI,CAACK,IAAnB,CAAd;AACA,UAAMW,QAAQ,GAAGF,KAAK,IAAIA,KAAK,CAAC,CAAD,CAA/B;AACA,QAAIT,IAAI,GAAGL,IAAI,CAACK,IAAhB;AACA,QAAIK,KAAJ;;AAEA,QAAIM,QAAJ,EAAc;AACZX,MAAAA,IAAI,GAAGA,IAAI,CAACG,KAAL,CAAW,CAAX,EAAcH,IAAI,CAACM,MAAL,GAAcK,QAAQ,CAACL,MAAvB,GAAgC,CAA9C,CAAP;AACD;;AAED,QAAIX,IAAI,CAACU,KAAT,EAAgB;AACdZ,MAAAA,UAAU,GAAGE,IAAI,CAACiB,MAAlB;;AAEA,UAAIjB,IAAI,CAACkB,MAAT,EAAiB;AACf,YAAIrB,IAAI,CAACI,YAAD,CAAJ,KAAuB,GAA3B,EAAgC;AAC9B;AACAA,UAAAA,YAAY,GAAGJ,IAAI,CAACO,OAAL,CAAa,GAAb,EAAkBH,YAAlB,CAAf;AACD;;AAED,YAAIJ,IAAI,CAACC,UAAD,CAAJ,KAAqB,GAAzB,EAA8B;AAC5B;AACAA,UAAAA,UAAU;AACX;;AAED,cAAMqB,MAAM,GAAG,UAAf;AACAT,QAAAA,KAAK,GAAG;AACNhB,QAAAA,IADM;AAENyB,QAAAA,MAAM,GAAGtB,IAAI,CAACW,KAAL,CAAWP,YAAX,EAAyBH,UAAzB,CAFH,EAEyC;AAC/CG,QAAAA,YAAY,GAAGkB,MAAM,CAACR,MAHhB,CAAR;;AAKD,OAjBD,MAiBO;AACL,cAAMS,UAAU,GAAGpB,IAAI,CAACG,GAAL,GAAW,CAA9B,CADK,CAC4B;AACjC,cAAMkB,QAAQ,GAAGxB,IAAI,CAACW,KAAL,CAAWY,UAAX,EAAuBtB,UAAvB,CAAjB,CAFK,CAEgD;;AAErDY,QAAAA,KAAK,GAAG,iCAAgBhB,IAAhB,EAAsB2B,QAAtB,EAAgCD,UAAhC,CAAR;AACD;AACF,KA1BD,MA0BO;AACLtB,MAAAA,UAAU,GAAGE,IAAI,CAACS,QAAL,GAAgBT,IAAI,CAACS,QAAL,CAAcQ,MAAd,GAAuB,CAAvC,GAA2CjB,IAAI,CAACiB,MAA7D;AACAP,MAAAA,KAAK,GAAGE,CAAC,CAACU,cAAF,CAAiB,IAAjB,CAAR;AACD;;AAED,WAAO;AACL5B,IAAAA,IADK;AAELkB,IAAAA,CAAC,CAACW,cAAF;AACElB,IAAAA,IADF;AAEEK,IAAAA,KAFF;AAGEM,IAAAA,QAHF;AAIE,iCAAetB,IAAf,EAAqBM,IAAI,CAACS,QAA1B,CAJF;AAKEe,IAAAA,OAAO,CAACxB,IAAI,CAACE,OAAN,CALT;AAMEsB,IAAAA,OAAO,CAACxB,IAAI,CAACyB,KAAN,CANT,CAFK;;AAULxB,IAAAA,YAVK;AAWLH,IAAAA,UAXK,CAAP;;AAaD,GA9EM,CAAP;AA+ED,C","sourcesContent":["import * as t from \"../../babel-types\";\nimport { withLoc, parseExpression } from \"@marko/babel-utils\";\nimport parseArguments from \"./parse-arguments\";\n\nexport default (file, attributes, startPos) => {\n const code = file.code;\n let attrEndPos = startPos;\n\n return attributes.map(attr => {\n let attrStartPos = attr.default\n ? attr.pos\n : code.indexOf(attr.name, attrEndPos);\n\n if (attr.name.startsWith(\"...\")) {\n let attrExpression = attr.name.slice(3);\n\n if (attr.argument) {\n attrExpression += `(${attr.argument.value})`;\n }\n\n attrEndPos = attrStartPos + attrExpression.length;\n\n const value = parseExpression(file, attrExpression, attrStartPos + 3);\n\n // TODO: Inline merge object literals.\n return withLoc(\n file,\n t.markoSpreadAttribute(value),\n attrStartPos,\n attrEndPos\n );\n }\n\n const match = /:(.*)$/.exec(attr.name);\n const modifier = match && match[1];\n let name = attr.name;\n let value;\n\n if (modifier) {\n name = name.slice(0, name.length - modifier.length - 1);\n }\n\n if (attr.value) {\n attrEndPos = attr.endPos;\n\n if (attr.method) {\n if (code[attrStartPos] !== \"(\") {\n // fix bug in htmljs parser position.\n attrStartPos = code.indexOf(\"(\", attrStartPos);\n }\n\n if (code[attrEndPos] === \"}\") {\n // fix bug in htmljs parser position.\n attrEndPos++;\n }\n\n const prefix = \"function\";\n value = parseExpression(\n file,\n prefix + code.slice(attrStartPos, attrEndPos), // We use the raw value to ignore things like non standard placeholders.\n attrStartPos - prefix.length\n );\n } else {\n const valueStart = attr.pos + 1; // Add one to account for \"=\".\n const rawValue = code.slice(valueStart, attrEndPos); // We use the raw value to ignore things like non standard placeholders.\n\n value = parseExpression(file, rawValue, valueStart);\n }\n } else {\n attrEndPos = attr.argument ? attr.argument.endPos + 1 : attr.endPos;\n value = t.booleanLiteral(true);\n }\n\n return withLoc(\n file,\n t.markoAttribute(\n name,\n value,\n modifier,\n parseArguments(file, attr.argument),\n Boolean(attr.default),\n Boolean(attr.bound)\n ),\n attrStartPos,\n attrEndPos\n );\n });\n};\n"],"file":"parse-attributes.js"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.default = void 0;var _babelUtils = require("@marko/babel-utils");
|
|
2
|
-
var t = _interopRequireWildcard(require("../../babel-types"));function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function (nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}var _default =
|
|
3
|
-
|
|
4
|
-
(file, shorthands, attributes) => {
|
|
5
|
-
if (!shorthands) {
|
|
6
|
-
return attributes;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const classAttr = attributes.find(({ name }) => name === "class");
|
|
10
|
-
const classParts = shorthands.map(({ rawParts }) => {
|
|
11
|
-
const nodes = rawParts.map((part) =>
|
|
12
|
-
part.expression ?
|
|
13
|
-
(0, _babelUtils.parseExpression)(file, part.expression, part.pos) :
|
|
14
|
-
(0, _babelUtils.withLoc)(file, t.stringLiteral(part.text), part.pos, part.endPos));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (nodes.length === 1) {
|
|
18
|
-
return nodes[0];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return nodes.reduce((a, b) => t.binaryExpression("+", a, b));
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
let shorthandNode;
|
|
25
|
-
if (classParts.length === 1) {
|
|
26
|
-
shorthandNode = classParts[0];
|
|
27
|
-
} else if (classParts.every((node) => t.isStringLiteral(node))) {
|
|
28
|
-
const combinedStartPos = shorthands[0].rawParts[0].pos;
|
|
29
|
-
const lastParts = shorthands[shorthands.length - 1].rawParts;
|
|
30
|
-
const combinedEndPos = lastParts[lastParts.length - 1].endPos;
|
|
31
|
-
shorthandNode = (0, _babelUtils.withLoc)(
|
|
32
|
-
file,
|
|
33
|
-
t.stringLiteral(classParts.map((node) => node.value).join(" ")),
|
|
34
|
-
combinedStartPos,
|
|
35
|
-
combinedEndPos);
|
|
36
|
-
|
|
37
|
-
} else {
|
|
38
|
-
shorthandNode = t.arrayExpression(classParts);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (classAttr) {
|
|
42
|
-
if (t.isArrayExpression(classAttr.value)) {
|
|
43
|
-
if (t.isArrayExpression(shorthandNode)) {
|
|
44
|
-
classAttr.value.elements.push(...shorthandNode.elements);
|
|
45
|
-
} else {
|
|
46
|
-
classAttr.value.elements.push(shorthandNode);
|
|
47
|
-
}
|
|
48
|
-
} else if (
|
|
49
|
-
t.isStringLiteral(classAttr.value) &&
|
|
50
|
-
t.isStringLiteral(shorthandNode))
|
|
51
|
-
{
|
|
52
|
-
classAttr.value.value = `${shorthandNode.value} ${classAttr.value.value}`;
|
|
53
|
-
} else if (t.isArrayExpression(shorthandNode)) {
|
|
54
|
-
shorthandNode.elements.push(classAttr.value);
|
|
55
|
-
classAttr.value = shorthandNode;
|
|
56
|
-
} else {
|
|
57
|
-
classAttr.value = t.arrayExpression([shorthandNode, classAttr.value]);
|
|
58
|
-
}
|
|
59
|
-
} else {
|
|
60
|
-
attributes.push(t.markoAttribute("class", shorthandNode));
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return attributes;
|
|
64
|
-
};exports.default = _default;
|
|
65
|
-
//# sourceMappingURL=parse-classname-shorthand.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-classname-shorthand.js"],"names":["file","shorthands","attributes","classAttr","find","name","classParts","map","rawParts","nodes","part","expression","pos","t","stringLiteral","text","endPos","length","reduce","a","b","binaryExpression","shorthandNode","every","node","isStringLiteral","combinedStartPos","lastParts","combinedEndPos","value","join","arrayExpression","isArrayExpression","elements","push","markoAttribute"],"mappings":"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","sourcesContent":["import { withLoc, parseExpression } from \"@marko/babel-utils\";\nimport * as t from \"../../babel-types\";\n\nexport default (file, shorthands, attributes) => {\n if (!shorthands) {\n return attributes;\n }\n\n const classAttr = attributes.find(({ name }) => name === \"class\");\n const classParts = shorthands.map(({ rawParts }) => {\n const nodes = rawParts.map(part =>\n part.expression\n ? parseExpression(file, part.expression, part.pos)\n : withLoc(file, t.stringLiteral(part.text), part.pos, part.endPos)\n );\n\n if (nodes.length === 1) {\n return nodes[0];\n }\n\n return nodes.reduce((a, b) => t.binaryExpression(\"+\", a, b));\n });\n\n let shorthandNode;\n if (classParts.length === 1) {\n shorthandNode = classParts[0];\n } else if (classParts.every(node => t.isStringLiteral(node))) {\n const combinedStartPos = shorthands[0].rawParts[0].pos;\n const lastParts = shorthands[shorthands.length - 1].rawParts;\n const combinedEndPos = lastParts[lastParts.length - 1].endPos;\n shorthandNode = withLoc(\n file,\n t.stringLiteral(classParts.map(node => node.value).join(\" \")),\n combinedStartPos,\n combinedEndPos\n );\n } else {\n shorthandNode = t.arrayExpression(classParts);\n }\n\n if (classAttr) {\n if (t.isArrayExpression(classAttr.value)) {\n if (t.isArrayExpression(shorthandNode)) {\n classAttr.value.elements.push(...shorthandNode.elements);\n } else {\n classAttr.value.elements.push(shorthandNode);\n }\n } else if (\n t.isStringLiteral(classAttr.value) &&\n t.isStringLiteral(shorthandNode)\n ) {\n classAttr.value.value = `${shorthandNode.value} ${classAttr.value.value}`;\n } else if (t.isArrayExpression(shorthandNode)) {\n shorthandNode.elements.push(classAttr.value);\n classAttr.value = shorthandNode;\n } else {\n classAttr.value = t.arrayExpression([shorthandNode, classAttr.value]);\n }\n } else {\n attributes.push(t.markoAttribute(\"class\", shorthandNode));\n }\n\n return attributes;\n};\n"],"file":"parse-classname-shorthand.js"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.default = void 0;var _babelUtils = require("@marko/babel-utils");
|
|
2
|
-
var t = _interopRequireWildcard(require("../../babel-types"));function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function (nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}var _default =
|
|
3
|
-
|
|
4
|
-
(file, shorthand, attributes) => {
|
|
5
|
-
if (!shorthand) {
|
|
6
|
-
return attributes;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const idAttr = attributes.find(({ name }) => name === "id");
|
|
10
|
-
if (idAttr) {
|
|
11
|
-
throw file.buildCodeFrameError(
|
|
12
|
-
idAttr,
|
|
13
|
-
"Cannot have shorthand id and id attribute.");
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const idParts = shorthand.rawParts.map((part) =>
|
|
18
|
-
part.expression ?
|
|
19
|
-
(0, _babelUtils.parseExpression)(file, part.expression, part.pos) :
|
|
20
|
-
(0, _babelUtils.withLoc)(file, t.stringLiteral(part.text), part.pos, part.endPos));
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
attributes.push(
|
|
24
|
-
t.markoAttribute(
|
|
25
|
-
"id",
|
|
26
|
-
idParts.length === 1 ?
|
|
27
|
-
idParts[0] :
|
|
28
|
-
idParts.reduce((a, b) => t.binaryExpression("+", a, b))));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return attributes;
|
|
33
|
-
};exports.default = _default;
|
|
34
|
-
//# sourceMappingURL=parse-id-shorthand.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-id-shorthand.js"],"names":["file","shorthand","attributes","idAttr","find","name","buildCodeFrameError","idParts","rawParts","map","part","expression","pos","t","stringLiteral","text","endPos","push","markoAttribute","length","reduce","a","b","binaryExpression"],"mappings":"gEAAA;AACA,8D;;AAEe,CAACA,IAAD,EAAOC,SAAP,EAAkBC,UAAlB,KAAiC;AAC9C,MAAI,CAACD,SAAL,EAAgB;AACd,WAAOC,UAAP;AACD;;AAED,QAAMC,MAAM,GAAGD,UAAU,CAACE,IAAX,CAAgB,CAAC,EAAEC,IAAF,EAAD,KAAcA,IAAI,KAAK,IAAvC,CAAf;AACA,MAAIF,MAAJ,EAAY;AACV,UAAMH,IAAI,CAACM,mBAAL;AACJH,IAAAA,MADI;AAEJ,gDAFI,CAAN;;AAID;;AAED,QAAMI,OAAO,GAAGN,SAAS,CAACO,QAAV,CAAmBC,GAAnB,CAAuB,CAAAC,IAAI;AACzCA,EAAAA,IAAI,CAACC,UAAL;AACI,mCAAgBX,IAAhB,EAAsBU,IAAI,CAACC,UAA3B,EAAuCD,IAAI,CAACE,GAA5C,CADJ;AAEI,2BAAQZ,IAAR,EAAca,CAAC,CAACC,aAAF,CAAgBJ,IAAI,CAACK,IAArB,CAAd,EAA0CL,IAAI,CAACE,GAA/C,EAAoDF,IAAI,CAACM,MAAzD,CAHU,CAAhB;;;AAMAd,EAAAA,UAAU,CAACe,IAAX;AACEJ,EAAAA,CAAC,CAACK,cAAF;AACE,MADF;AAEEX,EAAAA,OAAO,CAACY,MAAR,KAAmB,CAAnB;AACIZ,EAAAA,OAAO,CAAC,CAAD,CADX;AAEIA,EAAAA,OAAO,CAACa,MAAR,CAAe,CAACC,CAAD,EAAIC,CAAJ,KAAUT,CAAC,CAACU,gBAAF,CAAmB,GAAnB,EAAwBF,CAAxB,EAA2BC,CAA3B,CAAzB,CAJN,CADF;;;;AASA,SAAOpB,UAAP;AACD,C","sourcesContent":["import { withLoc, parseExpression } from \"@marko/babel-utils\";\nimport * as t from \"../../babel-types\";\n\nexport default (file, shorthand, attributes) => {\n if (!shorthand) {\n return attributes;\n }\n\n const idAttr = attributes.find(({ name }) => name === \"id\");\n if (idAttr) {\n throw file.buildCodeFrameError(\n idAttr,\n \"Cannot have shorthand id and id attribute.\"\n );\n }\n\n const idParts = shorthand.rawParts.map(part =>\n part.expression\n ? parseExpression(file, part.expression, part.pos)\n : withLoc(file, t.stringLiteral(part.text), part.pos, part.endPos)\n );\n\n attributes.push(\n t.markoAttribute(\n \"id\",\n idParts.length === 1\n ? idParts[0]\n : idParts.reduce((a, b) => t.binaryExpression(\"+\", a, b))\n )\n );\n\n return attributes;\n};\n"],"file":"parse-id-shorthand.js"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.default = void 0;var _babelUtils = require("@marko/babel-utils");var _default =
|
|
2
|
-
|
|
3
|
-
(file, details) => {
|
|
4
|
-
if (details) {
|
|
5
|
-
return (0, _babelUtils.parseExpression)(file, `(${details.value})=>{}`, details.pos).params;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
return [];
|
|
9
|
-
};exports.default = _default;
|
|
10
|
-
//# sourceMappingURL=parse-params.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-params.js"],"names":["file","details","value","pos","params"],"mappings":"gEAAA,gD;;AAEe,CAACA,IAAD,EAAOC,OAAP,KAAmB;AAChC,MAAIA,OAAJ,EAAa;AACX,WAAO,iCAAgBD,IAAhB,EAAuB,IAAGC,OAAO,CAACC,KAAM,OAAxC,EAAgDD,OAAO,CAACE,GAAxD,EAA6DC,MAApE;AACD;;AAED,SAAO,EAAP;AACD,C","sourcesContent":["import { parseExpression } from \"@marko/babel-utils\";\n\nexport default (file, details) => {\n if (details) {\n return parseExpression(file, `(${details.value})=>{}`, details.pos).params;\n }\n\n return [];\n};\n"],"file":"parse-params.js"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.default = void 0;var _babelUtils = require("@marko/babel-utils");var _default =
|
|
2
|
-
|
|
3
|
-
(file, details) => {
|
|
4
|
-
if (details) {
|
|
5
|
-
return (0, _babelUtils.parseExpression)(file, `${details.value}=1`, details.pos + 1).left;
|
|
6
|
-
}
|
|
7
|
-
};exports.default = _default;
|
|
8
|
-
//# sourceMappingURL=parse-var.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/parse-var.js"],"names":["file","details","value","pos","left"],"mappings":"gEAAA,gD;;AAEe,CAACA,IAAD,EAAOC,OAAP,KAAmB;AAChC,MAAIA,OAAJ,EAAa;AACX,WAAO,iCAAgBD,IAAhB,EAAuB,GAAEC,OAAO,CAACC,KAAM,IAAvC,EAA4CD,OAAO,CAACE,GAAR,GAAc,CAA1D,EAA6DC,IAApE;AACD;AACF,C","sourcesContent":["import { parseExpression } from \"@marko/babel-utils\";\n\nexport default (file, details) => {\n if (details) {\n return parseExpression(file, `${details.value}=1`, details.pos + 1).left;\n }\n};\n"],"file":"parse-var.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/babel-plugin/util/plugin-hooks.js"],"names":["enter","plugin","args","fn","default","exit","undefined"],"mappings":"kFAAA;;AAEO,SAASA,KAAT,CAAeC,MAAf,EAAuB,GAAGC,IAA1B,EAAgC;AACrC,QAAMC,EAAE;AACLF,EAAAA,MAAM;AACJA,EAAAA,MAAM,CAACD,KAAP;AACEC,EAAAA,MAAM,CAACG,OAAP,IAAkBH,MAAM,CAACG,OAAP,CAAeJ,KADnC;AAECC,EAAAA,MAAM,CAACG,OAHJ,CAAP;AAIAH,EAAAA,MALF;AAMA,MAAI,OAAOE,EAAP,KAAc,UAAlB,EAA8B;AAC5BA,IAAAA,EAAE,CAAC,GAAGD,IAAJ,CAAF;AACD;AACF;;AAEM,SAASG,IAAT,CAAcJ,MAAd,EAAsB,GAAGC,IAAzB,EAA+B;AACpC,QAAMC,EAAE;AACNF,EAAAA,MAAM;AACLA,EAAAA,MAAM,CAACI,IAAP,KAAgBJ,MAAM,CAACG,OAAP,GAAiBH,MAAM,CAACG,OAAP,CAAeC,IAAhC,GAAuCC,SAAvD,CADK,CADR;AAGA,MAAI,OAAOH,EAAP,KAAc,UAAlB,EAA8B;AAC5BA,IAAAA,EAAE,CAAC,GAAGD,IAAJ,CAAF;AACD;AACF","sourcesContent":["// Utilities for executing multi step compiler hooks (migrators & transformers).\n\nexport function enter(plugin, ...args) {\n const fn =\n (plugin &&\n (plugin.enter ||\n (plugin.default && plugin.default.enter) ||\n plugin.default)) ||\n plugin;\n if (typeof fn === \"function\") {\n fn(...args);\n }\n}\n\nexport function exit(plugin, ...args) {\n const fn =\n plugin &&\n (plugin.exit || (plugin.default ? plugin.default.exit : undefined));\n if (typeof fn === \"function\") {\n fn(...args);\n }\n}\n"],"file":"plugin-hooks.js"}
|