@marko/compiler 5.20.9 → 5.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/babel-plugin/file.js +1 -2
- package/dist/babel-plugin/index.js +1 -2
- package/dist/babel-plugin/parser.js +1 -2
- 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 +1 -2
- 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/traverse.d.ts +2 -0
- package/dist/util/should-optimize.js +1 -2
- package/dist/util/try-load-translator.js +1 -2
- package/index.d.ts +16 -8
- package/package.json +5 -6
- 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/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
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
require("./traverse/patch");
|
|
3
3
|
require("./generator/patch");
|
|
4
4
|
var _types = require("@babel/types");Object.keys(_types).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;if (key in exports && exports[key] === _types[key]) return;exports[key] = _types[key];});
|
|
5
|
-
var _definitions = require("./types/definitions");exports.MARKO_TYPES = _definitions.MARKO_TYPES;
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
5
|
+
var _definitions = require("./types/definitions");exports.MARKO_TYPES = _definitions.MARKO_TYPES;
|
|
@@ -190,5 +190,4 @@ MarkoDefinitions;exports.default = _default;
|
|
|
190
190
|
const MARKO_TYPES = Object.keys(MarkoDefinitions);exports.MARKO_TYPES = MARKO_TYPES;
|
|
191
191
|
const MARKO_ALIAS_TYPES = Array.from(
|
|
192
192
|
new Set(
|
|
193
|
-
MARKO_TYPES.reduce((all, t) => all.concat(MarkoDefinitions[t].aliases), [])));exports.MARKO_ALIAS_TYPES = MARKO_ALIAS_TYPES;
|
|
194
|
-
//# sourceMappingURL=definitions.js.map
|
|
193
|
+
MARKO_TYPES.reduce((all, t) => all.concat(MarkoDefinitions[t].aliases), [])));exports.MARKO_ALIAS_TYPES = MARKO_ALIAS_TYPES;
|
package/dist/config.js
CHANGED
|
@@ -195,5 +195,4 @@ var _fs2 = require("./taglib/fs");let config;const globalThis = typeof window ==
|
|
|
195
195
|
* A regexp or function that receives an import path that matches file types known to be client side assets.
|
|
196
196
|
*/hydrateIncludeImports: /\.(css|less|s[ac]ss|styl|png|jpe?g|gif|svg|ico|webp|avif|mp4|webm|ogg|mp3|wav|flac|aac|woff2?|eot|ttf|otf)$/, /**
|
|
197
197
|
* Set to true in order to bring in the hot module replacement runtime.
|
|
198
|
-
*/hot: false };if (process.env.MARKO_CONFIG) {Object.assign(config, JSON.parse(process.env.MARKO_CONFIG));}}var _default = config;exports.default = _default;(0, _fs2.setFS)(config.fileSystem);
|
|
199
|
-
//# sourceMappingURL=config.js.map
|
|
198
|
+
*/hot: false };if (process.env.MARKO_CONFIG) {Object.assign(config, JSON.parse(process.env.MARKO_CONFIG));}}var _default = config;exports.default = _default;(0, _fs2.setFS)(config.fileSystem);
|
package/dist/index.js
CHANGED
package/dist/register.js
CHANGED
package/dist/taglib/fs.js
CHANGED
package/dist/taglib/index.js
CHANGED
|
@@ -34,5 +34,4 @@ exports.clearCache = clearCache;
|
|
|
34
34
|
exports.createTaglib = createTaglib;
|
|
35
35
|
exports.loadTaglibFromProps = loadTaglibFromProps;
|
|
36
36
|
exports.loadTaglibFromFile = loadTaglibFromFile;
|
|
37
|
-
exports.loadTag = loadTag;
|
|
38
|
-
//# sourceMappingURL=index.js.map
|
|
37
|
+
exports.loadTag = loadTag;
|
|
@@ -240,5 +240,4 @@ loadAttributeFromProps.isSupportedProperty = function (name) {
|
|
|
240
240
|
return hasOwnProperty.call(AttrLoader.prototype, name);
|
|
241
241
|
};
|
|
242
242
|
|
|
243
|
-
module.exports = loadAttributeFromProps;
|
|
244
|
-
//# sourceMappingURL=loadAttributeFromProps.js.map
|
|
243
|
+
module.exports = loadAttributeFromProps;
|
|
@@ -555,5 +555,4 @@ function loadTagFromProps(tag, tagProps, dependencyChain) {
|
|
|
555
555
|
|
|
556
556
|
module.exports = loadTagFromProps;
|
|
557
557
|
|
|
558
|
-
loadTagFromProps.isSupportedProperty = isSupportedProperty;
|
|
559
|
-
//# sourceMappingURL=loadTagFromProps.js.map
|
|
558
|
+
loadTagFromProps.isSupportedProperty = isSupportedProperty;
|
|
@@ -20,5 +20,4 @@ exports.loadTaglibFromProps = require("./loadTaglibFromProps");
|
|
|
20
20
|
exports.loadTaglibFromFile = require("./loadTaglibFromFile");
|
|
21
21
|
exports.loadAttributes = require("./loadAttributes");
|
|
22
22
|
exports.isSupportedAttributeProperty = isSupportedAttributeProperty;
|
|
23
|
-
exports.isSupportedTagProperty = isSupportedTagProperty;
|
|
24
|
-
//# sourceMappingURL=loaders.js.map
|
|
23
|
+
exports.isSupportedTagProperty = isSupportedTagProperty;
|
package/dist/traverse.d.ts
CHANGED
|
@@ -553,6 +553,8 @@ export class NodePath<T = Node> {
|
|
|
553
553
|
context?: boolean | TraversalContext,
|
|
554
554
|
): T[K] extends Array<Node | null | undefined>
|
|
555
555
|
? Array<NodePath<T[K][number]>>
|
|
556
|
+
: T[K] extends Array<Node | null | undefined> | null | undefined
|
|
557
|
+
? Array<NodePath<NonNullable<T[K]>[number]>> | NodePath<null | undefined>
|
|
556
558
|
: T[K] extends Node | null | undefined
|
|
557
559
|
? NodePath<T[K]>
|
|
558
560
|
: never;
|
package/index.d.ts
CHANGED
|
@@ -25,7 +25,12 @@ export type Config = {
|
|
|
25
25
|
translator?: any;
|
|
26
26
|
fileSystem?: typeof import("fs");
|
|
27
27
|
modules?: "esm" | "cjs";
|
|
28
|
-
resolveVirtualDependency?:
|
|
28
|
+
resolveVirtualDependency?:
|
|
29
|
+
| ((
|
|
30
|
+
filename: string,
|
|
31
|
+
dep: { virtualPath: string; code: string; map?: SourceMap }
|
|
32
|
+
) => string)
|
|
33
|
+
| null;
|
|
29
34
|
hydrateIncludeImports?: RegExp | ((request: string) => boolean);
|
|
30
35
|
optimize?: boolean;
|
|
31
36
|
cache?: Map<unknown, unknown>;
|
|
@@ -48,10 +53,7 @@ export type MarkoMeta = {
|
|
|
48
53
|
component?: string;
|
|
49
54
|
watchFiles: string[];
|
|
50
55
|
tags?: string[];
|
|
51
|
-
deps: Array<
|
|
52
|
-
| string
|
|
53
|
-
| Dep
|
|
54
|
-
>;
|
|
56
|
+
deps: Array<string | Dep>;
|
|
55
57
|
};
|
|
56
58
|
|
|
57
59
|
export type CompileResult = {
|
|
@@ -85,12 +87,18 @@ export function compileFileSync(
|
|
|
85
87
|
config?: Config
|
|
86
88
|
): CompileResult;
|
|
87
89
|
|
|
88
|
-
export function getRuntimeEntryFiles(
|
|
90
|
+
export function getRuntimeEntryFiles(
|
|
91
|
+
output: string,
|
|
92
|
+
translator?: string | undefined
|
|
93
|
+
): string[];
|
|
89
94
|
|
|
90
95
|
export namespace taglib {
|
|
91
96
|
export function excludeDir(dirname: string): void;
|
|
92
97
|
export function excludePackage(packageName: string): void;
|
|
93
|
-
export function register(id: string, props: { [x:string]: unknown }): void;
|
|
94
|
-
export function buildLookup(
|
|
98
|
+
export function register(id: string, props: { [x: string]: unknown }): void;
|
|
99
|
+
export function buildLookup(
|
|
100
|
+
dirname: string,
|
|
101
|
+
translator?: unknown
|
|
102
|
+
): TaglibLookup;
|
|
95
103
|
export function clearCaches(): void;
|
|
96
104
|
}
|
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.2",
|
|
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.1",
|
|
17
17
|
"complain": "^1.6.0",
|
|
18
18
|
"he": "^1.2.0",
|
|
19
|
-
"htmljs-parser": "^3.3.
|
|
19
|
+
"htmljs-parser": "^3.3.4",
|
|
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.1"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
@@ -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": "637f064c6c8c5c9767d2f6e8a645937eca874a49"
|
|
61
|
+
"types": "index.d.ts"
|
|
63
62
|
}
|
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","scope","crawl","rootMigrators","migrator","migrators","migrate","rootTransformers","transformer","transformers","transform","taglibId","filePath","length","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":"yLAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iF;;AAEA,MAAMA,YAAY,GAAG,IAAIC,OAAJ,EAArB,C;;AAEe,CAACC,GAAD,EAAMC,SAAN,KAAoB;AACjCD,EAAAA,GAAG,CAACE,aAAJ,CAAkB,CAAlB;AACA,QAAMC,UAAU,GAAIF,SAAS,CAACE,UAAV,GAAuB;AACzCF,EAAAA,SAAS,CAACE,UAD+B,CAA3C;;AAGAF,EAAAA,SAAS,CAACG,MAAV,GAAmBH,SAAS,CAACG,MAAV,IAAoB,MAAvC;;AAEA,MAAIH,SAAS,CAACI,QAAV,KAAuBC,SAA3B,EAAsC;AACpCN,IAAAA,GAAG,CAACO,KAAJ,CAAUC,KAAV,CAAgBC,uBAAhB;AACAR,IAAAA,SAAS,CAACI,QAAV,GAAqB,8BAArB;AACD;;AAED,MAAI,CAACF,UAAD,IAAe,CAACA,UAAU,CAACO,SAA/B,EAA0C;AACxC,UAAM,IAAIC,KAAJ;AACJ,yEADI,CAAN;;AAGD;;AAED;AACEV,EAAAA,SAAS,CAACG,MAAV,KAAqB,SAArB;AACA,SAAOH,SAAS,CAACW,wBAAjB,KAA8C,UAFhD;AAGE;AACA,UAAM,IAAID,KAAJ;AACH,uGADG,CAAN;;AAGD;;AAED,MAAIE,OAAJ;;AAEA,SAAO;AACLC,IAAAA,IAAI,EAAE,OADD;AAELC,IAAAA,iBAAiB,CAACC,IAAD,EAAO;AACtBH,MAAAA,OAAO,GAAGG,IAAV;AACD,KAJI;AAKLC,IAAAA,cAAc,CAACC,IAAD,EAAO;AACnB,UAAIC,MAAM,GAAGC,SAAb;AACA,qBAAMnB,SAAS,CAACoB,UAAhB;AACA,UAAI;AACF,cAAMC,IAAI,GAAGC,YAAY,CAACL,IAAD,EAAOL,OAAP,EAAgBZ,SAAhB,CAAzB;AACA,cAAMuB,QAAQ,GAAGC,CAAC,CAACC,SAAF,CAAYJ,IAAI,CAACK,GAAjB,EAAsB,IAAtB,CAAjB;AACA7B,QAAAA,YAAY,CAAC8B,GAAb,CAAiBJ,QAAjB,EAA2BF,IAA3B;AACA,eAAOE,QAAP;AACD,OALD,SAKU;AACR,uBAAML,MAAN;AACD;AACF,KAhBI;AAiBLU,IAAAA,GAAG,CAACP,IAAD,EAAO;AACR,UAAIH,MAAM,GAAGC,SAAb;AACAP,MAAAA,OAAO,GAAGP,SAAV;AACA,qBAAML,SAAS,CAACoB,UAAhB;AACA,UAAI;AACF,YAAIpB,SAAS,CAACG,MAAV,KAAqB,QAArB,IAAiCH,SAAS,CAACG,MAAV,KAAqB,SAA1D,EAAqE;AACnE,iBAAOkB,IAAP;AACD;;AAED,cAAM,EAAEK,GAAF,EAAOG,QAAP,KAAoBR,IAA1B;AACA,cAAMS,UAAU,GAAGjC,YAAY,CAACkC,GAAb,CAAiBL,GAAjB,CAAnB;AACA,cAAMM,YAAY,GAAGF,UAAU,CAACG,eAAhC;AACA,cAAMC,eAAe,GAAG,EAAxB;AACA,cAAM,EAAEC,mBAAF,KAA0Bd,IAAhC;AACA,cAAM,EAAEe,UAAF,KAAiBf,IAAI,CAACgB,GAA5B;AACAR,QAAAA,QAAQ,CAACS,KAAT,GAAiBC,YAAY,CAACT,UAAU,CAACD,QAAX,CAAoBS,KAArB,CAA7B;AACAjB,QAAAA,IAAI,CAACc,mBAAL,GAA2BK,gBAAUC,SAAV,CAAoBN,mBAA/C;AACAd,QAAAA,IAAI,CAACgB,GAAL,CAASD,UAAT,GAAsBf,IAAI,CAACc,mBAAL,CAAyBO,IAAzB,CAA8BrB,IAA9B,CAAtB;AACAA,QAAAA,IAAI,CAACrB,SAAL,GAAiBA,SAAjB;AACAqB,QAAAA,IAAI,CAACY,eAAL,GAAuBD,YAAvB;AACAX,QAAAA,IAAI,CAACsB,eAAL,GAAuBrB,YAAvB;;AAEA,YAAItB,SAAS,CAACG,MAAV,KAAqB,SAAzB,EAAoC;AAClC,eAAK,MAAMyC,EAAX,IAAiBZ,YAAY,CAACa,WAA9B,EAA2C;AACzCC,YAAAA,SAAS;AACPjB,YAAAA,QAAQ,CAACS,KADF;AAEPJ,YAAAA,eAFO;AAGPF,YAAAA,YAAY,CAACa,WAAb,CAAyBD,EAAzB,EAA6B1C,UAHtB,CAAT;;AAKD;AACF;;AAEDgC,QAAAA,eAAe,CAACa,IAAhB,CAAqB7C,UAAU,CAACO,SAAhC;AACAuC,QAAAA,WAAW,CAAC3B,IAAD,EAAOa,eAAP,CAAX;AACAb,QAAAA,IAAI,CAACc,mBAAL,GAA2BA,mBAA3B;AACAd,QAAAA,IAAI,CAACgB,GAAL,CAASD,UAAT,GAAsBA,UAAtB;AACAf,QAAAA,IAAI,CAACrB,SAAL;AACEqB,QAAAA,IAAI,CAACY,eAAL;AACAZ,QAAAA,IAAI,CAACsB,eAAL;AACEtC,QAAAA,SAHJ;;AAKAwB,QAAAA,QAAQ,CAACS,KAAT,CAAeW,UAAf,GAA4BpB,QAAQ,CAACS,KAAT,CAAeW,UAAf,CAA0BC,MAA1B,CAAiCC,MAAjC,CAA5B;AACD,OAtCD,SAsCU;AACR,uBAAMjC,MAAN;AACD;AACF,KA9DI,EAAP;;AAgED,C;;AAEM,SAASI,YAAT,CAAsBL,IAAtB,EAA4BmC,QAA5B,EAAsCpD,SAAtC,EAAiD;AACtD,QAAM,EAAEE,UAAF,KAAiBF,SAAvB;AACA,MAAIqD,YAAY,GAAGrD,SAAS,CAACM,KAAV,CAAgByB,GAAhB,CAAoB7B,UAApB,CAAnB;;AAEA,MAAI,CAACmD,YAAL,EAAmB;AACjBrD,IAAAA,SAAS,CAACM,KAAV,CAAgBqB,GAAhB,CAAoBzB,UAApB,EAAiCmD,YAAY,GAAG,IAAIC,GAAJ,EAAhD;AACD;;AAED,QAAM,EAAEC,QAAF,KAAeH,QAArB;AACA,QAAMI,QAAQ,GAAGxD,SAAS,CAACG,MAAV,KAAqB,QAAtC;AACA,QAAMsD,SAAS,GAAGzD,SAAS,CAACG,MAAV,KAAqB,SAAvC;AACA,QAAMuD,QAAQ,GAAG,EAAEF,QAAQ,IAAIC,SAAd,CAAjB;AACA,QAAMb,EAAE,GAAG,+BAAc5C,SAAS,CAACI,QAAxB,EAAkCmD,QAAlC,CAAX;AACA,QAAMI,WAAW,GAAGD,QAAQ,IAAI,wBAAW,KAAX,EAAkBE,MAAlB,CAAyB3C,IAAzB,EAA+B4C,MAA/B,CAAsC,KAAtC,CAAhC;AACA,QAAMC,QAAQ,GAAGJ,QAAQ,IAAI,wBAAW,KAAX,EAAkBE,MAAlB,CAAyBhB,EAAzB,EAA6BiB,MAA7B,CAAoC,KAApC,CAA7B;;AAEA,MAAIE,MAAM,GAAGL,QAAQ,IAAIL,YAAY,CAACtB,GAAb,CAAiB+B,QAAjB,CAAzB;;AAEA,MAAIC,MAAJ,EAAY;AACV,QAAIA,MAAM,CAACJ,WAAP,KAAuBA,WAA3B,EAAwC;AACtC;AACAI,MAAAA,MAAM,GAAG1D,SAAT;AACD,KAHD,MAGO;AACL,WAAK,MAAM2D,SAAX,IAAwBD,MAAM,CAAC1C,IAAP,CAAYQ,QAAZ,CAAqBS,KAArB,CAA2BW,UAAnD,EAA+D;AAC7D,YAAIgB,KAAK,GAAGC,QAAZ;AACA,YAAI;AACFD,UAAAA,KAAK,GAAGjE,SAAS,CAACoB,UAAV,CAAqB+C,QAArB,CAA8BH,SAA9B,EAAyCC,KAAjD;AACA;AACD,SAHD,CAGE,MAAM,CAAE;;AAEV,YAAIA,KAAK,GAAGF,MAAM,CAACK,IAAnB,EAAyB;AACvB;AACAL,UAAAA,MAAM,GAAG1D,SAAT;AACA;AACD;AACF;AACF;AACF;;AAED,MAAI0D,MAAJ,EAAY;AACV,WAAOA,MAAM,CAAC1C,IAAd;AACD;;AAED,QAAMW,YAAY,GAAG,yBAAYqC,cAAKC,OAAL,CAAaf,QAAb,CAAZ,EAAoCrD,UAApC,CAArB;;AAEA,QAAMmB,IAAI,GAAG,IAAImB,eAAJ,CAAcY,QAAd,EAAwB;AACnCnC,IAAAA,IADmC;AAEnCS,IAAAA,GAAG,EAAE;AACH6C,MAAAA,IAAI,EAAE,MADH;AAEHC,MAAAA,OAAO,EAAE;AACPD,QAAAA,IAAI,EAAE,SADC;AAEPE,QAAAA,UAAU,EAAE,QAFL;AAGPC,QAAAA,IAAI,EAAE,EAHC;AAIPC,QAAAA,UAAU,EAAE,EAJL,EAFN,EAF8B,EAAxB,CAAb;;;;;AAaA,QAAMC,IAAI,GAAIvD,IAAI,CAACQ,QAAL,CAAcS,KAAd,GAAsB;AAClCM,IAAAA,EADkC;AAElCiC,IAAAA,MAAM,EAAE,EAF0B;AAGlCC,IAAAA,IAAI,EAAE,EAH4B;AAIlCC,IAAAA,IAAI,EAAE,EAJ4B;AAKlC9B,IAAAA,UAAU,EAAE,EALsB,EAApC;;;AAQA5B,EAAAA,IAAI,CAACrB,SAAL,GAAiBA,SAAjB;AACAqB,EAAAA,IAAI,CAACY,eAAL,GAAuBD,YAAvB;AACAX,EAAAA,IAAI,CAACsB,eAAL,GAAuBrB,YAAvB;;AAEA,0BAAWD,IAAX;;AAEA,MAAImC,QAAJ,EAAc;AACZ,WAAOnC,IAAP;AACD;;AAEDA,EAAAA,IAAI,CAACgD,IAAL,CAAUW,KAAV,CAAgBC,KAAhB,GA5EsD,CA4E7B;;AAEzB,QAAMC,aAAa,GAAG,EAAtB;AACA,OAAK,MAAMtC,EAAX,IAAiBZ,YAAY,CAACa,WAA9B,EAA2C;AACzC,SAAK,MAAMsC,QAAX,IAAuBnD,YAAY,CAACa,WAAb,CAAyBD,EAAzB,EAA6BwC,SAApD,EAA+D;AAC7DtC,MAAAA,SAAS,CAAC8B,IAAD,EAAOM,aAAP,EAAsBC,QAAtB,CAAT;AACD;AACF;;AAEDD,EAAAA,aAAa,CAACnC,IAAd,CAAmBsC,gBAAnB;AACArC,EAAAA,WAAW,CAAC3B,IAAD,EAAO6D,aAAP,CAAX;;AAEA,MAAIzB,SAAJ,EAAe;AACb,WAAOpC,IAAP;AACD;;AAED,QAAMiE,gBAAgB,GAAG,EAAzB;AACA,OAAK,MAAM1C,EAAX,IAAiBZ,YAAY,CAACa,WAA9B,EAA2C;AACzC,SAAK,MAAM0C,WAAX,IAA0BvD,YAAY,CAACa,WAAb,CAAyBD,EAAzB,EAA6B4C,YAAvD,EAAqE;AACnE1C,MAAAA,SAAS,CAAC8B,IAAD,EAAOU,gBAAP,EAAyBC,WAAzB,CAAT;AACD;AACF;;AAEDD,EAAAA,gBAAgB,CAACvC,IAAjB,CAAsB0C,kBAAtB;AACAzC,EAAAA,WAAW,CAAC3B,IAAD,EAAOiE,gBAAP,CAAX;;AAEA,OAAK,MAAMI,QAAX,IAAuB1D,YAAY,CAACa,WAApC,EAAiD;AAC/C,UAAM,EAAE8C,QAAF,KAAe3D,YAAY,CAACa,WAAb,CAAyB6C,QAAzB,CAArB;;AAEA;AACEC,IAAAA,QAAQ,CAACA,QAAQ,CAACC,MAAT,GAAkB,CAAnB,CAAR,KAAkC,GAAlC;AACAD,IAAAA,QAAQ,CAACE,QAAT,CAAkB,YAAlB,CAFF;AAGE;AACAjB,MAAAA,IAAI,CAAC3B,UAAL,CAAgBF,IAAhB,CAAqB4C,QAArB;AACD;AACF;;AAEDtC,EAAAA,YAAY,CAAC1B,GAAb,CAAiBmC,QAAjB,EAA2B;AACzBM,IAAAA,IAAI,EAAE0B,IAAI,CAACC,GAAL,EADmB;AAEzB1E,IAAAA,IAFyB;AAGzBsC,IAAAA,WAHyB,EAA3B;;;AAMA,MAAIzD,UAAU,CAAC8F,OAAf,EAAwB;AACtB,QAAI;AACFhD,MAAAA,WAAW,CAAC3B,IAAD,EAAOnB,UAAU,CAAC8F,OAAlB,CAAX;AACD,KAFD,CAEE,OAAOC,CAAP,EAAU;AACV5C,MAAAA,YAAY,CAAC6C,MAAb,CAAoBpC,QAApB;AACA,YAAMmC,CAAN;AACD;AACF;;AAED,SAAO5E,IAAP;AACD;;AAED,SAASkB,YAAT,CAAsB4D,IAAtB,EAA4B;AAC1B,QAAMC,KAAK,GAAG,EAAd;;AAEA,OAAK,MAAMC,GAAX,IAAkBF,IAAlB,EAAwB;AACtB,UAAMG,CAAC,GAAGH,IAAI,CAACE,GAAD,CAAd;;AAEA,QAAIC,CAAC,KAAKjG,SAAV,EAAqB;AACnB,UAAIiG,CAAC,KAAK,IAAN,IAAc,OAAOA,CAAP,KAAa,QAA/B,EAAyC;AACvCF,QAAAA,KAAK,CAACC,GAAD,CAAL,GAAaC,CAAb;AACD,OAFD,MAEO;AACL,cAAMC,IAAI,GAAGD,CAAC,CAACE,WAAf;;AAEA,gBAAQD,IAAR;AACE,eAAKE,KAAL;AACEL,YAAAA,KAAK,CAACC,GAAD,CAAL,GAAa,CAAC,GAAGC,CAAJ,CAAb;AACA;AACF,eAAKI,MAAL;AACA,eAAK,IAAL;AACEN,YAAAA,KAAK,CAACC,GAAD,CAAL,GAAa,EAAE,GAAGC,CAAL,EAAb;AACA;AACF,eAAKhD,GAAL;AACA,eAAKqD,GAAL;AACA,eAAKb,IAAL;AACA,eAAKc,MAAL;AACER,YAAAA,KAAK,CAACC,GAAD,CAAL,GAAa,IAAIE,IAAJ,CAASD,CAAT,CAAb;AACA;;AAEF;AACE,kBAAM,IAAI5F,KAAJ,CAAW,gCAA+B6F,IAAI,CAAC1F,IAAK,EAApD,CAAN,CAhBJ;;AAkBD;AACF;AACF;;AAED,SAAOuF,KAAP;AACD;;AAED,SAASS,aAAT,CAAuBC,GAAvB,EAA4B;AAC1B,MAAIL,KAAK,CAACM,OAAN,CAAcD,GAAd,CAAJ,EAAwB;AACtB,QAAIA,GAAG,CAAClB,MAAJ,KAAe,CAAnB,EAAsB;AACpBkB,MAAAA,GAAG,GAAGA,GAAG,CAAC,CAAD,CAAT;AACD,KAFD,MAEO;AACL,aAAOE,mBAASC,KAAT,CAAeH,GAAf,CAAP;AACD;AACF;;AAED,SAAOE,mBAASE,OAAT,CAAiBJ,GAAjB,CAAP;AACD;;AAED,SAAS9D,WAAT,CAAqB3B,IAArB,EAA2B2F,QAA3B,EAAqC;AACnC,QAAMxC,OAAO,GAAGnD,IAAI,CAACgD,IAArB;AACA,QAAM,EAAE8C,OAAF,EAAW,GAAGC,cAAd,KAAiCP,aAAa,CAACG,QAAD,CAApD;AACAxC,EAAAA,OAAO,CAAC6C,KAAR,GAAgB,EAAhB;;AAEA;AACA;AACA,MAAI,EAAEF,OAAO,IAAIA,OAAO,CAACG,KAAnB,IAA4B9C,OAAO,CAAC+C,KAAR,CAAcJ,OAAO,CAACG,KAAtB,CAA9B,CAAJ,EAAiE;AAC/D9C,IAAAA,OAAO,CAACgD,QAAR,CAAiBJ,cAAjB,EAAiC5C,OAAO,CAAC6C,KAAzC;;AAEA,QAAIF,OAAO,IAAIA,OAAO,CAACM,IAAvB,EAA6B;AAC3BjD,MAAAA,OAAO,CAAC+C,KAAR,CAAcJ,OAAO,CAACM,IAAtB;AACD;AACF;AACF;;AAED,SAAS3E,SAAT,CAAmB8B,IAAnB,EAAyB8C,GAAzB,EAA8BC,MAA9B,EAAsC;AACpC,MAAIA,MAAJ,EAAY;AACV,UAAMC,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYC,OAAZ,IAAuBF,MAAM,CAACC,IAA3C;;AAEA,QAAID,MAAM,CAACtD,IAAX,EAAiB;AACfO,MAAAA,IAAI,CAAC3B,UAAL,CAAgBF,IAAhB,CAAqB4E,MAAM,CAACtD,IAA5B;AACD;;AAED,QAAIoC,KAAK,CAACM,OAAN,CAAca,IAAd,CAAJ,EAAyB;AACvBF,MAAAA,GAAG,CAAC3E,IAAJ,CAAS,GAAG6E,IAAZ;AACD,KAFD,MAEO;AACLF,MAAAA,GAAG,CAAC3E,IAAJ,CAAS6E,IAAT;AACD;AACF;AACF;;AAED,SAASzE,MAAT,CAAgB2E,IAAhB,EAAsBC,CAAtB,EAAyBC,IAAzB,EAA+B;AAC7B,SAAOA,IAAI,CAACC,OAAL,CAAaH,IAAb,MAAuBC,CAA9B;AACD","sourcesContent":["import path from \"path\";\nimport { createHash } from \"crypto\";\nimport * as t from \"../babel-types\";\nimport { 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 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":["noop","emptyRange","part","start","end","isAttrTag","tag","name","value","toBabelPosition","line","character","column","parseMarko","file","code","htmlParseOptions","markoOpts","watchFiles","metadata","marko","currentTag","path","currentBody","currentAttr","undefined","currentShorthandId","currentShorthandClassNames","preserveWhitespace","preservingWhitespaceUntil","onNext","positionAt","index","parser","locationAt","range","withLoc","node","loc","enterTag","pushContainer","get","pushContent","body","push","endAttr","parseTemplateString","quasis","expressions","length","first","t","stringLiteral","read","result","isStringLiteral","templateLiteral","templateElement","raw","cooked","onError","buildCodeFrameError","message","onText","rawValue","markoText","test","prev","prevIndex","isMarkoScriptlet","isMarkoComment","type","replace","next","trimmedStart","indexOf","splice","onCDATA","markoCDATA","onDoctype","markoDocumentType","onDeclaration","markoDeclaration","onComment","markoComment","onPlaceholder","markoPlaceholder","escape","onScriptlet","markoScriptlet","onTagName","tagName","markoTag","markoTagBody","parseType","TagType","html","concise","literalTagName","parseOptions","tagDef","statement","openTagOnly","void","text","onTagShorthandId","onTagShorthandClass","onTagVar","var","left","onTagParams","params","onTagArgs","arguments","onAttrName","modifier","exec","attributes","markoAttribute","booleanLiteral","onAttrArgs","onAttrValue","bound","onAttrMethod","prefix","onAttrSpread","markoSpreadAttribute","onOpenTagEnd","foundClassAttr","classShorthandValue","every","expr","map","join","arrayExpression","attr","isArrayExpression","elements","rawOpenTag","selfClosed","onCloseTag","parserPlugin","hook","default","parentPath","parse","ast","program"],"mappings":"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","sourcesContent":["import { createParser, TagType } from \"htmljs-parser\";\nimport * as t from \"../babel-types\";\nimport {\n parseScript,\n parseExpression,\n getTagDefForTagName\n} from \"@marko/babel-utils\";\n\nconst noop = () => {};\nconst emptyRange = part => part.start === part.end;\nconst isAttrTag = tag => tag.name.value?.[0] === \"@\";\nconst toBabelPosition = ({ line, character }) => ({\n line: line + 1,\n column: character ? character - 1 : character\n});\n\nexport function parseMarko(file) {\n const { code } = file;\n const { htmlParseOptions = {} } = file.markoOpts;\n const { watchFiles } = file.metadata.marko;\n let currentTag = file.path;\n let currentBody = currentTag;\n let currentAttr = undefined;\n let currentShorthandId = undefined;\n let currentShorthandClassNames = undefined;\n let { preserveWhitespace } = htmlParseOptions;\n let preservingWhitespaceUntil = preserveWhitespace;\n let onNext = noop;\n const positionAt = index => toBabelPosition(parser.positionAt(index));\n const locationAt = range => {\n // Babel columns start at 0, but that is silly.\n // Here we normalize the parsers 1 based columns.\n const { start, end } = parser.locationAt(range);\n return {\n start: toBabelPosition(start),\n end: toBabelPosition(end)\n };\n };\n const withLoc = (node, range) => {\n node.start = range.start;\n node.end = range.end;\n node.loc = locationAt(range);\n return node;\n };\n const enterTag = node => {\n currentTag = currentBody.pushContainer(\"body\", node)[0];\n currentBody = currentTag.get(\"body\");\n onNext(node);\n };\n const pushContent = node => {\n currentBody.node.body.push(node);\n onNext(node);\n };\n const endAttr = () => {\n if (currentAttr) {\n currentAttr.loc = locationAt(currentAttr);\n currentAttr = undefined;\n }\n };\n const parseTemplateString = ({ quasis, expressions }) => {\n switch (expressions.length) {\n case 0: {\n const [first] = quasis;\n return withLoc(t.stringLiteral(parser.read(first)), first);\n }\n case 1: {\n if (emptyRange(quasis[0]) && emptyRange(quasis[1])) {\n const [{ value }] = expressions;\n const result = parseExpression(file, parser.read(value), value.start);\n if (t.isStringLiteral(result)) {\n // convert to template literal just so that we don't mistake it for a native tag if this is a tag name.\n return t.templateLiteral(\n [\n t.templateElement({\n raw: result.value,\n cooked: result.value\n })\n ],\n []\n );\n } else {\n return result;\n }\n }\n }\n }\n\n const [{ start }] = quasis;\n const end = quasis[quasis.length - 1].end;\n return parseExpression(\n file,\n `\\`${parser.read({ start, end })}\\``,\n start - 1\n );\n };\n\n const parser = createParser({\n onError(part) {\n throw file.buildCodeFrameError({ loc: locationAt(part) }, part.message);\n },\n onText(part) {\n const rawValue = parser.read(part);\n\n if (preservingWhitespaceUntil) {\n pushContent(withLoc(t.markoText(rawValue), part));\n return;\n }\n\n if (/^(?:[\\n\\r]\\s*)?(?:[\\n\\r]\\s*)?$/.test(rawValue)) return;\n\n const { body } = currentBody.node;\n let prev;\n let prevIndex = body.length;\n // Find previous non-scriptlet or comment.\n while (prevIndex > 0) {\n prev = body[--prevIndex];\n\n if (t.isMarkoScriptlet(prev) || t.isMarkoComment(prev)) {\n prev = undefined;\n } else {\n break;\n }\n }\n\n let value = rawValue;\n switch (prev?.type) {\n case \"MarkoPlaceholder\":\n break;\n case \"MarkoText\":\n if (/\\s$/.test(prev.value)) {\n value = value.replace(/^\\s+/, \"\");\n }\n break;\n case \"MarkoTag\":\n if (isAttrTag(prev)) {\n value = value.replace(/^[\\n\\r]\\s*/, \"\");\n }\n break;\n default:\n value = value.replace(/^[\\n\\r]\\s*/, \"\");\n break;\n }\n\n const node = t.markoText(value);\n pushContent(node);\n onNext = next => {\n switch (next?.type) {\n case \"MarkoScriptlet\":\n case \"MarkoComment\":\n return;\n case \"MarkoPlaceholder\":\n break;\n case \"MarkoText\":\n if (/^\\s/.test(next.value)) {\n value = value.replace(/\\s+$/, \"\");\n }\n break;\n case \"MarkoTag\":\n if (isAttrTag(next)) {\n value = value.replace(/[\\n\\r]\\s*$/, \"\");\n }\n\n break;\n default:\n value = value.replace(/[\\n\\r]\\s*$/, \"\");\n break;\n }\n\n node.value = value.replace(/\\s+/g, \" \");\n\n if (node.value) {\n const trimmedStart = part.start + rawValue.indexOf(value);\n withLoc(node, {\n start: trimmedStart,\n end: trimmedStart + rawValue.length\n });\n } else {\n body.splice(body.indexOf(node), 1);\n }\n\n onNext = noop;\n };\n },\n onCDATA(part) {\n pushContent(withLoc(t.markoCDATA(parser.read(part.value)), part));\n },\n onDoctype(part) {\n pushContent(withLoc(t.markoDocumentType(parser.read(part.value)), part));\n },\n onDeclaration(part) {\n pushContent(withLoc(t.markoDeclaration(parser.read(part.value)), part));\n },\n onComment(part) {\n pushContent(withLoc(t.markoComment(parser.read(part.value)), part));\n },\n onPlaceholder(part) {\n pushContent(\n withLoc(\n t.markoPlaceholder(\n parseExpression(file, parser.read(part.value), part.value.start),\n part.escape\n ),\n part\n )\n );\n },\n onScriptlet(part) {\n pushContent(\n withLoc(\n t.markoScriptlet(\n parseScript(file, parser.read(part.value), part.value.start).body\n ),\n part\n )\n );\n },\n onTagName(part) {\n const tagName = parseTemplateString(part);\n const node = t.markoTag(tagName, [], t.markoTagBody());\n let parseType = TagType.html;\n node.start = part.start - (part.concise ? 0 : 1); // Account for leading `<`.\n node.end = part.end;\n\n if (t.isStringLiteral(tagName)) {\n const literalTagName = tagName.value || (tagName.value = \"div\");\n\n if (literalTagName === \"%\") {\n throw file.buildCodeFrameError(\n tagName,\n \"<% scriptlets %> are no longer supported.\"\n );\n }\n\n const parseOptions = (node.tagDef = getTagDefForTagName(\n file,\n literalTagName\n ))?.parseOptions;\n\n if (parseOptions) {\n if (parseOptions.preserveWhitespace) {\n preservingWhitespaceUntil = node;\n }\n\n if (parseOptions.statement) {\n parseType = TagType.statement;\n } else if (parseOptions.openTagOnly) {\n parseType = TagType.void;\n } else if (parseOptions.text) {\n parseType = TagType.text;\n }\n }\n }\n\n enterTag(node);\n return parseType;\n },\n onTagShorthandId(part) {\n currentShorthandId = parseTemplateString(part);\n },\n onTagShorthandClass(part) {\n if (currentShorthandClassNames) {\n currentShorthandClassNames.push(parseTemplateString(part));\n } else {\n currentShorthandClassNames = [parseTemplateString(part)];\n }\n },\n\n onTagVar(part) {\n currentTag.node.var = parseExpression(\n file,\n `${parser.read(part.value)}=1`,\n part.value.start\n ).left;\n },\n\n onTagParams(part) {\n currentTag.node.body.params = parseExpression(\n file,\n `(${parser.read(part.value)})=>{}`,\n part.start\n ).params;\n },\n\n onTagArgs(part) {\n currentTag.node.arguments = parseExpression(\n file,\n `_${parser.read(part)}`,\n part.start - 1\n ).arguments;\n },\n\n onAttrName(part) {\n const [, name, modifier] = /^([^:]*)(?::(.*))?/.exec(parser.read(part));\n endAttr();\n currentTag.node.attributes.push(\n (currentAttr = t.markoAttribute(\n name || \"default\",\n t.booleanLiteral(true),\n modifier,\n undefined,\n !name\n ))\n );\n\n currentAttr.start = part.start;\n currentAttr.end = part.end;\n },\n\n onAttrArgs(part) {\n currentAttr.arguments = parseExpression(\n file,\n `_${parser.read(part)}`,\n part.start - 1\n ).arguments;\n currentAttr.end = part.end;\n },\n\n onAttrValue(part) {\n currentAttr.end = part.end;\n currentAttr.bound = part.bound;\n currentAttr.value = parseExpression(\n file,\n parser.read(part.value),\n part.value.start\n );\n },\n\n onAttrMethod(part) {\n const prefix = \"function\";\n currentAttr.end = part.end;\n currentAttr.value = parseExpression(\n file,\n prefix + parser.read(part),\n part.start - prefix.length\n );\n },\n\n onAttrSpread(part) {\n endAttr();\n currentTag.node.attributes.push(\n withLoc(\n t.markoSpreadAttribute(\n parseExpression(file, parser.read(part.value), part.value.start)\n ),\n part\n )\n );\n },\n\n onOpenTagEnd(part) {\n const { node } = currentTag;\n const { attributes } = node;\n const parseOptions = node.tagDef?.parseOptions;\n endAttr();\n\n if (currentShorthandClassNames) {\n let foundClassAttr = false;\n const classShorthandValue =\n currentShorthandClassNames.length === 1\n ? currentShorthandClassNames[0]\n : currentShorthandClassNames.every(expr => t.isStringLiteral(expr))\n ? withLoc(\n t.stringLiteral(\n currentShorthandClassNames.map(node => node.value).join(\" \")\n ),\n {\n start: currentShorthandClassNames[0].start,\n end: currentShorthandClassNames[\n currentShorthandClassNames.length - 1\n ].end\n }\n )\n : t.arrayExpression(currentShorthandClassNames);\n\n for (const attr of attributes) {\n if (attr.name === \"class\") {\n foundClassAttr = true;\n if (t.isArrayExpression(attr.value)) {\n if (t.isArrayExpression(classShorthandValue)) {\n attr.value.elements.push(...classShorthandValue.elements);\n } else {\n attr.value.elements.push(classShorthandValue);\n }\n } else if (\n t.isStringLiteral(attr.value) &&\n t.isStringLiteral(classShorthandValue)\n ) {\n attr.value.value = `${classShorthandValue.value} ${attr.value.value}`;\n } else if (t.isArrayExpression(classShorthandValue)) {\n classShorthandValue.elements.push(attr.value);\n attr.value = classShorthandValue;\n } else {\n attr.value = t.arrayExpression([classShorthandValue, attr.value]);\n }\n break;\n }\n }\n\n if (!foundClassAttr) {\n attributes.push(t.markoAttribute(\"class\", classShorthandValue));\n }\n\n currentShorthandClassNames = undefined;\n }\n\n if (currentShorthandId) {\n for (const attr of attributes) {\n if (attr.name === \"id\") {\n throw file.buildCodeFrameError(\n attr,\n \"Cannot have shorthand id and id attribute.\"\n );\n }\n }\n currentTag.node.attributes.push(\n t.markoAttribute(\"id\", currentShorthandId)\n );\n currentShorthandId = undefined;\n }\n\n if (parseOptions) {\n if (parseOptions.rawOpenTag) {\n node.rawValue = parser.read({\n start: node.name.start,\n end: part.start\n });\n }\n\n if (\n part.selfClosed ||\n parseOptions.statement ||\n parseOptions.openTagOnly\n ) {\n this.onCloseTag(part);\n }\n } else if (part.selfClosed) {\n this.onCloseTag(part);\n }\n },\n onCloseTag(part) {\n const { node } = currentTag;\n const parserPlugin = node.tagDef?.parser;\n if (preservingWhitespaceUntil === node) {\n preservingWhitespaceUntil = undefined;\n }\n\n node.end = part.end;\n node.loc = locationAt(node);\n\n if (parserPlugin) {\n const { hook } = parserPlugin;\n if (parserPlugin.path) watchFiles.push(parserPlugin.path);\n (hook.default || hook)(currentTag, t);\n }\n\n currentTag = currentTag.parentPath.parentPath;\n\n if (currentTag) {\n currentBody = currentTag.get(\"body\");\n } else {\n currentTag = currentBody = file.path;\n }\n\n onNext();\n }\n });\n\n parser.parse(code);\n onNext();\n\n const { ast } = file;\n const { program } = ast;\n ast.start = program.start = 0;\n ast.end = program.end = code.length - 1;\n ast.loc = program.loc = {\n start: { line: 1, column: 0 },\n end: positionAt(ast.end)\n };\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 +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"}
|