marko 6.0.123 → 6.0.125

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.
@@ -30,15 +30,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/translator/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
- analyze: () => analyze2,
33
+ analyze: () => analyze,
34
34
  createInteropTranslator: () => createInteropTranslator,
35
- getRuntimeEntryFiles: () => getRuntimeEntryFiles2,
35
+ getRuntimeEntryFiles: () => getRuntimeEntryFiles,
36
36
  internalEntryBuilder: () => entry_builder_default,
37
37
  preferAPI: () => preferAPI,
38
- tagDiscoveryDirs: () => tagDiscoveryDirs2,
39
- taglibs: () => taglibs2,
40
- transform: () => transform2,
41
- translate: () => translate2
38
+ tagDiscoveryDirs: () => tagDiscoveryDirs,
39
+ taglibs: () => taglibs,
40
+ transform: () => transform,
41
+ translate: () => translate
42
42
  });
43
43
  module.exports = __toCommonJS(index_exports);
44
44
 
@@ -2339,11 +2339,12 @@ var entry_builder_default = {
2339
2339
  imports: [],
2340
2340
  init: false
2341
2341
  };
2342
+ const programExtra = file.path.node.extra;
2342
2343
  const { analyzedTags } = file.metadata.marko;
2343
2344
  state.imports.push(
2344
2345
  (0, import_babel_utils12.resolveRelativePath)(entryFile, file.opts.filename)
2345
2346
  );
