marko 4.28.6 → 4.28.8

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.
Files changed (75) hide show
  1. package/CHANGELOG.md +2569 -0
  2. package/dist/compiler/ast/CustomTag.js +1 -1
  3. package/dist/core-tags/core/await/renderer.js +11 -3
  4. package/dist/core-tags/core/await/reorderer-renderer.js +35 -8
  5. package/dist/node_modules/@internal/components-beginComponent/index-browser.js +5 -5
  6. package/dist/node_modules/@internal/components-beginComponent/index.js +12 -12
  7. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +43 -43
  8. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +3 -3
  9. package/dist/node_modules/@internal/components-endComponent/index.js +3 -3
  10. package/dist/node_modules/@internal/components-entry/index-browser.js +2 -2
  11. package/dist/node_modules/@internal/components-entry/index.js +21 -21
  12. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +6 -6
  13. package/dist/node_modules/@internal/components-entry-legacy/index.js +1 -1
  14. package/dist/node_modules/@internal/components-registry/index-browser.js +40 -40
  15. package/dist/node_modules/@internal/components-registry/index.js +2 -2
  16. package/dist/node_modules/@internal/components-util/index-browser.js +20 -20
  17. package/dist/node_modules/@internal/components-util/index.js +9 -9
  18. package/dist/node_modules/@internal/create-readable/index-browser.js +1 -1
  19. package/dist/node_modules/@internal/create-readable/index.js +8 -8
  20. package/dist/node_modules/@internal/init-components-tag/index.js +4 -4
  21. package/dist/node_modules/@internal/preserve-tag/index-browser.js +8 -8
  22. package/dist/node_modules/@internal/preserve-tag/index.js +5 -5
  23. package/dist/node_modules/@internal/set-immediate/index-browser.js +1 -1
  24. package/dist/node_modules/@internal/set-immediate/index-worker.js +2 -2
  25. package/dist/node_modules/@internal/set-immediate/index.js +2 -2
  26. package/dist/runtime/RenderResult.js +13 -13
  27. package/dist/runtime/components/Component.js +144 -144
  28. package/dist/runtime/components/ComponentDef.js +27 -27
  29. package/dist/runtime/components/ComponentsContext.js +19 -19
  30. package/dist/runtime/components/GlobalComponentsContext.js +4 -4
  31. package/dist/runtime/components/KeySequence.js +3 -3
  32. package/dist/runtime/components/ServerComponent.js +13 -13
  33. package/dist/runtime/components/State.js +26 -26
  34. package/dist/runtime/components/attach-detach.js +8 -8
  35. package/dist/runtime/components/defineComponent.js +5 -5
  36. package/dist/runtime/components/dom-data.js +4 -4
  37. package/dist/runtime/components/event-delegation.js +10 -10
  38. package/dist/runtime/components/legacy/defineComponent-legacy.js +1 -1
  39. package/dist/runtime/components/legacy/defineRenderer-legacy.js +16 -16
  40. package/dist/runtime/components/legacy/dependencies/index.js +9 -9
  41. package/dist/runtime/components/legacy/helper-getWidgetFromOut.js +3 -3
  42. package/dist/runtime/components/legacy/renderer-legacy.js +39 -39
  43. package/dist/runtime/components/renderer.js +34 -34
  44. package/dist/runtime/components/update-manager.js +10 -10
  45. package/dist/runtime/createOut.js +1 -1
  46. package/dist/runtime/dom-insert.js +5 -5
  47. package/dist/runtime/helpers/_change-case.js +2 -2
  48. package/dist/runtime/helpers/dynamic-tag.js +13 -13
  49. package/dist/runtime/helpers/style-value.js +1 -1
  50. package/dist/runtime/html/AsyncStream.js +24 -24
  51. package/dist/runtime/html/BufferedWriter.js +2 -2
  52. package/dist/runtime/html/StringWriter.js +1 -1
  53. package/dist/runtime/html/helpers/data-marko.js +2 -2
  54. package/dist/runtime/html/helpers/escape-xml.js +1 -1
  55. package/dist/runtime/html/index.js +1 -1
  56. package/dist/runtime/renderable.js +5 -5
  57. package/dist/runtime/vdom/AsyncVDOMBuilder.js +43 -43
  58. package/dist/runtime/vdom/VComponent.js +2 -2
  59. package/dist/runtime/vdom/VDocumentFragment.js +1 -1
  60. package/dist/runtime/vdom/VElement.js +12 -12
  61. package/dist/runtime/vdom/VFragment.js +4 -4
  62. package/dist/runtime/vdom/VNode.js +2 -2
  63. package/dist/runtime/vdom/index.js +1 -1
  64. package/dist/runtime/vdom/morphdom/fragment.js +2 -2
  65. package/dist/runtime/vdom/morphdom/helpers.js +3 -3
  66. package/dist/runtime/vdom/morphdom/index.js +43 -43
  67. package/package.json +1 -1
  68. package/src/compiler/Normalizer.js +4 -1
  69. package/src/compiler/ast/CustomTag.js +14 -3
  70. package/src/core-tags/components/TransformHelper/convertToComponent.js +1 -1
  71. package/src/core-tags/core/await/renderer.js +14 -3
  72. package/src/core-tags/core/await/reorderer-renderer.js +78 -43
  73. package/src/core-tags/migrate/all-tags/widget-in-attrs.js +9 -7
  74. package/src/runtime/components/legacy/index.js +3 -1
  75. package/src/runtime/helpers/interop-require.js +1 -1
