@marko/compiler 5.39.42 → 5.39.43

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.
@@ -375,11 +375,39 @@ function mergeVisitors(all) {
375
375
  if (all.length === 1) {
376
376
  all = all[0];
377
377
  } else {
378
- return _traverse.default.visitors.merge(all);
378
+ return _traverse.default.visitors.merge(all.map(toExploded));
379
379
  }
380
380
  }
381
381
 
382
- return _traverse.default.visitors.explode(all);
382
+ return toExploded(all);
383
+ }
384
+
385
+ const explodeCache = new WeakMap();
386
+ function toExploded(visitor) {
387
+ let cached = explodeCache.get(visitor);
388
+ if (!cached) {
389
+ cached = _traverse.default.visitors.explode(cloneVisitor(visitor));
390
+ explodeCache.set(visitor, cached);
391
+ }
392
+
393
+ return cached;
394
+ }
395
+
396
+ function cloneVisitor(visitor) {
397
+ const clone = {};
398
+ for (const key in visitor) {
399
+ clone[key] = cloneVisit(visitor[key]);
400
+ }
401
+
402
+ return clone;
403
+ }
404
+
405
+ function cloneVisit(visit) {
406
+ if (!visit || typeof visit !== "object") {
407
+ return visit;
408
+ }
409
+
410
+ return { ...visit };
383
411
  }
384
412
 
385
413
  function traverseAll(file, visitors) {
@@ -19,9 +19,9 @@ const registeredTaglibs = [];
19
19
  const loadedTranslatorsTaglibs = new Map();
20
20
  let lookupCache = Object.create(null);
21
21
 
22
- register("marko/html", _markoHtml.default);
23
- register("marko/svg", _markoSvg.default);
24
- register("marko/math", _markoMath.default);
22
+ register(_markoHtml.default["taglib-id"], _markoHtml.default);
23
+ register(_markoSvg.default["taglib-id"], _markoSvg.default);
24
+ register(_markoMath.default["taglib-id"], _markoMath.default);
25
25
 
26
26
  function buildLookup(dirname, requestedTranslator, onError) {
27
27
  const translator = (0, _tryLoadTranslator.default)(requestedTranslator);
@@ -873,7 +873,10 @@
873
873
  },
874
874
  "<title>": {
875
875
  "html": true,
876
- "attribute-groups": ["html-attributes"]
876
+ "attribute-groups": ["html-attributes"],
877
+ "parse-options": {
878
+ "text": true
879
+ }
877
880
  },
878
881
  "<tr>": {
879
882
  "html": true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/compiler",
3
- "version": "5.39.42",
3
+ "version": "5.39.43",
4
4
  "description": "Marko template to JS compiler.",
5
5
  "keywords": [
6
6
  "babel",
@@ -87,7 +87,7 @@
87
87
  "source-map-support": "^0.5.21"
88
88
  },
89
89
  "devDependencies": {
90
- "marko": "^5.37.62"
90
+ "marko": "^5.37.63"
91
91
  },
92
92
  "engines": {
93
93
  "node": "18 || 20 || >=22"
package/register.d.ts CHANGED
@@ -3,4 +3,6 @@ import { Config } from ".";
3
3
  type Extensions = Partial<typeof require.extensions>;
4
4
  export default function register(
5
5
  config: Config & { extensions?: Extensions },
6
- ): Extensions;
6
+ ): typeof require.extensions & {
7
+ ".marko": (module: Module, filename: string) => any;
8
+ };