marko 5.37.1 → 6.0.0-3.4

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 (638) 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 +2112 -0
  8. package/dist/debug/dom.mjs +2089 -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 +9143 -489
  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 +32 -74
  124. package/README.md +0 -161
  125. package/bin/markoc +0 -2
  126. package/bin/markoc.js +0 -441
  127. package/browser-refresh.js +0 -5
  128. package/compiler-browser.marko +0 -15
  129. package/compiler.js +0 -7
  130. package/components-browser.marko +0 -15
  131. package/components.js +0 -7
  132. package/dist/build.json +0 -3
  133. package/dist/compiler/config.js +0 -45
  134. package/dist/compiler/index.js +0 -164
  135. package/dist/compiler/modules.js +0 -5
  136. package/dist/core-tags/components/init-components-tag.js +0 -54
  137. package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
  138. package/dist/core-tags/components/preserve-tag.js +0 -1
  139. package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
  140. package/dist/core-tags/core/await/AsyncValue.js +0 -121
  141. package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
  142. package/dist/core-tags/core/await/index.d.marko +0 -10
  143. package/dist/core-tags/core/await/renderer.js +0 -249
  144. package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
  145. package/dist/index.js +0 -4
  146. package/dist/node-require/browser-refresh.js +0 -18
  147. package/dist/node-require/hot-reload.js +0 -45
  148. package/dist/node-require/index.js +0 -103
  149. package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  150. package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
  151. package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
  152. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  153. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  154. package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  155. package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  156. package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
  157. package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
  158. package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
  159. package/dist/node_modules/@internal/components-entry/index.js +0 -301
  160. package/dist/node_modules/@internal/components-entry/package.json +0 -11
  161. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  162. package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
  163. package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
  164. package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
  165. package/dist/node_modules/@internal/components-registry/index.js +0 -44
  166. package/dist/node_modules/@internal/components-registry/package.json +0 -11
  167. package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
  168. package/dist/node_modules/@internal/components-util/index.js +0 -75
  169. package/dist/node_modules/@internal/components-util/package.json +0 -11
  170. package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
  171. package/dist/node_modules/@internal/create-readable/index.js +0 -57
  172. package/dist/node_modules/@internal/create-readable/package.json +0 -11
  173. package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
  174. package/dist/node_modules/@internal/loader/index-browser.js +0 -2
  175. package/dist/node_modules/@internal/loader/index.js +0 -23
  176. package/dist/node_modules/@internal/loader/package.json +0 -10
  177. package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  178. package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
  179. package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
  180. package/dist/node_modules/@internal/require/index-browser.js +0 -15
  181. package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
  182. package/dist/node_modules/@internal/require/index-webpack.js +0 -16
  183. package/dist/node_modules/@internal/require/index.js +0 -15
  184. package/dist/node_modules/@internal/require/package.json +0 -11
  185. package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
  186. package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
  187. package/dist/node_modules/@internal/set-immediate/index.js +0 -3
  188. package/dist/node_modules/@internal/set-immediate/package.json +0 -11
  189. package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  190. package/dist/runtime/RenderResult.js +0 -112
  191. package/dist/runtime/components/Component.js +0 -663
  192. package/dist/runtime/components/ComponentDef.js +0 -169
  193. package/dist/runtime/components/ComponentsContext.js +0 -59
  194. package/dist/runtime/components/GlobalComponentsContext.js +0 -10
  195. package/dist/runtime/components/KeySequence.js +0 -16
  196. package/dist/runtime/components/ServerComponent.js +0 -73
  197. package/dist/runtime/components/State.js +0 -101
  198. package/dist/runtime/components/attach-detach.js +0 -60
  199. package/dist/runtime/components/defineComponent.js +0 -60
  200. package/dist/runtime/components/dom-data.js +0 -8
  201. package/dist/runtime/components/event-delegation.js +0 -144
  202. package/dist/runtime/components/index.js +0 -1
  203. package/dist/runtime/components/legacy/browser.json +0 -9
  204. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
  205. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  206. package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
  207. package/dist/runtime/components/legacy/dependencies/html.js +0 -3
  208. package/dist/runtime/components/legacy/dependencies/index.js +0 -177
  209. package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
  210. package/dist/runtime/components/legacy/index.js +0 -1
  211. package/dist/runtime/components/legacy/jquery.js +0 -52
  212. package/dist/runtime/components/legacy/ready.js +0 -152
  213. package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
  214. package/dist/runtime/components/registry.js +0 -1
  215. package/dist/runtime/components/renderer.js +0 -236
  216. package/dist/runtime/components/update-manager.js +0 -94
  217. package/dist/runtime/createOut.js +0 -13
  218. package/dist/runtime/dom-insert.js +0 -77
  219. package/dist/runtime/events.js +0 -2
  220. package/dist/runtime/helpers/_change-case.js +0 -45
  221. package/dist/runtime/helpers/assign.js +0 -21
  222. package/dist/runtime/helpers/attr-tag.js +0 -43
  223. package/dist/runtime/helpers/class-value.js +0 -30
  224. package/dist/runtime/helpers/dynamic-tag.js +0 -181
  225. package/dist/runtime/helpers/empty-component.js +0 -1
  226. package/dist/runtime/helpers/merge.js +0 -13
  227. package/dist/runtime/helpers/of-fallback.js +0 -4
  228. package/dist/runtime/helpers/render-tag.js +0 -20
  229. package/dist/runtime/helpers/serialize-noop.js +0 -5
  230. package/dist/runtime/helpers/style-value.js +0 -45
  231. package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
  232. package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  233. package/dist/runtime/helpers/tags-compat/dom.js +0 -1
  234. package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
  235. package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
  236. package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  237. package/dist/runtime/helpers/tags-compat/html.js +0 -3
  238. package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
  239. package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  240. package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
  241. package/dist/runtime/helpers/to-string.js +0 -5
  242. package/dist/runtime/html/AsyncStream.js +0 -805
  243. package/dist/runtime/html/BufferedWriter.js +0 -52
  244. package/dist/runtime/html/StringWriter.js +0 -73
  245. package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
  246. package/dist/runtime/html/helpers/attr.js +0 -80
  247. package/dist/runtime/html/helpers/attrs.js +0 -26
  248. package/dist/runtime/html/helpers/class-attr.js +0 -8
  249. package/dist/runtime/html/helpers/data-marko.js +0 -36
  250. package/dist/runtime/html/helpers/escape-quotes.js +0 -35
  251. package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
  252. package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
  253. package/dist/runtime/html/helpers/escape-xml.js +0 -21
  254. package/dist/runtime/html/helpers/merge-attrs.js +0 -55
  255. package/dist/runtime/html/helpers/props-script.js +0 -32
  256. package/dist/runtime/html/helpers/style-attr.js +0 -8
  257. package/dist/runtime/html/hot-reload.js +0 -26
  258. package/dist/runtime/html/index.js +0 -33
  259. package/dist/runtime/html/marko-namespace.js +0 -3
  260. package/dist/runtime/renderable.js +0 -194
  261. package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  262. package/dist/runtime/vdom/VComment.js +0 -24
  263. package/dist/runtime/vdom/VComponent.js +0 -17
  264. package/dist/runtime/vdom/VDocumentFragment.js +0 -34
  265. package/dist/runtime/vdom/VElement.js +0 -375
  266. package/dist/runtime/vdom/VFragment.js +0 -26
  267. package/dist/runtime/vdom/VNode.js +0 -100
  268. package/dist/runtime/vdom/VText.js +0 -25
  269. package/dist/runtime/vdom/helpers/attrs.js +0 -62
  270. package/dist/runtime/vdom/helpers/const-element.js +0 -25
  271. package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
  272. package/dist/runtime/vdom/hot-reload.js +0 -115
  273. package/dist/runtime/vdom/index.js +0 -30
  274. package/dist/runtime/vdom/is-text-only.js +0 -10
  275. package/dist/runtime/vdom/marko-namespace.js +0 -3
  276. package/dist/runtime/vdom/morphdom/fragment.js +0 -95
  277. package/dist/runtime/vdom/morphdom/helpers.js +0 -42
  278. package/dist/runtime/vdom/morphdom/index.js +0 -741
  279. package/dist/runtime/vdom/parse-html.js +0 -18
  280. package/dist/runtime/vdom/vdom.js +0 -88
  281. package/dist/taglib/index.js +0 -51
  282. package/dist/translator/cdata/index.js +0 -15
  283. package/dist/translator/cdata/index[html].js +0 -15
  284. package/dist/translator/cdata/index[vdom].js +0 -12
  285. package/dist/translator/class.js +0 -65
  286. package/dist/translator/comment/index.js +0 -15
  287. package/dist/translator/comment/index[html].js +0 -17
  288. package/dist/translator/comment/index[vdom].js +0 -3
  289. package/dist/translator/declaration/index.js +0 -15
  290. package/dist/translator/declaration/index[html].js +0 -12
  291. package/dist/translator/declaration/index[vdom].js +0 -3
  292. package/dist/translator/document-type/index.js +0 -15
  293. package/dist/translator/document-type/index[html].js +0 -12
  294. package/dist/translator/document-type/index[vdom].js +0 -3
  295. package/dist/translator/placeholder/index.js +0 -15
  296. package/dist/translator/placeholder/index[html].js +0 -93
  297. package/dist/translator/placeholder/index[vdom].js +0 -22
  298. package/dist/translator/scriptlet.js +0 -4
  299. package/dist/translator/tag/attribute/directives/class.js +0 -42
  300. package/dist/translator/tag/attribute/directives/index.js +0 -15
  301. package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  302. package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
  303. package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
  304. package/dist/translator/tag/attribute/directives/no-update.js +0 -48
  305. package/dist/translator/tag/attribute/directives/style.js +0 -42
  306. package/dist/translator/tag/attribute/index.js +0 -150
  307. package/dist/translator/tag/attribute/modifiers/index.js +0 -7
  308. package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
  309. package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
  310. package/dist/translator/tag/attribute-tag.js +0 -149
  311. package/dist/translator/tag/custom-tag.js +0 -146
  312. package/dist/translator/tag/dynamic-tag.js +0 -74
  313. package/dist/translator/tag/index.js +0 -287
  314. package/dist/translator/tag/macro-tag.js +0 -7
  315. package/dist/translator/tag/native-tag.js +0 -27
  316. package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
  317. package/dist/translator/tag/native-tag[html]/index.js +0 -221
  318. package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
  319. package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
  320. package/dist/translator/tag/util.js +0 -246
  321. package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
  322. package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
  323. package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
  324. package/dist/translator/taglib/core/conditional/util.js +0 -41
  325. package/dist/translator/taglib/core/index.js +0 -474
  326. package/dist/translator/taglib/core/macro/parse.js +0 -17
  327. package/dist/translator/taglib/core/macro/translate.js +0 -48
  328. package/dist/translator/taglib/core/parse-class.js +0 -79
  329. package/dist/translator/taglib/core/parse-export.js +0 -14
  330. package/dist/translator/taglib/core/parse-import.js +0 -14
  331. package/dist/translator/taglib/core/parse-module-code.js +0 -18
  332. package/dist/translator/taglib/core/parse-static.js +0 -18
  333. package/dist/translator/taglib/core/transform-style.js +0 -66
  334. package/dist/translator/taglib/core/translate-await.js +0 -41
  335. package/dist/translator/taglib/core/translate-body.js +0 -17
  336. package/dist/translator/taglib/core/translate-for.js +0 -156
  337. package/dist/translator/taglib/core/translate-html-comment.js +0 -52
  338. package/dist/translator/taglib/core/translate-include-content.js +0 -53
  339. package/dist/translator/taglib/core/translate-server-only.js +0 -5
  340. package/dist/translator/taglib/core/translate-while.js +0 -32
  341. package/dist/translator/taglib/index.js +0 -6
  342. package/dist/translator/taglib/migrate/all-templates.js +0 -46
  343. package/dist/translator/taglib/migrate/index.js +0 -5
  344. package/dist/translator/text/index.js +0 -10
  345. package/dist/translator/text/index[html].js +0 -12
  346. package/dist/translator/text/index[vdom].js +0 -20
  347. package/dist/translator/util/add-dependencies.js +0 -329
  348. package/dist/translator/util/escape-regexp.js +0 -4
  349. package/dist/translator/util/get-component-files.js +0 -86
  350. package/dist/translator/util/html-out-write.js +0 -15
  351. package/dist/translator/util/key-manager.js +0 -176
  352. package/dist/translator/util/optimize-html-writes.js +0 -52
  353. package/dist/translator/util/optimize-vdom-create.js +0 -164
  354. package/dist/translator/util/plugin-hooks.js +0 -22
  355. package/dist/translator/util/runtime-flags.js +0 -3
  356. package/dist/translator/util/vdom-out-write.js +0 -10
  357. package/dist/translator/util/with-previous-location.js +0 -6
  358. package/docs/10-awesome-marko-features.md +0 -291
  359. package/docs/body-content.md +0 -355
  360. package/docs/class-components.md +0 -1001
  361. package/docs/cloudflare-workers.md +0 -32
  362. package/docs/compiler-hooks.png +0 -0
  363. package/docs/compiler.md +0 -473
  364. package/docs/component-diagram.afdesign +0 -0
  365. package/docs/component-diagram.svg +0 -87
  366. package/docs/concise.md +0 -141
  367. package/docs/conditionals-and-lists.md +0 -72
  368. package/docs/core-tags.md +0 -325
  369. package/docs/custom-tags.md +0 -201
  370. package/docs/editor-plugins.md +0 -45
  371. package/docs/events.md +0 -131
  372. package/docs/express.md +0 -66
  373. package/docs/fastify.md +0 -65
  374. package/docs/getting-started.md +0 -95
  375. package/docs/http.md +0 -34
  376. package/docs/icons/js.svg +0 -4
  377. package/docs/icons/marko.svg +0 -1
  378. package/docs/icons/ts.svg +0 -1
  379. package/docs/installing.md +0 -51
  380. package/docs/koa.md +0 -35
  381. package/docs/lasso.md +0 -196
  382. package/docs/marko-5-upgrade.md +0 -59
  383. package/docs/marko-json.md +0 -248
  384. package/docs/marko-vs-react.md +0 -854
  385. package/docs/redux.md +0 -61
  386. package/docs/rendering.md +0 -268
  387. package/docs/rollup.md +0 -352
  388. package/docs/state.md +0 -105
  389. package/docs/structure.json +0 -49
  390. package/docs/styles.md +0 -29
  391. package/docs/syntax.md +0 -601
  392. package/docs/troubleshooting-streaming.md +0 -68
  393. package/docs/typescript.md +0 -406
  394. package/docs/vite.md +0 -86
  395. package/docs/webpack.md +0 -205
  396. package/docs/why-is-marko-fast.md +0 -239
  397. package/env.js +0 -7
  398. package/helpers/README.md +0 -3
  399. package/helpers/empty.js +0 -4
  400. package/helpers/notEmpty.js +0 -11
  401. package/index-browser.marko +0 -15
  402. package/index.d.ts +0 -375
  403. package/index.js +0 -7
  404. package/legacy-components-browser.marko +0 -15
  405. package/legacy-components.js +0 -7
  406. package/node-require.js +0 -8
  407. package/src/build.json +0 -3
  408. package/src/compiler/config.js +0 -45
  409. package/src/compiler/index.js +0 -164
  410. package/src/compiler/modules.js +0 -5
  411. package/src/core-tags/.eslintrc +0 -5
  412. package/src/core-tags/components/init-components-tag.js +0 -54
  413. package/src/core-tags/components/preferred-script-location-tag.js +0 -25
  414. package/src/core-tags/components/preserve-tag.js +0 -1
  415. package/src/core-tags/core/__flush_here_and_after__.js +0 -44
  416. package/src/core-tags/core/await/AsyncValue.js +0 -121
  417. package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
  418. package/src/core-tags/core/await/index.d.marko +0 -10
  419. package/src/core-tags/core/await/renderer.js +0 -249
  420. package/src/core-tags/core/await/reorderer-renderer.js +0 -156
  421. package/src/index.js +0 -4
  422. package/src/node-require/browser-refresh.js +0 -18
  423. package/src/node-require/hot-reload.js +0 -45
  424. package/src/node-require/index.js +0 -103
  425. package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  426. package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
  427. package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
  428. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  429. package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  430. package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  431. package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  432. package/src/node_modules/@internal/components-endComponent/index.js +0 -11
  433. package/src/node_modules/@internal/components-endComponent/package.json +0 -11
  434. package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
  435. package/src/node_modules/@internal/components-entry/index.js +0 -301
  436. package/src/node_modules/@internal/components-entry/package.json +0 -11
  437. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  438. package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
  439. package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
  440. package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
  441. package/src/node_modules/@internal/components-registry/index.js +0 -44
  442. package/src/node_modules/@internal/components-registry/package.json +0 -11
  443. package/src/node_modules/@internal/components-util/index-browser.js +0 -152
  444. package/src/node_modules/@internal/components-util/index.js +0 -75
  445. package/src/node_modules/@internal/components-util/package.json +0 -11
  446. package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
  447. package/src/node_modules/@internal/create-readable/index.js +0 -57
  448. package/src/node_modules/@internal/create-readable/package.json +0 -11
  449. package/src/node_modules/@internal/loader/fallback-node.js +0 -89
  450. package/src/node_modules/@internal/loader/index-browser.js +0 -2
  451. package/src/node_modules/@internal/loader/index.js +0 -23
  452. package/src/node_modules/@internal/loader/package.json +0 -10
  453. package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  454. package/src/node_modules/@internal/preserve-tag/index.js +0 -34
  455. package/src/node_modules/@internal/preserve-tag/package.json +0 -11
  456. package/src/node_modules/@internal/require/index-browser.js +0 -15
  457. package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
  458. package/src/node_modules/@internal/require/index-webpack.js +0 -16
  459. package/src/node_modules/@internal/require/index.js +0 -15
  460. package/src/node_modules/@internal/require/package.json +0 -11
  461. package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
  462. package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
  463. package/src/node_modules/@internal/set-immediate/index.js +0 -3
  464. package/src/node_modules/@internal/set-immediate/package.json +0 -11
  465. package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  466. package/src/runtime/.eslintrc +0 -5
  467. package/src/runtime/RenderResult.js +0 -112
  468. package/src/runtime/components/Component.js +0 -663
  469. package/src/runtime/components/ComponentDef.js +0 -169
  470. package/src/runtime/components/ComponentsContext.js +0 -59
  471. package/src/runtime/components/GlobalComponentsContext.js +0 -10
  472. package/src/runtime/components/KeySequence.js +0 -16
  473. package/src/runtime/components/ServerComponent.js +0 -73
  474. package/src/runtime/components/State.js +0 -101
  475. package/src/runtime/components/attach-detach.js +0 -60
  476. package/src/runtime/components/defineComponent.js +0 -60
  477. package/src/runtime/components/dom-data.js +0 -8
  478. package/src/runtime/components/event-delegation.js +0 -144
  479. package/src/runtime/components/index.js +0 -1
  480. package/src/runtime/components/legacy/browser.json +0 -9
  481. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
  482. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  483. package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
  484. package/src/runtime/components/legacy/dependencies/html.js +0 -3
  485. package/src/runtime/components/legacy/dependencies/index.js +0 -177
  486. package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
  487. package/src/runtime/components/legacy/index.js +0 -1
  488. package/src/runtime/components/legacy/jquery.js +0 -52
  489. package/src/runtime/components/legacy/ready.js +0 -152
  490. package/src/runtime/components/legacy/renderer-legacy.js +0 -231
  491. package/src/runtime/components/registry.js +0 -1
  492. package/src/runtime/components/renderer.js +0 -236
  493. package/src/runtime/components/update-manager.js +0 -94
  494. package/src/runtime/createOut.js +0 -13
  495. package/src/runtime/dom-insert.js +0 -77
  496. package/src/runtime/events.js +0 -2
  497. package/src/runtime/helpers/_change-case.js +0 -45
  498. package/src/runtime/helpers/assign.js +0 -21
  499. package/src/runtime/helpers/attr-tag.js +0 -43
  500. package/src/runtime/helpers/class-value.js +0 -30
  501. package/src/runtime/helpers/dynamic-tag.js +0 -181
  502. package/src/runtime/helpers/empty-component.js +0 -1
  503. package/src/runtime/helpers/merge.js +0 -13
  504. package/src/runtime/helpers/of-fallback.js +0 -4
  505. package/src/runtime/helpers/render-tag.js +0 -20
  506. package/src/runtime/helpers/serialize-noop.js +0 -5
  507. package/src/runtime/helpers/style-value.js +0 -45
  508. package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
  509. package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  510. package/src/runtime/helpers/tags-compat/dom.js +0 -1
  511. package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
  512. package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
  513. package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  514. package/src/runtime/helpers/tags-compat/html.js +0 -3
  515. package/src/runtime/helpers/tags-compat/html.mjs +0 -4
  516. package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  517. package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
  518. package/src/runtime/helpers/to-string.js +0 -5
  519. package/src/runtime/html/AsyncStream.js +0 -805
  520. package/src/runtime/html/BufferedWriter.js +0 -52
  521. package/src/runtime/html/StringWriter.js +0 -73
  522. package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
  523. package/src/runtime/html/helpers/attr.js +0 -80
  524. package/src/runtime/html/helpers/attrs.js +0 -26
  525. package/src/runtime/html/helpers/class-attr.js +0 -8
  526. package/src/runtime/html/helpers/data-marko.js +0 -36
  527. package/src/runtime/html/helpers/escape-quotes.js +0 -35
  528. package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
  529. package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
  530. package/src/runtime/html/helpers/escape-xml.js +0 -21
  531. package/src/runtime/html/helpers/merge-attrs.js +0 -55
  532. package/src/runtime/html/helpers/props-script.js +0 -32
  533. package/src/runtime/html/helpers/style-attr.js +0 -8
  534. package/src/runtime/html/hot-reload.js +0 -26
  535. package/src/runtime/html/index.js +0 -33
  536. package/src/runtime/html/marko-namespace.js +0 -3
  537. package/src/runtime/renderable.js +0 -194
  538. package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  539. package/src/runtime/vdom/VComment.js +0 -24
  540. package/src/runtime/vdom/VComponent.js +0 -17
  541. package/src/runtime/vdom/VDocumentFragment.js +0 -34
  542. package/src/runtime/vdom/VElement.js +0 -375
  543. package/src/runtime/vdom/VFragment.js +0 -26
  544. package/src/runtime/vdom/VNode.js +0 -100
  545. package/src/runtime/vdom/VText.js +0 -25
  546. package/src/runtime/vdom/helpers/attrs.js +0 -62
  547. package/src/runtime/vdom/helpers/const-element.js +0 -25
  548. package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
  549. package/src/runtime/vdom/hot-reload.js +0 -115
  550. package/src/runtime/vdom/index.js +0 -30
  551. package/src/runtime/vdom/is-text-only.js +0 -10
  552. package/src/runtime/vdom/marko-namespace.js +0 -3
  553. package/src/runtime/vdom/morphdom/fragment.js +0 -95
  554. package/src/runtime/vdom/morphdom/helpers.js +0 -42
  555. package/src/runtime/vdom/morphdom/index.js +0 -741
  556. package/src/runtime/vdom/parse-html.js +0 -18
  557. package/src/runtime/vdom/vdom.js +0 -88
  558. package/src/taglib/index.js +0 -51
  559. package/src/translator/cdata/index.js +0 -15
  560. package/src/translator/cdata/index[html].js +0 -15
  561. package/src/translator/cdata/index[vdom].js +0 -12
  562. package/src/translator/class.js +0 -65
  563. package/src/translator/comment/index.js +0 -15
  564. package/src/translator/comment/index[html].js +0 -17
  565. package/src/translator/comment/index[vdom].js +0 -3
  566. package/src/translator/declaration/index.js +0 -15
  567. package/src/translator/declaration/index[html].js +0 -12
  568. package/src/translator/declaration/index[vdom].js +0 -3
  569. package/src/translator/document-type/index.js +0 -15
  570. package/src/translator/document-type/index[html].js +0 -12
  571. package/src/translator/document-type/index[vdom].js +0 -3
  572. package/src/translator/index.js +0 -551
  573. package/src/translator/placeholder/index.js +0 -15
  574. package/src/translator/placeholder/index[html].js +0 -93
  575. package/src/translator/placeholder/index[vdom].js +0 -22
  576. package/src/translator/scriptlet.js +0 -4
  577. package/src/translator/tag/attribute/directives/class.js +0 -42
  578. package/src/translator/tag/attribute/directives/index.js +0 -15
  579. package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  580. package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
  581. package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
  582. package/src/translator/tag/attribute/directives/no-update.js +0 -48
  583. package/src/translator/tag/attribute/directives/style.js +0 -42
  584. package/src/translator/tag/attribute/index.js +0 -150
  585. package/src/translator/tag/attribute/modifiers/index.js +0 -7
  586. package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
  587. package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
  588. package/src/translator/tag/attribute-tag.js +0 -149
  589. package/src/translator/tag/custom-tag.js +0 -146
  590. package/src/translator/tag/dynamic-tag.js +0 -74
  591. package/src/translator/tag/index.js +0 -287
  592. package/src/translator/tag/macro-tag.js +0 -7
  593. package/src/translator/tag/native-tag.js +0 -27
  594. package/src/translator/tag/native-tag[html]/attributes.js +0 -151
  595. package/src/translator/tag/native-tag[html]/index.js +0 -221
  596. package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
  597. package/src/translator/tag/native-tag[vdom]/index.js +0 -189
  598. package/src/translator/tag/util.js +0 -246
  599. package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
  600. package/src/translator/taglib/core/conditional/translate-else.js +0 -20
  601. package/src/translator/taglib/core/conditional/translate-if.js +0 -8
  602. package/src/translator/taglib/core/conditional/util.js +0 -41
  603. package/src/translator/taglib/core/index.js +0 -474
  604. package/src/translator/taglib/core/macro/parse.js +0 -17
  605. package/src/translator/taglib/core/macro/translate.js +0 -48
  606. package/src/translator/taglib/core/parse-class.js +0 -79
  607. package/src/translator/taglib/core/parse-export.js +0 -14
  608. package/src/translator/taglib/core/parse-import.js +0 -14
  609. package/src/translator/taglib/core/parse-module-code.js +0 -18
  610. package/src/translator/taglib/core/parse-static.js +0 -18
  611. package/src/translator/taglib/core/transform-style.js +0 -66
  612. package/src/translator/taglib/core/translate-await.js +0 -41
  613. package/src/translator/taglib/core/translate-body.js +0 -17
  614. package/src/translator/taglib/core/translate-for.js +0 -156
  615. package/src/translator/taglib/core/translate-html-comment.js +0 -52
  616. package/src/translator/taglib/core/translate-include-content.js +0 -53
  617. package/src/translator/taglib/core/translate-server-only.js +0 -5
  618. package/src/translator/taglib/core/translate-while.js +0 -32
  619. package/src/translator/taglib/index.js +0 -7
  620. package/src/translator/taglib/migrate/all-templates.js +0 -46
  621. package/src/translator/taglib/migrate/index.js +0 -5
  622. package/src/translator/text/index.js +0 -10
  623. package/src/translator/text/index[html].js +0 -12
  624. package/src/translator/text/index[vdom].js +0 -20
  625. package/src/translator/util/add-dependencies.js +0 -329
  626. package/src/translator/util/escape-regexp.js +0 -4
  627. package/src/translator/util/get-component-files.js +0 -86
  628. package/src/translator/util/html-out-write.js +0 -15
  629. package/src/translator/util/key-manager.js +0 -176
  630. package/src/translator/util/optimize-html-writes.js +0 -52
  631. package/src/translator/util/optimize-vdom-create.js +0 -164
  632. package/src/translator/util/plugin-hooks.js +0 -22
  633. package/src/translator/util/runtime-flags.js +0 -3
  634. package/src/translator/util/vdom-out-write.js +0 -10
  635. package/src/translator/util/with-previous-location.js +0 -6
  636. package/tags-html.d.ts +0 -3855
  637. package/translator/index.d.ts +0 -7
  638. package/translator/package.json +0 -5