@@ -27,8 +27,8 @@ function removeChild(node) {
27
27
  if (node.remove) node.remove();else node.parentNode.removeChild(node);
28
28
  }
29
29
 
30
- exports.bg_ = insertBefore;
31
- exports.bh_ = insertAfter;
30
+ exports.bh_ = insertBefore;
31
+ exports.bi_ = insertAfter;
32
32
  exports.b_ = nextSibling;
33
33
  exports.a_ = firstChild;
34
- exports.bi_ = removeChild;
34
+ exports.bj_ = removeChild;
@@ -3,10 +3,10 @@
3
3
  var specialElHandlers = require("./specialElHandlers");
4
4
  var KeySequence = require("../../components/KeySequence");
5
5
  var componentsUtil = require("@internal/components-util");
6
- var existingComponentLookup = componentsUtil._n_;
7
- var destroyNodeRecursive = componentsUtil._S_;
8
- var addComponentRootToKeyedElements = componentsUtil._o_;
9
- var normalizeComponentKey = componentsUtil._V_;
6
+ var existingComponentLookup = componentsUtil._o_;
7
+ var destroyNodeRecursive = componentsUtil._T_;
8
+ var addComponentRootToKeyedElements = componentsUtil._p_;
9
+ var normalizeComponentKey = componentsUtil._W_;
10
10
  var VElement = require("../vdom").bw_;
11
11
  var virtualizeElement = VElement.cj_;
12
12
  var morphAttrs = VElement.ck_;
@@ -14,17 +14,17 @@ var eventDelegation = require("../../components/event-delegation");
14
14
  var fragment = require("./fragment");
15
15
  var helpers = require("./helpers");
16
16
  var domData = require("../../components/dom-data");
17
- var keysByDOMNode = domData._K_;
18
- var componentByDOMNode = domData._q_;
19
- var vElementByDOMNode = domData._L_;
20
- var detachedByDOMNode = domData.aW_;
17
+ var keysByDOMNode = domData._L_;
18
+ var componentByDOMNode = domData._r_;
19
+ var vElementByDOMNode = domData._M_;
20
+ var detachedByDOMNode = domData.aX_;
21
21
 
22
- var insertBefore = helpers.bg_;
23
- var insertAfter = helpers.bh_;
22
+ var insertBefore = helpers.bh_;
23
+ var insertAfter = helpers.bi_;
24
24
  var nextSibling = helpers.b_;
