marko 5.37.6 → 6.0.0-3.11

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 (648) hide show
  1. package/dist/common/attr-tag.d.ts +8 -0
  2. package/dist/common/compat-meta.d.ts +2 -0
  3. package/dist/common/for.d.ts +5 -0
  4. package/dist/common/helpers.d.ts +7 -0
  5. package/dist/common/meta.d.ts +2 -0
  6. package/dist/common/types.d.ts +105 -0
  7. package/dist/debug/dom.js +2111 -0
  8. package/dist/debug/dom.mjs +2088 -0
  9. package/dist/debug/html.js +2740 -0
  10. package/dist/debug/html.mjs +2663 -0
  11. package/dist/dom/abort-signal.d.ts +3 -0
  12. package/dist/dom/compat.d.ts +20 -0
  13. package/dist/dom/control-flow.d.ts +14 -0
  14. package/dist/dom/controllable.d.ts +12 -0
  15. package/dist/dom/dom.d.ts +19 -0
  16. package/dist/dom/event.d.ts +4 -0
  17. package/dist/dom/parse-html.d.ts +5 -0
  18. package/dist/dom/queue.d.ts +10 -0
  19. package/dist/dom/reconcile.d.ts +2 -0
  20. package/dist/dom/renderer.d.ts +21 -0
  21. package/dist/dom/resolve-cursor-position.d.ts +1 -0
  22. package/dist/dom/resume.d.ts +9 -0
  23. package/dist/dom/schedule.d.ts +2 -0
  24. package/dist/dom/scope.d.ts +7 -0
  25. package/dist/dom/signals.d.ts +39 -0
  26. package/dist/dom/template.d.ts +3 -0
  27. package/dist/dom/walker.d.ts +4 -0
  28. package/dist/dom.d.ts +15 -0
  29. package/dist/dom.js +1370 -0
  30. package/dist/dom.mjs +1350 -0
  31. package/dist/html/attrs.d.ts +14 -0
  32. package/dist/html/compat.d.ts +14 -0
  33. package/dist/html/content.d.ts +5 -0
  34. package/dist/html/dynamic-tag.d.ts +12 -0
  35. package/dist/html/for.d.ts +4 -0
  36. package/dist/html/inlined-runtimes.d.ts +2 -0
  37. package/dist/html/serializer.d.ts +14 -0
  38. package/dist/html/template.d.ts +3 -0
  39. package/dist/html/writer.d.ts +114 -0
  40. package/dist/html.d.ts +9 -0
  41. package/dist/html.js +1818 -0
  42. package/dist/html.mjs +1744 -0
  43. package/dist/translator/core/attrs.d.ts +3 -0
  44. package/dist/translator/core/client.d.ts +14 -0
  45. package/dist/translator/core/const.d.ts +3 -0
  46. package/dist/translator/core/debug.d.ts +3 -0
  47. package/dist/translator/core/define.d.ts +3 -0
  48. package/dist/translator/core/effect.d.ts +3 -0
  49. package/dist/translator/core/export.d.ts +3 -0
  50. package/dist/translator/core/for.d.ts +67 -0
  51. package/dist/translator/core/html-comment.d.ts +12 -0
  52. package/dist/translator/core/html-script.d.ts +9 -0
  53. package/dist/translator/core/html-style.d.ts +9 -0
  54. package/dist/translator/core/id.d.ts +3 -0
  55. package/dist/translator/core/if.d.ts +53 -0
  56. package/dist/translator/core/import.d.ts +3 -0
  57. package/dist/translator/core/index.d.ts +152 -0
  58. package/dist/translator/core/let.d.ts +8 -0
  59. package/dist/translator/core/lifecycle.d.ts +10 -0
  60. package/dist/translator/core/log.d.ts +3 -0
  61. package/dist/translator/core/return.d.ts +6 -0
  62. package/dist/translator/core/script.d.ts +3 -0
  63. package/dist/translator/core/server.d.ts +14 -0
  64. package/dist/translator/core/static.d.ts +14 -0
  65. package/dist/translator/core/style.d.ts +3 -0
  66. package/dist/translator/index.d.ts +201 -0
  67. package/dist/translator/index.js +9134 -490
  68. package/dist/translator/util/assert.d.ts +3 -0
  69. package/dist/translator/util/binding-has-downstream-expressions.d.ts +2 -0
  70. package/dist/translator/util/entry-builder.d.ts +19 -0
  71. package/dist/translator/util/evaluate.d.ts +11 -0
  72. package/dist/translator/util/for-each-identifier.d.ts +2 -0
  73. package/dist/translator/util/get-defined-binding-expression.d.ts +3 -0
  74. package/dist/translator/util/get-known-attr-values.d.ts +2 -0
  75. package/dist/translator/util/get-parent-tag.d.ts +2 -0
  76. package/dist/translator/util/get-root.d.ts +7 -0
  77. package/dist/translator/util/get-tag-name.d.ts +2 -0
  78. package/dist/translator/util/is-core-tag.d.ts +10 -0
  79. package/dist/translator/util/is-stateful.d.ts +3 -0
  80. package/dist/translator/util/is-static.d.ts +2 -0
  81. package/dist/translator/util/marko-config.d.ts +4 -0
  82. package/dist/translator/util/nested-attribute-tags.d.ts +17 -0
  83. package/dist/translator/util/normalize-string-expression.d.ts +3 -0
  84. package/dist/translator/util/optional.d.ts +20 -0
  85. package/dist/translator/util/plugin-hooks.d.ts +4 -0
  86. package/dist/translator/util/references.d.ts +84 -0
  87. package/dist/translator/util/runtime-info.d.ts +5 -0
  88. package/dist/translator/util/runtime.d.ts +15 -0
  89. package/dist/translator/util/scope-read.d.ts +6 -0
  90. package/dist/translator/util/sections.d.ts +51 -0
  91. package/dist/translator/util/signals.d.ts +61 -0
  92. package/dist/translator/util/simplify-fn.d.ts +5 -0
  93. package/dist/translator/util/state.d.ts +3 -0
  94. package/dist/translator/util/tag-name-type.d.ts +16 -0
  95. package/dist/translator/util/to-first-expression-or-block.d.ts +3 -0
  96. package/dist/translator/util/to-first-statement-or-block.d.ts +2 -0
  97. package/dist/translator/util/to-property-name.d.ts +7 -0
  98. package/dist/translator/util/translate-attrs.d.ts +12 -0
  99. package/dist/translator/util/translate-var.d.ts +2 -0
  100. package/dist/translator/util/traverse.d.ts +9 -0
  101. package/dist/translator/util/visitors.d.ts +11 -0
  102. package/dist/translator/util/walks.d.ts +15 -0
  103. package/dist/translator/util/with-previous-location.d.ts +2 -0
  104. package/dist/translator/util/writer.d.ts +13 -0
  105. package/dist/translator/visitors/cdata.d.ts +7 -0
  106. package/dist/translator/visitors/comment.d.ts +7 -0
  107. package/dist/translator/visitors/declaration.d.ts +7 -0
  108. package/dist/translator/visitors/document-type.d.ts +7 -0
  109. package/dist/translator/visitors/function.d.ts +19 -0
  110. package/dist/translator/visitors/import-declaration.d.ts +8 -0
  111. package/dist/translator/visitors/placeholder.d.ts +22 -0
  112. package/dist/translator/visitors/program/dom.d.ts +7 -0
  113. package/dist/translator/visitors/program/html.d.ts +8 -0
  114. package/dist/translator/visitors/program/index.d.ts +39 -0
  115. package/dist/translator/visitors/referenced-identifier.d.ts +7 -0
  116. package/dist/translator/visitors/scriptlet.d.ts +8 -0
  117. package/dist/translator/visitors/tag/attribute-tag.d.ts +11 -0
  118. package/dist/translator/visitors/tag/custom-tag.d.ts +19 -0
  119. package/dist/translator/visitors/tag/dynamic-tag.d.ts +18 -0
  120. package/dist/translator/visitors/tag/index.d.ts +15 -0
  121. package/dist/translator/visitors/tag/native-tag.d.ts +25 -0
  122. package/dist/translator/visitors/text.d.ts +7 -0
  123. package/package.json +34 -70
  124. package/tag-types/const.d.marko +7 -0
  125. package/tag-types/debug.d.marko +5 -0
  126. package/tag-types/define.d.marko +5 -0
  127. package/tag-types/do.d.marko +5 -0
  128. package/tag-types/effect.d.marko +5 -0
  129. package/tag-types/id.d.marko +3 -0
  130. package/tag-types/let.d.marko +8 -0
  131. package/tag-types/lifecycle.d.marko +7 -0
  132. package/tag-types/log.d.marko +5 -0
  133. package/tag-types/script.d.marko +5 -0
  134. package/README.md +0 -161
  135. package/bin/markoc +0 -2
  136. package/bin/markoc.js +0 -441
  137. package/browser-refresh.js +0 -5
  138. package/compiler-browser.marko +0 -15
  139. package/compiler.js +0 -7
  140. package/components-browser.marko +0 -15
  141. package/components.js +0 -7
  142. package/dist/build.json +0 -3
  143. package/dist/compiler/config.js +0 -45
  144. package/dist/compiler/index.js +0 -164
  145. package/dist/compiler/modules.js +0 -5
  146. package/dist/core-tags/components/init-components-tag.js +0 -54
  147. package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
  148. package/dist/core-tags/components/preserve-tag.js +0 -1
  149. package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
  150. package/dist/core-tags/core/await/AsyncValue.js +0 -121
  151. package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
  152. package/dist/core-tags/core/await/index.d.marko +0 -10
  153. package/dist/core-tags/core/await/renderer.js +0 -249
  154. package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
  155. package/dist/index.js +0 -4
  156. package/dist/node-require/browser-refresh.js +0 -1
  157. package/dist/node-require/hot-reload.js +0 -45
  158. package/dist/node-require/index.js +0 -103
  159. package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  160. package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
  161. package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
  162. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  163. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  164. package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  165. package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  166. package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
  167. package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
  168. package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
  169. package/dist/node_modules/@internal/components-entry/index.js +0 -301
  170. package/dist/node_modules/@internal/components-entry/package.json +0 -11
  171. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  172. package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
  173. package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
  174. package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
  175. package/dist/node_modules/@internal/components-registry/index.js +0 -44
  176. package/dist/node_modules/@internal/components-registry/package.json +0 -11
  177. package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
  178. package/dist/node_modules/@internal/components-util/index.js +0 -71
  179. package/dist/node_modules/@internal/components-util/package.json +0 -11
  180. package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
  181. package/dist/node_modules/@internal/create-readable/index.js +0 -57
  182. package/dist/node_modules/@internal/create-readable/package.json +0 -11
  183. package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
  184. package/dist/node_modules/@internal/loader/index-browser.js +0 -2
  185. package/dist/node_modules/@internal/loader/index.js +0 -23
  186. package/dist/node_modules/@internal/loader/package.json +0 -10
  187. package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  188. package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
  189. package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
  190. package/dist/node_modules/@internal/require/index-browser.js +0 -15
  191. package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
  192. package/dist/node_modules/@internal/require/index-webpack.js +0 -16
  193. package/dist/node_modules/@internal/require/index.js +0 -15
  194. package/dist/node_modules/@internal/require/package.json +0 -11
  195. package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
  196. package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
  197. package/dist/node_modules/@internal/set-immediate/index.js +0 -3
  198. package/dist/node_modules/@internal/set-immediate/package.json +0 -11
  199. package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  200. package/dist/runtime/RenderResult.js +0 -112
  201. package/dist/runtime/components/Component.js +0 -663
  202. package/dist/runtime/components/ComponentDef.js +0 -169
  203. package/dist/runtime/components/ComponentsContext.js +0 -59
  204. package/dist/runtime/components/GlobalComponentsContext.js +0 -10
  205. package/dist/runtime/components/KeySequence.js +0 -16
  206. package/dist/runtime/components/ServerComponent.js +0 -73
  207. package/dist/runtime/components/State.js +0 -101
  208. package/dist/runtime/components/attach-detach.js +0 -60
  209. package/dist/runtime/components/defineComponent.js +0 -60
  210. package/dist/runtime/components/dom-data.js +0 -8
  211. package/dist/runtime/components/event-delegation.js +0 -144
  212. package/dist/runtime/components/index.js +0 -1
  213. package/dist/runtime/components/legacy/browser.json +0 -9
  214. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
  215. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  216. package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
  217. package/dist/runtime/components/legacy/dependencies/html.js +0 -3
  218. package/dist/runtime/components/legacy/dependencies/index.js +0 -177
  219. package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
  220. package/dist/runtime/components/legacy/index.js +0 -1
  221. package/dist/runtime/components/legacy/jquery.js +0 -52
  222. package/dist/runtime/components/legacy/ready.js +0 -152
  223. package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
  224. package/dist/runtime/components/registry.js +0 -1
  225. package/dist/runtime/components/renderer.js +0 -236
  226. package/dist/runtime/components/update-manager.js +0 -94
  227. package/dist/runtime/createOut.js +0 -13
  228. package/dist/runtime/dom-insert.js +0 -77
  229. package/dist/runtime/events.js +0 -2
  230. package/dist/runtime/helpers/_change-case.js +0 -45
  231. package/dist/runtime/helpers/assign.js +0 -21
  232. package/dist/runtime/helpers/attr-tag.js +0 -43
  233. package/dist/runtime/helpers/class-value.js +0 -30
  234. package/dist/runtime/helpers/dynamic-tag.js +0 -181
  235. package/dist/runtime/helpers/empty-component.js +0 -1
  236. package/dist/runtime/helpers/merge.js +0 -13
  237. package/dist/runtime/helpers/of-fallback.js +0 -4
  238. package/dist/runtime/helpers/render-tag.js +0 -20
  239. package/dist/runtime/helpers/serialize-noop.js +0 -5
  240. package/dist/runtime/helpers/style-value.js +0 -45
  241. package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
  242. package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  243. package/dist/runtime/helpers/tags-compat/dom.js +0 -1
  244. package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
  245. package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
  246. package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  247. package/dist/runtime/helpers/tags-compat/html.js +0 -3
  248. package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
  249. package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  250. package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
  251. package/dist/runtime/helpers/to-string.js +0 -5
  252. package/dist/runtime/html/AsyncStream.js +0 -805
  253. package/dist/runtime/html/BufferedWriter.js +0 -52
  254. package/dist/runtime/html/StringWriter.js +0 -73
  255. package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
  256. package/dist/runtime/html/helpers/attr.js +0 -80
  257. package/dist/runtime/html/helpers/attrs.js +0 -26
  258. package/dist/runtime/html/helpers/class-attr.js +0 -8
  259. package/dist/runtime/html/helpers/data-marko.js +0 -36
  260. package/dist/runtime/html/helpers/escape-quotes.js +0 -35
  261. package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
  262. package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
  263. package/dist/runtime/html/helpers/escape-xml.js +0 -21
  264. package/dist/runtime/html/helpers/merge-attrs.js +0 -55
  265. package/dist/runtime/html/helpers/props-script.js +0 -32
  266. package/dist/runtime/html/helpers/style-attr.js +0 -8
  267. package/dist/runtime/html/hot-reload.js +0 -26
  268. package/dist/runtime/html/index.js +0 -33
  269. package/dist/runtime/html/marko-namespace.js +0 -3
  270. package/dist/runtime/renderable.js +0 -194
  271. package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  272. package/dist/runtime/vdom/VComment.js +0 -24
  273. package/dist/runtime/vdom/VComponent.js +0 -17
  274. package/dist/runtime/vdom/VDocumentFragment.js +0 -34
  275. package/dist/runtime/vdom/VElement.js +0 -375
  276. package/dist/runtime/vdom/VFragment.js +0 -26
  277. package/dist/runtime/vdom/VNode.js +0 -100
  278. package/dist/runtime/vdom/VText.js +0 -25
  279. package/dist/runtime/vdom/helpers/attrs.js +0 -62
  280. package/dist/runtime/vdom/helpers/const-element.js +0 -25
  281. package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
  282. package/dist/runtime/vdom/hot-reload.js +0 -115
  283. package/dist/runtime/vdom/index.js +0 -30
  284. package/dist/runtime/vdom/is-text-only.js +0 -10
  285. package/dist/runtime/vdom/marko-namespace.js +0 -3
  286. package/dist/runtime/vdom/morphdom/fragment.js +0 -95
  287. package/dist/runtime/vdom/morphdom/helpers.js +0 -42
  288. package/dist/runtime/vdom/morphdom/index.js +0 -741
  289. package/dist/runtime/vdom/parse-html.js +0 -18
  290. package/dist/runtime/vdom/vdom.js +0 -88
  291. package/dist/taglib/index.js +0 -51
  292. package/dist/translator/cdata/index.js +0 -15
  293. package/dist/translator/cdata/index[html].js +0 -15
  294. package/dist/translator/cdata/index[vdom].js +0 -12
  295. package/dist/translator/class.js +0 -65
  296. package/dist/translator/comment/index.js +0 -15
  297. package/dist/translator/comment/index[html].js +0 -17
  298. package/dist/translator/comment/index[vdom].js +0 -3
  299. package/dist/translator/declaration/index.js +0 -15
  300. package/dist/translator/declaration/index[html].js +0 -12
  301. package/dist/translator/declaration/index[vdom].js +0 -3
  302. package/dist/translator/document-type/index.js +0 -15
  303. package/dist/translator/document-type/index[html].js +0 -12
  304. package/dist/translator/document-type/index[vdom].js +0 -3
  305. package/dist/translator/placeholder/index.js +0 -15
  306. package/dist/translator/placeholder/index[html].js +0 -93
  307. package/dist/translator/placeholder/index[vdom].js +0 -22
  308. package/dist/translator/scriptlet.js +0 -4
  309. package/dist/translator/tag/attribute/directives/class.js +0 -42
  310. package/dist/translator/tag/attribute/directives/index.js +0 -15
  311. package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  312. package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
  313. package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
  314. package/dist/translator/tag/attribute/directives/no-update.js +0 -48
  315. package/dist/translator/tag/attribute/directives/style.js +0 -42
  316. package/dist/translator/tag/attribute/index.js +0 -150
  317. package/dist/translator/tag/attribute/modifiers/index.js +0 -7
  318. package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
  319. package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
  320. package/dist/translator/tag/attribute-tag.js +0 -149
  321. package/dist/translator/tag/custom-tag.js +0 -146
  322. package/dist/translator/tag/dynamic-tag.js +0 -74
  323. package/dist/translator/tag/index.js +0 -287
  324. package/dist/translator/tag/macro-tag.js +0 -7
  325. package/dist/translator/tag/native-tag.js +0 -27
  326. package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
  327. package/dist/translator/tag/native-tag[html]/index.js +0 -221
  328. package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
  329. package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
  330. package/dist/translator/tag/util.js +0 -246
  331. package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
  332. package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
  333. package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
  334. package/dist/translator/taglib/core/conditional/util.js +0 -41
  335. package/dist/translator/taglib/core/index.js +0 -474
  336. package/dist/translator/taglib/core/macro/parse.js +0 -17
  337. package/dist/translator/taglib/core/macro/translate.js +0 -48
  338. package/dist/translator/taglib/core/parse-class.js +0 -79
  339. package/dist/translator/taglib/core/parse-export.js +0 -14
  340. package/dist/translator/taglib/core/parse-import.js +0 -14
  341. package/dist/translator/taglib/core/parse-module-code.js +0 -18
  342. package/dist/translator/taglib/core/parse-static.js +0 -18
  343. package/dist/translator/taglib/core/transform-style.js +0 -66
  344. package/dist/translator/taglib/core/translate-await.js +0 -41
  345. package/dist/translator/taglib/core/translate-body.js +0 -17
  346. package/dist/translator/taglib/core/translate-for.js +0 -156
  347. package/dist/translator/taglib/core/translate-html-comment.js +0 -52
  348. package/dist/translator/taglib/core/translate-include-content.js +0 -53
  349. package/dist/translator/taglib/core/translate-server-only.js +0 -5
  350. package/dist/translator/taglib/core/translate-while.js +0 -32
  351. package/dist/translator/taglib/index.js +0 -6
  352. package/dist/translator/taglib/migrate/all-templates.js +0 -46
  353. package/dist/translator/taglib/migrate/index.js +0 -5
  354. package/dist/translator/text/index.js +0 -10
  355. package/dist/translator/text/index[html].js +0 -12
  356. package/dist/translator/text/index[vdom].js +0 -20
  357. package/dist/translator/util/add-dependencies.js +0 -329
  358. package/dist/translator/util/escape-regexp.js +0 -4
  359. package/dist/translator/util/get-component-files.js +0 -86
  360. package/dist/translator/util/html-out-write.js +0 -15
  361. package/dist/translator/util/key-manager.js +0 -176
  362. package/dist/translator/util/optimize-html-writes.js +0 -52
  363. package/dist/translator/util/optimize-vdom-create.js +0 -164
  364. package/dist/translator/util/plugin-hooks.js +0 -22
  365. package/dist/translator/util/runtime-flags.js +0 -3
  366. package/dist/translator/util/vdom-out-write.js +0 -10
  367. package/dist/translator/util/with-previous-location.js +0 -6
  368. package/docs/10-awesome-marko-features.md +0 -291
  369. package/docs/body-content.md +0 -355
  370. package/docs/class-components.md +0 -1001
  371. package/docs/cloudflare-workers.md +0 -32
  372. package/docs/compiler-hooks.png +0 -0
  373. package/docs/compiler.md +0 -473
  374. package/docs/component-diagram.afdesign +0 -0
  375. package/docs/component-diagram.svg +0 -87
  376. package/docs/concise.md +0 -141
  377. package/docs/conditionals-and-lists.md +0 -72
  378. package/docs/core-tags.md +0 -325
  379. package/docs/custom-tags.md +0 -201
  380. package/docs/editor-plugins.md +0 -45
  381. package/docs/events.md +0 -131
  382. package/docs/express.md +0 -66
  383. package/docs/fastify.md +0 -65
  384. package/docs/getting-started.md +0 -95
  385. package/docs/http.md +0 -34
  386. package/docs/icons/js.svg +0 -4
  387. package/docs/icons/marko.svg +0 -1
  388. package/docs/icons/ts.svg +0 -1
  389. package/docs/installing.md +0 -51
  390. package/docs/koa.md +0 -35
  391. package/docs/lasso.md +0 -196
  392. package/docs/marko-5-upgrade.md +0 -59
  393. package/docs/marko-json.md +0 -248
  394. package/docs/marko-vs-react.md +0 -854
  395. package/docs/redux.md +0 -61
  396. package/docs/rendering.md +0 -268
  397. package/docs/rollup.md +0 -352
  398. package/docs/state.md +0 -105
  399. package/docs/structure.json +0 -49
  400. package/docs/styles.md +0 -29
  401. package/docs/syntax.md +0 -601
  402. package/docs/troubleshooting-streaming.md +0 -68
  403. package/docs/typescript.md +0 -406
  404. package/docs/vite.md +0 -86
  405. package/docs/webpack.md +0 -205
  406. package/docs/why-is-marko-fast.md +0 -239
  407. package/env.js +0 -7
  408. package/helpers/README.md +0 -3
  409. package/helpers/empty.js +0 -4
  410. package/helpers/notEmpty.js +0 -11
  411. package/index-browser.marko +0 -15
  412. package/index.d.ts +0 -375
  413. package/index.js +0 -7
  414. package/legacy-components-browser.marko +0 -15
  415. package/legacy-components.js +0 -7
  416. package/node-require.js +0 -8
  417. package/src/build.json +0 -3
  418. package/src/compiler/config.js +0 -45
  419. package/src/compiler/index.js +0 -164
  420. package/src/compiler/modules.js +0 -5
  421. package/src/core-tags/.eslintrc +0 -5
  422. package/src/core-tags/components/init-components-tag.js +0 -54
  423. package/src/core-tags/components/preferred-script-location-tag.js +0 -25
  424. package/src/core-tags/components/preserve-tag.js +0 -1
  425. package/src/core-tags/core/__flush_here_and_after__.js +0 -44
  426. package/src/core-tags/core/await/AsyncValue.js +0 -121
  427. package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
  428. package/src/core-tags/core/await/index.d.marko +0 -10
  429. package/src/core-tags/core/await/renderer.js +0 -249
  430. package/src/core-tags/core/await/reorderer-renderer.js +0 -156
  431. package/src/index.js +0 -4
  432. package/src/node-require/browser-refresh.js +0 -18
  433. package/src/node-require/hot-reload.js +0 -45
  434. package/src/node-require/index.js +0 -103
  435. package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  436. package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
  437. package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
  438. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  439. package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  440. package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  441. package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  442. package/src/node_modules/@internal/components-endComponent/index.js +0 -11
  443. package/src/node_modules/@internal/components-endComponent/package.json +0 -11
  444. package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
  445. package/src/node_modules/@internal/components-entry/index.js +0 -301
  446. package/src/node_modules/@internal/components-entry/package.json +0 -11
  447. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  448. package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
  449. package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
  450. package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
  451. package/src/node_modules/@internal/components-registry/index.js +0 -44
  452. package/src/node_modules/@internal/components-registry/package.json +0 -11
  453. package/src/node_modules/@internal/components-util/index-browser.js +0 -152
  454. package/src/node_modules/@internal/components-util/index.js +0 -75
  455. package/src/node_modules/@internal/components-util/package.json +0 -11
  456. package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
  457. package/src/node_modules/@internal/create-readable/index.js +0 -57
  458. package/src/node_modules/@internal/create-readable/package.json +0 -11
  459. package/src/node_modules/@internal/loader/fallback-node.js +0 -89
  460. package/src/node_modules/@internal/loader/index-browser.js +0 -2
  461. package/src/node_modules/@internal/loader/index.js +0 -23
  462. package/src/node_modules/@internal/loader/package.json +0 -10
  463. package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  464. package/src/node_modules/@internal/preserve-tag/index.js +0 -34
  465. package/src/node_modules/@internal/preserve-tag/package.json +0 -11
  466. package/src/node_modules/@internal/require/index-browser.js +0 -15
  467. package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
  468. package/src/node_modules/@internal/require/index-webpack.js +0 -16
  469. package/src/node_modules/@internal/require/index.js +0 -15
  470. package/src/node_modules/@internal/require/package.json +0 -11
  471. package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
  472. package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
  473. package/src/node_modules/@internal/set-immediate/index.js +0 -3
  474. package/src/node_modules/@internal/set-immediate/package.json +0 -11
  475. package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  476. package/src/runtime/.eslintrc +0 -5
  477. package/src/runtime/RenderResult.js +0 -112
  478. package/src/runtime/components/Component.js +0 -663
  479. package/src/runtime/components/ComponentDef.js +0 -169
  480. package/src/runtime/components/ComponentsContext.js +0 -59
  481. package/src/runtime/components/GlobalComponentsContext.js +0 -10
  482. package/src/runtime/components/KeySequence.js +0 -16
  483. package/src/runtime/components/ServerComponent.js +0 -73
  484. package/src/runtime/components/State.js +0 -101
  485. package/src/runtime/components/attach-detach.js +0 -60
  486. package/src/runtime/components/defineComponent.js +0 -60
  487. package/src/runtime/components/dom-data.js +0 -8
  488. package/src/runtime/components/event-delegation.js +0 -144
  489. package/src/runtime/components/index.js +0 -1
  490. package/src/runtime/components/legacy/browser.json +0 -9
  491. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
  492. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  493. package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
  494. package/src/runtime/components/legacy/dependencies/html.js +0 -3
  495. package/src/runtime/components/legacy/dependencies/index.js +0 -177
  496. package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
  497. package/src/runtime/components/legacy/index.js +0 -1
  498. package/src/runtime/components/legacy/jquery.js +0 -52
  499. package/src/runtime/components/legacy/ready.js +0 -152
  500. package/src/runtime/components/legacy/renderer-legacy.js +0 -231
  501. package/src/runtime/components/registry.js +0 -1
  502. package/src/runtime/components/renderer.js +0 -236
  503. package/src/runtime/components/update-manager.js +0 -94
  504. package/src/runtime/createOut.js +0 -13
  505. package/src/runtime/dom-insert.js +0 -77
  506. package/src/runtime/events.js +0 -2
  507. package/src/runtime/helpers/_change-case.js +0 -45
  508. package/src/runtime/helpers/assign.js +0 -21
  509. package/src/runtime/helpers/attr-tag.js +0 -43
  510. package/src/runtime/helpers/class-value.js +0 -30
  511. package/src/runtime/helpers/dynamic-tag.js +0 -181
  512. package/src/runtime/helpers/empty-component.js +0 -1
  513. package/src/runtime/helpers/merge.js +0 -13
  514. package/src/runtime/helpers/of-fallback.js +0 -4
  515. package/src/runtime/helpers/render-tag.js +0 -20
  516. package/src/runtime/helpers/serialize-noop.js +0 -5
  517. package/src/runtime/helpers/style-value.js +0 -45
  518. package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
  519. package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  520. package/src/runtime/helpers/tags-compat/dom.js +0 -1
  521. package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
  522. package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
  523. package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  524. package/src/runtime/helpers/tags-compat/html.js +0 -3
  525. package/src/runtime/helpers/tags-compat/html.mjs +0 -4
  526. package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  527. package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
  528. package/src/runtime/helpers/to-string.js +0 -5
  529. package/src/runtime/html/AsyncStream.js +0 -805
  530. package/src/runtime/html/BufferedWriter.js +0 -52
  531. package/src/runtime/html/StringWriter.js +0 -73
  532. package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
  533. package/src/runtime/html/helpers/attr.js +0 -80
  534. package/src/runtime/html/helpers/attrs.js +0 -26
  535. package/src/runtime/html/helpers/class-attr.js +0 -8
  536. package/src/runtime/html/helpers/data-marko.js +0 -36
  537. package/src/runtime/html/helpers/escape-quotes.js +0 -35
  538. package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
  539. package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
  540. package/src/runtime/html/helpers/escape-xml.js +0 -21
  541. package/src/runtime/html/helpers/merge-attrs.js +0 -55
  542. package/src/runtime/html/helpers/props-script.js +0 -32
  543. package/src/runtime/html/helpers/style-attr.js +0 -8
  544. package/src/runtime/html/hot-reload.js +0 -26
  545. package/src/runtime/html/index.js +0 -33
  546. package/src/runtime/html/marko-namespace.js +0 -3
  547. package/src/runtime/renderable.js +0 -194
  548. package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  549. package/src/runtime/vdom/VComment.js +0 -24
  550. package/src/runtime/vdom/VComponent.js +0 -17
  551. package/src/runtime/vdom/VDocumentFragment.js +0 -34
  552. package/src/runtime/vdom/VElement.js +0 -375
  553. package/src/runtime/vdom/VFragment.js +0 -26
  554. package/src/runtime/vdom/VNode.js +0 -100
  555. package/src/runtime/vdom/VText.js +0 -25
  556. package/src/runtime/vdom/helpers/attrs.js +0 -62
  557. package/src/runtime/vdom/helpers/const-element.js +0 -25
  558. package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
  559. package/src/runtime/vdom/hot-reload.js +0 -115
  560. package/src/runtime/vdom/index.js +0 -30
  561. package/src/runtime/vdom/is-text-only.js +0 -10
  562. package/src/runtime/vdom/marko-namespace.js +0 -3
  563. package/src/runtime/vdom/morphdom/fragment.js +0 -95
  564. package/src/runtime/vdom/morphdom/helpers.js +0 -42
  565. package/src/runtime/vdom/morphdom/index.js +0 -741
  566. package/src/runtime/vdom/parse-html.js +0 -18
  567. package/src/runtime/vdom/vdom.js +0 -88
  568. package/src/taglib/index.js +0 -51
  569. package/src/translator/cdata/index.js +0 -15
  570. package/src/translator/cdata/index[html].js +0 -15
  571. package/src/translator/cdata/index[vdom].js +0 -12
  572. package/src/translator/class.js +0 -65
  573. package/src/translator/comment/index.js +0 -15
  574. package/src/translator/comment/index[html].js +0 -17
  575. package/src/translator/comment/index[vdom].js +0 -3
  576. package/src/translator/declaration/index.js +0 -15
  577. package/src/translator/declaration/index[html].js +0 -12
  578. package/src/translator/declaration/index[vdom].js +0 -3
  579. package/src/translator/document-type/index.js +0 -15
  580. package/src/translator/document-type/index[html].js +0 -12
  581. package/src/translator/document-type/index[vdom].js +0 -3
  582. package/src/translator/index.js +0 -552
  583. package/src/translator/placeholder/index.js +0 -15
  584. package/src/translator/placeholder/index[html].js +0 -93
  585. package/src/translator/placeholder/index[vdom].js +0 -22
  586. package/src/translator/scriptlet.js +0 -4
  587. package/src/translator/tag/attribute/directives/class.js +0 -42
  588. package/src/translator/tag/attribute/directives/index.js +0 -15
  589. package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  590. package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
  591. package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
  592. package/src/translator/tag/attribute/directives/no-update.js +0 -48
  593. package/src/translator/tag/attribute/directives/style.js +0 -42
  594. package/src/translator/tag/attribute/index.js +0 -150
  595. package/src/translator/tag/attribute/modifiers/index.js +0 -7
  596. package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
  597. package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
  598. package/src/translator/tag/attribute-tag.js +0 -149
  599. package/src/translator/tag/custom-tag.js +0 -146
  600. package/src/translator/tag/dynamic-tag.js +0 -74
  601. package/src/translator/tag/index.js +0 -287
  602. package/src/translator/tag/macro-tag.js +0 -7
  603. package/src/translator/tag/native-tag.js +0 -27
  604. package/src/translator/tag/native-tag[html]/attributes.js +0 -151
  605. package/src/translator/tag/native-tag[html]/index.js +0 -221
  606. package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
  607. package/src/translator/tag/native-tag[vdom]/index.js +0 -189
  608. package/src/translator/tag/util.js +0 -246
  609. package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
  610. package/src/translator/taglib/core/conditional/translate-else.js +0 -20
  611. package/src/translator/taglib/core/conditional/translate-if.js +0 -8
  612. package/src/translator/taglib/core/conditional/util.js +0 -41
  613. package/src/translator/taglib/core/index.js +0 -474
  614. package/src/translator/taglib/core/macro/parse.js +0 -17
  615. package/src/translator/taglib/core/macro/translate.js +0 -48
  616. package/src/translator/taglib/core/parse-class.js +0 -79
  617. package/src/translator/taglib/core/parse-export.js +0 -14
  618. package/src/translator/taglib/core/parse-import.js +0 -14
  619. package/src/translator/taglib/core/parse-module-code.js +0 -18
  620. package/src/translator/taglib/core/parse-static.js +0 -18
  621. package/src/translator/taglib/core/transform-style.js +0 -66
  622. package/src/translator/taglib/core/translate-await.js +0 -41
  623. package/src/translator/taglib/core/translate-body.js +0 -17
  624. package/src/translator/taglib/core/translate-for.js +0 -156
  625. package/src/translator/taglib/core/translate-html-comment.js +0 -52
  626. package/src/translator/taglib/core/translate-include-content.js +0 -53
  627. package/src/translator/taglib/core/translate-server-only.js +0 -5
  628. package/src/translator/taglib/core/translate-while.js +0 -32
  629. package/src/translator/taglib/index.js +0 -7
  630. package/src/translator/taglib/migrate/all-templates.js +0 -46
  631. package/src/translator/taglib/migrate/index.js +0 -5
  632. package/src/translator/text/index.js +0 -10
  633. package/src/translator/text/index[html].js +0 -12
  634. package/src/translator/text/index[vdom].js +0 -20
  635. package/src/translator/util/add-dependencies.js +0 -329
  636. package/src/translator/util/escape-regexp.js +0 -4
  637. package/src/translator/util/get-component-files.js +0 -86
  638. package/src/translator/util/html-out-write.js +0 -15
  639. package/src/translator/util/key-manager.js +0 -176
  640. package/src/translator/util/optimize-html-writes.js +0 -52
  641. package/src/translator/util/optimize-vdom-create.js +0 -164
  642. package/src/translator/util/plugin-hooks.js +0 -22
  643. package/src/translator/util/runtime-flags.js +0 -3
  644. package/src/translator/util/vdom-out-write.js +0 -10
  645. package/src/translator/util/with-previous-location.js +0 -6
  646. package/tags-html.d.ts +0 -3855
  647. package/translator/index.d.ts +0 -7
  648. package/translator/package.json +0 -5