@@ -1,11 +0,0 @@
1
- {
2
- "main": "./index.js",
3
- "browser": "./index-browser.js",
4
- "exports": {
5
- ".": {
6
- "worker": "./index.js",
7
- "browser": "./index-browser.js",
8
- "default": "./index.js"
9
- }
10
- }
11
- }
@@ -1,76 +0,0 @@
1
- var Component = require("../../../runtime/components/Component");
2
- var req = require("@internal/require");
3
- var getComponentForEl =
4
- require("@internal/components-util").___getComponentForEl;
5
-
6
- // eslint-disable-next-line no-constant-binary-expression
7
- var complain = "MARKO_DEBUG" && require("complain");
8
-
9
- // expose legacy
10
- require("@internal/components-registry").___legacy = exports;
11
- exports.load = function (typeName) {
12
- return exports.defineWidget(req(typeName));
13
- };
14
-
15
- // legacy api
16
- exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
17
- exports.defineWidget = require("@internal/components-define-widget-legacy");
18
- exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
19
- exports.makeRenderable =
20
- exports.renderable = require("../../../runtime/renderable");
21
-
22
- // browser only
23
- var Widget = (exports.Widget = Component);
24
- exports.getWidgetForEl = exports.get = function (elOrId) {
25
- var el = elOrId;
26
-
27
- if (typeof elOrId === "string") {
28
- el = document.getElementById(elOrId);
29
- }
30
-
31
- if (el && el.__widget) {
32
- return el.__widget;
33
- }
34
-
35
- return getComponentForEl(el);
36
- };
37
- exports.initWidgets =
38
- require("@internal/components-registry").___initServerRendered;
39
-
40
- // monkey patch Widget
41
- if (Widget) {
42
- var WidgetProto = Widget.prototype;
43
- WidgetProto.setProps = function (newInput) {
44
- this.___isReceivingNewInput = true;
45
- this.___setInput(newInput);
46
- };
47
- WidgetProto.rerender = function (newInput) {
48
- if (newInput) {
49
- this.setProps(newInput);
50
- }
51
-
52
- this.forceUpdate();
53
- this.update();
54
- };
55
- }
56
-
57
- var RenderResult = require("../../../runtime/RenderResult");
58
-
59
- RenderResult.prototype.getWidget = function () {
60
- // eslint-disable-next-line no-constant-condition
61
- if ("MARKO_DEBUG") {
62
- complain("getWidget is deprecated. use getComponent instead.");
63
- }
64
- return this.getWidgets()[0];
65
- };
66
- RenderResult.prototype.getWidgets = function () {
67
- // eslint-disable-next-line no-constant-condition
68
- if ("MARKO_DEBUG") {
69
- complain("getWidgets is deprecated. use getComponents instead.");
70
- }
71
- return RenderResult.prototype.getComponents
72
- .apply(this, arguments)
73
- .filter(function (component) {
74
- return component.___isLegacy;
75
- });
76
- };
@@ -1,16 +0,0 @@
1
- var modernMarko = require("@internal/components-entry");
2
-
3
- // legacy api
4
- exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
5
- exports.defineWidget = require("@internal/components-define-widget-legacy");
6
- exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
7
- exports.makeRenderable =
8
- exports.renderable = require("../../../runtime/renderable");
9
-
10
- // server only
11
- exports.writeInitWidgetsCode = modernMarko.writeInitComponentsCode;
12
- exports.getRenderedWidgets = exports.getRenderedWidgetIds =
13
- modernMarko.getRenderedComponents;
14
- exports.getInitWidgetsCode = function (out) {
15
- return modernMarko.___getInitComponentsCode(out);
16
- };
@@ -1,11 +0,0 @@
1
- {
2
- "main": "./index.js",
3
- "browser": "./index-browser.js",
4
- "exports": {
5
- ".": {
6
- "worker": "./index.js",
7
- "browser": "./index-browser.js",
8
- "default": "./index.js"
9
- }
10
- }
11
- }
@@ -1,586 +0,0 @@
1
- // eslint-disable-next-line no-constant-binary-expression
2
- var complain = "MARKO_DEBUG" && require("complain");
3
- var setImmediate = require("@internal/set-immediate").___setImmediate;
4
- var warp10Finalize = require("warp10/finalize");
5
- var defineComponent = require("../../../runtime/components/defineComponent");
6
- var eventDelegation = require("../../../runtime/components/event-delegation");
7
- var createFragmentNode =
8
- require("../../../runtime/vdom/morphdom/fragment").___createFragmentNode;
9
- var ComponentDef = require("../../../runtime/components/ComponentDef");
10
- var domData = require("../../../runtime/components/dom-data");
11
- var componentsUtil = require("@internal/components-util");
12
- var req = require("@internal/require");
13
- var componentLookup = componentsUtil.___componentLookup;
14
- var addComponentRootToKeyedElements =
15
- componentsUtil.___addComponentRootToKeyedElements;
16
- var keysByDOMNode = domData.___keyByDOMNode;
17
- var keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;
18
- var componentsByDOMNode = domData.___componentByDOMNode;
19
- var serverComponentRootNodes = {};
20
- var serverRenderedMeta = {};
21
- var win = window;
22
- win.Marko = {
23
- Component: function () {},
24
- };
25
-
26
- var DEFAULT_RUNTIME_ID = "M";
27
- var FLAG_WILL_RERENDER_IN_BROWSER = 1;
28
- // var FLAG_HAS_RENDER_BODY = 2;
29
-
30
- var registered = {};
31
- var loaded = {};
32
- var componentTypes = {};
33
- var deferredDefs;
34
- var pendingDefs;
35
-
36
- function register(type, def) {
37
- var pendingForType;
38
- if (pendingDefs) {
39
- pendingForType = pendingDefs[type];
40
- }
41
- registered[type] = def;
42
- delete loaded[type];
43
- delete componentTypes[type];
44
-
45
- if (pendingForType) {
46
- delete pendingDefs[type];
47
- setImmediate(function () {
48
- pendingForType.forEach(function (args) {
49
- tryHydrateComponent(args[0], args[1], args[2], args[3])();
50
- });
51
- });
52
- }
53
-
54
- return type;
55
- }
56
-
57
- function addPendingDef(def, type, meta, host, runtimeId) {
58
- if (!pendingDefs) {
59
- pendingDefs = {};
60
- }
61
- (pendingDefs[type] = pendingDefs[type] || []).push([
62
- def,
63
- meta,
64
- host,
65
- runtimeId,
66
- ]);
67
- }
68
-
69
- function load(typeName, isLegacy) {
70
- var target = loaded[typeName];
71
- if (!target) {
72
- target = registered[typeName];
73
-
74
- if (target) {
75
- target = target();
76
- } else if (isLegacy) {
77
- target = exports.___legacy.load(typeName);
78
- } else {
79
- target = req(typeName);
80
- // eslint-disable-next-line no-constant-condition
81
- if ("MARKO_DEBUG") {
82
- complain(
83
- "Looks like you used `require:` in your browser.json to load a component. This requires that Marko has knowledge of how lasso generates paths and will be removed in a future version. `marko-dependencies:/path/to/template.marko` should be used instead."
84
- );
85
- }
86
- }
87
-
88
- if (!target) {
89
- throw Error("Component not found: " + typeName);
90
- }
91
-
92
- loaded[typeName] = target;
93
- }
94
-
95
- return target;
96
- }
97
-
98
- function getComponentClass(typeName, isLegacy) {
99
- var ComponentClass = componentTypes[typeName];
100
-
101
- if (ComponentClass) {
102
- return ComponentClass;
103
- }
104
-
105
- ComponentClass = load(typeName, isLegacy);
106
-
107
- ComponentClass = ComponentClass.Component || ComponentClass;
108
-
109
- if (!ComponentClass.___isComponent) {
110
- ComponentClass = defineComponent(ComponentClass, ComponentClass.renderer);
111
- }
112
-
113
- // Make the component "type" accessible on each component instance
114
- ComponentClass.prototype.___type = typeName;
115
-
116
- // eslint-disable-next-line no-constant-condition
117
- if ("MARKO_DEBUG") {
118
- var classNameMatch =
119
- /\/([^/]+?)(?:\/index|\/template|)(?:\.marko|\.component(?:-browser)?|)$/.exec(
120
- typeName
121
- );
122
- var className = classNameMatch ? classNameMatch[1] : "AnonymousComponent";
123
- className = className.replace(/-(.)/g, function (g) {
124
- return g[1].toUpperCase();
125
- });
126
- className = className
127
- .replace(/\$\d+\.\d+\.\d+$/, "")
128
- .replace(/^[^a-z$_]/i, "_$&")
129
- .replace(/[^0-9a-z$_]+/gi, "_");
130
- className = className[0].toUpperCase() + className.slice(1);
131
-
132
- var OldComponentClass = ComponentClass;
133
- ComponentClass = {
134
- [className]: function (id, doc) {
135
- OldComponentClass.call(this, id, doc);
136
- },
137
- }[className];
138
- ComponentClass.prototype = OldComponentClass.prototype;
139
- }
140
-
141
- componentTypes[typeName] = ComponentClass;
142
-
143
- return ComponentClass;
144
- }
145
-
146
- function createComponent(typeName, id, isLegacy) {
147
- var ComponentClass = getComponentClass(typeName, isLegacy);
148
- return new ComponentClass(id);
149
- }
150
-
151
- function indexServerComponentBoundaries(node, runtimeId, stack) {
152
- var componentId;
153
- var ownerId;
154
- var ownerComponent;
155
- var keyedElements;
156
- var nextSibling;
157
- var runtimeLength = runtimeId.length;
158
- stack = stack || [];
159
-
160
- node = node.firstChild;
161
- while (node) {
162
- nextSibling = node.nextSibling;
163
- if (node.nodeType === 8) {
164
- // Comment node
165
- var commentValue = node.nodeValue;
166
- if (commentValue.slice(0, runtimeLength) === runtimeId) {
167
- var firstChar = commentValue[runtimeLength];
168
-
169
- if (firstChar === "^" || firstChar === "#") {
170
- stack.push(node);
171
- } else if (firstChar === "/") {
172
- var endNode = node;
173
- var startNode = stack.pop();
174
- var rootNode;
175
-
176
- if (startNode.parentNode === endNode.parentNode) {
177
- rootNode = createFragmentNode(startNode.nextSibling, endNode);
178
- } else {
179
- rootNode = createFragmentNode(
180
- endNode.parentNode.firstChild,
181
- endNode
182
- );
183
- }
184
-
185
- componentId = startNode.nodeValue.substring(runtimeLength + 1);
186
- firstChar = startNode.nodeValue[runtimeLength];
187
-
188
- if (firstChar === "^") {
189
- var parts = componentId.split(/ /g);
190
- var key = parts[2];
191
- ownerId = parts[1];
192
- componentId = parts[0];
193
- if ((ownerComponent = componentLookup[ownerId])) {
194
- keyedElements = ownerComponent.___keyedElements;
195
- } else {
196
- keyedElements =
197
- keyedElementsByComponentId[ownerId] ||
198
- (keyedElementsByComponentId[ownerId] = {});
199
- }
200
- addComponentRootToKeyedElements(
201
- keyedElements,
202
- key,
203
- rootNode,
204
- componentId
205
- );
206
- }
207
-
208
- serverComponentRootNodes[componentId] = rootNode;
209
-
210
- startNode.parentNode.removeChild(startNode);
211
- endNode.parentNode.removeChild(endNode);
212
- }
213
- }
214
- } else if (node.nodeType === 1) {
215
- // HTML element node
216
- var markoKey = node.getAttribute("data-marko-key");
217
- var markoProps = componentsUtil.___getMarkoPropsFromEl(node);
218
- if (markoKey) {
219
- var separatorIndex = markoKey.indexOf(" ");
220
- ownerId = markoKey.substring(separatorIndex + 1);
221
- markoKey = markoKey.substring(0, separatorIndex);
222
- if ((ownerComponent = componentLookup[ownerId])) {
223
- keyedElements = ownerComponent.___keyedElements;
224
- } else {
225
- keyedElements =
226
- keyedElementsByComponentId[ownerId] ||
227
- (keyedElementsByComponentId[ownerId] = {});
228
- }
229
-
230
- keysByDOMNode.set(node, markoKey);
231
- keyedElements[markoKey] = node;
232
- }
233
- if (markoProps) {
234
- Object.keys(markoProps).forEach(function (key) {
235
- if (key.slice(0, 2) === "on") {
236
- eventDelegation.___addDelegatedEventHandler(key.slice(2));
237
- }
238
- });
239
- }
240
- indexServerComponentBoundaries(node, runtimeId, stack);
241
- }
242
-
243
- node = nextSibling;
244
- }
245
- }
246
-
247
- function invokeComponentEventHandler(component, targetMethodName, args) {
248
- var method = component[targetMethodName];
249
- if (!method) {
250
- throw Error("Method not found: " + targetMethodName);
251
- }
252
-
253
- method.apply(component, args);
254
- }
255
-
256
- function addEventListenerHelper(el, eventType, isOnce, listener) {
257
- var eventListener = listener;
258
- if (isOnce) {
259
- eventListener = function (event) {
260
- listener(event);
261
- el.removeEventListener(eventType, eventListener);
262
- };
263
- }
264
-
265
- el.addEventListener(eventType, eventListener, false);
266
-
267
- return function remove() {
268
- el.removeEventListener(eventType, eventListener);
269
- };
270
- }
271
-
272
- function addDOMEventListeners(
273
- component,
274
- el,
275
- eventType,
276
- targetMethodName,
277
- isOnce,
278
- extraArgs,
279
- handles
280
- ) {
281
- var removeListener = addEventListenerHelper(
282
- el,
283
- eventType,
284
- isOnce,
285
- function (event) {
286
- var args = [event, el];
287
- if (extraArgs) {
288
- args = extraArgs.concat(args);
289
- }
290
-
291
- invokeComponentEventHandler(component, targetMethodName, args);
292
- }
293
- );
294
- handles.push(removeListener);
295
- }
296
-
297
- function initComponent(componentDef, host) {
298
- var component = componentDef.___component;
299
-
300
- if (!component || !component.___isComponent) {
301
- return; // legacy
302
- }
303
-
304
- component.___reset();
305
- component.___host = host;
306
-
307
- var isExisting = componentDef.___isExisting;
308
-
309
- if (isExisting) {
310
- component.___removeDOMEventListeners();
311
- }
312
-
313
- var domEvents = componentDef.___domEvents;
314
- if (domEvents) {
315
- var eventListenerHandles = [];
316
-
317
- domEvents.forEach(function (domEventArgs) {
318
- // The event mapping is for a direct DOM event (not a custom event and not for bubblign dom events)
319
-
320
- var eventType = domEventArgs[0];
321
- var targetMethodName = domEventArgs[1];
322
- var eventEl = component.___keyedElements[domEventArgs[2]];
323
- var isOnce = domEventArgs[3];
324
- var extraArgs = domEventArgs[4];
325
-
326
- addDOMEventListeners(
327
- component,
328
- eventEl,
329
- eventType,
330
- targetMethodName,
331
- isOnce,
332
- extraArgs,
333
- eventListenerHandles
334
- );
335
- });
336
-
337
- if (eventListenerHandles.length) {
338
- component.___domEventListenerHandles = eventListenerHandles;
339
- }
340
- }
341
-
342
- if (component.___mounted) {
343
- component.___emitUpdate();
344
- } else {
345
- component.___mounted = true;
346
- component.___emitMount();
347
- }
348
- }
349
-
350
- /**
351
- * This method is used to initialized components associated with UI components
352
- * rendered in the browser. While rendering UI components a "components context"
353
- * is added to the rendering context to keep up with which components are rendered.
354
- * When ready, the components can then be initialized by walking the component tree
355
- * in the components context (nested components are initialized before ancestor components).
356
- * @param {Array<marko-components/lib/ComponentDef>} componentDefs An array of ComponentDef instances
357
- */
358
- function initClientRendered(componentDefs, host) {
359
- if (!host) host = document;
360
- // Ensure that event handlers to handle delegating events are
361
- // always attached before initializing any components
362
- eventDelegation.___init(host);
363
- var len = componentDefs.length;
364
- var componentDef;
365
- var i;
366
-
367
- for (i = len; i--; ) {
368
- componentDef = componentDefs[i];
369
- trackComponent(componentDef);
370
- }
371
-
372
- for (i = len; i--; ) {
373
- componentDef = componentDefs[i];
374
- initComponent(componentDef, host);
375
- }
376
- }
377
-
378
- /**
379
- * This method initializes all components that were rendered on the server by iterating over all
380
- * of the component IDs.
381
- */
382
- function initServerRendered(renderedComponents, host) {
383
- var type = typeof renderedComponents;
384
- var globalKey = "$";
385
- var runtimeId;
386
-
387
- if (type !== "object") {
388
- if (type === "string") {
389
- runtimeId = renderedComponents;
390
- globalKey += runtimeId + "_C";
391
- } else {
392
- globalKey += (runtimeId = DEFAULT_RUNTIME_ID) + "C";
393
- }
394
-
395
- renderedComponents = win[globalKey];
396
-
397
- // eslint-disable-next-line no-constant-condition
398
- if ("MARKO_DEBUG") {
399
- if (
400
- renderedComponents &&
401
- renderedComponents.i !== undefined &&
402
- renderedComponents.i !== componentsUtil.___runtimeId
403
- ) {
404
- console.warn(
405
- "Multiple instances of Marko have attached to the same runtime id. This could mean that more than one copy of Marko is loaded on the page, or that the script containing Marko has executed more than once."
406
- );
407
- }
408
- }
409
-
410
- var fakeArray = (win[globalKey] = {
411
- r: runtimeId,
412
- concat: initServerRendered,
413
- });
414
-
415
- // eslint-disable-next-line no-constant-condition
416
- if ("MARKO_DEBUG") {
417
- fakeArray.i = componentsUtil.___runtimeId;
418
- }
419
-
420
- if (renderedComponents && renderedComponents.forEach) {
421
- renderedComponents.forEach(function (renderedComponent) {
422
- fakeArray.concat(renderedComponent);
423
- });
424
- }
425
-
426
- return fakeArray;
427
- }
428
-
429
- var isFromSerializedGlobals = this.concat === initServerRendered;
430
- renderedComponents = warp10Finalize(renderedComponents);
431
-
432
- if (isFromSerializedGlobals) {
433
- runtimeId = this.r;
434
- host = document;
435
- } else {
436
- runtimeId = renderedComponents.r || DEFAULT_RUNTIME_ID;
437
- if (!host) host = document;
438
-
439
- // eslint-disable-next-line no-constant-condition
440
- if ("MARKO_DEBUG") {
441
- complain(
442
- "Passing serialized data to `require('marko/components).init` is deprecated. Instead set '$global.runtimeId' and provide the 'runtimeId' option to your Marko bundler plugin."
443
- );
444
- }
445
- }
446
-
447
- // eslint-disable-next-line no-constant-condition
448
- if ("MARKO_DEBUG") {
449
- if (host !== document) {
450
- complain(
451
- "Passing a document other than the current document to `require('marko/components).init` is deprecated."
452
- );
453
- }
454
- }
455
-
456
- var prefix = renderedComponents.p || "s";
457
- var meta = serverRenderedMeta[prefix];
458
- var isLast = renderedComponents.l;
459
-
460
- if (meta) {
461
- if (isLast) {
462
- delete serverRenderedMeta[prefix];
463
- }
464
- } else {
465
- meta = {};
466
-
467
- if (!isLast) {
468
- serverRenderedMeta[prefix] = meta;
469
- }
470
- }
471
-
472
- // Ensure that event handlers to handle delegating events are
473
- // always attached before initializing any components
474
- indexServerComponentBoundaries(host, runtimeId);
475
- eventDelegation.___init(host);
476
-
477
- if (!meta.___globals) {
478
- meta.___globals = Object.assign({
479
- runtimeId: runtimeId,
480
- componentIdPrefix: prefix,
481
- }, renderedComponents.g);
482
- }
483
-
484
- if (renderedComponents.t) {
485
- meta.___types = meta.___types
486
- ? meta.___types.concat(renderedComponents.t)
487
- : renderedComponents.t;
488
- }
489
-
490
- // hydrate components top down (leaf nodes last)
491
- // and return an array of functions to mount these components
492
- (renderedComponents.w || [])
493
- .map(function (componentDef) {
494
- var typeName = meta.___types[componentDef[1]];
495
-
496
- return registered[typeName] ||
497
- req.e(typeName)
498
- ? tryHydrateComponent(componentDef, meta, host, runtimeId)
499
- : addPendingDef(componentDef, typeName, meta, host, runtimeId);
500
- })
501
- .reverse()
502
- .forEach(tryInvoke);
503
-
504
- return this;
505
- }
506
-
507
- function tryHydrateComponent(rawDef, meta, host, runtimeId) {
508
- var componentDef = ComponentDef.___deserialize(
509
- rawDef,
510
- meta.___types,
511
- meta.___globals,
512
- exports
513
- );
514
- var mount = hydrateComponentAndGetMount(componentDef, host);
515
-
516
- if (!mount) {
517
- // hydrateComponentAndGetMount will return false if there is not rootNode
518
- // for the component. If this is the case, we'll wait until the
519
- // DOM has fully loaded to attempt to init the component again.
520
- if (deferredDefs) {
521
- deferredDefs.push(componentDef);
522
- } else {
523
- deferredDefs = [componentDef];
524
- document.addEventListener("DOMContentLoaded", function () {
525
- indexServerComponentBoundaries(host, runtimeId);
526
- deferredDefs
527
- .map(function (componentDef) {
528
- return hydrateComponentAndGetMount(componentDef, host);
529
- })
530
- .reverse()
531
- .forEach(tryInvoke);
532
- deferredDefs.length = 0;
533
- });
534
- }
535
- }
536
-
537
- return mount;
538
- }
539
-
540
- function hydrateComponentAndGetMount(componentDef, host) {
541
- var componentId = componentDef.id;
542
- var component = componentDef.___component;
543
- var rootNode = serverComponentRootNodes[componentId];
544
- var renderResult;
545
-
546
- if (rootNode) {
547
- delete serverComponentRootNodes[componentId];
548
-
549
- component.___rootNode = rootNode;
550
- componentsByDOMNode.set(rootNode, component);
551
-
552
- if (componentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER) {
553
- component.___host = host;
554
- renderResult = component.___rerender(component.___input, true);
555
- trackComponent(componentDef);
556
- return function mount() {
557
- renderResult.afterInsert(host);
558
- };
559
- } else {
560
- trackComponent(componentDef);
561
- }
562
-
563
- return function mount() {
564
- initComponent(componentDef, host);
565
- };
566
- }
567
- }
568
-
569
- function trackComponent(componentDef) {
570
- var component = componentDef.___component;
571
- if (component) {
572
- componentLookup[component.id] = component;
573
- }
574
- }
575
-
576
- function tryInvoke(fn) {
577
- if (fn) fn();
578
- }
579
-
580
- exports.r = register;
581
- exports.___createComponent = createComponent;
582
- exports.___getComponentClass = getComponentClass;
583
- exports.___initServerRendered = win.$initComponents = initServerRendered;
584
-
585
- require("../../../runtime/components/ComponentsContext").___initClientRendered =
586
- initClientRendered;