marko 4.26.5 → 4.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/CHANGELOG.md +2510 -0
  2. package/README.md +1 -1
  3. package/bin/markoc.js +15 -15
  4. package/dist/compiler/CompileContext.js +1 -0
  5. package/dist/compiler/ast/CustomTag.js +2 -2
  6. package/dist/core-tags/components/TransformHelper/convertToComponent.js +1 -1
  7. package/dist/core-tags/components/TransformHelper/handleLegacyBind.js +0 -4
  8. package/dist/core-tags/core/await/renderer.js +0 -4
  9. package/dist/core-tags/migrate/all-tags/body-only-if.js +0 -1
  10. package/dist/core-tags/migrate/all-tags/control-flow-directives.js +0 -1
  11. package/dist/core-tags/migrate/all-tags/dynamic-attributes.js +1 -2
  12. package/dist/core-tags/migrate/all-tags/include-directive.js +0 -2
  13. package/dist/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -2
  14. package/dist/core-tags/migrate/all-tags/marko-init.js +0 -2
  15. package/dist/core-tags/migrate/all-tags/modifier-key.js +0 -2
  16. package/dist/core-tags/migrate/all-tags/ref.js +1 -3
  17. package/dist/core-tags/migrate/all-tags/w-bind.js +0 -2
  18. package/dist/core-tags/migrate/all-tags/w-body.js +0 -2
  19. package/dist/core-tags/migrate/all-tags/w-config.js +0 -2
  20. package/dist/core-tags/migrate/all-tags/w-for.js +0 -3
  21. package/dist/core-tags/migrate/all-tags/w-id.js +1 -4
  22. package/dist/core-tags/migrate/all-tags/w-on.js +1 -4
  23. package/dist/core-tags/migrate/all-tags/w-preserve-attrs.js +0 -2
  24. package/dist/core-tags/migrate/all-tags/w-preserve.js +1 -3
  25. package/dist/core-tags/migrate/all-tags/widget-in-attrs.js +2 -11
  26. package/dist/core-tags/migrate/all-templates/non-standard-template-literals.js +0 -4
  27. package/dist/core-tags/migrate/all-templates/render-calls.js +0 -2
  28. package/dist/core-tags/migrate/assign-tag.js +0 -2
  29. package/dist/core-tags/migrate/async-fragment-tag.js +0 -2
  30. package/dist/core-tags/migrate/async-fragments-tag.js +0 -2
  31. package/dist/core-tags/migrate/await-tag.js +0 -7
  32. package/dist/core-tags/migrate/class-tag.js +0 -2
  33. package/dist/core-tags/migrate/component-globals-tag.js +0 -2
  34. package/dist/core-tags/migrate/for-tag.js +0 -2
  35. package/dist/core-tags/migrate/include-tag.js +0 -1
  36. package/dist/core-tags/migrate/invoke-tag.js +0 -2
  37. package/dist/core-tags/migrate/layout-placeholder-tag.js +0 -1
  38. package/dist/core-tags/migrate/layout-put-tag.js +0 -1
  39. package/dist/core-tags/migrate/layout-use-tag.js +0 -1
  40. package/dist/core-tags/migrate/macro-body-tag.js +0 -2
  41. package/dist/core-tags/migrate/macro-tag.js +0 -2
  42. package/dist/core-tags/migrate/unless-tag.js +0 -1
  43. package/dist/core-tags/migrate/var-tag.js +0 -2
  44. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -10
  45. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -4
  46. package/dist/node_modules/@internal/components-registry/index-browser.js +2 -0
  47. package/dist/runtime/RenderResult.js +0 -3
  48. package/dist/runtime/components/Component.js +0 -6
  49. package/dist/runtime/components/ComponentDef.js +0 -3
  50. package/dist/runtime/components/ServerComponent.js +0 -4
  51. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -3
  52. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -6
  53. package/dist/runtime/components/legacy/index.js +3 -1
  54. package/dist/runtime/helpers/dynamic-tag.js +3 -0
  55. package/dist/runtime/helpers/for-of.js +3 -1
  56. package/dist/runtime/helpers/interop-require.js +3 -0
  57. package/dist/runtime/html/helpers/attr.js +0 -4
  58. package/dist/runtime/html/helpers/attrs.js +0 -2
  59. package/dist/runtime/html/helpers/merge-attrs.js +0 -3
  60. package/dist/runtime/vdom/VElement.js +0 -3
  61. package/dist/runtime/vdom/helpers/attrs.js +0 -2
  62. package/dist/taglib/taglib-finder/index.js +1 -1
  63. package/dist/taglib/taglib-loader/Taglib.js +2 -1
  64. package/dist/taglib/taglib-loader/index.js +2 -2
  65. package/dist/taglib/taglib-loader/loadTagFromProps.js +15 -0
  66. package/dist/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
  67. package/dist/taglib/taglib-loader/loadTaglibFromProps.js +12 -0
  68. package/docs/10-awesome-marko-features.md +1 -1
  69. package/docs/body-content.md +3 -3
  70. package/docs/class-components.md +6 -6
  71. package/docs/express.md +1 -1
  72. package/docs/fastify.md +4 -4
  73. package/docs/hapi.md +3 -3
  74. package/docs/http.md +1 -1
  75. package/docs/huncwot.md +1 -1
  76. package/docs/installing.md +2 -2
  77. package/docs/koa.md +2 -2
  78. package/docs/lasso.md +1 -1
  79. package/docs/marko-4-upgrade.md +1 -1
  80. package/docs/marko-v4.md +4 -4
  81. package/docs/marko-vs-react.md +2 -2
  82. package/docs/rendering.md +6 -6
  83. package/docs/server-side-rendering.md +3 -3
  84. package/docs/webpack.md +16 -16
  85. package/docs/why-is-marko-fast.md +3 -3
  86. package/package.json +1 -2
  87. package/src/compiler/Builder.js +13 -13
  88. package/src/compiler/CodeGenerator.js +2 -2
  89. package/src/compiler/CodeWriter.js +1 -1
  90. package/src/compiler/CompileContext.js +31 -30
  91. package/src/compiler/Compiler.js +3 -3
  92. package/src/compiler/HtmlJsParser.js +4 -4
  93. package/src/compiler/Migrator.js +2 -2
  94. package/src/compiler/Normalizer.js +5 -5
  95. package/src/compiler/Parser.js +11 -11
  96. package/src/compiler/Walker.js +1 -1
  97. package/src/compiler/ast/ArrayExpression.js +1 -1
  98. package/src/compiler/ast/BinaryExpression.js +1 -1
  99. package/src/compiler/ast/ConditionalExpression.js +1 -1
  100. package/src/compiler/ast/CustomTag.js +14 -14
  101. package/src/compiler/ast/Declaration.js +2 -2
  102. package/src/compiler/ast/DocumentType.js +2 -2
  103. package/src/compiler/ast/ForEach.js +1 -1
  104. package/src/compiler/ast/ForEachProp.js +1 -1
  105. package/src/compiler/ast/ForRange.js +1 -1
  106. package/src/compiler/ast/HtmlAttribute/html/generateCode.js +4 -4
  107. package/src/compiler/ast/HtmlAttribute/vdom/generateCode.js +2 -2
  108. package/src/compiler/ast/HtmlAttributeCollection.js +3 -3
  109. package/src/compiler/ast/HtmlComment.js +1 -1
  110. package/src/compiler/ast/HtmlElement/html/EndTag.js +1 -1
  111. package/src/compiler/ast/HtmlElement/html/StartTag.js +3 -3
  112. package/src/compiler/ast/HtmlElement/html/generateCode.js +5 -5
  113. package/src/compiler/ast/HtmlElement/index.js +1 -1
  114. package/src/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js +1 -1
  115. package/src/compiler/ast/HtmlElement/vdom/generateCode.js +3 -3
  116. package/src/compiler/ast/If.js +1 -1
  117. package/src/compiler/ast/LogicalExpression.js +1 -1
  118. package/src/compiler/ast/MemberExpression.js +1 -1
  119. package/src/compiler/ast/NewExpression.js +1 -1
  120. package/src/compiler/ast/Node.js +4 -4
  121. package/src/compiler/ast/ObjectExpression.js +2 -2
  122. package/src/compiler/ast/Property.js +1 -1
  123. package/src/compiler/ast/SequenceExpression.js +1 -1
  124. package/src/compiler/ast/TemplateLiteral.js +1 -1
  125. package/src/compiler/ast/TemplateRoot.js +3 -3
  126. package/src/compiler/ast/Text/index.js +1 -1
  127. package/src/compiler/ast/UnaryExpression.js +1 -1
  128. package/src/compiler/ast/UpdateExpression.js +1 -1
  129. package/src/compiler/config.js +1 -1
  130. package/src/compiler/index.js +5 -5
  131. package/src/compiler/modules.js +2 -2
  132. package/src/compiler/util/UniqueVars.js +4 -4
  133. package/src/compiler/util/convertRawJavaScriptAst.js +1 -1
  134. package/src/compiler/util/javaScriptReservedWords.js +1 -1
  135. package/src/compiler/util/macros.js +1 -1
  136. package/src/compiler/util/mergeProps.js +3 -3
  137. package/src/compiler/util/parseJavaScriptArgs.js +1 -1
  138. package/src/compiler/util/parseJavaScriptParams.js +1 -1
  139. package/src/compiler/util/parseRawJavaScriptAst.js +1 -1
  140. package/src/compiler/util/removeComments.js +6 -6
  141. package/src/compiler/util/tokenizer.js +3 -3
  142. package/src/compiler/util/vdom/VDOMOptimizer.js +2 -2
  143. package/src/core-tags/cache/cached-fragment-tag.js +2 -2
  144. package/src/core-tags/cache/default-cache-manager.js +2 -2
  145. package/src/core-tags/components/TransformHelper/ComponentArgsCompiler.js +3 -3
  146. package/src/core-tags/components/TransformHelper/assignComponentId.js +3 -3
  147. package/src/core-tags/components/TransformHelper/convertToComponent.js +7 -5
  148. package/src/core-tags/components/TransformHelper/getComponentFiles.js +1 -1
  149. package/src/core-tags/components/TransformHelper/handleComponentEvents.js +3 -3
  150. package/src/core-tags/components/TransformHelper/handleComponentPreserve.js +7 -7
  151. package/src/core-tags/components/TransformHelper/handleLegacyBind.js +2 -8
  152. package/src/core-tags/components/TransformHelper/handleRootNodes.js +14 -14
  153. package/src/core-tags/components/TransformHelper/handleScopedAttrs.js +1 -1
  154. package/src/core-tags/components/TransformHelper/index.js +1 -1
  155. package/src/core-tags/components/component-tag.js +1 -1
  156. package/src/core-tags/components/components-transformer.js +2 -2
  157. package/src/core-tags/components/util/generateRegisterComponentCode.js +2 -2
  158. package/src/core-tags/components/widget-types-tag.js +2 -2
  159. package/src/core-tags/core/await/AsyncValue.js +1 -1
  160. package/src/core-tags/core/await/renderer.js +3 -12
  161. package/src/core-tags/core/await/reorderer-renderer.js +1 -1
  162. package/src/core-tags/core/core-transformer.js +5 -5
  163. package/src/core-tags/core/html-comment-tag.js +1 -1
  164. package/src/core-tags/core/import-tag.js +1 -1
  165. package/src/core-tags/core/util/parseImport.js +8 -8
  166. package/src/core-tags/html/normalize-script-text.js +1 -1
  167. package/src/core-tags/migrate/all-tags/body-only-if.js +4 -5
  168. package/src/core-tags/migrate/all-tags/control-flow-directives.js +2 -5
  169. package/src/core-tags/migrate/all-tags/dynamic-attributes.js +1 -4
  170. package/src/core-tags/migrate/all-tags/include-directive.js +0 -4
  171. package/src/core-tags/migrate/all-tags/index.js +2 -2
  172. package/src/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -5
  173. package/src/core-tags/migrate/all-tags/marko-init.js +2 -8
  174. package/src/core-tags/migrate/all-tags/modifier-key.js +1 -7
  175. package/src/core-tags/migrate/all-tags/params.js +1 -1
  176. package/src/core-tags/migrate/all-tags/ref.js +1 -5
  177. package/src/core-tags/migrate/all-tags/w-bind.js +8 -12
  178. package/src/core-tags/migrate/all-tags/w-body.js +3 -7
  179. package/src/core-tags/migrate/all-tags/w-config.js +1 -5
  180. package/src/core-tags/migrate/all-tags/w-for.js +1 -8
  181. package/src/core-tags/migrate/all-tags/w-id.js +1 -8
  182. package/src/core-tags/migrate/all-tags/w-on.js +2 -9
  183. package/src/core-tags/migrate/all-tags/w-preserve-attrs.js +1 -5
  184. package/src/core-tags/migrate/all-tags/w-preserve.js +3 -7
  185. package/src/core-tags/migrate/all-tags/widget-in-attrs.js +4 -17
  186. package/src/core-tags/migrate/all-templates/index.js +2 -2
  187. package/src/core-tags/migrate/all-templates/non-standard-template-literals.js +6 -12
  188. package/src/core-tags/migrate/all-templates/render-calls.js +4 -8
  189. package/src/core-tags/migrate/all-templates/widget-data-is-state.js +2 -2
  190. package/src/core-tags/migrate/all-templates/widget-get-template-data.js +2 -2
  191. package/src/core-tags/migrate/assign-tag.js +2 -6
  192. package/src/core-tags/migrate/async-fragment-tag.js +2 -6
  193. package/src/core-tags/migrate/async-fragments-tag.js +0 -4
  194. package/src/core-tags/migrate/await-tag.js +8 -23
  195. package/src/core-tags/migrate/class-tag.js +0 -4
  196. package/src/core-tags/migrate/component-globals-tag.js +0 -4
  197. package/src/core-tags/migrate/for-tag.js +12 -16
  198. package/src/core-tags/migrate/include-tag.js +2 -5
  199. package/src/core-tags/migrate/invoke-tag.js +2 -6
  200. package/src/core-tags/migrate/layout-placeholder-tag.js +0 -3
  201. package/src/core-tags/migrate/layout-put-tag.js +0 -3
  202. package/src/core-tags/migrate/layout-use-tag.js +0 -3
  203. package/src/core-tags/migrate/macro-body-tag.js +0 -5
  204. package/src/core-tags/migrate/macro-tag.js +5 -10
  205. package/src/core-tags/migrate/unless-tag.js +0 -3
  206. package/src/core-tags/migrate/util/addIdScopedAttr.js +1 -1
  207. package/src/core-tags/migrate/util/import-tag.js +6 -6
  208. package/src/core-tags/migrate/util/parseFor.js +20 -20
  209. package/src/core-tags/migrate/util/renderCallToDynamicTag.js +7 -7
  210. package/src/core-tags/migrate/var-tag.js +4 -8
  211. package/src/express.js +1 -1
  212. package/src/hot-reload.js +3 -3
  213. package/src/node-require/index.js +1 -1
  214. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +2 -53
  215. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -10
  216. package/src/node_modules/@internal/components-registry/index-browser.js +2 -0
  217. package/src/runtime/RenderResult.js +3 -16
  218. package/src/runtime/components/Component.js +2 -23
  219. package/src/runtime/components/ComponentDef.js +2 -8
  220. package/src/runtime/components/ComponentsContext.js +1 -1
  221. package/src/runtime/components/ServerComponent.js +0 -6
  222. package/src/runtime/components/State.js +2 -2
  223. package/src/runtime/components/attach-detach.js +1 -1
  224. package/src/runtime/components/dom-data.js +1 -1
  225. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -5
  226. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -16
  227. package/src/runtime/components/legacy/dependencies/index.js +10 -10
  228. package/src/runtime/components/legacy/index.js +5 -0
  229. package/src/runtime/components/legacy/renderer-legacy.js +1 -1
  230. package/src/runtime/components/update-manager.js +1 -1
  231. package/src/runtime/dom-insert.js +1 -1
  232. package/src/runtime/helpers/_weak-map.js +1 -1
  233. package/src/runtime/helpers/bind-component.js +1 -1
  234. package/src/runtime/helpers/dynamic-tag.js +3 -0
  235. package/src/runtime/helpers/for-of.js +1 -6
  236. package/src/runtime/helpers/interop-require.js +3 -0
  237. package/src/runtime/html/AsyncStream.js +5 -5
  238. package/src/runtime/html/BufferedWriter.js +1 -1
  239. package/src/runtime/html/StringWriter.js +1 -1
  240. package/src/runtime/html/helpers/attr.js +0 -9
  241. package/src/runtime/html/helpers/attrs.js +0 -6
  242. package/src/runtime/html/helpers/merge-attrs.js +0 -8
  243. package/src/runtime/html/index.js +1 -1
  244. package/src/runtime/renderable.js +1 -1
  245. package/src/runtime/vdom/AsyncVDOMBuilder.js +2 -2
  246. package/src/runtime/vdom/VComment.js +1 -1
  247. package/src/runtime/vdom/VComponent.js +1 -1
  248. package/src/runtime/vdom/VDocumentFragment.js +1 -1
  249. package/src/runtime/vdom/VElement.js +4 -11
  250. package/src/runtime/vdom/VFragment.js +1 -1
  251. package/src/runtime/vdom/VNode.js +1 -1
  252. package/src/runtime/vdom/VText.js +1 -1
  253. package/src/runtime/vdom/helpers/attrs.js +0 -7
  254. package/src/runtime/vdom/index.js +1 -1
  255. package/src/runtime/vdom/morphdom/fragment.js +1 -1
  256. package/src/runtime/vdom/morphdom/specialElHandlers.js +1 -1
  257. package/src/taglib/taglib-finder/index.js +6 -6
  258. package/src/taglib/taglib-loader/Tag.js +8 -8
  259. package/src/taglib/taglib-loader/Taglib.js +3 -2
  260. package/src/taglib/taglib-loader/index.js +2 -2
  261. package/src/taglib/taglib-loader/loadAttributeFromProps.js +1 -1
  262. package/src/taglib/taglib-loader/loadTagFromProps.js +29 -14
  263. package/src/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
  264. package/src/taglib/taglib-loader/loadTaglibFromProps.js +27 -9
  265. package/src/taglib/taglib-loader/scanTagsDir.js +6 -6
  266. package/src/taglib/taglib-lookup/TaglibLookup.js +8 -8