@@ -1,805 +0,0 @@
1
- "use strict";
2
- var EventEmitter = require("events-light");
3
- var selfClosingTags = require("self-closing-tags");
4
- var RenderResult = require("../RenderResult");
5
- var parseHTML = require("../vdom/parse-html");
6
- var BufferedWriter = require("./BufferedWriter");
7
- var attrsHelper = require("./helpers/attrs");
8
- var markoAttr = require("./helpers/data-marko");
9
- var escapeXmlHelper = require("./helpers/escape-xml");
10
- var StringWriter = require("./StringWriter");
11
- var escapeXmlOrNullish = escapeXmlHelper.x;
12
- var escapeXmlString = escapeXmlHelper.___escapeXML;
13
- var missingSetTimeout = typeof setTimeout !== "function";
14
-
15
- function noop() {}
16
-
17
- var voidWriter = {
18
- write: noop,
19
- script: noop,
20
- merge: noop,
21
- clear: noop,
22
- get: function () {
23
- return [];
24
- },
25
- toString: function () {
26
- return "";
27
- },
28
- };
29
-
30
- function State(root, stream, writer, events) {
31
- this.root = root;
32
- this.stream = stream;
33
- this.writer = writer;
34
- this.events = events;
35
-
36
- this.finished = false;
37
- }
38
-
39
- function escapeEndingComment(text) {
40
- return text.replace(/(--!?)>/g, "$1>");
41
- }
42
-
43
- function deferred() {
44
- let resolve;
45
- let reject;
46
- const promise = new Promise((res, rej) => {
47
- resolve = res;
48
- reject = rej;
49
- });
50
- return { promise, resolve, reject };
51
- }
52
-
53
- function AsyncStream(global, writer, parentOut) {
54
- if (parentOut === null) {
55
- throw new Error("illegal state");
56
- }
57
- var finalGlobal = (this.attributes = global || {});
58
- var originalStream;
59
- var state;
60
-
61
- if (parentOut) {
62
- state = parentOut._state;
63
- originalStream = state.stream;
64
- } else {
65
- var events = (finalGlobal.events /* deprecated */ =
66
- writer && writer.on ? writer : new EventEmitter());
67
-
68
- if (writer) {
69
- originalStream = writer;
70
- writer = new BufferedWriter(writer);
71
- } else {
72
- writer = originalStream = new StringWriter();
73
- }
74
-
75
- state = new State(this, originalStream, writer, events);
76
- writer.state = state;
77
- }
78
-
79
- finalGlobal.runtimeId = finalGlobal.runtimeId || "M";
80
- this.global = finalGlobal;
81
- this.stream = originalStream;
82
- this._state = state;
83
-
84
- this._ended = false;
85
- this._remaining = 1;
86
- this._lastCount = 0;
87
- this._last = undefined; // Array
88
- this._parentOut = parentOut;
89
-
90
- this.data = {};
91
- this.writer = writer;
92
- writer.stream = this;
93
-
94
- this._sync = false;
95
- this._stack = undefined;
96
- this.name = undefined;
97
- this._timeoutId = undefined;
98
-
99
- this._node = undefined;
100
-
101
- this._elStack = undefined; // Array
102
-
103
- this.___components = null; // ComponentsContext
104
-
105
- this.___assignedComponentDef = null;
106
- this.___assignedKey = null;
107
- this.___assignedCustomEvents = null;
108
- this.___isLast = false;
109
- }
110
-
111
- AsyncStream.DEFAULT_TIMEOUT = 10000;
112
-
113
- /**
114
- * If set to `true`, AsyncStream errors will include the full stack trace
115
- */
116
- AsyncStream.INCLUDE_STACK =
117
- typeof process !== "undefined" &&
118
- (!process.env.NODE_ENV ||
119
- process.env.NODE_ENV === "development" ||
120
- process.env.NODE_ENV === "dev");
121
-
122
- AsyncStream.enableAsyncStackTrace = function () {
123
- AsyncStream.INCLUDE_STACK = true;
124
- };
125
-
126
- var proto = (AsyncStream.prototype = {
127
- constructor: AsyncStream,
128
- ___host: typeof document === "object" && document,
129
- ___isOut: true,
130
-
131
- [Symbol.asyncIterator]() {
132
- if (this.___iterator) {
133
- return this.___iterator;
134
- }
135
-
136
- const originalWriter = this._state.writer;
137
- let buffer = "";
138
- let iteratorNextFn;
139
-
140
- if (!originalWriter.stream) {
141
- // Writing has finished completely so we can use a simple iterator
142
- buffer = this.toString();
143
- iteratorNextFn = () => {
144
- const value = buffer;
145
- buffer = "";
146
- return { value, done: !value };
147
- };
148
- } else {
149
- let done = false;
150
- let error = noop; // Used as a identity object reference.
151
- let pending;
152
- const stream = {
153
- write(data) {
154
- buffer += data;
155
- },
156
- end() {
157
- done = true;
158
-
159
- if (pending) {
160
- pending.resolve(
161
- buffer
162
- ? {
163
- value: buffer,
164
- done: false,
165
- }
166
- : {
167
- value: undefined,
168
- done: true,
169
- },
170
- );
171
- pending = undefined;
172
- }
173
- },
174
- flush() {
175
- if (pending) {
176
- pending.resolve({
177
- value: buffer,
178
- done: false,
179
- });
180
- buffer = "";
181
- pending = undefined;
182
- }
183
- },
184
- };
185
-
186
- this.once("error", (err) => {
187
- error = err;
188
-
189
- if (pending) {
190
- pending.reject(error);
191
- pending = undefined;
192
- }
193
- });
194
-
195
- const writer = new BufferedWriter(stream);
196
- writer.stream = originalWriter.stream;
197
- writer.stream.writer = writer;
198
- writer.next = originalWriter.next;
199
- writer.state = this._state;
200
- writer.merge(originalWriter);
201
-
202
- this._state.stream = stream;
203
- this._state.writer = writer;
204
-
205
- iteratorNextFn = async () => {
206
- if (error !== noop) {
207
- throw error;
208
- } else if (buffer) {
209
- const value = buffer;
210
- buffer = "";
211
- return { value, done: false };
212
- } else if (done) {
213
- return { value: undefined, done: true };
214
- }
215
-
216
- if (!pending) {
217
- pending = deferred();
218
- }
219
-
220
- return pending.promise;
221
- };
222
- }
223
-
224
- return (this.___iterator = {
225
- next: iteratorNextFn,
226
- return: iteratorReturnFn,
227
- throw: iteratorReturnFn,
228
- [Symbol.asyncIterator]() {
229
- return this;
230
- },
231
- });
232
- },
233
-
234
- sync: function () {
235
- this._sync = true;
236
- },
237
-
238
- isSync: function () {
239
- return this._sync === true;
240
- },
241
-
242
- write: function (str) {
243
- if (str != null) {
244
- this.writer.write(str.toString());
245
- }
246
- return this;
247
- },
248
-
249
- script: function (str) {
250
- if (str != null) {
251
- this.writer.script(str.toString());
252
- }
253
- return this;
254
- },
255
-
256
- ___getOutput: function () {
257
- return this._state.writer.toString();
258
- },
259
-
260
- /**
261
- * Legacy...
262
- */
263
- getOutput: function () {
264
- return this.___getOutput();
265
- },
266
-
267
- toString: function () {
268
- return this._state.writer.toString();
269
- },
270
-
271
- ___getResult: function () {
272
- this._result = this._result || new RenderResult(this);
273
- return this._result;
274
- },
275
-
276
- beginAsync: function (options) {
277
- if (this._sync) {
278
- throw new Error("beginAsync() not allowed when using renderSync()");
279
- }
280
-
281
- var state = this._state;
282
-
283
- var currentWriter = this.writer;
284
-
285
- /* ┏━━━━━┓ this
286
- ┃ WAS ┃ ↓↑
287
- ┗━━━━━┛ prevWriter → currentWriter → nextWriter */
288
-
289
- var newWriter = new StringWriter();
290
- var newStream = new AsyncStream(this.global, currentWriter, this);
291
- newWriter.state = state;
292
-
293
- this.writer = newWriter;
294
- newWriter.stream = this;
295
-
296
- newWriter.next = currentWriter.next;
297
- currentWriter.next = newWriter;
298
-
299
- /* ┏━━━━━┓ newStream this
300
- ┃ NOW ┃ ↓↑ ↓↑
301
- ┗━━━━━┛ prevWriter → currentWriter → newWriter → nextWriter */
302
-
303
- var timeout;
304
- var name;
305
-
306
- this._remaining++;
307
-
308
- if (options != null) {
309
- if (typeof options === "number") {
310
- timeout = options;
311
- } else {
312
- timeout = options.timeout;
313
-
314
- if (options.last === true) {
315
- if (timeout == null) {
316
- // Don't assign a timeout to last flush fragments
317
- // unless it is explicitly given a timeout
318
- timeout = 0;
319
- }
320
-
321
- this._lastCount++;
322
- newStream.___isLast = true;
323
- }
324
-
325
- name = options.name;
326
- }
327
- }
328
-
329
- if (missingSetTimeout) {
330
- timeout = 0;
331
- } else if (timeout == null) {
332
- timeout = AsyncStream.DEFAULT_TIMEOUT;
333
- }
334
-
335
- newStream._stack = AsyncStream.INCLUDE_STACK ? new Error() : null;
336
- newStream.name = name;
337
-
338
- if (timeout > 0) {
339
- newStream._timeoutId = setTimeout(function () {
340
- newStream.error(
341
- new Error(
342
- "Async fragment " +
343
- (name ? "(" + name + ") " : "") +
344
- "timed out after " +
345
- timeout +
346
- "ms",
347
- ),
348
- );
349
- }, timeout);
350
- }
351
-
352
- state.events.emit("beginAsync", {
353
- out: newStream,
354
- parentOut: this,
355
- });
356
-
357
- return newStream;
358
- },
359
-
360
- _doFinish: function () {
361
- var state = this._state;
362
-
363
- state.finished = true;
364
-
365
- if (state.writer.end) {
366
- state.writer.end();
367
- }
368
-
369
- if (state.events !== state.stream) {
370
- state.events.emit("finish", this.___getResult());
371
- }
372
- },
373
-
374
- end: function (data) {
375
- if (this._ended === true) {
376
- return;
377
- }
378
-
379
- this._ended = true;
380
-
381
- var remaining = --this._remaining;
382
-
383
- if (data != null) {
384
- this.write(data);
385
- }
386
-
387
- var currentWriter = this.writer;
388
-
389
- /* ┏━━━━━┓ this nextStream
390
- ┃ WAS ┃ ↓↑ ↓↑
391
- ┗━━━━━┛ currentWriter → nextWriter → futureWriter */
392
-
393
- // Prevent any more writes to the current steam
394
- this.writer = voidWriter;
395
- currentWriter.stream = null;
396
-
397
- // Flush the contents of nextWriter to the currentWriter
398
- this._flushNext(currentWriter);
399
-
400
- /* ┏━━━━━┓ this ╵ nextStream
401
- ┃ ┃ ↓ ╵ ↓↑
402
- ┃ NOW ┃ voidWriter ╵ currentWriter → futureWriter
403
- ┃ ┃ ──────────────┴────────────────────────────────
404
- ┗━━━━━┛ Flushed & garbage collected: nextWriter */
405
-
406
- var parentOut = this._parentOut;
407
-
408
- if (parentOut === undefined) {
409
- if (remaining === 0) {
410
- this._doFinish();
411
- } else if (remaining - this._lastCount === 0) {
412
- this._emitLast();
413
- }
414
- } else {
415
- var timeoutId = this._timeoutId;
416
-
417
- if (timeoutId) {
418
- clearTimeout(timeoutId);
419
- }
420
-
421
- if (remaining === 0) {
422
- parentOut._handleChildDone(this);
423
- } else if (remaining - this._lastCount === 0) {
424
- this._emitLast();
425
- }
426
- }
427
-
428
- return this;
429
- },
430
-
431
- _handleChildDone: function (childOut) {
432
- var remaining = --this._remaining;
433
-
434
- if (remaining === 0) {
435
- var parentOut = this._parentOut;
436
- if (parentOut === undefined) {
437
- this._doFinish();
438
- } else {
439
- parentOut._handleChildDone(this);
440
- }
441
- } else {
442
- if (childOut.___isLast) {
443
- this._lastCount--;
444
- }
445
-
446
- if (remaining - this._lastCount === 0) {
447
- this._emitLast();
448
- }
449
- }
450
- },
451
-
452
- _flushNext: function (currentWriter) {
453
- // It is possible that currentWriter is the
454
- // last writer in the chain, so let's make
455
- // sure there is a nextWriter to flush.
456
- var nextWriter = currentWriter.next;
457
- if (nextWriter) {
458
- // Flush the contents of nextWriter
459
- // to the currentWriter
460
- currentWriter.merge(nextWriter);
461
-
462
- // Remove nextWriter from the chain.
463
- // It has been flushed and can now be
464
- // garbage collected.
465
- currentWriter.next = nextWriter.next;
466
-
467
- // It's possible that nextWriter is the last
468
- // writer in the chain and its stream already
469
- // ended, so let's make sure nextStream exists.
470
- var nextStream = nextWriter.stream;
471
- if (nextStream) {
472
- // Point the nextStream to currentWriter
473
- nextStream.writer = currentWriter;
474
- currentWriter.stream = nextStream;
475
- }
476
- }
477
- },
478
-
479
- on: function (event, callback) {
480
- var state = this._state;
481
-
482
- if (event === "finish" && state.finished === true) {
483
- callback(this.___getResult());
484
- } else if (event === "last") {
485
- this.onLast(callback);
486
- } else {
487
- state.events.on(event, callback);
488
- }
489
-
490
- return this;
491
- },
492
-
493
- once: function (event, callback) {
494
- var state = this._state;
495
-
496
- if (event === "finish" && state.finished === true) {
497
- callback(this.___getResult());
498
- } else if (event === "last") {
499
- this.onLast(callback);
500
- } else {
501
- state.events.once(event, callback);
502
- }
503
-
504
- return this;
505
- },
506
-
507
- onLast: function (callback) {
508
- var lastArray = this._last;
509
-
510
- if (lastArray === undefined) {
511
- this._last = [callback];
512
- } else {
513
- lastArray.push(callback);
514
- }
515
-
516
- return this;
517
- },
518
-
519
- _emitLast: function () {
520
- if (this._last) {
521
- var i = 0;
522
- var lastArray = this._last;
523
- this._last = undefined;
524
- (function next() {
525
- if (i === lastArray.length) {
526
- return;
527
- }
528
- var lastCallback = lastArray[i++];
529
- lastCallback(next);
530
-
531
- if (lastCallback.length === 0) {
532
- next();
533
- }
534
- })();
535
- }
536
- },
537
-
538
- emit: function (type, arg) {
539
- var events = this._state.events;
540
- switch (arguments.length) {
541
- case 1:
542
- events.emit(type);
543
- break;
544
- case 2:
545
- events.emit(type, arg);
546
- break;
547
- default:
548
- events.emit.apply(events, arguments);
549
- break;
550
- }
551
- return this;
552
- },
553
-
554
- removeListener: function () {
555
- var events = this._state.events;
556
- events.removeListener.apply(events, arguments);
557
- return this;
558
- },
559
-
560
- prependListener: function () {
561
- var events = this._state.events;
562
- events.prependListener.apply(events, arguments);
563
- return this;
564
- },
565
-
566
- pipe: function (stream) {
567
- this._state.stream.pipe(stream);
568
- return this;
569
- },
570
-
571
- error: function (e) {
572
- var name = this.name;
573
- var stack = this._stack;
574
- if (stack) stack = getNonMarkoStack(stack);
575
-
576
- if (!(e instanceof Error)) {
577
- e = new Error(JSON.stringify(e));
578
- }
579
-
580
- if (name || stack) {
581
- e.message +=
582
- "\nRendered by" +
583
- (name ? " " + name : "") +
584
- (stack ? ":\n" + stack : "");
585
- }
586
- try {
587
- this.emit("error", e);
588
- } finally {
589
- // If there is no listener for the error event then it will
590
- // throw a new here. In order to ensure that the async fragment
591
- // is still properly ended we need to put the end() in a `finally`
592
- // block
593
- this.end();
594
- }
595
-
596
- return this;
597
- },
598
-
599
- flush: function () {
600
- var state = this._state;
601
-
602
- if (!state.finished) {
603
- var writer = state.writer;
604
- if (writer && writer.scheduleFlush) {
605
- writer.scheduleFlush();
606
- }
607
- }
608
- return this;
609
- },
610
-
611
- createOut: function () {
612
- var newOut = new AsyncStream(this.global);
613
- // Forward error events to the parent out.
614
- newOut.on("error", this.emit.bind(this, "error"));
615
- this._state.events.emit("beginDetachedAsync", {
616
- out: newOut,
617
- parentOut: this,
618
- });
619
- return newOut;
620
- },
621
-
622
- ___elementDynamic: function (
623
- tagName,
624
- elementAttrs,
625
- key,
626
- componentDef,
627
- props,
628
- ) {
629
- var str =
630
- "<" +
631
- tagName +
632
- markoAttr(
633
- this,
634
- componentDef,
635
- props,
636
- key && key[0] === "@" ? key : undefined,
637
- ) +
638
- attrsHelper(elementAttrs);
639
-
640
- if (selfClosingTags.voidElements.indexOf(tagName) !== -1) {
641
- str += ">";
642
- } else if (selfClosingTags.svgElements.indexOf(tagName) !== -1) {
643
- str += "/>";
644
- } else {
645
- str += "></" + tagName + ">";
646
- }
647
-
648
- this.write(str);
649
- },
650
-
651
- element: function (tagName, elementAttrs, openTagOnly) {
652
- var str = "<" + tagName + attrsHelper(elementAttrs) + ">";
653
-
654
- if (openTagOnly !== true) {
655
- str += "</" + tagName + ">";
656
- }
657
-
658
- this.write(str);
659
- },
660
-
661
- ___beginElementDynamic: function (
662
- name,
663
- elementAttrs,
664
- key,
665
- componentDef,
666
- props,
667
- ) {
668
- var str =
669
- "<" +
670
- name +
671
- markoAttr(this, componentDef, props, key) +
672
- attrsHelper(elementAttrs) +
673
- ">";
674
-
675
- this.write(str);
676
-
677
- if (this._elStack) {
678
- this._elStack.push(name);
679
- } else {
680
- this._elStack = [name];
681
- }
682
- },
683
-
684
- beginElement: function (name, elementAttrs) {
685
- var str = "<" + name + attrsHelper(elementAttrs) + ">";
686
-
687
- this.write(str);
688
-
689
- if (this._elStack) {
690
- this._elStack.push(name);
691
- } else {
692
- this._elStack = [name];
693
- }
694
- },
695
-
696
- endElement: function () {
697
- var tagName = this._elStack.pop();
698
- this.write("</" + tagName + ">");
699
- },
700
-
701
- comment: function (str) {
702
- this.write("<!--" + escapeEndingComment(str) + "-->");
703
- },
704
-
705
- text: function (str) {
706
- this.write(escapeXmlOrNullish(str));
707
- },
708
-
709
- bf: function (key, component, preserve) {
710
- if (preserve) {
711
- this.write("<!--F#" + escapeXmlString(key) + "-->");
712
- }
713
- if (this._elStack) {
714
- this._elStack.push(preserve);
715
- } else {
716
- this._elStack = [preserve];
717
- }
718
- },
719
-
720
- ef: function () {
721
- var preserve = this._elStack.pop();
722
- if (preserve) {
723
- this.write("<!--F/-->");
724
- }
725
- },
726
-
727
- ___getNode: function (host) {
728
- var node = this._node;
729
-
730
- if (!node) {
731
- var nextEl;
732
- var fragment;
733
- var html = this.___getOutput();
734
- if (!host) host = this.___host;
735
- var doc = host.ownerDocument || host;
736
-
737
- if (html) {
738
- node = parseHTML(html);
739
-
740
- if (node && node.nextSibling) {
741
- // If there are multiple nodes, turn it into a document fragment.
742
- fragment = doc.createDocumentFragment();
743
-
744
- do {
745
- nextEl = node.nextSibling;
746
- fragment.appendChild(node);
747
- } while ((node = nextEl));
748
-
749
- node = fragment;
750
- }
751
- }
752
-
753
- // if HTML is empty use empty document fragment (so that we're returning a valid DOM node)
754
- this._node = node || doc.createDocumentFragment();
755
- }
756
- return node;
757
- },
758
-
759
- then: function (fn, fnErr) {
760
- // eslint-disable-next-line @typescript-eslint/no-this-alias
761
- var out = this;
762
- return new Promise(function (resolve, reject) {
763
- out.on("error", reject);
764
- out.on("finish", function (result) {
765
- resolve(result);
766
- });
767
- }).then(fn, fnErr);
768
- },
769
-
770
- catch: function (fnErr) {
771
- return this.then(undefined, fnErr);
772
- },
773
-
774
- finally: function (fn) {
775
- return this.then(undefined, undefined).finally(fn);
776
- },
777
-
778
- c: function (componentDef, key, customEvents) {
779
- this.___assignedComponentDef = componentDef;
780
- this.___assignedKey = key;
781
- this.___assignedCustomEvents = customEvents;
782
- },
783
- });
784
-
785
- // alias:
786
- proto.w = proto.write;
787
- proto.___endElement = proto.endElement;
788
-
789
- module.exports = AsyncStream;
790
-
791
- function getNonMarkoStack(error) {
792
- return error.stack
793
- .toString()
794
- .split("\n")
795
- .slice(1)
796
- .filter((line) => !/\/node_modules\/marko\//.test(line))
797
- .join("\n");
798
- }
799
-
800
- function iteratorReturnFn(value) {
801
- return Promise.resolve({
802
- value,
803
- done: true,
804
- });
805
- }