25
25
  var firstChild = helpers.a_;
26
- var removeChild = helpers.bi_;
27
- var createFragmentNode = fragment._m_;
26
+ var removeChild = helpers.bj_;
27
+ var createFragmentNode = fragment._n_;
28
28
  var beginFragmentNode = fragment.cr_;
29
29
 
30
30
  var ELEMENT_NODE = 1;
@@ -52,7 +52,7 @@ function caseInsensitiveCompare(a, b) {
52
52
 
53
53
  function onNodeAdded(node, componentsContext) {
54
54
  if (node.nodeType === ELEMENT_NODE) {
55
- eventDelegation.aV_(node, componentsContext);
55
+ eventDelegation.aW_(node, componentsContext);
56
56
  }
57
57
  }
58
58
 
@@ -62,8 +62,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
62
62
  var keySequences = Object.create(null);
63
63
 
64
64
  if (componentsContext) {
65
- globalComponentsContext = componentsContext.r_;
66
- isHydrate = globalComponentsContext.a__;
65
+ globalComponentsContext = componentsContext.s_;
66
+ isHydrate = globalComponentsContext.aa_;
67
67
  }
68
68
 
69
69
  function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) {
@@ -73,7 +73,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
73
73
  if (vNode.bX_ === ELEMENT_NODE || vNode.bX_ === FRAGMENT_NODE) {
74
74
  if (key) {
75
75
  keysByDOMNode.set(realNode, key);
76
- (isAutoKey(key) ? parentComponent : ownerComponent).N_[key] = realNode;
76
+ (isAutoKey(key) ? parentComponent : ownerComponent).O_[key] = realNode;
77
77
  }
78
78
 
79
79
  if (vNode.cd_ !== "textarea") {
@@ -85,12 +85,12 @@ function morphdom(fromNode, toNode, host, componentsContext) {
85
85
  }
86
86
 
87
87
  function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) {
88
- var rootNode = component._E_ = insertBefore(createFragmentNode(), referenceNode, referenceNodeParentEl);
88
+ var rootNode = component._F_ = insertBefore(createFragmentNode(), referenceNode, referenceNodeParentEl);
89
89
  componentByDOMNode.set(rootNode, component);
90
90
 
91
91
  if (key && ownerComponent) {
92
92
  key = normalizeComponentKey(key, parentComponent.id);
93
- addComponentRootToKeyedElements(ownerComponent.N_, key, rootNode, component.id);
93
+ addComponentRootToKeyedElements(ownerComponent.O_, key, rootNode, component.id);
94
94
  keysByDOMNode.set(rootNode, key);
95
95
  }
96
96
 
@@ -98,7 +98,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
98
98
  }
99
99
 
100
100
  function morphComponent(component, vComponent) {
101
- morphChildren(component._E_, vComponent, component);
101
+ morphChildren(component._F_, vComponent, component);
102
102
  }
103
103
 
104
104
  var detachedNodes = [];
@@ -142,20 +142,20 @@ function morphdom(fromNode, toNode, host, componentsContext) {
142
142
  curFromNodeChild = nextSibling(curFromNodeChild);
143
143
  }
144
144
 
145
- var ownerComponent = curToNodeChild._N_ || parentComponent;
145
+ var ownerComponent = curToNodeChild._O_ || parentComponent;
146
146
  var referenceComponent;
147
147
 
148
148
  if (curToNodeType === COMPONENT_NODE) {
149
- var component = curToNodeChild.v_;
149
+ var component = curToNodeChild.w_;
150
150
  if ((matchingFromComponent = existingComponentLookup[component.id]) === undefined) {
151
151
  if (isHydrate) {
152
152
  var rootNode = beginFragmentNode(curFromNodeChild, fromNode);
153
- component._E_ = rootNode;
153
+ component._F_ = rootNode;
154
154
  componentByDOMNode.set(rootNode, component);
155
155
 
156
156
  if (ownerComponent && curToNodeKey) {
157
157
  curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id);
158
- addComponentRootToKeyedElements(ownerComponent.N_, curToNodeKey, rootNode, component.id);
158
+ addComponentRootToKeyedElements(ownerComponent.O_, curToNodeKey, rootNode, component.id);
159
159
 
160
160
  keysByDOMNode.set(rootNode, curToNodeKey);
161
161
  }
@@ -167,23 +167,23 @@ function morphdom(fromNode, toNode, host, componentsContext) {
167
167
  insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode, component, curToNodeKey, ownerComponent, parentComponent);
168
168
  }
169
169
  } else {
170
- if (matchingFromComponent._E_ !== curFromNodeChild) {
171
- if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext.s_[fromComponent.id] === undefined) {
170
+ if (matchingFromComponent._F_ !== curFromNodeChild) {
171
+ if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext.t_[fromComponent.id] === undefined) {
172
172
  // The component associated with the current real DOM node was not rendered
173
173
  // so we should just remove it out of the real DOM by destroying it
174
- curFromNodeChild = nextSibling(fromComponent._E_);
174
+ curFromNodeChild = nextSibling(fromComponent._F_);
175
175
  destroyComponent(fromComponent);
176
176
  continue;
177
177
  }
178
178
 
179
179
  // We need to move the existing component into
180
180
  // the correct location
181
- insertBefore(matchingFromComponent._E_, curFromNodeChild, fromNode);
181
+ insertBefore(matchingFromComponent._F_, curFromNodeChild, fromNode);
182
182
  } else {
183
183
  curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild);
184
184
  }
185
185
 
186
- if (!curToNodeChild.ae_) {
186
+ if (!curToNodeChild.af_) {
187
187
  morphComponent(component, curToNodeChild);
188
188
  }
189
189
  }
@@ -206,7 +206,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
206
206
 
207
207
  // We have a keyed element. This is the fast path for matching
208
208
  // up elements
209
- curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence())).aN_(curToNodeKey);
209
+ curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence())).aO_(curToNodeKey);
210
210
 