@@ -11,7 +11,7 @@ function getRootDeps(template, context) {
11
11
  attachDepsAndComponentsToTemplate(template, context);
12
12
 
13
13
  var deps = (template.___depsArray = Object.keys(template.___deps).map(
14
- key => template.___deps[key]
14
+ (key) => template.___deps[key]
15
15
  ));
16
16
  var initModule = getInitModule(template.path, template.___components);
17
17
 
@@ -20,7 +20,7 @@ function getRootDeps(template, context) {
20
20
  deps.push({
21
21
  type: "require",
22
22
  path: require.resolve("../../boot"),
23
- run: true
23
+ run: true,
24
24
  });
25
25
 
26
26
  // these dependencies should be last
@@ -59,7 +59,7 @@ function attachDepsAndComponentsToTemplate(target, context) {
59
59
  var root = nodePath.dirname(template.path);
60
60
 
61
61
  if (meta.deps) {
62
- meta.deps.forEach(dep => {
62
+ meta.deps.forEach((dep) => {
63
63
  dep = resolveDep(dep, root, context);
64
64
  deps[dep.virtualPath || dep.path] = dep;
65
65
  });
@@ -69,12 +69,12 @@ function attachDepsAndComponentsToTemplate(target, context) {
69
69
  var resolveFrom = (context && context.resolveFrom) || defaultResolveFrom;
70
70
  components[meta.id] = {
71
71
  id: meta.id,
72
- path: resolveFrom(root, meta.component)
72
+ path: resolveFrom(root, meta.component),
73
73
  };
74
74
  }
75
75
 
76
76
  if (meta.tags) {
77
- meta.tags.forEach(tagPath => {
77
+ meta.tags.forEach((tagPath) => {
78
78
  var resolveFrom = context.resolveFrom || defaultResolveFrom;
79
79
  var tag = resolveFrom(root, tagPath);
80
80
  var ext = nodePath.extname(tag);
@@ -100,13 +100,13 @@ function getInitModule(path, components) {
100
100
  var module = null;
101
101
 
102
102
  if (components) {
103
- components = Object.keys(components).map(key => components[key]);
103
+ components = Object.keys(components).map((key) => components[key]);
104
104
 
105
105
  if (components.length) {
106
106
  var root = nodePath.dirname(path);
107
107
  var virtualPath = path + ".init.js";
108
108
  var registrations = components.map(
109
- component =>
109
+ (component) =>
110
110
  `components.register('${component.id}', require('.${
111
111
  nodePath.sep
112
112
  }${nodePath.relative(root, component.path)}'));`
@@ -128,8 +128,8 @@ function getInitModule(path, components) {
128
128
  } else {
129
129
  return code;
130
130
  }
131
- }
132
- }
131
+ },
132
+ },
133
133
  };
134
134
  }
135
135
  }
@@ -167,7 +167,7 @@ function parseDependencyString(string) {
167
167
  var match = /^(?:([\w-]+)(?::\s*|\s+))?(.*?(?:\.(\w+))?)$/.exec(string);
168
168
  return {
169
169
  type: match[1] || match[3],
170
- path: match[2]
170
+ path: match[2],
171
171
  };
172
172
  }
173
173
 
@@ -1 +1,6 @@
1
+ // eslint-disable-next-line no-constant-condition
2
+ if ("MARKO_DEBUG") {
3
+ require("complain")("marko-widgets is deprecated. When upgrading to Marko 5 ensure marko-widgets@8 is installed for compatibility.");
4
+ }
5
+
1
6
  module.exports = require("@internal/components-entry-legacy");
@@ -103,7 +103,7 @@ function createRendererFunc(templateRenderFunc, componentProps) {
103
103
  isFakeComponent = true;
104
104
  component = {
105
105
  id: id,
106
- ___keyedElements: {}
106
+ ___keyedElements: {},
107
107
  };
108
108
  } else {
109
109
  component.___updateQueued = true;
@@ -54,7 +54,7 @@ function batchUpdate(func) {
54
54
  // batched update completes we invoke the "afterUpdate"
55
55
  // event listeners.
56
56
  var batch = {
57
- ___queue: null
57
+ ___queue: null,
58
58
  };
59
59
 
60
60
  batchStack.push(batch);
@@ -72,6 +72,6 @@ module.exports = function (target, getEl, afterInsert) {
72
72
  var el = getEl(this, referenceEl);
73
73
  insertAfter(el, referenceEl, referenceEl.parentNode);
74
74
  return afterInsert(this, referenceEl);
75
- }
75
+ },
76
76
  });
77
77
  };
@@ -10,6 +10,6 @@ module.exports =
10
10
  },
11
11
  set: function (ref, value) {
12
12
  ref[id] = value;
13
- }
13
+ },
14
14
  };
15
15
  };
@@ -12,7 +12,7 @@ module.exports = function (componentProps) {
12
12
  return function bindComponent(renderBody, out) {
13
13
  renderer(
14
14
  {
15
- $renderBody: renderBody
15
+ $renderBody: renderBody,
16
16
  },
17
17
  out
18
18
  );
@@ -5,6 +5,7 @@ var changeCase = require("./_change-case");
5
5
  var ComponentsContext = require("../components/ComponentsContext");
6
6
  var getComponentsContext = ComponentsContext.___getComponentsContext;
7
7
  var ComponentDef = require("../components/ComponentDef");
8
+ var interopRequire = require("./interop-require");
8
9
  var w10NOOP = require("warp10/constants").NOOP;
9
10
  var RENDER_BODY_TO_JSON = function () {
10
11
  return w10NOOP;
@@ -66,6 +67,8 @@ module.exports = function dynamicTag(
66
67
  }
67
68
  }
68
69
 
70
+ tag = interopRequire(tag);
71
+
69
72
  var renderer =
70
73
  tag._ ||
71
74
  (tag.renderer ? tag.renderer.renderer || tag.renderer : tag.render);
@@ -9,12 +9,7 @@ module.exports = function forOf(array, callback) {
9
9
  var i;
10
10
 
11
11
  if (array == null) {
12
- // eslint-disable-next-line no-constant-condition
13
- if ("MARKO_DEBUG") {
14
- complain(
15
- "Passing a non iterable to a <for> loop is deprecated. Prefer to use an <if> around the loop instead."
16
- );
17
- }
12
+ // ignore
18
13
  } else if (Array.isArray(array)) {
19
14
  for (i = 0; i < array.length; i++) {
20
15
  callback(array[i], i, array);
@@ -0,0 +1,3 @@
1
+ module.exports = function interopRequireDefault(mod) {
2
+ return mod.default || mod;
3
+ }
@@ -23,7 +23,7 @@ var voidWriter = {
23
23
  },
24
24
  toString: function () {
25
25
  return "";
26
- }
26
+ },
27
27
  };
28
28
 
29
29
  function State(root, stream, writer, events) {
@@ -237,7 +237,7 @@ var proto = (AsyncStream.prototype = {
237
237
  writer: newStream, // Legacy
238
238
  parentWriter: this, // Legacy
239
239
  out: newStream,
240
- parentOut: this
240
+ parentOut: this,
241
241
  });
242
242
 
243
243
  return newStream;
@@ -498,7 +498,7 @@ var proto = (AsyncStream.prototype = {
498
498
  newOut.on("error", this.emit.bind(this, "error"));
499
499
  this._state.events.emit("beginDetachedAsync", {
500
500
  out: newOut,
501
- parentOut: this
501
+ parentOut: this,
502
502
  });
503
503
  return newOut;
504
504
  },
@@ -655,7 +655,7 @@ var proto = (AsyncStream.prototype = {
655
655
  this.___assignedComponentDef = componentDef;
656
656
  this.___assignedKey = key;
657
657
  this.___assignedCustomEvents = customEvents;
658
- }
658
+ },
659
659
  });
660
660
 
661
661
  // alias:
@@ -669,6 +669,6 @@ function getNonMarkoStack(error) {
669
669
  .toString()
670
670
  .split("\n")
671
671
  .slice(1)
672
- .filter(line => !/\/node_modules\/marko\//.test(line))
672
+ .filter((line) => !/\/node_modules\/marko\//.test(line))
673
673
  .join("\n");
674
674
  }
@@ -30,7 +30,7 @@ BufferedWriter.prototype = Object.assign(
30
30
  if (!this._wrapped.isTTY) {
31
31
  this._wrapped.end();
32
32
  }
33
- }
33
+ },
34
34
  },
35
35
  StringWriter.prototype
36
36
  );
@@ -67,7 +67,7 @@ StringWriter.prototype = {
67
67
  str += `<script${nonceAttr}>${this._scripts}</script>`;
68
68
  }
69
69
  return str;
70
- }
70
+ },
71
71
  };
72
72
 
73
73
  module.exports = StringWriter;
@@ -3,7 +3,6 @@
3
3
  var escapeQuoteHelpers = require("./escape-quotes");
4
4
  var escapeDoubleQuotes = escapeQuoteHelpers.___escapeDoubleQuotes;
5
5
  var escapeSingleQuotes = escapeQuoteHelpers.___escapeSingleQuotes;
6
- var complain = "MARKO_DEBUG" && require("complain");
7
6
 
8
7
  module.exports = maybeEmptyAttr;
9
8
 
@@ -30,14 +29,6 @@ function notEmptyAttr(name, value) {
30
29
  switch (value.toString) {
31
30
  case Object.prototype.toString:
32
31
  case Array.prototype.toString:
33
- // eslint-disable-next-line no-constant-condition
34
- if ("MARKO_DEBUG") {
35
- complain(
36
- "Relying on JSON.stringify for attribute values is deprecated, in future versions of Marko these will be cast to strings instead.",
37
- { locationIndex: 2 }
38
- );
39
- }
40
-
41
32
  return " " + name + singleQuote(JSON.stringify(value), 2);
42
33
  case RegExp.prototype.toString:
43
34
  return " " + name + guessQuotes(value.source);
@@ -12,12 +12,6 @@ module.exports = function attrs(arg) {
12
12
  }
13
13
  return result;
14
14
  case "string":
15
- // eslint-disable-next-line no-constant-condition
16
- if ("MARKO_DEBUG") {
17
- complain(
18
- "Passing a string as a dynamic attribute value is deprecated - More details: https://github.com/marko-js/marko/wiki/Deprecation:-String-as-dynamic-attribute-value"
19
- );
20
- }
21
15
  return arg;
22
16
  default:
23
17
  return "";
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var complain = "MARKO_DEBUG" && require("complain");
4
3
  var dynamicAttrHelper = require("./_dynamic-attr");
5
4
 
6
5
  /**
@@ -13,13 +12,6 @@ module.exports = function mergeAttrs() {
13
12
  for (var i = arguments.length, last = i - 1; i--; ) {
14
13
  var source = arguments[i];
15
14
  if (typeof source === "string") {
16
- // eslint-disable-next-line no-constant-condition
17
- if ("MARKO_DEBUG") {
18
- complain(
19
- "Passing a string as dynamic attributes ('<div ${string}>' or '<div ...string>') is deprecated, use an object instead."
20
- );
21
- }
22
-
23
15
  if (source[0] !== " ") {
24
16
  result += " " + source;
25
17
  } else {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  globalThis.Marko = {
4
- Component: function () {}
4
+ Component: function () {},
5
5
  };
6
6
 
7
7
  /**
@@ -140,6 +140,6 @@ module.exports = function (target, renderer) {
140
140
  globalData.template = globalData.template || this;
141
141
 
142
142
  return safeRender(render, finalData, finalOut, shouldEnd);
143
- }
143
+ },
144
144
  });
145
145
  };
@@ -293,7 +293,7 @@ var proto = (AsyncVDOMBuilder.prototype = {
293
293
 
294
294
  state.___events.emit("beginAsync", {
295
295
  out: asyncOut,
296
- parentOut: this
296
+ parentOut: this,
297
297
  });
298
298
 
299
299
  return asyncOut;
@@ -443,7 +443,7 @@ var proto = (AsyncVDOMBuilder.prototype = {
443
443
  this.___assignedComponentDef = componentDef;
444
444
  this.___assignedKey = key;
445
445
  this.___assignedCustomEvents = customEvents;
446
- }
446
+ },
447
447
  });
448
448
 
449
449
  proto.e = proto.element;
@@ -16,7 +16,7 @@ VComment.prototype = {
16
16
 
17
17
  ___cloneNode: function () {
18
18
  return new VComment(this.___nodeValue);
19
- }
19
+ },
20
20
  };
21
21
 
22
22
  inherit(VComment, VNode);
@@ -9,7 +9,7 @@ function VComponent(component, key, ownerComponent, preserve) {
9
9
  }
10
10
 
11
11
  VComponent.prototype = {
12
- ___nodeType: 2
12
+ ___nodeType: 2,
13
13
  };
14
14
 
15
15
  inherit(VComponent, VNode);
@@ -24,7 +24,7 @@ VDocumentFragment.prototype = {
24
24
 
25
25
  ___actualize: function (host) {
26
26
  return (host.ownerDocument || host).createDocumentFragment();
27
- }
27
+ },
28
28
  };
29
29
 
30
30
  inherit(VDocumentFragment, VNode);
@@ -1,6 +1,5 @@
1
1
  /* jshint newcap:false */
2
2
 
3
- var complain = "MARKO_DEBUG" && require("complain");
4
3
  var domData = require("../components/dom-data");
5
4
  var componentsUtil = require("@internal/components-util");
6
5
  var vElementByDOMNode = domData.___vElementByDOMNode;
@@ -15,7 +14,7 @@ var NS_MATH = "http://www.w3.org/1998/Math/MathML";
15
14
  var NS_SVG = "http://www.w3.org/2000/svg";
16
15
  var DEFAULT_NS = {
17
16
  svg: NS_SVG,
18
- math: NS_MATH
17
+ math: NS_MATH,
19
18
  };
20
19
 
21
20
  var FLAG_SIMPLE_ATTRS = 1;
@@ -34,12 +33,6 @@ function convertAttrValue(type, value) {
34
33
  switch (value.toString) {
35
34
  case Object.prototype.toString:
36
35
  case Array.prototype.toString:
37
- // eslint-disable-next-line no-constant-condition
38
- if ("MARKO_DEBUG") {
39
- complain(
40
- "Relying on JSON.stringify for attribute values is deprecated, in future versions of Marko these will be cast to strings instead."
41
- );
42
- }
43
36
  return JSON.stringify(value);
44
37
  case RegExp.prototype.toString:
45
38
  return value.source;
@@ -212,7 +205,7 @@ VElement.prototype = {
212
205
  // different namespaces
213
206
  var value = this.___attributes[name];
214
207
  return value != null && value !== false;
215
- }
208
+ },
216
209
  };
217
210
 
218
211
  inherit(VElement, VNode);
@@ -224,7 +217,7 @@ var proto = (VElementClone.prototype = VElement.prototype);
224
217
  get: function () {
225
218
  var value = this.___attributes[name];
226
219
  return value !== false && value != null;
227
- }
220
+ },
228
221
  });
