marko 5.37.6 → 6.0.0-3.12
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.
- package/dist/common/attr-tag.d.ts +8 -0
- package/dist/common/compat-meta.d.ts +2 -0
- package/dist/common/for.d.ts +5 -0
- package/dist/common/helpers.d.ts +7 -0
- package/dist/common/meta.d.ts +2 -0
- package/dist/common/types.d.ts +105 -0
- package/dist/debug/dom.js +2111 -0
- package/dist/debug/dom.mjs +2088 -0
- package/dist/debug/html.js +2740 -0
- package/dist/debug/html.mjs +2663 -0
- package/dist/dom/abort-signal.d.ts +3 -0
- package/dist/dom/compat.d.ts +20 -0
- package/dist/dom/control-flow.d.ts +14 -0
- package/dist/dom/controllable.d.ts +12 -0
- package/dist/dom/dom.d.ts +19 -0
- package/dist/dom/event.d.ts +4 -0
- package/dist/dom/parse-html.d.ts +5 -0
- package/dist/dom/queue.d.ts +10 -0
- package/dist/dom/reconcile.d.ts +2 -0
- package/dist/dom/renderer.d.ts +21 -0
- package/dist/dom/resolve-cursor-position.d.ts +1 -0
- package/dist/dom/resume.d.ts +9 -0
- package/dist/dom/schedule.d.ts +2 -0
- package/dist/dom/scope.d.ts +7 -0
- package/dist/dom/signals.d.ts +39 -0
- package/dist/dom/template.d.ts +3 -0
- package/dist/dom/walker.d.ts +4 -0
- package/dist/dom.d.ts +15 -0
- package/dist/dom.js +1370 -0
- package/dist/dom.mjs +1350 -0
- package/dist/html/attrs.d.ts +14 -0
- package/dist/html/compat.d.ts +14 -0
- package/dist/html/content.d.ts +5 -0
- package/dist/html/dynamic-tag.d.ts +12 -0
- package/dist/html/for.d.ts +4 -0
- package/dist/html/inlined-runtimes.d.ts +2 -0
- package/dist/html/serializer.d.ts +14 -0
- package/dist/html/template.d.ts +3 -0
- package/dist/html/writer.d.ts +114 -0
- package/dist/html.d.ts +9 -0
- package/dist/html.js +1818 -0
- package/dist/html.mjs +1744 -0
- package/dist/translator/core/attrs.d.ts +3 -0
- package/dist/translator/core/client.d.ts +14 -0
- package/dist/translator/core/const.d.ts +3 -0
- package/dist/translator/core/debug.d.ts +3 -0
- package/dist/translator/core/define.d.ts +3 -0
- package/dist/translator/core/effect.d.ts +3 -0
- package/dist/translator/core/export.d.ts +3 -0
- package/dist/translator/core/for.d.ts +67 -0
- package/dist/translator/core/html-comment.d.ts +12 -0
- package/dist/translator/core/html-script.d.ts +9 -0
- package/dist/translator/core/html-style.d.ts +9 -0
- package/dist/translator/core/id.d.ts +3 -0
- package/dist/translator/core/if.d.ts +53 -0
- package/dist/translator/core/import.d.ts +3 -0
- package/dist/translator/core/index.d.ts +152 -0
- package/dist/translator/core/let.d.ts +8 -0
- package/dist/translator/core/lifecycle.d.ts +10 -0
- package/dist/translator/core/log.d.ts +3 -0
- package/dist/translator/core/return.d.ts +6 -0
- package/dist/translator/core/script.d.ts +3 -0
- package/dist/translator/core/server.d.ts +14 -0
- package/dist/translator/core/static.d.ts +14 -0
- package/dist/translator/core/style.d.ts +3 -0
- package/dist/translator/index.d.ts +201 -0
- package/dist/translator/index.js +9134 -490
- package/dist/translator/util/assert.d.ts +3 -0
- package/dist/translator/util/binding-has-downstream-expressions.d.ts +2 -0
- package/dist/translator/util/entry-builder.d.ts +19 -0
- package/dist/translator/util/evaluate.d.ts +11 -0
- package/dist/translator/util/for-each-identifier.d.ts +2 -0
- package/dist/translator/util/get-defined-binding-expression.d.ts +3 -0
- package/dist/translator/util/get-known-attr-values.d.ts +2 -0
- package/dist/translator/util/get-parent-tag.d.ts +2 -0
- package/dist/translator/util/get-root.d.ts +7 -0
- package/dist/translator/util/get-tag-name.d.ts +2 -0
- package/dist/translator/util/is-core-tag.d.ts +10 -0
- package/dist/translator/util/is-stateful.d.ts +3 -0
- package/dist/translator/util/is-static.d.ts +2 -0
- package/dist/translator/util/marko-config.d.ts +4 -0
- package/dist/translator/util/nested-attribute-tags.d.ts +17 -0
- package/dist/translator/util/normalize-string-expression.d.ts +3 -0
- package/dist/translator/util/optional.d.ts +20 -0
- package/dist/translator/util/plugin-hooks.d.ts +4 -0
- package/dist/translator/util/references.d.ts +84 -0
- package/dist/translator/util/runtime-info.d.ts +5 -0
- package/dist/translator/util/runtime.d.ts +15 -0
- package/dist/translator/util/scope-read.d.ts +6 -0
- package/dist/translator/util/sections.d.ts +51 -0
- package/dist/translator/util/signals.d.ts +61 -0
- package/dist/translator/util/simplify-fn.d.ts +5 -0
- package/dist/translator/util/state.d.ts +3 -0
- package/dist/translator/util/tag-name-type.d.ts +16 -0
- package/dist/translator/util/to-first-expression-or-block.d.ts +3 -0
- package/dist/translator/util/to-first-statement-or-block.d.ts +2 -0
- package/dist/translator/util/to-property-name.d.ts +7 -0
- package/dist/translator/util/translate-attrs.d.ts +12 -0
- package/dist/translator/util/translate-var.d.ts +2 -0
- package/dist/translator/util/traverse.d.ts +9 -0
- package/dist/translator/util/visitors.d.ts +11 -0
- package/dist/translator/util/walks.d.ts +15 -0
- package/dist/translator/util/with-previous-location.d.ts +2 -0
- package/dist/translator/util/writer.d.ts +13 -0
- package/dist/translator/visitors/cdata.d.ts +7 -0
- package/dist/translator/visitors/comment.d.ts +7 -0
- package/dist/translator/visitors/declaration.d.ts +7 -0
- package/dist/translator/visitors/document-type.d.ts +7 -0
- package/dist/translator/visitors/function.d.ts +19 -0
- package/dist/translator/visitors/import-declaration.d.ts +8 -0
- package/dist/translator/visitors/placeholder.d.ts +22 -0
- package/dist/translator/visitors/program/dom.d.ts +7 -0
- package/dist/translator/visitors/program/html.d.ts +8 -0
- package/dist/translator/visitors/program/index.d.ts +39 -0
- package/dist/translator/visitors/referenced-identifier.d.ts +7 -0
- package/dist/translator/visitors/scriptlet.d.ts +8 -0
- package/dist/translator/visitors/tag/attribute-tag.d.ts +11 -0
- package/dist/translator/visitors/tag/custom-tag.d.ts +19 -0
- package/dist/translator/visitors/tag/dynamic-tag.d.ts +18 -0
- package/dist/translator/visitors/tag/index.d.ts +15 -0
- package/dist/translator/visitors/tag/native-tag.d.ts +25 -0
- package/dist/translator/visitors/text.d.ts +7 -0
- package/index.d.ts +30 -261
- package/package.json +40 -67
- package/tag-types/const.d.marko +7 -0
- package/tag-types/debug.d.marko +5 -0
- package/tag-types/define.d.marko +5 -0
- package/tag-types/do.d.marko +5 -0
- package/tag-types/effect.d.marko +5 -0
- package/tag-types/id.d.marko +3 -0
- package/tag-types/let.d.marko +8 -0
- package/tag-types/lifecycle.d.marko +7 -0
- package/tag-types/log.d.marko +5 -0
- package/tag-types/script.d.marko +5 -0
- package/tags-html.d.ts +85 -5
- package/README.md +0 -161
- package/bin/markoc +0 -2
- package/bin/markoc.js +0 -441
- package/browser-refresh.js +0 -5
- package/compiler-browser.marko +0 -15
- package/compiler.js +0 -7
- package/components-browser.marko +0 -15
- package/components.js +0 -7
- package/dist/build.json +0 -3
- package/dist/compiler/config.js +0 -45
- package/dist/compiler/index.js +0 -164
- package/dist/compiler/modules.js +0 -5
- package/dist/core-tags/components/init-components-tag.js +0 -54
- package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
- package/dist/core-tags/components/preserve-tag.js +0 -1
- package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
- package/dist/core-tags/core/await/AsyncValue.js +0 -121
- package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
- package/dist/core-tags/core/await/index.d.marko +0 -10
- package/dist/core-tags/core/await/renderer.js +0 -249
- package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
- package/dist/index.js +0 -4
- package/dist/node-require/browser-refresh.js +0 -1
- package/dist/node-require/hot-reload.js +0 -45
- package/dist/node-require/index.js +0 -103
- package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
- package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
- package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
- package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
- package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
- package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
- package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
- package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
- package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
- package/dist/node_modules/@internal/components-entry/index.js +0 -301
- package/dist/node_modules/@internal/components-entry/package.json +0 -11
- package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
- package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
- package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
- package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
- package/dist/node_modules/@internal/components-registry/index.js +0 -44
- package/dist/node_modules/@internal/components-registry/package.json +0 -11
- package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
- package/dist/node_modules/@internal/components-util/index.js +0 -71
- package/dist/node_modules/@internal/components-util/package.json +0 -11
- package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
- package/dist/node_modules/@internal/create-readable/index.js +0 -57
- package/dist/node_modules/@internal/create-readable/package.json +0 -11
- package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
- package/dist/node_modules/@internal/loader/index-browser.js +0 -2
- package/dist/node_modules/@internal/loader/index.js +0 -23
- package/dist/node_modules/@internal/loader/package.json +0 -10
- package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
- package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
- package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
- package/dist/node_modules/@internal/require/index-browser.js +0 -15
- package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
- package/dist/node_modules/@internal/require/index-webpack.js +0 -16
- package/dist/node_modules/@internal/require/index.js +0 -15
- package/dist/node_modules/@internal/require/package.json +0 -11
- package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
- package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
- package/dist/node_modules/@internal/set-immediate/index.js +0 -3
- package/dist/node_modules/@internal/set-immediate/package.json +0 -11
- package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
- package/dist/runtime/RenderResult.js +0 -112
- package/dist/runtime/components/Component.js +0 -663
- package/dist/runtime/components/ComponentDef.js +0 -169
- package/dist/runtime/components/ComponentsContext.js +0 -59
- package/dist/runtime/components/GlobalComponentsContext.js +0 -10
- package/dist/runtime/components/KeySequence.js +0 -16
- package/dist/runtime/components/ServerComponent.js +0 -73
- package/dist/runtime/components/State.js +0 -101
- package/dist/runtime/components/attach-detach.js +0 -60
- package/dist/runtime/components/defineComponent.js +0 -60
- package/dist/runtime/components/dom-data.js +0 -8
- package/dist/runtime/components/event-delegation.js +0 -144
- package/dist/runtime/components/index.js +0 -1
- package/dist/runtime/components/legacy/browser.json +0 -9
- package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
- package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
- package/dist/runtime/components/legacy/dependencies/html.js +0 -3
- package/dist/runtime/components/legacy/dependencies/index.js +0 -177
- package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
- package/dist/runtime/components/legacy/index.js +0 -1
- package/dist/runtime/components/legacy/jquery.js +0 -52
- package/dist/runtime/components/legacy/ready.js +0 -152
- package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
- package/dist/runtime/components/registry.js +0 -1
- package/dist/runtime/components/renderer.js +0 -236
- package/dist/runtime/components/update-manager.js +0 -94
- package/dist/runtime/createOut.js +0 -13
- package/dist/runtime/dom-insert.js +0 -77
- package/dist/runtime/events.js +0 -2
- package/dist/runtime/helpers/_change-case.js +0 -45
- package/dist/runtime/helpers/assign.js +0 -21
- package/dist/runtime/helpers/attr-tag.js +0 -43
- package/dist/runtime/helpers/class-value.js +0 -30
- package/dist/runtime/helpers/dynamic-tag.js +0 -181
- package/dist/runtime/helpers/empty-component.js +0 -1
- package/dist/runtime/helpers/merge.js +0 -13
- package/dist/runtime/helpers/of-fallback.js +0 -4
- package/dist/runtime/helpers/render-tag.js +0 -20
- package/dist/runtime/helpers/serialize-noop.js +0 -5
- package/dist/runtime/helpers/style-value.js +0 -45
- package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
- package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/dom.js +0 -1
- package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
- package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/html.js +0 -3
- package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
- package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
- package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
- package/dist/runtime/helpers/to-string.js +0 -5
- package/dist/runtime/html/AsyncStream.js +0 -805
- package/dist/runtime/html/BufferedWriter.js +0 -52
- package/dist/runtime/html/StringWriter.js +0 -73
- package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
- package/dist/runtime/html/helpers/attr.js +0 -80
- package/dist/runtime/html/helpers/attrs.js +0 -26
- package/dist/runtime/html/helpers/class-attr.js +0 -8
- package/dist/runtime/html/helpers/data-marko.js +0 -36
- package/dist/runtime/html/helpers/escape-quotes.js +0 -35
- package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
- package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
- package/dist/runtime/html/helpers/escape-xml.js +0 -21
- package/dist/runtime/html/helpers/merge-attrs.js +0 -55
- package/dist/runtime/html/helpers/props-script.js +0 -32
- package/dist/runtime/html/helpers/style-attr.js +0 -8
- package/dist/runtime/html/hot-reload.js +0 -26
- package/dist/runtime/html/index.js +0 -33
- package/dist/runtime/html/marko-namespace.js +0 -3
- package/dist/runtime/renderable.js +0 -194
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
- package/dist/runtime/vdom/VComment.js +0 -24
- package/dist/runtime/vdom/VComponent.js +0 -17
- package/dist/runtime/vdom/VDocumentFragment.js +0 -34
- package/dist/runtime/vdom/VElement.js +0 -375
- package/dist/runtime/vdom/VFragment.js +0 -26
- package/dist/runtime/vdom/VNode.js +0 -100
- package/dist/runtime/vdom/VText.js +0 -25
- package/dist/runtime/vdom/helpers/attrs.js +0 -62
- package/dist/runtime/vdom/helpers/const-element.js +0 -25
- package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
- package/dist/runtime/vdom/hot-reload.js +0 -115
- package/dist/runtime/vdom/index.js +0 -30
- package/dist/runtime/vdom/is-text-only.js +0 -10
- package/dist/runtime/vdom/marko-namespace.js +0 -3
- package/dist/runtime/vdom/morphdom/fragment.js +0 -95
- package/dist/runtime/vdom/morphdom/helpers.js +0 -42
- package/dist/runtime/vdom/morphdom/index.js +0 -741
- package/dist/runtime/vdom/parse-html.js +0 -18
- package/dist/runtime/vdom/vdom.js +0 -88
- package/dist/taglib/index.js +0 -51
- package/dist/translator/cdata/index.js +0 -15
- package/dist/translator/cdata/index[html].js +0 -15
- package/dist/translator/cdata/index[vdom].js +0 -12
- package/dist/translator/class.js +0 -65
- package/dist/translator/comment/index.js +0 -15
- package/dist/translator/comment/index[html].js +0 -17
- package/dist/translator/comment/index[vdom].js +0 -3
- package/dist/translator/declaration/index.js +0 -15
- package/dist/translator/declaration/index[html].js +0 -12
- package/dist/translator/declaration/index[vdom].js +0 -3
- package/dist/translator/document-type/index.js +0 -15
- package/dist/translator/document-type/index[html].js +0 -12
- package/dist/translator/document-type/index[vdom].js +0 -3
- package/dist/translator/placeholder/index.js +0 -15
- package/dist/translator/placeholder/index[html].js +0 -93
- package/dist/translator/placeholder/index[vdom].js +0 -22
- package/dist/translator/scriptlet.js +0 -4
- package/dist/translator/tag/attribute/directives/class.js +0 -42
- package/dist/translator/tag/attribute/directives/index.js +0 -15
- package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
- package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
- package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
- package/dist/translator/tag/attribute/directives/no-update.js +0 -48
- package/dist/translator/tag/attribute/directives/style.js +0 -42
- package/dist/translator/tag/attribute/index.js +0 -150
- package/dist/translator/tag/attribute/modifiers/index.js +0 -7
- package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
- package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
- package/dist/translator/tag/attribute-tag.js +0 -149
- package/dist/translator/tag/custom-tag.js +0 -146
- package/dist/translator/tag/dynamic-tag.js +0 -74
- package/dist/translator/tag/index.js +0 -287
- package/dist/translator/tag/macro-tag.js +0 -7
- package/dist/translator/tag/native-tag.js +0 -27
- package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
- package/dist/translator/tag/native-tag[html]/index.js +0 -221
- package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
- package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
- package/dist/translator/tag/util.js +0 -246
- package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
- package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
- package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
- package/dist/translator/taglib/core/conditional/util.js +0 -41
- package/dist/translator/taglib/core/index.js +0 -474
- package/dist/translator/taglib/core/macro/parse.js +0 -17
- package/dist/translator/taglib/core/macro/translate.js +0 -48
- package/dist/translator/taglib/core/parse-class.js +0 -79
- package/dist/translator/taglib/core/parse-export.js +0 -14
- package/dist/translator/taglib/core/parse-import.js +0 -14
- package/dist/translator/taglib/core/parse-module-code.js +0 -18
- package/dist/translator/taglib/core/parse-static.js +0 -18
- package/dist/translator/taglib/core/transform-style.js +0 -66
- package/dist/translator/taglib/core/translate-await.js +0 -41
- package/dist/translator/taglib/core/translate-body.js +0 -17
- package/dist/translator/taglib/core/translate-for.js +0 -156
- package/dist/translator/taglib/core/translate-html-comment.js +0 -52
- package/dist/translator/taglib/core/translate-include-content.js +0 -53
- package/dist/translator/taglib/core/translate-server-only.js +0 -5
- package/dist/translator/taglib/core/translate-while.js +0 -32
- package/dist/translator/taglib/index.js +0 -6
- package/dist/translator/taglib/migrate/all-templates.js +0 -46
- package/dist/translator/taglib/migrate/index.js +0 -5
- package/dist/translator/text/index.js +0 -10
- package/dist/translator/text/index[html].js +0 -12
- package/dist/translator/text/index[vdom].js +0 -20
- package/dist/translator/util/add-dependencies.js +0 -329
- package/dist/translator/util/escape-regexp.js +0 -4
- package/dist/translator/util/get-component-files.js +0 -86
- package/dist/translator/util/html-out-write.js +0 -15
- package/dist/translator/util/key-manager.js +0 -176
- package/dist/translator/util/optimize-html-writes.js +0 -52
- package/dist/translator/util/optimize-vdom-create.js +0 -164
- package/dist/translator/util/plugin-hooks.js +0 -22
- package/dist/translator/util/runtime-flags.js +0 -3
- package/dist/translator/util/vdom-out-write.js +0 -10
- package/dist/translator/util/with-previous-location.js +0 -6
- package/docs/10-awesome-marko-features.md +0 -291
- package/docs/body-content.md +0 -355
- package/docs/class-components.md +0 -1001
- package/docs/cloudflare-workers.md +0 -32
- package/docs/compiler-hooks.png +0 -0
- package/docs/compiler.md +0 -473
- package/docs/component-diagram.afdesign +0 -0
- package/docs/component-diagram.svg +0 -87
- package/docs/concise.md +0 -141
- package/docs/conditionals-and-lists.md +0 -72
- package/docs/core-tags.md +0 -325
- package/docs/custom-tags.md +0 -201
- package/docs/editor-plugins.md +0 -45
- package/docs/events.md +0 -131
- package/docs/express.md +0 -66
- package/docs/fastify.md +0 -65
- package/docs/getting-started.md +0 -95
- package/docs/http.md +0 -34
- package/docs/icons/js.svg +0 -4
- package/docs/icons/marko.svg +0 -1
- package/docs/icons/ts.svg +0 -1
- package/docs/installing.md +0 -51
- package/docs/koa.md +0 -35
- package/docs/lasso.md +0 -196
- package/docs/marko-5-upgrade.md +0 -59
- package/docs/marko-json.md +0 -248
- package/docs/marko-vs-react.md +0 -854
- package/docs/redux.md +0 -61
- package/docs/rendering.md +0 -268
- package/docs/rollup.md +0 -352
- package/docs/state.md +0 -105
- package/docs/structure.json +0 -49
- package/docs/styles.md +0 -29
- package/docs/syntax.md +0 -601
- package/docs/troubleshooting-streaming.md +0 -68
- package/docs/typescript.md +0 -406
- package/docs/vite.md +0 -86
- package/docs/webpack.md +0 -205
- package/docs/why-is-marko-fast.md +0 -239
- package/env.js +0 -7
- package/helpers/README.md +0 -3
- package/helpers/empty.js +0 -4
- package/helpers/notEmpty.js +0 -11
- package/index-browser.marko +0 -15
- package/index.js +0 -7
- package/legacy-components-browser.marko +0 -15
- package/legacy-components.js +0 -7
- package/node-require.js +0 -8
- package/src/build.json +0 -3
- package/src/compiler/config.js +0 -45
- package/src/compiler/index.js +0 -164
- package/src/compiler/modules.js +0 -5
- package/src/core-tags/.eslintrc +0 -5
- package/src/core-tags/components/init-components-tag.js +0 -54
- package/src/core-tags/components/preferred-script-location-tag.js +0 -25
- package/src/core-tags/components/preserve-tag.js +0 -1
- package/src/core-tags/core/__flush_here_and_after__.js +0 -44
- package/src/core-tags/core/await/AsyncValue.js +0 -121
- package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
- package/src/core-tags/core/await/index.d.marko +0 -10
- package/src/core-tags/core/await/renderer.js +0 -249
- package/src/core-tags/core/await/reorderer-renderer.js +0 -156
- package/src/index.js +0 -4
- package/src/node-require/browser-refresh.js +0 -18
- package/src/node-require/hot-reload.js +0 -45
- package/src/node-require/index.js +0 -103
- package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
- package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
- package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
- package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
- package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
- package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
- package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
- package/src/node_modules/@internal/components-endComponent/index.js +0 -11
- package/src/node_modules/@internal/components-endComponent/package.json +0 -11
- package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
- package/src/node_modules/@internal/components-entry/index.js +0 -301
- package/src/node_modules/@internal/components-entry/package.json +0 -11
- package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
- package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
- package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
- package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
- package/src/node_modules/@internal/components-registry/index.js +0 -44
- package/src/node_modules/@internal/components-registry/package.json +0 -11
- package/src/node_modules/@internal/components-util/index-browser.js +0 -152
- package/src/node_modules/@internal/components-util/index.js +0 -75
- package/src/node_modules/@internal/components-util/package.json +0 -11
- package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
- package/src/node_modules/@internal/create-readable/index.js +0 -57
- package/src/node_modules/@internal/create-readable/package.json +0 -11
- package/src/node_modules/@internal/loader/fallback-node.js +0 -89
- package/src/node_modules/@internal/loader/index-browser.js +0 -2
- package/src/node_modules/@internal/loader/index.js +0 -23
- package/src/node_modules/@internal/loader/package.json +0 -10
- package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
- package/src/node_modules/@internal/preserve-tag/index.js +0 -34
- package/src/node_modules/@internal/preserve-tag/package.json +0 -11
- package/src/node_modules/@internal/require/index-browser.js +0 -15
- package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
- package/src/node_modules/@internal/require/index-webpack.js +0 -16
- package/src/node_modules/@internal/require/index.js +0 -15
- package/src/node_modules/@internal/require/package.json +0 -11
- package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
- package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
- package/src/node_modules/@internal/set-immediate/index.js +0 -3
- package/src/node_modules/@internal/set-immediate/package.json +0 -11
- package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
- package/src/runtime/.eslintrc +0 -5
- package/src/runtime/RenderResult.js +0 -112
- package/src/runtime/components/Component.js +0 -663
- package/src/runtime/components/ComponentDef.js +0 -169
- package/src/runtime/components/ComponentsContext.js +0 -59
- package/src/runtime/components/GlobalComponentsContext.js +0 -10
- package/src/runtime/components/KeySequence.js +0 -16
- package/src/runtime/components/ServerComponent.js +0 -73
- package/src/runtime/components/State.js +0 -101
- package/src/runtime/components/attach-detach.js +0 -60
- package/src/runtime/components/defineComponent.js +0 -60
- package/src/runtime/components/dom-data.js +0 -8
- package/src/runtime/components/event-delegation.js +0 -144
- package/src/runtime/components/index.js +0 -1
- package/src/runtime/components/legacy/browser.json +0 -9
- package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
- package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
- package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
- package/src/runtime/components/legacy/dependencies/html.js +0 -3
- package/src/runtime/components/legacy/dependencies/index.js +0 -177
- package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
- package/src/runtime/components/legacy/index.js +0 -1
- package/src/runtime/components/legacy/jquery.js +0 -52
- package/src/runtime/components/legacy/ready.js +0 -152
- package/src/runtime/components/legacy/renderer-legacy.js +0 -231
- package/src/runtime/components/registry.js +0 -1
- package/src/runtime/components/renderer.js +0 -236
- package/src/runtime/components/update-manager.js +0 -94
- package/src/runtime/createOut.js +0 -13
- package/src/runtime/dom-insert.js +0 -77
- package/src/runtime/events.js +0 -2
- package/src/runtime/helpers/_change-case.js +0 -45
- package/src/runtime/helpers/assign.js +0 -21
- package/src/runtime/helpers/attr-tag.js +0 -43
- package/src/runtime/helpers/class-value.js +0 -30
- package/src/runtime/helpers/dynamic-tag.js +0 -181
- package/src/runtime/helpers/empty-component.js +0 -1
- package/src/runtime/helpers/merge.js +0 -13
- package/src/runtime/helpers/of-fallback.js +0 -4
- package/src/runtime/helpers/render-tag.js +0 -20
- package/src/runtime/helpers/serialize-noop.js +0 -5
- package/src/runtime/helpers/style-value.js +0 -45
- package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
- package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
- package/src/runtime/helpers/tags-compat/dom.js +0 -1
- package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
- package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
- package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
- package/src/runtime/helpers/tags-compat/html.js +0 -3
- package/src/runtime/helpers/tags-compat/html.mjs +0 -4
- package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
- package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
- package/src/runtime/helpers/to-string.js +0 -5
- package/src/runtime/html/AsyncStream.js +0 -805
- package/src/runtime/html/BufferedWriter.js +0 -52
- package/src/runtime/html/StringWriter.js +0 -73
- package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
- package/src/runtime/html/helpers/attr.js +0 -80
- package/src/runtime/html/helpers/attrs.js +0 -26
- package/src/runtime/html/helpers/class-attr.js +0 -8
- package/src/runtime/html/helpers/data-marko.js +0 -36
- package/src/runtime/html/helpers/escape-quotes.js +0 -35
- package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
- package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
- package/src/runtime/html/helpers/escape-xml.js +0 -21
- package/src/runtime/html/helpers/merge-attrs.js +0 -55
- package/src/runtime/html/helpers/props-script.js +0 -32
- package/src/runtime/html/helpers/style-attr.js +0 -8
- package/src/runtime/html/hot-reload.js +0 -26
- package/src/runtime/html/index.js +0 -33
- package/src/runtime/html/marko-namespace.js +0 -3
- package/src/runtime/renderable.js +0 -194
- package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
- package/src/runtime/vdom/VComment.js +0 -24
- package/src/runtime/vdom/VComponent.js +0 -17
- package/src/runtime/vdom/VDocumentFragment.js +0 -34
- package/src/runtime/vdom/VElement.js +0 -375
- package/src/runtime/vdom/VFragment.js +0 -26
- package/src/runtime/vdom/VNode.js +0 -100
- package/src/runtime/vdom/VText.js +0 -25
- package/src/runtime/vdom/helpers/attrs.js +0 -62
- package/src/runtime/vdom/helpers/const-element.js +0 -25
- package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
- package/src/runtime/vdom/hot-reload.js +0 -115
- package/src/runtime/vdom/index.js +0 -30
- package/src/runtime/vdom/is-text-only.js +0 -10
- package/src/runtime/vdom/marko-namespace.js +0 -3
- package/src/runtime/vdom/morphdom/fragment.js +0 -95
- package/src/runtime/vdom/morphdom/helpers.js +0 -42
- package/src/runtime/vdom/morphdom/index.js +0 -741
- package/src/runtime/vdom/parse-html.js +0 -18
- package/src/runtime/vdom/vdom.js +0 -88
- package/src/taglib/index.js +0 -51
- package/src/translator/cdata/index.js +0 -15
- package/src/translator/cdata/index[html].js +0 -15
- package/src/translator/cdata/index[vdom].js +0 -12
- package/src/translator/class.js +0 -65
- package/src/translator/comment/index.js +0 -15
- package/src/translator/comment/index[html].js +0 -17
- package/src/translator/comment/index[vdom].js +0 -3
- package/src/translator/declaration/index.js +0 -15
- package/src/translator/declaration/index[html].js +0 -12
- package/src/translator/declaration/index[vdom].js +0 -3
- package/src/translator/document-type/index.js +0 -15
- package/src/translator/document-type/index[html].js +0 -12
- package/src/translator/document-type/index[vdom].js +0 -3
- package/src/translator/index.js +0 -552
- package/src/translator/placeholder/index.js +0 -15
- package/src/translator/placeholder/index[html].js +0 -93
- package/src/translator/placeholder/index[vdom].js +0 -22
- package/src/translator/scriptlet.js +0 -4
- package/src/translator/tag/attribute/directives/class.js +0 -42
- package/src/translator/tag/attribute/directives/index.js +0 -15
- package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
- package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
- package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
- package/src/translator/tag/attribute/directives/no-update.js +0 -48
- package/src/translator/tag/attribute/directives/style.js +0 -42
- package/src/translator/tag/attribute/index.js +0 -150
- package/src/translator/tag/attribute/modifiers/index.js +0 -7
- package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
- package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
- package/src/translator/tag/attribute-tag.js +0 -149
- package/src/translator/tag/custom-tag.js +0 -146
- package/src/translator/tag/dynamic-tag.js +0 -74
- package/src/translator/tag/index.js +0 -287
- package/src/translator/tag/macro-tag.js +0 -7
- package/src/translator/tag/native-tag.js +0 -27
- package/src/translator/tag/native-tag[html]/attributes.js +0 -151
- package/src/translator/tag/native-tag[html]/index.js +0 -221
- package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
- package/src/translator/tag/native-tag[vdom]/index.js +0 -189
- package/src/translator/tag/util.js +0 -246
- package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
- package/src/translator/taglib/core/conditional/translate-else.js +0 -20
- package/src/translator/taglib/core/conditional/translate-if.js +0 -8
- package/src/translator/taglib/core/conditional/util.js +0 -41
- package/src/translator/taglib/core/index.js +0 -474
- package/src/translator/taglib/core/macro/parse.js +0 -17
- package/src/translator/taglib/core/macro/translate.js +0 -48
- package/src/translator/taglib/core/parse-class.js +0 -79
- package/src/translator/taglib/core/parse-export.js +0 -14
- package/src/translator/taglib/core/parse-import.js +0 -14
- package/src/translator/taglib/core/parse-module-code.js +0 -18
- package/src/translator/taglib/core/parse-static.js +0 -18
- package/src/translator/taglib/core/transform-style.js +0 -66
- package/src/translator/taglib/core/translate-await.js +0 -41
- package/src/translator/taglib/core/translate-body.js +0 -17
- package/src/translator/taglib/core/translate-for.js +0 -156
- package/src/translator/taglib/core/translate-html-comment.js +0 -52
- package/src/translator/taglib/core/translate-include-content.js +0 -53
- package/src/translator/taglib/core/translate-server-only.js +0 -5
- package/src/translator/taglib/core/translate-while.js +0 -32
- package/src/translator/taglib/index.js +0 -7
- package/src/translator/taglib/migrate/all-templates.js +0 -46
- package/src/translator/taglib/migrate/index.js +0 -5
- package/src/translator/text/index.js +0 -10
- package/src/translator/text/index[html].js +0 -12
- package/src/translator/text/index[vdom].js +0 -20
- package/src/translator/util/add-dependencies.js +0 -329
- package/src/translator/util/escape-regexp.js +0 -4
- package/src/translator/util/get-component-files.js +0 -86
- package/src/translator/util/html-out-write.js +0 -15
- package/src/translator/util/key-manager.js +0 -176
- package/src/translator/util/optimize-html-writes.js +0 -52
- package/src/translator/util/optimize-vdom-create.js +0 -164
- package/src/translator/util/plugin-hooks.js +0 -22
- package/src/translator/util/runtime-flags.js +0 -3
- package/src/translator/util/vdom-out-write.js +0 -10
- package/src/translator/util/with-previous-location.js +0 -6
- package/translator/index.d.ts +0 -7
- package/translator/package.json +0 -5
package/docs/installing.md
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# Installation
|
2
|
-
|
3
|
-
## Trying out Marko
|
4
|
-
|
5
|
-
If you just want to play around with Marko in the browser, head on over to our [Try Online](https://markojs.com/try-online) feature. You'll be able to develop a Marko application right in your browser.
|
6
|
-
|
7
|
-
## Creating new apps (Recommended)
|
8
|
-
|
9
|
-
If you're starting from scratch, you can use Marko's [CLI](https://github.com/marko-js/cli) commands to quickly create a starter app:
|
10
|
-
|
11
|
-
```bash
|
12
|
-
npm init marko
|
13
|
-
```
|
14
|
-
|
15
|
-
This will use an interactive [CLI](https://github.com/marko-js/cli) to automatically create a project for you using the pre-made starter template of your choosing. The `basic` template is the most minimal and the easiest way to get started. It uses our recommended app framework [Marko Run](https://github.com/marko-js/run) that handles building, bundling, and serving your web application. These projects are config-free with built-in file based routing and automatic code reloading.
|
16
|
-
|
17
|
-
## Custom Bundling
|
18
|
-
|
19
|
-
Marko relies on JavaScript bundlers to package your code on both the client and the server. This is because Marko's client and server bundling works closely together to optimize the smallest client bundles and handle shared assets properly.
|
20
|
-
|
21
|
-
Using the CLI is still the easiest way to get started even when you want to get your hands dirty tweaking every last part of your config files. Marko currently supports Webpack, Lasso, and Rollup.
|
22
|
-
|
23
|
-
### Webpack
|
24
|
-
|
25
|
-
[Webpack Integration Docs](https://markojs.com/docs/webpack/)
|
26
|
-
|
27
|
-
[Marko Webpack Plugin](https://github.com/marko-js/webpack)
|
28
|
-
|
29
|
-
[Webpack Example](https://github.com/marko-js/examples/tree/master/examples/webpack-express)
|
30
|
-
|
31
|
-
CLI Command: `npx @marko/create --template webpack-express`
|
32
|
-
|
33
|
-
### Lasso
|
34
|
-
|
35
|
-
[Lasso Integration Docs](https://markojs.com/docs/lasso/)
|
36
|
-
|
37
|
-
[Marko Lasso Plugin](https://github.com/lasso-js/lasso-marko)
|
38
|
-
|
39
|
-
[Lasso Example](https://github.com/marko-js/examples/tree/master/examples/lasso-express)
|
40
|
-
|
41
|
-
CLI Command: `npx @marko/create --template lasso-express`
|
42
|
-
|
43
|
-
### Rollup
|
44
|
-
|
45
|
-
[Rollup Integration Docs](https://markojs.com/docs/rollup/)
|
46
|
-
|
47
|
-
[Marko Rollup Plugin](https://github.com/marko-js/rollup)
|
48
|
-
|
49
|
-
<!-- [Rollup Example](https://github.com/marko-js/examples/tree/master/examples/rollup)
|
50
|
-
|
51
|
-
CLI Command: `npx @marko/create --template rollup` -->
|
package/docs/koa.md
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# Marko + Koa
|
2
|
-
|
3
|
-
See the [the koa sample](https://github.com/marko-js/examples/tree/master/examples/vite-koa)
|
4
|
-
project for a working example.
|
5
|
-
|
6
|
-
## Installation
|
7
|
-
|
8
|
-
```terminal
|
9
|
-
npm install koa marko --save
|
10
|
-
```
|
11
|
-
|
12
|
-
## Usage
|
13
|
-
|
14
|
-
```javascript
|
15
|
-
import Koa from "koa";
|
16
|
-
import Template from "./index.marko";
|
17
|
-
|
18
|
-
const app = new Koa();
|
19
|
-
|
20
|
-
app.use((ctx, next) => {
|
21
|
-
ctx.type = "html";
|
22
|
-
ctx.body = Template.stream({
|
23
|
-
name: "Frank",
|
24
|
-
count: 30,
|
25
|
-
colors: ["red", "green", "blue"],
|
26
|
-
});
|
27
|
-
});
|
28
|
-
|
29
|
-
app.listen(8080);
|
30
|
-
```
|
31
|
-
|
32
|
-
### BYOB (Bring your own bundler)
|
33
|
-
|
34
|
-
For the large portion of Marko's API a bundler is required. The example code above assumes that Marko templates can be loaded in your environment.
|
35
|
-
Marko supports a number of bundlers, [take a look through our supported bundlers](https://markojs.com/docs/bundler-integrations-overview/) and pick what works best for you.
|
package/docs/lasso.md
DELETED
@@ -1,196 +0,0 @@
|
|
1
|
-
# Marko + Lasso
|
2
|
-
|
3
|
-
The [lasso-marko](https://github.com/lasso-js/lasso-marko) plugin for [Lasso.js](https://github.com/lasso-js/lasso) will automatically compile all imported Marko templates during bundling. In addition, the `lasso-marko` plugin will automatically bundle any template dependencies (including required CSS).
|
4
|
-
|
5
|
-
Lasso.js provides Marko custom tags for injecting JavaScript and CSS bundles, images and other resources.
|
6
|
-
|
7
|
-
The sample [lasso-express](https://github.com/marko-js/examples/tree/master/examples/lasso-express) app demonstrates how to build a production-ready web application using Marko and Lasso. Run `npx @marko/create --template lasso-express` to use this sample as a starting point for a new app.
|
8
|
-
|
9
|
-
## Installation
|
10
|
-
|
11
|
-
```
|
12
|
-
npm install lasso-marko --save
|
13
|
-
```
|
14
|
-
|
15
|
-
## Registering the plugin
|
16
|
-
|
17
|
-
```js
|
18
|
-
require('lasso').configure({
|
19
|
-
"plugins": [
|
20
|
-
...
|
21
|
-
"lasso-marko"
|
22
|
-
]
|
23
|
-
...
|
24
|
-
});
|
25
|
-
```
|
26
|
-
|
27
|
-
## Lasso custom tags
|
28
|
-
|
29
|
-
To inject the required JavaScript and CSS into the page you will want to use the `<lasso-page>`, `<lasso-head>` and `<lasso-body>` tags.
|
30
|
-
|
31
|
-
If you are using lasso@^3 (latest), make sure to install the [lasso-marko-taglib](https://github.com/lasso-js/lasso-marko-taglib), so that you can use the lasso custom tags.
|
32
|
-
|
33
|
-
```
|
34
|
-
npm install lasso-marko
|
35
|
-
npm install @lasso/marko-taglib
|
36
|
-
```
|
37
|
-
|
38
|
-
After installing, the lasso custom tags can be used in your templates:
|
39
|
-
|
40
|
-
```html
|
41
|
-
<!doctype html>
|
42
|
-
<html lang="en">
|
43
|
-
<head>
|
44
|
-
<meta charset="UTF-8" />
|
45
|
-
<title>Marko + Lasso</title>
|
46
|
-
<lasso-head />
|
47
|
-
</head>
|
48
|
-
<body>
|
49
|
-
<lasso-body />
|
50
|
-
</body>
|
51
|
-
</html>
|
52
|
-
```
|
53
|
-
|
54
|
-
Lasso.js will automatically bundle up transitive dependencies by building and walking a dependency graph.
|
55
|
-
|
56
|
-
## Client-side rendering
|
57
|
-
|
58
|
-
Marko templates can be imported and rendered by any JavaScript module. The code below shows how to render a top-level UI component and have it be mounted to the DOM as a child `document.body`:
|
59
|
-
|
60
|
-
_client.js_
|
61
|
-
|
62
|
-
<!-- prettier-ignore -->
|
63
|
-
```js
|
64
|
-
require("./components/app/index.marko")
|
65
|
-
.renderSync({})
|
66
|
-
.appendTo(document.body);
|
67
|
-
```
|
68
|
-
|
69
|
-
When Lasso.js bundles up the code above it will automatically bundle up the required `./components/app/index.marko` file.
|
70
|
-
|
71
|
-
## Server-side rendering
|
72
|
-
|
73
|
-
If you are rendering the initial UI on the server then it is necessary to make sure that all UI components are bundled and sent to the browser so that UI components can be mounted in the browser. For example:
|
74
|
-
|
75
|
-
_about-me/index.marko_
|
76
|
-
|
77
|
-
```marko
|
78
|
-
<!DOCTYPE html>
|
79
|
-
<html lang="en">
|
80
|
-
<head>
|
81
|
-
<meta charset="UTF-8">
|
82
|
-
<title>Marko + Lasso</title>
|
83
|
-
|
84
|
-
<!-- CSS will be inserted here -->
|
85
|
-
<lasso-head/>
|
86
|
-
</head>
|
87
|
-
<body>
|
88
|
-
<!-- Top-level UI component: -->
|
89
|
-
<app/>
|
90
|
-
|
91
|
-
<!-- JS will be inserted here -->
|
92
|
-
<lasso-body/>
|
93
|
-
</body>
|
94
|
-
</html>
|
95
|
-
```
|
96
|
-
|
97
|
-
## Browser refresh
|
98
|
-
|
99
|
-
[browser-refresh](https://github.com/patrick-steele-idem/browser-refresh) is recommended in development for instant page refreshes and hot reloading of Marko templates, styles and other resources. `browser-refresh` works well with Lasso and Marko and is very easy to use as a drop-in replacement for `node`:
|
100
|
-
|
101
|
-
```bash
|
102
|
-
browser-refresh server.js
|
103
|
-
```
|
104
|
-
|
105
|
-
## Lasso package types commonly used with Marko
|
106
|
-
|
107
|
-
For many use cases, the combination of `lasso-marko` and `@lasso/marko-taglib` is sufficient to render and bundle components without the need for explicit `browser.json` files. For more advanced use cases, the following bundle types may be defined in a `browser.json` for Lasso.
|
108
|
-
|
109
|
-
#### `marko-dependencies` _(provided by `lasso-marko`)_
|
110
|
-
|
111
|
-
Includes all the dependencies needed by template and the code to register all components that would be rendered by the template. It does not automatically initialize the component, so is most useful if you need to initialize components manually.
|
112
|
-
|
113
|
-
```json
|
114
|
-
{
|
115
|
-
"type": "marko-dependencies",
|
116
|
-
"path": "src/ui-modules/outdated-browser-banner/index.marko"
|
117
|
-
}
|
118
|
-
```
|
119
|
-
|
120
|
-
**Note:** To initialize the server rendered components, there are 2 steps:
|
121
|
-
|
122
|
-
**Step 1:** Manually _retrieve_ server rendered components, shipped via `marko-dependencies`.
|
123
|
-
|
124
|
-
To retrieve the list of server rendered components, do:
|
125
|
-
|
126
|
-
```javascript
|
127
|
-
template.render(data, (err, output) => {
|
128
|
-
const renderedComponentsList =
|
129
|
-
require("marko/components").getRenderedComponents(output.out);
|
130
|
-
const html = output.getOutput();
|
131
|
-
});
|
132
|
-
res.json({
|
133
|
-
renderedComponentsList,
|
134
|
-
html,
|
135
|
-
});
|
136
|
-
```
|
137
|
-
|
138
|
-
**Step 2:** Manually _initialize_ server rendered components, shipped via `marko-dependencies`.
|
139
|
-
|
140
|
-
To initialize the list of server rendered components, do:
|
141
|
-
|
142
|
-
```javascript
|
143
|
-
// from the response received, retrieve as
|
144
|
-
require("marko/components").init(response.renderedComponentsList);
|
145
|
-
```
|
146
|
-
|
147
|
-
**Note:** Ensure Step 2 is inside a DOM-ready wrapper, for the legacy widgets layer to load (if there are widgets built out of Marko 3, that is being used inside a Marko 4 component.)
|
148
|
-
|
149
|
-
#### `marko-hydrate` _(provided by `lasso-marko`)_
|
150
|
-
|
151
|
-
Includes all the dependencies needed by template and the code to register all components that would be rendered by the template. This also includes the code to initialize the rendered components. Including this bundle on the page will automatically hydrate server rendered components.
|
152
|
-
|
153
|
-
```json
|
154
|
-
{
|
155
|
-
"type": "marko-hydrate",
|
156
|
-
"path": "src/ui-modules/outdated-browser-banner/index.marko"
|
157
|
-
}
|
158
|
-
```
|
159
|
-
|
160
|
-
**Note:** `marko-hydrate` will initialize the component if its defined on the global `window.$components` which is inserted by `Marko` when it sees a `<body>` tag. Else, if you are just rendering out and lasso-ing the a portion of a page with a set of components, include `<init-components/>` at the end of the associated `template.marko` file that builds out the page fragment.
|
161
|
-
|
162
|
-
#### `package`
|
163
|
-
|
164
|
-
A collection of dependencies. `browser.json` is the most common package type.
|
165
|
-
It could be used to point to another `browser.json` from within one component's `browser.json`.
|
166
|
-
Typically also used when the dependencies of the referred `browser.json` have to be packaged inline.
|
167
|
-
|
168
|
-
```json
|
169
|
-
{
|
170
|
-
"type": "package",
|
171
|
-
"path": "src/ui-modules/show-diag/browser.json"
|
172
|
-
}
|
173
|
-
```
|
174
|
-
|
175
|
-
#### `require`
|
176
|
-
|
177
|
-
If a javascript file has to be wrapped over for its common JS syntax, to a browser understandable format.
|
178
|
-
|
179
|
-
```json
|
180
|
-
{
|
181
|
-
"type": "require",
|
182
|
-
"path": "src/ui-modules/dynamic-module-loader/dynamic-init-client.js"
|
183
|
-
}
|
184
|
-
```
|
185
|
-
|
186
|
-
#### `require` and `run`
|
187
|
-
|
188
|
-
If a javascript file has to be wrapped over for its common JS syntax, to a browser understandable format and be executed immediately.
|
189
|
-
|
190
|
-
```json
|
191
|
-
{
|
192
|
-
"run": true,
|
193
|
-
"type": "require",
|
194
|
-
"path": "src/ui-modules/my-module/init.js"
|
195
|
-
}
|
196
|
-
```
|
package/docs/marko-5-upgrade.md
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# Upgrading to Marko 5
|
2
|
-
|
3
|
-
## Step 0 - Ensure you're in a working state on the latest version of Marko 4
|
4
|
-
|
5
|
-
Before we start, you'll want to make sure that you are already on the latest `4.x` release of `marko`.
|
6
|
-
|
7
|
-
```bash
|
8
|
-
# Upgrade using yarn
|
9
|
-
yarn upgrade marko@^4
|
10
|
-
```
|
11
|
-
|
12
|
-
```bash
|
13
|
-
# Upgrade using npm
|
14
|
-
npm install marko@^4
|
15
|
-
```
|
16
|
-
|
17
|
-
> [!Warning]
|
18
|
-
> Do _not_ run `npm install marko` (without the `@^4`). This will put you on Marko 5 and we're not quite there yet.
|
19
|
-
|
20
|
-
> [!Tip]
|
21
|
-
> If upgrading from Marko 3 you may want to reference [this guide](https://marko-v4.github.io/docs/marko-4-upgrade/).
|
22
|
-
|
23
|
-
Run your application and tests to ensure your project is in a working state. There's little worse than finding an issue after you've started the upgrade process only to figure out the issue existed beforehand.
|
24
|
-
|
25
|
-
## Step 1 - Upgrade Marko & Dependencies
|
26
|
-
|
27
|
-
**TL;DR**: Paste & run this random shell script. It's safe. Trust us.
|
28
|
-
|
29
|
-
```bash
|
30
|
-
# Update Marko, and related ecosystem dependencies
|
31
|
-
npx -y npm-check-updates -u \
|
32
|
-
marko \
|
33
|
-
`# for webpack projects` \
|
34
|
-
@marko/webpack \
|
35
|
-
`# for lasso projects` \
|
36
|
-
lasso lasso-marko @lasso/marko-taglib \
|
37
|
-
`# for jest test runner` \
|
38
|
-
@marko/jest \
|
39
|
-
`# for projects with v3 widgets` \
|
40
|
-
marko-widgets
|
41
|
-
|
42
|
-
# Install @marko/compat-v4 unless `marko-widgets` is already installed
|
43
|
-
grep -q "marko-widgets" package.json || { [[ -f yarn.lock ]] && yarn add @marko/compat-v4 || npm install @marko/compat-v4; }
|
44
|
-
[[ -f yarn.lock ]] && npx -y yarn-deduplicate && yarn
|
45
|
-
[[ -f yarn.lock ]] || npm i
|
46
|
-
```
|
47
|
-
|
48
|
-
This script automates the following steps for you:
|
49
|
-
|
50
|
-
- Install the compat package
|
51
|
-
- `marko-widgets` if using Marko 3's Widgets
|
52
|
-
- `@marko/compat-v4` if not using Widgets
|
53
|
-
- Update `marko` to 5.x
|
54
|
-
- Update any ecosystem packages used by your app (lasso, webpack, jest, etc)
|
55
|
-
|
56
|
-
> [!Note]
|
57
|
-
> Check your `package.json`. If you have other third-party Marko packages not covered by the script, you may need to update them as well.
|
58
|
-
|
59
|
-
Your application should continue to work. Run your tests to ensure everything is working. Congratulations! You've upgraded to Marko 5.
|
package/docs/marko-json.md
DELETED
@@ -1,248 +0,0 @@
|
|
1
|
-
# `marko.json` & `marko-tag.json`
|
2
|
-
|
3
|
-
Marko supports configuration files for validation, enabling experimental features, and custom paths for component files.
|
4
|
-
|
5
|
-
These configuration files are automatically found with [the same discovery mechanism as custom tags](./custom-tags.md#how-tags-are-discovered).
|
6
|
-
|
7
|
-
There are 2 types of configuration files:
|
8
|
-
|
9
|
-
1. `marko.json` describes an entire suite of components.
|
10
|
-
2. `marko-tag.json` describes a single component.
|
11
|
-
|
12
|
-
## Single component definition
|
13
|
-
|
14
|
-
`marko-tag.json` configures a single component. It’s automatically discovered if placed inside a [tag directory](./custom-tags.md#tag-directories).
|
15
|
-
|
16
|
-
### Options
|
17
|
-
|
18
|
-
```js
|
19
|
-
{
|
20
|
-
"html": true, // Treat as a native HTML tag, not a custom tag.
|
21
|
-
"htmlType": "svg", // Optimizes for specific types of native tags (currently only `svg` and `html`).
|
22
|
-
"open-tag-only": true, // Forbids passing body content to this tag.
|
23
|
-
"featureFlags": [ "feature-a" ], // Enable beta features by passing feature flags.
|
24
|
-
"nested-tags": { // This section configures attribute tags.
|
25
|
-
"tab": {
|
26
|
-
"target-property": "tabs", // Puts `<@tab>` tags into `input.tabs`.
|
27
|
-
"is-repeated": true, // Allow more than one nested `<@tab>`.
|
28
|
-
"attributes": {
|
29
|
-
// Same as the “Attributes” section below.
|
30
|
-
}
|
31
|
-
}
|
32
|
-
}
|
33
|
-
}
|
34
|
-
```
|
35
|
-
|
36
|
-
### Attributes
|
37
|
-
|
38
|
-
One commonly-used feature of this config file is compile-time checks for attributes.
|
39
|
-
|
40
|
-
```js
|
41
|
-
{
|
42
|
-
"attributes": {
|
43
|
-
"heading": "string"
|
44
|
-
}
|
45
|
-
}
|
46
|
-
```
|
47
|
-
|
48
|
-
The above code ensures that the `heading` attribute is the _only_ attribute supplied to this tag.
|
49
|
-
|
50
|
-
The `string` value is used as documentation for the custom tag. It may be picked up by tooling, like Marko’s editor plugins, to provide hints to the user.
|
51
|
-
|
52
|
-
The recommended list of attribute types are as follows:
|
53
|
-
|
54
|
-
- `expression` (any JavaScript expression)
|
55
|
-
- `string`
|
56
|
-
- `number`
|
57
|
-
- `boolean`
|
58
|
-
- `regexp`
|
59
|
-
- `date`
|
60
|
-
- `object`
|
61
|
-
- `array`
|
62
|
-
- `function`
|
63
|
-
|
64
|
-
You can also provide an object for an attribute definition’s value for additional options:
|
65
|
-
|
66
|
-
```js
|
67
|
-
{
|
68
|
-
"attributes": {
|
69
|
-
"heading": {
|
70
|
-
"type": "string", // Same as setting "string" above.
|
71
|
-
"default-value": 0, // The attribute will default to this value.
|
72
|
-
"required": true, // Error during compilation if this attribute is undefined. (Mutually exclusive with "default-value"
|
73
|
-
"preserve-name": true, // By default component attributes are camelCased; this disables that feature.
|
74
|
-
"remove-dashes": true, // By default native tag attributes are dash-cased; this disables that feature.
|
75
|
-
|
76
|
-
// The following attributes do nothing, but are picked up by tooling.
|
77
|
-
"deprecated": true,
|
78
|
-
"description": "The component’s heading text" // Describes the attribute’s purpose.
|
79
|
-
}
|
80
|
-
}
|
81
|
-
}
|
82
|
-
```
|
83
|
-
|
84
|
-
We can also describe a _pattern_ of attributes to match a definition:
|
85
|
-
|
86
|
-
```js
|
87
|
-
{
|
88
|
-
"attributes": {
|
89
|
-
"data-*": {
|
90
|
-
"type": "string",
|
91
|
-
"pattern": true
|
92
|
-
}
|
93
|
-
}
|
94
|
-
}
|
95
|
-
```
|
96
|
-
|
97
|
-
In the above, all attributes prefixed with `data-` are configured to be a `string`.
|
98
|
-
|
99
|
-
> **Note:** Future Marko versions will describe these definitions/types in the component itself, reducing the need for this configuration file.
|
100
|
-
|
101
|
-
### Paths
|
102
|
-
|
103
|
-
There are several options that override the default discovery of component files, such as the template.
|
104
|
-
|
105
|
-
Typically, you should let Marko find these files automatically, but here is a reference in case you encounter these settings in the wild.
|
106
|
-
|
107
|
-
```javascript
|
108
|
-
{
|
109
|
-
"template": "./template.marko", // Custom path to the `.marko` template.
|
110
|
-
"renderer": "./renderer.js", // Custom path to the `renderer.js` file.
|
111
|
-
|
112
|
-
// Compiler file hooks
|
113
|
-
"parse": "./parse.js", // Used to augment parsing.
|
114
|
-
"migrate": "./migrate.js", // Used for migrating deprecated features.
|
115
|
-
"transform": "./transform.js", // Used to modify the AST before generating it.
|
116
|
-
"analyze": "./analyze.js" // Used to analyze metadata the entire ast before beginning to translate it.
|
117
|
-
"translate": "./translate.js" // Used to generate custom JS.
|
118
|
-
}
|
119
|
-
```
|
120
|
-
|
121
|
-
For more information about the compiler hooks [jump over here](./compiler.md#hooks).
|
122
|
-
|
123
|
-
## Tag library definition
|
124
|
-
|
125
|
-
Along with configuring a single component, you can use a `marko.json` file to configure an _entire library of components_.
|
126
|
-
|
127
|
-
Similar to [`marko-tag.json`](#single-component-definition), this file is discovered if placed within a [tag directory](./custom-tags.md#tag-directories). It will also be discovered at the root directory of a project, or [in a `node_module` package](./custom-tags.md#publishing-tags-to-npm).
|
128
|
-
|
129
|
-
### Options
|
130
|
-
|
131
|
-
```js
|
132
|
-
{
|
133
|
-
"taglib-id": "my-custom-tag-library", // Names the component library, for better errors.
|
134
|
-
"exports": "./dist", // Where to export the compiled components.
|
135
|
-
"tags-dir": "./ui-modules", // What directory to crawl to autodiscover components. Default:`./components/`
|
136
|
-
"taglib-imports": ["./some-folder/marko.json", "./other-folder/marko.json"], // Creates a _combined_ tag library by referencing others.
|
137
|
-
|
138
|
-
"tags": { // Definitions for individual tags.
|
139
|
-
"my-tag": {
|
140
|
-
// Same options as “marko-tag.json”.
|
141
|
-
}
|
142
|
-
},
|
143
|
-
|
144
|
-
"attributes": {
|
145
|
-
// Defines attributes on all tags.
|
146
|
-
// Options are the same as the “attributes” section in “marko-tag.json”.
|
147
|
-
},
|
148
|
-
|
149
|
-
// Compiler file hooks (run on all templates)
|
150
|
-
"migrator": "./migrator.js", // Hooks into the migration stage for migrating deprecated features.
|
151
|
-
"transformer": "./transformer.js", // Used to modify the AST before generating it.
|
152
|
-
"text-transformer": "./text-transformer.js", // Used to transform all static text in the template.
|
153
|
-
}
|
154
|
-
```
|
155
|
-
|
156
|
-
> **⚠️ Note:** Compiler hooks are currently undocumented: avoid using them. The compiler API is overhauled in Marko 5, and will be documented once that transition is complete.
|
157
|
-
|
158
|
-
## Shorthands
|
159
|
-
|
160
|
-
Both configuration files support _shorthands_ for defining `tags` and `attributes`. For example, take this `marko.json` file:
|
161
|
-
|
162
|
-
_marko.json_
|
163
|
-
|
164
|
-
```js
|
165
|
-
{
|
166
|
-
"taglib-id": "my-custom-tag-library",
|
167
|
-
"tags": {
|
168
|
-
"my-layout": {
|
169
|
-
"attributes": {
|
170
|
-
"name": "string",
|
171
|
-
"age": "number"
|
172
|
-
},
|
173
|
-
"nested-tags": {
|
174
|
-
"heading": {
|
175
|
-
"attributes": {
|
176
|
-
"color": "string"
|
177
|
-
}
|
178
|
-
},
|
179
|
-
"body": {
|
180
|
-
"attributes": {
|
181
|
-
"color": "string"
|
182
|
-
}
|
183
|
-
}
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
}
|
188
|
-
```
|
189
|
-
|
190
|
-
As a shorthand, anywhere `tags` or `nested-tags` is used, you can remove the outer object and wrap the individual tags in `<angle-brackets>`.
|
191
|
-
|
192
|
-
For `attributes`, you can remove the outer object and prefix the attributes with an `@`.
|
193
|
-
|
194
|
-
The above example using the shorthand syntax would become:
|
195
|
-
|
196
|
-
_marko.json_
|
197
|
-
|
198
|
-
```js
|
199
|
-
{
|
200
|
-
"taglib-id": "my-custom-tag-library",
|
201
|
-
"<my-layout>": {
|
202
|
-
"@name": "string",
|
203
|
-
"@age": "number",
|
204
|
-
"<heading>": {
|
205
|
-
"@color": "string"
|
206
|
-
},
|
207
|
-
"<body>": {
|
208
|
-
"@color": "string"
|
209
|
-
}
|
210
|
-
}
|
211
|
-
}
|
212
|
-
```
|
213
|
-
|
214
|
-
For `nested-tags`, there is also a shorthand for `is-repeated` (a postfix of `[]`) and `target-property` (a prefix of `@newName`):
|
215
|
-
|
216
|
-
_marko.json_
|
217
|
-
|
218
|
-
```javascript
|
219
|
-
{
|
220
|
-
"<my-layout>": {
|
221
|
-
"@sections <section>[]": {
|
222
|
-
"@color": "string"
|
223
|
-
}
|
224
|
-
}
|
225
|
-
}
|
226
|
-
```
|
227
|
-
|
228
|
-
Is equivalent to:
|
229
|
-
|
230
|
-
_marko.json_
|
231
|
-
|
232
|
-
```javascript
|
233
|
-
{
|
234
|
-
"tags": {
|
235
|
-
"my-layout": {
|
236
|
-
"nested-tags": {
|
237
|
-
"section": {
|
238
|
-
"target-property": "sections",
|
239
|
-
"is-repeated": true,
|
240
|
-
"attributes": {
|
241
|
-
"color": "string"
|
242
|
-
}
|
243
|
-
}
|
244
|
-
}
|
245
|
-
}
|
246
|
-
}
|
247
|
-
}
|
248
|
-
```
|