211
211
  if (curFromNodeChild) {
212
212
  curFromNodeKey = keysByDOMNode.get(curFromNodeChild);
@@ -216,7 +216,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
216
216
 
217
217
  if (curFromNodeKey === curToNodeKey) {
218
218
  // Elements line up. Now we just have to make sure they are compatible
219
- if (!curToNodeChild.ae_) {
219
+ if (!curToNodeChild.af_) {
220
220
  // We just skip over the fromNode if it is preserved
221
221
 
222
222
  if (curVFromNodeChild && curToNodeType === curVFromNodeChild.bX_ && (curToNodeType !== ELEMENT_NODE || compareNodeNames(curToNodeChild, curVFromNodeChild))) {
@@ -234,16 +234,16 @@ function morphdom(fromNode, toNode, host, componentsContext) {
234
234
  }
235
235
  }
236
236
  } else {
237
- matchingFromEl = referenceComponent.N_[curToNodeKey];
237
+ matchingFromEl = referenceComponent.O_[curToNodeKey];
238
238
  if (matchingFromEl === undefined || matchingFromEl === curFromNodeChild) {
239
239
  if (isHydrate && curFromNodeChild) {
240
- if (curFromNodeChild.nodeType === ELEMENT_NODE && (curToNodeChild.ae_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.cd_ || ""))) {
240
+ if (curFromNodeChild.nodeType === ELEMENT_NODE && (curToNodeChild.af_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.cd_ || ""))) {
241
241
  curVFromNodeChild = virtualizeElement(curFromNodeChild);
242
242
  curVFromNodeChild.cd_ = curToNodeChild.cd_;
243
243
  keysByDOMNode.set(curFromNodeChild, curToNodeKey);
244
- referenceComponent.N_[curToNodeKey] = curFromNodeChild;
244
+ referenceComponent.O_[curToNodeKey] = curFromNodeChild;
245
245
 
246
- if (curToNodeChild.ae_) {
246
+ if (curToNodeChild.af_) {
247
247
  vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild);
248
248
  } else {
249
249
  morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent);
@@ -279,11 +279,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
279
279
  var fragment = createFragmentNode(curFromNodeChild, endNode.nextSibling, fromNode);
280
280
  keysByDOMNode.set(fragment, curToNodeKey);
281
281
  vElementByDOMNode.set(fragment, curToNodeChild);
282
- referenceComponent.N_[curToNodeKey] = fragment;
282
+ referenceComponent.O_[curToNodeKey] = fragment;
283
283
  removeChild(curFromNodeChild);
284
284
  removeChild(endNode);
285
285
 
286
- if (!curToNodeChild.ae_) {
286
+ if (!curToNodeChild.af_) {
287
287
  morphChildren(fragment, curToNodeChild, parentComponent);
288
288
  }
289
289
 
@@ -301,7 +301,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
301
301
  detachedByDOMNode.set(matchingFromEl, undefined);
302
302
  }
303
303
 
304
- if (!curToNodeChild.ae_) {
304
+ if (!curToNodeChild.af_) {
305
305
  curVFromNodeChild = vElementByDOMNode.get(matchingFromEl);
306
306
 
307
307
  if (curVFromNodeChild && curToNodeType === curVFromNodeChild.bX_ && (curToNodeType !== ELEMENT_NODE || compareNodeNames(curVFromNodeChild, curToNodeChild))) {
@@ -390,7 +390,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
390
390
  // not compatible with the current "to" node
391
391
  curFromNodeChild = fromNextSibling;
392
392
 
393
- if (!globalComponentsContext.s_[fromComponent.id]) {
393
+ if (!globalComponentsContext.t_[fromComponent.id]) {
394
394
  destroyComponent(fromComponent);
395
395
  }
396
396
 
@@ -486,7 +486,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
486
486
 
487
487
  if (fromComponent = componentByDOMNode.get(curFromNodeChild)) {
488
488
  curFromNodeChild = fromNextSibling;
489
- if (!globalComponentsContext.s_[fromComponent.id]) {
489
+ if (!globalComponentsContext.t_[fromComponent.id]) {
490
490
  destroyComponent(fromComponent);
491
491
  }
492
492
  continue;
@@ -500,7 +500,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
500
500
  if (!curFromNodeKey || isAutoKey(curFromNodeKey)) {
501
501
  referenceComponent = parentComponent;
502
502
  } else {
503
- referenceComponent = curVFromNodeChild && curVFromNodeChild._N_;
503
+ referenceComponent = curVFromNodeChild && curVFromNodeChild._O_;
504
504
  }
505
505
 
506
506
  detachNode(curFromNodeChild, fromNode, referenceComponent);
@@ -520,7 +520,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
520
520
 
521
521
  morphAttrs(fromEl, vFromEl, toEl);
522
522
 
523
- if (toEl.ad_) {
523
+ if (toEl.ae_) {
524
524
  return;
525
525
  }
526
526
 
@@ -537,7 +537,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
537
537
  // eslint-disable-next-line no-constant-condition
538
538
 
539
539
 
540
- morphChildren(fromNode, toNode, toNode.v_);
540
+ morphChildren(fromNode, toNode, toNode.w_);
541
541
 
542
542
  detachedNodes.forEach(function (node) {
543
543
  var detachedFromComponent = detachedByDOMNode.get(node);
@@ -551,7 +551,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
551
551
  } else if (node.parentNode) {
552
552
  destroyNodeRecursive(node, detachedFromComponent !== true && detachedFromComponent);
553
553
 
554
- if (eventDelegation.ap_(node) != false) {
554
+ if (eventDelegation.aq_(node) != false) {
555
555
  removeChild(node);
556
556
  }
557
557
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "4.28.6",
3
+ "version": "4.28.8",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
@@ -125,7 +125,10 @@ class Normalizer {
125
125
  } else if (context.ignoreUnrecognizedTags && tagName[0] === "@") {
126
126
  let owner = elNode.parentNode;
127
127
 
128
- while (owner && /^(?:for|while|if|else(?:-if))$|^@/.test(owner.tagName)) {
128
+ while (
129
+ owner &&
130
+ /^(?:for|while|if|else(?:-if))$|^@/.test(owner.tagName)
131
+ ) {
129
132
  owner = owner.parentNode;
130
133
  }
131
134
 
@@ -624,7 +624,7 @@ class CustomTag extends HtmlElement {
624
624
 
625
625
  if (isNestedTag) {
626
626
  renderTagNode = builder.functionCall(tagVar, tagArgs);
627
- renderTagNode._isNestedTagCall = true
627
+ renderTagNode._isNestedTagCall = true;
628
628
  } else {
629
629
  renderTagNode = this.generateRenderTagCode(codegen, tagVar, tagArgs);
630
630
  renderTagNode._isTagCall = true;
@@ -656,7 +656,9 @@ class CustomTag extends HtmlElement {
656
656
  }
657
657
 
658
658
  if (renderBody.length) {
659
- newBody.push(builder.returnStatement(builder.renderBodyFunction(renderBody)));
659
+ newBody.push(
660
+ builder.returnStatement(builder.renderBodyFunction(renderBody))
661
+ );
660
662
  body = newBody;
661
663
  }
662
664
  }
@@ -796,7 +798,16 @@ function hasHTML(node, context) {
796
798
  let hasHTML = false;
797
799
  const walker = context.createWalker({
798
800
  enter(node) {
799
- if (node.type === "Html" || node.type === "TextVDOM" || node._isTagCall) {
801
+ if (
802
+ node.type === "Html" ||
803
+ node.type === "StartTag" ||
804
+ node.type === "TextVDOM" ||
805
+ node.type === "HtmlElement" ||
806
+ node.type === "HtmlComment" ||
807
+ node.type === "EndElementVDOM" ||
808
+ node.type === "HtmlElementVDOM" ||
809
+ node._isTagCall
810
+ ) {
800
811
  hasHTML = true;
801
812
  walker.stop();
802
813
  } else if (node._isNestedTagCall) {
@@ -116,7 +116,7 @@ module.exports = function handleComponentBind(options) {
116
116
  markoComponentVar = context.addStaticVar(
117
117
  "marko_component",
118
118
  builder.functionCall(context.helper("interopRequireDefault"), [
119
- builder.require(builder.literal(rendererModule.requirePath))
119
+ builder.require(builder.literal(rendererModule.requirePath)),
120
120
  ])
121
121
  );
122
122
  }
@@ -97,6 +97,7 @@ module.exports = function awaitTag(input, out) {
97
97
  };
98
98
 
99
99
  if (clientReorder) {
100
+ awaitInfo.parent = out;
100
101
  awaitInfo.after = input.showAfter;
101
102
 
102
103
  clientReorderContext =
@@ -106,8 +107,14 @@ module.exports = function awaitTag(input, out) {
106
107
  nextId: 0,
107
108
  });
108
109
 
109
- var id = (awaitInfo.id = input.name || clientReorderContext.nextId++);
110
- var placeholderIdAttrValue = "afph" + id;
110
+ /** SHOULD MATCH THE reorder-renderer.js IMPLEMENTATION */
111
+ var reorderFunctionId =
112
+ out.global.runtimeId !== "M" ? "af" + out.global.runtimeId : "af";
113
+
114
+ var id = (awaitInfo.id =
115
+ input.name ||
116
+ (out.global.componentIdPrefix || 0) + clientReorderContext.nextId++);
117
+ var placeholderIdAttrValue = reorderFunctionId + "ph" + id;
111
118
 
112
119
  if (placeholderRenderer) {
113
120
  out.write('<span id="' + placeholderIdAttrValue + '">');
@@ -211,7 +218,11 @@ function renderContents(err, data, input, out) {
211
218
  if (err) {
212
219
  if (input.catch) {
213
220
  if (errorRenderer) {
214
- errorRenderer(out, err);
221
+ try {
222
+ errorRenderer(out, err);
223
+ } catch (err2) {
224
+ out.error(err2);
225
+ }
215
226
  }
216
227
  } else {
217
228
  out.error(err);
@@ -24,6 +24,10 @@ module.exports = function (input, out) {
24
24
  out.flush();
25
25
  }
26
26
 
27
+ /** SHOULD MATCH THE renderer.js IMPLEMENTATION */
28
+ var reorderFunctionId =
29
+ out.global.runtimeId !== "M" ? "af" + out.global.runtimeId : "af";
30
+
27
31
  var asyncOut = out.beginAsync({
28
32
  last: true,
29
33
  timeout: -1,
@@ -46,65 +50,96 @@ module.exports = function (input, out) {
46
50
  }
47
51
 
48
52
  function handleAwait(awaitInfo) {
49
- awaitInfo.out
50
- .on("___toString", out.emit.bind(out, "___toString"))
51
- .on("finish", function (result) {
52
- if (!global._afRuntime) {
53
- // Minified version of ./client-reorder-runtime.js
53
+ let flushedScript = false;
54
+ let flushedContent = false;
55
+ let flushedPlaceholder = awaitInfo.parent._state.finished;
56
+ if (flushedPlaceholder) {
57
+ if (awaitInfo.out._state.finished) {
58
+ writeResult(awaitInfo.out.___getResult());
59
+ return;
60
+ }
61
+ } else {
62
+ awaitInfo.parent.on("___toString", () => {
63
+ flushedPlaceholder = true;
64
+ if (!flushedScript && flushedContent) {
65
+ flushedScript = true;
54
66
  asyncOut.script(
55
- `function $af(d,a,e,l,g,h,k,b,f,c){c=$af;if(a&&!c[a])(c[a+="$"]||(c[a]=[])).push(d);else{e=document;l=e.getElementById("af"+d);g=e.getElementById("afph"+d);h=e.createDocumentFragment();k=l.childNodes;b=0;for(f=k.length;b<f;b++)h.appendChild(k.item(0));g&&g.parentNode.replaceChild(h,g);c[d]=1;if(a=c[d+"$"])for(b=0,f=a.length;b<f;b++)c(a[b])}}`
67
+ `$${reorderFunctionId}(` +
68
+ (typeof awaitInfo.id === "number"
69
+ ? awaitInfo.id
70
+ : '"' + awaitInfo.id + '"') +
71
+ (awaitInfo.after ? ',"' + awaitInfo.after + '"' : "") +
72
+ ")"
56
73
  );
57
- global._afRuntime = true;
58
74
  }
75
+ });
76
+ }
59
77
 
60
- if (global.cspNonce) {
61
- asyncOut.write(
62
- '<style nonce="' +
63
- escapeDoubleQuotes(global.cspNonce) +
64
- '">' +
65
- "#af" +
66
- awaitInfo.id +
67
- "{display:none;}" +
68
- "</style>" +
69
- '<div id="af' +
70
- awaitInfo.id +
71
- '">' +
72
- result.toString() +
73
- "</div>"
74
- );
75
- } else {
76
- asyncOut.write(
77
- '<div id="af' +
78
- awaitInfo.id +
79
- '" style="display:none">' +
80
- result.toString() +
81
- "</div>"
82
- );
83
- }
78
+ awaitInfo.out
79
+ .on("___toString", out.emit.bind(out, "___toString"))
80
+ .on("finish", writeResult)
81
+ .on("error", function (err) {
82
+ asyncOut.error(err);
83
+ });
84
+
85
+ function writeResult(result) {
86
+ flushedContent = true;
87
+ if (!global._afRuntime) {
88
+ // Minified version of ./client-reorder-runtime.js
89
+ asyncOut.script(
90
+ `function $${reorderFunctionId}(d,a,e,l,g,h,k,b,f,c){c=$${reorderFunctionId};if(a&&!c[a])(c[a+="$"]||(c[a]=[])).push(d);else{e=document;l=e.getElementById("${reorderFunctionId}"+d);g=e.getElementById("${reorderFunctionId}ph"+d);h=e.createDocumentFragment();k=l.childNodes;b=0;for(f=k.length;b<f;b++)h.appendChild(k.item(0));g&&g.parentNode.replaceChild(h,g);c[d]=1;if(a=c[d+"$"])for(b=0,f=a.length;b<f;b++)c(a[b])}}`
91
+ );
92
+ global._afRuntime = true;
93
+ }
94
+
95
+ if (global.cspNonce) {
96
+ asyncOut.write(
97
+ '<style nonce="' +
98
+ escapeDoubleQuotes(global.cspNonce) +
99
+ '">' +
100
+ `#${reorderFunctionId}` +
101
+ awaitInfo.id +
102
+ "{display:none;}" +
103
+ "</style>" +
104
+ `<div id="${reorderFunctionId}` +
105
+ awaitInfo.id +
106
+ '">' +
107
+ result.toString() +
108
+ "</div>"
109
+ );
110
+ } else {
111
+ asyncOut.write(
112
+ `<div id="${reorderFunctionId}` +
113
+ awaitInfo.id +
114
+ '" style="display:none">' +
115
+ result.toString() +
116
+ "</div>"
117
+ );
118
+ }
84
119
 
120
+ if (!flushedScript && flushedPlaceholder) {
121
+ flushedScript = true;
85
122
  asyncOut.script(
86
- "$af(" +
123
+ `$${reorderFunctionId}(` +
87
124
  (typeof awaitInfo.id === "number"
88
125
  ? awaitInfo.id
89
126
  : '"' + awaitInfo.id + '"') +
90
127
  (awaitInfo.after ? ',"' + awaitInfo.after + '"' : "") +
91
128
  ")"
92
129
  );
130
+ }
93
131
 
94
- awaitInfo.out.writer = asyncOut.writer;
132
+ awaitInfo.out.writer = asyncOut.writer;
95
133
 
96
- out.emit("await:finish", awaitInfo);
134
+ out.emit("await:finish", awaitInfo);
97
135
 
98
- out.flush();
136
+ out.flush();
99
137
 
100
- if (--remaining === 0) {
101
- asyncOut.end();
102
- next();
103
- }
104
- })
105
- .on("error", function (err) {
106
- asyncOut.error(err);
107
- });
138
+ if (--remaining === 0) {
139
+ asyncOut.end();
140
+ next();
141
+ }
142
+ }
108
143
  }
109
144
 
110
145
  awaitContext.instances.forEach(handleAwait);
@@ -12,13 +12,15 @@ module.exports = function migrate(el, context) {
12
12
  return;
13
13
  }
14
14
 
15
- context.createWalker({
16
- enter(node) {
17
- if (isWidgetMemberExpression(node)) {
18
- node.object.name = "component";
19
- }
20
- },
21
- }).walk(value);
15
+ context
16
+ .createWalker({
17
+ enter(node) {
18
+ if (isWidgetMemberExpression(node)) {
19
+ node.object.name = "component";
20
+ }
21
+ },
22
+ })
23
+ .walk(value);
22
24
  });
23
25
  };
24
26
 
@@ -1,6 +1,8 @@
1
1
  // eslint-disable-next-line no-constant-condition
2
2
  if ("MARKO_DEBUG") {
3
- require("complain")("marko-widgets is deprecated. When upgrading to Marko 5 ensure marko-widgets@8 is installed for compatibility.");
3
+ require("complain")(
4
+ "marko-widgets is deprecated. When upgrading to Marko 5 ensure marko-widgets@8 is installed for compatibility."
5
+ );
4
6
  }
5
7
 
6
8
  module.exports = require("@internal/components-entry-legacy");
@@ -1,3 +1,3 @@
1
1
  module.exports = function interopRequireDefault(mod) {
2
2
  return mod.default || mod;
3
- }
3
+ };