229
222
  });
230
223
 
@@ -240,7 +233,7 @@ defineProperty(proto, "___value", {
240
233
  this.___attributes.type === "radio"
241
234
  ? "on"
242
235
  : "";
243
- }
236
+ },
244
237
  });
245
238
 
246
239
  VElement.___removePreservedAttributes = function (attrs) {
@@ -18,7 +18,7 @@ VFragment.prototype = {
18
18
  keysByDOMNode.set(fragment, this.___key);
19
19
  vElementByDOMNode.set(fragment, this);
20
20
  return fragment;
21
- }
21
+ },
22
22
  };
23
23
 
24
24
  inherit(VFragment, VNode);
@@ -80,7 +80,7 @@ VNode.prototype = {
80
80
  } else {
81
81
  return this;
82
82
  }
83
- }
83
+ },
84
84
 
85
85
  // ,toJSON: function() {
86
86
  // var clone = Object.assign({
@@ -17,7 +17,7 @@ VText.prototype = {
17
17
 
18
18
  ___cloneNode: function () {
19
19
  return new VText(this.___nodeValue);
20
- }
20
+ },
21
21
  };
22
22
 
23
23
  inherit(VText, VNode);
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var complain = "MARKO_DEBUG" && require("complain");
4
3
  var classHelper = require("../../helpers/class-value");