2346
- if (file.path.node.extra.isInteractive) {
2347
+ if (programExtra.isInteractive || programExtra.needsCompat) {
2347
2348
  state.init = true;
2348
2349
  }
2349
2350
  for (const tag of analyzedTags || []) {
@@ -5497,13 +5498,26 @@ function translateVar(tag, initialValue, kind = "const") {
5497
5498
  const changeName = binding.property + "Change";
5498
5499
  const changeBinding = binding.upstreamAlias.propertyAliases.get(changeName);
5499
5500
  if (changeBinding && changeName !== changeBinding.name) {
5500
- getDestructurePattern(id)?.pushContainer(
5501
- "properties",
5502
- import_compiler32.types.objectProperty(
5503
- import_compiler32.types.identifier(changeName),
5504
- import_compiler32.types.identifier(changeBinding.name)
5505
- )
5506
- );
5501
+ const pattern = getDestructurePattern(id);
5502
+ if (pattern) {
5503
+ pattern.unshiftContainer(
5504
+ "properties",
5505
+ import_compiler32.types.objectProperty(
5506
+ import_compiler32.types.identifier(changeName),
5507
+ import_compiler32.types.identifier(changeBinding.name)
5508
+ )
5509
+ );
5510
+ const lastProperty = pattern.get("properties").at(-1);
5511
+ if (lastProperty?.node.type === "RestElement") {
5512
+ const restBinding = lastProperty.node.argument.extra?.binding;
5513
+ if (restBinding) {
5514
+ restBinding.excludeProperties = propsUtil.add(
5515
+ restBinding.excludeProperties,
5516
+ changeName
5517
+ );
5518
+ }
5519
+ }
5520
+ }
5507
5521
  }
5508
5522
  });
5509
5523
  tag.insertBefore(
@@ -6486,7 +6500,9 @@ function getOnlyChildParentTagName(tag, branchSize = 1) {
6486
6500
  return extra[kOnlyChildInParent];
6487
6501
  }
6488
6502
  const parentTag = getParentTag(tag);
6489
- return extra[kOnlyChildInParent] = parentTag && (0, import_babel_utils22.getTagDef)(parentTag)?.html && parentTag.node.name.type === "StringLiteral" && tag.parent.body.length === branchSize ? parentTag.node.name.value : false;
6503
+ return extra[kOnlyChildInParent] = parentTag && (0, import_babel_utils22.getTagDef)(parentTag)?.html && parentTag.node.name.type === "StringLiteral" && tag.parent.body.filter(
6504
+ (node) => node.type !== "MarkoComment"
6505
+ ).length === branchSize ? parentTag.node.name.value : false;
6490
6506
  }
6491
6507
  function getOptimizedOnlyChildNodeBinding(tag, section, branchSize = 1) {
6492
6508
  if (getOnlyChildParentTagName(tag, branchSize)) {
@@ -12341,7 +12357,6 @@ var text_default = {
12341
12357
  var import_generator = __toESM(require("@babel/generator"));
12342
12358
  var import_compiler65 = require("@marko/compiler");
12343
12359
  var import_babel_utils53 = require("@marko/compiler/babel-utils");
12344
- var translate6 = __toESM(require("@marko/runtime-tags/translator"));
12345
12360
  var import_path6 = __toESM(require("path"));
12346
12361
 
12347
12362
  // src/translator/interop/feature-detection.ts
@@ -12572,23 +12587,23 @@ function addFeature(state, type, name2, path7) {
12572
12587
  function createInteropTranslator(translate5) {
12573
12588
  return {
12574
12589
  preferAPI: translate5.preferAPI,
12575
- transform: mergeVisitors(translate5.transform, translate6.transform),
12576
- analyze: mergeVisitors(translate5.analyze, translate6.analyze),
12590
+ transform: mergeVisitors(translate5.transform, transform),
12591
+ analyze: mergeVisitors(translate5.analyze, analyze),
12577
12592
  translate: patchTranslateProgram(
12578
- mergeVisitors(translate5.translate, translate6.translate)
12593
+ mergeVisitors(translate5.translate, translate)
12579
12594
  ),
12580
12595
  tagDiscoveryDirs: [
12581
- ...translate6.tagDiscoveryDirs,
12596
+ ...tagDiscoveryDirs,
12582
12597
  ...translate5.tagDiscoveryDirs
12583
12598
  ],
12584
12599
  taglibs: mergeTaglibs(
12585
12600
  import_compiler65.taglib.resolveOptionalTaglibs(translate5.optionalTaglibs).concat(translate5.taglibs),
12586
- translate6.taglibs
12601
+ taglibs
12587
12602
  ),
12588
12603
  getRuntimeEntryFiles(output, optimize) {
12589
12604
  return [
12590
12605
  ...translate5.getRuntimeEntryFiles(output, optimize),
12591
- ...translate6.getRuntimeEntryFiles(output, optimize)
12606
+ ...getRuntimeEntryFiles(output, optimize)
12592
12607
  ];
12593
12608
  }
12594
12609
  };
@@ -12626,7 +12641,7 @@ function createInteropTranslator(translate5) {
12626
12641
  return [
12627
12642
  importHydrateProgram(
12628
12643
  "6",
12629
- translate6.internalEntryBuilder.build(entryFile, true)
12644
+ entry_builder_default.build(entryFile, true)
12630
12645
  ),
12631
12646
  importHydrateProgram(
12632
12647
  "5",
@@ -12643,7 +12658,7 @@ function createInteropTranslator(translate5) {
12643
12658
  return translate5.internalEntryBuilder.build(entryFile);
12644
12659
  }
12645
12660
  } else {
12646
- return translate6.internalEntryBuilder.build(entryFile);
12661
+ return entry_builder_default.build(entryFile);
12647
12662
  }
12648
12663
  },
12649
12664
  visit(file, entryFile, visitChild) {
@@ -12653,7 +12668,7 @@ function createInteropTranslator(translate5) {
12653
12668
  };
12654
12669
  if (isTagsAPI(file)) {
12655
12670
  state.has6 = true;
12656
- translate6.internalEntryBuilder.visit(file, entryFile, visitChild);
12671
+ entry_builder_default.visit(file, entryFile, visitChild);
12657
12672
  } else {
12658
12673
  state.has5 = true;
12659
12674
  translate5.internalEntryBuilder.visit(file, entryFile, visitChild);
@@ -12856,10 +12871,10 @@ var visitors = extractVisitors({
12856
12871
  MarkoScriptlet: scriptlet_default,
12857
12872
  MarkoComment: comment_default
12858
12873
  });
12859
- var tagDiscoveryDirs2 = ["tags"];
12874
+ var tagDiscoveryDirs = ["tags"];
12860
12875
  var preferAPI = "tags";
12861
- var { transform: transform2, analyze: analyze2, translate: translate2 } = visitors;
12862
- var taglibs2 = [
12876
+ var { transform, analyze, translate } = visitors;
12877
+ var taglibs = [
12863
12878
  [
12864
12879
  core_default.taglibId,
12865
12880
  {
@@ -12868,7 +12883,7 @@ var taglibs2 = [
12868
12883
  }
12869
12884
  ]
12870
12885
  ];
12871
- function getRuntimeEntryFiles2(output, optimize) {
12886
+ function getRuntimeEntryFiles(output, optimize) {
12872
12887
  return [
12873
12888
  `${runtime_info_default.name}${optimize ? "" : "/debug"}/${output === "html" ? "html" : "dom"}`
12874
12889
  ];
@@ -1,4 +1,4 @@
1
1
  import { types as t } from "@marko/compiler";
2
- import type { Binding } from "./references";
2
+ import { type Binding } from "./references";
3
3
  export default function translateVar(tag: t.NodePath<t.MarkoTag>, initialValue: t.Expression, kind?: "let" | "const"): void;
4
4
  export declare function translateDomVar(tag: t.NodePath<t.MarkoTag>, binding: Binding | undefined): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "6.0.123",
3
+ "version": "6.0.125",
4
4
  "description": "Optimized runtime for Marko templates.",
5
5
  "keywords": [
6
6
  "api",