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,551 +0,0 @@
1
- import { types as t } from "@marko/compiler";
2
- import {
3
- findParentTag,
4
- getTagDef,
5
- importDefault,
6
- importNamed,
7
- isAttributeTag,
8
- isDynamicTag,
9
- isMacroTag,
10
- isNativeTag,
11
- loadFileForTag,
12
- parseExpression,
13
- parseStatements,
14
- resolveRelativePath,
15
- resolveTagImport,
16
- } from "@marko/compiler/babel-utils";
17
- import { version } from "marko/package.json";
18
- import { resolve } from "path";
19
-
20
- import MarkoCDATA from "./cdata";
21
- import MarkoClass from "./class";
22
- import MarkoComment from "./comment";
23
- import MarkoDeclaration from "./declaration";
24
- import MarkoDocumentType from "./document-type";
25
- import MarkoPlaceholder from "./placeholder";
26
- import MarkoScriptlet from "./scriptlet";
27
- import MarkoTag from "./tag";
28
- import MarkoText from "./text";
29
- import addDependencies from "./util/add-dependencies";
30
- import getComponentFiles from "./util/get-component-files";
31
- import { optimizeHTMLWrites } from "./util/optimize-html-writes";
32
- import { analyzeStaticVDOM } from "./util/optimize-vdom-create";
33
-
34
- export { optionalTaglibs, default as taglibs } from "./taglib";
35
- export { entryBuilder as internalEntryBuilder } from "./util/add-dependencies";
36
-
37
- export const analyze = {
38
- Program: {
39
- enter(program) {
40
- // Pre populate metadata for component files.
41
- const meta = program.hub.file.metadata.marko;
42
- getComponentFiles(program);
43
-
44
- if (!meta.hasComponent && !meta.hasComponentBrowser) {
45
- meta.hasComponent = program
46
- .get("body")
47
- .some((child) => child.isMarkoClass());
48
- }
49
- },
50
- exit(program) {
51
- const { file } = program.hub;
52
- const meta = file.metadata.marko;
53
- const componentFiles = getComponentFiles(program);
54
- const { styleFile, packageFile, componentBrowserFile } = componentFiles;
55
-
56
- if (packageFile) {
57
- meta.deps.unshift(`package: ${packageFile}`);
58
- }
59
-
60
- if (styleFile) {
61
- meta.deps.unshift(styleFile);
62
- }
63
-
64
- if (!meta.widgetBind) {
65
- if (meta.hasComponentBrowser) {
66
- meta.component = componentBrowserFile;
67
- } else if (
68
- meta.hasComponent ||
69
- meta.hasStatefulTagParams ||
70
- meta.hasFunctionEventHandlers
71
- ) {
72
- meta.component = file.opts.filename;
73
- } else if (meta.hasStringEventHandlers) {
74
- meta.component = componentFiles.componentBrowserFile =
75
- "marko/src/runtime/helpers/empty-component.js";
76
- meta.hasComponentBrowser = true;
77
- }
78
- }
79
-
80
- meta.component =
81
- meta.component && resolveRelativePath(file, meta.component);
82
- meta.deps = meta.deps.map((filename) =>
83
- typeof filename === "string"
84
- ? resolveRelativePath(file, filename)
85
- : filename,
86
- );
87
- },
88
- },
89
- MarkoTag(tag) {
90
- const { file } = tag.hub;
91
- const tagDef = getTagDef(tag);
92
- // Check if tag uses stateful tag params.
93
- const meta = tag.hub.file.metadata.marko;
94
-
95
- if (tagDef) {
96
- if (tagDef.html && !tagDef.template && !tagDef.renderer) {
97
- if (tagDef.htmlType === "custom-element") {
98
- if (tagDef.parseOptions && tagDef.parseOptions.import) {
99
- // TODO: the taglib should be updated to support this as a top level option.
100
- meta.deps.push(
101
- resolve(
102
- tagDef.dir,
103
- resolve(tagDef.dir, tagDef.parseOptions.import),
104
- ),
105
- );
106
- }
107
- }
108
- } else if (tag.get("name").isStringLiteral()) {
109
- const relativePath = resolveRelativeTagEntry(file, tagDef);
110
-
111
- if (relativePath) {
112
- tag.node.extra = tag.node.extra || {};
113
- tag.node.extra.relativePath = relativePath;
114
-
115
- if (!meta.tags.includes(relativePath)) {
116
- meta.tags.push(relativePath);
117
- }
118
- }
119
- }
120
-
121
- if (tagDef.translator && tagDef.translator.path) {
122
- if (!meta.watchFiles.includes(tagDef.translator.path)) {
123
- meta.watchFiles.push(tagDef.translator.path);
124
- }
125
- }
126
- }
127
-
128
- if (!(meta.hasFunctionEventHandlers || meta.hasStringEventHandlers)) {
129
- for (const attr of tag.node.attributes) {
130
- if (
131
- t.isMarkoAttribute(attr) &&
132
- attr.arguments &&
133
- /^on[-A-Z]/.test(attr.name)
134
- ) {
135
- if (
136
- attr.arguments.length >= 1 &&
137
- attr.arguments[0].type === "StringLiteral"
138
- ) {
139
- meta.hasStringEventHandlers = true;
140
- } else {
141
- meta.hasFunctionEventHandlers = true;
142
- }
143
- break;
144
- }
145
- }
146
- }
147
-
148
- if (
149
- meta.hasStatefulTagParams ||
150
- isNativeTag(tag) ||
151
- isMacroTag(tag) ||
152
- !tag.get("body").get("params").length
153
- ) {
154
- return;
155
- }
156
-
157
- if (isDynamicTag(tag)) {
158
- meta.hasStatefulTagParams = true;
159
- return;
160
- }
161
-
162
- let curTag = tag;
163
- while (isAttributeTag(curTag)) {
164
- curTag = findParentTag(curTag);
165
- }
166
-
167
- const tagFile = loadFileForTag(curTag);
168
- const childMeta = tagFile && tagFile.metadata.marko;
169
- meta.hasStatefulTagParams =
170
- childMeta &&
171
- (childMeta.hasStatefulTagParams ||
172
- childMeta.hasFunctionEventHandlers ||
173
- (childMeta.hasComponent && !childMeta.hasComponentBrowser));
174
- },
175
- ImportDeclaration: {
176
- exit(path) {
177
- const source = path.get("source");
178
- const tagEntry = resolveTagImport(source, source.node.value);
179
-
180
- if (tagEntry) {
181
- const meta = path.hub.file.metadata.marko;
182
- source.node.value = tagEntry;
183
-
184
- if (!meta.tags.includes(tagEntry)) {
185
- meta.tags.push(tagEntry);
186
- }
187
- }
188
- },
189
- },
190
- };
191
-
192
- export const translate = {
193
- MarkoDocumentType,
194
- MarkoDeclaration,
195
- MarkoCDATA,
196
- MarkoTag,
197
- MarkoText,
198
- MarkoPlaceholder,
199
- MarkoScriptlet,
200
- MarkoClass,
201
- MarkoComment,
202
- ReferencedIdentifier(path) {
203
- if (path.node.name === "component" && !path.scope.hasBinding("component")) {
204
- path.replaceWith(path.hub.file._componentInstanceIdentifier);
205
- }
206
- },
207
- Program: {
208
- enter(path) {
209
- const {
210
- hub: { file },
211
- } = path;
212
-
213
- if (file.markoOpts.output === "hydrate") {
214
- addDependencies(file, true);
215
- return;
216
- } else if (
217
- file.markoOpts.resolveVirtualDependency &&
218
- file.markoOpts.output !== "html"
219
- ) {
220
- addDependencies(file, false);
221
- }
222
-
223
- if (file.metadata.marko.moduleCode) {
224
- path
225
- .replaceWith(
226
- t.program(
227
- parseStatements(file, file.metadata.marko.moduleCode),
228
- undefined,
229
- file.markoOpts.modules === "cjs" ? "script" : "module",
230
- ),
231
- )[0]
232
- .skip();
233
- return;
234
- }
235
-
236
- file._componentDefIdentifier =
237
- path.scope.generateUidIdentifier("componentDef");
238
-
239
- file._componentInstanceIdentifier =
240
- path.scope.generateUidIdentifier("component");
241
-
242
- // Pre-Analyze tree
243
- analyzeStaticVDOM(path);
244
-
245
- // Move non static content into the renderBody.
246
- const [renderBlock] = path.pushContainer("body", t.blockStatement([]));
247
- path
248
- .get("body")
249
- .filter(isRenderContent)
250
- .forEach((childPath) => {
251
- renderBlock.pushContainer("body", childPath.node);
252
- childPath.remove();
253
- });
254
-
255
- file._renderBlock = renderBlock;
256
- path.scope.crawl();
257
- },
258
- exit(path) {
259
- const {
260
- hub: { file },
261
- } = path;
262
- const { markoOpts, _inlineComponentClass } = file;
263
- const includeMetaInSource = markoOpts.meta !== false;
264
- const meta = file.metadata.marko;
265
- const { componentFile, componentBrowserFile } = getComponentFiles(path);
266
- const isHTML = markoOpts.output === "html";
267
-
268
- const renderBlock = file._renderBlock;
269
- const componentClass =
270
- (componentFile &&
271
- importDefault(
272
- file,
273
- resolveRelativePath(file, componentFile),
274
- "marko_component",
275
- )) ||
276
- _inlineComponentClass ||
277
- t.objectExpression([]);
278
-
279
- const componentIdentifier =
280
- path.scope.generateUidIdentifier("marko_component");
281
- const componentTypeIdentifier = path.scope.generateUidIdentifier(
282
- "marko_componentType",
283
- );
284
- const templateIdentifier =
285
- path.scope.generateUidIdentifier("marko_template");
286
- const rendererIdentifier = importDefault(
287
- file,
288
- "marko/src/runtime/components/renderer.js",
289
- "marko_renderer",
290
- );
291
- const templateRendererMember = t.memberExpression(
292
- templateIdentifier,
293
- t.identifier("_"),
294
- );
295
- const templateMetaMember = t.memberExpression(
296
- templateIdentifier,
297
- t.identifier("meta"),
298
- );
299
-
300
- if (markoOpts.writeVersionComment) {
301
- path.addComment(
302
- "leading",
303
- ` Compiled using marko@${version} - DO NOT EDIT`,
304
- true,
305
- );
306
- }
307
-
308
- const runtimeTemplateIdentifier = path.scope.generateUidIdentifier("t");
309
-
310
- path.unshiftContainer(
311
- "body",
312
- [
313
- t.importDeclaration(
314
- [t.importSpecifier(runtimeTemplateIdentifier, t.identifier("t"))],
315
- t.stringLiteral(
316
- `marko/${markoOpts.optimize ? "dist" : "src"}/runtime/${
317
- isHTML ? "html" : "vdom"
318
- }/${markoOpts.hot ? "hot-reload.js" : "index.js"}`,
319
- ),
320
- ),
321
- t.variableDeclaration("const", [
322
- t.variableDeclarator(
323
- componentTypeIdentifier,
324
- t.stringLiteral(meta.id),
325
- ),
326
- t.variableDeclarator(
327
- templateIdentifier,
328
- t.callExpression(runtimeTemplateIdentifier, [
329
- componentTypeIdentifier,
330
- ]),
331
- ),
332
- ]),
333
- includeMetaInSource &&
334
- t.expressionStatement(
335
- t.assignmentExpression(
336
- "=",
337
- t.memberExpression(templateIdentifier, t.identifier("path")),
338
- t.identifier("__filename"),
339
- ),
340
- ),
341
- t.exportDefaultDeclaration(templateIdentifier),
342
- ].filter(Boolean),
343
- );
344
-
345
- path.pushContainer(
346
- "body",
347
- [
348
- !isHTML &&
349
- t.expressionStatement(
350
- t.callExpression(
351
- importNamed(
352
- file,
353
- "marko/src/runtime/components/registry.js",
354
- "r",
355
- "marko_registerComponent",
356
- ),
357
- [
358
- componentTypeIdentifier,
359
- t.arrowFunctionExpression(
360
- [],
361
- componentBrowserFile
362
- ? importDefault(
363
- file,
364
- resolveRelativePath(file, componentBrowserFile),
365
- "marko_split_component",
366
- )
367
- : templateIdentifier,
368
- ),
369
- ],
370
- ),
371
- ),
372
- t.variableDeclaration("const", [
373
- t.variableDeclarator(componentIdentifier, componentClass),
374
- ]),
375
- ].filter(Boolean),
376
- );
377
-
378
- const templateRenderOptionsProps = [
379
- t.objectProperty(t.identifier("t"), componentTypeIdentifier),
380
- ];
381
-
382
- if (!meta.component) {
383
- templateRenderOptionsProps.push(
384
- t.objectProperty(t.identifier("i"), t.booleanLiteral(true)),
385
- );
386
- }
387
-
388
- if (componentBrowserFile) {
389
- templateRenderOptionsProps.push(
390
- t.objectProperty(t.identifier("s"), t.booleanLiteral(true)),
391
- );
392
- }
393
-
394
- if (!markoOpts.optimize) {
395
- templateRenderOptionsProps.push(
396
- t.objectProperty(t.identifier("d"), t.booleanLiteral(true)),
397
- );
398
- }
399
-
400
- path.pushContainer(
401
- "body",
402
- t.expressionStatement(
403
- t.assignmentExpression(
404
- "=",
405
- templateRendererMember,
406
- t.callExpression(rendererIdentifier, [
407
- t.functionExpression(
408
- null,
409
- [
410
- t.identifier("input"),
411
- t.identifier("out"),
412
- file._componentDefIdentifier,
413
- file._componentInstanceIdentifier,
414
- t.identifier("state"),
415
- t.identifier("$global"),
416
- ],
417
- renderBlock.node,
418
- ),
419
- t.objectExpression(templateRenderOptionsProps),
420
- componentIdentifier,
421
- ]),
422
- ),
423
- ),
424
- );
425
- renderBlock.remove();
426
-
427
- if (!isHTML) {
428
- path.pushContainer(
429
- "body",
430
- t.expressionStatement(
431
- t.assignmentExpression(
432
- "=",
433
- t.memberExpression(templateIdentifier, t.identifier("Component")),
434
- t.callExpression(
435
- importDefault(
436
- file,
437
- "marko/src/runtime/components/defineComponent.js",
438
- "marko_defineComponent",
439
- ),
440
- [componentIdentifier, templateRendererMember],
441
- ),
442
- ),
443
- ),
444
- );
445
- }
446
-
447
- if (includeMetaInSource) {
448
- const metaObject = t.objectExpression([
449
- t.objectProperty(t.identifier("id"), componentTypeIdentifier),
450
- ]);
451
-
452
- if (meta.component) {
453
- metaObject.properties.push(
454
- t.objectProperty(
455
- t.identifier("component"),
456
- t.stringLiteral(meta.component),
457
- ),
458
- );
459
- }
460
-
461
- if (meta.deps.length) {
462
- metaObject.properties.push(
463
- t.objectProperty(
464
- t.identifier("deps"),
465
- parseExpression(file, JSON.stringify(meta.deps)),
466
- ),
467
- );
468
- }
469
-
470
- if (meta.tags.length) {
471
- metaObject.properties.push(
472
- t.objectProperty(
473
- t.identifier("tags"),
474
- t.arrayExpression(meta.tags.map((tag) => t.stringLiteral(tag))),
475
- ),
476
- );
477
- }
478
-
479
- path.pushContainer(
480
- "body",
481
- t.expressionStatement(
482
- t.assignmentExpression("=", templateMetaMember, metaObject),
483
- ),
484
- );
485
- }
486
-
487
- optimizeHTMLWrites(path);
488
- },
489
- },
490
- };
491
-
492
- export function getRuntimeEntryFiles(output, optimize) {
493
- const base = `marko/${optimize ? "dist" : "src"}/`;
494
-
495
- return [
496
- `${base}runtime/components/index.js`,
497
- `${base}runtime/components/defineComponent.js`,
498
- `${base}runtime/components/renderer.js`,
499
- `${base}runtime/components/registry.js`,
500
- `${base}runtime/components/attach-detach.js`,
501
- `${base}runtime/helpers/assign.js`,
502
- `${base}runtime/helpers/class-value.js`,
503
- `${base}runtime/helpers/of-fallback.js`,
504
- `${base}runtime/helpers/dynamic-tag.js`,
505
- `${base}runtime/helpers/attr-tag.js`,
506
- `${base}runtime/helpers/merge.js`,
507
- `${base}runtime/helpers/render-tag.js`,
508
- `${base}runtime/helpers/style-value.js`,
509
- `${base}runtime/helpers/to-string.js`,
510
- `${base}runtime/helpers/empty-component.js`,
511
- `${base}core-tags/components/preserve-tag.js`,
512
- ...(output === "html"
513
- ? [
514
- `${base}runtime/html/index.js`,
515
- `${base}runtime/html/hot-reload.js`,
516
- `${base}runtime/html/helpers/attr.js`,
517
- `${base}runtime/html/helpers/attrs.js`,
518
- `${base}runtime/html/helpers/class-attr.js`,
519
- `${base}runtime/html/helpers/data-marko.js`,
520
- `${base}runtime/html/helpers/escape-quotes.js`,
521
- `${base}runtime/html/helpers/escape-script-placeholder.js`,
522
- `${base}runtime/html/helpers/escape-style-placeholder.js`,
523
- `${base}runtime/html/helpers/escape-xml.js`,
524
- `${base}runtime/html/helpers/merge-attrs.js`,
525
- `${base}runtime/html/helpers/props-script.js`,
526
- `${base}runtime/html/helpers/style-attr.js`,
527
- `${base}core-tags/components/init-components-tag.js`,
528
- `${base}core-tags/components/preferred-script-location-tag.js`,
529
- `${base}core-tags/core/__flush_here_and_after__.js`,
530
- `${base}core-tags/core/await/renderer.js`,
531
- `${base}core-tags/core/await/reorderer-renderer.js`,
532
- ]
533
- : [
534
- `${base}runtime/vdom/index.js`,
535
- `${base}runtime/vdom/hot-reload.js`,
536
- `${base}runtime/vdom/helpers/attrs.js`,
537
- `${base}runtime/vdom/helpers/const-element.js`,
538
- ]),
539
- ];
540
- }
541
-
542
- function isRenderContent(path) {
543
- const { node } = path;
544
- return t.MARKO_TYPES.includes(node.type) && !node.static;
545
- }
546
-
547
- function resolveRelativeTagEntry(file, tagDef) {
548
- // TODO: support transform and other entries.
549
- const entry = tagDef.template || tagDef.renderer;
550
- return entry && resolveRelativePath(file, entry);
551
- }
@@ -1,15 +0,0 @@
1
- import translateHTML from "./index[html]";
2
- import translateVDOM from "./index[vdom]";
3
-
4
- export default function (path) {
5
- const {
6
- hub: {
7
- file: { markoOpts },
8
- },
9
- } = path;
10
- if (markoOpts.output === "html") {
11
- translateHTML(path);
12
- } else {
13
- translateVDOM(path);
14
- }
15
- }
@@ -1,93 +0,0 @@
1
- import { types as t } from "@marko/compiler";
2
- import {
3
- computeNode,
4
- getTagDef,
5
- importDefault,
6
- importNamed,
7
- } from "@marko/compiler/babel-utils";
8
- import toString from "marko/src/runtime/helpers/to-string";
9
- import escapeScript from "marko/src/runtime/html/helpers/escape-script-placeholder";
10
- import escapeStyle from "marko/src/runtime/html/helpers/escape-style-placeholder";
11
- import { x as escapeXML } from "marko/src/runtime/html/helpers/escape-xml";
12
-
13
- import write from "../util/html-out-write";
14
- import withPreviousLocation from "../util/with-previous-location";
15
-
16
- const ESCAPE_TYPES = {
17
- html: {
18
- name: "x",
19
- module: "marko/src/runtime/html/helpers/escape-xml.js",
20
- alias: "marko_escapeXml",
21
- fn: escapeXML,
22
- },
23
- script: {
24
- module: "marko/src/runtime/html/helpers/escape-script-placeholder.js",
25
- alias: "marko_escapeScript",
26
- fn: escapeScript,
27
- },
28
- style: {
29
- module: "marko/src/runtime/html/helpers/escape-style-placeholder.js",
30
- alias: "marko_escapeStyle",
31
- fn: escapeStyle,
32
- },
33
- };
34
-
35
- export default function (path) {
36
- const {
37
- node,
38
- hub: { file },
39
- } = path;
40
- const computed = computeNode(node.value);
41
- let { escape, value } = node;
42
-
43
- if (escape) {
44
- const tagName = findParentTagName(path);
45
- const escapeType = ESCAPE_TYPES[tagName] || ESCAPE_TYPES.html;
46
-
47
- value = computed
48
- ? t.stringLiteral(escapeType.fn(computed.value))
49
- : t.callExpression(
50
- escapeType.name
51
- ? importNamed(
52
- file,
53
- escapeType.module,
54
- escapeType.name,
55
- escapeType.alias,
56
- )
57
- : importDefault(file, escapeType.module, escapeType.alias),
58
- [value],
59
- );
60
- } else {
61
- value = computed
62
- ? t.stringLiteral(toString(computed.value))
63
- : t.callExpression(
64
- importDefault(
65
- file,
66
- "marko/src/runtime/helpers/to-string.js",
67
- "marko_to_string",
68
- ),
69
- [value],
70
- );
71
- }
72
-
73
- const replacement = write`${value}`;
74
-
75
- if (replacement) {
76
- path.replaceWith(withPreviousLocation(replacement, node));
77
- } else {
78
- path.remove();
79
- }
80
- }
81
-
82
- function findParentTagName(path) {
83
- while ((path = path.parentPath)) {
84
- if (path.isProgram()) {
85
- return;
86
- }
87
-
88
- if (path.isMarkoTag()) {
89
- const tagDef = getTagDef(path);
90
- return tagDef && tagDef.html && path.get("name.value").node;
91
- }
92
- }
93
- }
@@ -1,22 +0,0 @@
1
- import { computeNode } from "@marko/compiler/babel-utils";
2
-
3
- import write from "../util/vdom-out-write";
4
- import withPreviousLocation from "../util/with-previous-location";
5
-
6
- export default function (path) {
7
- const { node } = path;
8
- const { escape, value } = node;
9
- const method = escape ? "t" : "h";
10
- const computed = computeNode(value);
11
-
12
- if (computed && computed.value == null) {
13
- path.remove();
14
- } else {
15
- path.replaceWith(
16
- withPreviousLocation(
17
- write(method, value, path.hub.file._componentInstanceIdentifier),
18
- node,
19
- ),
20
- );
21
- }
22
- }
@@ -1,4 +0,0 @@
1
- export default function (path) {
2
- const { node } = path;
3
- path.replaceWithMultiple(node.body);
4
- }