5
4
  var styleHelper = require("../../helpers/style-value");
6
5
  var parseHTML = require("../parse-html");
@@ -10,12 +9,6 @@ var parseHTML = require("../parse-html");
10
9
  */
11
10
  module.exports = function (attributes) {
12
11
  if (typeof attributes === "string") {
13
- // eslint-disable-next-line no-constant-condition
14
- if ("MARKO_DEBUG") {
15
- complain(
16
- "Passing a string as a dynamic attribute value is deprecated - More details: https://github.com/marko-js/marko/wiki/Deprecation:-String-as-dynamic-attribute-value"
17
- );
18
- }
19
12
  return parseAttrs(attributes);
20
13
  }
21
14
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  typeof window === "object" &&
4
4
  (window.Marko = {
5
- Component: function () {}
5
+ Component: function () {},
6
6
  });
7
7
 
8
8
  /**
@@ -55,7 +55,7 @@ var fragmentPrototype = {
55
55
  this.nodes.forEach(function (node) {
56
56
  this.detachedContainer.appendChild(node);
57
57
  }, this);
58
- }
58
+ },
59
59
  };
60
60
 
61
61
  function createFragmentNode(startNode, nextNode, parentNode) {
@@ -100,7 +100,7 @@ SpecialElHandlers.prototype = {
100
100
  fromEl.selectedIndex = selected;
101
101
  }
102
102
  }
103
- }
103
+ },
104
104
  };
105
105
 
106
106
  module.exports = new SpecialElHandlers();
@@ -36,19 +36,19 @@ function getAllDependencyNames(pkg) {
36
36
  var map = {};
37
37
 
38
38
  if (pkg.dependencies) {
39
- Object.keys(pkg.dependencies).forEach(name => {
39
+ Object.keys(pkg.dependencies).forEach((name) => {
40
40
  map[name] = true;
41
41
  });
42
42
  }
43
43
 
44
44
  if (pkg.peerDependencies) {
45
- Object.keys(pkg.peerDependencies).forEach(name => {
45
+ Object.keys(pkg.peerDependencies).forEach((name) => {
46
46
  map[name] = true;
47
47
  });
48
48
  }
49
49
 
50
50
  if (pkg.devDependencies) {
51
- Object.keys(pkg.devDependencies).forEach(name => {
51
+ Object.keys(pkg.devDependencies).forEach((name) => {
52
52
  map[name] = true;
53
53
  });
54
54
  }
@@ -75,7 +75,7 @@ function find(dirname, registeredTaglibs) {
75
75
  added[taglib.id] = true;
76
76
  found.push(taglib);
77
77
  },
78
- foundTaglibPackages: {}
78
+ foundTaglibPackages: {},
79
79
  };
80
80
 
81
81
  var rootDirname = process.cwd(); // Don't search up past this directory
@@ -119,11 +119,11 @@ function find(dirname, registeredTaglibs) {
119
119
 
120
120
  if (rootPkg) {
121
121
  // Now look for `marko.json` from installed packages
122
- getAllDependencyNames(rootPkg).forEach(name => {
122
+ getAllDependencyNames(rootPkg).forEach((name) => {
123
123
  if (!excludedPackages[name]) {
124
124
  let taglibPath = resolveFrom(rootPkg.__dirname, name + "/marko.json");
125
125
  if (taglibPath) {
126
- var taglib = taglibLoader.loadTaglibFromFile(taglibPath);
126
+ var taglib = taglibLoader.loadTaglibFromFile(taglibPath, true);
127
127
  helper.addTaglib(taglib);
128
128
  }
129
129
  }
@@ -98,24 +98,24 @@ class Tag {
98
98
  attr.filePath = this.filePath;
99
99
  if (attr.name === "key" && !this.isCoreTag()) {
100
100
  complain("@key property is deprecated", {
101
- location: this.filePath
101
+ location: this.filePath,
102
102
  });
103
103
  }
104
104
  //
105
105
  if (attr.setFlag && attr.setFlag !== "hasComponentEvents") {
106
106
  complain(`${attr.name} - : set-flag property is deprecated`, {
107
- location: this.filePath
107
+ location: this.filePath,
108
108
  });
109
109
  }
110
110
  if (attr.type === "template") {
111
111
  complain(`${attr.name} - attribute template type is deprecated`, {
112
- location: this.filePath
112
+ location: this.filePath,
113
113
  });
114
114
  }
115
115
 
116
116
  if (attr.type === "path") {
117
117
  complain(`${attr.name} - attribute path type is deprecated`, {
118
- location: this.filePath
118
+ location: this.filePath,
119
119
  });
120
120
  }
121
121
  }
@@ -137,7 +137,7 @@ class Tag {
137
137
  complain(
138
138
  'The default "targetProperty" for "@*" attribute definitions is changing from "*" to "null" (merged in with the rest of the input) in a future Marko release. In order to avoid an issue upgrading, please explicitly define the "targetProperty".',
139
139
  {
140
- location: this.filePath
140
+ location: this.filePath,
141
141
  }
142
142
  );
143
143
  attr.targetProperty = "*";
@@ -186,13 +186,13 @@ class Tag {
186
186
  */
187
187
  addNestedVariable(nestedVariable) {
188
188
  complain("addNestedVariable is deprecated. Use tag parameters instead.", {
189
- location: this.filePath
189
+ location: this.filePath,
190
190
  });
191
191
 
192
192
  if (!this.nestedVariables) {
193
193
  this.nestedVariables = {
194
194
  __noMerge: true,
195
- vars: []
195
+ vars: [],
196
196
  };
197
197
  }
198
198
 
@@ -220,7 +220,7 @@ class Tag {
220
220
  this.bodyFunction = {
221
221
  __noMerge: true,
222
222
  name: name,
223
- params: params
223
+ params: params,
224
224
  };
225
225
  }
226
226
  /**
@@ -27,9 +27,10 @@ function handleImport(taglib, importedTaglib) {
27
27
  }
28
28
 
29
29
  class Taglib {
30
- constructor(filePath) {
30
+ constructor(filePath, isFromPackageJson) {
31
31
  ok(filePath, '"filePath" expected');
32
32
  this.filePath = this.path /* deprecated */ = this.id = filePath;
33
+ this.isFromPackageJson = isFromPackageJson === true;
33
34
  this.dirname = path.dirname(this.filePath);
34
35
  this.tags = {};
35
36
  this.textTransformers = [];
@@ -109,7 +110,7 @@ class Taglib {
109
110
  textTransformers: this.textTransformers,
110
111
  attributes: this.attributes,
111
112
  patternAttributes: this.patternAttributes,
112
- imports: this.imports
113
+ imports: this.imports,
113
114
  };
114
115
  }
115
116
  }
@@ -8,8 +8,8 @@ function loadTaglibFromProps(taglib, taglibProps) {
8
8
  return loaders.loadTaglibFromProps(taglib, taglibProps);
9
9
  }
10
10
 
11
- function loadTaglibFromFile(filePath) {
12
- return loaders.loadTaglibFromFile(filePath);
11
+ function loadTaglibFromFile(filePath, isFromPackageJson) {
12
+ return loaders.loadTaglibFromFile(filePath, isFromPackageJson);
13
13
  }
14
14
 
15
15
  function loadTaglibFromDir(filePath) {
@@ -22,7 +22,7 @@ class AttrLoader {
22
22
  attrProps = {};
23
23
  } else if (typeof attrProps === "string") {
24
24
  attrProps = {
25
- type: attrProps
25
+ type: attrProps,
26
26
  };
27
27
  } else {
28
28
  assert.ok(typeof attrProps === "object", 'Invalid "attrProps"');